From d588b50b55b25840eb493e2ec8728d0fc06c1db5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Luis=20Castro?= Date: Thu, 18 Jun 2026 16:39:42 -0600 Subject: [PATCH 01/23] added Oracle DB Observability MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: José Luis Castro --- .../LICENSE.txt | 35 + .../README.md | 105 + .../oracle/__init__.py | 5 + .../oci_oracle_db_observability/__init__.py | 8 + .../v1/__init__.py | 5 + .../oci_oracle_db_observability/v1/auth.py | 94 + .../v1/conversion.py | 223 + .../v1/oci_dbm_mcp_server/__init__.py | 10 + .../v1/oci_dbm_mcp_server/mcp.py | 21 + .../v1/oci_dbm_mcp_server/metadata.py | 1010 ++ .../v1/oci_dbm_mcp_server/models.py | 8535 +++++++++++++++++ .../v1/oci_dbm_mcp_server/runtime.py | 147 + .../v1/oci_dbm_mcp_server/server.py | 57 + .../v1/oci_dbm_mcp_server/tests/__init__.py | 5 + .../tests/test_auth_and_server.py | 95 + .../tests/test_bootstrap.py | 130 + .../tests/test_metadata_and_schemas.py | 186 + .../oci_dbm_mcp_server/tests/test_runtime.py | 294 + .../v1/oci_dbm_mcp_server/tools.py | 4384 +++++++++ .../v1/oci_opsi_mcp_server/__init__.py | 8 + .../v1/oci_opsi_mcp_server/mcp.py | 21 + .../v1/oci_opsi_mcp_server/metadata.py | 443 + .../v1/oci_opsi_mcp_server/models.py | 6202 ++++++++++++ .../v1/oci_opsi_mcp_server/runtime.py | 122 + .../v1/oci_opsi_mcp_server/server.py | 57 + .../v1/oci_opsi_mcp_server/tests/__init__.py | 5 + .../tests/test_auth_and_server.py | 86 + .../tests/test_bootstrap.py | 130 + .../tests/test_metadata_and_schemas.py | 147 + .../tests/test_response_mapping.py | 57 + .../oci_opsi_mcp_server/tests/test_runtime.py | 435 + .../v1/oci_opsi_mcp_server/tools.py | 2275 +++++ .../v1/pagination.py | 150 + .../v1/response_mapping.py | 37 + .../pyproject.toml | 59 + .../uv.lock | 1362 +++ 36 files changed, 26945 insertions(+) create mode 100644 src/oci-oracle-db-observability-mcp-server/LICENSE.txt create mode 100644 src/oci-oracle-db-observability-mcp-server/README.md create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/__init__.py create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/__init__.py create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/__init__.py create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/auth.py create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/conversion.py create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/__init__.py create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/mcp.py create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/metadata.py create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/models.py create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/runtime.py create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/server.py create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tests/__init__.py create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tests/test_auth_and_server.py create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tests/test_bootstrap.py create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tests/test_metadata_and_schemas.py create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tests/test_runtime.py create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tools.py create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/__init__.py create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/mcp.py create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/metadata.py create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/models.py create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/runtime.py create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/server.py create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/__init__.py create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/test_auth_and_server.py create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/test_bootstrap.py create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/test_metadata_and_schemas.py create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/test_response_mapping.py create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/test_runtime.py create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tools.py create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/pagination.py create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/response_mapping.py create mode 100644 src/oci-oracle-db-observability-mcp-server/pyproject.toml create mode 100644 src/oci-oracle-db-observability-mcp-server/uv.lock diff --git a/src/oci-oracle-db-observability-mcp-server/LICENSE.txt b/src/oci-oracle-db-observability-mcp-server/LICENSE.txt new file mode 100644 index 00000000..9af2dace --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/LICENSE.txt @@ -0,0 +1,35 @@ +Universal Permissive License (UPL), Version 1.0 + +Subject to the condition set forth below, permission is hereby granted to any +person obtaining a copy of this software, associated documentation and/or data +(collectively the "Software"), free of charge and under any and all copyright +rights in the Software, and any and all patent rights owned or freely +licensable by each licensor hereunder covering either (i) the unmodified +Software as contributed to or provided by such licensor, or (ii) the Larger +Works (as defined below), to deal in both + +(a) the Software, and + +(b) any piece of software and/or hardware listed in the lrgrwrks.txt file if +one is included with the Software (each a "Larger Work" to which the Software +is contributed by such licensors), + +without restriction, including without limitation the rights to copy, create +derivative works of, display, perform, and distribute the Software and make, +use, sell, offer for sale, import, export, have made, and have sold the +Software and the Larger Work(s), and to sublicense the foregoing rights on +either these or other terms. + +This license is subject to the following condition: + +The above copyright notice and either this complete permission notice or at a +minimum a reference to the UPL must be included in all copies or substantial +portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/src/oci-oracle-db-observability-mcp-server/README.md b/src/oci-oracle-db-observability-mcp-server/README.md new file mode 100644 index 00000000..17d18ded --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/README.md @@ -0,0 +1,105 @@ +# Oracle DB Observability MCP Servers + +## Overview + +This package provides MCP servers to interact with Oracle database observability services. +It currently includes separate v1 servers for OCI Operations Insights (OPSI) and OCI +Database Management (DBM). + +## Running the OPSI server + +### STDIO transport mode + +```sh +uvx oracle.oci-opsi-mcp-server +``` + +### HTTP streaming transport mode + +```sh +ORACLE_MCP_HOST= \ +ORACLE_MCP_PORT= \ +ORACLE_MCP_BASE_URL= \ +OCI_REGION= \ +IDCS_DOMAIN= \ +IDCS_CLIENT_ID= \ +IDCS_CLIENT_SECRET= \ +IDCS_AUDIENCE= \ +uvx oracle.oci-opsi-mcp-server +``` + +Register `${ORACLE_MCP_BASE_URL}/auth/callback` in the OCI IAM confidential application. +If `IDCS_REQUIRED_SCOPES` is unset, the default is `openid profile email oci_mcp.opsi.invoke`. + +## Running the DBM server + +### STDIO transport mode + +```sh +uvx oracle.oci-dbm-mcp-server +``` + +### HTTP streaming transport mode + +```sh +ORACLE_MCP_HOST= \ +ORACLE_MCP_PORT= \ +ORACLE_MCP_BASE_URL= \ +OCI_REGION= \ +IDCS_DOMAIN= \ +IDCS_CLIENT_ID= \ +IDCS_CLIENT_SECRET= \ +IDCS_AUDIENCE= \ +uvx oracle.oci-dbm-mcp-server +``` + +Register `${ORACLE_MCP_BASE_URL}/auth/callback` in the OCI IAM confidential application. +If `IDCS_REQUIRED_SCOPES` is unset, the default is `openid profile email oci_mcp.dbm.invoke`. + +## Tools + +| Tool Group | Description | +| --- | --- | +| OPSI tools | 158 non-deprecated OCI Operations Insights SDK methods, excluding `delete_*` methods and excluded operation classes from `docs/tool-list.csv`. Tool names match SDK method names. | +| DBM tools | 266 OCI Database Management SDK methods, excluding `delete_*`, `drop_*`, deprecated MySQL/HeatWave operations, and excluded operation classes from `docs/tool-list.csv`. Tool names match SDK method names. | +| get_compartment | Get an OCI compartment with a given compartment OCID. | +| list_compartments | List OCI compartments from a root compartment. | + +## Generating OPSI MCP files + +The OPSI tool, model, and manifest files can be generated from the Oracle OpenAPI spec. +Use a local spec for deterministic offline generation: + +```sh +uv run oci-oracle-db-observability-mcp-server-generate-opsi --spec-file +``` + +To verify checked-in generated files without rewriting them: + +```sh +uv run oci-oracle-db-observability-mcp-server-generate-opsi --spec-file --check +``` + +If `--spec-file` is omitted, the generator resolves `operations-insights` from the Oracle +API spec index URL and fetches the referenced spec. + +⚠️ **NOTE**: `stdio` uses the configured OCI CLI profile. HTTP uses the authenticated OCI IAM +user and does not use the local OCI CLI profile for request authentication. + +⚠️ **NOTE**: Non-delete mutating OPSI tools and non-delete, non-drop mutating DBM tools are +marked with MCP tool annotations because they can change OCI or database state. + +## Third-Party APIs + +Developers choosing to distribute a binary implementation of this project are responsible for obtaining and providing all required licenses and copyright notices for the third-party code used in order to ensure compliance with their respective open source licenses. + +## Disclaimer + +Users are responsible for their local environment and credential safety. Different language model selections may yield different results and performance. + +## License + +Copyright (c) 2026 Oracle and/or its affiliates. + +Released under the Universal Permissive License v1.0 as shown at +. diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/__init__.py b/src/oci-oracle-db-observability-mcp-server/oracle/__init__.py new file mode 100644 index 00000000..b8f69b97 --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/__init__.py @@ -0,0 +1,5 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. +""" diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/__init__.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/__init__.py new file mode 100644 index 00000000..7214e9c3 --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/__init__.py @@ -0,0 +1,8 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. +""" + +__project__ = "oracle.oci-oracle-db-observability-mcp-server" +__version__ = "1.0.0" diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/__init__.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/__init__.py new file mode 100644 index 00000000..b8f69b97 --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/__init__.py @@ -0,0 +1,5 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. +""" diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/auth.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/auth.py new file mode 100644 index 00000000..4dbd7d8a --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/auth.py @@ -0,0 +1,94 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. +""" + +from __future__ import annotations + +import os +from logging import Logger +from typing import Any, Callable + +import oci +from fastmcp.server.dependencies import get_access_token + + +def _get_http_config_and_signer(project: str, version: str) -> tuple[dict[str, str] | None, oci.signer.Signer | None]: + if not (os.getenv("ORACLE_MCP_HOST") and os.getenv("ORACLE_MCP_PORT")): + return None, None + + token = get_access_token() + if token is None: + raise RuntimeError("HTTP requests require an authenticated IDCS access token.") + + domain = os.getenv("IDCS_DOMAIN") + client_id = os.getenv("IDCS_CLIENT_ID") + client_secret = os.getenv("IDCS_CLIENT_SECRET") + if not all((domain, client_id, client_secret)): + raise RuntimeError( + "HTTP requests require IDCS authentication. Set IDCS_DOMAIN, IDCS_CLIENT_ID, and IDCS_CLIENT_SECRET." + ) + + region = os.getenv("OCI_REGION") + if not region: + raise RuntimeError("HTTP requests require OCI_REGION.") + + user_agent_name = project.split("oracle.", 1)[1].split("-mcp-server", 1)[0] + config = {"region": region, "additional_user_agent": f"{user_agent_name}/{version}"} + return config, oci.auth.signers.TokenExchangeSigner( + token.token, + f"https://{domain}", + client_id, + client_secret, + region=config.get("region"), + ) + + +def get_oci_config(project: str, version: str) -> dict[str, str]: + """Resolve the OCI config used by this server without constructing a signer.""" + + user_agent_name = project.split("oracle.", 1)[1].split("-mcp-server", 1)[0] + if os.getenv("ORACLE_MCP_HOST") and os.getenv("ORACLE_MCP_PORT"): + region = os.getenv("OCI_REGION") + if not region: + raise RuntimeError("HTTP requests require OCI_REGION.") + return {"region": region, "additional_user_agent": f"{user_agent_name}/{version}"} + + config = oci.config.from_file( + file_location=os.getenv("OCI_CONFIG_FILE", oci.config.DEFAULT_LOCATION), + profile_name=os.getenv("OCI_CONFIG_PROFILE", oci.config.DEFAULT_PROFILE), + ) + config["additional_user_agent"] = f"{user_agent_name}/{version}" + return config + + +def build_client( + client_type: Callable[..., Any], + *, + project: str, + version: str, + logger: Logger, +) -> Any: + """Create an OCI SDK client with the resolved config and signer.""" + + config, signer = _get_http_config_and_signer(project, version) + if config is None: + config = get_oci_config(project, version) + key_file = config.get("key_file") + token_file = config.get("security_token_file") + if not key_file or not token_file: + raise RuntimeError("Stdio transport requires OCI config with key_file and security_token_file.") + private_key = oci.signer.load_private_key_from_file(key_file) + with open(os.path.expanduser(token_file), "r", encoding="utf-8") as token: + signer = oci.auth.signers.SecurityTokenSigner(token.read(), private_key) + + kwargs: dict[str, object] = { + "circuit_breaker_strategy": oci.circuit_breaker.CircuitBreakerStrategy( + failure_threshold=int(os.getenv("OCI_CIRCUIT_BREAKER_FAILURE_THRESHOLD", "10")), + recovery_timeout=int(os.getenv("OCI_CIRCUIT_BREAKER_RECOVERY_TIMEOUT", "30")), + ), + "circuit_breaker_callback": lambda exc: logger.warning("Circuit breaker triggered: %s", exc), + "signer": signer, + } + return client_type(config, **kwargs) diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/conversion.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/conversion.py new file mode 100644 index 00000000..3d2418cf --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/conversion.py @@ -0,0 +1,223 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. +""" + +from __future__ import annotations + +from collections.abc import Mapping +from datetime import date, datetime +import importlib +import re +from typing import Any + +import oci +from pydantic import BaseModel + +FORBIDDEN_REQUEST_FIELDS = frozenset( + { + "defined_tags", + "freeform_tags", + "system_tags", + "tag_filters", + "match_rule", + } +) + +_LIST_TYPE_RE = re.compile(r"list\[(.+)\]") + + +def to_plain_data(value: Any) -> Any: + """Convert SDK/Pydantic values into JSON-serializable Python data.""" + + if value is None or isinstance(value, str | int | float | bool): + return value + if isinstance(value, datetime | date): + return value.isoformat() + if isinstance(value, BaseModel): + return value.model_dump(by_alias=True, exclude_none=True) + if isinstance(value, Mapping): + return {key: to_plain_data(item) for key, item in value.items()} + if isinstance(value, list | tuple | set): + return [to_plain_data(item) for item in value] + try: + return oci.util.to_dict(value) + except Exception: + pass + if hasattr(value, "__dict__"): + return { + key.removeprefix("_"): to_plain_data(item) + for key, item in value.__dict__.items() + if not key.startswith("__") and item is not None + } + return value + + +def pydantic_to_sdk_model(value: Any, sdk_model_type: type[Any]) -> Any: + """Convert a Pydantic request model or plain mapping into an OCI SDK model.""" + + if value is None: + return None + if isinstance(value, sdk_model_type): + return value + if isinstance(value, BaseModel): + payload = value.model_dump(by_alias=False, exclude_none=True) + elif isinstance(value, Mapping): + payload = {key: to_plain_data(item) for key, item in value.items() if item is not None} + else: + return value + return sdk_model_type(**payload) + + +def _sdk_model_metadata(sdk_model_type: type[Any]) -> tuple[dict[str, str], dict[str, str]]: + try: + instance = sdk_model_type() + except Exception as exc: + raise ValueError(f"Unable to inspect OCI SDK model {sdk_model_type.__name__}.") from exc + return dict(getattr(instance, "swagger_types", {}) or {}), dict(getattr(instance, "attribute_map", {}) or {}) + + +def _payload_from_request_value(value: Any) -> dict[str, Any]: + if isinstance(value, BaseModel): + return value.model_dump(by_alias=False, exclude_none=True) + if isinstance(value, Mapping): + return {str(key): item for key, item in value.items() if item is not None} + raise ValueError(f"Request payload must be a mapping or Pydantic model, got {type(value).__name__}.") + + +def _wire_payload(payload: Mapping[str, Any], attribute_map: Mapping[str, str]) -> dict[str, Any]: + return { + attribute_map.get(key, key): item + for key, item in payload.items() + } + + +def _normalize_key(key: str, attribute_map: Mapping[str, str]) -> str: + if key in attribute_map: + return key + inverse_attribute_map = {wire_key: model_key for model_key, wire_key in attribute_map.items()} + return inverse_attribute_map.get(key, key) + + +def _sdk_models_module(sdk_model_type: type[Any]) -> Any: + module_name = sdk_model_type.__module__ + package_name = module_name.rsplit(".", 1)[0] + return importlib.import_module(package_name) + + +def _select_sdk_model_type( + payload: Mapping[str, Any], + sdk_model_type: type[Any], + attribute_map: Mapping[str, str], + path: str, +) -> type[Any]: + get_subtype = getattr(sdk_model_type, "get_subtype", None) + if get_subtype is None: + return sdk_model_type + + try: + subtype_name = get_subtype(_wire_payload(payload, attribute_map)) + except KeyError as exc: + raise ValueError(f"{path} is missing discriminator field {exc.args[0]!r}.") from exc + except Exception as exc: + raise ValueError(f"Unable to resolve OCI SDK subtype for {path}: {exc}") from exc + + module = _sdk_models_module(sdk_model_type) + subtype = getattr(module, subtype_name, None) + if not isinstance(subtype, type): + raise ValueError(f"{path} resolved unknown OCI SDK subtype {subtype_name!r}.") + return subtype + + +def _resolve_sdk_model_type(type_spec: str, sdk_models_module: Any) -> type[Any] | None: + type_name = type_spec.strip() + list_match = _LIST_TYPE_RE.fullmatch(type_name) + if list_match is not None: + type_name = list_match.group(1).strip() + if "[" in type_name or "(" in type_name: + return None + sdk_type = getattr(sdk_models_module, type_name, None) + return sdk_type if isinstance(sdk_type, type) else None + + +def _is_sdk_model_type(sdk_type: type[Any] | None) -> bool: + if sdk_type is None: + return False + try: + swagger_types, _ = _sdk_model_metadata(sdk_type) + except ValueError: + return False + return bool(swagger_types) + + +def _convert_sdk_field_value(value: Any, type_spec: str, sdk_models_module: Any, path: str) -> Any: + if value is None: + return None + + list_match = _LIST_TYPE_RE.fullmatch(type_spec.strip()) + if list_match is not None and isinstance(value, list | tuple): + inner_type_spec = list_match.group(1).strip() + return [ + _convert_sdk_field_value(item, inner_type_spec, sdk_models_module, f"{path}[{index}]") + for index, item in enumerate(value) + ] + + sdk_field_type = _resolve_sdk_model_type(type_spec, sdk_models_module) + if _is_sdk_model_type(sdk_field_type): + if isinstance(value, sdk_field_type): + return value + if isinstance(value, BaseModel | Mapping): + return _build_sdk_model( + _payload_from_request_value(value), + sdk_field_type, + path, + ) + + return to_plain_data(value) + + +def _build_sdk_model(payload: Mapping[str, Any], sdk_model_type: type[Any], path: str) -> Any: + _, base_attribute_map = _sdk_model_metadata(sdk_model_type) + selected_sdk_model_type = _select_sdk_model_type(payload, sdk_model_type, base_attribute_map, path) + swagger_types, attribute_map = _sdk_model_metadata(selected_sdk_model_type) + sdk_models_module = _sdk_models_module(selected_sdk_model_type) + + normalized_payload: dict[str, Any] = {} + unknown_fields: list[str] = [] + forbidden_fields: list[str] = [] + + for raw_key, item in payload.items(): + key = _normalize_key(raw_key, attribute_map) + if key in FORBIDDEN_REQUEST_FIELDS: + forbidden_fields.append(raw_key) + continue + if key not in swagger_types: + unknown_fields.append(raw_key) + continue + normalized_payload[key] = _convert_sdk_field_value( + item, + swagger_types[key], + sdk_models_module, + f"{path}.{key}", + ) + + if forbidden_fields: + fields = ", ".join(sorted(forbidden_fields)) + raise ValueError(f"{path} contains forbidden request tag mutation fields: {fields}.") + if unknown_fields: + fields = ", ".join(sorted(unknown_fields)) + raise ValueError(f"{path} contains unsupported fields for {selected_sdk_model_type.__name__}: {fields}.") + + return selected_sdk_model_type(**normalized_payload) + + +def polymorphic_request_to_sdk_model(value: Any, sdk_model_type: type[Any]) -> Any: + """Convert a request payload into the correct OCI SDK model or subtype.""" + + if value is None: + return None + if isinstance(value, sdk_model_type): + return value + payload = _payload_from_request_value(value) + return _build_sdk_model(payload, sdk_model_type, sdk_model_type.__name__) diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/__init__.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/__init__.py new file mode 100644 index 00000000..0cb6706b --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/__init__.py @@ -0,0 +1,10 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. +""" + +from __future__ import annotations + +__project__ = "oracle.oci-dbm-mcp-server" +__version__ = "1.0.0" diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/mcp.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/mcp.py new file mode 100644 index 00000000..a8f3b40b --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/mcp.py @@ -0,0 +1,21 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. +""" + +from __future__ import annotations + +from fastmcp import FastMCP + +from . import __project__ + + +mcp = FastMCP( + name=__project__, + instructions=( + "Use this server for OCI Database Management workflows. " + "Mutating non-delete and non-drop tools are marked with MCP tool annotations and " + "should only be used when the user explicitly intends the change." + ), +) diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/metadata.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/metadata.py new file mode 100644 index 00000000..b5d9b4b3 --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/metadata.py @@ -0,0 +1,1010 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. +""" + +from __future__ import annotations + +BOOTSTRAP_TOOL_NAMES = frozenset({"get_compartment", "list_compartments"}) +REQUEST_MODEL_TYPES = { + ('change_cloud_exadata_infrastructure_compartment', 'change_cloud_exadata_infrastructure_compartment_details'): 'ChangeCloudExadataInfrastructureCompartmentDetails', + ('change_database_parameters', 'change_database_parameters_details'): 'ChangeDatabaseParametersDetails', + ('change_db_management_private_endpoint_compartment', 'change_db_management_private_endpoint_compartment_details'): 'ChangeDbManagementPrivateEndpointCompartmentDetails', + ('change_external_db_system_compartment', 'change_external_db_system_compartment_details'): 'ChangeExternalDbSystemCompartmentDetails', + ('change_external_exadata_infrastructure_compartment', 'change_external_exadata_infrastructure_compartment_details'): 'ChangeExternalExadataInfrastructureCompartmentDetails', + ('change_job_compartment', 'change_job_compartment_details'): 'ChangeJobCompartmentDetails', + ('change_managed_database_group_compartment', 'change_managed_database_group_compartment_details'): 'ChangeManagedDatabaseGroupCompartmentDetails', + ('change_named_credential_compartment', 'change_named_credential_compartment_details'): 'ChangeNamedCredentialCompartmentDetails', + ('change_plan_retention', 'change_plan_retention_details'): 'ChangePlanRetentionDetails', + ('change_space_budget', 'change_space_budget_details'): 'ChangeSpaceBudgetDetails', + ('change_sql_plan_baselines_attributes', 'change_sql_plan_baselines_attributes_details'): 'ChangeSqlPlanBaselinesAttributesDetails', + ('create_cloud_db_system', 'create_cloud_db_system_details'): 'CreateCloudDbSystemDetails', + ('create_cloud_db_system_connector', 'create_cloud_db_system_connector_details'): 'CreateCloudDbSystemConnectorDetails', + ('create_cloud_db_system_discovery', 'create_cloud_db_system_discovery_details'): 'CreateCloudDbSystemDiscoveryDetails', + ('create_cloud_exadata_infrastructure', 'create_cloud_exadata_infrastructure_details'): 'CreateCloudExadataInfrastructureDetails', + ('create_cloud_exadata_storage_connector', 'create_cloud_exadata_storage_connector_details'): 'CreateCloudExadataStorageConnectorDetails', + ('create_db_management_private_endpoint', 'create_db_management_private_endpoint_details'): 'CreateDbManagementPrivateEndpointDetails', + ('create_external_db_system', 'create_external_db_system_details'): 'CreateExternalDbSystemDetails', + ('create_external_db_system_connector', 'create_external_db_system_connector_details'): 'CreateExternalDbSystemConnectorDetails', + ('create_external_db_system_discovery', 'create_external_db_system_discovery_details'): 'CreateExternalDbSystemDiscoveryDetails', + ('create_external_exadata_infrastructure', 'create_external_exadata_infrastructure_details'): 'CreateExternalExadataInfrastructureDetails', + ('create_external_exadata_storage_connector', 'create_external_exadata_storage_connector_details'): 'CreateExternalExadataStorageConnectorDetails', + ('create_job', 'create_job_details'): 'CreateJobDetails', + ('create_managed_database_group', 'create_managed_database_group_details'): 'CreateManagedDatabaseGroupDetails', + ('create_named_credential', 'create_named_credential_details'): 'CreateNamedCredentialDetails', + ('create_sql_tuning_set', 'create_sql_tuning_set_details'): 'CreateSqlTuningSetDetails', + ('create_tablespace', 'create_tablespace_details'): 'CreateTablespaceDetails', + ('disable_automatic_initial_plan_capture', 'disable_automatic_initial_plan_capture_details'): 'DisableAutomaticInitialPlanCaptureDetails', + ('disable_automatic_spm_evolve_advisor_task', 'disable_automatic_spm_evolve_advisor_task_details'): 'DisableAutomaticSpmEvolveAdvisorTaskDetails', + ('disable_autonomous_database_management_feature', 'disable_autonomous_database_management_feature_details'): 'DisableAutonomousDatabaseManagementFeatureDetails', + ('disable_database_management_feature', 'disable_database_management_feature_details'): 'DisableDatabaseManagementFeatureDetails', + ('disable_external_container_database_management_feature', 'disable_external_container_database_management_feature_details'): 'DisableExternalContainerDatabaseManagementFeatureDetails', + ('disable_external_non_container_database_management_feature', 'disable_external_non_container_database_management_feature_details'): 'DisableExternalNonContainerDatabaseManagementFeatureDetails', + ('disable_external_pluggable_database_management_feature', 'disable_external_pluggable_database_management_feature_details'): 'DisableExternalPluggableDatabaseManagementFeatureDetails', + ('disable_high_frequency_automatic_spm_evolve_advisor_task', 'disable_high_frequency_automatic_spm_evolve_advisor_task_details'): 'DisableHighFrequencyAutomaticSpmEvolveAdvisorTaskDetails', + ('disable_pluggable_database_management_feature', 'disable_pluggable_database_management_feature_details'): 'DisablePluggableDatabaseManagementFeatureDetails', + ('disable_sql_plan_baselines_usage', 'disable_sql_plan_baselines_usage_details'): 'DisableSqlPlanBaselinesUsageDetails', + ('discover_cloud_exadata_infrastructure', 'discover_cloud_exadata_infrastructure_details'): 'DiscoverCloudExadataInfrastructureDetails', + ('discover_external_exadata_infrastructure', 'discover_external_exadata_infrastructure_details'): 'DiscoverExternalExadataInfrastructureDetails', + ('enable_automatic_initial_plan_capture', 'enable_automatic_initial_plan_capture_details'): 'EnableAutomaticInitialPlanCaptureDetails', + ('enable_automatic_spm_evolve_advisor_task', 'enable_automatic_spm_evolve_advisor_task_details'): 'EnableAutomaticSpmEvolveAdvisorTaskDetails', + ('enable_autonomous_database_management_feature', 'enable_autonomous_database_management_feature_details'): 'EnableAutonomousDatabaseManagementFeatureDetails', + ('enable_cloud_db_system_database_management', 'enable_cloud_db_system_database_management_details'): 'EnableCloudDbSystemDatabaseManagementDetails', + ('enable_cloud_db_system_stack_monitoring', 'enable_cloud_db_system_stack_monitoring_details'): 'EnableCloudDbSystemStackMonitoringDetails', + ('enable_cloud_exadata_infrastructure_management', 'enable_cloud_exadata_infrastructure_management_details'): 'EnableCloudExadataInfrastructureManagementDetails', + ('enable_database_management_feature', 'enable_database_management_feature_details'): 'EnableDatabaseManagementFeatureDetails', + ('enable_external_container_database_management_feature', 'enable_external_container_database_management_feature_details'): 'EnableExternalContainerDatabaseManagementFeatureDetails', + ('enable_external_db_system_database_management', 'enable_external_db_system_database_management_details'): 'EnableExternalDbSystemDatabaseManagementDetails', + ('enable_external_db_system_stack_monitoring', 'enable_external_db_system_stack_monitoring_details'): 'EnableExternalDbSystemStackMonitoringDetails', + ('enable_external_exadata_infrastructure_management', 'enable_external_exadata_infrastructure_management_details'): 'EnableExternalExadataInfrastructureManagementDetails', + ('enable_external_non_container_database_management_feature', 'enable_external_non_container_database_management_feature_details'): 'EnableExternalNonContainerDatabaseManagementFeatureDetails', + ('enable_external_pluggable_database_management_feature', 'enable_external_pluggable_database_management_feature_details'): 'EnableExternalPluggableDatabaseManagementFeatureDetails', + ('enable_high_frequency_automatic_spm_evolve_advisor_task', 'enable_high_frequency_automatic_spm_evolve_advisor_task_details'): 'EnableHighFrequencyAutomaticSpmEvolveAdvisorTaskDetails', + ('enable_pluggable_database_management_feature', 'enable_pluggable_database_management_feature_details'): 'EnablePluggableDatabaseManagementFeatureDetails', + ('enable_sql_plan_baselines_usage', 'enable_sql_plan_baselines_usage_details'): 'EnableSqlPlanBaselinesUsageDetails', + ('update_cloud_asm', 'update_cloud_asm_details'): 'UpdateCloudAsmDetails', + ('update_cloud_asm_instance', 'update_cloud_asm_instance_details'): 'UpdateCloudAsmInstanceDetails', + ('update_cloud_cluster', 'update_cloud_cluster_details'): 'UpdateCloudClusterDetails', + ('update_cloud_cluster_instance', 'update_cloud_cluster_instance_details'): 'UpdateCloudClusterInstanceDetails', + ('update_cloud_db_home', 'update_cloud_db_home_details'): 'UpdateCloudDbHomeDetails', + ('update_cloud_db_node', 'update_cloud_db_node_details'): 'UpdateCloudDbNodeDetails', + ('update_cloud_db_system', 'update_cloud_db_system_details'): 'UpdateCloudDbSystemDetails', + ('update_cloud_db_system_connector', 'update_cloud_db_system_connector_details'): 'UpdateCloudDbSystemConnectorDetails', + ('update_cloud_db_system_discovery', 'update_cloud_db_system_discovery_details'): 'UpdateCloudDbSystemDiscoveryDetails', + ('update_cloud_exadata_infrastructure', 'update_cloud_exadata_infrastructure_details'): 'UpdateCloudExadataInfrastructureDetails', + ('update_cloud_exadata_storage_connector', 'update_cloud_exadata_storage_connector_details'): 'UpdateCloudExadataStorageConnectorDetails', + ('update_cloud_exadata_storage_grid', 'update_cloud_exadata_storage_grid_details'): 'UpdateCloudExadataStorageGridDetails', + ('update_cloud_exadata_storage_server', 'update_cloud_exadata_storage_server_details'): 'UpdateCloudExadataStorageServerDetails', + ('update_cloud_listener', 'update_cloud_listener_details'): 'UpdateCloudListenerDetails', + ('update_db_management_private_endpoint', 'update_db_management_private_endpoint_details'): 'UpdateDbManagementPrivateEndpointDetails', + ('update_external_asm', 'update_external_asm_details'): 'UpdateExternalAsmDetails', + ('update_external_asm_instance', 'update_external_asm_instance_details'): 'UpdateExternalAsmInstanceDetails', + ('update_external_cluster', 'update_external_cluster_details'): 'UpdateExternalClusterDetails', + ('update_external_cluster_instance', 'update_external_cluster_instance_details'): 'UpdateExternalClusterInstanceDetails', + ('update_external_db_home', 'update_external_db_home_details'): 'UpdateExternalDbHomeDetails', + ('update_external_db_node', 'update_external_db_node_details'): 'UpdateExternalDbNodeDetails', + ('update_external_db_system', 'update_external_db_system_details'): 'UpdateExternalDbSystemDetails', + ('update_external_db_system_connector', 'update_external_db_system_connector_details'): 'UpdateExternalDbSystemConnectorDetails', + ('update_external_db_system_discovery', 'update_external_db_system_discovery_details'): 'UpdateExternalDbSystemDiscoveryDetails', + ('update_external_exadata_infrastructure', 'update_external_exadata_infrastructure_details'): 'UpdateExternalExadataInfrastructureDetails', + ('update_external_exadata_storage_connector', 'update_external_exadata_storage_connector_details'): 'UpdateExternalExadataStorageConnectorDetails', + ('update_external_exadata_storage_grid', 'update_external_exadata_storage_grid_details'): 'UpdateExternalExadataStorageGridDetails', + ('update_external_exadata_storage_server', 'update_external_exadata_storage_server_details'): 'UpdateExternalExadataStorageServerDetails', + ('update_external_listener', 'update_external_listener_details'): 'UpdateExternalListenerDetails', + ('update_job', 'update_job_details'): 'UpdateJobDetails', + ('update_managed_database', 'update_managed_database_details'): 'UpdateManagedDatabaseDetails', + ('update_managed_database_group', 'update_managed_database_group_details'): 'UpdateManagedDatabaseGroupDetails', + ('update_named_credential', 'update_named_credential_details'): 'UpdateNamedCredentialDetails', + ('update_preferred_credential', 'update_preferred_credential_details'): 'UpdatePreferredCredentialDetails', + ('update_tablespace', 'update_tablespace_details'): 'UpdateTablespaceDetails', +} +INCLUDED_METHOD_NAMES = ( + 'addm_tasks', + 'change_cloud_exadata_infrastructure_compartment', + 'change_database_parameters', + 'change_db_management_private_endpoint_compartment', + 'change_external_db_system_compartment', + 'change_external_exadata_infrastructure_compartment', + 'change_job_compartment', + 'change_managed_database_group_compartment', + 'change_named_credential_compartment', + 'change_plan_retention', + 'change_space_budget', + 'change_sql_plan_baselines_attributes', + 'check_cloud_db_system_connector_connection_status', + 'check_cloud_exadata_storage_connector', + 'check_external_db_system_connector_connection_status', + 'check_external_exadata_storage_connector', + 'create_cloud_db_system', + 'create_cloud_db_system_connector', + 'create_cloud_db_system_discovery', + 'create_cloud_exadata_infrastructure', + 'create_cloud_exadata_storage_connector', + 'create_db_management_private_endpoint', + 'create_external_db_system', + 'create_external_db_system_connector', + 'create_external_db_system_discovery', + 'create_external_exadata_infrastructure', + 'create_external_exadata_storage_connector', + 'create_job', + 'create_managed_database_group', + 'create_named_credential', + 'create_sql_tuning_set', + 'create_tablespace', + 'disable_automatic_initial_plan_capture', + 'disable_automatic_spm_evolve_advisor_task', + 'disable_autonomous_database_management_feature', + 'disable_cloud_db_system_database_management', + 'disable_cloud_db_system_stack_monitoring', + 'disable_cloud_exadata_infrastructure_management', + 'disable_database_management_feature', + 'disable_external_container_database_management_feature', + 'disable_external_db_system_database_management', + 'disable_external_db_system_stack_monitoring', + 'disable_external_exadata_infrastructure_management', + 'disable_external_non_container_database_management_feature', + 'disable_external_pluggable_database_management_feature', + 'disable_high_frequency_automatic_spm_evolve_advisor_task', + 'disable_pluggable_database_management_feature', + 'disable_sql_plan_baselines_usage', + 'discover_cloud_exadata_infrastructure', + 'discover_external_exadata_infrastructure', + 'enable_automatic_initial_plan_capture', + 'enable_automatic_spm_evolve_advisor_task', + 'enable_autonomous_database_management_feature', + 'enable_cloud_db_system_database_management', + 'enable_cloud_db_system_stack_monitoring', + 'enable_cloud_exadata_infrastructure_management', + 'enable_database_management_feature', + 'enable_external_container_database_management_feature', + 'enable_external_db_system_database_management', + 'enable_external_db_system_stack_monitoring', + 'enable_external_exadata_infrastructure_management', + 'enable_external_non_container_database_management_feature', + 'enable_external_pluggable_database_management_feature', + 'enable_high_frequency_automatic_spm_evolve_advisor_task', + 'enable_pluggable_database_management_feature', + 'enable_sql_plan_baselines_usage', + 'generate_awr_snapshot', + 'get_awr_db_report', + 'get_awr_db_sql_report', + 'get_cloud_asm', + 'get_cloud_asm_configuration', + 'get_cloud_asm_instance', + 'get_cloud_cluster', + 'get_cloud_cluster_instance', + 'get_cloud_db_home', + 'get_cloud_db_node', + 'get_cloud_db_system', + 'get_cloud_db_system_connector', + 'get_cloud_db_system_discovery', + 'get_cloud_exadata_infrastructure', + 'get_cloud_exadata_storage_connector', + 'get_cloud_exadata_storage_grid', + 'get_cloud_exadata_storage_server', + 'get_cloud_iorm_plan', + 'get_cloud_listener', + 'get_cloud_open_alert_history', + 'get_cluster_cache_metric', + 'get_database_fleet_backup_metrics', + 'get_database_fleet_dataguard_metrics', + 'get_database_fleet_ha_overview_metrics', + 'get_database_fleet_health_metrics', + 'get_database_ha_backup_details', + 'get_database_home_metrics', + 'get_dataguard_performance_metrics', + 'get_db_management_private_endpoint', + 'get_exadata_infrastructure_fleet_health_metrics', + 'get_execution_plan_stats_comparision', + 'get_external_asm', + 'get_external_asm_configuration', + 'get_external_asm_instance', + 'get_external_cluster', + 'get_external_cluster_instance', + 'get_external_db_home', + 'get_external_db_node', + 'get_external_db_system', + 'get_external_db_system_connector', + 'get_external_db_system_discovery', + 'get_external_exadata_infrastructure', + 'get_external_exadata_storage_connector', + 'get_external_exadata_storage_grid', + 'get_external_exadata_storage_server', + 'get_external_listener', + 'get_iorm_plan', + 'get_job', + 'get_job_execution', + 'get_job_run', + 'get_managed_database', + 'get_managed_database_group', + 'get_named_credential', + 'get_open_alert_history', + 'get_optimizer_statistics_advisor_execution', + 'get_optimizer_statistics_advisor_execution_script', + 'get_optimizer_statistics_collection_operation', + 'get_pdb_metrics', + 'get_peer_database_metrics', + 'get_preferred_credential', + 'get_sql_execution_plan', + 'get_sql_plan_baseline', + 'get_sql_plan_baseline_configuration', + 'get_sql_tuning_advisor_task_summary_report', + 'get_tablespace', + 'get_top_sql_cpu_activity', + 'get_user', + 'get_work_request', + 'list_alert_logs', + 'list_asm_properties', + 'list_associated_databases', + 'list_attention_logs', + 'list_awr_db_snapshots', + 'list_awr_dbs', + 'list_cloud_asm_disk_groups', + 'list_cloud_asm_instances', + 'list_cloud_asm_users', + 'list_cloud_asms', + 'list_cloud_cluster_instances', + 'list_cloud_clusters', + 'list_cloud_databases', + 'list_cloud_db_homes', + 'list_cloud_db_nodes', + 'list_cloud_db_system_connectors', + 'list_cloud_db_system_discoveries', + 'list_cloud_db_systems', + 'list_cloud_exadata_infrastructures', + 'list_cloud_exadata_storage_connectors', + 'list_cloud_exadata_storage_servers', + 'list_cloud_listener_services', + 'list_cloud_listeners', + 'list_consumer_group_privileges', + 'list_cursor_cache_statements', + 'list_data_access_containers', + 'list_database_parameters', + 'list_db_management_private_endpoints', + 'list_external_asm_disk_groups', + 'list_external_asm_instances', + 'list_external_asm_users', + 'list_external_asms', + 'list_external_cluster_instances', + 'list_external_clusters', + 'list_external_databases', + 'list_external_db_homes', + 'list_external_db_nodes', + 'list_external_db_system_connectors', + 'list_external_db_system_discoveries', + 'list_external_db_systems', + 'list_external_exadata_infrastructures', + 'list_external_exadata_storage_connectors', + 'list_external_exadata_storage_servers', + 'list_external_listener_services', + 'list_external_listeners', + 'list_job_executions', + 'list_job_runs', + 'list_jobs', + 'list_managed_database_groups', + 'list_managed_databases', + 'list_named_credentials', + 'list_object_privileges', + 'list_optimizer_statistics_advisor_executions', + 'list_optimizer_statistics_collection_aggregations', + 'list_optimizer_statistics_collection_operations', + 'list_preferred_credentials', + 'list_proxied_for_users', + 'list_proxy_users', + 'list_roles', + 'list_sql_plan_baseline_jobs', + 'list_sql_plan_baselines', + 'list_sql_tuning_advisor_task_findings', + 'list_sql_tuning_advisor_task_recommendations', + 'list_sql_tuning_advisor_tasks', + 'list_sql_tuning_sets', + 'list_system_privileges', + 'list_table_statistics', + 'list_tablespaces', + 'list_users', + 'list_work_request_errors', + 'list_work_request_logs', + 'list_work_requests', + 'summarize_alert_log_counts', + 'summarize_attention_log_counts', + 'summarize_awr_db_cpu_usages', + 'summarize_awr_db_metrics', + 'summarize_awr_db_parameter_changes', + 'summarize_awr_db_parameters', + 'summarize_awr_db_snapshot_ranges', + 'summarize_awr_db_sysstats', + 'summarize_awr_db_top_wait_events', + 'summarize_awr_db_wait_event_buckets', + 'summarize_awr_db_wait_events', + 'summarize_cloud_asm_metrics', + 'summarize_cloud_cluster_metrics', + 'summarize_cloud_db_node_metrics', + 'summarize_cloud_db_system_availability_metrics', + 'summarize_cloud_listener_metrics', + 'summarize_external_asm_metrics', + 'summarize_external_cluster_metrics', + 'summarize_external_db_node_metrics', + 'summarize_external_db_system_availability_metrics', + 'summarize_external_listener_metrics', + 'summarize_job_executions_statuses', + 'summarize_managed_database_availability_metrics', + 'summarize_sql_plan_baselines', + 'summarize_sql_plan_baselines_by_last_execution', + 'update_cloud_asm', + 'update_cloud_asm_instance', + 'update_cloud_cluster', + 'update_cloud_cluster_instance', + 'update_cloud_db_home', + 'update_cloud_db_node', + 'update_cloud_db_system', + 'update_cloud_db_system_connector', + 'update_cloud_db_system_discovery', + 'update_cloud_exadata_infrastructure', + 'update_cloud_exadata_storage_connector', + 'update_cloud_exadata_storage_grid', + 'update_cloud_exadata_storage_server', + 'update_cloud_listener', + 'update_db_management_private_endpoint', + 'update_external_asm', + 'update_external_asm_instance', + 'update_external_cluster', + 'update_external_cluster_instance', + 'update_external_db_home', + 'update_external_db_node', + 'update_external_db_system', + 'update_external_db_system_connector', + 'update_external_db_system_discovery', + 'update_external_exadata_infrastructure', + 'update_external_exadata_storage_connector', + 'update_external_exadata_storage_grid', + 'update_external_exadata_storage_server', + 'update_external_listener', + 'update_job', + 'update_managed_database', + 'update_managed_database_group', + 'update_named_credential', + 'update_preferred_credential', + 'update_tablespace', +) +MUTABLE_METHOD_NAMES = ( + 'change_cloud_exadata_infrastructure_compartment', + 'change_database_parameters', + 'change_db_management_private_endpoint_compartment', + 'change_external_db_system_compartment', + 'change_external_exadata_infrastructure_compartment', + 'change_job_compartment', + 'change_managed_database_group_compartment', + 'change_named_credential_compartment', + 'change_plan_retention', + 'change_space_budget', + 'change_sql_plan_baselines_attributes', + 'create_cloud_db_system', + 'create_cloud_db_system_connector', + 'create_cloud_db_system_discovery', + 'create_cloud_exadata_infrastructure', + 'create_cloud_exadata_storage_connector', + 'create_db_management_private_endpoint', + 'create_external_db_system', + 'create_external_db_system_connector', + 'create_external_db_system_discovery', + 'create_external_exadata_infrastructure', + 'create_external_exadata_storage_connector', + 'create_job', + 'create_managed_database_group', + 'create_named_credential', + 'create_sql_tuning_set', + 'create_tablespace', + 'disable_automatic_initial_plan_capture', + 'disable_automatic_spm_evolve_advisor_task', + 'disable_autonomous_database_management_feature', + 'disable_cloud_db_system_database_management', + 'disable_cloud_db_system_stack_monitoring', + 'disable_cloud_exadata_infrastructure_management', + 'disable_database_management_feature', + 'disable_external_container_database_management_feature', + 'disable_external_db_system_database_management', + 'disable_external_db_system_stack_monitoring', + 'disable_external_exadata_infrastructure_management', + 'disable_external_non_container_database_management_feature', + 'disable_external_pluggable_database_management_feature', + 'disable_high_frequency_automatic_spm_evolve_advisor_task', + 'disable_pluggable_database_management_feature', + 'disable_sql_plan_baselines_usage', + 'discover_cloud_exadata_infrastructure', + 'discover_external_exadata_infrastructure', + 'enable_automatic_initial_plan_capture', + 'enable_automatic_spm_evolve_advisor_task', + 'enable_autonomous_database_management_feature', + 'enable_cloud_db_system_database_management', + 'enable_cloud_db_system_stack_monitoring', + 'enable_cloud_exadata_infrastructure_management', + 'enable_database_management_feature', + 'enable_external_container_database_management_feature', + 'enable_external_db_system_database_management', + 'enable_external_db_system_stack_monitoring', + 'enable_external_exadata_infrastructure_management', + 'enable_external_non_container_database_management_feature', + 'enable_external_pluggable_database_management_feature', + 'enable_high_frequency_automatic_spm_evolve_advisor_task', + 'enable_pluggable_database_management_feature', + 'enable_sql_plan_baselines_usage', + 'generate_awr_snapshot', + 'update_cloud_asm', + 'update_cloud_asm_instance', + 'update_cloud_cluster', + 'update_cloud_cluster_instance', + 'update_cloud_db_home', + 'update_cloud_db_node', + 'update_cloud_db_system', + 'update_cloud_db_system_connector', + 'update_cloud_db_system_discovery', + 'update_cloud_exadata_infrastructure', + 'update_cloud_exadata_storage_connector', + 'update_cloud_exadata_storage_grid', + 'update_cloud_exadata_storage_server', + 'update_cloud_listener', + 'update_db_management_private_endpoint', + 'update_external_asm', + 'update_external_asm_instance', + 'update_external_cluster', + 'update_external_cluster_instance', + 'update_external_db_home', + 'update_external_db_node', + 'update_external_db_system', + 'update_external_db_system_connector', + 'update_external_db_system_discovery', + 'update_external_exadata_infrastructure', + 'update_external_exadata_storage_connector', + 'update_external_exadata_storage_grid', + 'update_external_exadata_storage_server', + 'update_external_listener', + 'update_job', + 'update_managed_database', + 'update_managed_database_group', + 'update_named_credential', + 'update_preferred_credential', + 'update_tablespace', +) +METHOD_CLIENTS = { + 'addm_tasks': 'DbManagementClient', + 'change_cloud_exadata_infrastructure_compartment': 'DbManagementClient', + 'change_database_parameters': 'DbManagementClient', + 'change_db_management_private_endpoint_compartment': 'DbManagementClient', + 'change_external_db_system_compartment': 'DbManagementClient', + 'change_external_exadata_infrastructure_compartment': 'DbManagementClient', + 'change_job_compartment': 'DbManagementClient', + 'change_managed_database_group_compartment': 'DbManagementClient', + 'change_named_credential_compartment': 'DbManagementClient', + 'change_plan_retention': 'DbManagementClient', + 'change_space_budget': 'DbManagementClient', + 'change_sql_plan_baselines_attributes': 'DbManagementClient', + 'check_cloud_db_system_connector_connection_status': 'DbManagementClient', + 'check_cloud_exadata_storage_connector': 'DbManagementClient', + 'check_external_db_system_connector_connection_status': 'DbManagementClient', + 'check_external_exadata_storage_connector': 'DbManagementClient', + 'create_cloud_db_system': 'DbManagementClient', + 'create_cloud_db_system_connector': 'DbManagementClient', + 'create_cloud_db_system_discovery': 'DbManagementClient', + 'create_cloud_exadata_infrastructure': 'DbManagementClient', + 'create_cloud_exadata_storage_connector': 'DbManagementClient', + 'create_db_management_private_endpoint': 'DbManagementClient', + 'create_external_db_system': 'DbManagementClient', + 'create_external_db_system_connector': 'DbManagementClient', + 'create_external_db_system_discovery': 'DbManagementClient', + 'create_external_exadata_infrastructure': 'DbManagementClient', + 'create_external_exadata_storage_connector': 'DbManagementClient', + 'create_job': 'DbManagementClient', + 'create_managed_database_group': 'DbManagementClient', + 'create_named_credential': 'DbManagementClient', + 'create_tablespace': 'DbManagementClient', + 'disable_automatic_initial_plan_capture': 'DbManagementClient', + 'disable_automatic_spm_evolve_advisor_task': 'DbManagementClient', + 'disable_autonomous_database_management_feature': 'DbManagementClient', + 'disable_cloud_db_system_database_management': 'DbManagementClient', + 'disable_cloud_db_system_stack_monitoring': 'DbManagementClient', + 'disable_cloud_exadata_infrastructure_management': 'DbManagementClient', + 'disable_database_management_feature': 'DbManagementClient', + 'disable_external_container_database_management_feature': 'DbManagementClient', + 'disable_external_db_system_database_management': 'DbManagementClient', + 'disable_external_db_system_stack_monitoring': 'DbManagementClient', + 'disable_external_exadata_infrastructure_management': 'DbManagementClient', + 'disable_external_non_container_database_management_feature': 'DbManagementClient', + 'disable_external_pluggable_database_management_feature': 'DbManagementClient', + 'disable_high_frequency_automatic_spm_evolve_advisor_task': 'DbManagementClient', + 'disable_pluggable_database_management_feature': 'DbManagementClient', + 'disable_sql_plan_baselines_usage': 'DbManagementClient', + 'discover_cloud_exadata_infrastructure': 'DbManagementClient', + 'discover_external_exadata_infrastructure': 'DbManagementClient', + 'enable_automatic_initial_plan_capture': 'DbManagementClient', + 'enable_automatic_spm_evolve_advisor_task': 'DbManagementClient', + 'enable_autonomous_database_management_feature': 'DbManagementClient', + 'enable_cloud_db_system_database_management': 'DbManagementClient', + 'enable_cloud_db_system_stack_monitoring': 'DbManagementClient', + 'enable_cloud_exadata_infrastructure_management': 'DbManagementClient', + 'enable_database_management_feature': 'DbManagementClient', + 'enable_external_container_database_management_feature': 'DbManagementClient', + 'enable_external_db_system_database_management': 'DbManagementClient', + 'enable_external_db_system_stack_monitoring': 'DbManagementClient', + 'enable_external_exadata_infrastructure_management': 'DbManagementClient', + 'enable_external_non_container_database_management_feature': 'DbManagementClient', + 'enable_external_pluggable_database_management_feature': 'DbManagementClient', + 'enable_high_frequency_automatic_spm_evolve_advisor_task': 'DbManagementClient', + 'enable_pluggable_database_management_feature': 'DbManagementClient', + 'enable_sql_plan_baselines_usage': 'DbManagementClient', + 'generate_awr_snapshot': 'DbManagementClient', + 'get_awr_db_report': 'DbManagementClient', + 'get_awr_db_sql_report': 'DbManagementClient', + 'get_cloud_asm': 'DbManagementClient', + 'get_cloud_asm_configuration': 'DbManagementClient', + 'get_cloud_asm_instance': 'DbManagementClient', + 'get_cloud_cluster': 'DbManagementClient', + 'get_cloud_cluster_instance': 'DbManagementClient', + 'get_cloud_db_home': 'DbManagementClient', + 'get_cloud_db_node': 'DbManagementClient', + 'get_cloud_db_system': 'DbManagementClient', + 'get_cloud_db_system_connector': 'DbManagementClient', + 'get_cloud_db_system_discovery': 'DbManagementClient', + 'get_cloud_exadata_infrastructure': 'DbManagementClient', + 'get_cloud_exadata_storage_connector': 'DbManagementClient', + 'get_cloud_exadata_storage_grid': 'DbManagementClient', + 'get_cloud_exadata_storage_server': 'DbManagementClient', + 'get_cloud_iorm_plan': 'DbManagementClient', + 'get_cloud_listener': 'DbManagementClient', + 'get_cloud_open_alert_history': 'DbManagementClient', + 'get_cluster_cache_metric': 'DbManagementClient', + 'get_database_fleet_backup_metrics': 'DbManagementClient', + 'get_database_fleet_dataguard_metrics': 'DbManagementClient', + 'get_database_fleet_ha_overview_metrics': 'DbManagementClient', + 'get_database_fleet_health_metrics': 'DbManagementClient', + 'get_database_ha_backup_details': 'DbManagementClient', + 'get_database_home_metrics': 'DbManagementClient', + 'get_dataguard_performance_metrics': 'DbManagementClient', + 'get_db_management_private_endpoint': 'DbManagementClient', + 'get_exadata_infrastructure_fleet_health_metrics': 'DbManagementClient', + 'get_external_asm': 'DbManagementClient', + 'get_external_asm_configuration': 'DbManagementClient', + 'get_external_asm_instance': 'DbManagementClient', + 'get_external_cluster': 'DbManagementClient', + 'get_external_cluster_instance': 'DbManagementClient', + 'get_external_db_home': 'DbManagementClient', + 'get_external_db_node': 'DbManagementClient', + 'get_external_db_system': 'DbManagementClient', + 'get_external_db_system_connector': 'DbManagementClient', + 'get_external_db_system_discovery': 'DbManagementClient', + 'get_external_exadata_infrastructure': 'DbManagementClient', + 'get_external_exadata_storage_connector': 'DbManagementClient', + 'get_external_exadata_storage_grid': 'DbManagementClient', + 'get_external_exadata_storage_server': 'DbManagementClient', + 'get_external_listener': 'DbManagementClient', + 'get_iorm_plan': 'DbManagementClient', + 'get_job': 'DbManagementClient', + 'get_job_execution': 'DbManagementClient', + 'get_job_run': 'DbManagementClient', + 'get_managed_database': 'DbManagementClient', + 'get_managed_database_group': 'DbManagementClient', + 'get_named_credential': 'DbManagementClient', + 'get_open_alert_history': 'DbManagementClient', + 'get_optimizer_statistics_advisor_execution': 'DbManagementClient', + 'get_optimizer_statistics_advisor_execution_script': 'DbManagementClient', + 'get_optimizer_statistics_collection_operation': 'DbManagementClient', + 'get_pdb_metrics': 'DbManagementClient', + 'get_peer_database_metrics': 'DbManagementClient', + 'get_preferred_credential': 'DbManagementClient', + 'get_sql_plan_baseline': 'DbManagementClient', + 'get_sql_plan_baseline_configuration': 'DbManagementClient', + 'get_tablespace': 'DbManagementClient', + 'get_top_sql_cpu_activity': 'DbManagementClient', + 'get_user': 'DbManagementClient', + 'get_work_request': 'DbManagementClient', + 'list_asm_properties': 'DbManagementClient', + 'list_associated_databases': 'DbManagementClient', + 'list_awr_db_snapshots': 'DbManagementClient', + 'list_awr_dbs': 'DbManagementClient', + 'list_cloud_asm_disk_groups': 'DbManagementClient', + 'list_cloud_asm_instances': 'DbManagementClient', + 'list_cloud_asm_users': 'DbManagementClient', + 'list_cloud_asms': 'DbManagementClient', + 'list_cloud_cluster_instances': 'DbManagementClient', + 'list_cloud_clusters': 'DbManagementClient', + 'list_cloud_databases': 'DbManagementClient', + 'list_cloud_db_homes': 'DbManagementClient', + 'list_cloud_db_nodes': 'DbManagementClient', + 'list_cloud_db_system_connectors': 'DbManagementClient', + 'list_cloud_db_system_discoveries': 'DbManagementClient', + 'list_cloud_db_systems': 'DbManagementClient', + 'list_cloud_exadata_infrastructures': 'DbManagementClient', + 'list_cloud_exadata_storage_connectors': 'DbManagementClient', + 'list_cloud_exadata_storage_servers': 'DbManagementClient', + 'list_cloud_listener_services': 'DbManagementClient', + 'list_cloud_listeners': 'DbManagementClient', + 'list_consumer_group_privileges': 'DbManagementClient', + 'list_cursor_cache_statements': 'DbManagementClient', + 'list_data_access_containers': 'DbManagementClient', + 'list_database_parameters': 'DbManagementClient', + 'list_db_management_private_endpoints': 'DbManagementClient', + 'list_external_asm_disk_groups': 'DbManagementClient', + 'list_external_asm_instances': 'DbManagementClient', + 'list_external_asm_users': 'DbManagementClient', + 'list_external_asms': 'DbManagementClient', + 'list_external_cluster_instances': 'DbManagementClient', + 'list_external_clusters': 'DbManagementClient', + 'list_external_databases': 'DbManagementClient', + 'list_external_db_homes': 'DbManagementClient', + 'list_external_db_nodes': 'DbManagementClient', + 'list_external_db_system_connectors': 'DbManagementClient', + 'list_external_db_system_discoveries': 'DbManagementClient', + 'list_external_db_systems': 'DbManagementClient', + 'list_external_exadata_infrastructures': 'DbManagementClient', + 'list_external_exadata_storage_connectors': 'DbManagementClient', + 'list_external_exadata_storage_servers': 'DbManagementClient', + 'list_external_listener_services': 'DbManagementClient', + 'list_external_listeners': 'DbManagementClient', + 'list_job_executions': 'DbManagementClient', + 'list_job_runs': 'DbManagementClient', + 'list_jobs': 'DbManagementClient', + 'list_managed_database_groups': 'DbManagementClient', + 'list_managed_databases': 'DbManagementClient', + 'list_named_credentials': 'DbManagementClient', + 'list_object_privileges': 'DbManagementClient', + 'list_optimizer_statistics_advisor_executions': 'DbManagementClient', + 'list_optimizer_statistics_collection_aggregations': 'DbManagementClient', + 'list_optimizer_statistics_collection_operations': 'DbManagementClient', + 'list_preferred_credentials': 'DbManagementClient', + 'list_proxied_for_users': 'DbManagementClient', + 'list_proxy_users': 'DbManagementClient', + 'list_roles': 'DbManagementClient', + 'list_sql_plan_baseline_jobs': 'DbManagementClient', + 'list_sql_plan_baselines': 'DbManagementClient', + 'list_system_privileges': 'DbManagementClient', + 'list_table_statistics': 'DbManagementClient', + 'list_tablespaces': 'DbManagementClient', + 'list_users': 'DbManagementClient', + 'list_work_request_errors': 'DbManagementClient', + 'list_work_request_logs': 'DbManagementClient', + 'list_work_requests': 'DbManagementClient', + 'summarize_awr_db_cpu_usages': 'DbManagementClient', + 'summarize_awr_db_metrics': 'DbManagementClient', + 'summarize_awr_db_parameter_changes': 'DbManagementClient', + 'summarize_awr_db_parameters': 'DbManagementClient', + 'summarize_awr_db_snapshot_ranges': 'DbManagementClient', + 'summarize_awr_db_sysstats': 'DbManagementClient', + 'summarize_awr_db_top_wait_events': 'DbManagementClient', + 'summarize_awr_db_wait_event_buckets': 'DbManagementClient', + 'summarize_awr_db_wait_events': 'DbManagementClient', + 'summarize_cloud_asm_metrics': 'DbManagementClient', + 'summarize_cloud_cluster_metrics': 'DbManagementClient', + 'summarize_cloud_db_node_metrics': 'DbManagementClient', + 'summarize_cloud_db_system_availability_metrics': 'DbManagementClient', + 'summarize_cloud_listener_metrics': 'DbManagementClient', + 'summarize_external_asm_metrics': 'DbManagementClient', + 'summarize_external_cluster_metrics': 'DbManagementClient', + 'summarize_external_db_node_metrics': 'DbManagementClient', + 'summarize_external_db_system_availability_metrics': 'DbManagementClient', + 'summarize_external_listener_metrics': 'DbManagementClient', + 'summarize_job_executions_statuses': 'DbManagementClient', + 'summarize_managed_database_availability_metrics': 'DbManagementClient', + 'summarize_sql_plan_baselines': 'DbManagementClient', + 'summarize_sql_plan_baselines_by_last_execution': 'DbManagementClient', + 'update_cloud_asm': 'DbManagementClient', + 'update_cloud_asm_instance': 'DbManagementClient', + 'update_cloud_cluster': 'DbManagementClient', + 'update_cloud_cluster_instance': 'DbManagementClient', + 'update_cloud_db_home': 'DbManagementClient', + 'update_cloud_db_node': 'DbManagementClient', + 'update_cloud_db_system': 'DbManagementClient', + 'update_cloud_db_system_connector': 'DbManagementClient', + 'update_cloud_db_system_discovery': 'DbManagementClient', + 'update_cloud_exadata_infrastructure': 'DbManagementClient', + 'update_cloud_exadata_storage_connector': 'DbManagementClient', + 'update_cloud_exadata_storage_grid': 'DbManagementClient', + 'update_cloud_exadata_storage_server': 'DbManagementClient', + 'update_cloud_listener': 'DbManagementClient', + 'update_db_management_private_endpoint': 'DbManagementClient', + 'update_external_asm': 'DbManagementClient', + 'update_external_asm_instance': 'DbManagementClient', + 'update_external_cluster': 'DbManagementClient', + 'update_external_cluster_instance': 'DbManagementClient', + 'update_external_db_home': 'DbManagementClient', + 'update_external_db_node': 'DbManagementClient', + 'update_external_db_system': 'DbManagementClient', + 'update_external_db_system_connector': 'DbManagementClient', + 'update_external_db_system_discovery': 'DbManagementClient', + 'update_external_exadata_infrastructure': 'DbManagementClient', + 'update_external_exadata_storage_connector': 'DbManagementClient', + 'update_external_exadata_storage_grid': 'DbManagementClient', + 'update_external_exadata_storage_server': 'DbManagementClient', + 'update_external_listener': 'DbManagementClient', + 'update_job': 'DbManagementClient', + 'update_managed_database': 'DbManagementClient', + 'update_managed_database_group': 'DbManagementClient', + 'update_named_credential': 'DbManagementClient', + 'update_preferred_credential': 'DbManagementClient', + 'update_tablespace': 'DbManagementClient', + 'list_alert_logs': 'DiagnosabilityClient', + 'list_attention_logs': 'DiagnosabilityClient', + 'summarize_alert_log_counts': 'DiagnosabilityClient', + 'summarize_attention_log_counts': 'DiagnosabilityClient', + 'create_sql_tuning_set': 'SqlTuningClient', + 'get_execution_plan_stats_comparision': 'SqlTuningClient', + 'get_sql_execution_plan': 'SqlTuningClient', + 'get_sql_tuning_advisor_task_summary_report': 'SqlTuningClient', + 'list_sql_tuning_advisor_task_findings': 'SqlTuningClient', + 'list_sql_tuning_advisor_task_recommendations': 'SqlTuningClient', + 'list_sql_tuning_advisor_tasks': 'SqlTuningClient', + 'list_sql_tuning_sets': 'SqlTuningClient', +} +TOOL_NAMES = frozenset(INCLUDED_METHOD_NAMES) | BOOTSTRAP_TOOL_NAMES +MUTABLE_TOOL_NAMES = frozenset(MUTABLE_METHOD_NAMES) + + +TOOL_DESCRIPTIONS = { + 'get_compartment': 'Retrieves an OCI compartment by OCID. Use this operation to validate or resolve compartment scope before listing Database Management resources.', + 'list_compartments': 'Lists OCI compartments under a root compartment. Use this operation to discover compartment IDs for subsequent Database Management queries.', + 'addm_tasks': 'Lists the metadata for each ADDM task whose end snapshot time falls within the provided start and end time. Details include the name of the ADDM task, description, user, status and creation date time. Use this operation to review ADDM task metadata for a specified AWR snapshot time range.', + 'change_cloud_exadata_infrastructure_compartment': 'Moves the Exadata infrastructure and its related resources (Exadata storage server, Exadata storage server connectors and Exadata storage server grid) to the specified compartment. Use this operation to move an existing Database Management resource to another compartment.', + 'change_database_parameters': 'Changes database parameter values. Dynamic parameter changes take effect immediately; static parameter changes require a database restart. Use this operation after confirming the target resource and desired setting change.', + 'change_db_management_private_endpoint_compartment': 'Moves the Database Management private endpoint and its dependent resources to the specified compartment. Use this operation to move an existing Database Management resource to another compartment.', + 'change_external_db_system_compartment': 'Moves the external DB system and its related resources (excluding databases) to the specified compartment. Use this operation to move an existing Database Management resource to another compartment.', + 'change_external_exadata_infrastructure_compartment': 'Moves the Exadata infrastructure and its related resources (Exadata storage server, Exadata storage server connectors and Exadata storage server grid) to the specified compartment. Use this operation to move an existing Database Management resource to another compartment.', + 'change_job_compartment': 'Moves a job. Use this operation to move an existing Database Management resource to another compartment.', + 'change_managed_database_group_compartment': 'Moves a Managed Database Group to a different compartment. The destination compartment must not have a Managed Database Group with the same name. Use this operation to move an existing Database Management resource to another compartment.', + 'change_named_credential_compartment': 'Moves a named credential to a different compartment. The destination compartment must not have a named credential with the same name. Use this operation to move an existing Database Management resource to another compartment.', + 'change_plan_retention': 'Changes the retention period of unused plans. The period can range between 5 and 523 weeks. The database purges plans that have not been used for longer than the plan retention period. Use this operation after confirming the target resource and desired setting change.', + 'change_space_budget': 'Changes the disk space limit for the SQL Management Base. The allowable range for this limit is between 1% and 50%. Use this operation after confirming the target resource and desired setting change.', + 'change_sql_plan_baselines_attributes': 'Changes one or more attributes of a single plan or all plans associated with a SQL statement. Use this operation after confirming the target resource and desired setting change.', + 'check_cloud_db_system_connector_connection_status': 'Checks the status of the cloud DB system component connection specified in this connector. This operation will refresh the connectionStatus and timeConnectionStatusLastUpdated fields. Use this operation to validate connectivity or credential status and inspect returned status fields.', + 'check_cloud_exadata_storage_connector': 'Checks the status of the Exadata storage server connection specified by exadataStorageConnectorId. Use this operation to validate connectivity or credential status and inspect returned status fields.', + 'check_external_db_system_connector_connection_status': 'Checks the status of the external DB system component connection specified in this connector. This operation will refresh the connectionStatus and timeConnectionStatusLastUpdated fields. Use this operation to validate connectivity or credential status and inspect returned status fields.', + 'check_external_exadata_storage_connector': 'Checks the status of the Exadata storage server connection specified by exadataStorageConnectorId. Use this operation to validate connectivity or credential status and inspect returned status fields.', + 'create_cloud_db_system': 'Creates a cloud DB system and its related resources. Use this operation when the required compartment, target, and configuration details are known.', + 'create_cloud_db_system_connector': 'Creates a new cloud connector. Use this operation when the required compartment, target, and configuration details are known.', + 'create_cloud_db_system_discovery': 'Creates a cloud DB system discovery resource and initiates the discovery process. Use this operation when the required compartment, target, and configuration details are known.', + 'create_cloud_exadata_infrastructure': 'Creates an OCI resource for the Exadata infrastructure and enables the Monitoring service for the Exadata infrastructure. The following resource/subresources are created: Infrastructure Storage server connectors Storage servers Storage grids Use this operation when the required compartment, target, and configuration details are known.', + 'create_cloud_exadata_storage_connector': 'Creates the Exadata storage server connector after validating the connection information. Use this operation when the required compartment, target, and configuration details are known.', + 'create_db_management_private_endpoint': 'Creates a new Database Management private endpoint. Use this operation when the required compartment, target, and configuration details are known.', + 'create_external_db_system': 'Creates an external DB system and its related resources. Use this operation when the required compartment, target, and configuration details are known.', + 'create_external_db_system_connector': 'Creates a new external connector. Use this operation when the required compartment, target, and configuration details are known.', + 'create_external_db_system_discovery': 'Creates an external DB system discovery resource and initiates the discovery process. Use this operation when the required compartment, target, and configuration details are known.', + 'create_external_exadata_infrastructure': 'Creates an OCI resource for the Exadata infrastructure and enables the Monitoring service for the Exadata infrastructure. The following resource/subresources are created: Infrastructure Storage server connectors Storage servers Storage grids Use this operation when the required compartment, target, and configuration details are known.', + 'create_external_exadata_storage_connector': 'Creates the Exadata storage server connector after validating the connection information. Use this operation when the required compartment, target, and configuration details are known.', + 'create_job': 'Creates a job to be executed on a Managed Database or Managed Database Group. Only one of the parameters, managedDatabaseId or managedDatabaseGroupId should be provided as input in CreateJobDetails resource in request body. Use this operation when the required compartment, target, and configuration details are known.', + 'create_managed_database_group': 'Creates a Managed Database Group. The group does not contain any Managed Databases when it is created, and they must be added later. Use this operation when the required compartment, target, and configuration details are known.', + 'create_named_credential': 'Creates a named credential. Use this operation when the required compartment, target, and configuration details are known.', + 'create_sql_tuning_set': 'Creates an empty Sql tuning set within the Managed Database specified by managedDatabaseId. Use this operation when the required compartment, target, and configuration details are known.', + 'create_tablespace': 'Creates a tablespace within the Managed Database specified by managedDatabaseId. Use this operation when the required compartment, target, and configuration details are known.', + 'disable_automatic_initial_plan_capture': 'Disables automatic initial plan capture. Use this operation to disable the feature for a known database, system, or Database Management resource.', + 'disable_automatic_spm_evolve_advisor_task': 'Disables the Automatic SPM Evolve Advisor task. One client controls both Automatic SQL Tuning Advisor and Automatic SPM Evolve Advisor. Thus, the same task enables or disables both. Use this operation to disable the feature for a known database, system, or Database Management resource.', + 'disable_autonomous_database_management_feature': 'Disables a Database Management feature for the specified Autonomous Database. Use this operation to disable the feature for a known database, system, or Database Management resource.', + 'disable_cloud_db_system_database_management': 'Disables Database Management service for all the components of the specified cloud DB system (except databases). Use this operation to disable the feature for a known database, system, or Database Management resource.', + 'disable_cloud_db_system_stack_monitoring': 'Disables Stack Monitoring for all the components of the specified cloud DB system (except databases). Use this operation to disable the feature for a known database, system, or Database Management resource.', + 'disable_cloud_exadata_infrastructure_management': 'Disables Database Management for the Exadata infrastructure specified by exadataInfrastructureId. It covers the following components: Exadata infrastructure Exadata storage grid Exadata storage server Note that Database Management will not be disabled for the VM Clusters within the Exadata infrastructure and should be disabled explicitly, if required. Use this operation to disable the feature for a known database, system, or Database Management resource.', + 'disable_database_management_feature': 'Disables a Database Management feature for the specified Oracle cloud database. Use this operation to disable the feature for a known database, system, or Database Management resource.', + 'disable_external_container_database_management_feature': 'Disables a Database Management feature for the specified external container database. Use this operation to disable the feature for a known database, system, or Database Management resource.', + 'disable_external_db_system_database_management': 'Disables Database Management service for all the components of the specified external DB system (except databases). Use this operation to disable the feature for a known database, system, or Database Management resource.', + 'disable_external_db_system_stack_monitoring': 'Disables Stack Monitoring for all the components of the specified external DB system (except databases). Use this operation to disable the feature for a known database, system, or Database Management resource.', + 'disable_external_exadata_infrastructure_management': 'Disables Database Management for the Exadata infrastructure specified by externalExadataInfrastructureId. It covers the following components: Exadata infrastructure Exadata storage grid Exadata storage server Note that Database Management will not be disabled for the DB systems within the Exadata infrastructure and should be disabled explicitly, if required. Use this operation to disable the feature for a known database, system, or Database Management resource.', + 'disable_external_non_container_database_management_feature': 'Disables a Database Management feature for the specified external non-container database. Use this operation to disable the feature for a known database, system, or Database Management resource.', + 'disable_external_pluggable_database_management_feature': 'Disables a Database Management feature for the specified external pluggable database. Use this operation to disable the feature for a known database, system, or Database Management resource.', + 'disable_high_frequency_automatic_spm_evolve_advisor_task': 'Disables the high-frequency Automatic SPM Evolve Advisor task. It is available only on Oracle Exadata Database Machine, Oracle Database Exadata Cloud Service (ExaCS) and Oracle Database Exadata Cloud@Customer (ExaCC). Use this operation to disable the feature for a known database, system, or Database Management resource.', + 'disable_pluggable_database_management_feature': 'Disables a Database Management feature for the specified Oracle cloud pluggable database. Use this operation to disable the feature for a known database, system, or Database Management resource.', + 'disable_sql_plan_baselines_usage': 'Disables the use of SQL plan baselines stored in SQL Management Base. When disabled, the optimizer does not use any SQL plan baselines. Use this operation to disable the feature for a known database, system, or Database Management resource.', + 'discover_cloud_exadata_infrastructure': 'Completes the Exadata system prechecking on the following: Verifies if the ASM connector is defined for each VM Cluster or return 400 status code with CONNECTOR_NOT_DEFINED error code. Verifies if the agents associated with ASM are valid and could be used for the Exadata storage servers or return 400 status code with INVALID_AGENT error code. Use this operation to start infrastructure discovery for the specified Database Management target.', + 'discover_external_exadata_infrastructure': 'Completes the Exadata system prechecking on the following: Verifies if the DB systems are valid RAC DB systems or return 400 status code with NON_RAC_DATABASE_SYSTEM error code. Verifies if the ASM connector defined for each DB system or return 400 status code with CONNECTOR_NOT_DEFINED error code. Use this operation to start infrastructure discovery for the specified Database Management target.', + 'enable_automatic_initial_plan_capture': 'Enables automatic initial plan capture. When enabled, the database checks whether executed SQL statements are eligible for automatic capture. It creates initial plan baselines for eligible statements. Use this operation to enable the feature for a known database, system, or Database Management resource.', + 'enable_automatic_spm_evolve_advisor_task': 'Enables the Automatic SPM Evolve Advisor task SYS_AUTO_SPM_EVOLVE_TASK for a managed database. The task runs daily in the maintenance window, evaluates alternative SQL plans from AWR and other sources, and adds better-performing plans to SQL plan baselines.', + 'enable_autonomous_database_management_feature': 'Enables a Database Management feature for the specified Autonomous Database. Use this operation to enable the feature for a known database, system, or Database Management resource.', + 'enable_cloud_db_system_database_management': 'Enables Database Management service for all the components of the specified cloud DB system (except databases). Use this operation to enable the feature for a known database, system, or Database Management resource.', + 'enable_cloud_db_system_stack_monitoring': 'Enables Stack Monitoring for all the components of the specified cloud DB system (except databases). Use this operation to enable the feature for a known database, system, or Database Management resource.', + 'enable_cloud_exadata_infrastructure_management': 'Enables Database Management for the Exadata infrastructure specified by exadataInfrastructureId. It covers the following components: Exadata infrastructure Exadata storage grid Exadata storage server Use this operation to enable the feature for a known database, system, or Database Management resource.', + 'enable_database_management_feature': 'Enables a Database Management feature for the specified cloud database. Use this operation to enable the feature for a known database, system, or Database Management resource.', + 'enable_external_container_database_management_feature': 'Enables a Database Management feature for the specified external container database. Use this operation to enable the feature for a known database, system, or Database Management resource.', + 'enable_external_db_system_database_management': 'Enables Database Management service for all the components of the specified external DB system (except databases). Use this operation to enable the feature for a known database, system, or Database Management resource.', + 'enable_external_db_system_stack_monitoring': 'Enables Stack Monitoring for all the components of the specified external DB system (except databases). Use this operation to enable the feature for a known database, system, or Database Management resource.', + 'enable_external_exadata_infrastructure_management': 'Enables Database Management for the Exadata infrastructure specified by externalExadataInfrastructureId. It covers the following components: Exadata infrastructure Exadata storage grid Exadata storage server Use this operation to enable the feature for a known database, system, or Database Management resource.', + 'enable_external_non_container_database_management_feature': 'Enables Database Management feature for the specified external non-container database. Use this operation to enable the feature for a known database, system, or Database Management resource.', + 'enable_external_pluggable_database_management_feature': 'Enables a Database Management feature for the specified external pluggable database. Use this operation to enable the feature for a known database, system, or Database Management resource.', + 'enable_high_frequency_automatic_spm_evolve_advisor_task': 'Enables the high-frequency Automatic SPM Evolve Advisor task. The high-frequency task runs every hour and runs for no longer than 30 minutes. These settings are not configurable. Use this operation to enable the feature for a known database, system, or Database Management resource.', + 'enable_pluggable_database_management_feature': 'Enables a Database Management feature for the specified Oracle cloud pluggable database. Use this operation to enable the feature for a known database, system, or Database Management resource.', + 'enable_sql_plan_baselines_usage': 'Enables the use of SQL plan baselines stored in SQL Management Base. When enabled, the optimizer uses SQL plan baselines to select plans to avoid potential performance regressions. Use this operation to enable the feature for a known database, system, or Database Management resource.', + 'generate_awr_snapshot': 'Creates an AWR snapshot for the target database. Use this operation to generate database diagnostic data for a known managed database.', + 'get_awr_db_report': 'Retrieves the AWR report for the specified database. Use this operation when generated report content is needed rather than resource inventory.', + 'get_awr_db_sql_report': 'Retrieves the SQL health check report for one SQL of the specified database. Use this operation when generated report content is needed rather than resource inventory.', + 'get_cloud_asm': 'Retrieves the details for the cloud ASM specified by cloudAsmId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_cloud_asm_configuration': 'Retrieves configuration details including disk groups for the cloud ASM specified by cloudAsmId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_cloud_asm_instance': 'Retrieves the details for the cloud ASM instance specified by cloudAsmInstanceId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_cloud_cluster': 'Retrieves the details for the cloud cluster specified by cloudClusterId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_cloud_cluster_instance': 'Retrieves the details for the cloud cluster instance specified by cloudClusterInstanceId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_cloud_db_home': 'Retrieves the details for the cloud DB home specified by cloudDbHomeId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_cloud_db_node': 'Retrieves the details for the cloud DB node specified by cloudDbNodeId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_cloud_db_system': 'Retrieves the details for the cloud DB system specified by cloudDbSystemId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_cloud_db_system_connector': 'Retrieves the details for the cloud connector specified by cloudDbSystemConnectorId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_cloud_db_system_discovery': 'Retrieves the details for the cloud DB system discovery resource specified by cloudDbSystemDiscoveryId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_cloud_exadata_infrastructure': 'Retrieves the details for the Exadata infrastructure specified by exadataInfrastructureId. It includes the VMCluster and storage grid within the Exadata infrastructure. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_cloud_exadata_storage_connector': 'Retrieves the details for the Exadata storage server connector specified by exadataStorageConnectorId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_cloud_exadata_storage_grid': 'Retrieves the details for the Exadata storage server grid specified by exadataStorageGridId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_cloud_exadata_storage_server': 'Retrieves the summary for the Exadata storage server specified by exadataStorageServerId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_cloud_iorm_plan': 'Retrieves the IORM plan from the specific Exadata storage server. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_cloud_listener': 'Retrieves the details for the cloud listener specified by cloudListenerId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_cloud_open_alert_history': 'Retrieves the open alerts from the specified Exadata storage server. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_cluster_cache_metric': 'Retrieves the metrics related to cluster cache for the Oracle Real Application Clusters (Oracle RAC) database specified by managedDatabaseId. Use this operation when metric data is needed for a known compartment, fleet, group, or database.', + 'get_database_fleet_backup_metrics': 'Retrieves the fleet of container databases (CDBs) and their backup details and metrics, in a compartment or Database Group. The databaseHostedIn query parameter must be provided to list either cloud or external databases. Either the CompartmentId or the ManagedDatabaseGroupId query parameters must be provided to retrieve the HA and backup metrics. Use this operation when metric data is needed for a known compartment, fleet, group, or database.', + 'get_database_fleet_dataguard_metrics': 'Retrieves the fleet of Oracle Data Guard-enabled container databases (CDBs) along with Data Guard metrics and standby databases, in a compartment or Database Group. Either the CompartmentId or the ManagedDatabaseGroupId query parameters must be provided to retrieve the list of databases and Data Guard metrics. Use this operation when metric data is needed for a known compartment, fleet, group, or database.', + 'get_database_fleet_ha_overview_metrics': 'Retrieves the fleet of container databases (CDBs) and their HA and backup metrics in a compartment or in a Database Group. Either the CompartmentId or the ManagedDatabaseGroupId query parameters must be provided to retrieve the HA and backup metrics. Use this operation when metric data is needed for a known compartment, fleet, group, or database.', + 'get_database_fleet_health_metrics': 'Retrieves the health metrics for a fleet of databases in a compartment or in a Managed Database Group. Either the CompartmentId or the ManagedDatabaseGroupId query parameters must be provided to retrieve the health metrics. Use this operation when metric data is needed for a known compartment, fleet, group, or database.', + 'get_database_ha_backup_details': 'Retrieves HA and backup details with metrics and backup history for a single database. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_database_home_metrics': 'Retrieves a summary of the activity and resource usage metrics like DB Time, CPU, User I/O, Wait, Storage, and Memory for a Managed Database. Use this operation when metric data is needed for a known compartment, fleet, group, or database.', + 'get_dataguard_performance_metrics': 'Retrieves a historical summary of the Database Guard performance metrics for Managed Databases. If the peerDatabaseCompartmentId is specified, then the metrics are only retrieved from the specified compartment. If the peerDatabaseCompartmentId is not specified, then the metrics are retrieved from the compartment of the Managed Database specified by the ManagedDatabaseId. Use this operation when metric data is needed for a known compartment, fleet, group, or database.', + 'get_db_management_private_endpoint': 'Retrieves the details of a specific Database Management private endpoint. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_exadata_infrastructure_fleet_health_metrics': 'Retrieves the health metrics for a fleet of Exadata infrastructure in a compartment. The CompartmentId query parameters must be provided to retrieve the health metrics. Use this operation when metric data is needed for a known compartment, fleet, group, or database.', + 'get_execution_plan_stats_comparision': 'Retrieves a comparison of the existing SQL execution plan and a new plan. A SQL tuning task may suggest a new execution plan for a SQL, and this API retrieves the comparison report of the statistics of the two plans. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_external_asm': 'Retrieves the details for the external ASM specified by externalAsmId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_external_asm_configuration': 'Retrieves configuration details including disk groups for the external ASM specified by externalAsmId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_external_asm_instance': 'Retrieves the details for the external ASM instance specified by externalAsmInstanceId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_external_cluster': 'Retrieves the details for the external cluster specified by externalClusterId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_external_cluster_instance': 'Retrieves the details for the external cluster instance specified by externalClusterInstanceId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_external_db_home': 'Retrieves the details for the external DB home specified by externalDbHomeId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_external_db_node': 'Retrieves the details for the external DB node specified by externalDbNodeId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_external_db_system': 'Retrieves the details for the external DB system specified by externalDbSystemId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_external_db_system_connector': 'Retrieves the details for the external connector specified by externalDbSystemConnectorId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_external_db_system_discovery': 'Retrieves the details for the external DB system discovery resource specified by externalDbSystemDiscoveryId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_external_exadata_infrastructure': 'Retrieves the details for the Exadata infrastructure specified by externalExadataInfrastructureId. It includes the DB systems and storage grid within the Exadata infrastructure. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_external_exadata_storage_connector': 'Retrieves the details for the Exadata storage server connector specified by exadataStorageConnectorId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_external_exadata_storage_grid': 'Retrieves the details for the Exadata storage server grid specified by exadataStorageGridId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_external_exadata_storage_server': 'Retrieves the summary for the Exadata storage server specified by exadataStorageServerId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_external_listener': 'Retrieves the details for the external listener specified by externalListenerId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_iorm_plan': 'Retrieves the IORM plan from the specific Exadata storage server. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_job': 'Retrieves the details of the job specified by jobId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_job_execution': 'Retrieves the details of the job execution specified by jobExecutionId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_job_run': 'Retrieves the details of the job run specified by jobRunId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_managed_database': 'Retrieves the details of the Managed Database specified by managedDatabaseId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_managed_database_group': 'Retrieves the details of the Managed Database Group specified by managedDatabaseGroupId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_named_credential': 'Retrieves the details for the named credential specified by namedCredentialId. Use this operation to inspect credential metadata, not secret values.', + 'get_open_alert_history': 'Retrieves the open alerts from the specified Exadata storage server. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_optimizer_statistics_advisor_execution': 'Retrieves a comprehensive report of the Optimizer Statistics Advisor execution, which includes details of the Managed Database, findings, recommendations, rationale, and examples. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_optimizer_statistics_advisor_execution_script': 'Retrieves the Oracle system-generated script for the specified Optimizer Statistics Advisor execution. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_optimizer_statistics_collection_operation': 'Retrieves a detailed report of the Optimizer Statistics Collection operation for the specified Managed Database. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_pdb_metrics': 'Retrieves a summary of the resource usage metrics such as CPU, User I/O, and Storage for each PDB within a specific CDB. If comparmentId is specified, then the metrics for each PDB (within the CDB) in the specified compartment are retrieved. If compartmentId is not specified, then the metrics for all the PDBs within the CDB are retrieved. Use this operation when metric data is needed for a known compartment, fleet, group, or database.', + 'get_peer_database_metrics': 'Retrieves comparative Data Guard performance metrics for peer Managed Databases over a requested time range. Use this operation to compare baseline and target values such as apply lag, transport lag, redo generation, and role-specific health indicators.', + 'get_preferred_credential': 'Retrieves the preferred credential details for a Managed Database based on credentialName. Use this operation to inspect credential metadata, not secret values.', + 'get_sql_execution_plan': 'Retrieves a SQL execution plan for the SQL being tuned. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_sql_plan_baseline': 'Retrieves the SQL plan baseline details for the specified planName. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_sql_plan_baseline_configuration': 'Retrieves the configuration details of SQL plan baselines for the specified Managed Database. The details include the settings for the capture and use of SQL plan baselines, SPM Evolve Advisor task, and SQL Management Base. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_sql_tuning_advisor_task_summary_report': 'Retrieves the summary report for the specified SQL Tuning Advisor task. Use this operation when generated report content is needed rather than resource inventory.', + 'get_tablespace': 'Retrieves the details of the tablespace specified by tablespaceName within the Managed Database specified by managedDatabaseId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_top_sql_cpu_activity': 'Retrieves the SQL IDs with the top CPU activity from the Exadata storage server. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_user': 'Retrieves the details of the user specified by managedDatabaseId and userName. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'get_work_request': 'Retrieves the status of the work request with the given Work Request ID. Use this operation when the target identifier is already known; use a list operation to discover candidates.', + 'list_alert_logs': 'Lists the alert logs for the specified Managed Database. Use this operation to inspect diagnostic log entries before narrowing the database or time window.', + 'list_asm_properties': 'Retrieves the list of ASM properties for the specified managedDatabaseId. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_associated_databases': 'Retrieves the list of databases using a specific Database Management private endpoint. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_attention_logs': 'Lists the attention logs for the specified Managed Database. Use this operation to inspect diagnostic log entries before narrowing the database or time window.', + 'list_awr_db_snapshots': 'Lists AWR snapshots for the specified database in the AWR. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_awr_dbs': 'Retrieves the list of databases and their snapshot summary details available in the AWR of the specified Managed Database. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_cloud_asm_disk_groups': 'Lists ASM disk groups for the cloud ASM specified by cloudAsmId. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_cloud_asm_instances': 'Lists the ASM instances in the specified cloud ASM. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_cloud_asm_users': 'Lists ASM users for the cloud ASM specified by cloudAsmId. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_cloud_asms': 'Lists the ASMs in the specified cloud DB system. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_cloud_cluster_instances': 'Lists the cluster instances in the specified cloud cluster. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_cloud_clusters': 'Lists the clusters in the specified cloud DB system. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_cloud_databases': 'Lists the cloud databases in the specified compartment or in the specified DB system. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_cloud_db_homes': 'Lists the DB homes in the specified cloud DB system. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_cloud_db_nodes': 'Lists the cloud DB nodes in the specified cloud DB system. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_cloud_db_system_connectors': 'Lists the cloud connectors in the specified cloud DB system. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_cloud_db_system_discoveries': 'Lists the cloud DB system discovery resources in the specified compartment. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_cloud_db_systems': 'Lists the cloud DB systems in the specified compartment. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_cloud_exadata_infrastructures': 'Lists the Exadata infrastructure resources in the specified compartment. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_cloud_exadata_storage_connectors': 'Lists the Exadata storage server connectors for the specified Exadata infrastructure. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_cloud_exadata_storage_servers': 'Lists the Exadata storage servers for the specified Exadata infrastructure. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_cloud_listener_services': 'Lists the database services registered with the specified cloud listener for the specified Managed Database. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_cloud_listeners': 'Lists the listeners in the specified cloud DB system. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_consumer_group_privileges': 'Retrieves the list of consumer group privileges granted to a specific user. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_cursor_cache_statements': 'Lists the SQL statements from shared SQL area, also called the cursor cache. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_data_access_containers': "Retrieves the list of containers for a specific user. This is only applicable if ALL_CONTAINERS !='Y'. Use this operation to discover identifiers and inventory before calling get, update, or action operations.", + 'list_database_parameters': 'Retrieves the list of database parameters for the specified Managed Database. The parameters are listed in alphabetical order, along with their current values. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_db_management_private_endpoints': 'Retrieves a list of Database Management private endpoints. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_external_asm_disk_groups': 'Lists ASM disk groups for the external ASM specified by externalAsmId. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_external_asm_instances': 'Lists the ASM instances in the specified external ASM. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_external_asm_users': 'Lists ASM users for the external ASM specified by externalAsmId. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_external_asms': 'Lists the ASMs in the specified external DB system. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_external_cluster_instances': 'Lists the cluster instances in the specified external cluster. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_external_clusters': 'Lists the clusters in the specified external DB system. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_external_databases': 'Lists the external databases in the specified compartment or in the specified DB system. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_external_db_homes': 'Lists the DB homes in the specified external DB system. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_external_db_nodes': 'Lists the external DB nodes in the specified external DB system. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_external_db_system_connectors': 'Lists the external connectors in the specified external DB system. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_external_db_system_discoveries': 'Lists the external DB system discovery resources in the specified compartment. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_external_db_systems': 'Lists the external DB systems in the specified compartment. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_external_exadata_infrastructures': 'Lists the Exadata infrastructure resources in the specified compartment. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_external_exadata_storage_connectors': 'Lists the Exadata storage server connectors for the specified Exadata infrastructure. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_external_exadata_storage_servers': 'Lists the Exadata storage servers for the specified Exadata infrastructure. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_external_listener_services': 'Lists the database services registered with the specified external listener for the specified Managed Database. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_external_listeners': 'Lists the listeners in the specified external DB system. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_job_executions': 'Retrieves the job execution for a specific ID or the list of job executions for a job, job run, Managed Database or Managed Database Group in a specific compartment. Only one of the parameters, ID, jobId, jobRunId, managedDatabaseId or managedDatabaseGroupId should be provided. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_job_runs': 'Retrieves the job run for a specific ID or the list of job runs for a job, Managed Database or Managed Database Group in a specific compartment. Only one of the parameters, ID, jobId, managedDatabaseId, or managedDatabaseGroupId should be provided. If none of these parameters is provided, all the job runs in the compartment are listed. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_jobs': 'Retrieves the job for a specific ID or the list of jobs for a Managed Database or Managed Database Group in a specific compartment. Only one of the parameters, ID, managedDatabaseId or managedDatabaseGroupId, should be provided. If none of these parameters is provided, all the jobs in the compartment are listed. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_managed_database_groups': 'Retrieves the Managed Database Group for a specific ID or the list of Managed Database Groups in a specific compartment. Managed Database Groups can also be filtered based on the name parameter. Only one of the parameters, ID or name should be provided. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_managed_databases': 'Retrieves the Managed Database for a specific ID or the list of Managed Databases in a specific compartment. Managed Databases can be filtered based on the name parameter. Only one of the parameters, ID or name should be provided. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_named_credentials': 'Retrieves a single named credential specified by the name or all the named credentials in a specific compartment. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_object_privileges': 'Retrieves the list of object privileges granted to a specific user. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_optimizer_statistics_advisor_executions': 'Lists the details of the Optimizer Statistics Advisor task executions, such as their duration, and the number of findings, if any. Optionally, you can specify a date-time range (of seven days) to obtain the list of executions that fall within the specified time range. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_optimizer_statistics_collection_aggregations': 'Retrieves a list of the optimizer statistics collection operations per hour, grouped by task or object status for the specified Managed Database. You must specify a value for GroupByQueryParam to determine whether the data should be grouped by task status or task object status. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_optimizer_statistics_collection_operations': 'Lists the Optimizer Statistics Collection (Auto and Manual) task operation summary for the specified Managed Database. The summary includes the details of each operation and the number of tasks grouped by status: Completed, In Progress, Failed, and so on. Optionally, you can specify a date-time range (of seven days) to obtain the list of operations that fall within the specified time. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_preferred_credentials': 'Retrieves the list of preferred credentials for a given Managed Database. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_proxied_for_users': 'Retrieves the list of users on whose behalf the current user acts as proxy. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_proxy_users': 'Retrieves the list of proxy users for the current user. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_roles': 'Retrieves the list of roles granted to a specific user. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_sql_plan_baseline_jobs': 'Lists the database jobs used for loading SQL plan baselines in the specified Managed Database. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_sql_plan_baselines': 'Lists the SQL plan baselines for the specified Managed Database. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_sql_tuning_advisor_task_findings': 'Retrieves an array of the details of the findings that match specific filters. Use this operation to discover SQL tuning tasks, findings, recommendations, or tuning sets before selecting a specific item.', + 'list_sql_tuning_advisor_task_recommendations': 'Retrieves the findings and possible actions for a given object in a SQL tuning task. The task ID and object ID are used to retrieve the findings and recommendations. Use this operation to discover SQL tuning tasks, findings, recommendations, or tuning sets before selecting a specific item.', + 'list_sql_tuning_advisor_tasks': 'Lists the SQL Tuning Advisor tasks for the specified Managed Database. Use this operation to discover SQL tuning tasks, findings, recommendations, or tuning sets before selecting a specific item.', + 'list_sql_tuning_sets': 'Lists the SQL tuning sets for the specified Managed Database. Use this operation to discover SQL tuning tasks, findings, recommendations, or tuning sets before selecting a specific item.', + 'list_system_privileges': 'Retrieves the list of system privileges granted to a specific user. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_table_statistics': 'Lists the database table statistics grouped by different statuses such as Not Stale Stats, Stale Stats, and No Stats. This also includes the percentage of each status. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_tablespaces': 'Retrieves the list of tablespaces for the specified managedDatabaseId. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_users': 'Retrieves the list of users for the specified managedDatabaseId. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_work_request_errors': 'Returns a paginated list of errors for a given work request. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'list_work_request_logs': 'Returns a paginated list of logs for a given work request. Use this operation to inspect diagnostic log entries before narrowing the database or time window.', + 'list_work_requests': 'Lists the work requests in a specific compartment. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', + 'summarize_alert_log_counts': 'Retrieves the counts of alert logs for the specified Managed Database. Use this operation for aggregate diagnostic log counts instead of individual log entries.', + 'summarize_attention_log_counts': 'Retrieves the counts of attention logs for the specified Managed Database. Use this operation for aggregate diagnostic log counts instead of individual log entries.', + 'summarize_awr_db_cpu_usages': 'Summarizes the AWR CPU resource limits and metrics for the specified database in AWR. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', + 'summarize_awr_db_metrics': 'Summarizes the metric samples for the specified database in the AWR. The metric samples are summarized based on the Time dimension for each metric. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', + 'summarize_awr_db_parameter_changes': 'Summarizes the database parameter change history for one database parameter of the specified database in AWR. One change history record contains the previous value, the changed value, and the corresponding time range. If the database parameter value was changed multiple times within the time range, then multiple change history records are created for the same parameter. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', + 'summarize_awr_db_parameters': 'Summarizes the database parameter history for the specified database in AWR. This includes the list of database parameters, with information on whether the parameter values were modified within the query time range. Note that each database parameter is only listed once. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', + 'summarize_awr_db_snapshot_ranges': 'Summarizes the AWR snapshot ranges that contain continuous snapshots, for the specified Managed Database. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', + 'summarize_awr_db_sysstats': 'Summarizes the AWR SYSSTAT sample data for the specified database in AWR. The statistical data is summarized based on the Time dimension for each statistic. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', + 'summarize_awr_db_top_wait_events': 'Summarizes the AWR top wait events. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', + 'summarize_awr_db_wait_event_buckets': 'Summarizes AWR wait event data into value buckets and frequency, for the specified database in the AWR. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', + 'summarize_awr_db_wait_events': 'Summarizes the AWR wait event sample data for the specified database in the AWR. The event data is summarized based on the Time dimension for each event. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', + 'summarize_cloud_asm_metrics': 'Retrieves metrics for the cloud ASM specified by cloudAsmId. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', + 'summarize_cloud_cluster_metrics': 'Retrieves metrics for the cloud cluster specified by cloudClusterId. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', + 'summarize_cloud_db_node_metrics': 'Retrieves metrics for the cloud DB node specified by cloudDbNodeId. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', + 'summarize_cloud_db_system_availability_metrics': 'Retrieves availability metrics for the components present in the cloud DB system specified by cloudDbSystemId. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', + 'summarize_cloud_listener_metrics': 'Retrieves metrics for the cloud listener specified by cloudListenerId. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', + 'summarize_external_asm_metrics': 'Retrieves metrics for the external ASM specified by externalAsmId. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', + 'summarize_external_cluster_metrics': 'Retrieves metrics for the external cluster specified by externalClusterId. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', + 'summarize_external_db_node_metrics': 'Retrieves metrics for the external DB node specified by externalDbNodeId. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', + 'summarize_external_db_system_availability_metrics': 'Retrieves availability metrics for the components present in the external DB system specified by externalDbSystemId. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', + 'summarize_external_listener_metrics': 'Retrieves metrics for the external listener specified by externalListenerId. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', + 'summarize_job_executions_statuses': 'Retrieves the number of job executions grouped by status for a job, Managed Database, or Database Group in a specific compartment. Only one of the parameters, jobId, managedDatabaseId, or managedDatabaseGroupId should be provided. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', + 'summarize_managed_database_availability_metrics': 'Retrieves the availability metrics related to managed database for the Oracle database specified by managedDatabaseId. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', + 'summarize_sql_plan_baselines': 'Retrieves the number of SQL plan baselines aggregated by their attributes. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', + 'summarize_sql_plan_baselines_by_last_execution': 'Retrieves the number of SQL plan baselines aggregated by the age of their last execution in weeks. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', + 'update_cloud_asm': 'Updates the cloud ASM specified by cloudAsmId. Use this operation after confirming the target identifier and desired attributes.', + 'update_cloud_asm_instance': 'Updates the cloud ASM instance specified by cloudAsmInstanceId. Use this operation after confirming the target identifier and desired attributes.', + 'update_cloud_cluster': 'Updates the cloud cluster specified by cloudClusterId. Use this operation after confirming the target identifier and desired attributes.', + 'update_cloud_cluster_instance': 'Updates the cloud cluster instance specified by cloudClusterInstanceId. Use this operation after confirming the target identifier and desired attributes.', + 'update_cloud_db_home': 'Updates the cloud DB home specified by cloudDbHomeId. Use this operation after confirming the target identifier and desired attributes.', + 'update_cloud_db_node': 'Updates the cloud DB node specified by cloudDbNodeId. Use this operation after confirming the target identifier and desired attributes.', + 'update_cloud_db_system': 'Updates the cloud DB system specified by cloudDbSystemId. Use this operation after confirming the target identifier and desired attributes.', + 'update_cloud_db_system_connector': 'Updates the cloud connector specified by cloudDbSystemConnectorId. Use this operation after confirming the target identifier and desired attributes.', + 'update_cloud_db_system_discovery': 'Updates the cloud DB system discovery specified by cloudDbSystemDiscoveryId. Use this operation after confirming the target identifier and desired attributes.', + 'update_cloud_exadata_infrastructure': 'Updates the details for the Exadata infrastructure specified by exadataInfrastructureId. Use this operation after confirming the target identifier and desired attributes.', + 'update_cloud_exadata_storage_connector': 'Updates the Exadata storage server connector specified by exadataStorageConnectorId. Use this operation after confirming the target identifier and desired attributes.', + 'update_cloud_exadata_storage_grid': 'Updates the Exadata storage server grid specified by exadataStorageGridId. Use this operation after confirming the target identifier and desired attributes.', + 'update_cloud_exadata_storage_server': 'Updates the Exadata storage server specified by exadataStorageServerId. Use this operation after confirming the target identifier and desired attributes.', + 'update_cloud_listener': 'Updates the cloud listener specified by cloudListenerId. Use this operation after confirming the target identifier and desired attributes.', + 'update_db_management_private_endpoint': 'Updates one or more attributes of a specific Database Management private endpoint. Use this operation after confirming the target identifier and desired attributes.', + 'update_external_asm': 'Updates the external ASM specified by externalAsmId. Use this operation after confirming the target identifier and desired attributes.', + 'update_external_asm_instance': 'Updates the external ASM instance specified by externalAsmInstanceId. Use this operation after confirming the target identifier and desired attributes.', + 'update_external_cluster': 'Updates the external cluster specified by externalClusterId. Use this operation after confirming the target identifier and desired attributes.', + 'update_external_cluster_instance': 'Updates the external cluster instance specified by externalClusterInstanceId. Use this operation after confirming the target identifier and desired attributes.', + 'update_external_db_home': 'Updates the external DB home specified by externalDbHomeId. Use this operation after confirming the target identifier and desired attributes.', + 'update_external_db_node': 'Updates the external DB node specified by externalDbNodeId. Use this operation after confirming the target identifier and desired attributes.', + 'update_external_db_system': 'Updates the external DB system specified by externalDbSystemId. Use this operation after confirming the target identifier and desired attributes.', + 'update_external_db_system_connector': 'Updates the external connector specified by externalDbSystemConnectorId. Use this operation after confirming the target identifier and desired attributes.', + 'update_external_db_system_discovery': 'Updates the external DB system discovery specified by externalDbSystemDiscoveryId. Use this operation after confirming the target identifier and desired attributes.', + 'update_external_exadata_infrastructure': 'Updates the details for the Exadata infrastructure specified by externalExadataInfrastructureId. Use this operation after confirming the target identifier and desired attributes.', + 'update_external_exadata_storage_connector': 'Updates the Exadata storage server connector specified by exadataStorageConnectorId. Use this operation after confirming the target identifier and desired attributes.', + 'update_external_exadata_storage_grid': 'Updates the Exadata storage server grid specified by exadataStorageGridId. Use this operation after confirming the target identifier and desired attributes.', + 'update_external_exadata_storage_server': 'Updates the Exadata storage server specified by exadataStorageServerId. Use this operation after confirming the target identifier and desired attributes.', + 'update_external_listener': 'Updates the external listener specified by externalListenerId. Use this operation after confirming the target identifier and desired attributes.', + 'update_job': 'Updates the details of the recurring scheduled job specified by jobId. Note that non-recurring (one time) jobs cannot be updated. Use this operation after confirming the target identifier and desired attributes.', + 'update_managed_database': 'Updates the Managed Database specified by managedDatabaseId. Use this operation after confirming the target identifier and desired attributes.', + 'update_managed_database_group': 'Updates the Managed Database Group specified by managedDatabaseGroupId. Use this operation after confirming the target identifier and desired attributes.', + 'update_named_credential': 'Updates the named credential specified by namedCredentialId. Use this operation after confirming the target identifier and desired attributes.', + 'update_preferred_credential': 'Updates the preferred credential based on the credentialName. Use this operation after confirming the target identifier and desired attributes.', + 'update_tablespace': 'Updates the attributes of the tablespace specified by tablespaceName within the Managed Database specified by managedDatabaseId. Use this operation after confirming the target identifier and desired attributes.', +} diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/models.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/models.py new file mode 100644 index 00000000..c5c3ba76 --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/models.py @@ -0,0 +1,8535 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at + +""" + +from __future__ import annotations + +from datetime import date, datetime +from typing import Any, Literal + +from pydantic import BaseModel, ConfigDict, Field + +from oracle.oci_oracle_db_observability.v1.conversion import to_plain_data + + +class DbmBaseModel(BaseModel): + """Base model for OCI DBM MCP schemas.""" + + model_config = ConfigDict( + alias_generator=None, + arbitrary_types_allowed=True, + extra="allow", + populate_by_name=True,) + + @classmethod + def from_oci(cls, value: Any): + return cls.model_validate(to_plain_data(value)) + + +class DbmRequestModel(DbmBaseModel): + """Base model for OCI DBM request schemas.""" + + model_config = ConfigDict( + alias_generator=None, + arbitrary_types_allowed=True, + extra="forbid", + populate_by_name=True,) + + +CompartmentAccessLevel = Literal["ANY", "ACCESSIBLE"] +CompartmentLifecycleState = Literal["CREATING", "ACTIVE", "INACTIVE", "DELETING", "DELETED", "UNKNOWN_ENUM_VALUE"] + + +class Compartment(DbmBaseModel): + """OCI Identity compartment metadata.""" + + id: str = Field(..., description="The OCID of the compartment.") + compartment_id: str | None = Field(None, alias="compartmentId", description="The OCID of the parent compartment.") + name: str | None = Field(None, description="The compartment name.") + description: str | None = Field(None, description="The compartment description.") + lifecycle_state: CompartmentLifecycleState | None = Field(None, alias="lifecycleState", description="The current lifecycle state of the compartment.") + time_created: datetime | None = Field(None, alias="timeCreated", description="The date and time the compartment was created.") + inactive_status: int | None = Field(None, alias="inactiveStatus", ge=0, description="The status of the compartment if it is inactive.") + freeform_tags: dict[str, str] | None = Field(None, alias="freeformTags", description="Free-form tags returned for the compartment.") + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias="definedTags", description="Defined tags returned for the compartment.") + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias="systemTags", description="System tags returned for the compartment.") + + +class CompartmentCollection(DbmBaseModel): + """Collection of OCI Identity compartments.""" + + items: list[Compartment] = Field(..., description="Compartments returned by the list request.") + count: int = Field(..., ge=0, description="Number of compartments returned.") + + +class ActivityTimeSeriesMetrics(DbmBaseModel): + """The response object representing activityMetric details for a specific Managed Database at a particular time.""" + + timestamp: datetime | None = Field(None, description='Gets the timestamp of this ActivityTimeSeriesMetrics.\nThe date and time the activity metric was created.') + cpu_time: MetricDataPoint | None = Field(None, alias='cpuTime', description='Gets the cpu_time of this ActivityTimeSeriesMetrics.') + wait_time: MetricDataPoint | None = Field(None, alias='waitTime', description='Gets the wait_time of this ActivityTimeSeriesMetrics.') + user_io_time: MetricDataPoint | None = Field(None, alias='userIoTime', description='Gets the user_io_time of this ActivityTimeSeriesMetrics.') + cpu_count: MetricDataPoint | None = Field(None, ge=0, alias='cpuCount', description='Gets the cpu_count of this ActivityTimeSeriesMetrics.') + cluster: MetricDataPoint | None = Field(None, description='Gets the cluster of this ActivityTimeSeriesMetrics.') + + +class AddDataFilesDetails(DbmRequestModel): + """The details required to add data files or temp files to the tablespace. +lease provide either credentialDetails or databaseCredential. It's recommended to provide databaseCredential""" + + credential_details: TablespaceAdminCredentialDetails | None = Field(None, alias='credentialDetails', description='Gets the credential_details of this AddDataFilesDetails.') + database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this AddDataFilesDetails.') + file_type: Literal['DATAFILE', 'TEMPFILE'] = Field(..., alias='fileType', description='**[Required]** Gets the file_type of this AddDataFilesDetails.\nSpecifies whether the file is a data file or temp file.\n\nAllowed values for this property are: "DATAFILE", "TEMPFILE"') + data_files: list[str] | None = Field(None, alias='dataFiles', description='Gets the data_files of this AddDataFilesDetails.\nThe list of data files or temp files added to the tablespace.') + file_count: int | None = Field(None, ge=0, alias='fileCount', description='Gets the file_count of this AddDataFilesDetails.\nThe number of data files or temp files to be added for the tablespace. This is for Oracle Managed Files only.') + file_size: TablespaceStorageSize | None = Field(None, alias='fileSize', description='Gets the file_size of this AddDataFilesDetails.\nThe size of each data file or temp file.') + is_reusable: bool | None = Field(None, alias='isReusable', description='Gets the is_reusable of this AddDataFilesDetails.\nSpecifies whether Oracle can reuse the data file or temp file. Reuse is only allowed when the file name is provided.') + is_auto_extensible: bool | None = Field(None, alias='isAutoExtensible', description='Gets the is_auto_extensible of this AddDataFilesDetails.\nSpecifies whether the data file or temp file can be extended automatically.') + auto_extend_next_size: TablespaceStorageSize | None = Field(None, alias='autoExtendNextSize', description='Gets the auto_extend_next_size of this AddDataFilesDetails.\nThe size of the next increment of disk space to be allocated automatically when more extents are required.') + auto_extend_max_size: TablespaceStorageSize | None = Field(None, alias='autoExtendMaxSize', description='Gets the auto_extend_max_size of this AddDataFilesDetails.\nThe maximum disk space allowed for automatic extension of the data files or temp files.') + is_max_size_unlimited: bool | None = Field(None, alias='isMaxSizeUnlimited', description='Gets the is_max_size_unlimited of this AddDataFilesDetails.\nSpecifies whether the disk space of the data file or temp file can be limited.') + + +class AddManagedDatabaseToManagedDatabaseGroupDetails(DbmRequestModel): + """The Managed Database details required to add it to a Managed Database Group.""" + + managed_database_id: str = Field(..., alias='managedDatabaseId', description='**[Required]** Gets the managed_database_id of this AddManagedDatabaseToManagedDatabaseGroupDetails. The OCID of the Managed Database.') + + +class AddmTaskSummary(DbmBaseModel): + """The object containing the ADDM task metadata.""" + + task_name: str | None = Field(None, alias='taskName', description='Gets the task_name of this AddmTaskSummary.\nThe name of the ADDM task.') + task_id: int = Field(..., alias='taskId', description='**[Required]** Gets the task_id of this AddmTaskSummary.\nThe ID number of the ADDM task.') + description: str | None = Field(None, description='Gets the description of this AddmTaskSummary.\nThe description of the ADDM task.') + db_user: str | None = Field(None, alias='dbUser', description='Gets the db_user of this AddmTaskSummary.\nThe database user who owns the ADDM task.') + status: Literal['INITIAL', 'EXECUTING', 'INTERRUPTED', 'COMPLETED', 'ERROR', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this AddmTaskSummary.\nThe status of the ADDM task.\n\nAllowed values for this property are: "INITIAL", "EXECUTING", "INTERRUPTED", "COMPLETED", "ERROR", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this AddmTaskSummary.\nThe creation date of the ADDM task.') + how_created: Literal['AUTO', 'MANUAL', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='howCreated', description='Gets the how_created of this AddmTaskSummary.\nA description of how the task was created.\n\nAllowed values for this property are: "AUTO", "MANUAL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + start_snapshot_time: datetime | None = Field(None, alias='startSnapshotTime', description='Gets the start_snapshot_time of this AddmTaskSummary.\nThe timestamp of the beginning AWR snapshot used in the ADDM task as defined by date-time RFC3339 format.') + end_snapshot_time: datetime | None = Field(None, alias='endSnapshotTime', description='Gets the end_snapshot_time of this AddmTaskSummary.\nThe timestamp of the ending AWR snapshot used in the ADDM task as defined by date-time RFC3339 format.') + begin_snapshot_id: int | None = Field(None, alias='beginSnapshotId', description='Gets the begin_snapshot_id of this AddmTaskSummary.\nThe ID number of the beginning AWR snapshot.') + end_snapshot_id: int | None = Field(None, alias='endSnapshotId', description='Gets the end_snapshot_id of this AddmTaskSummary.\nThe ID number of the ending AWR snapshot.') + findings: int | None = Field(None, description='Gets the findings of this AddmTaskSummary.\nThe number of ADDM findings.') + + +class AddmTasksCollection(DbmBaseModel): + """The list of ADDM task metadata.""" + + items: list[AddmTaskSummary] = Field(..., description='**[Required]** Gets the items of this AddmTasksCollection.\nThe list of ADDM task metadata.') + managed_database_id: str = Field(..., alias='managedDatabaseId', description='**[Required]** Gets the managed_database_id of this AddmTasksCollection. The OCID of the Managed Database.') + + +class AdvisorRule(DbmBaseModel): + """The details of the Optimizer Statistics Advisor rule.""" + + name: str = Field(..., description='**[Required]** Gets the name of this AdvisorRule.\nThe name of the rule.') + description: str = Field(..., description='**[Required]** Gets the description of this AdvisorRule.\nThe description of the rule.') + findings: list[RuleFinding] = Field(..., description='**[Required]** Gets the findings of this AdvisorRule.\nThe list of findings for the rule.') + + +class AlertLogCollection(DbmBaseModel): + """The list of alert logs.""" + + managed_database_id: str = Field(..., alias='managedDatabaseId', description='**[Required]** Gets the managed_database_id of this AlertLogCollection. The OCID of the Managed Database.') + items: list[AlertLogSummary] = Field(..., description='**[Required]** Gets the items of this AlertLogCollection.\nAn array of the alert logs.') + + +class AlertLogCountSummary(DbmBaseModel): + """The details for one alert log count entry.""" + + category: Literal['UNKNOWN', 'INCIDENT_ERROR', 'ERROR', 'WARNING', 'NOTIFICATION', 'TRACE', 'CRITICAL', 'SEVERE', 'IMPORTANT', 'NORMAL', 'OTHER', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the category of this AlertLogCountSummary.\nThe category of different alert logs.\n\nAllowed values for this property are: "UNKNOWN", "INCIDENT_ERROR", "ERROR", "WARNING", "NOTIFICATION", "TRACE", "CRITICAL", "SEVERE", "IMPORTANT", "NORMAL", "OTHER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + count: int = Field(..., ge=0, description='**[Required]** Gets the count of this AlertLogCountSummary.\nThe count of alert logs with specific category.') + + +class AlertLogCountsCollection(DbmBaseModel): + """The collection of the counts of different level or type of alert logs.""" + + managed_database_id: str = Field(..., alias='managedDatabaseId', description='**[Required]** Gets the managed_database_id of this AlertLogCountsCollection. The OCID of the Managed Database.') + items: list[AlertLogCountSummary] = Field(..., description='**[Required]** Gets the items of this AlertLogCountsCollection.\nAn array of the counts of different urgency or type of alert logs.') + + +class AlertLogSummary(DbmBaseModel): + """The detail for one alert log entry.""" + + message_level: Literal['CRITICAL', 'SEVERE', 'IMPORTANT', 'NORMAL', 'OTHER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='messageLevel', description='**[Required]** Gets the message_level of this AlertLogSummary.\nThe level of the alert log.\n\nAllowed values for this property are: "CRITICAL", "SEVERE", "IMPORTANT", "NORMAL", "OTHER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + message_type: Literal['UNKNOWN', 'INCIDENT_ERROR', 'ERROR', 'WARNING', 'NOTIFICATION', 'TRACE', 'OTHER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='messageType', description='**[Required]** Gets the message_type of this AlertLogSummary.\nThe type of alert log message.\n\nAllowed values for this property are: "UNKNOWN", "INCIDENT_ERROR", "ERROR", "WARNING", "NOTIFICATION", "TRACE", "OTHER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + message_content: str | None = Field(None, alias='messageContent', description='Gets the message_content of this AlertLogSummary.\nThe contents of the alert log message.') + timestamp: datetime | None = Field(None, description='Gets the timestamp of this AlertLogSummary.\nThe date and time the alert log was created.') + supplemental_detail: str | None = Field(None, alias='supplementalDetail', description='Gets the supplemental_detail of this AlertLogSummary.\nThe supplemental details of the alert log.') + file_location: str | None = Field(None, alias='fileLocation', description='Gets the file_location of this AlertLogSummary.\nThe alert log file location.') + + +class AllowedParameterValue(DbmBaseModel): + """A valid value for a database parameter.""" + + ordinal: float | None = Field(None, description='Gets the ordinal of this AllowedParameterValue.\nThe ordinal number in the list (1-based).') + value: str | None = Field(None, description='Gets the value of this AllowedParameterValue.\nThe parameter value at ordinal.') + is_default: bool | None = Field(None, alias='isDefault', description='Gets the is_default of this AllowedParameterValue.\nIndicates whether the given ordinal value is the default value for the parameter.') + + +class AsmConnectionCredentailsByName(DbmBaseModel): + """The existing named credential used to connect to the ASM instance.""" + + credential_type: Literal['NAME_REFERENCE', 'DETAILS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='credentialType', description='Gets the credential_type of this AsmConnectionCredentials.\nThe type of credential used to connect to the ASM instance.\n\nAllowed values for this property are: "NAME_REFERENCE", "DETAILS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + credential_name: str = Field(..., alias='credentialName', description='**[Required]** Gets the credential_name of this AsmConnectionCredentailsByName.\nThe name of the credential information that used to connect to the DB system resource.\nThe name should be in "x.y" format, where the length of "x" has a maximum of 64 characters,\nand length of "y" has a maximum of 199 characters. The name strings can contain letters,\nnumbers and the underscore character only. Other characters are not valid, except for\nthe "." character that separates the "x" and "y" portions of the name.\n*IMPORTANT* - The name must be unique within the OCI region the credential is being created in.\nIf you specify a name that duplicates the name of another credential within the same OCI region,\nyou may overwrite or corrupt the credential that is already using the name.\n\nFor example: inventorydb.abc112233445566778899') + + +class AsmConnectionCredentials(DbmBaseModel): + """The credentials used to connect to the ASM instance. Currently only the `DETAILS` type +is supported for creating MACS connector credentials.""" + + credential_type: Literal['NAME_REFERENCE', 'DETAILS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='credentialType', description='Gets the credential_type of this AsmConnectionCredentials.\nThe type of credential used to connect to the ASM instance.\n\nAllowed values for this property are: "NAME_REFERENCE", "DETAILS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class AsmConnectionCredentialsByDetails(DbmRequestModel): + """The credentials used to connect to the ASM instance.""" + + credential_type: Literal['NAME_REFERENCE', 'DETAILS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='credentialType', description='Gets the credential_type of this AsmConnectionCredentials.\nThe type of credential used to connect to the ASM instance.\n\nAllowed values for this property are: "NAME_REFERENCE", "DETAILS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + credential_name: str | None = Field(None, alias='credentialName', description='Gets the credential_name of this AsmConnectionCredentialsByDetails.\nThe name of the credential information that used to connect to the DB system resource.\nThe name should be in "x.y" format, where the length of "x" has a maximum of 64 characters,\nand length of "y" has a maximum of 199 characters. The name strings can contain letters,\nnumbers and the underscore character only. Other characters are not valid, except for\nthe "." character that separates the "x" and "y" portions of the name.\n*IMPORTANT* - The name must be unique within the OCI region the credential is being created in.\nIf you specify a name that duplicates the name of another credential within the same OCI region,\nyou may overwrite or corrupt the credential that is already using the name.\n\nFor example: inventorydb.abc112233445566778899') + user_name: str = Field(..., alias='userName', description='**[Required]** Gets the user_name of this AsmConnectionCredentialsByDetails.\nThe user name used to connect to the ASM instance.') + password_secret_id: str = Field(..., alias='passwordSecretId', description='**[Required]** Gets the password_secret_id of this AsmConnectionCredentialsByDetails. The OCID of the secret containing the user password.') + role: Literal['SYSASM', 'SYSDBA', 'SYSOPER', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the role of this AsmConnectionCredentialsByDetails.\nThe role of the user connecting to the ASM instance.\n\nAllowed values for this property are: "SYSASM", "SYSDBA", "SYSOPER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class AsmConnectionString(DbmBaseModel): + """The ASM instance connection string.""" + + hosts: list[str] = Field(..., description='**[Required]** Gets the hosts of this AsmConnectionString.\nThe list of host names of the ASM instances.') + port: int = Field(..., description='**[Required]** Gets the port of this AsmConnectionString.\nThe port used to connect to the ASM instance.') + service: str = Field(..., description='**[Required]** Gets the service of this AsmConnectionString.\nThe service name of the ASM instance.') + protocol: Literal['TCP', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the protocol of this AsmConnectionString.\nThe protocol used to connect to the ASM instance.\n\nAllowed values for this property are: "TCP", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class AsmProperty(DbmBaseModel): + """The details of ASM properties.""" + + disk_group: str = Field(..., alias='diskGroup', description='**[Required]** Gets the disk_group of this AsmProperty.\nThe name of the disk group.') + + +class AsmPropertyCollection(DbmBaseModel): + """A collection of ASM properties for a specific Managed Database.""" + + items: list[AsmPropertySummary] = Field(..., description='**[Required]** Gets the items of this AsmPropertyCollection.\nAn array of AsmPropertySummary resources.') + + +class AsmPropertySummary(DbmBaseModel): + """The summary of ASM properties.""" + + disk_group: str = Field(..., alias='diskGroup', description='**[Required]** Gets the disk_group of this AsmPropertySummary.\nThe name of the disk group.') + + +class AssociatedCloudComponent(DbmBaseModel): + """The details of the associated component.""" + + component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this AssociatedCloudComponent.\nThe identifier of the associated component.') + component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='componentType', description='Gets the component_type of this AssociatedCloudComponent.\nThe type of associated component.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + association_type: Literal['CONTAINS', 'USES', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='associationType', description='**[Required]** Gets the association_type of this AssociatedCloudComponent.\nThe association type.\n\nAllowed values for this property are: "CONTAINS", "USES", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class AssociatedComponent(DbmBaseModel): + """The details of the associated component.""" + + component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this AssociatedComponent.\nThe identifier of the associated component.') + component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='componentType', description='Gets the component_type of this AssociatedComponent.\nThe type of associated component.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + association_type: Literal['CONTAINS', 'USES', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='associationType', description='**[Required]** Gets the association_type of this AssociatedComponent.\nThe association type.\n\nAllowed values for this property are: "CONTAINS", "USES", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class AssociatedDatabaseCollection(DbmBaseModel): + """A collection of databases using a Database Management private endpoint.""" + + items: list[AssociatedDatabaseSummary] = Field(..., description='**[Required]** Gets the items of this AssociatedDatabaseCollection.\nA list of databases using a Database Management private endpoint.') + + +class AssociatedDatabaseSummary(DbmBaseModel): + """The summary of a database currently using a Database Management private endpoint.""" + + id: str = Field(..., description='**[Required]** Gets the id of this AssociatedDatabaseSummary. The OCID of the database.') + name: str = Field(..., description='**[Required]** Gets the name of this AssociatedDatabaseSummary.\nThe name of the database.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this AssociatedDatabaseSummary. The compartment OCID of the database.') + time_registered: datetime = Field(..., alias='timeRegistered', description='**[Required]** Gets the time_registered of this AssociatedDatabaseSummary.\nThe time when Database Management was enabled for the database.') + + +class AssociatedServiceDetails(DbmRequestModel): + """The details of the associated service that will be enabled or disabled for an external DB System.""" + + is_enabled: bool = Field(..., alias='isEnabled', description='**[Required]** Gets the is_enabled of this AssociatedServiceDetails.\nThe status of the associated service.') + metadata: str | None = Field(None, description='Gets the metadata of this AssociatedServiceDetails.\nThe associated service-specific inputs in JSON string format, which Database Management can identify.') + + +class AttentionLogCollection(DbmBaseModel): + """The list of attention logs.""" + + managed_database_id: str = Field(..., alias='managedDatabaseId', description='**[Required]** Gets the managed_database_id of this AttentionLogCollection. The OCID of the Managed Database.') + items: list[AttentionLogSummary] = Field(..., description='**[Required]** Gets the items of this AttentionLogCollection.\nAn array of the attention logs.') + + +class AttentionLogCountSummary(DbmBaseModel): + """The details for one attention log count entry.""" + + category: Literal['UNKNOWN', 'INCIDENT_ERROR', 'ERROR', 'WARNING', 'NOTIFICATION', 'TRACE', 'IMMEDIATE', 'SOON', 'DEFERRABLE', 'INFO', 'OTHER', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the category of this AttentionLogCountSummary.\nThe category of different attention logs.\n\nAllowed values for this property are: "UNKNOWN", "INCIDENT_ERROR", "ERROR", "WARNING", "NOTIFICATION", "TRACE", "IMMEDIATE", "SOON", "DEFERRABLE", "INFO", "OTHER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + count: int = Field(..., ge=0, description='**[Required]** Gets the count of this AttentionLogCountSummary.\nThe count of attention logs with specific category.') + + +class AttentionLogCountsCollection(DbmBaseModel): + """The collection of the counts of different urgency or type of attention logs.""" + + managed_database_id: str = Field(..., alias='managedDatabaseId', description='**[Required]** Gets the managed_database_id of this AttentionLogCountsCollection. The OCID of the Managed Database.') + items: list[AttentionLogCountSummary] = Field(..., description='**[Required]** Gets the items of this AttentionLogCountsCollection.\nAn array of the counts of different urgency or type of attention logs.') + + +class AttentionLogSummary(DbmBaseModel): + """The details for one attention log entry.""" + + message_urgency: Literal['IMMEDIATE', 'SOON', 'DEFERRABLE', 'INFO', 'OTHER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='messageUrgency', description='**[Required]** Gets the message_urgency of this AttentionLogSummary.\nThe urgency of the attention log.\n\nAllowed values for this property are: "IMMEDIATE", "SOON", "DEFERRABLE", "INFO", "OTHER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + message_type: Literal['UNKNOWN', 'INCIDENT_ERROR', 'ERROR', 'WARNING', 'NOTIFICATION', 'TRACE', 'OTHER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='messageType', description='**[Required]** Gets the message_type of this AttentionLogSummary.\nThe type of attention log message.\n\nAllowed values for this property are: "UNKNOWN", "INCIDENT_ERROR", "ERROR", "WARNING", "NOTIFICATION", "TRACE", "OTHER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + message_content: str | None = Field(None, alias='messageContent', description='Gets the message_content of this AttentionLogSummary.\nThe contents of the attention log message.') + timestamp: datetime | None = Field(None, description='Gets the timestamp of this AttentionLogSummary.\nThe date and time the attention log was created.') + scope: str | None = Field(None, description='Gets the scope of this AttentionLogSummary.\nThe database scope for the attention log.') + target_user: str | None = Field(None, alias='targetUser', description='Gets the target_user of this AttentionLogSummary.\nThe user who must act on the attention log message.') + cause: str | None = Field(None, description='Gets the cause of this AttentionLogSummary.\nThe cause of the attention log.') + action: str | None = Field(None, description='Gets the action of this AttentionLogSummary.\nThe recommended action to handle the attention log.') + supplemental_detail: str | None = Field(None, alias='supplementalDetail', description='Gets the supplemental_detail of this AttentionLogSummary.\nThe supplemental details of the attention log.') + file_location: str | None = Field(None, alias='fileLocation', description='Gets the file_location of this AttentionLogSummary.\nThe attention log file location.') + + +class AutomaticCaptureFilter(DbmBaseModel): + """An automatic capture filter that enables you to capture only those SQL statements +that you want, and exclude noncritical statements.""" + + name: Literal['AUTO_CAPTURE_SQL_TEXT', 'AUTO_CAPTURE_PARSING_SCHEMA_NAME', 'AUTO_CAPTURE_MODULE', 'AUTO_CAPTURE_ACTION', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the name of this AutomaticCaptureFilter.\nThe name of the automatic capture filter.\n\n- AUTO_CAPTURE_SQL_TEXT: Search pattern to apply to SQL text.\n- AUTO_CAPTURE_PARSING_SCHEMA_NAME: Parsing schema to include or exclude for SQL plan management auto capture.\n- AUTO_CAPTURE_MODULE: Module to include or exclude for SQL plan management auto capture.\n- AUTO_CAPTURE_ACTION: Action to include or exclude for SQL plan management automatic capture.\n\nAllowed values for this property are: "AUTO_CAPTURE_SQL_TEXT", "AUTO_CAPTURE_PARSING_SCHEMA_NAME", "AUTO_CAPTURE_MODULE", "AUTO_CAPTURE_ACTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + values_to_include: list[str] | None = Field(None, alias='valuesToInclude', description='Gets the values_to_include of this AutomaticCaptureFilter.\nA list of filter values to include.') + values_to_exclude: list[str] | None = Field(None, alias='valuesToExclude', description='Gets the values_to_exclude of this AutomaticCaptureFilter.\nA list of filter values to exclude.') + time_last_modified: datetime | None = Field(None, alias='timeLastModified', description='Gets the time_last_modified of this AutomaticCaptureFilter.\nThe time the filter value was last updated.') + modified_by: str | None = Field(None, alias='modifiedBy', description='Gets the modified_by of this AutomaticCaptureFilter.\nThe database user who last updated the filter value.') + + +class AutomaticCaptureFilterDetails(DbmRequestModel): + """The details of a capture filter used to include or exclude SQL statements +in the initial automatic plan capture.""" + + name: Literal['AUTO_CAPTURE_SQL_TEXT', 'AUTO_CAPTURE_PARSING_SCHEMA_NAME', 'AUTO_CAPTURE_MODULE', 'AUTO_CAPTURE_ACTION'] = Field(..., description='**[Required]** Gets the name of this AutomaticCaptureFilterDetails.\nThe name of the automatic capture filter.\n\n- AUTO_CAPTURE_SQL_TEXT: Search pattern to apply to SQL text.\n- AUTO_CAPTURE_PARSING_SCHEMA_NAME: Parsing schema to include or exclude for SQL plan management auto capture.\n- AUTO_CAPTURE_MODULE: Module to include or exclude for SQL plan management auto capture.\n- AUTO_CAPTURE_ACTION: Action to include or exclude for SQL plan management automatic capture.\n\nAllowed values for this property are: "AUTO_CAPTURE_SQL_TEXT", "AUTO_CAPTURE_PARSING_SCHEMA_NAME", "AUTO_CAPTURE_MODULE", "AUTO_CAPTURE_ACTION"') + values_to_include: list[str] | None = Field(None, alias='valuesToInclude', description='Gets the values_to_include of this AutomaticCaptureFilterDetails.\nA list of filter values to include.') + values_to_exclude: list[str] | None = Field(None, alias='valuesToExclude', description='Gets the values_to_exclude of this AutomaticCaptureFilterDetails.\nA list of filter values to exclude.') + + +class AutonomousDatabaseDiagnosticsAndManagementFeatureDetails(DbmRequestModel): + """The details required to enable the Diagnostics and Management feature.""" + + feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH'] = Field(..., description='**[Required]** Gets the feature of this AutonomousDatabaseFeatureDetails.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH"') + database_connection_details: DatabaseConnectionDetails = Field(..., alias='databaseConnectionDetails', description='**[Required]** Gets the database_connection_details of this AutonomousDatabaseFeatureDetails.') + connector_details: ConnectorDetails | None = Field(None, alias='connectorDetails', description='Gets the connector_details of this AutonomousDatabaseFeatureDetails.') + + +class AutonomousDatabaseFeatureDetails(DbmRequestModel): + """The details required to enable the specified Database Management feature for an Autonomous Database.""" + + feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH'] = Field(..., description='**[Required]** Gets the feature of this AutonomousDatabaseFeatureDetails.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH"') + database_connection_details: DatabaseConnectionDetails = Field(..., alias='databaseConnectionDetails', description='**[Required]** Gets the database_connection_details of this AutonomousDatabaseFeatureDetails.') + connector_details: ConnectorDetails | None = Field(None, alias='connectorDetails', description='Gets the connector_details of this AutonomousDatabaseFeatureDetails.') + + +class AutonomousDatabaseSqlWatchFeatureDetails(DbmRequestModel): + """The details required to enable the SQL Watch feature.""" + + feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH'] = Field(..., description='**[Required]** Gets the feature of this AutonomousDatabaseFeatureDetails.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH"') + database_connection_details: DatabaseConnectionDetails = Field(..., alias='databaseConnectionDetails', description='**[Required]** Gets the database_connection_details of this AutonomousDatabaseFeatureDetails.') + connector_details: ConnectorDetails | None = Field(None, alias='connectorDetails', description='Gets the connector_details of this AutonomousDatabaseFeatureDetails.') + + +class AwrDbCollection(DbmBaseModel): + """The result of AWR query.""" + + name: str = Field(..., description='**[Required]** Gets the name of this AwrQueryResult.\nThe name of the query result.') + version: str | None = Field(None, description='Gets the version of this AwrQueryResult.\nThe version of the query result.') + query_key: str | None = Field(None, alias='queryKey', description='Gets the query_key of this AwrQueryResult.\nThe ID assigned to the query instance.') + db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') + awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='**[Required]** Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + items: list[AwrDbSummary] | None = Field(None, description='Gets the items of this AwrDbCollection.\nA list of AWR summary data.') + + +class AwrDbCpuUsageCollection(DbmBaseModel): + """The AWR CPU usage data.""" + + name: str = Field(..., description='**[Required]** Gets the name of this AwrQueryResult.\nThe name of the query result.') + version: str | None = Field(None, description='Gets the version of this AwrQueryResult.\nThe version of the query result.') + query_key: str | None = Field(None, alias='queryKey', description='Gets the query_key of this AwrQueryResult.\nThe ID assigned to the query instance.') + db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') + awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='**[Required]** Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + num_cpu_cores: int | None = Field(None, alias='numCpuCores', description='Gets the num_cpu_cores of this AwrDbCpuUsageCollection.\nThe number of available CPU cores, which include subcores of multicore and single-core CPUs.') + cpu_count: int | None = Field(None, ge=0, alias='cpuCount', description='Gets the cpu_count of this AwrDbCpuUsageCollection.\nThe number of CPUs available for the database to use.') + num_cpus: float | None = Field(None, alias='numCpus', description='Gets the num_cpus of this AwrDbCpuUsageCollection.\nThe number of available CPUs or processors.') + items: list[AwrDbCpuUsageSummary] | None = Field(None, description='Gets the items of this AwrDbCpuUsageCollection.\nA list of AWR CPU usage summary data.') + + +class AwrDbCpuUsageSummary(DbmBaseModel): + """A summary of the AWR CPU resource limits and metrics.""" + + timestamp: datetime | None = Field(None, description='Gets the timestamp of this AwrDbCpuUsageSummary.\nThe timestamp for the CPU summary data.') + avg_value: float | None = Field(None, alias='avgValue', description='Gets the avg_value of this AwrDbCpuUsageSummary.\nThe average CPU usage per second.') + + +class AwrDbMetricCollection(DbmBaseModel): + """The AWR metrics time series summary data.""" + + name: str = Field(..., description='**[Required]** Gets the name of this AwrQueryResult.\nThe name of the query result.') + version: str | None = Field(None, description='Gets the version of this AwrQueryResult.\nThe version of the query result.') + query_key: str | None = Field(None, alias='queryKey', description='Gets the query_key of this AwrQueryResult.\nThe ID assigned to the query instance.') + db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') + awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='**[Required]** Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + items: list[AwrDbMetricSummary] | None = Field(None, description='Gets the items of this AwrDbMetricCollection.\nA list of AWR metric summary data.') + + +class AwrDbMetricSummary(DbmBaseModel): + """The summary of the AWR metric data for a particular metric at a specific time.""" + + name: str = Field(..., description='**[Required]** Gets the name of this AwrDbMetricSummary.\nThe name of the metric.') + timestamp: datetime | None = Field(None, description='Gets the timestamp of this AwrDbMetricSummary.\nThe time of the sampling.') + avg_value: float | None = Field(None, alias='avgValue', description='Gets the avg_value of this AwrDbMetricSummary.\nThe average value of the sampling period.') + min_value: float | None = Field(None, alias='minValue', description='Gets the min_value of this AwrDbMetricSummary.\nThe minimum value of the sampling period.') + max_value: float | None = Field(None, alias='maxValue', description='Gets the max_value of this AwrDbMetricSummary.\nThe maximum value of the sampling period.') + + +class AwrDbParameterChangeCollection(DbmBaseModel): + """The AWR database parameter change history.""" + + name: str = Field(..., description='**[Required]** Gets the name of this AwrQueryResult.\nThe name of the query result.') + version: str | None = Field(None, description='Gets the version of this AwrQueryResult.\nThe version of the query result.') + query_key: str | None = Field(None, alias='queryKey', description='Gets the query_key of this AwrQueryResult.\nThe ID assigned to the query instance.') + db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') + awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='**[Required]** Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + items: list[AwrDbParameterChangeSummary] | None = Field(None, description='Gets the items of this AwrDbParameterChangeCollection.\nA list of AWR database parameter change summary data.') + + +class AwrDbParameterChangeSummary(DbmBaseModel): + """A summary of the changes made to a single AWR database parameter.""" + + time_begin: datetime | None = Field(None, alias='timeBegin', description='Gets the time_begin of this AwrDbParameterChangeSummary.\nThe start time of the interval.') + time_end: datetime | None = Field(None, alias='timeEnd', description='Gets the time_end of this AwrDbParameterChangeSummary.\nThe end time of the interval.') + instance_number: int | None = Field(None, alias='instanceNumber', description='Gets the instance_number of this AwrDbParameterChangeSummary.\nThe database instance number.') + previous_value: str | None = Field(None, alias='previousValue', description='Gets the previous_value of this AwrDbParameterChangeSummary.\nThe previous value of the database parameter.') + value: str | None = Field(None, description='Gets the value of this AwrDbParameterChangeSummary.\nThe current value of the database parameter.') + snapshot_id: int = Field(..., alias='snapshotId', description='**[Required]** Gets the snapshot_id of this AwrDbParameterChangeSummary. AWR snapshot identifier for the snapshot where the parameter value changed. This value is not an OCID.') + value_modified: str | None = Field(None, alias='valueModified', description='Gets the value_modified of this AwrDbParameterChangeSummary.\nIndicates whether the parameter has been modified after instance startup:\n - MODIFIED - Parameter has been modified with ALTER SESSION\n - SYSTEM_MOD - Parameter has been modified with ALTER SYSTEM (which causes all the currently logged in sessions’ values to be modified)\n - FALSE - Parameter has not been modified after instance startup') + is_default: bool | None = Field(None, alias='isDefault', description='Gets the is_default of this AwrDbParameterChangeSummary.\nIndicates whether the parameter value in the end snapshot is the default.') + + +class AwrDbParameterCollection(DbmBaseModel): + """The AWR database parameter data.""" + + name: str = Field(..., description='**[Required]** Gets the name of this AwrQueryResult.\nThe name of the query result.') + version: str | None = Field(None, description='Gets the version of this AwrQueryResult.\nThe version of the query result.') + query_key: str | None = Field(None, alias='queryKey', description='Gets the query_key of this AwrQueryResult.\nThe ID assigned to the query instance.') + db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') + awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='**[Required]** Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + items: list[AwrDbParameterSummary] | None = Field(None, description='Gets the items of this AwrDbParameterCollection.\nA list of AWR database parameter summary data.') + + +class AwrDbParameterSummary(DbmBaseModel): + """The summary of the AWR change history data for a single database parameter.""" + + name: str = Field(..., description='**[Required]** Gets the name of this AwrDbParameterSummary.\nThe name of the parameter.') + instance_number: int | None = Field(None, alias='instanceNumber', description='Gets the instance_number of this AwrDbParameterSummary.\nThe database instance number.') + begin_value: str | None = Field(None, alias='beginValue', description='Gets the begin_value of this AwrDbParameterSummary.\nThe parameter value when the period began.') + end_value: str | None = Field(None, alias='endValue', description='Gets the end_value of this AwrDbParameterSummary.\nThe parameter value when the period ended.') + is_changed: bool | None = Field(None, alias='isChanged', description='Gets the is_changed of this AwrDbParameterSummary.\nIndicates whether the parameter value changed within the period.') + value_modified: str | None = Field(None, alias='valueModified', description='Gets the value_modified of this AwrDbParameterSummary.\nIndicates whether the parameter has been modified after instance startup:\n - MODIFIED - Parameter has been modified with ALTER SESSION\n - SYSTEM_MOD - Parameter has been modified with ALTER SYSTEM (which causes all the currently logged in sessions’ values to be modified)\n - FALSE - Parameter has not been modified after instance startup') + is_default: bool | None = Field(None, alias='isDefault', description='Gets the is_default of this AwrDbParameterSummary.\nIndicates whether the parameter value in the end snapshot is the default.') + + +class AwrDbReport(DbmBaseModel): + """The result of the AWR report.""" + + name: str = Field(..., description='**[Required]** Gets the name of this AwrQueryResult.\nThe name of the query result.') + version: str | None = Field(None, description='Gets the version of this AwrQueryResult.\nThe version of the query result.') + query_key: str | None = Field(None, alias='queryKey', description='Gets the query_key of this AwrQueryResult.\nThe ID assigned to the query instance.') + db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') + awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='**[Required]** Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + content: str | None = Field(None, description='Gets the content of this AwrDbReport.\nThe content of the report.') + format: Literal['HTML', 'TEXT', 'XML', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the format of this AwrDbReport.\nThe format of the report.\n\nAllowed values for this property are: "HTML", "TEXT", "XML", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class AwrDbSnapshotCollection(DbmBaseModel): + """The list of AWR snapshots for one database.""" + + name: str = Field(..., description='**[Required]** Gets the name of this AwrQueryResult.\nThe name of the query result.') + version: str | None = Field(None, description='Gets the version of this AwrQueryResult.\nThe version of the query result.') + query_key: str | None = Field(None, alias='queryKey', description='Gets the query_key of this AwrQueryResult.\nThe ID assigned to the query instance.') + db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') + awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='**[Required]** Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + items: list[AwrDbSnapshotSummary] | None = Field(None, description='Gets the items of this AwrDbSnapshotCollection.\nA list of AWR snapshot summary data.') + + +class AwrDbSnapshotRangeCollection(DbmBaseModel): + """The AWR snapshot range list.""" + + name: str = Field(..., description='**[Required]** Gets the name of this AwrQueryResult.\nThe name of the query result.') + version: str | None = Field(None, description='Gets the version of this AwrQueryResult.\nThe version of the query result.') + query_key: str | None = Field(None, alias='queryKey', description='Gets the query_key of this AwrQueryResult.\nThe ID assigned to the query instance.') + db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') + awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='**[Required]** Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + items: list[AwrDbSnapshotRangeSummary] | None = Field(None, description='Gets the items of this AwrDbSnapshotRangeCollection.\nA list of AWR snapshot range summary data.') + + +class AwrDbSnapshotRangeSummary(DbmBaseModel): + """The summary data for a range of AWR snapshots.""" + + awr_db_id: str = Field(..., alias='awrDbId', description='**[Required]** Gets the awr_db_id of this AwrDbSnapshotRangeSummary. Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.') + db_name: str = Field(..., alias='dbName', description='**[Required]** Gets the db_name of this AwrDbSnapshotRangeSummary.\nThe name of the database.') + db_unique_name: str | None = Field(None, alias='dbUniqueName', description='Gets the db_unique_name of this AwrDbSnapshotRangeSummary.\nThe unique name of the database.') + src_db_id: str | None = Field(None, alias='srcDbId', description='Gets the src_db_id of this AwrDbSnapshotRangeSummary.\nThe internal ID of the database where the AWR snapshot data was collected.') + src_db_name: str | None = Field(None, alias='srcDbName', description='Gets the src_db_name of this AwrDbSnapshotRangeSummary.\nThe name of the database where the AWR snapshot data was collected.') + instance_list: list[int] | None = Field(None, alias='instanceList', description='Gets the instance_list of this AwrDbSnapshotRangeSummary.\nThe database instance numbers.') + time_db_startup: datetime | None = Field(None, alias='timeDbStartup', description='Gets the time_db_startup of this AwrDbSnapshotRangeSummary.\nThe timestamp of the database startup.') + time_first_snapshot_begin: datetime | None = Field(None, alias='timeFirstSnapshotBegin', description='Gets the time_first_snapshot_begin of this AwrDbSnapshotRangeSummary.\nThe start time of the earliest snapshot.') + time_latest_snapshot_end: datetime | None = Field(None, alias='timeLatestSnapshotEnd', description='Gets the time_latest_snapshot_end of this AwrDbSnapshotRangeSummary.\nThe end time of the latest snapshot.') + first_snapshot_id: int | None = Field(None, alias='firstSnapshotId', description='Gets the first_snapshot_id of this AwrDbSnapshotRangeSummary. Earliest AWR snapshot identifier in the range. This value is not an OCID; use snapshot identifiers returned by AWR snapshot listing results.') + latest_snapshot_id: int | None = Field(None, alias='latestSnapshotId', description='Gets the latest_snapshot_id of this AwrDbSnapshotRangeSummary. Latest AWR snapshot identifier in the range. This value is not an OCID; use snapshot identifiers returned by AWR snapshot listing results.') + snapshot_count: int | None = Field(None, ge=0, alias='snapshotCount', description='Gets the snapshot_count of this AwrDbSnapshotRangeSummary.\nThe total number of snapshots.') + snapshot_interval_in_min: int | None = Field(None, alias='snapshotIntervalInMin', description='Gets the snapshot_interval_in_min of this AwrDbSnapshotRangeSummary.\nThe interval time between snapshots (in minutes).') + container_id: int | None = Field(None, alias='containerId', description='Gets the container_id of this AwrDbSnapshotRangeSummary. AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.') + db_version: str | None = Field(None, alias='dbVersion', description='Gets the db_version of this AwrDbSnapshotRangeSummary.\nThe version of the database.') + snapshot_timezone: str | None = Field(None, alias='snapshotTimezone', description='Gets the snapshot_timezone of this AwrDbSnapshotRangeSummary.\nThe time zone of the snapshot.') + + +class AwrDbSnapshotSummary(DbmBaseModel): + """The AWR snapshot summary of one snapshot.""" + + awr_db_id: str = Field(..., alias='awrDbId', description='**[Required]** Gets the awr_db_id of this AwrDbSnapshotSummary. Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.') + instance_number: int | None = Field(None, alias='instanceNumber', description='Gets the instance_number of this AwrDbSnapshotSummary.\nThe database instance number.') + time_db_startup: datetime | None = Field(None, alias='timeDbStartup', description='Gets the time_db_startup of this AwrDbSnapshotSummary.\nThe timestamp of the database startup.') + time_begin: datetime | None = Field(None, alias='timeBegin', description='Gets the time_begin of this AwrDbSnapshotSummary.\nThe start time of the snapshot.') + time_end: datetime | None = Field(None, alias='timeEnd', description='Gets the time_end of this AwrDbSnapshotSummary.\nThe end time of the snapshot.') + snapshot_id: int = Field(..., alias='snapshotId', description='**[Required]** Gets the snapshot_id of this AwrDbSnapshotSummary. AWR snapshot identifier within the selected AWR database. This value is not an OCID; use snapshot identifiers returned by AWR snapshot listing results.') + error_count: int | None = Field(None, ge=0, alias='errorCount', description='Gets the error_count of this AwrDbSnapshotSummary.\nThe total number of errors.') + + +class AwrDbSqlReport(DbmBaseModel): + """The result of the AWR SQL report.""" + + name: str = Field(..., description='**[Required]** Gets the name of this AwrQueryResult.\nThe name of the query result.') + version: str | None = Field(None, description='Gets the version of this AwrQueryResult.\nThe version of the query result.') + query_key: str | None = Field(None, alias='queryKey', description='Gets the query_key of this AwrQueryResult.\nThe ID assigned to the query instance.') + db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') + awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='**[Required]** Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + content: str | None = Field(None, description='Gets the content of this AwrDbSqlReport.\nThe content of the report.') + format: Literal['HTML', 'TEXT', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the format of this AwrDbSqlReport.\nThe format of the report.\n\nAllowed values for this property are: "HTML", "TEXT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class AwrDbSummary(DbmBaseModel): + """The AWR summary for a database.""" + + awr_db_id: str = Field(..., alias='awrDbId', description='**[Required]** Gets the awr_db_id of this AwrDbSummary. Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.') + db_name: str = Field(..., alias='dbName', description='**[Required]** Gets the db_name of this AwrDbSummary.\nThe name of the database.') + db_unique_name: str | None = Field(None, alias='dbUniqueName', description='Gets the db_unique_name of this AwrDbSummary.\nThe unique name of the database.') + src_db_id: str | None = Field(None, alias='srcDbId', description='Gets the src_db_id of this AwrDbSummary.\nThe internal ID of the database where the AWR snapshot data was collected.') + src_db_name: str | None = Field(None, alias='srcDbName', description='Gets the src_db_name of this AwrDbSummary.\nThe name of the database where the AWR snapshot data was collected.') + instance_list: list[int] | None = Field(None, alias='instanceList', description='Gets the instance_list of this AwrDbSummary.\nThe database instance numbers.') + time_db_startup: datetime | None = Field(None, alias='timeDbStartup', description='Gets the time_db_startup of this AwrDbSummary.\nThe timestamp of the database startup.') + time_first_snapshot_begin: datetime | None = Field(None, alias='timeFirstSnapshotBegin', description='Gets the time_first_snapshot_begin of this AwrDbSummary.\nThe start time of the earliest snapshot.') + time_latest_snapshot_end: datetime | None = Field(None, alias='timeLatestSnapshotEnd', description='Gets the time_latest_snapshot_end of this AwrDbSummary.\nThe end time of the latest snapshot.') + first_snapshot_id: int | None = Field(None, alias='firstSnapshotId', description='Gets the first_snapshot_id of this AwrDbSummary. Earliest AWR snapshot identifier in the range. This value is not an OCID; use snapshot identifiers returned by AWR snapshot listing results.') + latest_snapshot_id: int | None = Field(None, alias='latestSnapshotId', description='Gets the latest_snapshot_id of this AwrDbSummary. Latest AWR snapshot identifier in the range. This value is not an OCID; use snapshot identifiers returned by AWR snapshot listing results.') + snapshot_count: int | None = Field(None, ge=0, alias='snapshotCount', description='Gets the snapshot_count of this AwrDbSummary.\nThe total number of snapshots.') + snapshot_interval_in_min: int | None = Field(None, alias='snapshotIntervalInMin', description='Gets the snapshot_interval_in_min of this AwrDbSummary.\nThe interval time between snapshots (in minutes).') + container_id: int | None = Field(None, alias='containerId', description='Gets the container_id of this AwrDbSummary. AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.') + db_version: str | None = Field(None, alias='dbVersion', description='Gets the db_version of this AwrDbSummary.\nThe version of the database.') + snapshot_timezone: str | None = Field(None, alias='snapshotTimezone', description='Gets the snapshot_timezone of this AwrDbSummary.\nThe time zone of the snapshot.') + + +class AwrDbSysstatCollection(DbmBaseModel): + """The AWR SYSSTAT time series summary data.""" + + name: str = Field(..., description='**[Required]** Gets the name of this AwrQueryResult.\nThe name of the query result.') + version: str | None = Field(None, description='Gets the version of this AwrQueryResult.\nThe version of the query result.') + query_key: str | None = Field(None, alias='queryKey', description='Gets the query_key of this AwrQueryResult.\nThe ID assigned to the query instance.') + db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') + awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='**[Required]** Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + items: list[AwrDbSysstatSummary] | None = Field(None, description='Gets the items of this AwrDbSysstatCollection.\nA list of AWR SYSSTAT summary data.') + + +class AwrDbSysstatSummary(DbmBaseModel): + """The summary of the AWR SYSSTAT data.""" + + name: str = Field(..., description='**[Required]** Gets the name of this AwrDbSysstatSummary.\nThe name of the SYSSTAT.') + category: str | None = Field(None, description='Gets the category of this AwrDbSysstatSummary.\nThe name of the SYSSTAT category.') + time_begin: datetime | None = Field(None, alias='timeBegin', description='Gets the time_begin of this AwrDbSysstatSummary.\nThe start time of the SYSSTAT.') + time_end: datetime | None = Field(None, alias='timeEnd', description='Gets the time_end of this AwrDbSysstatSummary.\nThe end time of the SYSSTAT.') + avg_value: float | None = Field(None, alias='avgValue', description='Gets the avg_value of this AwrDbSysstatSummary.\nThe average value of the SYSSTAT.') + current_value: float | None = Field(None, alias='currentValue', description='Gets the current_value of this AwrDbSysstatSummary.\nThe last value of the SYSSTAT.') + + +class AwrDbTopWaitEventCollection(DbmBaseModel): + """The AWR top wait event data.""" + + name: str = Field(..., description='**[Required]** Gets the name of this AwrQueryResult.\nThe name of the query result.') + version: str | None = Field(None, description='Gets the version of this AwrQueryResult.\nThe version of the query result.') + query_key: str | None = Field(None, alias='queryKey', description='Gets the query_key of this AwrQueryResult.\nThe ID assigned to the query instance.') + db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') + awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='**[Required]** Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + items: list[AwrDbTopWaitEventSummary] | None = Field(None, description='Gets the items of this AwrDbTopWaitEventCollection.\nA list of AWR top event summary data.') + + +class AwrDbTopWaitEventSummary(DbmBaseModel): + """A summary of the AWR top wait event data for one event.""" + + name: str = Field(..., description='**[Required]** Gets the name of this AwrDbTopWaitEventSummary.\nThe name of the event.') + waits_per_sec: float | None = Field(None, alias='waitsPerSec', description='Gets the waits_per_sec of this AwrDbTopWaitEventSummary.\nThe wait count per second.') + avg_wait_time_per_sec: float | None = Field(None, alias='avgWaitTimePerSec', description='Gets the avg_wait_time_per_sec of this AwrDbTopWaitEventSummary.\nThe average wait time per second.') + + +class AwrDbWaitEventBucketCollection(DbmBaseModel): + """The percentage distribution of waits in the AWR wait event buckets.""" + + name: str = Field(..., description='**[Required]** Gets the name of this AwrQueryResult.\nThe name of the query result.') + version: str | None = Field(None, description='Gets the version of this AwrQueryResult.\nThe version of the query result.') + query_key: str | None = Field(None, alias='queryKey', description='Gets the query_key of this AwrQueryResult.\nThe ID assigned to the query instance.') + db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') + awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='**[Required]** Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + total_waits: int | None = Field(None, alias='totalWaits', description='Gets the total_waits of this AwrDbWaitEventBucketCollection.\nThe total waits of the database.') + items: list[AwrDbWaitEventBucketSummary] | None = Field(None, description='Gets the items of this AwrDbWaitEventBucketCollection.\nA list of AWR wait event buckets.') + + +class AwrDbWaitEventBucketSummary(DbmBaseModel): + """A summary of the AWR wait event bucket and waits percentage.""" + + category: str = Field(..., description='**[Required]** Gets the category of this AwrDbWaitEventBucketSummary.\nThe name of the wait event frequency category. Normally, it is the upper range of the waits within the AWR wait event bucket.') + percentage: float = Field(..., description='**[Required]** Gets the percentage of this AwrDbWaitEventBucketSummary.\nThe percentage of waits in a wait event bucket over the total waits of the database.') + + +class AwrDbWaitEventCollection(DbmBaseModel): + """The AWR wait event data.""" + + name: str = Field(..., description='**[Required]** Gets the name of this AwrQueryResult.\nThe name of the query result.') + version: str | None = Field(None, description='Gets the version of this AwrQueryResult.\nThe version of the query result.') + query_key: str | None = Field(None, alias='queryKey', description='Gets the query_key of this AwrQueryResult.\nThe ID assigned to the query instance.') + db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') + awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='**[Required]** Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + items: list[AwrDbWaitEventSummary] | None = Field(None, description='Gets the items of this AwrDbWaitEventCollection.\nA list of AWR wait events.') + + +class AwrDbWaitEventSummary(DbmBaseModel): + """The summary of the AWR wait event time series data for one event.""" + + name: str = Field(..., description='**[Required]** Gets the name of this AwrDbWaitEventSummary.\nThe name of the event.') + time_begin: datetime | None = Field(None, alias='timeBegin', description='Gets the time_begin of this AwrDbWaitEventSummary.\nThe begin time of the wait event.') + time_end: datetime | None = Field(None, alias='timeEnd', description='Gets the time_end of this AwrDbWaitEventSummary.\nThe end time of the wait event.') + waits_per_sec: float | None = Field(None, alias='waitsPerSec', description='Gets the waits_per_sec of this AwrDbWaitEventSummary.\nThe wait count per second.') + avg_wait_time_per_sec: float | None = Field(None, alias='avgWaitTimePerSec', description='Gets the avg_wait_time_per_sec of this AwrDbWaitEventSummary.\nThe average wait time per second.') + avg_wait_time_per_wait: float | None = Field(None, alias='avgWaitTimePerWait', description='Gets the avg_wait_time_per_wait of this AwrDbWaitEventSummary.\nThe average wait time in milliseconds per wait.') + snapshot_id: int | None = Field(None, alias='snapshotId', description='Gets the snapshot_id of this AwrDbWaitEventSummary. AWR snapshot identifier within the selected AWR database. This value is not an OCID; use snapshot identifiers returned by AWR snapshot listing results.') + + +class AwrQueryResult(DbmBaseModel): + """The AWR query result.""" + + name: str = Field(..., description='**[Required]** Gets the name of this AwrQueryResult.\nThe name of the query result.') + version: str | None = Field(None, description='Gets the version of this AwrQueryResult.\nThe version of the query result.') + query_key: str | None = Field(None, alias='queryKey', description='Gets the query_key of this AwrQueryResult.\nThe ID assigned to the query instance.') + db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') + awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='**[Required]** Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class BaseDatabaseHaDetails(DbmRequestModel): + """The common database details used by all HA metrics.""" + + db_id: str = Field(..., alias='dbId', description='**[Required]** Gets the db_id of this BaseDatabaseHaDetails. The OCID of the Managed Database.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this BaseDatabaseHaDetails. The OCID of the compartment where the Managed Database resides.') + database_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='databaseType', description='**[Required]** Gets the database_type of this BaseDatabaseHaDetails.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='databaseSubType', description='**[Required]** Gets the database_sub_type of this BaseDatabaseHaDetails.\nThe subtype of the Oracle Database. Indicates whether the database is a Container Database,\nPluggable Database, Non-container Database, Autonomous Database, or Autonomous Container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + deployment_type: Literal['ONPREMISE', 'BM', 'VM', 'EXADATA', 'EXADATA_CC', 'AUTONOMOUS', 'EXADATA_XS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='deploymentType', description='**[Required]** Gets the deployment_type of this BaseDatabaseHaDetails.\nThe infrastructure used to deploy the Oracle Database.\n\nAllowed values for this property are: "ONPREMISE", "BM", "VM", "EXADATA", "EXADATA_CC", "AUTONOMOUS", "EXADATA_XS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this BaseDatabaseHaDetails.\nThe Oracle Database version.') + workload_type: Literal['OLTP', 'DW', 'AJD', 'APEX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='workloadType', description='Gets the workload_type of this BaseDatabaseHaDetails.\nThe workload type of the Autonomous Database.\n\nAllowed values for this property are: "OLTP", "DW", "AJD", "APEX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_name: str = Field(..., alias='databaseName', description='**[Required]** Gets the database_name of this BaseDatabaseHaDetails.\nThe display name of the Managed Database.') + database_id: str | None = Field(None, alias='databaseId', description='Gets the database_id of this BaseDatabaseHaDetails.\nThe database ID of the Managed Database. Every database had its own ID and that value is captured here.') + db_unique_name: str | None = Field(None, alias='dbUniqueName', description='Gets the db_unique_name of this BaseDatabaseHaDetails.\nThe database unique name of the Managed Database.') + db_role: Literal['SNAPSHOT_STANDBY', 'LOGICAL_STANDBY', 'PHYSICAL_STANDBY', 'PRIMARY', 'FAR_SYNC', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dbRole', description='**[Required]** Gets the db_role of this BaseDatabaseHaDetails.\nThe database role of the Managed Database.\n\nAllowed values for this property are: "SNAPSHOT_STANDBY", "LOGICAL_STANDBY", "PHYSICAL_STANDBY", "PRIMARY", "FAR_SYNC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class BasicDatabaseConnectionStringDetails(DbmRequestModel): + """The details of the Oracle Database basic connection string.""" + + connection_type: Literal['BASIC', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='connectionType', description='**[Required]** Gets the connection_type of this DatabaseConnectionStringDetails.\nThe list of supported connection types:\n - BASIC: Basic connection details\n\nAllowed values for this property are: "BASIC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + service: str = Field(..., description='**[Required]** Gets the service of this BasicDatabaseConnectionStringDetails.\nThe service name of the database.') + port: int = Field(..., description='**[Required]** Gets the port of this BasicDatabaseConnectionStringDetails.\nThe port number used to connect to the database.') + protocol: Literal['TCP', 'TCPS', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the protocol of this BasicDatabaseConnectionStringDetails.\nThe protocol used to connect to the database.\n\nAllowed values for this property are: "TCP", "TCPS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class BasicNamedCredentialContent(DbmBaseModel): + """The details of the 'BASIC' named credential.""" + + credential_type: Literal['BASIC', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='credentialType', description='**[Required]** Gets the credential_type of this NamedCredentialContent.\nThe type of named credential. Only \'BASIC\' is supported currently.\n\nAllowed values for this property are: "BASIC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + user_name: str = Field(..., alias='userName', description='**[Required]** Gets the user_name of this BasicNamedCredentialContent.\nThe user name used to connect to the database.') + role: Literal['NORMAL', 'SYSDBA', 'SYSDG', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the role of this BasicNamedCredentialContent.\nThe role of the database user.\n\nAllowed values for this property are: "NORMAL", "SYSDBA", "SYSDG", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + password_secret_id: str = Field(..., alias='passwordSecretId', description='**[Required]** Gets the password_secret_id of this BasicNamedCredentialContent. The OCID of the Vault service secret that contains the database user password.') + password_secret_access_mode: Literal['USER_PRINCIPAL', 'RESOURCE_PRINCIPAL', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='passwordSecretAccessMode', description='**[Required]** Gets the password_secret_access_mode of this BasicNamedCredentialContent.\nThe mechanism used to access the password plain text value.\n\nAllowed values for this property are: "USER_PRINCIPAL", "RESOURCE_PRINCIPAL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class BasicPreferredCredential(DbmBaseModel): + """The details of the 'BASIC' preferred credential.""" + + type: Literal['BASIC', 'NAMED_CREDENTIAL', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the type of this PreferredCredential.\nThe type of preferred credential. Only \'BASIC\' is supported currently.\n\nAllowed values for this property are: "BASIC", "NAMED_CREDENTIAL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + credential_name: str | None = Field(None, alias='credentialName', description='Gets the credential_name of this PreferredCredential.\nThe name of the preferred credential.') + status: Literal['SET', 'NOT_SET', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this PreferredCredential.\nThe status of the preferred credential.\n\nAllowed values for this property are: "SET", "NOT_SET", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + is_accessible: bool | None = Field(None, alias='isAccessible', description='Gets the is_accessible of this PreferredCredential.\nIndicates whether the preferred credential is accessible.') + user_name: str | None = Field(None, alias='userName', description='Gets the user_name of this BasicPreferredCredential.\nThe user name used to connect to the database.') + role: Literal['NORMAL', 'SYSDBA', 'SYSDG', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the role of this BasicPreferredCredential.\nThe role of the database user.\n\nAllowed values for this property are: "NORMAL", "SYSDBA", "SYSDG", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + password_secret_id: str | None = Field(None, alias='passwordSecretId', description='Gets the password_secret_id of this BasicPreferredCredential. The OCID of the Vault service secret that contains the database user password.') + + +class ChangeCloudExadataInfrastructureCompartmentDetails(DbmRequestModel): + """The details required to change the compartment of the Exadata infrastructure.""" + + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ChangeCloudExadataInfrastructureCompartmentDetails. The OCID of the compartment to move the Exadata infrastructure and related components to.') + + +class ChangeDatabaseParameterDetails(DbmRequestModel): + """The value of a database parameter to change.""" + + name: str = Field(..., description='**[Required]** Gets the name of this ChangeDatabaseParameterDetails.\nThe parameter name.') + value: str = Field(..., description='**[Required]** Gets the value of this ChangeDatabaseParameterDetails.\nThe parameter value.') + update_comment: str | None = Field(None, alias='updateComment', description='Gets the update_comment of this ChangeDatabaseParameterDetails.\nA comment string to associate with the change in parameter value.\nIt cannot contain control characters or a line break.') + + +class ChangeDatabaseParametersDetails(DbmRequestModel): + """The details required to change database parameter values. +It takes either credentials or databaseCredential. It's recommended to provide databaseCredential""" + + credentials: DatabaseCredentials | None = Field(None, description='Gets the credentials of this ChangeDatabaseParametersDetails.') + database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this ChangeDatabaseParametersDetails.') + scope: Literal['MEMORY', 'SPFILE', 'BOTH'] = Field(..., description='**[Required]** Gets the scope of this ChangeDatabaseParametersDetails.\nThe clause used to specify when the parameter change takes effect.\n\nUse `MEMORY` to make the change in memory and affect it immediately.\nUse `SPFILE` to make the change in the server parameter file. The\nchange takes effect when the database is next shut down and started\nup again. Use `BOTH` to make the change in memory and in the server\nparameter file. The change takes effect immediately and persists\nafter the database is shut down and started up again.\n\nAllowed values for this property are: "MEMORY", "SPFILE", "BOTH"') + parameters: list[ChangeDatabaseParameterDetails] = Field(..., description='**[Required]** Gets the parameters of this ChangeDatabaseParametersDetails.\nA list of database parameters and their values.') + + +class ChangeDbManagementPrivateEndpointCompartmentDetails(DbmRequestModel): + """The details used to move the Database Management private endpoint to another compartment.""" + + compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this ChangeDbManagementPrivateEndpointCompartmentDetails. The OCID of the compartment to which the Database Management private endpoint needs to be moved.') + + +class ChangeExternalDbSystemCompartmentDetails(DbmRequestModel): + """The details required to change the compartment of an external DB system.""" + + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ChangeExternalDbSystemCompartmentDetails. The OCID of the compartment to move the external DB system to.') + + +class ChangeExternalExadataInfrastructureCompartmentDetails(DbmRequestModel): + """The details required to change the compartment of the Exadata infrastructure.""" + + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ChangeExternalExadataInfrastructureCompartmentDetails. The OCID of the compartment to move the Exadata infrastructure and related components to.') + + +class ChangeJobCompartmentDetails(DbmRequestModel): + """The details required to change the compartment of a job.""" + + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ChangeJobCompartmentDetails. The OCID of the compartment to which the job should be moved.') + + +class ChangeManagedDatabaseGroupCompartmentDetails(DbmRequestModel): + """The details required to change the compartment of a Managed Database Group.""" + + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ChangeManagedDatabaseGroupCompartmentDetails. The OCID of the compartment to which the Managed Database Group should be moved.') + + +class ChangeMysqlDatabaseManagementTypeDetails(DbmRequestModel): + """Details to change managed MySQL database management type.""" + + management_type: str = Field(..., alias='managementType', description='**[Required]** Gets the management_type of this ChangeMysqlDatabaseManagementTypeDetails.\nThe type of HeatWave management.') + operation: Literal['ENABLE_DBMGMT', 'UPDATE_DBMGMT_TYPE', 'DISABLE_DBMGMT'] | None = Field(None, description='Gets the operation of this ChangeMysqlDatabaseManagementTypeDetails.\nThe type of operation to perform: update managementType, enable or disable database management.\n\nAllowed values for this property are: "ENABLE_DBMGMT", "UPDATE_DBMGMT_TYPE", "DISABLE_DBMGMT"') + + +class ChangeNamedCredentialCompartmentDetails(DbmRequestModel): + """The details required to change the compartment of a named credential.""" + + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ChangeNamedCredentialCompartmentDetails. The OCID of the compartment to which the named credential should be moved.') + + +class ChangePlanRetentionDetails(DbmRequestModel): + """The details required to change the plan retention period. +It takes either credentials or databaseCredential. It's recommended to provide databaseCredential""" + + retention_weeks: int = Field(..., alias='retentionWeeks', description='**[Required]** Gets the retention_weeks of this ChangePlanRetentionDetails.\nThe retention period in weeks. It can range between 5 and 523 weeks.') + credentials: ManagedDatabaseCredential | None = Field(None, description='Gets the credentials of this ChangePlanRetentionDetails.') + database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this ChangePlanRetentionDetails.') + + +class ChangeSpaceBudgetDetails(DbmRequestModel): + """The details required to change the disk space limit for the SQL Management Base. +It takes either credentials or databaseCredential. It's recommended to provide databaseCredential""" + + space_budget_percent: float = Field(..., alias='spaceBudgetPercent', description='**[Required]** Gets the space_budget_percent of this ChangeSpaceBudgetDetails.\nThe maximum percent of `SYSAUX` space that the SQL Management Base can use.') + credentials: ManagedDatabaseCredential | None = Field(None, description='Gets the credentials of this ChangeSpaceBudgetDetails.') + database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this ChangeSpaceBudgetDetails.') + + +class ChangeSqlPlanBaselinesAttributesDetails(DbmRequestModel): + """The details required to change SQL plan baseline attributes. +It takes either credentials or databaseCredential. It's recommended to provide databaseCredential""" + + sql_handle: str | None = Field(None, alias='sqlHandle', description='Gets the sql_handle of this ChangeSqlPlanBaselinesAttributesDetails.\nThe SQL statement handle. It identifies plans associated with a SQL statement\nfor attribute changes. If `null` then `planName` must be specified.') + plan_name: str | None = Field(None, alias='planName', description="Gets the plan_name of this ChangeSqlPlanBaselinesAttributesDetails.\nThen plan name. It identifies a specific plan. If `null' then all plans associated\nwith a SQL statement identified by `sqlHandle' are considered for attribute changes.") + is_enabled: bool | None = Field(None, alias='isEnabled', description='Gets the is_enabled of this ChangeSqlPlanBaselinesAttributesDetails.\nIndicates whether the plan is available for use by the optimizer.') + is_fixed: bool | None = Field(None, alias='isFixed', description='Gets the is_fixed of this ChangeSqlPlanBaselinesAttributesDetails.\nIndicates whether the plan baseline is fixed. A fixed plan takes precedence over a non-fixed plan.') + is_auto_purged: bool | None = Field(None, alias='isAutoPurged', description='Gets the is_auto_purged of this ChangeSqlPlanBaselinesAttributesDetails.\nIndicates whether the plan is purged if it is not used for a time period.') + credentials: ManagedDatabaseCredential | None = Field(None, description='Gets the credentials of this ChangeSqlPlanBaselinesAttributesDetails.') + database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this ChangeSqlPlanBaselinesAttributesDetails.') + + +class ChildDatabase(DbmBaseModel): + """The child Managed Database of a Managed Database Group.""" + + id: str = Field(..., description='**[Required]** Gets the id of this ChildDatabase. The OCID of the Managed Database.') + name: str = Field(..., description='**[Required]** Gets the name of this ChildDatabase.\nThe name of the Managed Database.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ChildDatabase. The OCID of the compartment in which the Managed Database resides.') + deployment_type: Literal['ONPREMISE', 'BM', 'VM', 'EXADATA', 'EXADATA_CC', 'AUTONOMOUS', 'EXADATA_XS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='deploymentType', description='Gets the deployment_type of this ChildDatabase.\nThe infrastructure used to deploy the Oracle Database.\n\nAllowed values for this property are: "ONPREMISE", "BM", "VM", "EXADATA", "EXADATA_CC", "AUTONOMOUS", "EXADATA_XS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + workload_type: Literal['OLTP', 'DW', 'AJD', 'APEX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='workloadType', description='Gets the workload_type of this ChildDatabase.\nThe workload type of the Autonomous Database.\n\nAllowed values for this property are: "OLTP", "DW", "AJD", "APEX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseType', description='Gets the database_type of this ChildDatabase.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseSubType', description='Gets the database_sub_type of this ChildDatabase.\nThe subtype of the Oracle Database. Indicates whether the database is a Container Database,\nPluggable Database, Non-container Database, Autonomous Database, or Autonomous Container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_added: datetime = Field(..., alias='timeAdded', description='**[Required]** Gets the time_added of this ChildDatabase.\nThe date and time the Managed Database was added to the group.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ChildDatabase. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ChildDatabase. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ChildDatabase. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class CloneSqlTuningTaskDetails(DbmRequestModel): + """The request to clone and run a SQL tuning task. The new task uses the same inputs as the one being cloned. +It takes either credentialDetails or databaseCredential. It's recommended to provide databaseCredential""" + + task_name: str = Field(..., alias='taskName', description='**[Required]** Gets the task_name of this CloneSqlTuningTaskDetails.\nThe name of the SQL tuning task. The name is unique per user in a database, and it is case-sensitive.') + original_task_id: int = Field(..., alias='originalTaskId', description='**[Required]** Gets the original_task_id of this CloneSqlTuningTaskDetails. Identifier of the SQL tuning task being cloned. This value is not an OCID; use the identifier returned by SQL tuning task list, start, or clone operations.') + task_description: str | None = Field(None, alias='taskDescription', description='Gets the task_description of this CloneSqlTuningTaskDetails.\nThe description of the SQL tuning task.') + credential_details: SqlTuningTaskCredentialDetails | None = Field(None, alias='credentialDetails', description='Gets the credential_details of this CloneSqlTuningTaskDetails.') + database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this CloneSqlTuningTaskDetails.') + + +class CloudAsm(DbmBaseModel): + """The details of a cloud ASM.""" + + id: str = Field(..., description='**[Required]** Gets the id of this CloudAsm. The OCID of the cloud ASM.') + dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this CloudAsm. The OCID in DBaas service.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudAsm.\nThe user-friendly name for the cloud ASM. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this CloudAsm.\nThe name of the cloud ASM.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudAsm. The OCID of the compartment.') + cloud_db_system_id: str = Field(..., alias='cloudDbSystemId', description='**[Required]** Gets the cloud_db_system_id of this CloudAsm. The OCID of the cloud DB system that the ASM is a part of.') + cloud_connector_id: str | None = Field(None, alias='cloudConnectorId', description='Gets the cloud_connector_id of this CloudAsm. The OCID of the cloud connector.') + grid_home: str | None = Field(None, alias='gridHome', description='Gets the grid_home of this CloudAsm.\nThe directory in which ASM is installed. This is the same directory in which Oracle Grid Infrastructure is installed.') + is_cluster: bool | None = Field(None, alias='isCluster', description='Gets the is_cluster of this CloudAsm.\nIndicates whether the ASM is a cluster ASM or not.') + is_flex_enabled: bool | None = Field(None, alias='isFlexEnabled', description='Gets the is_flex_enabled of this CloudAsm.\nIndicates whether Oracle Flex ASM is enabled or not.') + lifecycle_state: Literal['CREATING', 'NOT_CONNECTED', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this CloudAsm.\nThe current lifecycle state of the cloud ASM.\n\nAllowed values for this property are: "CREATING", "NOT_CONNECTED", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this CloudAsm.\nAdditional information about the current lifecycle state.') + serviced_databases: list[CloudAsmServicedDatabase] | None = Field(None, alias='servicedDatabases', description='Gets the serviced_databases of this CloudAsm.\nThe list of databases that are serviced by the ASM.') + additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this CloudAsm.\nThe additional details of the cloud ASM defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this CloudAsm.\nThe date and time the cloud ASM was created.') + time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this CloudAsm.\nThe date and time the cloud ASM was last updated.') + version: str | None = Field(None, description='Gets the version of this CloudAsm.\nThe ASM version.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudAsm. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudAsm. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudAsm. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class CloudAsmCollection(DbmBaseModel): + """A collection of cloud ASMs.""" + + items: list[CloudAsmSummary] = Field(..., description='**[Required]** Gets the items of this CloudAsmCollection.\nAn array of cloud ASMs.') + + +class CloudAsmConfiguration(DbmBaseModel): + """The configuration details of an ASM.""" + + init_parameters: list[CloudAsmInstanceParameters] = Field(..., alias='initParameters', description='**[Required]** Gets the init_parameters of this CloudAsmConfiguration.\nAn array of initialization parameters for the cloud ASM instances.') + + +class CloudAsmConnectionCredentials(DbmBaseModel): + """The credentials used to connect to the Cloud ASM instance. Currently only the `DETAILS` type +is supported for creating MACS connector credentials.""" + + credential_type: Literal['NAME_REFERENCE', 'DETAILS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='credentialType', description='Gets the credential_type of this CloudAsmConnectionCredentials.\nThe type of credential used to connect to the ASM instance.\n\nAllowed values for this property are: "NAME_REFERENCE", "DETAILS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class CloudAsmConnectionCredentialsByDetails(DbmRequestModel): + """The credentials used to connect to the ASM instance.""" + + credential_type: Literal['NAME_REFERENCE', 'DETAILS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='credentialType', description='Gets the credential_type of this CloudAsmConnectionCredentials.\nThe type of credential used to connect to the ASM instance.\n\nAllowed values for this property are: "NAME_REFERENCE", "DETAILS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + credential_name: str | None = Field(None, alias='credentialName', description='Gets the credential_name of this CloudAsmConnectionCredentialsByDetails.\nThe name of the credential information that used to connect to the DB system resource.\nThe name should be in "x.y" format, where the length of "x" has a maximum of 64 characters,\nand length of "y" has a maximum of 199 characters. The name strings can contain letters,\nnumbers and the underscore character only. Other characters are not valid, except for\nthe "." character that separates the "x" and "y" portions of the name.\n*IMPORTANT* - The name must be unique within the OCI region the credential is being created in.\nIf you specify a name that duplicates the name of another credential within the same OCI region,\nyou may overwrite or corrupt the credential that is already using the name.\n\nFor example: inventorydb.abc112233445566778899') + user_name: str = Field(..., alias='userName', description='**[Required]** Gets the user_name of this CloudAsmConnectionCredentialsByDetails.\nThe user name used to connect to the ASM instance.') + password_secret_id: str = Field(..., alias='passwordSecretId', description='**[Required]** Gets the password_secret_id of this CloudAsmConnectionCredentialsByDetails. The OCID of the secret containing the user password.') + role: Literal['SYSASM', 'SYSDBA', 'SYSOPER', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the role of this CloudAsmConnectionCredentialsByDetails.\nThe role of the user connecting to the ASM instance.\n\nAllowed values for this property are: "SYSASM", "SYSDBA", "SYSOPER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class CloudAsmConnectionCredentialsByName(DbmBaseModel): + """The existing named credential used to connect to the ASM instance.""" + + credential_type: Literal['NAME_REFERENCE', 'DETAILS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='credentialType', description='Gets the credential_type of this CloudAsmConnectionCredentials.\nThe type of credential used to connect to the ASM instance.\n\nAllowed values for this property are: "NAME_REFERENCE", "DETAILS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + credential_name: str = Field(..., alias='credentialName', description='**[Required]** Gets the credential_name of this CloudAsmConnectionCredentialsByName.\nThe name of the credential information that used to connect to the DB system resource.\nThe name should be in "x.y" format, where the length of "x" has a maximum of 64 characters,\nand length of "y" has a maximum of 199 characters. The name strings can contain letters,\nnumbers and the underscore character only. Other characters are not valid, except for\nthe "." character that separates the "x" and "y" portions of the name.\n*IMPORTANT* - The name must be unique within the OCI region the credential is being created in.\nIf you specify a name that duplicates the name of another credential within the same OCI region,\nyou may overwrite or corrupt the credential that is already using the name.\n\nFor example: inventorydb.abc112233445566778899') + + +class CloudAsmConnectionInfo(DbmBaseModel): + """The details required to connect to a cloud ASM instance.""" + + component_type: Literal['DATABASE', 'ASM', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this CloudDbSystemConnectionInfo.\nThe component type.\n\nAllowed values for this property are: "DATABASE", "ASM", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + connection_string: AsmConnectionString = Field(..., alias='connectionString', description='**[Required]** Gets the connection_string of this CloudAsmConnectionInfo.') + connection_credentials: CloudAsmConnectionCredentials = Field(..., alias='connectionCredentials', description='**[Required]** Gets the connection_credentials of this CloudAsmConnectionInfo.') + + +class CloudAsmDiskGroupCollection(DbmBaseModel): + """A collection of cloud ASM disk groups.""" + + items: list[CloudAsmDiskGroupSummary] = Field(..., description='**[Required]** Gets the items of this CloudAsmDiskGroupCollection.\nAn array of cloud ASM disk groups.') + + +class CloudAsmDiskGroupSummary(DbmBaseModel): + """The summary of a cloud ASM disk group.""" + + name: str = Field(..., description='**[Required]** Gets the name of this CloudAsmDiskGroupSummary.\nThe name of the ASM disk group.') + mounting_instance_count: int | None = Field(None, ge=0, alias='mountingInstanceCount', description='Gets the mounting_instance_count of this CloudAsmDiskGroupSummary.\nThe number of ASM instances that have the disk group in mounted state.') + dismounting_instance_count: int | None = Field(None, ge=0, alias='dismountingInstanceCount', description='Gets the dismounting_instance_count of this CloudAsmDiskGroupSummary.\nThe number of ASM instances that have the disk group in dismounted state.') + redundancy_type: Literal['EXTEND', 'EXTERN', 'FLEX', 'HIGH', 'NORMAL', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='redundancyType', description='Gets the redundancy_type of this CloudAsmDiskGroupSummary.\nThe redundancy type of the disk group.\n\nAllowed values for this property are: "EXTEND", "EXTERN", "FLEX", "HIGH", "NORMAL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + is_sparse: bool | None = Field(None, alias='isSparse', description='Gets the is_sparse of this CloudAsmDiskGroupSummary.\nIndicates whether the disk group is a sparse disk group or not.') + databases: list[str] | None = Field(None, description='Gets the databases of this CloudAsmDiskGroupSummary.\nThe unique names of the databases using the disk group.') + total_size_in_mbs: int | None = Field(None, alias='totalSizeInMBs', description='Gets the total_size_in_mbs of this CloudAsmDiskGroupSummary.\nThe total capacity of the disk group (in megabytes).') + used_size_in_mbs: int | None = Field(None, alias='usedSizeInMBs', description='Gets the used_size_in_mbs of this CloudAsmDiskGroupSummary.\nThe used capacity of the disk group (in megabytes).') + used_percent: float | None = Field(None, alias='usedPercent', description='Gets the used_percent of this CloudAsmDiskGroupSummary.\nThe percentage of used space in the disk group.') + + +class CloudAsmInstance(DbmBaseModel): + """The details of a cloud ASM instance.""" + + id: str = Field(..., description='**[Required]** Gets the id of this CloudAsmInstance. The OCID of the cloud ASM instance.') + dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this CloudAsmInstance. The OCID in DBaas service.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudAsmInstance.\nThe user-friendly name for the ASM instance. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this CloudAsmInstance.\nThe name of the cloud ASM instance.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudAsmInstance. The OCID of the compartment.') + cloud_asm_id: str = Field(..., alias='cloudAsmId', description='**[Required]** Gets the cloud_asm_id of this CloudAsmInstance. The OCID of the cloud ASM that the ASM instance belongs to.') + cloud_db_system_id: str = Field(..., alias='cloudDbSystemId', description='**[Required]** Gets the cloud_db_system_id of this CloudAsmInstance. The OCID of the cloud DB system that the ASM instance is a part of.') + cloud_db_node_id: str | None = Field(None, alias='cloudDbNodeId', description='Gets the cloud_db_node_id of this CloudAsmInstance. The OCID of the cloud DB node on which the ASM instance is running.') + adr_home_directory: str | None = Field(None, alias='adrHomeDirectory', description='Gets the adr_home_directory of this CloudAsmInstance.\nThe Automatic Diagnostic Repository (ADR) home directory for the ASM instance.') + host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this CloudAsmInstance.\nThe name of the host on which the ASM instance is running.') + lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this CloudAsmInstance.\nThe current lifecycle state of the cloud ASM instance.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this CloudAsmInstance.\nAdditional information about the current lifecycle state.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this CloudAsmInstance.\nThe date and time the cloud ASM instance was created.') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this CloudAsmInstance.\nThe date and time the cloud ASM instance was last updated.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudAsmInstance. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudAsmInstance. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudAsmInstance. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class CloudAsmInstanceCollection(DbmBaseModel): + """A collection of cloud ASM instances.""" + + items: list[CloudAsmInstanceSummary] = Field(..., description='**[Required]** Gets the items of this CloudAsmInstanceCollection.\nAn array of cloud ASM instances.') + + +class CloudAsmInstanceParameters(DbmBaseModel): + """The initialization parameters for an ASM instance.""" + + asm_instance_id: str = Field(..., alias='asmInstanceId', description='**[Required]** Gets the asm_instance_id of this CloudAsmInstanceParameters. The OCID of the cloud ASM instance.') + asm_instance_display_name: str = Field(..., alias='asmInstanceDisplayName', description='**[Required]** Gets the asm_instance_display_name of this CloudAsmInstanceParameters.\nThe user-friendly name for the ASM instance. The name does not have to be unique.') + disk_discovery_path: str = Field(..., alias='diskDiscoveryPath', description='**[Required]** Gets the disk_discovery_path of this CloudAsmInstanceParameters.\nAn operating system-dependent value used to limit the set of disks considered for discovery.') + auto_mount_disk_groups: list[str] = Field(..., alias='autoMountDiskGroups', description='**[Required]** Gets the auto_mount_disk_groups of this CloudAsmInstanceParameters.\nThe list of disk group names that an ASM instance mounts at startup or when the `ALTER DISKGROUP ALL MOUNT` statement is issued.') + rebalance_power: int = Field(..., alias='rebalancePower', description='**[Required]** Gets the rebalance_power of this CloudAsmInstanceParameters.\nThe maximum power on an ASM instance for disk rebalancing.') + preferred_read_failure_groups: list[str] = Field(..., alias='preferredReadFailureGroups', description='**[Required]** Gets the preferred_read_failure_groups of this CloudAsmInstanceParameters.\nThe list of failure groups that contain preferred read disks.') + + +class CloudAsmInstanceSummary(DbmBaseModel): + """The summary of a cloud ASM instance.""" + + id: str = Field(..., description='**[Required]** Gets the id of this CloudAsmInstanceSummary. The OCID of the cloud ASM instance.') + dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this CloudAsmInstanceSummary. The OCID in DBaas service.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudAsmInstanceSummary.\nThe user-friendly name for the ASM instance. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this CloudAsmInstanceSummary.\nThe name of the cloud ASM instance.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudAsmInstanceSummary. The OCID of the compartment.') + cloud_asm_id: str = Field(..., alias='cloudAsmId', description='**[Required]** Gets the cloud_asm_id of this CloudAsmInstanceSummary. The OCID of the cloud ASM that the ASM instance belongs to.') + cloud_db_system_id: str = Field(..., alias='cloudDbSystemId', description='**[Required]** Gets the cloud_db_system_id of this CloudAsmInstanceSummary. The OCID of the cloud DB system that the ASM instance is a part of.') + cloud_db_node_id: str | None = Field(None, alias='cloudDbNodeId', description='Gets the cloud_db_node_id of this CloudAsmInstanceSummary. The OCID of the cloud DB node on which the ASM instance is running.') + adr_home_directory: str | None = Field(None, alias='adrHomeDirectory', description='Gets the adr_home_directory of this CloudAsmInstanceSummary.\nThe Automatic Diagnostic Repository (ADR) home directory for the ASM instance.') + host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this CloudAsmInstanceSummary.\nThe name of the host on which the ASM instance is running.') + lifecycle_state: str = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this CloudAsmInstanceSummary.\nThe current lifecycle state of the cloud ASM instance.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this CloudAsmInstanceSummary.\nAdditional information about the current lifecycle state.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this CloudAsmInstanceSummary.\nThe date and time the cloud ASM instance was created.') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this CloudAsmInstanceSummary.\nThe date and time the cloud ASM instance was last updated.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudAsmInstanceSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudAsmInstanceSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudAsmInstanceSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class CloudAsmServicedDatabase(DbmBaseModel): + """The details of a database serviced by a cloud ASM.""" + + disk_groups: list[str] | None = Field(None, alias='diskGroups', description='Gets the disk_groups of this CloudAsmServicedDatabase.\nThe list of ASM disk groups used by the database.') + id: str = Field(..., description='**[Required]** Gets the id of this CloudAsmServicedDatabase. The OCID of the cloud database.') + dbaas_id: str = Field(..., alias='dbaasId', description='**[Required]** Gets the dbaas_id of this CloudAsmServicedDatabase. The OCID of the existing Dbaas OCI resource matching the discovered DB system component.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudAsmServicedDatabase.\nThe user-friendly name for the database. The name does not have to be unique.') + db_unique_name: str | None = Field(None, alias='dbUniqueName', description='Gets the db_unique_name of this CloudAsmServicedDatabase.\nThe unique name of the cloud database.') + compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this CloudAsmServicedDatabase. The OCID of the compartment in which the cloud database resides.') + database_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseType', description='Gets the database_type of this CloudAsmServicedDatabase.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseSubType', description='Gets the database_sub_type of this CloudAsmServicedDatabase.\nThe subtype of Oracle Database. Indicates whether the database is a Container Database,\nPluggable Database, Non-container Database, Autonomous Database, or Autonomous Container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + is_managed: bool | None = Field(None, alias='isManaged', description='Gets the is_managed of this CloudAsmServicedDatabase.\nIndicates whether the database is a Managed Database or not.') + + +class CloudAsmSummary(DbmBaseModel): + """The summary of a cloud ASM.""" + + id: str = Field(..., description='**[Required]** Gets the id of this CloudAsmSummary. The OCID of the cloud ASM.') + dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this CloudAsmSummary. The OCID in DBaas service.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudAsmSummary.\nThe user-friendly name for the cloud ASM. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this CloudAsmSummary.\nThe name of the cloud ASM.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudAsmSummary. The OCID of the compartment.') + cloud_db_system_id: str = Field(..., alias='cloudDbSystemId', description='**[Required]** Gets the cloud_db_system_id of this CloudAsmSummary. The OCID of the cloud DB system that the ASM is a part of.') + cloud_connector_id: str | None = Field(None, alias='cloudConnectorId', description='Gets the cloud_connector_id of this CloudAsmSummary. The OCID of the cloud connector.') + lifecycle_state: str = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this CloudAsmSummary.\nThe current lifecycle state of the cloud ASM.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this CloudAsmSummary.\nAdditional information about the current lifecycle state.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this CloudAsmSummary.\nThe date and time the cloud ASM was created.') + time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this CloudAsmSummary.\nThe date and time the cloud ASM was last updated.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudAsmSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudAsmSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudAsmSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class CloudAsmUserCollection(DbmBaseModel): + """A collection of cloud ASM users.""" + + items: list[CloudAsmUserSummary] = Field(..., description='**[Required]** Gets the items of this CloudAsmUserCollection.\nAn array of cloud ASM users.') + + +class CloudAsmUserSummary(DbmBaseModel): + """The summary of an ASM user.""" + + name: str = Field(..., description='**[Required]** Gets the name of this CloudAsmUserSummary.\nThe name of the ASM user.') + privileges: list[str] = Field(..., description='**[Required]** Gets the privileges of this CloudAsmUserSummary.\nThe list of privileges of the ASM user.') + asm_id: str | None = Field(None, alias='asmId', description='Gets the asm_id of this CloudAsmUserSummary. The OCID of the cloud ASM.') + + +class CloudCluster(DbmBaseModel): + """The details of a cloud cluster.""" + + id: str = Field(..., description='**[Required]** Gets the id of this CloudCluster. The OCID of the cloud cluster.') + dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this CloudCluster. The OCID in DBaas service.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudCluster.\nThe user-friendly name for the cloud cluster. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this CloudCluster.\nThe name of the cloud cluster.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudCluster. The OCID of the compartment.') + cloud_db_system_id: str = Field(..., alias='cloudDbSystemId', description='**[Required]** Gets the cloud_db_system_id of this CloudCluster. The OCID of the cloud DB system that the cluster is a part of.') + cloud_connector_id: str | None = Field(None, alias='cloudConnectorId', description='Gets the cloud_connector_id of this CloudCluster. The OCID of the cloud connector.') + grid_home: str | None = Field(None, alias='gridHome', description='Gets the grid_home of this CloudCluster.\nThe directory in which Oracle Grid Infrastructure is installed.') + is_flex_cluster: bool | None = Field(None, alias='isFlexCluster', description='Gets the is_flex_cluster of this CloudCluster.\nIndicates whether the cluster is Oracle Flex Cluster or not.') + additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this CloudCluster.\nThe additional details of the cloud cluster defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') + lifecycle_state: Literal['CREATING', 'NOT_CONNECTED', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this CloudCluster.\nThe current lifecycle state of the cloud cluster.\n\nAllowed values for this property are: "CREATING", "NOT_CONNECTED", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this CloudCluster.\nAdditional information about the current lifecycle state.') + network_configurations: list[CloudClusterNetworkConfiguration] | None = Field(None, alias='networkConfigurations', description='Gets the network_configurations of this CloudCluster.\nThe list of network address configurations of the cloud cluster.') + vip_configurations: list[CloudClusterVipConfiguration] | None = Field(None, alias='vipConfigurations', description='Gets the vip_configurations of this CloudCluster.\nThe list of Virtual IP (VIP) configurations of the cloud cluster.') + scan_configurations: list[CloudClusterScanListenerConfiguration] | None = Field(None, alias='scanConfigurations', description='Gets the scan_configurations of this CloudCluster.\nThe list of Single Client Access Name (SCAN) configurations of the cloud cluster.') + ocr_file_location: str | None = Field(None, alias='ocrFileLocation', description='Gets the ocr_file_location of this CloudCluster.\nThe location of the Oracle Cluster Registry (OCR).') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this CloudCluster.\nThe date and time the cloud cluster was created.') + time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this CloudCluster.\nThe date and time the cloud cluster was last updated.') + version: str | None = Field(None, description='Gets the version of this CloudCluster.\nThe cluster version.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudCluster. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudCluster. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudCluster. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class CloudClusterCollection(DbmBaseModel): + """A collection of cloud clusters.""" + + items: list[CloudClusterSummary] = Field(..., description='**[Required]** Gets the items of this CloudClusterCollection.\nAn array of cloud clusters.') + + +class CloudClusterInstance(DbmBaseModel): + """The details of a cloud cluster instance.""" + + id: str = Field(..., description='**[Required]** Gets the id of this CloudClusterInstance. The OCID of the cloud cluster instance.') + dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this CloudClusterInstance. The OCID in DBaas service.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudClusterInstance.\nThe user-friendly name for the cluster instance. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this CloudClusterInstance.\nThe name of the cloud cluster instance.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudClusterInstance. The OCID of the compartment.') + cloud_cluster_id: str = Field(..., alias='cloudClusterId', description='**[Required]** Gets the cloud_cluster_id of this CloudClusterInstance. The OCID of the cloud cluster that the cluster instance belongs to.') + cloud_db_system_id: str = Field(..., alias='cloudDbSystemId', description='**[Required]** Gets the cloud_db_system_id of this CloudClusterInstance. The OCID of the cloud DB system that the cluster instance is a part of.') + cloud_db_node_id: str | None = Field(None, alias='cloudDbNodeId', description='Gets the cloud_db_node_id of this CloudClusterInstance. The OCID of the cloud DB node.') + cloud_connector_id: str | None = Field(None, alias='cloudConnectorId', description='Gets the cloud_connector_id of this CloudClusterInstance. The OCID of the cloud connector.') + host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this CloudClusterInstance.\nThe name of the host on which the cluster instance is running.') + node_role: Literal['HUB', 'LEAF', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='nodeRole', description='Gets the node_role of this CloudClusterInstance.\nThe role of the cluster node.\n\nAllowed values for this property are: "HUB", "LEAF", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + crs_base_directory: str | None = Field(None, alias='crsBaseDirectory', description='Gets the crs_base_directory of this CloudClusterInstance.\nThe Oracle base location of Cluster Ready Services (CRS).') + adr_home_directory: str | None = Field(None, alias='adrHomeDirectory', description='Gets the adr_home_directory of this CloudClusterInstance.\nThe Automatic Diagnostic Repository (ADR) home directory for the cluster instance.') + lifecycle_state: Literal['CREATING', 'NOT_CONNECTED', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this CloudClusterInstance.\nThe current lifecycle state of the cloud cluster instance.\n\nAllowed values for this property are: "CREATING", "NOT_CONNECTED", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this CloudClusterInstance.\nAdditional information about the current lifecycle state.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this CloudClusterInstance.\nThe date and time the cloud cluster instance was created.') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this CloudClusterInstance.\nThe date and time the cloud cluster instance was last updated.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudClusterInstance. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudClusterInstance. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudClusterInstance. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class CloudClusterInstanceCollection(DbmBaseModel): + """A collection of cloud cluster instances.""" + + items: list[CloudClusterInstanceSummary] = Field(..., description='**[Required]** Gets the items of this CloudClusterInstanceCollection.\nAn array of cloud cluster instances.') + + +class CloudClusterInstanceSummary(DbmBaseModel): + """The summary of a cloud cluster instance.""" + + id: str = Field(..., description='**[Required]** Gets the id of this CloudClusterInstanceSummary. The OCID of the cloud cluster instance.') + dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this CloudClusterInstanceSummary. The OCID in DBaas service.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudClusterInstanceSummary.\nThe user-friendly name for the cluster instance. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this CloudClusterInstanceSummary.\nThe name of the cloud cluster instance.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudClusterInstanceSummary. The OCID of the compartment.') + cloud_cluster_id: str = Field(..., alias='cloudClusterId', description='**[Required]** Gets the cloud_cluster_id of this CloudClusterInstanceSummary. The OCID of the cloud cluster that the cluster instance belongs to.') + cloud_db_system_id: str = Field(..., alias='cloudDbSystemId', description='**[Required]** Gets the cloud_db_system_id of this CloudClusterInstanceSummary. The OCID of the cloud DB system that the cluster instance is a part of.') + cloud_db_node_id: str | None = Field(None, alias='cloudDbNodeId', description='Gets the cloud_db_node_id of this CloudClusterInstanceSummary. The OCID of the cloud DB node.') + cloud_connector_id: str | None = Field(None, alias='cloudConnectorId', description='Gets the cloud_connector_id of this CloudClusterInstanceSummary. The OCID of the cloud connector.') + host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this CloudClusterInstanceSummary.\nThe name of the host on which the cluster instance is running.') + node_role: str | None = Field(None, alias='nodeRole', description='Gets the node_role of this CloudClusterInstanceSummary.\nThe role of the cluster node.') + crs_base_directory: str | None = Field(None, alias='crsBaseDirectory', description='Gets the crs_base_directory of this CloudClusterInstanceSummary.\nThe Oracle base location of Cluster Ready Services (CRS).') + adr_home_directory: str | None = Field(None, alias='adrHomeDirectory', description='Gets the adr_home_directory of this CloudClusterInstanceSummary.\nThe Automatic Diagnostic Repository (ADR) home directory for the cluster instance.') + lifecycle_state: str = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this CloudClusterInstanceSummary.\nThe current lifecycle state of the cloud cluster instance.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this CloudClusterInstanceSummary.\nAdditional information about the current lifecycle state.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this CloudClusterInstanceSummary.\nThe date and time the cloud cluster instance was created.') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this CloudClusterInstanceSummary.\nThe date and time the cloud cluster instance was last updated.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudClusterInstanceSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudClusterInstanceSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudClusterInstanceSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class CloudClusterNetworkConfiguration(DbmBaseModel): + """The details of a network address configuration in a cloud cluster.""" + + network_number: int | None = Field(None, alias='networkNumber', description='Gets the network_number of this CloudClusterNetworkConfiguration.\nThe network number.') + network_type: Literal['AUTOCONFIG', 'DHCP', 'STATIC', 'MIXED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='networkType', description='Gets the network_type of this CloudClusterNetworkConfiguration.\nThe network type.\n\nAllowed values for this property are: "AUTOCONFIG", "DHCP", "STATIC", "MIXED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + subnet: str | None = Field(None, description='Gets the subnet of this CloudClusterNetworkConfiguration.\nThe subnet for the network.') + + +class CloudClusterScanListenerConfiguration(DbmBaseModel): + """The details of a SCAN listener in a cloud cluster.""" + + scan_name: str | None = Field(None, alias='scanName', description='Gets the scan_name of this CloudClusterScanListenerConfiguration.\nThe name of the SCAN listener.') + network_number: int | None = Field(None, alias='networkNumber', description='Gets the network_number of this CloudClusterScanListenerConfiguration.\nThe network number from which SCAN VIPs are obtained.') + scan_port: int | None = Field(None, alias='scanPort', description='Gets the scan_port of this CloudClusterScanListenerConfiguration.\nThe port number of the SCAN listener.') + scan_protocol: Literal['TCP', 'TCPS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='scanProtocol', description='Gets the scan_protocol of this CloudClusterScanListenerConfiguration.\nThe protocol of the SCAN listener.\n\nAllowed values for this property are: "TCP", "TCPS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class CloudClusterSummary(DbmBaseModel): + """The summary of a cloud cluster.""" + + id: str = Field(..., description='**[Required]** Gets the id of this CloudClusterSummary. The OCID of the cloud cluster.') + dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this CloudClusterSummary. The OCID in DBaas service.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudClusterSummary.\nThe user-friendly name for the cloud cluster. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this CloudClusterSummary.\nThe name of the cloud cluster.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudClusterSummary. The OCID of the compartment.') + cloud_db_system_id: str = Field(..., alias='cloudDbSystemId', description='**[Required]** Gets the cloud_db_system_id of this CloudClusterSummary. The OCID of the cloud DB system that the cluster is a part of.') + cloud_connector_id: str | None = Field(None, alias='cloudConnectorId', description='Gets the cloud_connector_id of this CloudClusterSummary. The OCID of the cloud connector.') + lifecycle_state: str = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this CloudClusterSummary.\nThe current lifecycle state of the cloud cluster.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this CloudClusterSummary.\nAdditional information about the current lifecycle state.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this CloudClusterSummary.\nThe date and time the cloud cluster was created.') + time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this CloudClusterSummary.\nThe date and time the cloud cluster was last updated.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudClusterSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudClusterSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudClusterSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class CloudClusterVipConfiguration(DbmBaseModel): + """The details of the Virtual IP (VIP) address for a node in a cloud cluster.""" + + node_name: str | None = Field(None, alias='nodeName', description='Gets the node_name of this CloudClusterVipConfiguration.\nThe name of the node with the VIP.') + address: str | None = Field(None, description='Gets the address of this CloudClusterVipConfiguration.\nThe VIP name or IP address.') + network_number: int | None = Field(None, alias='networkNumber', description='Gets the network_number of this CloudClusterVipConfiguration.\nThe network number from which VIPs are obtained.') + + +class CloudDatabaseCollection(DbmBaseModel): + """A collection of cloud databases.""" + + items: list[CloudDatabaseSummary] = Field(..., description='**[Required]** Gets the items of this CloudDatabaseCollection.\nAn array of cloud databases.') + + +class CloudDatabaseConnectionInfo(DbmBaseModel): + """The details required to connect to a cloud Oracle Database.""" + + component_type: Literal['DATABASE', 'ASM', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this CloudDbSystemConnectionInfo.\nThe component type.\n\nAllowed values for this property are: "DATABASE", "ASM", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + connection_string: DatabaseConnectionString = Field(..., alias='connectionString', description='**[Required]** Gets the connection_string of this CloudDatabaseConnectionInfo.') + connection_credentials: DatabaseConnectionCredentials | None = Field(None, alias='connectionCredentials', description='Gets the connection_credentials of this CloudDatabaseConnectionInfo.') + + +class CloudDatabaseInstance(DbmBaseModel): + """The details of a cloud database instance.""" + + instance_number: int = Field(..., alias='instanceNumber', description='**[Required]** Gets the instance_number of this CloudDatabaseInstance.\nThe instance number of the database instance.') + instance_name: str = Field(..., alias='instanceName', description='**[Required]** Gets the instance_name of this CloudDatabaseInstance.\nThe name of the database instance.') + host_name: str = Field(..., alias='hostName', description='**[Required]** Gets the host_name of this CloudDatabaseInstance.\nThe name of the host machine.') + + +class CloudDatabaseSummary(DbmBaseModel): + """The summary of a cloud database.""" + + id: str = Field(..., description='**[Required]** Gets the id of this CloudDatabaseSummary. The OCID of the external DB system.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudDatabaseSummary.\nThe user-friendly name for the database. The name does not have to be unique.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudDatabaseSummary. The OCID of the compartment.') + db_unique_name: str | None = Field(None, alias='dbUniqueName', description='Gets the db_unique_name of this CloudDatabaseSummary.\nThe `DB_UNIQUE_NAME` of the external database.') + database_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseType', description='Gets the database_type of this CloudDatabaseSummary.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseSubType', description='Gets the database_sub_type of this CloudDatabaseSummary.\nThe subtype of Oracle Database. Indicates whether the database is a Container Database,\nPluggable Database, or Non-container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + parent_container_database_id: str | None = Field(None, alias='parentContainerDatabaseId', description='Gets the parent_container_database_id of this CloudDatabaseSummary. The OCID of the parent Container Database (CDB) if this is a Pluggable Database (PDB).') + cloud_db_home_id: str | None = Field(None, alias='cloudDbHomeId', description='Gets the cloud_db_home_id of this CloudDatabaseSummary. The OCID of the external DB home.') + db_system_info: CloudDbSystemBasicInfo | None = Field(None, alias='dbSystemInfo', description='Gets the db_system_info of this CloudDatabaseSummary.') + db_management_config: CloudDbSystemDatabaseManagementConfigDetails | None = Field(None, alias='dbManagementConfig', description='Gets the db_management_config of this CloudDatabaseSummary.') + instance_details: list[CloudDatabaseInstance] | None = Field(None, alias='instanceDetails', description='Gets the instance_details of this CloudDatabaseSummary.\nThe list of database instances if the database is a RAC database.') + lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this CloudDatabaseSummary.\nThe current lifecycle state of the external database resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this CloudDatabaseSummary.\nThe date and time the external DB system was created.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudDatabaseSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudDatabaseSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudDatabaseSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + dbmgmt_feature_configs: list[DatabaseFeatureConfiguration] | None = Field(None, alias='dbmgmtFeatureConfigs', description='Gets the dbmgmt_feature_configs of this CloudDatabaseSummary.\nThe list of feature configurations') + database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this CloudDatabaseSummary.\nThe Oracle database version.') + database_platform_name: str | None = Field(None, alias='databasePlatformName', description='Gets the database_platform_name of this CloudDatabaseSummary.\nThe operating system of database.') + + +class CloudDbHome(DbmBaseModel): + """The details of a cloud database home.""" + + id: str = Field(..., description='**[Required]** Gets the id of this CloudDbHome. The OCID of the cloud DB home.') + dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this CloudDbHome. The OCID of the cloud DB home in DBaas service.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudDbHome.\nThe user-friendly name for the cloud DB home. The name does not have to be unique.') + component_name: str | None = Field(None, alias='componentName', description='Gets the component_name of this CloudDbHome.\nThe name of the cloud DB home.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudDbHome. The OCID of the compartment.') + cloud_db_system_id: str = Field(..., alias='cloudDbSystemId', description='**[Required]** Gets the cloud_db_system_id of this CloudDbHome. The OCID of the cloud DB system that the DB home is a part of.') + home_directory: str | None = Field(None, alias='homeDirectory', description='Gets the home_directory of this CloudDbHome.\nThe location of the DB home.') + additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this CloudDbHome.\nThe additional details of the DB home defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') + lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this CloudDbHome.\nThe current lifecycle state of the cloud DB home.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this CloudDbHome.\nAdditional information about the current lifecycle state.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this CloudDbHome.\nThe date and time the cloud DB home was created.') + time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this CloudDbHome.\nThe date and time the cloud DB home was last updated.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudDbHome. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudDbHome. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudDbHome. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class CloudDbHomeCollection(DbmBaseModel): + """A collection of cloud database homes.""" + + items: list[CloudDbHomeSummary] = Field(..., description='**[Required]** Gets the items of this CloudDbHomeCollection.\nAn array of cloud DB homes.') + + +class CloudDbHomeSummary(DbmBaseModel): + """The summary of a cloud database home.""" + + id: str = Field(..., description='**[Required]** Gets the id of this CloudDbHomeSummary. The OCID of the cloud DB home.') + dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this CloudDbHomeSummary. The OCID of the cloud DB home in DBaas service.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudDbHomeSummary.\nThe user-friendly name for the cloud DB home. The name does not have to be unique.') + component_name: str | None = Field(None, alias='componentName', description='Gets the component_name of this CloudDbHomeSummary.\nThe name of the cloud DB home.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudDbHomeSummary. The OCID of the compartment.') + cloud_db_system_id: str = Field(..., alias='cloudDbSystemId', description='**[Required]** Gets the cloud_db_system_id of this CloudDbHomeSummary. The OCID of the cloud DB system that the DB home is a part of.') + home_directory: str | None = Field(None, alias='homeDirectory', description='Gets the home_directory of this CloudDbHomeSummary.\nThe location of the DB home.') + lifecycle_state: str = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this CloudDbHomeSummary.\nThe current lifecycle state of the cloud DB home.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this CloudDbHomeSummary.\nAdditional information about the current lifecycle state.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this CloudDbHomeSummary.\nThe date and time the cloud DB home was created.') + time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this CloudDbHomeSummary.\nThe date and time the cloud DB home was last updated.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudDbHomeSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudDbHomeSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudDbHomeSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class CloudDbNode(DbmBaseModel): + """The details of a cloud database node.""" + + id: str = Field(..., description='**[Required]** Gets the id of this CloudDbNode. The OCID of the cloud DB node.') + dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this CloudDbNode. The OCID of the cloud DB node in DBaas service.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudDbNode.\nThe user-friendly name for the cloud DB node. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this CloudDbNode.\nThe name of the cloud DB node.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudDbNode. The OCID of the compartment.') + cloud_db_system_id: str = Field(..., alias='cloudDbSystemId', description='**[Required]** Gets the cloud_db_system_id of this CloudDbNode. The OCID of the cloud DB system that the DB node is a part of.') + cloud_connector_id: str | None = Field(None, alias='cloudConnectorId', description='Gets the cloud_connector_id of this CloudDbNode. The OCID of the cloud connector.') + host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this CloudDbNode.\nThe host name for the DB node.') + cpu_core_count: float | None = Field(None, ge=0, alias='cpuCoreCount', description='Gets the cpu_core_count of this CloudDbNode.\nThe number of CPU cores available on the DB node.') + memory_size_in_gbs: float | None = Field(None, alias='memorySizeInGBs', description='Gets the memory_size_in_gbs of this CloudDbNode.\nThe total memory in gigabytes (GB) on the DB node.') + additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this CloudDbNode.\nThe additional details of the cloud DB node defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') + lifecycle_state: Literal['CREATING', 'NOT_CONNECTED', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this CloudDbNode.\nThe current lifecycle state of the cloud DB node.\n\nAllowed values for this property are: "CREATING", "NOT_CONNECTED", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this CloudDbNode.\nAdditional information about the current lifecycle state.') + domain_name: str | None = Field(None, alias='domainName', description='Gets the domain_name of this CloudDbNode.\nName of the domain.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this CloudDbNode.\nThe date and time the cloud DB node was created.') + time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this CloudDbNode.\nThe date and time the cloud DB node was last updated.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudDbNode. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudDbNode. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudDbNode. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class CloudDbNodeCollection(DbmBaseModel): + """A collection of cloud database nodes.""" + + items: list[CloudDbNodeSummary] = Field(..., description='**[Required]** Gets the items of this CloudDbNodeCollection.\nAn array of cloud DB nodes.') + + +class CloudDbNodeSummary(DbmBaseModel): + """The summary of a cloud database node.""" + + id: str = Field(..., description='**[Required]** Gets the id of this CloudDbNodeSummary. The OCID of the cloud DB node.') + dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this CloudDbNodeSummary. The OCID of the cloud DB node in DBaas service.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudDbNodeSummary.\nThe user-friendly name for the cloud DB node. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this CloudDbNodeSummary.\nThe name of the cloud DB node.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudDbNodeSummary. The OCID of the compartment.') + cloud_db_system_id: str = Field(..., alias='cloudDbSystemId', description='**[Required]** Gets the cloud_db_system_id of this CloudDbNodeSummary. The OCID of the cloud DB system that the DB node is a part of.') + cloud_connector_id: str | None = Field(None, alias='cloudConnectorId', description='Gets the cloud_connector_id of this CloudDbNodeSummary. The OCID of the cloud connector.') + host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this CloudDbNodeSummary.\nThe host name for the DB node.') + lifecycle_state: str = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this CloudDbNodeSummary.\nThe current lifecycle state of the cloud DB node.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this CloudDbNodeSummary.\nAdditional information about the current lifecycle state.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this CloudDbNodeSummary.\nThe date and time the cloud DB node was created.') + time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this CloudDbNodeSummary.\nThe date and time the cloud DB node was last updated.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudDbNodeSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudDbNodeSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudDbNodeSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class CloudDbSystem(DbmBaseModel): + """The details of a cloud DB system.""" + + id: str = Field(..., description='**[Required]** Gets the id of this CloudDbSystem. The OCID of the cloud DB system.') + dbaas_parent_infrastructure_id: str = Field(..., alias='dbaasParentInfrastructureId', description='**[Required]** Gets the dbaas_parent_infrastructure_id of this CloudDbSystem. The OCID of the parent cloud DB Infrastructure. For VM Dbsystems, it will be the DBSystem Id. For ExaCS and ExaCC, it will be the cloudVmClusterId and vmClusterId respectively.') + deployment_type: Literal['VM', 'EXADATA', 'EXADATA_CC', 'EXADATA_XS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='deploymentType', description='**[Required]** Gets the deployment_type of this CloudDbSystem.\nThe deployment type of cloud dbsystem.\n\nAllowed values for this property are: "VM", "EXADATA", "EXADATA_CC", "EXADATA_XS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudDbSystem.\nThe user-friendly name for the DB system. The name does not have to be unique.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudDbSystem. The OCID of the compartment.') + db_system_discovery_id: str | None = Field(None, alias='dbSystemDiscoveryId', description='Gets the db_system_discovery_id of this CloudDbSystem. The OCID of the DB system discovery.') + discovery_agent_id: str | None = Field(None, alias='discoveryAgentId', description='Gets the discovery_agent_id of this CloudDbSystem. The OCID of the management agent used during the discovery of the DB system.') + is_cluster: bool | None = Field(None, alias='isCluster', description='Gets the is_cluster of this CloudDbSystem.\nIndicates whether the DB system is a cluster DB system or not.') + home_directory: str | None = Field(None, alias='homeDirectory', description='Gets the home_directory of this CloudDbSystem.\nThe Oracle Grid home directory in case of cluster-based DB system and\nOracle home directory in case of single instance-based DB system.') + database_management_config: CloudDbSystemDatabaseManagementConfigDetails | None = Field(None, alias='databaseManagementConfig', description='Gets the database_management_config of this CloudDbSystem.') + stack_monitoring_config: CloudDbSystemStackMonitoringConfigDetails | None = Field(None, alias='stackMonitoringConfig', description='Gets the stack_monitoring_config of this CloudDbSystem.') + lifecycle_state: Literal['CREATING', 'ACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'INACTIVE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this CloudDbSystem.\nThe current lifecycle state of the cloud DB system resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "UPDATING", "DELETING", "DELETED", "INACTIVE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this CloudDbSystem.\nAdditional information about the current lifecycle state.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this CloudDbSystem.\nThe date and time the cloud DB system was created.') + time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this CloudDbSystem.\nThe date and time the cloud DB system was last updated.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudDbSystem. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudDbSystem. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudDbSystem. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class CloudDbSystemBasicInfo(DbmBaseModel): + """The basic information about a cloud DB system.""" + + id: str = Field(..., description='**[Required]** Gets the id of this CloudDbSystemBasicInfo. The OCID of the cloud DB system.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudDbSystemBasicInfo.\nThe user-friendly name for the cloud DB system. The name does not have to be unique.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudDbSystemBasicInfo. The OCID of the compartment.') + + +class CloudDbSystemCollection(DbmBaseModel): + """A collection of cloud DB systems.""" + + items: list[CloudDbSystemSummary] = Field(..., description='**[Required]** Gets the items of this CloudDbSystemCollection.\nAn array of cloud DB systems.') + + +class CloudDbSystemConnectionInfo(DbmBaseModel): + """The connection details required to connect to a cloud DB system component.""" + + component_type: Literal['DATABASE', 'ASM', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this CloudDbSystemConnectionInfo.\nThe component type.\n\nAllowed values for this property are: "DATABASE", "ASM", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class CloudDbSystemConnector(DbmBaseModel): + """The details of a cloud DB system connector.""" + + connector_type: Literal['MACS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this CloudDbSystemConnector.\nThe type of connector.\n\nAllowed values for this property are: "MACS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + id: str = Field(..., description='**[Required]** Gets the id of this CloudDbSystemConnector. The OCID of the cloud DB system connector.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudDbSystemConnector.\nThe user-friendly name for the cloud connector. The name does not have to be unique.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudDbSystemConnector. The OCID of the compartment.') + cloud_db_system_id: str = Field(..., alias='cloudDbSystemId', description='**[Required]** Gets the cloud_db_system_id of this CloudDbSystemConnector. The OCID of the cloud DB system that the connector is a part of.') + connection_status: str | None = Field(None, alias='connectionStatus', description='Gets the connection_status of this CloudDbSystemConnector.\nThe status of connectivity to the cloud DB system component.') + connection_failure_message: str | None = Field(None, alias='connectionFailureMessage', description='Gets the connection_failure_message of this CloudDbSystemConnector.\nThe error message indicating the reason for connection failure or `null` if\nthe connection was successful.') + lifecycle_state: Literal['CREATING', 'NOT_CONNECTED', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this CloudDbSystemConnector.\nThe current lifecycle state of the cloud DB system connector.\n\nAllowed values for this property are: "CREATING", "NOT_CONNECTED", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this CloudDbSystemConnector.\nAdditional information about the current lifecycle state.') + time_connection_status_last_updated: datetime | None = Field(None, alias='timeConnectionStatusLastUpdated', description='Gets the time_connection_status_last_updated of this CloudDbSystemConnector.\nThe date and time the connectionStatus of the cloud DB system connector was last updated.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this CloudDbSystemConnector.\nThe date and time the cloud DB system connector was created.') + time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this CloudDbSystemConnector.\nThe date and time the cloud DB system connector was last updated.') + + +class CloudDbSystemConnectorCollection(DbmBaseModel): + """A collection of cloud DB system connectors.""" + + items: list[CloudDbSystemConnectorSummary] = Field(..., description='**[Required]** Gets the items of this CloudDbSystemConnectorCollection.\nAn array of cloud DB system connectors.') + + +class CloudDbSystemConnectorSummary(DbmBaseModel): + """The summary of a cloud DB system connector.""" + + id: str = Field(..., description='**[Required]** Gets the id of this CloudDbSystemConnectorSummary. The OCID of the cloud DB system connector.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudDbSystemConnectorSummary.\nThe user-friendly name for the cloud connector. The name does not have to be unique.') + connector_type: Literal['MACS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this CloudDbSystemConnectorSummary.\nThe type of connector.\n\nAllowed values for this property are: "MACS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudDbSystemConnectorSummary. The OCID of the compartment.') + cloud_db_system_id: str = Field(..., alias='cloudDbSystemId', description='**[Required]** Gets the cloud_db_system_id of this CloudDbSystemConnectorSummary. The OCID of the cloud DB system that the connector is a part of.') + agent_id: str = Field(..., alias='agentId', description='**[Required]** Gets the agent_id of this CloudDbSystemConnectorSummary. The OCID of the management agent used for the cloud DB system connector.') + lifecycle_state: str = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this CloudDbSystemConnectorSummary.\nThe current lifecycle state of the cloud DB system connector.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this CloudDbSystemConnectorSummary.\nAdditional information about the current lifecycle state.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this CloudDbSystemConnectorSummary.\nThe date and time the cloud DB system connector was created.') + time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this CloudDbSystemConnectorSummary.\nThe date and time the cloud DB system connector was last updated.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudDbSystemConnectorSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudDbSystemConnectorSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudDbSystemConnectorSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class CloudDbSystemDatabaseManagementConfigDetails(DbmRequestModel): + """The configuration details of Database Management for a cloud DB system.""" + + is_enabled: bool = Field(..., alias='isEnabled', description='**[Required]** Gets the is_enabled of this CloudDbSystemDatabaseManagementConfigDetails.\nThe status of the associated service.') + metadata: str | None = Field(None, description='Gets the metadata of this CloudDbSystemDatabaseManagementConfigDetails.\nThe associated service-specific inputs in JSON string format, which Database Management can identify.') + + +class CloudDbSystemDiscovery(DbmBaseModel): + """The details of a cloud DB system discovery.""" + + id: str = Field(..., description='**[Required]** Gets the id of this CloudDbSystemDiscovery. The OCID of the cloud DB system discovery.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudDbSystemDiscovery.\nThe user-friendly name for the DB system. The name does not have to be unique.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudDbSystemDiscovery. The OCID of the compartment.') + agent_id: str = Field(..., alias='agentId', description='**[Required]** Gets the agent_id of this CloudDbSystemDiscovery. The OCID of the management agent used for the cloud DB system discovery.') + dbaas_parent_infrastructure_id: str = Field(..., alias='dbaasParentInfrastructureId', description='**[Required]** Gets the dbaas_parent_infrastructure_id of this CloudDbSystemDiscovery. The OCID of the parent cloud DB Infrastructure. For VM Dbsystems, it will be the DBSystem Id. For ExaCS and ExaCC, it will be the cloudVmClusterId and vmClusterId respectively.') + deployment_type: Literal['VM', 'EXADATA', 'EXADATA_CC', 'EXADATA_XS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='deploymentType', description='**[Required]** Gets the deployment_type of this CloudDbSystemDiscovery.\nThe deployment type of cloud dbsystem.\n\nAllowed values for this property are: "VM", "EXADATA", "EXADATA_CC", "EXADATA_XS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + grid_home: str | None = Field(None, alias='gridHome', description='Gets the grid_home of this CloudDbSystemDiscovery.\nThe directory in which Oracle Grid Infrastructure is installed.') + discovered_components: list[DiscoveredCloudDbSystemComponent] | None = Field(None, alias='discoveredComponents', description='Gets the discovered_components of this CloudDbSystemDiscovery.\nThe list of DB system components that were found in the DB system discovery.') + resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this CloudDbSystemDiscovery. The OCID of the existing OCI resource matching the discovered DB system.') + lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this CloudDbSystemDiscovery.\nThe current lifecycle state of the cloud DB system discovery resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this CloudDbSystemDiscovery.\nAdditional information about the current lifecycle state.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this CloudDbSystemDiscovery.\nThe date and time the cloud DB system discovery was created.') + time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this CloudDbSystemDiscovery.\nThe date and time the cloud DB system discovery was last updated.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudDbSystemDiscovery. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudDbSystemDiscovery. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudDbSystemDiscovery. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class CloudDbSystemDiscoveryCollection(DbmBaseModel): + """A collection of cloud DB system discovery summaries.""" + + items: list[CloudDbSystemDiscoverySummary] = Field(..., description='**[Required]** Gets the items of this CloudDbSystemDiscoveryCollection.\nAn array of cloud DB system discoveries.') + + +class CloudDbSystemDiscoveryConnector(DbmBaseModel): + """The connector details used to connect to the cloud DB system component.""" + + connector_type: Literal['MACS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this CloudDbSystemDiscoveryConnector.\nThe type of connector.\n\nAllowed values for this property are: "MACS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudDbSystemDiscoveryConnector.\nThe user-friendly name for the cloud connector. The name does not have to be unique.') + connection_status: str | None = Field(None, alias='connectionStatus', description='Gets the connection_status of this CloudDbSystemDiscoveryConnector.\nThe status of connectivity to the cloud DB system component.') + connection_failure_message: str | None = Field(None, alias='connectionFailureMessage', description='Gets the connection_failure_message of this CloudDbSystemDiscoveryConnector.\nThe error message indicating the reason for connection failure or `null` if\nthe connection was successful.') + time_connection_status_last_updated: datetime | None = Field(None, alias='timeConnectionStatusLastUpdated', description='Gets the time_connection_status_last_updated of this CloudDbSystemDiscoveryConnector.\nThe date and time the connectionStatus of the cloud DB system connector was last updated.') + + +class CloudDbSystemDiscoveryMacsConnector(DbmBaseModel): + """The details of a cloud DB system connector that uses the +Management Agent Cloud Service (MACS) +to connect to a cloud DB system component.""" + + + + connector_type: Literal['MACS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this CloudDbSystemDiscoveryConnector.\nThe type of connector.\n\nAllowed values for this property are: "MACS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudDbSystemDiscoveryConnector.\nThe user-friendly name for the cloud connector. The name does not have to be unique.') + connection_status: str | None = Field(None, alias='connectionStatus', description='Gets the connection_status of this CloudDbSystemDiscoveryConnector.\nThe status of connectivity to the cloud DB system component.') + connection_failure_message: str | None = Field(None, alias='connectionFailureMessage', description='Gets the connection_failure_message of this CloudDbSystemDiscoveryConnector.\nThe error message indicating the reason for connection failure or `null` if\nthe connection was successful.') + time_connection_status_last_updated: datetime | None = Field(None, alias='timeConnectionStatusLastUpdated', description='Gets the time_connection_status_last_updated of this CloudDbSystemDiscoveryConnector.\nThe date and time the connectionStatus of the cloud DB system connector was last updated.') + agent_id: str = Field(..., alias='agentId', description='**[Required]** Gets the agent_id of this CloudDbSystemDiscoveryMacsConnector. The OCID of the management agent used for the cloud DB system connector.') + connection_info: CloudDbSystemConnectionInfo | None = Field(None, alias='connectionInfo', description='Gets the connection_info of this CloudDbSystemDiscoveryMacsConnector.') + + +class CloudDbSystemDiscoverySummary(DbmBaseModel): + """The summary of a cloud DB system.""" + + id: str = Field(..., description='**[Required]** Gets the id of this CloudDbSystemDiscoverySummary. The OCID of the cloud DB system discovery.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudDbSystemDiscoverySummary.\nThe user-friendly name for the DB system. The name does not have to be unique.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudDbSystemDiscoverySummary. The OCID of the compartment.') + agent_id: str = Field(..., alias='agentId', description='**[Required]** Gets the agent_id of this CloudDbSystemDiscoverySummary. The OCID of the management agent used for the cloud DB system discovery.') + dbaas_parent_infrastructure_id: str = Field(..., alias='dbaasParentInfrastructureId', description='**[Required]** Gets the dbaas_parent_infrastructure_id of this CloudDbSystemDiscoverySummary. The OCID of the parent cloud DB Infrastructure. For VM Dbsystems, it will be the DBSystem Id. For ExaCS and ExaCC, it will be the cloudVmClusterId and vmClusterId respectively.') + deployment_type: Literal['VM', 'EXADATA', 'EXADATA_CC', 'EXADATA_XS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='deploymentType', description='**[Required]** Gets the deployment_type of this CloudDbSystemDiscoverySummary.\nThe deployment type of cloud dbsystem.\n\nAllowed values for this property are: "VM", "EXADATA", "EXADATA_CC", "EXADATA_XS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_state: str = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this CloudDbSystemDiscoverySummary.\nThe current lifecycle state of the cloud DB system discovery resource.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this CloudDbSystemDiscoverySummary.\nAdditional information about the current lifecycle state.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this CloudDbSystemDiscoverySummary.\nThe date and time the cloud DB system discovery was created.') + time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this CloudDbSystemDiscoverySummary.\nThe date and time the cloud DB system discovery was last updated.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudDbSystemDiscoverySummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudDbSystemDiscoverySummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudDbSystemDiscoverySummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class CloudDbSystemMacsConnector(DbmBaseModel): + """The details of a cloud DB system connector that uses the +Management Agent Cloud Service (MACS) +to connect to a cloud DB system component.""" + + + + connector_type: Literal['MACS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this CloudDbSystemConnector.\nThe type of connector.\n\nAllowed values for this property are: "MACS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + id: str = Field(..., description='**[Required]** Gets the id of this CloudDbSystemConnector. The OCID of the cloud DB system connector.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudDbSystemConnector.\nThe user-friendly name for the cloud connector. The name does not have to be unique.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudDbSystemConnector. The OCID of the compartment.') + cloud_db_system_id: str = Field(..., alias='cloudDbSystemId', description='**[Required]** Gets the cloud_db_system_id of this CloudDbSystemConnector. The OCID of the cloud DB system that the connector is a part of.') + connection_status: str | None = Field(None, alias='connectionStatus', description='Gets the connection_status of this CloudDbSystemConnector.\nThe status of connectivity to the cloud DB system component.') + connection_failure_message: str | None = Field(None, alias='connectionFailureMessage', description='Gets the connection_failure_message of this CloudDbSystemConnector.\nThe error message indicating the reason for connection failure or `null` if\nthe connection was successful.') + lifecycle_state: Literal['CREATING', 'NOT_CONNECTED', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this CloudDbSystemConnector.\nThe current lifecycle state of the cloud DB system connector.\n\nAllowed values for this property are: "CREATING", "NOT_CONNECTED", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this CloudDbSystemConnector.\nAdditional information about the current lifecycle state.') + time_connection_status_last_updated: datetime | None = Field(None, alias='timeConnectionStatusLastUpdated', description='Gets the time_connection_status_last_updated of this CloudDbSystemConnector.\nThe date and time the connectionStatus of the cloud DB system connector was last updated.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this CloudDbSystemConnector.\nThe date and time the cloud DB system connector was created.') + time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this CloudDbSystemConnector.\nThe date and time the cloud DB system connector was last updated.') + agent_id: str = Field(..., alias='agentId', description='**[Required]** Gets the agent_id of this CloudDbSystemMacsConnector. The OCID of the management agent used for the cloud DB system connector.') + connection_info: CloudDbSystemConnectionInfo | None = Field(None, alias='connectionInfo', description='Gets the connection_info of this CloudDbSystemMacsConnector.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudDbSystemMacsConnector. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudDbSystemMacsConnector. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudDbSystemMacsConnector. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class CloudDbSystemStackMonitoringConfigDetails(DbmRequestModel): + """The configuration details of Stack Monitoring for a cloud DB system.""" + + is_enabled: bool = Field(..., alias='isEnabled', description='**[Required]** Gets the is_enabled of this CloudDbSystemStackMonitoringConfigDetails.\nThe status of the associated service.') + metadata: str | None = Field(None, description='Gets the metadata of this CloudDbSystemStackMonitoringConfigDetails.\nThe associated service-specific inputs in JSON string format, which Database Management can identify.') + + +class CloudDbSystemSummary(DbmBaseModel): + """The summary of a cloud DB system.""" + + id: str = Field(..., description='**[Required]** Gets the id of this CloudDbSystemSummary. The OCID of the cloud DB system.') + dbaas_parent_infrastructure_id: str = Field(..., alias='dbaasParentInfrastructureId', description='**[Required]** Gets the dbaas_parent_infrastructure_id of this CloudDbSystemSummary. The OCID of the parent cloud DB Infrastructure. For VM Dbsystems, it will be the DBSystem Id. For ExaCS and ExaCC, it will be the cloudVmClusterId and vmClusterId respectively.') + deployment_type: Literal['VM', 'EXADATA', 'EXADATA_CC', 'EXADATA_XS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='deploymentType', description='**[Required]** Gets the deployment_type of this CloudDbSystemSummary.\nThe deployment type of cloud dbsystem.\n\nAllowed values for this property are: "VM", "EXADATA", "EXADATA_CC", "EXADATA_XS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudDbSystemSummary.\nThe user-friendly name for the DB system. The name does not have to be unique.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudDbSystemSummary. The OCID of the compartment.') + home_directory: str | None = Field(None, alias='homeDirectory', description='Gets the home_directory of this CloudDbSystemSummary.\nThe Oracle Grid home directory in case of cluster-based DB system and\nOracle home directory in case of single instance-based DB system.') + database_management_config: CloudDbSystemDatabaseManagementConfigDetails | None = Field(None, alias='databaseManagementConfig', description='Gets the database_management_config of this CloudDbSystemSummary.') + lifecycle_state: str = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this CloudDbSystemSummary.\nThe current lifecycle state of the cloud DB system resource.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this CloudDbSystemSummary.\nAdditional information about the current lifecycle state.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this CloudDbSystemSummary.\nThe date and time the cloud DB system was created.') + time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this CloudDbSystemSummary.\nThe date and time the cloud DB system was last updated.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudDbSystemSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudDbSystemSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudDbSystemSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class CloudExadataInfrastructure(DbmBaseModel): + """The details of the Exadata infrastructure.""" + + id: str = Field(..., description='**[Required]** Gets the id of this DbmResource. The OCID of the Exadata resource.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DbmResource.\nThe name of the Exadata resource. English letters, numbers, "-", "_" and "." only.') + version: str | None = Field(None, description='Gets the version of this DbmResource.\nThe version of the Exadata resource.') + internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this DbmResource.\nThe internal ID of the Exadata resource.') + status: str | None = Field(None, description='Gets the status of this DbmResource.\nThe status of the Exadata resource.') + lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DbmResource.\nThe current lifecycle state of the database resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DbmResource.\nThe timestamp of the creation of the Exadata resource.') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DbmResource.\nThe timestamp of the last update of the Exadata resource.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DbmResource.\nThe details of the lifecycle state of the Exadata resource.') + additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this DbmResource.\nThe additional details of the resource defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') + resource_type: Literal['INFRASTRUCTURE_SUMMARY', 'INFRASTRUCTURE', 'STORAGE_SERVER_SUMMARY', 'STORAGE_SERVER', 'STORAGE_GRID_SUMMARY', 'STORAGE_GRID', 'STORAGE_CONNECTOR_SUMMARY', 'STORAGE_CONNECTOR', 'DATABASE_SYSTEM_SUMMARY', 'DATABASE_SUMMARY', 'VM_CLUSTER_SUMMARY', 'CLOUD_INFRASTRUCTURE_SUMMARY', 'CLOUD_INFRASTRUCTURE', 'CLOUD_STORAGE_SERVER_SUMMARY', 'CLOUD_STORAGE_SERVER', 'CLOUD_STORAGE_GRID_SUMMARY', 'CLOUD_STORAGE_GRID', 'CLOUD_STORAGE_CONNECTOR_SUMMARY', 'CLOUD_STORAGE_CONNECTOR', 'MANAGED_DATABASE_SUMMARY', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceType', description='**[Required]** Gets the resource_type of this DbmResource.\nThe type of Exadata resource.\n\nAllowed values for this property are: "INFRASTRUCTURE_SUMMARY", "INFRASTRUCTURE", "STORAGE_SERVER_SUMMARY", "STORAGE_SERVER", "STORAGE_GRID_SUMMARY", "STORAGE_GRID", "STORAGE_CONNECTOR_SUMMARY", "STORAGE_CONNECTOR", "DATABASE_SYSTEM_SUMMARY", "DATABASE_SUMMARY", "VM_CLUSTER_SUMMARY", "CLOUD_INFRASTRUCTURE_SUMMARY", "CLOUD_INFRASTRUCTURE", "CLOUD_STORAGE_SERVER_SUMMARY", "CLOUD_STORAGE_SERVER", "CLOUD_STORAGE_GRID_SUMMARY", "CLOUD_STORAGE_GRID", "CLOUD_STORAGE_CONNECTOR_SUMMARY", "CLOUD_STORAGE_CONNECTOR", "MANAGED_DATABASE_SUMMARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + rack_size: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='rackSize', description='Gets the rack_size of this CloudExadataInfrastructure.\nThe rack size of the Exadata infrastructure.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this CloudExadataInfrastructure. The OCID of the compartment.') + license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='licenseModel', description='Gets the license_model of this CloudExadataInfrastructure.\nThe Oracle license model that applies to the database management resources.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + storage_grid: CloudExadataStorageGridSummary | None = Field(None, alias='storageGrid', description='Gets the storage_grid of this CloudExadataInfrastructure.') + deployment_type: Literal['EXADATA', 'EXADATA_CC', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='deploymentType', description='Gets the deployment_type of this CloudExadataInfrastructure.\nThe infrastructure deployment type.\n\nAllowed values for this property are: "EXADATA", "EXADATA_CC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + vm_clusters: list[ExadataVmClusterSummary] | None = Field(None, alias='vmClusters', description='Gets the vm_clusters of this CloudExadataInfrastructure.\nThe list of VM Clusters in the Exadata infrastructure.') + database_compartments: list[str] | None = Field(None, alias='databaseCompartments', description='Gets the database_compartments of this CloudExadataInfrastructure. The list of OCIDs] of the compartments.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudExadataInfrastructure. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudExadataInfrastructure. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudExadataInfrastructure. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class CloudExadataInfrastructureCollection(DbmBaseModel): + """A list of the Exadata infrastructure resources.""" + + items: list[CloudExadataInfrastructureSummary] = Field(..., description='**[Required]** Gets the items of this CloudExadataInfrastructureCollection.\nA list of Exadata infrastructures.') + + +class CloudExadataInfrastructureDiscovery(DbmBaseModel): + """The result of the Exadata infrastructure discovery.""" + + id: str | None = Field(None, description='Gets the id of this EntityDiscovered. The OCID of the entity discovered.') + agent_id: str | None = Field(None, alias='agentId', description='Gets the agent_id of this EntityDiscovered. The OCID of the agent used for monitoring.') + connector_id: str | None = Field(None, alias='connectorId', description='Gets the connector_id of this EntityDiscovered. The OCID of the associated connector.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this EntityDiscovered.\nThe name of the entity.') + version: str | None = Field(None, description='Gets the version of this EntityDiscovered.\nThe version of the entity.') + internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this EntityDiscovered.\nThe internal identifier of the entity.') + status: str | None = Field(None, description='Gets the status of this EntityDiscovered.\nThe status of the entity.') + discover_status: Literal['PREV_DISCOVERED', 'NEW_DISCOVERED', 'NOT_FOUND', 'DISCOVERING', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='discoverStatus', description='Gets the discover_status of this EntityDiscovered.\nThe status of the entity discovery.\n\nAllowed values for this property are: "PREV_DISCOVERED", "NEW_DISCOVERED", "NOT_FOUND", "DISCOVERING", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + discover_error_code: str | None = Field(None, alias='discoverErrorCode', description='Gets the discover_error_code of this EntityDiscovered.\nThe error code of the discovery.') + discover_error_msg: str | None = Field(None, alias='discoverErrorMsg', description='Gets the discover_error_msg of this EntityDiscovered.\nThe error message of the discovery.') + entity_type: Literal['STORAGE_SERVER_DISCOVER_SUMMARY', 'STORAGE_GRID_DISCOVER_SUMMARY', 'DATABASE_SYSTEM_DISCOVER_SUMMARY', 'INFRASTRUCTURE_DISCOVER_SUMMARY', 'INFRASTRUCTURE_DISCOVER', 'MANAGED_STORAGE_SERVER_DISCOVER_SUMMARY', 'MANAGED_STORAGE_GRID_DISCOVER_SUMMARY', 'VM_CLUSTER_DISCOVER_SUMMARY', 'MANAGED_INFRASTRUCTURE_DISCOVER_SUMMARY', 'CLOUD_INFRASTRUCTURE_DISCOVER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entityType', description='**[Required]** Gets the entity_type of this EntityDiscovered.\nThe type of discovered entities.\n\nAllowed values for this property are: "STORAGE_SERVER_DISCOVER_SUMMARY", "STORAGE_GRID_DISCOVER_SUMMARY", "DATABASE_SYSTEM_DISCOVER_SUMMARY", "INFRASTRUCTURE_DISCOVER_SUMMARY", "INFRASTRUCTURE_DISCOVER", "MANAGED_STORAGE_SERVER_DISCOVER_SUMMARY", "MANAGED_STORAGE_GRID_DISCOVER_SUMMARY", "VM_CLUSTER_DISCOVER_SUMMARY", "MANAGED_INFRASTRUCTURE_DISCOVER_SUMMARY", "CLOUD_INFRASTRUCTURE_DISCOVER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + discovery_key: str = Field(..., alias='discoveryKey', description='**[Required]** Gets the discovery_key of this CloudExadataInfrastructureDiscovery.\nThe unique key of the discovery request.') + license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='licenseModel', description='Gets the license_model of this CloudExadataInfrastructureDiscovery.\nThe Oracle license model that applies to the database management resources.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this CloudExadataInfrastructureDiscovery. The OCID of the compartment.') + rack_size: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='rackSize', description='Gets the rack_size of this CloudExadataInfrastructureDiscovery.\nThe size of the Exadata infrastructure.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + grid_home_path: str | None = Field(None, alias='gridHomePath', description='Gets the grid_home_path of this CloudExadataInfrastructureDiscovery.\nThe Oracle home path of the Exadata infrastructure.') + vm_clusters: list[VMClusterDiscoverySummary] | None = Field(None, alias='vmClusters', description='Gets the vm_clusters of this CloudExadataInfrastructureDiscovery.\nThe list of VM Clusters in the Exadata infrastructure.') + storage_grid: StorageGridDiscoverySummary | None = Field(None, alias='storageGrid', description='Gets the storage_grid of this CloudExadataInfrastructureDiscovery.') + storage_servers: list[StorageServerDiscoverySummary] | None = Field(None, alias='storageServers', description='Gets the storage_servers of this CloudExadataInfrastructureDiscovery.\nThe list of storage servers in the Exadata infrastructure.') + + +class CloudExadataInfrastructureSummary(DbmBaseModel): + """The Exadata infrastructure.""" + + id: str = Field(..., description='**[Required]** Gets the id of this DbmResource. The OCID of the Exadata resource.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DbmResource.\nThe name of the Exadata resource. English letters, numbers, "-", "_" and "." only.') + version: str | None = Field(None, description='Gets the version of this DbmResource.\nThe version of the Exadata resource.') + internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this DbmResource.\nThe internal ID of the Exadata resource.') + status: str | None = Field(None, description='Gets the status of this DbmResource.\nThe status of the Exadata resource.') + lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DbmResource.\nThe current lifecycle state of the database resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DbmResource.\nThe timestamp of the creation of the Exadata resource.') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DbmResource.\nThe timestamp of the last update of the Exadata resource.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DbmResource.\nThe details of the lifecycle state of the Exadata resource.') + additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this DbmResource.\nThe additional details of the resource defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') + resource_type: Literal['INFRASTRUCTURE_SUMMARY', 'INFRASTRUCTURE', 'STORAGE_SERVER_SUMMARY', 'STORAGE_SERVER', 'STORAGE_GRID_SUMMARY', 'STORAGE_GRID', 'STORAGE_CONNECTOR_SUMMARY', 'STORAGE_CONNECTOR', 'DATABASE_SYSTEM_SUMMARY', 'DATABASE_SUMMARY', 'VM_CLUSTER_SUMMARY', 'CLOUD_INFRASTRUCTURE_SUMMARY', 'CLOUD_INFRASTRUCTURE', 'CLOUD_STORAGE_SERVER_SUMMARY', 'CLOUD_STORAGE_SERVER', 'CLOUD_STORAGE_GRID_SUMMARY', 'CLOUD_STORAGE_GRID', 'CLOUD_STORAGE_CONNECTOR_SUMMARY', 'CLOUD_STORAGE_CONNECTOR', 'MANAGED_DATABASE_SUMMARY', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceType', description='**[Required]** Gets the resource_type of this DbmResource.\nThe type of Exadata resource.\n\nAllowed values for this property are: "INFRASTRUCTURE_SUMMARY", "INFRASTRUCTURE", "STORAGE_SERVER_SUMMARY", "STORAGE_SERVER", "STORAGE_GRID_SUMMARY", "STORAGE_GRID", "STORAGE_CONNECTOR_SUMMARY", "STORAGE_CONNECTOR", "DATABASE_SYSTEM_SUMMARY", "DATABASE_SUMMARY", "VM_CLUSTER_SUMMARY", "CLOUD_INFRASTRUCTURE_SUMMARY", "CLOUD_INFRASTRUCTURE", "CLOUD_STORAGE_SERVER_SUMMARY", "CLOUD_STORAGE_SERVER", "CLOUD_STORAGE_GRID_SUMMARY", "CLOUD_STORAGE_GRID", "CLOUD_STORAGE_CONNECTOR_SUMMARY", "CLOUD_STORAGE_CONNECTOR", "MANAGED_DATABASE_SUMMARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + rack_size: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='rackSize', description='Gets the rack_size of this CloudExadataInfrastructureSummary.\nThe rack size of the Exadata infrastructure.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + infrastructure_type: Literal['EXADATA', 'EXADATA_CC', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='infrastructureType', description='Gets the infrastructure_type of this CloudExadataInfrastructureSummary.\nThe type of the Exadata infrastructure.\n\nAllowed values for this property are: "EXADATA", "EXADATA_CC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudExadataInfrastructureSummary. The OCID of the compartment.') + license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='licenseModel', description='Gets the license_model of this CloudExadataInfrastructureSummary.\nThe Oracle license model that applies to the database management resources.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + grid_home_path: str | None = Field(None, alias='gridHomePath', description='Gets the grid_home_path of this CloudExadataInfrastructureSummary.\nThe Oracle grid home path.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudExadataInfrastructureSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudExadataInfrastructureSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudExadataInfrastructureSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class CloudExadataStorageConnector(DbmBaseModel): + """The details of the Exadata storage server connector.""" + + id: str = Field(..., description='**[Required]** Gets the id of this DbmResource. The OCID of the Exadata resource.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DbmResource.\nThe name of the Exadata resource. English letters, numbers, "-", "_" and "." only.') + version: str | None = Field(None, description='Gets the version of this DbmResource.\nThe version of the Exadata resource.') + internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this DbmResource.\nThe internal ID of the Exadata resource.') + status: str | None = Field(None, description='Gets the status of this DbmResource.\nThe status of the Exadata resource.') + lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DbmResource.\nThe current lifecycle state of the database resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DbmResource.\nThe timestamp of the creation of the Exadata resource.') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DbmResource.\nThe timestamp of the last update of the Exadata resource.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DbmResource.\nThe details of the lifecycle state of the Exadata resource.') + additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this DbmResource.\nThe additional details of the resource defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') + resource_type: Literal['INFRASTRUCTURE_SUMMARY', 'INFRASTRUCTURE', 'STORAGE_SERVER_SUMMARY', 'STORAGE_SERVER', 'STORAGE_GRID_SUMMARY', 'STORAGE_GRID', 'STORAGE_CONNECTOR_SUMMARY', 'STORAGE_CONNECTOR', 'DATABASE_SYSTEM_SUMMARY', 'DATABASE_SUMMARY', 'VM_CLUSTER_SUMMARY', 'CLOUD_INFRASTRUCTURE_SUMMARY', 'CLOUD_INFRASTRUCTURE', 'CLOUD_STORAGE_SERVER_SUMMARY', 'CLOUD_STORAGE_SERVER', 'CLOUD_STORAGE_GRID_SUMMARY', 'CLOUD_STORAGE_GRID', 'CLOUD_STORAGE_CONNECTOR_SUMMARY', 'CLOUD_STORAGE_CONNECTOR', 'MANAGED_DATABASE_SUMMARY', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceType', description='**[Required]** Gets the resource_type of this DbmResource.\nThe type of Exadata resource.\n\nAllowed values for this property are: "INFRASTRUCTURE_SUMMARY", "INFRASTRUCTURE", "STORAGE_SERVER_SUMMARY", "STORAGE_SERVER", "STORAGE_GRID_SUMMARY", "STORAGE_GRID", "STORAGE_CONNECTOR_SUMMARY", "STORAGE_CONNECTOR", "DATABASE_SYSTEM_SUMMARY", "DATABASE_SUMMARY", "VM_CLUSTER_SUMMARY", "CLOUD_INFRASTRUCTURE_SUMMARY", "CLOUD_INFRASTRUCTURE", "CLOUD_STORAGE_SERVER_SUMMARY", "CLOUD_STORAGE_SERVER", "CLOUD_STORAGE_GRID_SUMMARY", "CLOUD_STORAGE_GRID", "CLOUD_STORAGE_CONNECTOR_SUMMARY", "CLOUD_STORAGE_CONNECTOR", "MANAGED_DATABASE_SUMMARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + exadata_infrastructure_id: str | None = Field(None, alias='exadataInfrastructureId', description='Gets the exadata_infrastructure_id of this CloudExadataStorageConnector. The OCID of the Exadata infrastructure.') + agent_id: str | None = Field(None, alias='agentId', description='Gets the agent_id of this CloudExadataStorageConnector. The OCID of the agent for the Exadata storage server.') + connection_uri: str | None = Field(None, alias='connectionUri', description='Gets the connection_uri of this CloudExadataStorageConnector. The unique string of the connection. For example, ".') + storage_server_id: str | None = Field(None, alias='storageServerId', description='Gets the storage_server_id of this CloudExadataStorageConnector. The OCID of the Exadata storage server.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudExadataStorageConnector. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudExadataStorageConnector. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudExadataStorageConnector. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class CloudExadataStorageConnectorCollection(DbmBaseModel): + """The Exadata storage server connector list.""" + + items: list[CloudExadataStorageConnectorSummary] = Field(..., description='**[Required]** Gets the items of this CloudExadataStorageConnectorCollection.\nA list of Exadata storage server connectors.') + + +class CloudExadataStorageConnectorStatus(DbmBaseModel): + """The status of an Exadata storage server connector.""" + + id: str | None = Field(None, description='Gets the id of this CloudExadataStorageConnectorStatus. The OCID of the Exadata storage server connector.') + status: Literal['SUCCEEDED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the status of this CloudExadataStorageConnectorStatus.\nThe connection status of the connector.\n\nAllowed values for this property are: "SUCCEEDED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + error_message: str | None = Field(None, alias='errorMessage', description='Gets the error_message of this CloudExadataStorageConnectorStatus.\nThe error message indicating the reason for failure or `null` if the connection was successful.') + + +class CloudExadataStorageConnectorSummary(DbmBaseModel): + """The connector of the Exadata storage server.""" + + id: str = Field(..., description='**[Required]** Gets the id of this DbmResource. The OCID of the Exadata resource.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DbmResource.\nThe name of the Exadata resource. English letters, numbers, "-", "_" and "." only.') + version: str | None = Field(None, description='Gets the version of this DbmResource.\nThe version of the Exadata resource.') + internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this DbmResource.\nThe internal ID of the Exadata resource.') + status: str | None = Field(None, description='Gets the status of this DbmResource.\nThe status of the Exadata resource.') + lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DbmResource.\nThe current lifecycle state of the database resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DbmResource.\nThe timestamp of the creation of the Exadata resource.') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DbmResource.\nThe timestamp of the last update of the Exadata resource.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DbmResource.\nThe details of the lifecycle state of the Exadata resource.') + additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this DbmResource.\nThe additional details of the resource defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') + resource_type: Literal['INFRASTRUCTURE_SUMMARY', 'INFRASTRUCTURE', 'STORAGE_SERVER_SUMMARY', 'STORAGE_SERVER', 'STORAGE_GRID_SUMMARY', 'STORAGE_GRID', 'STORAGE_CONNECTOR_SUMMARY', 'STORAGE_CONNECTOR', 'DATABASE_SYSTEM_SUMMARY', 'DATABASE_SUMMARY', 'VM_CLUSTER_SUMMARY', 'CLOUD_INFRASTRUCTURE_SUMMARY', 'CLOUD_INFRASTRUCTURE', 'CLOUD_STORAGE_SERVER_SUMMARY', 'CLOUD_STORAGE_SERVER', 'CLOUD_STORAGE_GRID_SUMMARY', 'CLOUD_STORAGE_GRID', 'CLOUD_STORAGE_CONNECTOR_SUMMARY', 'CLOUD_STORAGE_CONNECTOR', 'MANAGED_DATABASE_SUMMARY', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceType', description='**[Required]** Gets the resource_type of this DbmResource.\nThe type of Exadata resource.\n\nAllowed values for this property are: "INFRASTRUCTURE_SUMMARY", "INFRASTRUCTURE", "STORAGE_SERVER_SUMMARY", "STORAGE_SERVER", "STORAGE_GRID_SUMMARY", "STORAGE_GRID", "STORAGE_CONNECTOR_SUMMARY", "STORAGE_CONNECTOR", "DATABASE_SYSTEM_SUMMARY", "DATABASE_SUMMARY", "VM_CLUSTER_SUMMARY", "CLOUD_INFRASTRUCTURE_SUMMARY", "CLOUD_INFRASTRUCTURE", "CLOUD_STORAGE_SERVER_SUMMARY", "CLOUD_STORAGE_SERVER", "CLOUD_STORAGE_GRID_SUMMARY", "CLOUD_STORAGE_GRID", "CLOUD_STORAGE_CONNECTOR_SUMMARY", "CLOUD_STORAGE_CONNECTOR", "MANAGED_DATABASE_SUMMARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + connection_uri: str | None = Field(None, alias='connectionUri', description='Gets the connection_uri of this CloudExadataStorageConnectorSummary. The unique string of the connection. For example, ".') + storage_server_id: str | None = Field(None, alias='storageServerId', description='Gets the storage_server_id of this CloudExadataStorageConnectorSummary. The OCID of the Exadata storage server.') + agent_id: str | None = Field(None, alias='agentId', description='Gets the agent_id of this CloudExadataStorageConnectorSummary. The OCID of the agent for the Exadata storage server.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudExadataStorageConnectorSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudExadataStorageConnectorSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudExadataStorageConnectorSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class CloudExadataStorageGrid(DbmBaseModel): + """The details of the Exadata storage server grid.""" + + id: str = Field(..., description='**[Required]** Gets the id of this DbmResource. The OCID of the Exadata resource.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DbmResource.\nThe name of the Exadata resource. English letters, numbers, "-", "_" and "." only.') + version: str | None = Field(None, description='Gets the version of this DbmResource.\nThe version of the Exadata resource.') + internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this DbmResource.\nThe internal ID of the Exadata resource.') + status: str | None = Field(None, description='Gets the status of this DbmResource.\nThe status of the Exadata resource.') + lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DbmResource.\nThe current lifecycle state of the database resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DbmResource.\nThe timestamp of the creation of the Exadata resource.') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DbmResource.\nThe timestamp of the last update of the Exadata resource.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DbmResource.\nThe details of the lifecycle state of the Exadata resource.') + additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this DbmResource.\nThe additional details of the resource defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') + resource_type: Literal['INFRASTRUCTURE_SUMMARY', 'INFRASTRUCTURE', 'STORAGE_SERVER_SUMMARY', 'STORAGE_SERVER', 'STORAGE_GRID_SUMMARY', 'STORAGE_GRID', 'STORAGE_CONNECTOR_SUMMARY', 'STORAGE_CONNECTOR', 'DATABASE_SYSTEM_SUMMARY', 'DATABASE_SUMMARY', 'VM_CLUSTER_SUMMARY', 'CLOUD_INFRASTRUCTURE_SUMMARY', 'CLOUD_INFRASTRUCTURE', 'CLOUD_STORAGE_SERVER_SUMMARY', 'CLOUD_STORAGE_SERVER', 'CLOUD_STORAGE_GRID_SUMMARY', 'CLOUD_STORAGE_GRID', 'CLOUD_STORAGE_CONNECTOR_SUMMARY', 'CLOUD_STORAGE_CONNECTOR', 'MANAGED_DATABASE_SUMMARY', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceType', description='**[Required]** Gets the resource_type of this DbmResource.\nThe type of Exadata resource.\n\nAllowed values for this property are: "INFRASTRUCTURE_SUMMARY", "INFRASTRUCTURE", "STORAGE_SERVER_SUMMARY", "STORAGE_SERVER", "STORAGE_GRID_SUMMARY", "STORAGE_GRID", "STORAGE_CONNECTOR_SUMMARY", "STORAGE_CONNECTOR", "DATABASE_SYSTEM_SUMMARY", "DATABASE_SUMMARY", "VM_CLUSTER_SUMMARY", "CLOUD_INFRASTRUCTURE_SUMMARY", "CLOUD_INFRASTRUCTURE", "CLOUD_STORAGE_SERVER_SUMMARY", "CLOUD_STORAGE_SERVER", "CLOUD_STORAGE_GRID_SUMMARY", "CLOUD_STORAGE_GRID", "CLOUD_STORAGE_CONNECTOR_SUMMARY", "CLOUD_STORAGE_CONNECTOR", "MANAGED_DATABASE_SUMMARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + exadata_infrastructure_id: str | None = Field(None, alias='exadataInfrastructureId', description='Gets the exadata_infrastructure_id of this CloudExadataStorageGrid. The OCID of the Exadata infrastructure.') + server_count: float | None = Field(None, ge=0, alias='serverCount', description='Gets the server_count of this CloudExadataStorageGrid.\nThe number of Exadata storage servers in the Exadata infrastructure.') + storage_servers: list[CloudExadataStorageServerSummary] | None = Field(None, alias='storageServers', description='Gets the storage_servers of this CloudExadataStorageGrid.\nA list of monitored Exadata storage servers.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudExadataStorageGrid. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudExadataStorageGrid. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudExadataStorageGrid. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class CloudExadataStorageGridSummary(DbmBaseModel): + """The Exadata storage server grid of the Exadata infrastructure.""" + + id: str = Field(..., description='**[Required]** Gets the id of this DbmResource. The OCID of the Exadata resource.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DbmResource.\nThe name of the Exadata resource. English letters, numbers, "-", "_" and "." only.') + version: str | None = Field(None, description='Gets the version of this DbmResource.\nThe version of the Exadata resource.') + internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this DbmResource.\nThe internal ID of the Exadata resource.') + status: str | None = Field(None, description='Gets the status of this DbmResource.\nThe status of the Exadata resource.') + lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DbmResource.\nThe current lifecycle state of the database resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DbmResource.\nThe timestamp of the creation of the Exadata resource.') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DbmResource.\nThe timestamp of the last update of the Exadata resource.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DbmResource.\nThe details of the lifecycle state of the Exadata resource.') + additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this DbmResource.\nThe additional details of the resource defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') + resource_type: Literal['INFRASTRUCTURE_SUMMARY', 'INFRASTRUCTURE', 'STORAGE_SERVER_SUMMARY', 'STORAGE_SERVER', 'STORAGE_GRID_SUMMARY', 'STORAGE_GRID', 'STORAGE_CONNECTOR_SUMMARY', 'STORAGE_CONNECTOR', 'DATABASE_SYSTEM_SUMMARY', 'DATABASE_SUMMARY', 'VM_CLUSTER_SUMMARY', 'CLOUD_INFRASTRUCTURE_SUMMARY', 'CLOUD_INFRASTRUCTURE', 'CLOUD_STORAGE_SERVER_SUMMARY', 'CLOUD_STORAGE_SERVER', 'CLOUD_STORAGE_GRID_SUMMARY', 'CLOUD_STORAGE_GRID', 'CLOUD_STORAGE_CONNECTOR_SUMMARY', 'CLOUD_STORAGE_CONNECTOR', 'MANAGED_DATABASE_SUMMARY', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceType', description='**[Required]** Gets the resource_type of this DbmResource.\nThe type of Exadata resource.\n\nAllowed values for this property are: "INFRASTRUCTURE_SUMMARY", "INFRASTRUCTURE", "STORAGE_SERVER_SUMMARY", "STORAGE_SERVER", "STORAGE_GRID_SUMMARY", "STORAGE_GRID", "STORAGE_CONNECTOR_SUMMARY", "STORAGE_CONNECTOR", "DATABASE_SYSTEM_SUMMARY", "DATABASE_SUMMARY", "VM_CLUSTER_SUMMARY", "CLOUD_INFRASTRUCTURE_SUMMARY", "CLOUD_INFRASTRUCTURE", "CLOUD_STORAGE_SERVER_SUMMARY", "CLOUD_STORAGE_SERVER", "CLOUD_STORAGE_GRID_SUMMARY", "CLOUD_STORAGE_GRID", "CLOUD_STORAGE_CONNECTOR_SUMMARY", "CLOUD_STORAGE_CONNECTOR", "MANAGED_DATABASE_SUMMARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + server_count: int | None = Field(None, ge=0, alias='serverCount', description='Gets the server_count of this CloudExadataStorageGridSummary.\nThe number of Exadata storage servers in the Exadata infrastructure.') + + +class CloudExadataStorageServer(DbmBaseModel): + """The details of the Exadata storage server.""" + + id: str = Field(..., description='**[Required]** Gets the id of this DbmResource. The OCID of the Exadata resource.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DbmResource.\nThe name of the Exadata resource. English letters, numbers, "-", "_" and "." only.') + version: str | None = Field(None, description='Gets the version of this DbmResource.\nThe version of the Exadata resource.') + internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this DbmResource.\nThe internal ID of the Exadata resource.') + status: str | None = Field(None, description='Gets the status of this DbmResource.\nThe status of the Exadata resource.') + lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DbmResource.\nThe current lifecycle state of the database resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DbmResource.\nThe timestamp of the creation of the Exadata resource.') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DbmResource.\nThe timestamp of the last update of the Exadata resource.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DbmResource.\nThe details of the lifecycle state of the Exadata resource.') + additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this DbmResource.\nThe additional details of the resource defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') + resource_type: Literal['INFRASTRUCTURE_SUMMARY', 'INFRASTRUCTURE', 'STORAGE_SERVER_SUMMARY', 'STORAGE_SERVER', 'STORAGE_GRID_SUMMARY', 'STORAGE_GRID', 'STORAGE_CONNECTOR_SUMMARY', 'STORAGE_CONNECTOR', 'DATABASE_SYSTEM_SUMMARY', 'DATABASE_SUMMARY', 'VM_CLUSTER_SUMMARY', 'CLOUD_INFRASTRUCTURE_SUMMARY', 'CLOUD_INFRASTRUCTURE', 'CLOUD_STORAGE_SERVER_SUMMARY', 'CLOUD_STORAGE_SERVER', 'CLOUD_STORAGE_GRID_SUMMARY', 'CLOUD_STORAGE_GRID', 'CLOUD_STORAGE_CONNECTOR_SUMMARY', 'CLOUD_STORAGE_CONNECTOR', 'MANAGED_DATABASE_SUMMARY', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceType', description='**[Required]** Gets the resource_type of this DbmResource.\nThe type of Exadata resource.\n\nAllowed values for this property are: "INFRASTRUCTURE_SUMMARY", "INFRASTRUCTURE", "STORAGE_SERVER_SUMMARY", "STORAGE_SERVER", "STORAGE_GRID_SUMMARY", "STORAGE_GRID", "STORAGE_CONNECTOR_SUMMARY", "STORAGE_CONNECTOR", "DATABASE_SYSTEM_SUMMARY", "DATABASE_SUMMARY", "VM_CLUSTER_SUMMARY", "CLOUD_INFRASTRUCTURE_SUMMARY", "CLOUD_INFRASTRUCTURE", "CLOUD_STORAGE_SERVER_SUMMARY", "CLOUD_STORAGE_SERVER", "CLOUD_STORAGE_GRID_SUMMARY", "CLOUD_STORAGE_GRID", "CLOUD_STORAGE_CONNECTOR_SUMMARY", "CLOUD_STORAGE_CONNECTOR", "MANAGED_DATABASE_SUMMARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + exadata_infrastructure_id: str | None = Field(None, alias='exadataInfrastructureId', description='Gets the exadata_infrastructure_id of this CloudExadataStorageServer. The OCID of the Exadata infrastructure.') + storage_grid_id: str | None = Field(None, alias='storageGridId', description='Gets the storage_grid_id of this CloudExadataStorageServer. The OCID of the Exadata storage server grid.') + make_model: str | None = Field(None, alias='makeModel', description='Gets the make_model of this CloudExadataStorageServer.\nThe make model of the Exadata storage server.') + ip_address: str | None = Field(None, alias='ipAddress', description='Gets the ip_address of this CloudExadataStorageServer.\nThe IP address of the Exadata storage server.') + cpu_count: float | None = Field(None, ge=0, alias='cpuCount', description='Gets the cpu_count of this CloudExadataStorageServer.\nThe CPU count of the Exadata storage server.') + memory_gb: float | None = Field(None, alias='memoryGB', description='Gets the memory_gb of this CloudExadataStorageServer.\nThe Exadata storage server memory size in GB.') + max_hard_disk_iops: int | None = Field(None, alias='maxHardDiskIOPS', description='Gets the max_hard_disk_iops of this CloudExadataStorageServer.\nThe maximum hard disk IO operations per second of the Exadata storage server.') + max_hard_disk_throughput: int | None = Field(None, alias='maxHardDiskThroughput', description='Gets the max_hard_disk_throughput of this CloudExadataStorageServer.\nThe maximum hard disk IO throughput in MB/s of the Exadata storage server.') + max_flash_disk_iops: int | None = Field(None, alias='maxFlashDiskIOPS', description='Gets the max_flash_disk_iops of this CloudExadataStorageServer.\nThe maximum flash disk IO operations per second of the Exadata storage server.') + max_flash_disk_throughput: int | None = Field(None, alias='maxFlashDiskThroughput', description='Gets the max_flash_disk_throughput of this CloudExadataStorageServer.\nThe maximum flash disk IO throughput in MB/s of the Exadata storage server.') + connector: CloudExadataStorageConnectorSummary | None = Field(None, description='Gets the connector of this CloudExadataStorageServer.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudExadataStorageServer. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudExadataStorageServer. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudExadataStorageServer. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class CloudExadataStorageServerCollection(DbmBaseModel): + """The Exadata storage server list.""" + + items: list[CloudExadataStorageServerSummary] = Field(..., description='**[Required]** Gets the items of this CloudExadataStorageServerCollection.\nA list of Exadata storage servers.') + + +class CloudExadataStorageServerSummary(DbmBaseModel): + """The Exadata storage server of the Exadata infrastructure.""" + + id: str = Field(..., description='**[Required]** Gets the id of this DbmResource. The OCID of the Exadata resource.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DbmResource.\nThe name of the Exadata resource. English letters, numbers, "-", "_" and "." only.') + version: str | None = Field(None, description='Gets the version of this DbmResource.\nThe version of the Exadata resource.') + internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this DbmResource.\nThe internal ID of the Exadata resource.') + status: str | None = Field(None, description='Gets the status of this DbmResource.\nThe status of the Exadata resource.') + lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DbmResource.\nThe current lifecycle state of the database resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DbmResource.\nThe timestamp of the creation of the Exadata resource.') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DbmResource.\nThe timestamp of the last update of the Exadata resource.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DbmResource.\nThe details of the lifecycle state of the Exadata resource.') + additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this DbmResource.\nThe additional details of the resource defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') + resource_type: Literal['INFRASTRUCTURE_SUMMARY', 'INFRASTRUCTURE', 'STORAGE_SERVER_SUMMARY', 'STORAGE_SERVER', 'STORAGE_GRID_SUMMARY', 'STORAGE_GRID', 'STORAGE_CONNECTOR_SUMMARY', 'STORAGE_CONNECTOR', 'DATABASE_SYSTEM_SUMMARY', 'DATABASE_SUMMARY', 'VM_CLUSTER_SUMMARY', 'CLOUD_INFRASTRUCTURE_SUMMARY', 'CLOUD_INFRASTRUCTURE', 'CLOUD_STORAGE_SERVER_SUMMARY', 'CLOUD_STORAGE_SERVER', 'CLOUD_STORAGE_GRID_SUMMARY', 'CLOUD_STORAGE_GRID', 'CLOUD_STORAGE_CONNECTOR_SUMMARY', 'CLOUD_STORAGE_CONNECTOR', 'MANAGED_DATABASE_SUMMARY', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceType', description='**[Required]** Gets the resource_type of this DbmResource.\nThe type of Exadata resource.\n\nAllowed values for this property are: "INFRASTRUCTURE_SUMMARY", "INFRASTRUCTURE", "STORAGE_SERVER_SUMMARY", "STORAGE_SERVER", "STORAGE_GRID_SUMMARY", "STORAGE_GRID", "STORAGE_CONNECTOR_SUMMARY", "STORAGE_CONNECTOR", "DATABASE_SYSTEM_SUMMARY", "DATABASE_SUMMARY", "VM_CLUSTER_SUMMARY", "CLOUD_INFRASTRUCTURE_SUMMARY", "CLOUD_INFRASTRUCTURE", "CLOUD_STORAGE_SERVER_SUMMARY", "CLOUD_STORAGE_SERVER", "CLOUD_STORAGE_GRID_SUMMARY", "CLOUD_STORAGE_GRID", "CLOUD_STORAGE_CONNECTOR_SUMMARY", "CLOUD_STORAGE_CONNECTOR", "MANAGED_DATABASE_SUMMARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + make_model: str | None = Field(None, alias='makeModel', description='Gets the make_model of this CloudExadataStorageServerSummary.\nThe make model of the Exadata storage server.') + ip_address: str | None = Field(None, alias='ipAddress', description='Gets the ip_address of this CloudExadataStorageServerSummary.\nThe IP address of the Exadata storage server.') + cpu_count: int | None = Field(None, ge=0, alias='cpuCount', description='Gets the cpu_count of this CloudExadataStorageServerSummary.\nThe CPU count of the Exadata storage server.') + memory_gb: float | None = Field(None, alias='memoryGB', description='Gets the memory_gb of this CloudExadataStorageServerSummary.\nThe Exadata storage server memory size in GB.') + max_hard_disk_iops: int | None = Field(None, alias='maxHardDiskIOPS', description='Gets the max_hard_disk_iops of this CloudExadataStorageServerSummary.\nThe maximum hard disk IO operations per second of the Exadata storage server.') + max_hard_disk_throughput: int | None = Field(None, alias='maxHardDiskThroughput', description='Gets the max_hard_disk_throughput of this CloudExadataStorageServerSummary.\nThe maximum hard disk IO throughput in MB/s of the Exadata storage server.') + max_flash_disk_iops: int | None = Field(None, alias='maxFlashDiskIOPS', description='Gets the max_flash_disk_iops of this CloudExadataStorageServerSummary.\nThe maximum flash disk IO operations per second of the Exadata storage server.') + max_flash_disk_throughput: int | None = Field(None, alias='maxFlashDiskThroughput', description='Gets the max_flash_disk_throughput of this CloudExadataStorageServerSummary.\nThe maximum flash disk IO throughput in MB/s of the Exadata storage server.') + connector_id: str | None = Field(None, alias='connectorId', description='Gets the connector_id of this CloudExadataStorageServerSummary. The OCID of the connector.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudExadataStorageServerSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudExadataStorageServerSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudExadataStorageServerSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class CloudIormPlan(DbmBaseModel): + """The IORM plan from an Exadata storage server.""" + + plan_status: Literal['ACTIVE', 'INACTIVE', 'OTHER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='planStatus', description='**[Required]** Gets the plan_status of this CloudIormPlan.\nThe status of the IORM plan.\n\nAllowed values for this property are: "ACTIVE", "INACTIVE", "OTHER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + plan_objective: Literal['AUTO', 'HIGH_THROUGHPUT', 'LOW_LATENCY', 'BALANCED', 'BASIC', 'OTHER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='planObjective', description='**[Required]** Gets the plan_objective of this CloudIormPlan.\nThe objective of the IORM plan.\n\nAllowed values for this property are: "AUTO", "HIGH_THROUGHPUT", "LOW_LATENCY", "BALANCED", "BASIC", "OTHER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + db_plan: DatabasePlan | None = Field(None, alias='dbPlan', description='Gets the db_plan of this CloudIormPlan.') + + +class CloudListener(DbmBaseModel): + """The details of a cloud listener.""" + + id: str = Field(..., description='**[Required]** Gets the id of this CloudListener. The OCID of the cloud listener.') + dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this CloudListener. The OCID in DBaas service.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudListener.\nThe user-friendly name for the cloud listener. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this CloudListener.\nThe name of the cloud listener.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudListener. The OCID of the compartment.') + cloud_db_system_id: str = Field(..., alias='cloudDbSystemId', description='**[Required]** Gets the cloud_db_system_id of this CloudListener. The OCID of the cloud DB system that the listener is a part of.') + cloud_connector_id: str | None = Field(None, alias='cloudConnectorId', description='Gets the cloud_connector_id of this CloudListener. The OCID of the cloud connector.') + cloud_db_node_id: str | None = Field(None, alias='cloudDbNodeId', description='Gets the cloud_db_node_id of this CloudListener. The OCID of the cloud DB node.') + cloud_db_home_id: str | None = Field(None, alias='cloudDbHomeId', description='Gets the cloud_db_home_id of this CloudListener. The OCID of the cloud DB home.') + listener_alias: str | None = Field(None, alias='listenerAlias', description='Gets the listener_alias of this CloudListener.\nThe listener alias.') + listener_type: Literal['ASM', 'LOCAL', 'SCAN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='listenerType', description='Gets the listener_type of this CloudListener.\nThe type of listener.\n\nAllowed values for this property are: "ASM", "LOCAL", "SCAN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this CloudListener.\nThe additional details of the cloud listener defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') + lifecycle_state: Literal['CREATING', 'NOT_CONNECTED', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this CloudListener.\nThe current lifecycle state of the cloud listener.\n\nAllowed values for this property are: "CREATING", "NOT_CONNECTED", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this CloudListener.\nAdditional information about the current lifecycle state.') + listener_ora_location: str | None = Field(None, alias='listenerOraLocation', description='Gets the listener_ora_location of this CloudListener.\nThe location of the listener configuration file listener.ora.') + oracle_home: str | None = Field(None, alias='oracleHome', description='Gets the oracle_home of this CloudListener.\nThe Oracle home location of the listener.') + host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this CloudListener.\nThe name of the host on which the cloud listener is running.') + adr_home_directory: str | None = Field(None, alias='adrHomeDirectory', description='Gets the adr_home_directory of this CloudListener.\nThe directory that stores tracing and logging incidents when Automatic Diagnostic Repository (ADR) is enabled.') + log_directory: str | None = Field(None, alias='logDirectory', description='Gets the log_directory of this CloudListener.\nThe destination directory of the listener log file.') + trace_directory: str | None = Field(None, alias='traceDirectory', description='Gets the trace_directory of this CloudListener.\nThe destination directory of the listener trace file.') + version: str | None = Field(None, description='Gets the version of this CloudListener.\nThe listener version.') + endpoints: list[CloudListenerEndpoint] | None = Field(None, description='Gets the endpoints of this CloudListener.\nThe list of protocol addresses the listener is configured to listen on.') + serviced_databases: list[CloudListenerServicedDatabase] | None = Field(None, alias='servicedDatabases', description='Gets the serviced_databases of this CloudListener.\nThe list of databases that are serviced by the listener.') + serviced_asms: list[CloudServicedAsm] | None = Field(None, alias='servicedAsms', description='Gets the serviced_asms of this CloudListener.\nThe list of ASMs that are serviced by the listener.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this CloudListener.\nThe date and time the cloud listener was created.') + time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this CloudListener.\nThe date and time the cloud listener was last updated.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudListener. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudListener. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudListener. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class CloudListenerCollection(DbmBaseModel): + """A collection of cloud listeners.""" + + items: list[CloudListenerSummary] = Field(..., description='**[Required]** Gets the items of this CloudListenerCollection.\nAn array of cloud listeners.') + + +class CloudListenerEndpoint(DbmBaseModel): + """The protocol address that a cloud listener is configured to listen on.""" + + protocol: Literal['IPC', 'TCP', 'TCPS', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the protocol of this CloudListenerEndpoint.\nThe listener protocol.\n\nAllowed values for this property are: "IPC", "TCP", "TCPS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + services: list[str] | None = Field(None, description='Gets the services of this CloudListenerEndpoint.\nThe list of services registered with the listener.') + + +class CloudListenerIpcEndpoint(DbmBaseModel): + """An `IPC`-based protocol address.""" + + protocol: Literal['IPC', 'TCP', 'TCPS', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the protocol of this CloudListenerEndpoint.\nThe listener protocol.\n\nAllowed values for this property are: "IPC", "TCP", "TCPS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + services: list[str] | None = Field(None, description='Gets the services of this CloudListenerEndpoint.\nThe list of services registered with the listener.') + key: str = Field(..., description='**[Required]** Gets the key of this CloudListenerIpcEndpoint.\nThe unique name of the service.') + + +class CloudListenerServiceCollection(DbmBaseModel): + """A collection of cloud listener services.""" + + items: list[CloudListenerServiceSummary] = Field(..., description='**[Required]** Gets the items of this CloudListenerServiceCollection.\nAn array of cloud listener services.') + + +class CloudListenerServiceSummary(DbmBaseModel): + """The summary of a service registered with a cloud listener.""" + + name: str = Field(..., description='**[Required]** Gets the name of this CloudListenerServiceSummary.\nThe name of the service.') + listener_id: str | None = Field(None, alias='listenerId', description='Gets the listener_id of this CloudListenerServiceSummary. The OCID of the cloud listener.') + managed_database_id: str | None = Field(None, alias='managedDatabaseId', description='Gets the managed_database_id of this CloudListenerServiceSummary. The OCID of the Managed Database.') + + +class CloudListenerServicedDatabase(DbmBaseModel): + """The details of a database serviced by a cloud listener.""" + + id: str = Field(..., description='**[Required]** Gets the id of this CloudListenerServicedDatabase. The OCID of the cloud database.') + dbaas_id: str = Field(..., alias='dbaasId', description='**[Required]** Gets the dbaas_id of this CloudListenerServicedDatabase. The OCID of the existing Dbaas OCI resource matching the discovered DB system component.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudListenerServicedDatabase.\nThe user-friendly name for the database. The name does not have to be unique.') + db_unique_name: str | None = Field(None, alias='dbUniqueName', description='Gets the db_unique_name of this CloudListenerServicedDatabase.\nThe unique name of the cloud database.') + compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this CloudListenerServicedDatabase. The OCID of the compartment in which the cloud database resides.') + database_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseType', description='Gets the database_type of this CloudListenerServicedDatabase.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseSubType', description='Gets the database_sub_type of this CloudListenerServicedDatabase.\nThe subtype of Oracle Database. Indicates whether the database is a Container Database,\nPluggable Database, Non-container Database, Autonomous Database, or Autonomous Container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + is_managed: bool | None = Field(None, alias='isManaged', description='Gets the is_managed of this CloudListenerServicedDatabase.\nIndicates whether the database is a Managed Database or not.') + + +class CloudListenerSummary(DbmBaseModel): + """The summary of a cloud listener.""" + + id: str = Field(..., description='**[Required]** Gets the id of this CloudListenerSummary. The OCID of the cloud listener.') + dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this CloudListenerSummary. The OCID in DBaas service.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudListenerSummary.\nThe user-friendly name for the cloud listener. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this CloudListenerSummary.\nThe name of the cloud listener.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudListenerSummary. The OCID of the compartment.') + cloud_db_system_id: str = Field(..., alias='cloudDbSystemId', description='**[Required]** Gets the cloud_db_system_id of this CloudListenerSummary. The OCID of the cloud DB system that the listener is a member of.') + cloud_connector_id: str | None = Field(None, alias='cloudConnectorId', description='Gets the cloud_connector_id of this CloudListenerSummary. The OCID of the cloud connector.') + cloud_db_node_id: str | None = Field(None, alias='cloudDbNodeId', description='Gets the cloud_db_node_id of this CloudListenerSummary. The OCID of the cloud DB node on which the listener is running.') + listener_type: str | None = Field(None, alias='listenerType', description='Gets the listener_type of this CloudListenerSummary.\nThe type of listener.') + lifecycle_state: str = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this CloudListenerSummary.\nThe current lifecycle state of the cloud listener.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this CloudListenerSummary.\nAdditional information about the current lifecycle state.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this CloudListenerSummary.\nThe date and time the cloud listener was created.') + time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this CloudListenerSummary.\nThe date and time the cloud listener was last updated.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudListenerSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudListenerSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudListenerSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class CloudListenerTcpEndpoint(DbmBaseModel): + """A `TCP`-based protocol address.""" + + protocol: Literal['IPC', 'TCP', 'TCPS', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the protocol of this CloudListenerEndpoint.\nThe listener protocol.\n\nAllowed values for this property are: "IPC", "TCP", "TCPS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + services: list[str] | None = Field(None, description='Gets the services of this CloudListenerEndpoint.\nThe list of services registered with the listener.') + host: str = Field(..., description='**[Required]** Gets the host of this CloudListenerTcpEndpoint.\nThe host name or IP address.') + port: int = Field(..., description='**[Required]** Gets the port of this CloudListenerTcpEndpoint.\nThe port number.') + + +class CloudListenerTcpsEndpoint(DbmBaseModel): + """A `TCPS`-based protocol address.""" + + protocol: Literal['IPC', 'TCP', 'TCPS', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the protocol of this CloudListenerEndpoint.\nThe listener protocol.\n\nAllowed values for this property are: "IPC", "TCP", "TCPS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + services: list[str] | None = Field(None, description='Gets the services of this CloudListenerEndpoint.\nThe list of services registered with the listener.') + host: str = Field(..., description='**[Required]** Gets the host of this CloudListenerTcpsEndpoint.\nThe host name or IP address.') + port: int = Field(..., description='**[Required]** Gets the port of this CloudListenerTcpsEndpoint.\nThe port number.') + + +class CloudOpenAlertHistory(DbmBaseModel): + """The existing open alerts in the Exadata storage server.""" + + alerts: list[OpenAlertSummary] = Field(..., description='**[Required]** Gets the alerts of this CloudOpenAlertHistory.\nA list of open alerts.') + + +class CloudServicedAsm(DbmBaseModel): + """The details of ASM serviced by a cloud listener.""" + + id: str = Field(..., description='**[Required]** Gets the id of this CloudServicedAsm. The OCID of the cloud ASM.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudServicedAsm.\nThe user-friendly name for the cloud ASM. The name does not have to be unique.') + compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this CloudServicedAsm. The OCID of the compartment in which the cloud ASM resides.') + + +class CloudServicedDatabase(DbmBaseModel): + """The details of a database serviced by a cloud DB system component such as a listener or ASM.""" + + id: str = Field(..., description='**[Required]** Gets the id of this CloudServicedDatabase. The OCID of the cloud database.') + dbaas_id: str = Field(..., alias='dbaasId', description='**[Required]** Gets the dbaas_id of this CloudServicedDatabase. The OCID of the existing Dbaas OCI resource matching the discovered DB system component.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudServicedDatabase.\nThe user-friendly name for the database. The name does not have to be unique.') + db_unique_name: str | None = Field(None, alias='dbUniqueName', description='Gets the db_unique_name of this CloudServicedDatabase.\nThe unique name of the cloud database.') + compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this CloudServicedDatabase. The OCID of the compartment in which the cloud database resides.') + database_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseType', description='Gets the database_type of this CloudServicedDatabase.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseSubType', description='Gets the database_sub_type of this CloudServicedDatabase.\nThe subtype of Oracle Database. Indicates whether the database is a Container Database,\nPluggable Database, Non-container Database, Autonomous Database, or Autonomous Container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + is_managed: bool | None = Field(None, alias='isManaged', description='Gets the is_managed of this CloudServicedDatabase.\nIndicates whether the database is a Managed Database or not.') + + +class ClusterCacheMetric(DbmBaseModel): + """The response containing the cluster cache metrics for the +Oracle Real Application Clusters (Oracle RAC) database.""" + + cluster_cache_metrics: list[TimeSeriesMetricDefinition] = Field(..., alias='clusterCacheMetrics', description='**[Required]** Gets the cluster_cache_metrics of this ClusterCacheMetric.\nA list of cluster cache metrics for a specific Managed Database.') + + +class ConfigureAutomaticCaptureFiltersDetails(DbmRequestModel): + """The details required to configure automatic capture filters. +It takes either credentials or databaseCredential. It's recommended to provide databaseCredential""" + + auto_capture_filters: list[AutomaticCaptureFilterDetails] = Field(..., alias='autoCaptureFilters', description='**[Required]** Gets the auto_capture_filters of this ConfigureAutomaticCaptureFiltersDetails.\nThe filters used in automatic initial plan capture.') + credentials: ManagedDatabaseCredential | None = Field(None, description='Gets the credentials of this ConfigureAutomaticCaptureFiltersDetails.') + database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this ConfigureAutomaticCaptureFiltersDetails.') + + +class ConfigureAutomaticSpmEvolveAdvisorTaskDetails(DbmRequestModel): + """The configuration details of the Automatic SPM Evolve Advisor task. +It takes either credentials or databaseCredential. It's recommended to provide databaseCredential""" + + task_parameters: SpmEvolveTaskParameters = Field(..., alias='taskParameters', description='**[Required]** Gets the task_parameters of this ConfigureAutomaticSpmEvolveAdvisorTaskDetails.') + credentials: ManagedDatabaseCredential | None = Field(None, description='Gets the credentials of this ConfigureAutomaticSpmEvolveAdvisorTaskDetails.') + database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this ConfigureAutomaticSpmEvolveAdvisorTaskDetails.') + + +class ConnectorDetails(DbmRequestModel): + """The connector details required to connect to an Oracle cloud database.""" + + connector_type: Literal['PE', 'MACS', 'EXTERNAL', 'DIRECT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this ConnectorDetails.\nThe list of supported connection types:\n - PE: Private endpoint\n - MACS: Management agent\n - EXTERNAL: External database connector\n\n - DIRECT: Direct connection\n\nAllowed values for this property are: "PE", "MACS", "EXTERNAL", "DIRECT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class ConsumerGroupPrivilegeCollection(DbmBaseModel): + """A collection of consumer group privileges granted to the current user.""" + + items: list[ConsumerGroupPrivilegeSummary] = Field(..., description='**[Required]** Gets the items of this ConsumerGroupPrivilegeCollection.\nAn array of consumer group privileges.') + + +class ConsumerGroupPrivilegeSummary(DbmBaseModel): + """A summary of consumer group privileges.""" + + name: str | None = Field(None, description='Gets the name of this ConsumerGroupPrivilegeSummary.\nThe name of the granted consumer group privilege.') + grant_option: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='grantOption', description='Gets the grant_option of this ConsumerGroupPrivilegeSummary.\nIndicates whether the privilege is granted with the GRANT option (YES) or not (NO).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + initial_group: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='initialGroup', description='Gets the initial_group of this ConsumerGroupPrivilegeSummary.\nIndicates whether the consumer group is designated as the default for this user or role (YES) or not (NO).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class CpuUtilizationAggregateMetrics(DbmBaseModel): + """The CPU utilization metrics for Autonomous Databases.""" + + cpu_utilization: MetricDataPoint | None = Field(None, alias='cpuUtilization', description='Gets the cpu_utilization of this CpuUtilizationAggregateMetrics.') + cpu_statistics: MetricStatisticsDefinition | None = Field(None, alias='cpuStatistics', description='Gets the cpu_statistics of this CpuUtilizationAggregateMetrics.') + + +class CreateCloudDbSystemConnectorDetails(DbmRequestModel): + """The details required to create a cloud DB system connector.""" + + connector_type: Literal['MACS'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this CreateCloudDbSystemConnectorDetails.\nThe type of connector.\n\nAllowed values for this property are: "MACS"') + display_name: str | None = Field(None, alias='displayName', description='Gets the display_name of this CreateCloudDbSystemConnectorDetails.\nThe user-friendly name for the cloud connector. The name does not have to be unique.') + cloud_db_system_id: str = Field(..., alias='cloudDbSystemId', description='**[Required]** Gets the cloud_db_system_id of this CreateCloudDbSystemConnectorDetails. The OCID of the cloud DB system.') + + +class CreateCloudDbSystemDetails(DbmRequestModel): + """The details required to create a cloud DB system.""" + + display_name: str | None = Field(None, alias='displayName', description='Gets the display_name of this CreateCloudDbSystemDetails.\nThe user-friendly name for the DB system. The name does not have to be unique.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CreateCloudDbSystemDetails. The OCID of the compartment in which the cloud DB system resides.') + db_system_discovery_id: str = Field(..., alias='dbSystemDiscoveryId', description='**[Required]** Gets the db_system_discovery_id of this CreateCloudDbSystemDetails. The OCID of the DB system discovery.') + database_management_config: CloudDbSystemDatabaseManagementConfigDetails | None = Field(None, alias='databaseManagementConfig', description='Gets the database_management_config of this CreateCloudDbSystemDetails.') + stack_monitoring_config: CloudDbSystemStackMonitoringConfigDetails | None = Field(None, alias='stackMonitoringConfig', description='Gets the stack_monitoring_config of this CreateCloudDbSystemDetails.') + + +class CreateCloudDbSystemDiscoveryDetails(DbmRequestModel): + """The details required to create a cloud DB system discovery resource.""" + + display_name: str | None = Field(None, alias='displayName', description='Gets the display_name of this CreateCloudDbSystemDiscoveryDetails.\nThe user-friendly name for the DB system. The name does not have to be unique.') + agent_id: str = Field(..., alias='agentId', description='**[Required]** Gets the agent_id of this CreateCloudDbSystemDiscoveryDetails. The OCID of the management agent used for the cloud DB system discovery.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CreateCloudDbSystemDiscoveryDetails. The OCID of the compartment in which the cloud DB system resides.') + dbaas_parent_infrastructure_id: str = Field(..., alias='dbaasParentInfrastructureId', description='**[Required]** Gets the dbaas_parent_infrastructure_id of this CreateCloudDbSystemDiscoveryDetails. The OCID of the parent cloud DB Infrastructure. For VM Dbsystems, it will be the DBSystem Id. For ExaCS and ExaCC, it will be the cloudVmClusterId and vmClusterId respectively.') + deployment_type: Literal['VM', 'EXADATA', 'EXADATA_CC', 'EXADATA_XS'] = Field(..., alias='deploymentType', description='**[Required]** Gets the deployment_type of this CreateCloudDbSystemDiscoveryDetails.\nThe deployment type of cloud dbsystem.\n\nAllowed values for this property are: "VM", "EXADATA", "EXADATA_CC", "EXADATA_XS"') + + +class CreateCloudDbSystemMacsConnectorDetails(DbmRequestModel): + """The details for creating a cloud connector that is used to connect to a cloud DB system component +using the Management Agent Cloud Service (MACS).""" + + + + connector_type: Literal['MACS'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this CreateCloudDbSystemConnectorDetails.\nThe type of connector.\n\nAllowed values for this property are: "MACS"') + display_name: str | None = Field(None, alias='displayName', description='Gets the display_name of this CreateCloudDbSystemConnectorDetails.\nThe user-friendly name for the cloud connector. The name does not have to be unique.') + cloud_db_system_id: str = Field(..., alias='cloudDbSystemId', description='**[Required]** Gets the cloud_db_system_id of this CreateCloudDbSystemConnectorDetails. The OCID of the cloud DB system.') + agent_id: str = Field(..., alias='agentId', description='**[Required]** Gets the agent_id of this CreateCloudDbSystemMacsConnectorDetails. The OCID of the management agent used for the cloud DB system connector.') + connection_info: CloudDbSystemConnectionInfo | None = Field(None, alias='connectionInfo', description='Gets the connection_info of this CreateCloudDbSystemMacsConnectorDetails.') + + +class CreateCloudExadataInfrastructureDetails(DbmRequestModel): + """The details required to create the Exadata infrastructure.""" + + discovery_key: str | None = Field(None, alias='discoveryKey', description='Gets the discovery_key of this CreateCloudExadataInfrastructureDetails.\nThe unique key of the discovery request.') + license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE'] | None = Field(None, alias='licenseModel', description='Gets the license_model of this CreateCloudExadataInfrastructureDetails.\nThe Oracle license model that applies to the database management resources.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE"') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CreateCloudExadataInfrastructureDetails. The OCID of the compartment.') + display_name: str | None = Field(None, alias='displayName', description='Gets the display_name of this CreateCloudExadataInfrastructureDetails.\nThe name of the Exadata infrastructure.') + vm_cluster_ids: list[str] = Field(..., alias='vmClusterIds', description='**[Required]** Gets the vm_cluster_ids of this CreateCloudExadataInfrastructureDetails.\nThe list of VM Clusters in the Exadata infrastructure.') + storage_server_names: list[str] | None = Field(None, alias='storageServerNames', description='Gets the storage_server_names of this CreateCloudExadataInfrastructureDetails.\nThe list of all the Exadata storage server names to be included for monitoring purposes. If not specified, all the Exadata storage servers associated with the VM Clusters are included.') + + +class CreateCloudExadataStorageConnectorDetails(DbmRequestModel): + """The details required to create the connector to the Exadata storage server.""" + + storage_server_id: str = Field(..., alias='storageServerId', description='**[Required]** Gets the storage_server_id of this CreateCloudExadataStorageConnectorDetails. The OCID of the Exadata storage server.') + agent_id: str = Field(..., alias='agentId', description='**[Required]** Gets the agent_id of this CreateCloudExadataStorageConnectorDetails. The OCID of the agent for the Exadata storage server.') + display_name: str | None = Field(None, alias='displayName', description='Gets the display_name of this CreateCloudExadataStorageConnectorDetails.\nThe name of the Exadata storage server connector.') + connection_uri: str = Field(..., alias='connectionUri', description='**[Required]** Gets the connection_uri of this CreateCloudExadataStorageConnectorDetails. The unique string of the connection. For example, ".') + credential_info: RestCredential = Field(..., alias='credentialInfo', description='**[Required]** Gets the credential_info of this CreateCloudExadataStorageConnectorDetails.') + + +class CreateDbManagementPrivateEndpointDetails(DbmRequestModel): + """The details used to create a new Database Management private endpoint.""" + + name: str = Field(..., description='**[Required]** Gets the name of this CreateDbManagementPrivateEndpointDetails.\nThe display name of the Database Management private endpoint.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CreateDbManagementPrivateEndpointDetails. The OCID of the compartment.') + is_cluster: bool | None = Field(None, alias='isCluster', description='Gets the is_cluster of this CreateDbManagementPrivateEndpointDetails.\nSpecifies whether the Database Management private endpoint will be used for Oracle Databases in a cluster.') + is_dns_resolution_enabled: bool | None = Field(None, alias='isDnsResolutionEnabled', description='Gets the is_dns_resolution_enabled of this CreateDbManagementPrivateEndpointDetails.\nSpecifies whether the Database Management private endpoint has DNS proxy server enabled to resolve private host name.') + subnet_id: str = Field(..., alias='subnetId', description='**[Required]** Gets the subnet_id of this CreateDbManagementPrivateEndpointDetails. The OCID of the subnet.') + description: str | None = Field(None, description='Gets the description of this CreateDbManagementPrivateEndpointDetails.\nThe description of the private endpoint.') + nsg_ids: list[str] | None = Field(None, alias='nsgIds', description='Gets the nsg_ids of this CreateDbManagementPrivateEndpointDetails.\nThe OCIDs of the Network Security Groups to which the Database Management private endpoint belongs.') + + +class CreateExternalDbSystemConnectorDetails(DbmRequestModel): + """The details required to create an external DB system connector.""" + + connector_type: Literal['MACS'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this CreateExternalDbSystemConnectorDetails.\nThe type of connector.\n\nAllowed values for this property are: "MACS"') + display_name: str | None = Field(None, alias='displayName', description='Gets the display_name of this CreateExternalDbSystemConnectorDetails.\nThe user-friendly name for the external connector. The name does not have to be unique.') + external_db_system_id: str = Field(..., alias='externalDbSystemId', description='**[Required]** Gets the external_db_system_id of this CreateExternalDbSystemConnectorDetails. The OCID of the external DB system.') + + +class CreateExternalDbSystemDetails(DbmRequestModel): + """The details required to create an external DB system.""" + + display_name: str | None = Field(None, alias='displayName', description='Gets the display_name of this CreateExternalDbSystemDetails.\nThe user-friendly name for the DB system. The name does not have to be unique.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CreateExternalDbSystemDetails. The OCID of the compartment in which the external DB system resides.') + db_system_discovery_id: str = Field(..., alias='dbSystemDiscoveryId', description='**[Required]** Gets the db_system_discovery_id of this CreateExternalDbSystemDetails. The OCID of the DB system discovery.') + database_management_config: ExternalDbSystemDatabaseManagementConfigDetails | None = Field(None, alias='databaseManagementConfig', description='Gets the database_management_config of this CreateExternalDbSystemDetails.') + stack_monitoring_config: AssociatedServiceDetails | None = Field(None, alias='stackMonitoringConfig', description='Gets the stack_monitoring_config of this CreateExternalDbSystemDetails.') + + +class CreateExternalDbSystemDiscoveryDetails(DbmRequestModel): + """The details required to create an external DB system discovery resource.""" + + display_name: str | None = Field(None, alias='displayName', description='Gets the display_name of this CreateExternalDbSystemDiscoveryDetails.\nThe user-friendly name for the DB system. The name does not have to be unique.') + agent_id: str = Field(..., alias='agentId', description='**[Required]** Gets the agent_id of this CreateExternalDbSystemDiscoveryDetails. The OCID of the management agent used for the external DB system discovery.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CreateExternalDbSystemDiscoveryDetails. The OCID of the compartment in which the external DB system resides.') + + +class CreateExternalDbSystemMacsConnectorDetails(DbmRequestModel): + """The details for creating an external connector that is used to connect to an external DB system component +using the Management Agent Cloud Service (MACS).""" + + + + connector_type: Literal['MACS'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this CreateExternalDbSystemConnectorDetails.\nThe type of connector.\n\nAllowed values for this property are: "MACS"') + display_name: str | None = Field(None, alias='displayName', description='Gets the display_name of this CreateExternalDbSystemConnectorDetails.\nThe user-friendly name for the external connector. The name does not have to be unique.') + external_db_system_id: str = Field(..., alias='externalDbSystemId', description='**[Required]** Gets the external_db_system_id of this CreateExternalDbSystemConnectorDetails. The OCID of the external DB system.') + agent_id: str = Field(..., alias='agentId', description='**[Required]** Gets the agent_id of this CreateExternalDbSystemMacsConnectorDetails. The OCID of the management agent used for the external DB system connector.') + connection_info: ExternalDbSystemConnectionInfo | None = Field(None, alias='connectionInfo', description='Gets the connection_info of this CreateExternalDbSystemMacsConnectorDetails.') + + +class CreateExternalExadataInfrastructureDetails(DbmRequestModel): + """The details required to create the external Exadata infrastructure.""" + + discovery_key: str | None = Field(None, alias='discoveryKey', description='Gets the discovery_key of this CreateExternalExadataInfrastructureDetails.\nThe unique key of the discovery request.') + license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE'] | None = Field(None, alias='licenseModel', description='Gets the license_model of this CreateExternalExadataInfrastructureDetails.\nThe Oracle license model that applies to the database management resources.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE"') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CreateExternalExadataInfrastructureDetails. The OCID of the compartment.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CreateExternalExadataInfrastructureDetails.\nThe name of the Exadata infrastructure.') + db_system_ids: list[str] = Field(..., alias='dbSystemIds', description='**[Required]** Gets the db_system_ids of this CreateExternalExadataInfrastructureDetails.\nThe list of DB systems in the Exadata infrastructure.') + storage_server_names: list[str] | None = Field(None, alias='storageServerNames', description='Gets the storage_server_names of this CreateExternalExadataInfrastructureDetails.\nThe list of all the Exadata storage server names to be included for monitoring purposes. If not specified, all the Exadata storage servers associated with the DB systems are included.') + + +class CreateExternalExadataStorageConnectorDetails(DbmRequestModel): + """The details required to create the connector to the Exadata storage server.""" + + storage_server_id: str = Field(..., alias='storageServerId', description='**[Required]** Gets the storage_server_id of this CreateExternalExadataStorageConnectorDetails. The OCID of the Exadata storage server.') + agent_id: str = Field(..., alias='agentId', description='**[Required]** Gets the agent_id of this CreateExternalExadataStorageConnectorDetails. The OCID of the agent for the Exadata storage server.') + connector_name: str = Field(..., alias='connectorName', description='**[Required]** Gets the connector_name of this CreateExternalExadataStorageConnectorDetails.\nThe name of the Exadata storage server connector.') + connection_uri: str = Field(..., alias='connectionUri', description='**[Required]** Gets the connection_uri of this CreateExternalExadataStorageConnectorDetails. The unique string of the connection. For example, ".') + credential_info: RestCredential = Field(..., alias='credentialInfo', description='**[Required]** Gets the credential_info of this CreateExternalExadataStorageConnectorDetails.') + + +class CreateExternalMySqlDatabaseConnectorDetails(DbmRequestModel): + """Details for creating an external database connector.""" + + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CreateExternalMySqlDatabaseConnectorDetails.\nOCID of compartment for the External MySQL Database.') + connector_details: CreateMySqlDatabaseConnectorDetails = Field(..., alias='connectorDetails', description='**[Required]** Gets the connector_details of this CreateExternalMySqlDatabaseConnectorDetails.') + + +class CreateExternalMySqlDatabaseDetails(DbmRequestModel): + """Details for creating an external database.""" + + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CreateExternalMySqlDatabaseDetails.\nOCID of compartment for the External MySQL Database.') + db_name: str = Field(..., alias='dbName', description='**[Required]** Gets the db_name of this CreateExternalMySqlDatabaseDetails.\nName of the External MySQL Database.') + + +class CreateJobDetails(DbmRequestModel): + """The details required to create a job.""" + + name: str = Field(..., description='**[Required]** Gets the name of this CreateJobDetails.\nThe name of the job. Valid characters are uppercase or lowercase letters,\nnumbers, and "_". The name of the job cannot be modified. It must be unique\nin the compartment and must begin with an alphabetic character.') + description: str | None = Field(None, description='Gets the description of this CreateJobDetails.\nThe description of the job.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CreateJobDetails. The OCID of the compartment in which the job resides.') + managed_database_group_id: str | None = Field(None, alias='managedDatabaseGroupId', description='Gets the managed_database_group_id of this CreateJobDetails. The OCID of the Managed Database Group where the job has to be executed.') + managed_database_id: str | None = Field(None, alias='managedDatabaseId', description='Gets the managed_database_id of this CreateJobDetails. The OCID of the Managed Database where the job has to be executed.') + database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB'] | None = Field(None, alias='databaseSubType', description='Gets the database_sub_type of this CreateJobDetails.\nThe subtype of the Oracle Database where the job has to be executed. Only applicable when managedDatabaseGroupId is provided.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB"') + schedule_type: str = Field(..., alias='scheduleType', description='**[Required]** Gets the schedule_type of this CreateJobDetails.\nThe schedule type of the job.') + job_type: Literal['SQL'] = Field(..., alias='jobType', description='**[Required]** Gets the job_type of this CreateJobDetails.\nThe type of job.\n\nAllowed values for this property are: "SQL"') + timeout: str | None = Field(None, description='Gets the timeout of this CreateJobDetails.\nThe job timeout duration, which is expressed like "1h 10m 15s".') + result_location: JobExecutionResultLocation | None = Field(None, alias='resultLocation', description='Gets the result_location of this CreateJobDetails.') + schedule_details: JobScheduleDetails | None = Field(None, alias='scheduleDetails', description='Gets the schedule_details of this CreateJobDetails.') + + +class CreateManagedDatabaseGroupDetails(DbmRequestModel): + """The details required to create a Managed Database Group.""" + + name: str = Field(..., description='**[Required]** Gets the name of this CreateManagedDatabaseGroupDetails.\nThe name of the Managed Database Group. Valid characters are uppercase or\nlowercase letters, numbers, and "_". The name of the Managed Database Group\ncannot be modified. It must be unique in the compartment and must begin with\nan alphabetic character.') + description: str | None = Field(None, description='Gets the description of this CreateManagedDatabaseGroupDetails.\nThe information specified by the user about the Managed Database Group.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CreateManagedDatabaseGroupDetails. The OCID of the compartment in which the Managed Database Group resides.') + + +class CreateMySqlDatabaseConnectorDetails(DbmRequestModel): + """Create Details of external database connector.""" + + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CreateMySqlDatabaseConnectorDetails.\nExternal MySQL Database Connector Name.') + macs_agent_id: str = Field(..., alias='macsAgentId', description='**[Required]** Gets the macs_agent_id of this CreateMySqlDatabaseConnectorDetails.\nAgent Id of the MACS agent.') + host_name: str = Field(..., alias='hostName', description='**[Required]** Gets the host_name of this CreateMySqlDatabaseConnectorDetails.\nHost name for Connector.') + port: int = Field(..., description='**[Required]** Gets the port of this CreateMySqlDatabaseConnectorDetails.\nPort number to connect to External MySQL Database.') + network_protocol: Literal['TCP', 'TCPS', 'SOCKETS'] = Field(..., alias='networkProtocol', description='**[Required]** Gets the network_protocol of this CreateMySqlDatabaseConnectorDetails.\nProtocol to be used to connect to External MySQL Database; TCP, TCP with SSL or Socket.\n\nAllowed values for this property are: "TCP", "TCPS", "SOCKETS"') + external_database_id: str = Field(..., alias='externalDatabaseId', description='**[Required]** Gets the external_database_id of this CreateMySqlDatabaseConnectorDetails.\nOCID of MySQL Database resource.') + credential_type: Literal['MYSQL_EXTERNAL_NON_SSL_CREDENTIALS', 'MYSQL_EXTERNAL_SSL_CREDENTIALS', 'MYSQL_EXTERNAL_SOCKET_CREDENTIALS'] = Field(..., alias='credentialType', description='**[Required]** Gets the credential_type of this CreateMySqlDatabaseConnectorDetails.\nType of the credential.\n\nAllowed values for this property are: "MYSQL_EXTERNAL_NON_SSL_CREDENTIALS", "MYSQL_EXTERNAL_SSL_CREDENTIALS", "MYSQL_EXTERNAL_SOCKET_CREDENTIALS"') + ssl_secret_id: str = Field(..., alias='sslSecretId', description='**[Required]** Gets the ssl_secret_id of this CreateMySqlDatabaseConnectorDetails.\nIf using existing SSL secret to connect, OCID for the secret resource.') + + +class CreateNamedCredentialDetails(DbmRequestModel): + """The details required to create a named credential.""" + + name: str = Field(..., description='**[Required]** Gets the name of this CreateNamedCredentialDetails.\nThe name of the named credential. Valid characters are uppercase or\nlowercase letters, numbers, and "_". The name of the named credential\ncannot be modified. It must be unique in the compartment and must begin with\nan alphabetic character.') + description: str | None = Field(None, description='Gets the description of this CreateNamedCredentialDetails.\nThe information specified by the user about the named credential.') + scope: Literal['RESOURCE', 'GLOBAL'] = Field(..., description='**[Required]** Gets the scope of this CreateNamedCredentialDetails.\nThe scope of the named credential.\n\nAllowed values for this property are: "RESOURCE", "GLOBAL"') + type: Literal['ORACLE_DB'] = Field(..., description='**[Required]** Gets the type of this CreateNamedCredentialDetails.\nThe type of resource associated with the named credential.\n\nAllowed values for this property are: "ORACLE_DB"') + content: NamedCredentialContent = Field(..., description='**[Required]** Gets the content of this CreateNamedCredentialDetails.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CreateNamedCredentialDetails. The OCID of the compartment in which the named credential resides.') + associated_resource: str | None = Field(None, alias='associatedResource', description='Gets the associated_resource of this CreateNamedCredentialDetails. The OCID of the resource that is associated to the named credential.') + + +class CreateSqlJobDetails(DbmRequestModel): + """The details specific to the SQL job request.""" + + name: str = Field(..., description='**[Required]** Gets the name of this CreateJobDetails.\nThe name of the job. Valid characters are uppercase or lowercase letters,\nnumbers, and "_". The name of the job cannot be modified. It must be unique\nin the compartment and must begin with an alphabetic character.') + description: str | None = Field(None, description='Gets the description of this CreateJobDetails.\nThe description of the job.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CreateJobDetails. The OCID of the compartment in which the job resides.') + managed_database_group_id: str | None = Field(None, alias='managedDatabaseGroupId', description='Gets the managed_database_group_id of this CreateJobDetails. The OCID of the Managed Database Group where the job has to be executed.') + managed_database_id: str | None = Field(None, alias='managedDatabaseId', description='Gets the managed_database_id of this CreateJobDetails. The OCID of the Managed Database where the job has to be executed.') + database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB'] | None = Field(None, alias='databaseSubType', description='Gets the database_sub_type of this CreateJobDetails.\nThe subtype of the Oracle Database where the job has to be executed. Only applicable when managedDatabaseGroupId is provided.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB"') + schedule_type: str = Field(..., alias='scheduleType', description='**[Required]** Gets the schedule_type of this CreateJobDetails.\nThe schedule type of the job.') + job_type: Literal['SQL'] = Field(..., alias='jobType', description='**[Required]** Gets the job_type of this CreateJobDetails.\nThe type of job.\n\nAllowed values for this property are: "SQL"') + timeout: str | None = Field(None, description='Gets the timeout of this CreateJobDetails.\nThe job timeout duration, which is expressed like "1h 10m 15s".') + result_location: JobExecutionResultLocation | None = Field(None, alias='resultLocation', description='Gets the result_location of this CreateJobDetails.') + schedule_details: JobScheduleDetails | None = Field(None, alias='scheduleDetails', description='Gets the schedule_details of this CreateJobDetails.') + sql_text: str | None = Field(None, alias='sqlText', description='Gets the sql_text of this CreateSqlJobDetails.\nThe SQL text to be executed as part of the job.') + in_binds: JobInBindsDetails | None = Field(None, alias='inBinds', description='Gets the in_binds of this CreateSqlJobDetails.') + out_binds: JobOutBindsDetails | None = Field(None, alias='outBinds', description='Gets the out_binds of this CreateSqlJobDetails.') + sql_type: str | None = Field(None, alias='sqlType', description='Gets the sql_type of this CreateSqlJobDetails.') + operation_type: str = Field(..., alias='operationType', description='**[Required]** Gets the operation_type of this CreateSqlJobDetails.\nThe SQL operation type.') + user_name: str | None = Field(None, alias='userName', description='Gets the user_name of this CreateSqlJobDetails.\nThe database user name used to execute the SQL job. If the job is being executed on a\nManaged Database Group, then the user name should exist on all the databases in the\ngroup with the same password.') + password: str | None = Field(None, description='Gets the password of this CreateSqlJobDetails.\nThe password for the database user name used to execute the SQL job.') + secret_id: str | None = Field(None, alias='secretId', description='Gets the secret_id of this CreateSqlJobDetails. The OCID of the secret containing the user password.') + named_credential_id: str | None = Field(None, alias='namedCredentialId', description='Gets the named_credential_id of this CreateSqlJobDetails. The OCID of the Named Credentials containing password secret.') + role: str | None = Field(None, description='Gets the role of this CreateSqlJobDetails.\nThe role of the database user. Indicates whether the database user is a normal user or sysdba.') + + +class CreateSqlTuningSetDetails(DbmRequestModel): + """Create an empty Sql tuning sets. +It takes either credentialDetails or databaseCredential. It's recommended to provide databaseCredential""" + + credential_details: SqlTuningSetAdminCredentialDetails | None = Field(None, alias='credentialDetails', description='Gets the credential_details of this CreateSqlTuningSetDetails.') + database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this CreateSqlTuningSetDetails.') + name: str = Field(..., description='**[Required]** Gets the name of this CreateSqlTuningSetDetails.\nA unique Sql tuning set name.') + owner: str | None = Field(None, description='Gets the owner of this CreateSqlTuningSetDetails.\nOwner of the Sql tuning set.') + description: str | None = Field(None, description='Gets the description of this CreateSqlTuningSetDetails.\nThe description of the Sql tuning set.') + show_sql_only: int | None = Field(None, alias='showSqlOnly', description='Gets the show_sql_only of this CreateSqlTuningSetDetails.\nFlag to indicate whether to create the Sql tuning set or just display the plsql used to create Sql tuning set.') + + +class CreateTablespaceDetails(DbmRequestModel): + """The details required to create a tablespace. +It takes either credentialDetails or databaseCredential. It's recommended to provide databaseCredential""" + + credential_details: TablespaceAdminCredentialDetails | None = Field(None, alias='credentialDetails', description='Gets the credential_details of this CreateTablespaceDetails.') + database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this CreateTablespaceDetails.') + name: str = Field(..., description='**[Required]** Gets the name of this CreateTablespaceDetails.\nThe name of the tablespace. It must be unique within a database.') + type: Literal['PERMANENT', 'TEMPORARY'] | None = Field(None, description='Gets the type of this CreateTablespaceDetails.\nThe type of tablespace.\n\nAllowed values for this property are: "PERMANENT", "TEMPORARY"') + is_bigfile: bool | None = Field(None, alias='isBigfile', description='Gets the is_bigfile of this CreateTablespaceDetails.\nSpecifies whether the tablespace is a bigfile or smallfile tablespace.\nA bigfile tablespace contains only one data file or temp file, which can contain up to approximately 4 billion (232) blocks.\nA smallfile tablespace is a traditional Oracle tablespace, which can contain 1022 data files or temp files, each of which can contain up to approximately 4 million (222) blocks.') + data_files: list[str] | None = Field(None, alias='dataFiles', description='Gets the data_files of this CreateTablespaceDetails.\nThe list of data files or temp files created for the tablespace.') + file_count: int | None = Field(None, ge=0, alias='fileCount', description='Gets the file_count of this CreateTablespaceDetails.\nThe number of data files or temp files created for the tablespace. This is for Oracle Managed Files only.') + file_size: TablespaceStorageSize | None = Field(None, alias='fileSize', description='Gets the file_size of this CreateTablespaceDetails.\nThe size of each data file or temp file.') + is_reusable: bool | None = Field(None, alias='isReusable', description='Gets the is_reusable of this CreateTablespaceDetails.\nSpecifies whether Oracle can reuse the data file or temp file. Reuse is only allowed when the file name is provided.') + is_auto_extensible: bool | None = Field(None, alias='isAutoExtensible', description='Gets the is_auto_extensible of this CreateTablespaceDetails.\nSpecifies whether the data file or temp file can be extended automatically.') + auto_extend_next_size: TablespaceStorageSize | None = Field(None, alias='autoExtendNextSize', description='Gets the auto_extend_next_size of this CreateTablespaceDetails.\nThe size of the next increment of disk space to be allocated automatically when more extents are required.') + auto_extend_max_size: TablespaceStorageSize | None = Field(None, alias='autoExtendMaxSize', description='Gets the auto_extend_max_size of this CreateTablespaceDetails.\nThe maximum disk space allowed for automatic extension of the data files or temp files.') + is_max_size_unlimited: bool | None = Field(None, alias='isMaxSizeUnlimited', description='Gets the is_max_size_unlimited of this CreateTablespaceDetails.\nSpecifies whether the disk space of the data file or temp file can be limited.') + block_size_in_kilobytes: int | None = Field(None, alias='blockSizeInKilobytes', description='Gets the block_size_in_kilobytes of this CreateTablespaceDetails.\nBlock size for the tablespace.') + is_encrypted: bool | None = Field(None, alias='isEncrypted', description='Gets the is_encrypted of this CreateTablespaceDetails.\nIndicates whether the tablespace is encrypted.') + encryption_algorithm: str | None = Field(None, alias='encryptionAlgorithm', description='Gets the encryption_algorithm of this CreateTablespaceDetails.\nThe name of the encryption algorithm to be used for tablespace encryption.') + default_compress: Literal['NO_COMPRESS', 'BASIC_COMPRESS'] | None = Field(None, alias='defaultCompress', description='Gets the default_compress of this CreateTablespaceDetails.\nThe default compression of data for all tables created in the tablespace.\n\nAllowed values for this property are: "NO_COMPRESS", "BASIC_COMPRESS"') + status: Literal['READ_ONLY', 'READ_WRITE'] | None = Field(None, description='Gets the status of this CreateTablespaceDetails.\nThe status of the tablespace.\n\nAllowed values for this property are: "READ_ONLY", "READ_WRITE"') + extent_management: Literal['AUTOALLOCATE', 'UNIFORM'] | None = Field(None, alias='extentManagement', description='Gets the extent_management of this CreateTablespaceDetails.\nSpecifies how the extents of the tablespace should be managed.\n\nAllowed values for this property are: "AUTOALLOCATE", "UNIFORM"') + extent_uniform_size: TablespaceStorageSize | None = Field(None, alias='extentUniformSize', description='Gets the extent_uniform_size of this CreateTablespaceDetails.\nThe size of the extent when the tablespace is managed with uniform extents of a specific size.') + segment_management: Literal['AUTO', 'MANUAL'] | None = Field(None, alias='segmentManagement', description='Gets the segment_management of this CreateTablespaceDetails.\nSpecifies whether tablespace segment management should be automatic or manual.\n\nAllowed values for this property are: "AUTO", "MANUAL"') + is_default: bool | None = Field(None, alias='isDefault', description='Gets the is_default of this CreateTablespaceDetails.\nSpecifies whether the tablespace is the default tablespace.') + + +class CursorCacheStatementCollection(DbmBaseModel): + """The list of SQL statements in the cursor cache.""" + + items: list[CursorCacheStatementSummary] = Field(..., description='**[Required]** Gets the items of this CursorCacheStatementCollection.\nA list of SQL statements in the cursor cache.') + + +class CursorCacheStatementSummary(DbmBaseModel): + """The summary of a SQL statement in the cursor cache.""" + + sql_id: str = Field(..., alias='sqlId', description='**[Required]** Gets the sql_id of this CursorCacheStatementSummary.\nThe SQL statement identifier. Identifies a SQL statement in the cursor cache.') + schema_name: str = Field(..., alias='schema', description='**[Required]** Gets the schema of this CursorCacheStatementSummary.\nThe name of the parsing schema.') + sql_text: str = Field(..., alias='sqlText', description='**[Required]** Gets the sql_text of this CursorCacheStatementSummary.\nThe first thousand characters of the SQL text.') + + +class DataAccessContainerCollection(DbmBaseModel): + """A collection of specific containers for the current user. This is only applicable if ALL_CONTAINERS !='Y'.""" + + items: list[DataAccessContainerSummary] = Field(..., description='**[Required]** Gets the items of this DataAccessContainerCollection.\nAn array of container resources.') + + +class DataAccessContainerSummary(DbmBaseModel): + """A summary of the ContainerDataAccess user.""" + + name: str | None = Field(None, description='Gets the name of this DataAccessContainerSummary.\nThe name of the container included in the attribute.') + + +class DataPoints(DbmBaseModel): + """The aggregated datapoints of the metric.""" + + timestamp: datetime | None = Field(None, description='Gets the timestamp of this DataPoints.\nThe data point date and time in UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".') + value: float | None = Field(None, description='Gets the value of this DataPoints.\nThe value of the metric.') + + +class DatabaseBackupMetrics(DbmBaseModel): + """The details of the backup metrics for a single database.""" + + retention_period_in_days: str = Field(..., alias='retentionPeriodInDays', description='**[Required]** Gets the retention_period_in_days of this DatabaseBackupMetrics.\nThe retention period of the database.') + is_automatic_backup_enabled: bool = Field(..., alias='isAutomaticBackupEnabled', description='**[Required]** Gets the is_automatic_backup_enabled of this DatabaseBackupMetrics.\nIndicates whether automatic backup is enabled or not. This is only applicable for cloud databases.') + time_series_metrics: list[MetricsAggregationRange] = Field(..., alias='timeSeriesMetrics', description='**[Required]** Gets the time_series_metrics of this DatabaseBackupMetrics.\nThe array of metric values for different timestamps.') + is_dataguard_enabled: bool = Field(..., alias='isDataguardEnabled', description='**[Required]** Gets the is_dataguard_enabled of this DatabaseBackupMetrics.\nIndicates whether Data Guard is enabled for the database.') + last_backup_summary: DatabaseBackupSummary = Field(..., alias='lastBackupSummary', description='**[Required]** Gets the last_backup_summary of this DatabaseBackupMetrics.') + metrics: list[HaMetricDefinition] = Field(..., description='**[Required]** Gets the metrics of this DatabaseBackupMetrics.\nA list of database health metrics such as BackupDuration and BackupSize.') + db_id: str = Field(..., alias='dbId', description='**[Required]** Gets the db_id of this DatabaseBackupMetrics. The OCID of the Managed Database.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this DatabaseBackupMetrics. The OCID of the compartment where the Managed Database resides.') + database_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='databaseType', description='**[Required]** Gets the database_type of this DatabaseBackupMetrics.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='databaseSubType', description='**[Required]** Gets the database_sub_type of this DatabaseBackupMetrics.\nThe subtype of the Oracle Database. Indicates whether the database is a Container Database,\nPluggable Database, Non-container Database, Autonomous Database, or Autonomous Container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + deployment_type: Literal['ONPREMISE', 'BM', 'VM', 'EXADATA', 'EXADATA_CC', 'AUTONOMOUS', 'EXADATA_XS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='deploymentType', description='**[Required]** Gets the deployment_type of this DatabaseBackupMetrics.\nThe infrastructure used to deploy the Oracle Database.\n\nAllowed values for this property are: "ONPREMISE", "BM", "VM", "EXADATA", "EXADATA_CC", "AUTONOMOUS", "EXADATA_XS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this DatabaseBackupMetrics.\nThe Oracle Database version.') + workload_type: Literal['OLTP', 'DW', 'AJD', 'APEX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='workloadType', description='Gets the workload_type of this DatabaseBackupMetrics.\nThe workload type of the Autonomous Database.\n\nAllowed values for this property are: "OLTP", "DW", "AJD", "APEX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_name: str = Field(..., alias='databaseName', description='**[Required]** Gets the database_name of this DatabaseBackupMetrics.\nThe display name of the Managed Database.') + database_id: str | None = Field(None, alias='databaseId', description='Gets the database_id of this DatabaseBackupMetrics.\nThe database ID of the Managed Database. Every database had its own ID and that value is captured here.') + db_unique_name: str | None = Field(None, alias='dbUniqueName', description='Gets the db_unique_name of this DatabaseBackupMetrics.\nThe database unique name of the Managed Database.') + db_role: Literal['SNAPSHOT_STANDBY', 'LOGICAL_STANDBY', 'PHYSICAL_STANDBY', 'PRIMARY', 'FAR_SYNC', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dbRole', description='**[Required]** Gets the db_role of this DatabaseBackupMetrics.\nThe database role of the Managed Database.\n\nAllowed values for this property are: "SNAPSHOT_STANDBY", "LOGICAL_STANDBY", "PHYSICAL_STANDBY", "PRIMARY", "FAR_SYNC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class DatabaseBackupSummary(DbmBaseModel): + """The summary of the High Availability (HA) and backup for a database.""" + + backup_status: str = Field(..., alias='backupStatus', description='**[Required]** Gets the backup_status of this DatabaseBackupSummary.\nThe backup status of the database.') + time_backup_completed: datetime = Field(..., alias='timeBackupCompleted', description='**[Required]** Gets the time_backup_completed of this DatabaseBackupSummary.\nThe database backup completion date and time in UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".') + backup_duration_in_seconds: int = Field(..., alias='backupDurationInSeconds', description='**[Required]** Gets the backup_duration_in_seconds of this DatabaseBackupSummary.\nThe backup duration of the database in seconds.') + backup_type: str = Field(..., alias='backupType', description='**[Required]** Gets the backup_type of this DatabaseBackupSummary.\nThe backup type of the database (FULL/INCREMENTAL).') + backup_destination: Literal['DISK', 'TAPE', 'NFS', 'LOCAL', 'DBRS', 'OBJECT_STORE', 'RECOVERY_APPLIANCE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='backupDestination', description='**[Required]** Gets the backup_destination of this DatabaseBackupSummary.\nThe backup destination of the database.\n\nAllowed values for this property are: "DISK", "TAPE", "NFS", "LOCAL", "DBRS", "OBJECT_STORE", "RECOVERY_APPLIANCE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + backup_size_in_gbs: float = Field(..., alias='backupSizeInGBs', description='**[Required]** Gets the backup_size_in_gbs of this DatabaseBackupSummary.\nThe backup size of the database.') + + +class DatabaseConnectionCredentailsByName(DbmBaseModel): + """The existing named credential used to connect to the database.""" + + credential_type: Literal['NAME_REFERENCE', 'DETAILS', 'SSL_DETAILS', 'NAMED_CREDENTIALS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='credentialType', description='Gets the credential_type of this DatabaseConnectionCredentials.\nThe type of credential used to connect to the database.\n\nAllowed values for this property are: "NAME_REFERENCE", "DETAILS", "SSL_DETAILS", "NAMED_CREDENTIALS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + credential_name: str = Field(..., alias='credentialName', description='**[Required]** Gets the credential_name of this DatabaseConnectionCredentailsByName.\nThe name of the credential information that used to connect to the DB system resource.\nThe name should be in "x.y" format, where the length of "x" has a maximum of 64 characters,\nand length of "y" has a maximum of 199 characters. The name strings can contain letters,\nnumbers and the underscore character only. Other characters are not valid, except for\nthe "." character that separates the "x" and "y" portions of the name.\n*IMPORTANT* - The name must be unique within the OCI region the credential is being created in.\nIf you specify a name that duplicates the name of another credential within the same OCI region,\nyou may overwrite or corrupt the credential that is already using the name.\n\nFor example: inventorydb.abc112233445566778899') + + +class DatabaseConnectionCredentials(DbmBaseModel): + """The credentials used to connect to the database. Currently only the `DETAILS` type +is supported for creating MACS connector credentials.""" + + credential_type: Literal['NAME_REFERENCE', 'DETAILS', 'SSL_DETAILS', 'NAMED_CREDENTIALS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='credentialType', description='Gets the credential_type of this DatabaseConnectionCredentials.\nThe type of credential used to connect to the database.\n\nAllowed values for this property are: "NAME_REFERENCE", "DETAILS", "SSL_DETAILS", "NAMED_CREDENTIALS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class DatabaseConnectionCredentialsByDetails(DbmRequestModel): + """The credentials used to connect to the database.""" + + credential_type: Literal['NAME_REFERENCE', 'DETAILS', 'SSL_DETAILS', 'NAMED_CREDENTIALS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='credentialType', description='Gets the credential_type of this DatabaseConnectionCredentials.\nThe type of credential used to connect to the database.\n\nAllowed values for this property are: "NAME_REFERENCE", "DETAILS", "SSL_DETAILS", "NAMED_CREDENTIALS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + credential_name: str | None = Field(None, alias='credentialName', description='Gets the credential_name of this DatabaseConnectionCredentialsByDetails.\nThe name of the credential information that used to connect to the DB system resource.\nThe name should be in "x.y" format, where the length of "x" has a maximum of 64 characters,\nand length of "y" has a maximum of 199 characters. The name strings can contain letters,\nnumbers and the underscore character only. Other characters are not valid, except for\nthe "." character that separates the "x" and "y" portions of the name.\n*IMPORTANT* - The name must be unique within the OCI region the credential is being created in.\nIf you specify a name that duplicates the name of another credential within the same OCI region,\nyou may overwrite or corrupt the credential that is already using the name.\n\nFor example: inventorydb.abc112233445566778899') + user_name: str = Field(..., alias='userName', description='**[Required]** Gets the user_name of this DatabaseConnectionCredentialsByDetails.\nThe user name used to connect to the database.') + password_secret_id: str = Field(..., alias='passwordSecretId', description='**[Required]** Gets the password_secret_id of this DatabaseConnectionCredentialsByDetails. The OCID of the secret containing the user password.') + role: Literal['SYSDBA', 'NORMAL', 'SYSDG', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the role of this DatabaseConnectionCredentialsByDetails.\nThe role of the user connecting to the database.\n\nAllowed values for this property are: "SYSDBA", "NORMAL", "SYSDG", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class DatabaseConnectionDetails(DbmRequestModel): + """The connection details required to connect to the database.""" + + connection_string: DatabaseConnectionStringDetails = Field(..., alias='connectionString', description='**[Required]** Gets the connection_string of this DatabaseConnectionDetails.') + connection_credentials: DatabaseConnectionCredentials = Field(..., alias='connectionCredentials', description='**[Required]** Gets the connection_credentials of this DatabaseConnectionDetails.') + + +class DatabaseConnectionString(DbmBaseModel): + """The Oracle Database connection string.""" + + host_name: str = Field(..., alias='hostName', description='**[Required]** Gets the host_name of this DatabaseConnectionString.\nThe host name of the database or the SCAN name in case of a RAC database.') + port: int = Field(..., description='**[Required]** Gets the port of this DatabaseConnectionString.\nThe port used to connect to the database.') + service: str = Field(..., description='**[Required]** Gets the service of this DatabaseConnectionString.\nThe service name of the database.') + protocol: Literal['TCP', 'TCPS', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the protocol of this DatabaseConnectionString.\nThe protocol used to connect to the database.\n\nAllowed values for this property are: "TCP", "TCPS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class DatabaseConnectionStringDetails(DbmRequestModel): + """The details of the Oracle Database connection string.""" + + connection_type: Literal['BASIC', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='connectionType', description='**[Required]** Gets the connection_type of this DatabaseConnectionStringDetails.\nThe list of supported connection types:\n - BASIC: Basic connection details\n\nAllowed values for this property are: "BASIC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class DatabaseCredentialDetails(DbmRequestModel): + """The credential to connect to the database to perform tablespace administration tasks.""" + + credential_type: Literal['SECRET', 'PASSWORD', 'NAMED_CREDENTIAL', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='credentialType', description='**[Required]** Gets the credential_type of this DatabaseCredentialDetails.\nThe type of the credential for tablespace administration tasks.\n\nAllowed values for this property are: "SECRET", "PASSWORD", "NAMED_CREDENTIAL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class DatabaseCredentials(DbmBaseModel): + """The database credentials used to perform management activity. +Provide one of the following attribute set. +(userName, password, role) OR (userName, secretId, role) OR (namedCredentialId)""" + + user_name: str | None = Field(None, alias='userName', description='Gets the user_name of this DatabaseCredentials.\nThe database user name used to perform management activity.') + password: str | None = Field(None, description='Gets the password of this DatabaseCredentials.\nThe password for the database user name.') + secret_id: str | None = Field(None, alias='secretId', description='Gets the secret_id of this DatabaseCredentials. The OCID of the secret containing the user password.') + role: Literal['NORMAL', 'SYSDBA'] | None = Field(None, description='Gets the role of this DatabaseCredentials.\nThe role of the database user. Indicates whether the database user is a normal user or sysdba.\n\nAllowed values for this property are: "NORMAL", "SYSDBA"') + + +class DatabaseDiagnosticsAndManagementFeatureConfiguration(DbmBaseModel): + """The details required to enable the Diagnostics and Management feature.""" + + feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the feature of this DatabaseFeatureConfiguration.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + feature_status: Literal['ENABLED', 'NOT_ENABLED', 'UNSUPPORTED', 'FAILED_ENABLING', 'FAILED_DISABLING', 'FAILED', 'ENABLED_WITH_WARNINGS', 'PENDING_DISABLE', 'ENABLING', 'DISABLING', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='featureStatus', description='**[Required]** Gets the feature_status of this DatabaseFeatureConfiguration.\nThe list of statuses for Database Management features.\n\nAllowed values for this property are: "ENABLED", "NOT_ENABLED", "UNSUPPORTED", "FAILED_ENABLING", "FAILED_DISABLING", "FAILED", "ENABLED_WITH_WARNINGS", "PENDING_DISABLE", "ENABLING", "DISABLING", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + connector_details: ConnectorDetails | None = Field(None, alias='connectorDetails', description='Gets the connector_details of this DatabaseFeatureConfiguration.') + database_connection_details: DatabaseConnectionDetails | None = Field(None, alias='databaseConnectionDetails', description='Gets the database_connection_details of this DatabaseFeatureConfiguration.') + license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='licenseModel', description='Gets the license_model of this DatabaseDiagnosticsAndManagementFeatureConfiguration.\nThe Oracle license model that applies to the external database.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class DatabaseDiagnosticsAndManagementFeatureDetails(DbmRequestModel): + """The details required to enable the Diagnostics and Management feature.""" + + feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH'] = Field(..., description='**[Required]** Gets the feature of this DatabaseFeatureDetails.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH"') + database_connection_details: DatabaseConnectionDetails = Field(..., alias='databaseConnectionDetails', description='**[Required]** Gets the database_connection_details of this DatabaseFeatureDetails.') + connector_details: ConnectorDetails = Field(..., alias='connectorDetails', description='**[Required]** Gets the connector_details of this DatabaseFeatureDetails.') + management_type: Literal['BASIC', 'ADVANCED'] = Field(..., alias='managementType', description='**[Required]** Gets the management_type of this DatabaseDiagnosticsAndManagementFeatureDetails.\nThe management type for the database. Use "BASIC" for basic management. Use "ADVANCED" for full management.\n\nAllowed values for this property are: "BASIC", "ADVANCED"') + is_auto_enable_pluggable_database: bool | None = Field(None, alias='isAutoEnablePluggableDatabase', description='Gets the is_auto_enable_pluggable_database of this DatabaseDiagnosticsAndManagementFeatureDetails.\nIndicates whether Diagnostics & Management should be enabled automatically for all the pluggable databases in the container database.') + can_enable_all_current_pdbs: bool | None = Field(None, alias='canEnableAllCurrentPdbs', description='Gets the can_enable_all_current_pdbs of this DatabaseDiagnosticsAndManagementFeatureDetails.\nIndicates whether Diagnostics & Management should be enabled for all the current pluggable databases in the container database.') + + +class DatabaseFeatureConfiguration(DbmBaseModel): + """The details of an external database feature configuration.""" + + feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the feature of this DatabaseFeatureConfiguration.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + feature_status: Literal['ENABLED', 'NOT_ENABLED', 'UNSUPPORTED', 'FAILED_ENABLING', 'FAILED_DISABLING', 'FAILED', 'ENABLED_WITH_WARNINGS', 'PENDING_DISABLE', 'ENABLING', 'DISABLING', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='featureStatus', description='**[Required]** Gets the feature_status of this DatabaseFeatureConfiguration.\nThe list of statuses for Database Management features.\n\nAllowed values for this property are: "ENABLED", "NOT_ENABLED", "UNSUPPORTED", "FAILED_ENABLING", "FAILED_DISABLING", "FAILED", "ENABLED_WITH_WARNINGS", "PENDING_DISABLE", "ENABLING", "DISABLING", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + connector_details: ConnectorDetails | None = Field(None, alias='connectorDetails', description='Gets the connector_details of this DatabaseFeatureConfiguration.') + database_connection_details: DatabaseConnectionDetails | None = Field(None, alias='databaseConnectionDetails', description='Gets the database_connection_details of this DatabaseFeatureConfiguration.') + + +class DatabaseFeatureDetails(DbmRequestModel): + """The details required to enable the specified Database Management feature.""" + + feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH'] = Field(..., description='**[Required]** Gets the feature of this DatabaseFeatureDetails.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH"') + database_connection_details: DatabaseConnectionDetails = Field(..., alias='databaseConnectionDetails', description='**[Required]** Gets the database_connection_details of this DatabaseFeatureDetails.') + connector_details: ConnectorDetails = Field(..., alias='connectorDetails', description='**[Required]** Gets the connector_details of this DatabaseFeatureDetails.') + + +class DatabaseFleetBackupMetrics(DbmBaseModel): + """The details of the backup metrics for the fleet of databases.""" + + backup_metrics: list[DatabaseBackupMetrics] = Field(..., alias='backupMetrics', description='**[Required]** Gets the backup_metrics of this DatabaseFleetBackupMetrics.\nA list of backup metrics for the databases present in the fleet.') + + +class DatabaseFleetDataguardMetrics(DbmBaseModel): + """The list of Oracle Data Guard-enabled databases in the fleet.""" + + dataguard_metrics: list[DataguardMetrics] = Field(..., alias='dataguardMetrics', description='**[Required]** Gets the dataguard_metrics of this DatabaseFleetDataguardMetrics.\nThe Data Guard usage metrics for the Oracle Data Guard-enabled databases.') + + +class DatabaseFleetHaOverviewMetrics(DbmBaseModel): + """The details of the HA metrics for the fleet of databases.""" + + ha_metrics: list[DatabaseHaMetrics] = Field(..., alias='haMetrics', description='**[Required]** Gets the ha_metrics of this DatabaseFleetHaOverviewMetrics.\nA list of the databases present in the fleet and their HA usage metrics.') + + +class DatabaseFleetHealthMetrics(DbmBaseModel): + """The details of the fleet health metrics.""" + + compare_baseline_time: str = Field(..., alias='compareBaselineTime', description='**[Required]** Gets the compare_baseline_time of this DatabaseFleetHealthMetrics.\nThe baseline date and time in UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".\nThis is the date and time against which percentage change is calculated.') + compare_target_time: str = Field(..., alias='compareTargetTime', description='**[Required]** Gets the compare_target_time of this DatabaseFleetHealthMetrics.\nThe target date and time in UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".\nAll the metrics are returned for the target date and time and the percentage change\nis calculated against the baseline date and time.') + compare_type: Literal['HOUR', 'DAY', 'WEEK', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='compareType', description='Gets the compare_type of this DatabaseFleetHealthMetrics.\nThe time window used for metrics comparison.\n\nAllowed values for this property are: "HOUR", "DAY", "WEEK", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + fleet_summary: FleetSummary | None = Field(None, alias='fleetSummary', description='Gets the fleet_summary of this DatabaseFleetHealthMetrics.') + fleet_databases: list[DatabaseUsageMetrics] = Field(..., alias='fleetDatabases', description='**[Required]** Gets the fleet_databases of this DatabaseFleetHealthMetrics.\nA list of the databases present in the fleet and their usage metrics.') + + +class DatabaseHaBackupDetails(DbmRequestModel): + """The database HA and backup details.""" + + flash_back_on: str | None = Field(None, alias='flashBackOn', description='Gets the flash_back_on of this DatabaseHaBackupDetails.\nIndicates whether flashback is enabled for the database.') + flash_back_time: datetime | None = Field(None, alias='flashBackTime', description='Gets the flash_back_time of this DatabaseHaBackupDetails.\nThe oldest flashback date and time in UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".') + recovery_window_goal_in_days: int | None = Field(None, alias='recoveryWindowGoalInDays', description='Gets the recovery_window_goal_in_days of this DatabaseHaBackupDetails.\nThe configured number of days intended to recover a protected database from a backup.') + last_full_backup_summary: DatabaseBackupSummary | None = Field(None, alias='lastFullBackupSummary', description='Gets the last_full_backup_summary of this DatabaseHaBackupDetails.') + backup_history: list[DatabaseBackupSummary] | None = Field(None, alias='backupHistory', description='Gets the backup_history of this DatabaseHaBackupDetails.\nA list of database backups.') + metrics: list[HaMetricDefinition] | None = Field(None, description='Gets the metrics of this DatabaseHaBackupDetails.\nA list of database backup metrics such as BackupSize and BackupDuration.') + db_id: str = Field(..., alias='dbId', description='**[Required]** Gets the db_id of this DatabaseHaBackupDetails. The OCID of the Managed Database.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this DatabaseHaBackupDetails. The OCID of the compartment where the Managed Database resides.') + database_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='databaseType', description='**[Required]** Gets the database_type of this DatabaseHaBackupDetails.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='databaseSubType', description='**[Required]** Gets the database_sub_type of this DatabaseHaBackupDetails.\nThe subtype of the Oracle Database. Indicates whether the database is a Container Database,\nPluggable Database, Non-container Database, Autonomous Database, or Autonomous Container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + deployment_type: Literal['ONPREMISE', 'BM', 'VM', 'EXADATA', 'EXADATA_CC', 'AUTONOMOUS', 'EXADATA_XS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='deploymentType', description='**[Required]** Gets the deployment_type of this DatabaseHaBackupDetails.\nThe infrastructure used to deploy the Oracle Database.\n\nAllowed values for this property are: "ONPREMISE", "BM", "VM", "EXADATA", "EXADATA_CC", "AUTONOMOUS", "EXADATA_XS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this DatabaseHaBackupDetails.\nThe Oracle Database version.') + workload_type: Literal['OLTP', 'DW', 'AJD', 'APEX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='workloadType', description='Gets the workload_type of this DatabaseHaBackupDetails.\nThe workload type of the Autonomous Database.\n\nAllowed values for this property are: "OLTP", "DW", "AJD", "APEX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_name: str = Field(..., alias='databaseName', description='**[Required]** Gets the database_name of this DatabaseHaBackupDetails.\nThe display name of the Managed Database.') + database_id: str | None = Field(None, alias='databaseId', description='Gets the database_id of this DatabaseHaBackupDetails.\nThe database ID of the Managed Database. Every database had its own ID and that value is captured here.') + db_unique_name: str | None = Field(None, alias='dbUniqueName', description='Gets the db_unique_name of this DatabaseHaBackupDetails.\nThe database unique name of the Managed Database.') + db_role: Literal['SNAPSHOT_STANDBY', 'LOGICAL_STANDBY', 'PHYSICAL_STANDBY', 'PRIMARY', 'FAR_SYNC', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dbRole', description='**[Required]** Gets the db_role of this DatabaseHaBackupDetails.\nThe database role of the Managed Database.\n\nAllowed values for this property are: "SNAPSHOT_STANDBY", "LOGICAL_STANDBY", "PHYSICAL_STANDBY", "PRIMARY", "FAR_SYNC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class DatabaseHaMetrics(DbmBaseModel): + """The details of the HA metrics for a single database.""" + + is_dataguard_enabled: bool = Field(..., alias='isDataguardEnabled', description='**[Required]** Gets the is_dataguard_enabled of this DatabaseHaMetrics.\nIndicates whether Data Guard is enabled for the database.') + last_backup_summary: DatabaseBackupSummary = Field(..., alias='lastBackupSummary', description='**[Required]** Gets the last_backup_summary of this DatabaseHaMetrics.') + metrics: list[HaMetricDefinition] = Field(..., description='**[Required]** Gets the metrics of this DatabaseHaMetrics.\nA list of database health metrics such as BackupDuration and BackupSize.') + db_id: str = Field(..., alias='dbId', description='**[Required]** Gets the db_id of this DatabaseHaMetrics. The OCID of the Managed Database.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this DatabaseHaMetrics. The OCID of the compartment where the Managed Database resides.') + database_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='databaseType', description='**[Required]** Gets the database_type of this DatabaseHaMetrics.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='databaseSubType', description='**[Required]** Gets the database_sub_type of this DatabaseHaMetrics.\nThe subtype of the Oracle Database. Indicates whether the database is a Container Database,\nPluggable Database, Non-container Database, Autonomous Database, or Autonomous Container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + deployment_type: Literal['ONPREMISE', 'BM', 'VM', 'EXADATA', 'EXADATA_CC', 'AUTONOMOUS', 'EXADATA_XS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='deploymentType', description='**[Required]** Gets the deployment_type of this DatabaseHaMetrics.\nThe infrastructure used to deploy the Oracle Database.\n\nAllowed values for this property are: "ONPREMISE", "BM", "VM", "EXADATA", "EXADATA_CC", "AUTONOMOUS", "EXADATA_XS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this DatabaseHaMetrics.\nThe Oracle Database version.') + workload_type: Literal['OLTP', 'DW', 'AJD', 'APEX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='workloadType', description='Gets the workload_type of this DatabaseHaMetrics.\nThe workload type of the Autonomous Database.\n\nAllowed values for this property are: "OLTP", "DW", "AJD", "APEX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_name: str = Field(..., alias='databaseName', description='**[Required]** Gets the database_name of this DatabaseHaMetrics.\nThe display name of the Managed Database.') + database_id: str | None = Field(None, alias='databaseId', description='Gets the database_id of this DatabaseHaMetrics.\nThe database ID of the Managed Database. Every database had its own ID and that value is captured here.') + db_unique_name: str | None = Field(None, alias='dbUniqueName', description='Gets the db_unique_name of this DatabaseHaMetrics.\nThe database unique name of the Managed Database.') + db_role: Literal['SNAPSHOT_STANDBY', 'LOGICAL_STANDBY', 'PHYSICAL_STANDBY', 'PRIMARY', 'FAR_SYNC', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dbRole', description='**[Required]** Gets the db_role of this DatabaseHaMetrics.\nThe database role of the Managed Database.\n\nAllowed values for this property are: "SNAPSHOT_STANDBY", "LOGICAL_STANDBY", "PHYSICAL_STANDBY", "PRIMARY", "FAR_SYNC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class DatabaseHomeMetricDefinition(DbmBaseModel): + """The response containing the CPU, Storage, Wait, DB Time, and Memory metrics for a specific Managed Database.""" + + activity_time_series_metrics: list[ActivityTimeSeriesMetrics] = Field(..., alias='activityTimeSeriesMetrics', description='**[Required]** Gets the activity_time_series_metrics of this DatabaseHomeMetricDefinition.\nA list of the active session metrics for CPU and Wait time for a specific Managed Database.') + db_time_aggregate_metrics: DatabaseTimeAggregateMetrics = Field(..., alias='dbTimeAggregateMetrics', description='**[Required]** Gets the db_time_aggregate_metrics of this DatabaseHomeMetricDefinition.') + io_aggregate_metrics: DatabaseIOAggregateMetrics = Field(..., alias='ioAggregateMetrics', description='**[Required]** Gets the io_aggregate_metrics of this DatabaseHomeMetricDefinition.') + memory_aggregate_metrics: MemoryAggregateMetrics = Field(..., alias='memoryAggregateMetrics', description='**[Required]** Gets the memory_aggregate_metrics of this DatabaseHomeMetricDefinition.') + db_storage_aggregate_metrics: DatabaseStorageAggregateMetrics = Field(..., alias='dbStorageAggregateMetrics', description='**[Required]** Gets the db_storage_aggregate_metrics of this DatabaseHomeMetricDefinition.') + cpu_utilization_aggregate_metrics: CpuUtilizationAggregateMetrics | None = Field(None, alias='cpuUtilizationAggregateMetrics', description='Gets the cpu_utilization_aggregate_metrics of this DatabaseHomeMetricDefinition.') + statements_aggregate_metrics: StatementsAggregateMetrics | None = Field(None, alias='statementsAggregateMetrics', description='Gets the statements_aggregate_metrics of this DatabaseHomeMetricDefinition.') + failed_connections_aggregate_metrics: FailedConnectionsAggregateMetrics | None = Field(None, alias='failedConnectionsAggregateMetrics', description='Gets the failed_connections_aggregate_metrics of this DatabaseHomeMetricDefinition.') + + +class DatabaseHomeMetrics(DbmBaseModel): + """The response containing the metric collection for a specific Managed Database.""" + + database_home_metrics: DatabaseHomeMetricDefinition = Field(..., alias='databaseHomeMetrics', description='**[Required]** Gets the database_home_metrics of this DatabaseHomeMetrics.') + database_instance_home_metrics: list[DatabaseInstanceHomeMetricsDefinition] | None = Field(None, alias='databaseInstanceHomeMetrics', description='Gets the database_instance_home_metrics of this DatabaseHomeMetrics.\nThe metrics for the RAC database instances.') + + +class DatabaseIOAggregateMetrics(DbmBaseModel): + """The database Input/Output metric details.""" + + iops: list[MetricDataPoint] | None = Field(None, description='Gets the iops of this DatabaseIOAggregateMetrics.\nThe Input/Output Operations Per Second metrics grouped by IOType for a specific Managed Database.') + io_throughput: list[MetricDataPoint] | None = Field(None, alias='ioThroughput', description='Gets the io_throughput of this DatabaseIOAggregateMetrics.\nThe IOThroughput metrics grouped by IOType for a specific Managed Database.') + iops_statistics: list[MetricStatisticsDefinition] | None = Field(None, alias='iopsStatistics', description='Gets the iops_statistics of this DatabaseIOAggregateMetrics.\nThe Input/Output metric statistics such as min, max, mean, lowerQuartile, and upperQuartile.') + io_throughput_statistics: list[MetricStatisticsDefinition] | None = Field(None, alias='ioThroughputStatistics', description='Gets the io_throughput_statistics of this DatabaseIOAggregateMetrics.\nThe IOThroughput metric statistics such as min, max, mean, lowerQuartile, and upperQuartile.') + + +class DatabaseInstanceHomeMetricsDefinition(DbmBaseModel): + """The response containing the CPU, Wait, DB Time, and Memory metrics +for a specific Oracle Real Application Clusters (Oracle RAC) database +instance.""" + + instance_name: str = Field(..., alias='instanceName', description='**[Required]** Gets the instance_name of this DatabaseInstanceHomeMetricsDefinition.\nThe name of the Oracle Real Application Clusters (Oracle RAC)\ndatabase instance to which the corresponding metrics belong.') + instance_number: int = Field(..., alias='instanceNumber', description='**[Required]** Gets the instance_number of this DatabaseInstanceHomeMetricsDefinition.\nThe number of Oracle Real Application Clusters (Oracle RAC)\ndatabase instance to which the corresponding metrics belong.') + activity_time_series_metrics: list[ActivityTimeSeriesMetrics] = Field(..., alias='activityTimeSeriesMetrics', description='**[Required]** Gets the activity_time_series_metrics of this DatabaseInstanceHomeMetricsDefinition.\nA list of the active session metrics for CPU and Wait time for\na specific Oracle Real Application Clusters (Oracle RAC)\ndatabase instance.') + db_time_aggregate_metrics: DatabaseTimeAggregateMetrics = Field(..., alias='dbTimeAggregateMetrics', description='**[Required]** Gets the db_time_aggregate_metrics of this DatabaseInstanceHomeMetricsDefinition.') + io_aggregate_metrics: DatabaseIOAggregateMetrics = Field(..., alias='ioAggregateMetrics', description='**[Required]** Gets the io_aggregate_metrics of this DatabaseInstanceHomeMetricsDefinition.') + memory_aggregate_metrics: MemoryAggregateMetrics = Field(..., alias='memoryAggregateMetrics', description='**[Required]** Gets the memory_aggregate_metrics of this DatabaseInstanceHomeMetricsDefinition.') + cpu_utilization_aggregate_metrics: CpuUtilizationAggregateMetrics | None = Field(None, alias='cpuUtilizationAggregateMetrics', description='Gets the cpu_utilization_aggregate_metrics of this DatabaseInstanceHomeMetricsDefinition.') + + +class DatabaseLifecycleFeatureConfiguration(DbmBaseModel): + """The details required to enable the Database Lifecycle Management feature.""" + + feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the feature of this DatabaseFeatureConfiguration.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + feature_status: Literal['ENABLED', 'NOT_ENABLED', 'UNSUPPORTED', 'FAILED_ENABLING', 'FAILED_DISABLING', 'FAILED', 'ENABLED_WITH_WARNINGS', 'PENDING_DISABLE', 'ENABLING', 'DISABLING', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='featureStatus', description='**[Required]** Gets the feature_status of this DatabaseFeatureConfiguration.\nThe list of statuses for Database Management features.\n\nAllowed values for this property are: "ENABLED", "NOT_ENABLED", "UNSUPPORTED", "FAILED_ENABLING", "FAILED_DISABLING", "FAILED", "ENABLED_WITH_WARNINGS", "PENDING_DISABLE", "ENABLING", "DISABLING", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + connector_details: ConnectorDetails | None = Field(None, alias='connectorDetails', description='Gets the connector_details of this DatabaseFeatureConfiguration.') + database_connection_details: DatabaseConnectionDetails | None = Field(None, alias='databaseConnectionDetails', description='Gets the database_connection_details of this DatabaseFeatureConfiguration.') + license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='licenseModel', description='Gets the license_model of this DatabaseLifecycleFeatureConfiguration.\nThe Oracle license model that applies to the external database.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class DatabaseLifecycleManagementFeatureDetails(DbmRequestModel): + """The details required to enable the Database Lifecycle Management feature.""" + + feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH'] = Field(..., description='**[Required]** Gets the feature of this DatabaseFeatureDetails.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH"') + database_connection_details: DatabaseConnectionDetails = Field(..., alias='databaseConnectionDetails', description='**[Required]** Gets the database_connection_details of this DatabaseFeatureDetails.') + connector_details: ConnectorDetails = Field(..., alias='connectorDetails', description='**[Required]** Gets the connector_details of this DatabaseFeatureDetails.') + + +class DatabaseManagementConfig(DbmBaseModel): + """The configuration of the Database Management service.""" + + database_management_status: Literal['ENABLING', 'ENABLED', 'DISABLING', 'NOT_ENABLED', 'FAILED_ENABLING', 'FAILED_DISABLING', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='databaseManagementStatus', description='**[Required]** Gets the database_management_status of this DatabaseManagementConfig.\nThe status of the Database Management service.\n\nAllowed values for this property are: "ENABLING", "ENABLED", "DISABLING", "NOT_ENABLED", "FAILED_ENABLING", "FAILED_DISABLING", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + connector_id: str | None = Field(None, alias='connectorId', description='Gets the connector_id of this DatabaseManagementConfig. The OCID of the external database connector.') + license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='licenseModel', description='**[Required]** Gets the license_model of this DatabaseManagementConfig.\nThe Oracle license model that applies to the external database.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class DatabaseNamedCredentialConnectionDetails(DbmRequestModel): + """User provides a named credential OCID, which will be used to retrieve the password to connect to the database.""" + + credential_type: Literal['NAME_REFERENCE', 'DETAILS', 'SSL_DETAILS', 'NAMED_CREDENTIALS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='credentialType', description='Gets the credential_type of this DatabaseConnectionCredentials.\nThe type of credential used to connect to the database.\n\nAllowed values for this property are: "NAME_REFERENCE", "DETAILS", "SSL_DETAILS", "NAMED_CREDENTIALS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + named_credential_id: str = Field(..., alias='namedCredentialId', description='**[Required]** Gets the named_credential_id of this DatabaseNamedCredentialConnectionDetails. The OCID of the Named Credential where the database password metadata is stored.') + + +class DatabaseNamedCredentialDetails(DbmRequestModel): + """User provides a named credential OCID, which will be used to retrieve the password to connect to the database.""" + + credential_type: Literal['SECRET', 'PASSWORD', 'NAMED_CREDENTIAL', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='credentialType', description='**[Required]** Gets the credential_type of this DatabaseCredentialDetails.\nThe type of the credential for tablespace administration tasks.\n\nAllowed values for this property are: "SECRET", "PASSWORD", "NAMED_CREDENTIAL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + named_credential_id: str = Field(..., alias='namedCredentialId', description='**[Required]** Gets the named_credential_id of this DatabaseNamedCredentialDetails. The OCID of the named credential where the database password metadata is stored.') + + +class DatabaseParameterSummary(DbmBaseModel): + """A summary of the database parameter.""" + + name: str = Field(..., description='**[Required]** Gets the name of this DatabaseParameterSummary.\nThe parameter name.') + type: Literal['BOOLEAN', 'STRING', 'INTEGER', 'FILENAME', 'BIG_INTEGER', 'RESERVED', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the type of this DatabaseParameterSummary.\nThe parameter type.\n\nAllowed values for this property are: "BOOLEAN", "STRING", "INTEGER", "FILENAME", "BIG_INTEGER", "RESERVED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + value: str = Field(..., description='**[Required]** Gets the value of this DatabaseParameterSummary.\nThe parameter value.') + display_value: str = Field(..., alias='displayValue', description='**[Required]** Gets the display_value of this DatabaseParameterSummary.\nThe parameter value in a user-friendly format. For example, if the `value` property shows the value 262144 for a big integer parameter, then the `displayValue` property will show the value 256K.') + number: float | None = Field(None, description='Gets the number of this DatabaseParameterSummary.\nThe parameter number.') + is_default: bool | None = Field(None, alias='isDefault', description='Gets the is_default of this DatabaseParameterSummary.\nIndicates whether the parameter is set to the default value (`TRUE`) or the parameter value was specified in the parameter file (`FALSE`).') + is_session_modifiable: bool | None = Field(None, alias='isSessionModifiable', description='Gets the is_session_modifiable of this DatabaseParameterSummary.\nIndicates whether the parameter can be changed with `ALTER SESSION` (`TRUE`) or not (`FALSE`)') + is_system_modifiable: Literal['IMMEDIATE', 'DEFERRED', 'FALSE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='isSystemModifiable', description='Gets the is_system_modifiable of this DatabaseParameterSummary.\nIndicates whether the parameter can be changed with `ALTER SYSTEM` and when the change takes effect:\n- IMMEDIATE: Parameter can be changed with `ALTER SYSTEM` regardless of the type of parameter file used to start the instance. The change takes effect immediately.\n- DEFERRED: Parameter can be changed with `ALTER SYSTEM` regardless of the type of parameter file used to start the instance. The change takes effect in subsequent sessions.\n- FALSE: Parameter cannot be changed with `ALTER SYSTEM` unless a server parameter file was used to start the instance. The change takes effect in subsequent instances.\n\nAllowed values for this property are: "IMMEDIATE", "DEFERRED", "FALSE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + is_pdb_modifiable: bool | None = Field(None, alias='isPdbModifiable', description='Gets the is_pdb_modifiable of this DatabaseParameterSummary.\nIndicates whether the parameter can be modified on a per-PDB basis (`TRUE`) or not (`FALSE`). In a non-CDB, the value of this property is `null`.') + is_instance_modifiable: bool | None = Field(None, alias='isInstanceModifiable', description='Gets the is_instance_modifiable of this DatabaseParameterSummary.\nFor parameters that can be changed with `ALTER SYSTEM`, indicates whether the value of the parameter can be different for every instance (`TRUE`) or whether the parameter must have the same value for all Real Application Clusters instances (`FALSE`). For other parameters, this is always `FALSE`.') + is_modified: Literal['MODIFIED', 'FALSE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='isModified', description='Gets the is_modified of this DatabaseParameterSummary.\nIndicates how the parameter was modified. If an `ALTER SYSTEM` was performed, the value will be `MODIFIED`.\n\nAllowed values for this property are: "MODIFIED", "FALSE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + is_adjusted: bool | None = Field(None, alias='isAdjusted', description='Gets the is_adjusted of this DatabaseParameterSummary.\nIndicates whether Oracle adjusted the input value to a more suitable value.') + is_deprecated: bool | None = Field(None, alias='isDeprecated', description='Gets the is_deprecated of this DatabaseParameterSummary.\nIndicates whether the parameter has been deprecated (`TRUE`) or not (`FALSE`).') + is_basic: bool | None = Field(None, alias='isBasic', description='Gets the is_basic of this DatabaseParameterSummary.\nIndicates whether the parameter is a basic parameter (`TRUE`) or not (`FALSE`).') + description: str | None = Field(None, description='Gets the description of this DatabaseParameterSummary.\nThe description of the parameter.') + ordinal: float | None = Field(None, description='Gets the ordinal of this DatabaseParameterSummary.\nThe position (ordinal number) of the parameter value. Useful only for parameters whose values are lists of strings.') + update_comment: str | None = Field(None, alias='updateComment', description='Gets the update_comment of this DatabaseParameterSummary.\nThe comments associated with the most recent update.') + container_id: float | None = Field(None, alias='containerId', description='Gets the container_id of this DatabaseParameterSummary.\nThe ID of the database container to which the data pertains.\nPossible values include:\n- `0`: This value is used for data that pertain to the entire CDB. This value is also used for data in non-CDBs.\n- `1`: This value is used for data that pertain to only the root container.\n- `n`: Where n is the applicable container ID for the data.') + category: str | None = Field(None, description='Gets the category of this DatabaseParameterSummary.\nThe parameter category.') + constraint: Literal['UNIQUE', 'IDENTICAL', 'NONE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the constraint of this DatabaseParameterSummary.\nApplicable in case of Oracle Real Application Clusters (Oracle RAC) databases.\nA `UNIQUE` parameter is one which is unique to each Oracle Real Application\nClusters (Oracle RAC) instance. For example, the parameter `INSTANCE_NUMBER`\nmust have different values in each instance. An `IDENTICAL` parameter must\nhave the same value for every instance. For example, the parameter\n`DB_BLOCK_SIZE` must have the same value in all instances.\n\nAllowed values for this property are: "UNIQUE", "IDENTICAL", "NONE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + sid: str | None = Field(None, description='Gets the sid of this DatabaseParameterSummary.\nThe database instance SID for which the parameter is defined.') + is_specified: bool | None = Field(None, alias='isSpecified', description='Gets the is_specified of this DatabaseParameterSummary.\nIndicates whether the parameter was specified in the server parameter file (`TRUE`) or not (`FALSE`). Applicable only when the parameter source is `SPFILE`.') + allowed_values: list[AllowedParameterValue] | None = Field(None, alias='allowedValues', description='Gets the allowed_values of this DatabaseParameterSummary.\nA list of allowed values for this parameter.') + + +class DatabaseParameterUpdateStatus(DbmBaseModel): + """The result of database parameter update.""" + + status: Literal['SUCCEEDED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DatabaseParameterUpdateStatus.\nThe status of the parameter update.\n\nAllowed values for this property are: "SUCCEEDED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + error_code: str | None = Field(None, ge=0, alias='errorCode', description='Gets the error_code of this DatabaseParameterUpdateStatus.\nAn error code that defines the failure or `null` if the parameter\nwas updated successfully.') + error_message: str | None = Field(None, alias='errorMessage', description='Gets the error_message of this DatabaseParameterUpdateStatus.\nThe error message indicating the reason for failure or `null` if\nthe parameter was updated successfully.') + + +class DatabaseParametersCollection(DbmBaseModel): + """A collection of database parameters.""" + + database_name: str = Field(..., alias='databaseName', description='**[Required]** Gets the database_name of this DatabaseParametersCollection.\nThe name of the Managed Database.') + database_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='databaseType', description='**[Required]** Gets the database_type of this DatabaseParametersCollection.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='databaseSubType', description='**[Required]** Gets the database_sub_type of this DatabaseParametersCollection.\nThe subtype of the Oracle Database. Indicates whether the database\nis a Container Database, Pluggable Database, or a Non-container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_version: str = Field(..., alias='databaseVersion', description='**[Required]** Gets the database_version of this DatabaseParametersCollection.\nThe Oracle Database version.') + items: list[DatabaseParameterSummary] = Field(..., description='**[Required]** Gets the items of this DatabaseParametersCollection.\nAn array of DatabaseParameterSummary objects.') + + +class DatabasePasswordCredentialDetails(DbmRequestModel): + """User provides a password to be used to connect to the database.""" + + credential_type: Literal['SECRET', 'PASSWORD', 'NAMED_CREDENTIAL', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='credentialType', description='**[Required]** Gets the credential_type of this DatabaseCredentialDetails.\nThe type of the credential for tablespace administration tasks.\n\nAllowed values for this property are: "SECRET", "PASSWORD", "NAMED_CREDENTIAL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + password: str = Field(..., description="**[Required]** Gets the password of this DatabasePasswordCredentialDetails.\nThe database user's password encoded using BASE64 scheme.") + username: str | None = Field(None, description='Gets the username of this DatabasePasswordCredentialDetails.\nThe user to connect to the database.') + role: Literal['NORMAL', 'SYSDBA', 'SYSDG', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the role of this DatabasePasswordCredentialDetails.\nThe role of the database user.\n\nAllowed values for this property are: "NORMAL", "SYSDBA", "SYSDG", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class DatabasePlan(DbmBaseModel): + """The resource allocation directives must all use the share attribute, or they must all use the level and allocation attributes. +If you use the share attribute to allocate I/O resources, then the database plan can have a maximum of 1024 directives. +If you use the level and allocation attributes to allocate I/O resources, then the database plan can have +a maximum of 32 directives. +Only one directive is allowed for each database name and each profile name.""" + + items: list[DatabasePlanDirective] = Field(..., description='**[Required]** Gets the items of this DatabasePlan.\nA list of DatabasePlanDirectives.') + + +class DatabasePlanDirective(DbmBaseModel): + """Manages resource allocation among databases. Besides the name, at least one other property must be available.""" + + name: str = Field(..., description='**[Required]** Gets the name of this DatabasePlanDirective.\nThe name of a database or a profile.') + share: int | None = Field(None, description='Gets the share of this DatabasePlanDirective.\nThe relative priority of a database in the database plan. A higher share value implies\nhigher priority and more access to the I/O resources.\nUse either share or (level, allocation). All plan directives in a database plan\nshould use the same setting.\nShare-based resource allocation is the recommended method for a database plan.') + level: int | None = Field(None, description='Gets the level of this DatabasePlanDirective.\nThe allocation level. Valid values are from 1 to 8. Resources are allocated to level 1 first,\nand then remaining resources are allocated to level 2, and so on.') + allocation: int | None = Field(None, description='Gets the allocation of this DatabasePlanDirective.\nThe resource allocation as a percentage (0-100) within the level.') + limit: int | None = Field(None, description='Gets the limit of this DatabasePlanDirective.\nThe maximum I/O utilization limit as a percentage of the available resources.') + is_flash_cache_on: bool | None = Field(None, alias='isFlashCacheOn', description='Gets the is_flash_cache_on of this DatabasePlanDirective.\nControls use of Exadata Smart Flash Cache by a database.\nThis ensures that cache space is reserved for mission-critical databases.\nflashcache=off is invalid in a directive that contains the flashcachemin, flashcachelimit, or flashcachesize attributes.') + is_pmem_cache_on: bool | None = Field(None, alias='isPmemCacheOn', description='Gets the is_pmem_cache_on of this DatabasePlanDirective.\nControls use of the persistent memory (PMEM) cache by a database. This ensures that cache space\nis reserved for mission-critical databases.\npmemcache=off is invalid in a directive that contains the pmemcachemin, pmemcachelimit, or pmemcachesize attributes.') + is_flash_log_on: bool | None = Field(None, alias='isFlashLogOn', description='Gets the is_flash_log_on of this DatabasePlanDirective.\nControls use of Exadata Smart Flash Log by a database.\nThis ensures that Exadata Smart Flash Log is reserved for mission-critical databases.') + is_pmem_log_on: bool | None = Field(None, alias='isPmemLogOn', description='Gets the is_pmem_log_on of this DatabasePlanDirective.\nControls use of persistent memory logging (PMEM log) by a database.\nThis ensures that PMEM log is reserved for mission-critical databases.') + flash_cache_limit: str | None = Field(None, alias='flashCacheLimit', description='Gets the flash_cache_limit of this DatabasePlanDirective.\nDefines a soft limit for space usage in Exadata Smart Flash Cache.\nIf the cache is not full, the limit can be exceeded.\nYou specify the value for flashcachelimit in bytes. You can also use the suffixes M (megabytes),\nG (gigabytes), or T (terabytes) to specify larger values. For example, 300M, 150G, or 1T.\nThe value for flashcachelimit must be at least 4 MB.\nThe flashcachelimit and flashcachesize attributes cannot be specified in the same directive.\nThe value for flashcachelimit cannot be smaller than flashcachemin, if it is specified.') + flash_cache_min: str | None = Field(None, alias='flashCacheMin', description='Gets the flash_cache_min of this DatabasePlanDirective.\nSpecifies a minimum guaranteed space allocation in Exadata Smart Flash Cache.\nYou specify the value for flashcachemin in bytes. You can also use the suffixes\nM (megabytes), G (gigabytes), or T (terabytes) to specify larger values. For example, 300M, 150G, or 1T.\nThe value for flashcachemin must be at least 4 MB.\nIn any plan, the sum of all flashcachemin values cannot exceed the size of Exadata Smart Flash Cache.\nIf flashcachelimit is specified, then the value for flashcachemin cannot exceed flashcachelimit.\nIf flashcachesize is specified, then the value for flashcachemin cannot exceed flashcachesize.') + flash_cache_size: str | None = Field(None, alias='flashCacheSize', description='Gets the flash_cache_size of this DatabasePlanDirective.\nDefines a hard limit for space usage in Exadata Smart Flash Cache.\nThe limit cannot be exceeded, even if the cache is not full.\nIn an IORM plan, if the size of Exadata Smart Flash Cache can accommodate all of the flashcachemin\nand flashcachesize allocations, then each flashcachesize definition represents a guaranteed space allocation.\nHowever, starting with Oracle Exadata System Software release 19.2.0 you can use the flashcachesize\nattribute to over-provision space in Exadata Smart Flash Cache. Consequently,\nif the size of Exadata Smart Flash Cache cannot accommodate all of the flashcachemin and flashcachesize\nallocations, then only flashcachemin is guaranteed.') + pmem_cache_limit: str | None = Field(None, alias='pmemCacheLimit', description='Gets the pmem_cache_limit of this DatabasePlanDirective.\nDefines a soft limit for space usage in the persistent memory (PMEM) cache.\nIf the cache is not full, the limit can be exceeded.\nYou specify the value for pmemcachelimit in bytes. You can also use the suffixes M (megabytes),\nG (gigabytes), or T (terabytes) to specify larger values. For example, 300M, 150G, or 1T.\nThe value for pmemcachelimit must be at least 4 MB.\nThe pmemcachelimit and pmemcachesize attributes cannot be specified in the same directive.\nThe value for pmemcachelimit cannot be smaller than pmemcachemin, if it is specified.') + pmem_cache_min: str | None = Field(None, alias='pmemCacheMin', description='Gets the pmem_cache_min of this DatabasePlanDirective.\nSpecifies a minimum guaranteed space allocation in the persistent memory (PMEM) cache.') + pmem_cache_size: str | None = Field(None, alias='pmemCacheSize', description='Gets the pmem_cache_size of this DatabasePlanDirective.\nDefines a hard limit for space usage in the persistent memory (PMEM) cache.\nThe limit cannot be exceeded, even if the cache is not full.\nIn an IORM plan, if the size of the PMEM cache can accommodate all of the pmemcachemin and\npmemcachesize allocations, then each pmemcachesize definition represents a guaranteed space allocation.\nHowever, you can use the pmemcachesize attribute to over-provision space in the PMEM cache.\nConsequently, if the PMEM cache size cannot accommodate all of the pmemcachemin and pmemcachesize\nallocations, then only pmemcachemin is guaranteed.') + asm_cluster: str | None = Field(None, alias='asmCluster', description='Gets the asm_cluster of this DatabasePlanDirective.\nStarting with Oracle Exadata System Software release 19.1.0, you can use the asmcluster attribute to\ndistinguish between databases with the same name running in different Oracle ASM clusters.') + type: Literal['DATABASE', 'PROFILE', 'OTHER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the type of this DatabasePlanDirective.\nEnables you to create a profile or template, to ease management and configuration of resource plans\nin environments with many databases.\n\n- type=database: Specifies a directive that applies to a specific database.\nIf type in not specified, then the directive defaults to the database type.\n- type=profile: Specifies a directive that applies to a profile rather than a specific database.\n\n To associate a database with an IORM profile, you must set the database initialization\n parameter db_performance_profile to the value of the profile name. Databases that map to a profile inherit the settings specified in the profile.\n\nAllowed values for this property are: "DATABASE", "PROFILE", "OTHER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + role: Literal['PRIMARY', 'STANDBY', 'NONE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the role of this DatabasePlanDirective.\nEnables you to specify different plan directives based on the Oracle Data Guard database role.\n\nAllowed values for this property are: "PRIMARY", "STANDBY", "NONE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class DatabaseSecretCredentialDetails(DbmRequestModel): + """User provides a secret OCID, which will be used to retrieve the password to connect to the database.""" + + credential_type: Literal['SECRET', 'PASSWORD', 'NAMED_CREDENTIAL', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='credentialType', description='**[Required]** Gets the credential_type of this DatabaseCredentialDetails.\nThe type of the credential for tablespace administration tasks.\n\nAllowed values for this property are: "SECRET", "PASSWORD", "NAMED_CREDENTIAL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + password_secret_id: str = Field(..., alias='passwordSecretId', description='**[Required]** Gets the password_secret_id of this DatabaseSecretCredentialDetails. The OCID of the Secret where the database password is stored.') + username: str | None = Field(None, description='Gets the username of this DatabaseSecretCredentialDetails.\nThe user to connect to the database.') + role: Literal['NORMAL', 'SYSDBA', 'SYSDG', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the role of this DatabaseSecretCredentialDetails.\nThe role of the database user.\n\nAllowed values for this property are: "NORMAL", "SYSDBA", "SYSDG", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class DatabaseSqlWatchFeatureConfiguration(DbmBaseModel): + """The details required to enable the SQL Watch feature.""" + + feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the feature of this DatabaseFeatureConfiguration.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + feature_status: Literal['ENABLED', 'NOT_ENABLED', 'UNSUPPORTED', 'FAILED_ENABLING', 'FAILED_DISABLING', 'FAILED', 'ENABLED_WITH_WARNINGS', 'PENDING_DISABLE', 'ENABLING', 'DISABLING', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='featureStatus', description='**[Required]** Gets the feature_status of this DatabaseFeatureConfiguration.\nThe list of statuses for Database Management features.\n\nAllowed values for this property are: "ENABLED", "NOT_ENABLED", "UNSUPPORTED", "FAILED_ENABLING", "FAILED_DISABLING", "FAILED", "ENABLED_WITH_WARNINGS", "PENDING_DISABLE", "ENABLING", "DISABLING", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + connector_details: ConnectorDetails | None = Field(None, alias='connectorDetails', description='Gets the connector_details of this DatabaseFeatureConfiguration.') + database_connection_details: DatabaseConnectionDetails | None = Field(None, alias='databaseConnectionDetails', description='Gets the database_connection_details of this DatabaseFeatureConfiguration.') + + +class DatabaseSqlWatchFeatureDetails(DbmRequestModel): + """The details required to enable the SQL Watch feature.""" + + feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH'] = Field(..., description='**[Required]** Gets the feature of this DatabaseFeatureDetails.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH"') + database_connection_details: DatabaseConnectionDetails = Field(..., alias='databaseConnectionDetails', description='**[Required]** Gets the database_connection_details of this DatabaseFeatureDetails.') + connector_details: ConnectorDetails = Field(..., alias='connectorDetails', description='**[Required]** Gets the connector_details of this DatabaseFeatureDetails.') + can_enable_all_current_pdbs: bool | None = Field(None, alias='canEnableAllCurrentPdbs', description='Gets the can_enable_all_current_pdbs of this DatabaseSqlWatchFeatureDetails.\nIndicates whether SQL Watch should be enabled for all the current pluggable databases in the container database.') + is_auto_enable_pluggable_database: bool | None = Field(None, alias='isAutoEnablePluggableDatabase', description='Gets the is_auto_enable_pluggable_database of this DatabaseSqlWatchFeatureDetails.\nIndicates whether SQL Watch should be enabled automatically for all the pluggable databases in the container database.') + + +class DatabaseSslConnectionCredentials(DbmBaseModel): + """The SSL connection credential details used to connect to the database.""" + + credential_type: Literal['NAME_REFERENCE', 'DETAILS', 'SSL_DETAILS', 'NAMED_CREDENTIALS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='credentialType', description='Gets the credential_type of this DatabaseConnectionCredentials.\nThe type of credential used to connect to the database.\n\nAllowed values for this property are: "NAME_REFERENCE", "DETAILS", "SSL_DETAILS", "NAMED_CREDENTIALS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + credential_name: str | None = Field(None, alias='credentialName', description='Gets the credential_name of this DatabaseSslConnectionCredentials.\nThe name of the credential information that used to connect to the DB system resource.\nThe name should be in "x.y" format, where the length of "x" has a maximum of 64 characters,\nand length of "y" has a maximum of 199 characters. The name strings can contain letters,\nnumbers and the underscore character only. Other characters are not valid, except for\nthe "." character that separates the "x" and "y" portions of the name.\n*IMPORTANT* - The name must be unique within the OCI region the credential is being created in.\nIf you specify a name that duplicates the name of another credential within the same OCI region,\nyou may overwrite or corrupt the credential that is already using the name.\n\nFor example: inventorydb.abc112233445566778899') + user_name: str = Field(..., alias='userName', description='**[Required]** Gets the user_name of this DatabaseSslConnectionCredentials.\nThe user name used to connect to the database.') + password_secret_id: str = Field(..., alias='passwordSecretId', description='**[Required]** Gets the password_secret_id of this DatabaseSslConnectionCredentials. The OCID of the secret containing the user password.') + role: Literal['SYSDBA', 'NORMAL', 'SYSDG', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the role of this DatabaseSslConnectionCredentials.\nThe role of the user connecting to the database.\n\nAllowed values for this property are: "SYSDBA", "NORMAL", "SYSDG", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + ssl_secret_id: str = Field(..., alias='sslSecretId', description='**[Required]** Gets the ssl_secret_id of this DatabaseSslConnectionCredentials. The OCID of the secret containing the SSL keystore and truststore details.') + + +class DatabaseStorageAggregateMetrics(DbmBaseModel): + """The database storage metric values.""" + + storage_allocated: MetricDataPoint | None = Field(None, alias='storageAllocated', description='Gets the storage_allocated of this DatabaseStorageAggregateMetrics.') + storage_used: MetricDataPoint | None = Field(None, alias='storageUsed', description='Gets the storage_used of this DatabaseStorageAggregateMetrics.') + storage_used_by_table_space: list[MetricDataPoint] | None = Field(None, alias='storageUsedByTableSpace', description='Gets the storage_used_by_table_space of this DatabaseStorageAggregateMetrics.\nA list of the storage metrics grouped by TableSpace for a specific Managed Database.') + + +class DatabaseTimeAggregateMetrics(DbmBaseModel): + """The database time metric details.""" + + cpu_count: MetricDataPoint | None = Field(None, ge=0, alias='cpuCount', description='Gets the cpu_count of this DatabaseTimeAggregateMetrics.') + cpu_time: MetricDataPoint | None = Field(None, alias='cpuTime', description='Gets the cpu_time of this DatabaseTimeAggregateMetrics.') + wait_time: MetricDataPoint | None = Field(None, alias='waitTime', description='Gets the wait_time of this DatabaseTimeAggregateMetrics.') + user_io_time: MetricDataPoint | None = Field(None, alias='userIoTime', description='Gets the user_io_time of this DatabaseTimeAggregateMetrics.') + cluster: MetricDataPoint | None = Field(None, description='Gets the cluster of this DatabaseTimeAggregateMetrics.') + + +class DatabaseUsageMetrics(DbmBaseModel): + """The list of aggregated metrics for Managed Databases in the fleet.""" + + db_id: str | None = Field(None, alias='dbId', description='Gets the db_id of this DatabaseUsageMetrics. The OCID of the Managed Database.') + compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this DatabaseUsageMetrics. The OCID of the compartment where the Managed Database resides.') + database_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseType', description='Gets the database_type of this DatabaseUsageMetrics.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseSubType', description='Gets the database_sub_type of this DatabaseUsageMetrics.\nThe subtype of the Oracle Database. Indicates whether the database is a Container Database,\nPluggable Database, Non-container Database, Autonomous Database, or Autonomous Container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + deployment_type: Literal['ONPREMISE', 'BM', 'VM', 'EXADATA', 'EXADATA_CC', 'AUTONOMOUS', 'EXADATA_XS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='deploymentType', description='Gets the deployment_type of this DatabaseUsageMetrics.\nThe infrastructure used to deploy the Oracle Database.\n\nAllowed values for this property are: "ONPREMISE", "BM", "VM", "EXADATA", "EXADATA_CC", "AUTONOMOUS", "EXADATA_XS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this DatabaseUsageMetrics.\nThe Oracle Database version.') + workload_type: Literal['OLTP', 'DW', 'AJD', 'APEX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='workloadType', description='Gets the workload_type of this DatabaseUsageMetrics.\nThe workload type of the Autonomous Database.\n\nAllowed values for this property are: "OLTP", "DW", "AJD", "APEX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_name: str | None = Field(None, alias='databaseName', description='Gets the database_name of this DatabaseUsageMetrics.\nThe display name of the Managed Database.') + database_container_id: str | None = Field(None, alias='databaseContainerId', description='Gets the database_container_id of this DatabaseUsageMetrics. The OCID of the parent Container Database, in the case of a Pluggable Database.') + database_id: str | None = Field(None, alias='databaseId', description='Gets the database_id of this DatabaseUsageMetrics.\nThe Database id of the Managed Database. Every database had its own id and that value is captured here.') + primary_db_id: str | None = Field(None, alias='primaryDbId', description='Gets the primary_db_id of this DatabaseUsageMetrics.\nThe Primary Database id of the Managed Database.') + primary_db_unique_name: str | None = Field(None, alias='primaryDbUniqueName', description='Gets the primary_db_unique_name of this DatabaseUsageMetrics.\nThe Primary Database unique name of the Managed Database.') + db_unique_name: str | None = Field(None, alias='dbUniqueName', description='Gets the db_unique_name of this DatabaseUsageMetrics.\nThe Database unique name of the Managed Database.') + db_role: Literal['SNAPSHOT_STANDBY', 'LOGICAL_STANDBY', 'PHYSICAL_STANDBY', 'PRIMARY', 'FAR_SYNC', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='dbRole', description='Gets the db_role of this DatabaseUsageMetrics.\nThe Database role of the Managed Database.\n\nAllowed values for this property are: "SNAPSHOT_STANDBY", "LOGICAL_STANDBY", "PHYSICAL_STANDBY", "PRIMARY", "FAR_SYNC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + metrics: list[FleetMetricDefinition] | None = Field(None, description='Gets the metrics of this DatabaseUsageMetrics.\nA list of the database health metrics like CPU, Storage, and Memory.') + + +class Datafile(DbmBaseModel): + """The details of a data file.""" + + name: str = Field(..., description='**[Required]** Gets the name of this Datafile.\nThe filename (including the path) of the data file or temp file.') + status: Literal['AVAILABLE', 'INVALID', 'OFFLINE', 'ONLINE', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this Datafile.\nThe status of the file. INVALID status is used when the file number is not in use, for example, a file in a tablespace that was removed.\n\nAllowed values for this property are: "AVAILABLE", "INVALID", "OFFLINE", "ONLINE", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + online_status: Literal['SYSOFF', 'SYSTEM', 'OFFLINE', 'ONLINE', 'RECOVER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='onlineStatus', description='Gets the online_status of this Datafile.\nThe online status of the file.\n\nAllowed values for this property are: "SYSOFF", "SYSTEM", "OFFLINE", "ONLINE", "RECOVER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + is_auto_extensible: bool | None = Field(None, alias='isAutoExtensible', description='Gets the is_auto_extensible of this Datafile.\nIndicates whether the data file is auto-extensible.') + lost_write_protect: Literal['ENABLED', 'PROTECT_OFF', 'SUSPEND', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lostWriteProtect', description='Gets the lost_write_protect of this Datafile.\nThe lost write protection status of the file.\n\nAllowed values for this property are: "ENABLED", "PROTECT_OFF", "SUSPEND", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + shared: Literal['SHARED', 'LOCAL_FOR_RIM', 'LOCAL_FOR_ALL', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the shared of this Datafile.\nType of tablespace this file belongs to. If it\'s for a shared tablespace, for a local temporary tablespace for RIM (read-only) instances, or for local temporary tablespace for all instance types.\n\nAllowed values for this property are: "SHARED", "LOCAL_FOR_RIM", "LOCAL_FOR_ALL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + instance_id: float | None = Field(None, alias='instanceId', description='Gets the instance_id of this Datafile.\nInstance ID of the instance to which the temp file belongs. This column has a NULL value for temp files that belong to shared tablespaces.') + max_size_kb: float | None = Field(None, alias='maxSizeKB', description='Gets the max_size_kb of this Datafile.\nThe maximum file size in KB.') + allocated_size_kb: float | None = Field(None, alias='allocatedSizeKB', description='Gets the allocated_size_kb of this Datafile.\nThe allocated file size in KB.') + user_size_kb: float | None = Field(None, alias='userSizeKB', description='Gets the user_size_kb of this Datafile.\nThe size of the file available for user data in KB. The actual size of the file minus the USER_BYTES value is used to store file-related metadata.') + increment_by: float | None = Field(None, alias='incrementBy', description='Gets the increment_by of this Datafile.\nThe number of blocks used as auto-extension increment.') + free_space_kb: float | None = Field(None, alias='freeSpaceKB', description='Gets the free_space_kb of this Datafile.\nThe free space available in the data file in KB.') + used_space_kb: float | None = Field(None, alias='usedSpaceKB', description='Gets the used_space_kb of this Datafile.\nThe total space used in the data file in KB.') + used_percent_available: float | None = Field(None, alias='usedPercentAvailable', description='Gets the used_percent_available of this Datafile.\nThe percentage of used space out of the maximum available space in the file.') + used_percent_allocated: float | None = Field(None, alias='usedPercentAllocated', description='Gets the used_percent_allocated of this Datafile.\nThe percentage of used space out of the total allocated space in the file.') + + +class DataguardMetrics(DbmBaseModel): + """The Data Guard usage metrics for a single database.""" + + fast_start_fail_over: str = Field(..., alias='fastStartFailOver', description='**[Required]** Gets the fast_start_fail_over of this DataguardMetrics.\nThe Fast-Start Failover status of the primary database.') + protection_mode: str = Field(..., alias='protectionMode', description='**[Required]** Gets the protection_mode of this DataguardMetrics.\nThe protection mode of the primary Database.') + metrics: list[HaMetricDefinition] = Field(..., description='**[Required]** Gets the metrics of this DataguardMetrics.\nA list of primary or standby database metrics.') + stand_by_databases: list[StandByDatabaseDataguardMetrics] = Field(..., alias='standByDatabases', description='**[Required]** Gets the stand_by_databases of this DataguardMetrics.\nA list of standby databases and their metrics') + db_id: str = Field(..., alias='dbId', description='**[Required]** Gets the db_id of this DataguardMetrics. The OCID of the Managed Database.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this DataguardMetrics. The OCID of the compartment where the Managed Database resides.') + database_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='databaseType', description='**[Required]** Gets the database_type of this DataguardMetrics.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='databaseSubType', description='**[Required]** Gets the database_sub_type of this DataguardMetrics.\nThe subtype of the Oracle Database. Indicates whether the database is a Container Database,\nPluggable Database, Non-container Database, Autonomous Database, or Autonomous Container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + deployment_type: Literal['ONPREMISE', 'BM', 'VM', 'EXADATA', 'EXADATA_CC', 'AUTONOMOUS', 'EXADATA_XS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='deploymentType', description='**[Required]** Gets the deployment_type of this DataguardMetrics.\nThe infrastructure used to deploy the Oracle Database.\n\nAllowed values for this property are: "ONPREMISE", "BM", "VM", "EXADATA", "EXADATA_CC", "AUTONOMOUS", "EXADATA_XS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this DataguardMetrics.\nThe Oracle Database version.') + workload_type: Literal['OLTP', 'DW', 'AJD', 'APEX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='workloadType', description='Gets the workload_type of this DataguardMetrics.\nThe workload type of the Autonomous Database.\n\nAllowed values for this property are: "OLTP", "DW", "AJD", "APEX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_name: str = Field(..., alias='databaseName', description='**[Required]** Gets the database_name of this DataguardMetrics.\nThe display name of the Managed Database.') + database_id: str | None = Field(None, alias='databaseId', description='Gets the database_id of this DataguardMetrics.\nThe database ID of the Managed Database. Every database had its own ID and that value is captured here.') + db_unique_name: str | None = Field(None, alias='dbUniqueName', description='Gets the db_unique_name of this DataguardMetrics.\nThe database unique name of the Managed Database.') + db_role: Literal['SNAPSHOT_STANDBY', 'LOGICAL_STANDBY', 'PHYSICAL_STANDBY', 'PRIMARY', 'FAR_SYNC', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dbRole', description='**[Required]** Gets the db_role of this DataguardMetrics.\nThe database role of the Managed Database.\n\nAllowed values for this property are: "SNAPSHOT_STANDBY", "LOGICAL_STANDBY", "PHYSICAL_STANDBY", "PRIMARY", "FAR_SYNC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class DataguardPerformanceMetrics(DbmBaseModel): + """A summary of Data Guard performance metrics for Managed Databases.""" + + metrics_data: list[PerformanceMetricsData] = Field(..., alias='metricsData', description='**[Required]** Gets the metrics_data of this DataguardPerformanceMetrics.\nA summary of Data Guard performance metrics such as ApplyLag, TransportLag and RedoApplyRate, for Managed Databases.') + + +class DbManagementAnalyticsMetric(DbmBaseModel): + """The metric details of a Database Management resource.""" + + metric_name: str | None = Field(None, alias='metricName', description='Gets the metric_name of this DbManagementAnalyticsMetric.\nThe name of the metric.') + duration_in_seconds: int | None = Field(None, alias='durationInSeconds', description='Gets the duration_in_seconds of this DbManagementAnalyticsMetric.\nThe duration of the returned aggregated data in seconds.') + metadata: dict[str, str] | None = Field(None, description='Gets the metadata of this DbManagementAnalyticsMetric.\nThe additional information about the metric.\n\nExample: `"unit": "bytes"`') + dimensions: dict[str, str] | None = Field(None, description='Gets the dimensions of this DbManagementAnalyticsMetric.\nThe qualifiers provided in the definition of the returned metric.') + start_timestamp_in_epoch_seconds: int | None = Field(None, alias='startTimestampInEpochSeconds', description='Gets the start_timestamp_in_epoch_seconds of this DbManagementAnalyticsMetric.\nThe start time associated with the value of the metric.') + mean: float | None = Field(None, description='Gets the mean of this DbManagementAnalyticsMetric.\nThe mean value of the metric.') + + +class DbManagementPrivateEndpoint(DbmBaseModel): + """A Database Management private endpoint allows Database Management to connect to databases in a Virtual Cloud Network (VCN).""" + + id: str = Field(..., description='**[Required]** Gets the id of this DbManagementPrivateEndpoint. The OCID of the Database Management private endpoint.') + name: str = Field(..., description='**[Required]** Gets the name of this DbManagementPrivateEndpoint.\nThe display name of the Database Management private endpoint.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this DbManagementPrivateEndpoint. The OCID of the compartment.') + is_cluster: bool | None = Field(None, alias='isCluster', description='Gets the is_cluster of this DbManagementPrivateEndpoint.\nSpecifies whether the Database Management private endpoint can be used for Oracle Databases in a cluster.') + is_dns_resolution_enabled: bool | None = Field(None, alias='isDnsResolutionEnabled', description='Gets the is_dns_resolution_enabled of this DbManagementPrivateEndpoint.\nSpecifies whether the Database Management private endpoint has DNS proxy server enabled to resolve private host name.') + vcn_id: str = Field(..., alias='vcnId', description='**[Required]** Gets the vcn_id of this DbManagementPrivateEndpoint. The OCID of the VCN.') + subnet_id: str = Field(..., alias='subnetId', description='**[Required]** Gets the subnet_id of this DbManagementPrivateEndpoint. The OCID of the subnet.') + private_ip: str | None = Field(None, alias='privateIp', description='Gets the private_ip of this DbManagementPrivateEndpoint.\nThe IP addresses assigned to the Database Management private endpoint.') + description: str | None = Field(None, description='Gets the description of this DbManagementPrivateEndpoint.\nThe description of the Database Management private endpoint.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DbManagementPrivateEndpoint. The date and time the Database Managament private endpoint was created, in the format defined by RFC3339.') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DbManagementPrivateEndpoint.\nThe current lifecycle state of the Database Management private endpoint.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + nsg_ids: list[str] | None = Field(None, alias='nsgIds', description='Gets the nsg_ids of this DbManagementPrivateEndpoint.\nThe OCIDs of the Network Security Groups to which the Database Management private endpoint belongs.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this DbManagementPrivateEndpoint. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this DbManagementPrivateEndpoint. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this DbManagementPrivateEndpoint. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class DbManagementPrivateEndpointCollection(DbmBaseModel): + """A collection of Database Management private endpoint objects.""" + + items: list[DbManagementPrivateEndpointSummary] = Field(..., description='**[Required]** Gets the items of this DbManagementPrivateEndpointCollection.\nA list of DbManagementPrivateEndpointSummary objects.') + + +class DbManagementPrivateEndpointSummary(DbmBaseModel): + """The summary of a Database Management private endpoint.""" + + id: str = Field(..., description='**[Required]** Gets the id of this DbManagementPrivateEndpointSummary. The OCID of the Database Management private endpoint.') + name: str = Field(..., description='**[Required]** Gets the name of this DbManagementPrivateEndpointSummary.\nThe display name of the Database Management private endpoint.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this DbManagementPrivateEndpointSummary. The OCID of the compartment.') + vcn_id: str = Field(..., alias='vcnId', description='**[Required]** Gets the vcn_id of this DbManagementPrivateEndpointSummary. The OCID of the VCN.') + subnet_id: str = Field(..., alias='subnetId', description='**[Required]** Gets the subnet_id of this DbManagementPrivateEndpointSummary. The OCID of the subnet.') + description: str | None = Field(None, description='Gets the description of this DbManagementPrivateEndpointSummary.\nThe description of the private endpoint.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DbManagementPrivateEndpointSummary. The date and time the private endpoint was created, in the format defined by RFC3339.') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DbManagementPrivateEndpointSummary.\nThe current lifecycle state of the private endpoint.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this DbManagementPrivateEndpointSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this DbManagementPrivateEndpointSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this DbManagementPrivateEndpointSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class DbmResource(DbmBaseModel): + """The base Exadata resource.""" + + id: str = Field(..., description='**[Required]** Gets the id of this DbmResource. The OCID of the Exadata resource.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DbmResource.\nThe name of the Exadata resource. English letters, numbers, "-", "_" and "." only.') + version: str | None = Field(None, description='Gets the version of this DbmResource.\nThe version of the Exadata resource.') + internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this DbmResource.\nThe internal ID of the Exadata resource.') + status: str | None = Field(None, description='Gets the status of this DbmResource.\nThe status of the Exadata resource.') + lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DbmResource.\nThe current lifecycle state of the database resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DbmResource.\nThe timestamp of the creation of the Exadata resource.') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DbmResource.\nThe timestamp of the last update of the Exadata resource.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DbmResource.\nThe details of the lifecycle state of the Exadata resource.') + additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this DbmResource.\nThe additional details of the resource defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') + resource_type: Literal['INFRASTRUCTURE_SUMMARY', 'INFRASTRUCTURE', 'STORAGE_SERVER_SUMMARY', 'STORAGE_SERVER', 'STORAGE_GRID_SUMMARY', 'STORAGE_GRID', 'STORAGE_CONNECTOR_SUMMARY', 'STORAGE_CONNECTOR', 'DATABASE_SYSTEM_SUMMARY', 'DATABASE_SUMMARY', 'VM_CLUSTER_SUMMARY', 'CLOUD_INFRASTRUCTURE_SUMMARY', 'CLOUD_INFRASTRUCTURE', 'CLOUD_STORAGE_SERVER_SUMMARY', 'CLOUD_STORAGE_SERVER', 'CLOUD_STORAGE_GRID_SUMMARY', 'CLOUD_STORAGE_GRID', 'CLOUD_STORAGE_CONNECTOR_SUMMARY', 'CLOUD_STORAGE_CONNECTOR', 'MANAGED_DATABASE_SUMMARY', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceType', description='**[Required]** Gets the resource_type of this DbmResource.\nThe type of Exadata resource.\n\nAllowed values for this property are: "INFRASTRUCTURE_SUMMARY", "INFRASTRUCTURE", "STORAGE_SERVER_SUMMARY", "STORAGE_SERVER", "STORAGE_GRID_SUMMARY", "STORAGE_GRID", "STORAGE_CONNECTOR_SUMMARY", "STORAGE_CONNECTOR", "DATABASE_SYSTEM_SUMMARY", "DATABASE_SUMMARY", "VM_CLUSTER_SUMMARY", "CLOUD_INFRASTRUCTURE_SUMMARY", "CLOUD_INFRASTRUCTURE", "CLOUD_STORAGE_SERVER_SUMMARY", "CLOUD_STORAGE_SERVER", "CLOUD_STORAGE_GRID_SUMMARY", "CLOUD_STORAGE_GRID", "CLOUD_STORAGE_CONNECTOR_SUMMARY", "CLOUD_STORAGE_CONNECTOR", "MANAGED_DATABASE_SUMMARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class DirectConnectorDetails(DbmRequestModel): + """The connector details required to connect to an Autonomous Database.""" + + connector_type: Literal['PE', 'MACS', 'EXTERNAL', 'DIRECT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this ConnectorDetails.\nThe list of supported connection types:\n - PE: Private endpoint\n - MACS: Management agent\n - EXTERNAL: External database connector\n\n - DIRECT: Direct connection\n\nAllowed values for this property are: "PE", "MACS", "EXTERNAL", "DIRECT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class DisableAutomaticInitialPlanCaptureDetails(DbmRequestModel): + """The details required to disable automatic initial plan capture. +It takes either credentials or databaseCredential. It's recommended to provide databaseCredential""" + + credentials: ManagedDatabaseCredential | None = Field(None, description='Gets the credentials of this DisableAutomaticInitialPlanCaptureDetails.') + database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this DisableAutomaticInitialPlanCaptureDetails.') + + +class DisableAutomaticSpmEvolveAdvisorTaskDetails(DbmRequestModel): + """The details required to disable Automatic SPM Evolve Advisor task. +It takes either credentials or databaseCredential. It's recommended to provide databaseCredential""" + + credentials: ManagedDatabaseCredential | None = Field(None, description='Gets the credentials of this DisableAutomaticSpmEvolveAdvisorTaskDetails.') + database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this DisableAutomaticSpmEvolveAdvisorTaskDetails.') + + +class DisableAutonomousDatabaseManagementFeatureDetails(DbmRequestModel): + """The details required to disable a Database Management feature for an Autonomous Database.""" + + feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH'] = Field(..., description='**[Required]** Gets the feature of this DisableAutonomousDatabaseManagementFeatureDetails.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH"') + + +class DisableDatabaseManagementFeatureDetails(DbmRequestModel): + """The details required to disable Database Management features for an Oracle cloud database.""" + + feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH'] = Field(..., description='**[Required]** Gets the feature of this DisableDatabaseManagementFeatureDetails.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH"') + can_disable_all_pdbs: bool | None = Field(None, alias='canDisableAllPdbs', description='Gets the can_disable_all_pdbs of this DisableDatabaseManagementFeatureDetails.\nIndicates whether Diagnostics & Management should be disabled for the pluggable databases before disabling it for the container database.') + + +class DisableExternalContainerDatabaseManagementFeatureDetails(DbmRequestModel): + """The details required to disable a Database Management feature for an external container database.""" + + feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH'] = Field(..., description='**[Required]** Gets the feature of this DisableExternalContainerDatabaseManagementFeatureDetails.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH"') + can_disable_all_pdbs: bool | None = Field(None, alias='canDisableAllPdbs', description='Gets the can_disable_all_pdbs of this DisableExternalContainerDatabaseManagementFeatureDetails.\nIndicates whether Diagnostics & Management should be disabled for the pluggable databases before disabling it for the container database.') + + +class DisableExternalNonContainerDatabaseManagementFeatureDetails(DbmRequestModel): + """The details required to disable a Database Management feature for an external non-container database.""" + + feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH'] = Field(..., description='**[Required]** Gets the feature of this DisableExternalNonContainerDatabaseManagementFeatureDetails.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH"') + + +class DisableExternalPluggableDatabaseManagementFeatureDetails(DbmRequestModel): + """The details required to disable a Database Management feature for an external pluggable database.""" + + feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH'] = Field(..., description='**[Required]** Gets the feature of this DisableExternalPluggableDatabaseManagementFeatureDetails.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH"') + + +class DisableHighFrequencyAutomaticSpmEvolveAdvisorTaskDetails(DbmRequestModel): + """The details required to disable high frequency Automatic SPM Evolve Advisor task. +It takes either credentials or databaseCredential. It's recommended to provide databaseCredential""" + + credentials: ManagedDatabaseCredential | None = Field(None, description='Gets the credentials of this DisableHighFrequencyAutomaticSpmEvolveAdvisorTaskDetails.') + database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this DisableHighFrequencyAutomaticSpmEvolveAdvisorTaskDetails.') + + +class DisablePluggableDatabaseManagementFeatureDetails(DbmRequestModel): + """The details required to disable a Database Management feature for an Oracle cloud pluggable database.""" + + feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH'] = Field(..., description='**[Required]** Gets the feature of this DisablePluggableDatabaseManagementFeatureDetails.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH"') + + +class DisableSqlPlanBaselinesUsageDetails(DbmRequestModel): + """The details required to disable SQL plan baseline usage. +It takes either credentials or databaseCredential. It's recommended to provide databaseCredential""" + + credentials: ManagedDatabaseCredential | None = Field(None, description='Gets the credentials of this DisableSqlPlanBaselinesUsageDetails.') + database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this DisableSqlPlanBaselinesUsageDetails.') + + +class DiscoverCloudExadataInfrastructureDetails(DbmRequestModel): + """The connection details and the discovery options for the Exadata discovery.""" + + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this DiscoverCloudExadataInfrastructureDetails. The OCID of the compartment.') + discovery_type: Literal['NEW', 'OVERRIDE'] = Field(..., alias='discoveryType', description='**[Required]** Gets the discovery_type of this DiscoverCloudExadataInfrastructureDetails.\nThe type of discovery.\n\nAllowed values for this property are: "NEW", "OVERRIDE"') + vm_cluster_ids: list[str] = Field(..., alias='vmClusterIds', description='**[Required]** Gets the vm_cluster_ids of this DiscoverCloudExadataInfrastructureDetails.\nThe list of VM Clusters in the Exadata infrastructure.') + exadata_infrastructure_id: str | None = Field(None, alias='exadataInfrastructureId', description='Gets the exadata_infrastructure_id of this DiscoverCloudExadataInfrastructureDetails. The OCID of the Exadata infrastructure. This is applicable for rediscovery only.') + + +class DiscoverExternalExadataInfrastructureDetails(DbmRequestModel): + """The connection details and the discovery options for the Exadata discovery.""" + + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this DiscoverExternalExadataInfrastructureDetails. The OCID of the compartment.') + discovery_type: Literal['NEW', 'OVERRIDE'] = Field(..., alias='discoveryType', description='**[Required]** Gets the discovery_type of this DiscoverExternalExadataInfrastructureDetails.\nThe type of discovery.\n\nAllowed values for this property are: "NEW", "OVERRIDE"') + db_system_ids: list[str] = Field(..., alias='dbSystemIds', description='**[Required]** Gets the db_system_ids of this DiscoverExternalExadataInfrastructureDetails.\nThe list of the DB system identifiers.') + exadata_infrastructure_id: str | None = Field(None, alias='exadataInfrastructureId', description='Gets the exadata_infrastructure_id of this DiscoverExternalExadataInfrastructureDetails. The OCID of the Exadata infrastructure. This is applicable for rediscovery only.') + + +class DiscoveredCloudAsm(DbmBaseModel): + """The details of an ASM discovered in a cloud DB system discovery run.""" + + component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this DiscoveredCloudDbSystemComponent.\nThe identifier of the discovered DB system component.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DiscoveredCloudDbSystemComponent.\nThe user-friendly name for the discovered DB system component. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this DiscoveredCloudDbSystemComponent.\nThe name of the discovered DB system component.') + component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this DiscoveredCloudDbSystemComponent.\nThe cloud DB system component type.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this DiscoveredCloudDbSystemComponent. The OCID of the existing OCI resource matching the discovered DB system component.') + dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this DiscoveredCloudDbSystemComponent. The OCID of the existing Dbaas OCI resource matching the discovered DB system component.') + is_selected_for_monitoring: bool | None = Field(None, alias='isSelectedForMonitoring', description='Gets the is_selected_for_monitoring of this DiscoveredCloudDbSystemComponent.\nIndicates whether the DB system component should be provisioned as an OCI resource or not.') + status: Literal['NEW', 'EXISTING', 'EXISTING_BASIC', 'EXISTING_PE', 'EXISTING_BASIC_PE', 'MARKED_FOR_UPGRADE', 'MARKED_FOR_MIGRATION', 'MARKED_FOR_UPGRADE_MIGRATION', 'MARKED_FOR_DELETION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DiscoveredCloudDbSystemComponent.\nThe state of the discovered DB system component.\n\nAllowed values for this property are: "NEW", "EXISTING", "EXISTING_BASIC", "EXISTING_PE", "EXISTING_BASIC_PE", "MARKED_FOR_UPGRADE", "MARKED_FOR_MIGRATION", "MARKED_FOR_UPGRADE_MIGRATION", "MARKED_FOR_DELETION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + associated_components: list[AssociatedCloudComponent] | None = Field(None, alias='associatedComponents', description='Gets the associated_components of this DiscoveredCloudDbSystemComponent.\nThe list of associated components.') + grid_home: str | None = Field(None, alias='gridHome', description='Gets the grid_home of this DiscoveredCloudAsm.\nThe directory in which ASM is installed. This is the same directory in which Oracle Grid Infrastructure is installed.') + is_flex_enabled: bool | None = Field(None, alias='isFlexEnabled', description='Gets the is_flex_enabled of this DiscoveredCloudAsm.\nIndicates whether Oracle Flex ASM is enabled or not.') + version: str | None = Field(None, description='Gets the version of this DiscoveredCloudAsm.\nThe ASM version.') + asm_instances: list[DiscoveredCloudAsmInstance] | None = Field(None, alias='asmInstances', description='Gets the asm_instances of this DiscoveredCloudAsm.\nThe list of asm instances for the cloud Asm.') + connector: CloudDbSystemDiscoveryConnector | None = Field(None, description='Gets the connector of this DiscoveredCloudAsm.') + + +class DiscoveredCloudAsmInstance(DbmBaseModel): + """The details of an ASM instance discovered in a cloud DB system discovery run.""" + + component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this DiscoveredCloudDbSystemComponent.\nThe identifier of the discovered DB system component.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DiscoveredCloudDbSystemComponent.\nThe user-friendly name for the discovered DB system component. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this DiscoveredCloudDbSystemComponent.\nThe name of the discovered DB system component.') + component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this DiscoveredCloudDbSystemComponent.\nThe cloud DB system component type.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this DiscoveredCloudDbSystemComponent. The OCID of the existing OCI resource matching the discovered DB system component.') + dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this DiscoveredCloudDbSystemComponent. The OCID of the existing Dbaas OCI resource matching the discovered DB system component.') + is_selected_for_monitoring: bool | None = Field(None, alias='isSelectedForMonitoring', description='Gets the is_selected_for_monitoring of this DiscoveredCloudDbSystemComponent.\nIndicates whether the DB system component should be provisioned as an OCI resource or not.') + status: Literal['NEW', 'EXISTING', 'EXISTING_BASIC', 'EXISTING_PE', 'EXISTING_BASIC_PE', 'MARKED_FOR_UPGRADE', 'MARKED_FOR_MIGRATION', 'MARKED_FOR_UPGRADE_MIGRATION', 'MARKED_FOR_DELETION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DiscoveredCloudDbSystemComponent.\nThe state of the discovered DB system component.\n\nAllowed values for this property are: "NEW", "EXISTING", "EXISTING_BASIC", "EXISTING_PE", "EXISTING_BASIC_PE", "MARKED_FOR_UPGRADE", "MARKED_FOR_MIGRATION", "MARKED_FOR_UPGRADE_MIGRATION", "MARKED_FOR_DELETION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + associated_components: list[AssociatedCloudComponent] | None = Field(None, alias='associatedComponents', description='Gets the associated_components of this DiscoveredCloudDbSystemComponent.\nThe list of associated components.') + host_name: str = Field(..., alias='hostName', description='**[Required]** Gets the host_name of this DiscoveredCloudAsmInstance.\nThe name of the host on which the ASM instance is running.') + instance_name: str | None = Field(None, alias='instanceName', description='Gets the instance_name of this DiscoveredCloudAsmInstance.\nThe name of the ASM instance.') + adr_home_directory: str | None = Field(None, alias='adrHomeDirectory', description='Gets the adr_home_directory of this DiscoveredCloudAsmInstance.\nThe Automatic Diagnostic Repository (ADR) home directory for the ASM instance.') + + +class DiscoveredCloudCluster(DbmBaseModel): + """The details of a cloud cluster discovered in a cloud DB system discovery run.""" + + component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this DiscoveredCloudDbSystemComponent.\nThe identifier of the discovered DB system component.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DiscoveredCloudDbSystemComponent.\nThe user-friendly name for the discovered DB system component. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this DiscoveredCloudDbSystemComponent.\nThe name of the discovered DB system component.') + component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this DiscoveredCloudDbSystemComponent.\nThe cloud DB system component type.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this DiscoveredCloudDbSystemComponent. The OCID of the existing OCI resource matching the discovered DB system component.') + dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this DiscoveredCloudDbSystemComponent. The OCID of the existing Dbaas OCI resource matching the discovered DB system component.') + is_selected_for_monitoring: bool | None = Field(None, alias='isSelectedForMonitoring', description='Gets the is_selected_for_monitoring of this DiscoveredCloudDbSystemComponent.\nIndicates whether the DB system component should be provisioned as an OCI resource or not.') + status: Literal['NEW', 'EXISTING', 'EXISTING_BASIC', 'EXISTING_PE', 'EXISTING_BASIC_PE', 'MARKED_FOR_UPGRADE', 'MARKED_FOR_MIGRATION', 'MARKED_FOR_UPGRADE_MIGRATION', 'MARKED_FOR_DELETION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DiscoveredCloudDbSystemComponent.\nThe state of the discovered DB system component.\n\nAllowed values for this property are: "NEW", "EXISTING", "EXISTING_BASIC", "EXISTING_PE", "EXISTING_BASIC_PE", "MARKED_FOR_UPGRADE", "MARKED_FOR_MIGRATION", "MARKED_FOR_UPGRADE_MIGRATION", "MARKED_FOR_DELETION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + associated_components: list[AssociatedCloudComponent] | None = Field(None, alias='associatedComponents', description='Gets the associated_components of this DiscoveredCloudDbSystemComponent.\nThe list of associated components.') + grid_home: str | None = Field(None, alias='gridHome', description='Gets the grid_home of this DiscoveredCloudCluster.\nThe directory in which Oracle Grid Infrastructure is installed.') + version: str | None = Field(None, description='Gets the version of this DiscoveredCloudCluster.\nThe version of Oracle Clusterware running in the cluster.') + is_flex_cluster: bool | None = Field(None, alias='isFlexCluster', description='Gets the is_flex_cluster of this DiscoveredCloudCluster.\nIndicates whether the cluster is an Oracle Flex Cluster or not.') + network_configurations: list[CloudClusterNetworkConfiguration] | None = Field(None, alias='networkConfigurations', description='Gets the network_configurations of this DiscoveredCloudCluster.\nThe list of network address configurations of the cloud cluster.') + vip_configurations: list[CloudClusterVipConfiguration] | None = Field(None, alias='vipConfigurations', description='Gets the vip_configurations of this DiscoveredCloudCluster.\nThe list of Virtual IP (VIP) configurations of the cloud cluster.') + scan_configurations: list[CloudClusterScanListenerConfiguration] | None = Field(None, alias='scanConfigurations', description='Gets the scan_configurations of this DiscoveredCloudCluster.\nThe list of Single Client Access Name (SCAN) configurations of the cloud cluster.') + ocr_file_location: str | None = Field(None, alias='ocrFileLocation', description='Gets the ocr_file_location of this DiscoveredCloudCluster.\nThe location of the Oracle Cluster Registry (OCR) file.') + cluster_instances: list[DiscoveredCloudClusterInstance] | None = Field(None, alias='clusterInstances', description='Gets the cluster_instances of this DiscoveredCloudCluster.\nThe list of cluster instances for the cloud cluster.') + + +class DiscoveredCloudClusterInstance(DbmBaseModel): + """The details of a cloud cluster instance discovered in a cloud DB system discovery run.""" + + component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this DiscoveredCloudDbSystemComponent.\nThe identifier of the discovered DB system component.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DiscoveredCloudDbSystemComponent.\nThe user-friendly name for the discovered DB system component. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this DiscoveredCloudDbSystemComponent.\nThe name of the discovered DB system component.') + component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this DiscoveredCloudDbSystemComponent.\nThe cloud DB system component type.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this DiscoveredCloudDbSystemComponent. The OCID of the existing OCI resource matching the discovered DB system component.') + dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this DiscoveredCloudDbSystemComponent. The OCID of the existing Dbaas OCI resource matching the discovered DB system component.') + is_selected_for_monitoring: bool | None = Field(None, alias='isSelectedForMonitoring', description='Gets the is_selected_for_monitoring of this DiscoveredCloudDbSystemComponent.\nIndicates whether the DB system component should be provisioned as an OCI resource or not.') + status: Literal['NEW', 'EXISTING', 'EXISTING_BASIC', 'EXISTING_PE', 'EXISTING_BASIC_PE', 'MARKED_FOR_UPGRADE', 'MARKED_FOR_MIGRATION', 'MARKED_FOR_UPGRADE_MIGRATION', 'MARKED_FOR_DELETION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DiscoveredCloudDbSystemComponent.\nThe state of the discovered DB system component.\n\nAllowed values for this property are: "NEW", "EXISTING", "EXISTING_BASIC", "EXISTING_PE", "EXISTING_BASIC_PE", "MARKED_FOR_UPGRADE", "MARKED_FOR_MIGRATION", "MARKED_FOR_UPGRADE_MIGRATION", "MARKED_FOR_DELETION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + associated_components: list[AssociatedCloudComponent] | None = Field(None, alias='associatedComponents', description='Gets the associated_components of this DiscoveredCloudDbSystemComponent.\nThe list of associated components.') + host_name: str = Field(..., alias='hostName', description='**[Required]** Gets the host_name of this DiscoveredCloudClusterInstance.\nThe name of the host on which the cluster instance is running.') + cluster_id: str | None = Field(None, alias='clusterId', description='Gets the cluster_id of this DiscoveredCloudClusterInstance.\nThe unique identifier of the Oracle cluster.') + node_role: Literal['HUB', 'LEAF', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='nodeRole', description='Gets the node_role of this DiscoveredCloudClusterInstance.\nThe role of the cluster node.\n\nAllowed values for this property are: "HUB", "LEAF", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + crs_base_directory: str | None = Field(None, alias='crsBaseDirectory', description='Gets the crs_base_directory of this DiscoveredCloudClusterInstance.\nThe Oracle base location of Cluster Ready Services (CRS).') + adr_home_directory: str | None = Field(None, alias='adrHomeDirectory', description='Gets the adr_home_directory of this DiscoveredCloudClusterInstance.\nThe Automatic Diagnostic Repository (ADR) home directory for the cluster instance.') + connector: CloudDbSystemDiscoveryConnector | None = Field(None, description='Gets the connector of this DiscoveredCloudClusterInstance.') + + +class DiscoveredCloudDatabase(DbmBaseModel): + """The details of a cloud Oracle Database discovered in a cloud DB system discovery run.""" + + component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this DiscoveredCloudDbSystemComponent.\nThe identifier of the discovered DB system component.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DiscoveredCloudDbSystemComponent.\nThe user-friendly name for the discovered DB system component. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this DiscoveredCloudDbSystemComponent.\nThe name of the discovered DB system component.') + component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this DiscoveredCloudDbSystemComponent.\nThe cloud DB system component type.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this DiscoveredCloudDbSystemComponent. The OCID of the existing OCI resource matching the discovered DB system component.') + dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this DiscoveredCloudDbSystemComponent. The OCID of the existing Dbaas OCI resource matching the discovered DB system component.') + is_selected_for_monitoring: bool | None = Field(None, alias='isSelectedForMonitoring', description='Gets the is_selected_for_monitoring of this DiscoveredCloudDbSystemComponent.\nIndicates whether the DB system component should be provisioned as an OCI resource or not.') + status: Literal['NEW', 'EXISTING', 'EXISTING_BASIC', 'EXISTING_PE', 'EXISTING_BASIC_PE', 'MARKED_FOR_UPGRADE', 'MARKED_FOR_MIGRATION', 'MARKED_FOR_UPGRADE_MIGRATION', 'MARKED_FOR_DELETION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DiscoveredCloudDbSystemComponent.\nThe state of the discovered DB system component.\n\nAllowed values for this property are: "NEW", "EXISTING", "EXISTING_BASIC", "EXISTING_PE", "EXISTING_BASIC_PE", "MARKED_FOR_UPGRADE", "MARKED_FOR_MIGRATION", "MARKED_FOR_UPGRADE_MIGRATION", "MARKED_FOR_DELETION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + associated_components: list[AssociatedCloudComponent] | None = Field(None, alias='associatedComponents', description='Gets the associated_components of this DiscoveredCloudDbSystemComponent.\nThe list of associated components.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this DiscoveredCloudDatabase. The OCID of the compartment.') + db_unique_name: str = Field(..., alias='dbUniqueName', description='**[Required]** Gets the db_unique_name of this DiscoveredCloudDatabase.\nThe `DB_UNIQUE_NAME` of the cloud database.') + db_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='dbType', description='Gets the db_type of this DiscoveredCloudDatabase.\nThe type of Oracle Database. Indicates whether the database is a Container Database,\nPluggable Database, or a Non-container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + is_cluster: bool | None = Field(None, alias='isCluster', description='Gets the is_cluster of this DiscoveredCloudDatabase.\nIndicates whether the Oracle Database is part of a cluster.') + db_edition: str | None = Field(None, alias='dbEdition', description='Gets the db_edition of this DiscoveredCloudDatabase.\nThe Oracle Database edition.') + db_id: str | None = Field(None, alias='dbId', description='Gets the db_id of this DiscoveredCloudDatabase.\nThe Oracle Database ID.') + db_packs: str | None = Field(None, alias='dbPacks', description='Gets the db_packs of this DiscoveredCloudDatabase.\nThe database packs licensed for the cloud Oracle Database.') + db_role: Literal['LOGICAL_STANDBY', 'PHYSICAL_STANDBY', 'SNAPSHOT_STANDBY', 'PRIMARY', 'FAR_SYNC', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='dbRole', description='Gets the db_role of this DiscoveredCloudDatabase.\nThe role of the Oracle Database in Oracle Data Guard configuration.\n\nAllowed values for this property are: "LOGICAL_STANDBY", "PHYSICAL_STANDBY", "SNAPSHOT_STANDBY", "PRIMARY", "FAR_SYNC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + db_version: str | None = Field(None, alias='dbVersion', description='Gets the db_version of this DiscoveredCloudDatabase.\nThe Oracle Database version.') + pluggable_databases: list[DiscoveredCloudPluggableDatabase] | None = Field(None, alias='pluggableDatabases', description='Gets the pluggable_databases of this DiscoveredCloudDatabase.\nThe list of Pluggable Databases.') + db_instances: list[DiscoveredCloudDbInstance] | None = Field(None, alias='dbInstances', description='Gets the db_instances of this DiscoveredCloudDatabase.\nThe list of database instances.') + can_enable_all_current_pdbs: bool | None = Field(None, alias='canEnableAllCurrentPdbs', description='Gets the can_enable_all_current_pdbs of this DiscoveredCloudDatabase.\nIndicates whether Diagnostics & Management should be enabled for all the current pluggable databases in the container database.') + is_auto_enable_pluggable_database: bool | None = Field(None, alias='isAutoEnablePluggableDatabase', description='Gets the is_auto_enable_pluggable_database of this DiscoveredCloudDatabase.\nIndicates whether Diagnostics & Management should be enabled automatically for all the pluggable databases in the container database.') + connector: CloudDbSystemDiscoveryConnector | None = Field(None, description='Gets the connector of this DiscoveredCloudDatabase.') + + +class DiscoveredCloudDbHome(DbmBaseModel): + """The details of an Oracle DB home discovered in a cloud DB system discovery run.""" + + component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this DiscoveredCloudDbSystemComponent.\nThe identifier of the discovered DB system component.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DiscoveredCloudDbSystemComponent.\nThe user-friendly name for the discovered DB system component. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this DiscoveredCloudDbSystemComponent.\nThe name of the discovered DB system component.') + component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this DiscoveredCloudDbSystemComponent.\nThe cloud DB system component type.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this DiscoveredCloudDbSystemComponent. The OCID of the existing OCI resource matching the discovered DB system component.') + dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this DiscoveredCloudDbSystemComponent. The OCID of the existing Dbaas OCI resource matching the discovered DB system component.') + is_selected_for_monitoring: bool | None = Field(None, alias='isSelectedForMonitoring', description='Gets the is_selected_for_monitoring of this DiscoveredCloudDbSystemComponent.\nIndicates whether the DB system component should be provisioned as an OCI resource or not.') + status: Literal['NEW', 'EXISTING', 'EXISTING_BASIC', 'EXISTING_PE', 'EXISTING_BASIC_PE', 'MARKED_FOR_UPGRADE', 'MARKED_FOR_MIGRATION', 'MARKED_FOR_UPGRADE_MIGRATION', 'MARKED_FOR_DELETION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DiscoveredCloudDbSystemComponent.\nThe state of the discovered DB system component.\n\nAllowed values for this property are: "NEW", "EXISTING", "EXISTING_BASIC", "EXISTING_PE", "EXISTING_BASIC_PE", "MARKED_FOR_UPGRADE", "MARKED_FOR_MIGRATION", "MARKED_FOR_UPGRADE_MIGRATION", "MARKED_FOR_DELETION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + associated_components: list[AssociatedCloudComponent] | None = Field(None, alias='associatedComponents', description='Gets the associated_components of this DiscoveredCloudDbSystemComponent.\nThe list of associated components.') + home_directory: str = Field(..., alias='homeDirectory', description='**[Required]** Gets the home_directory of this DiscoveredCloudDbHome.\nThe location of the DB home.') + + +class DiscoveredCloudDbInstance(DbmBaseModel): + """The details of an Oracle DB instance discovered in a cloud DB system discovery run.""" + + component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this DiscoveredCloudDbSystemComponent.\nThe identifier of the discovered DB system component.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DiscoveredCloudDbSystemComponent.\nThe user-friendly name for the discovered DB system component. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this DiscoveredCloudDbSystemComponent.\nThe name of the discovered DB system component.') + component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this DiscoveredCloudDbSystemComponent.\nThe cloud DB system component type.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this DiscoveredCloudDbSystemComponent. The OCID of the existing OCI resource matching the discovered DB system component.') + dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this DiscoveredCloudDbSystemComponent. The OCID of the existing Dbaas OCI resource matching the discovered DB system component.') + is_selected_for_monitoring: bool | None = Field(None, alias='isSelectedForMonitoring', description='Gets the is_selected_for_monitoring of this DiscoveredCloudDbSystemComponent.\nIndicates whether the DB system component should be provisioned as an OCI resource or not.') + status: Literal['NEW', 'EXISTING', 'EXISTING_BASIC', 'EXISTING_PE', 'EXISTING_BASIC_PE', 'MARKED_FOR_UPGRADE', 'MARKED_FOR_MIGRATION', 'MARKED_FOR_UPGRADE_MIGRATION', 'MARKED_FOR_DELETION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DiscoveredCloudDbSystemComponent.\nThe state of the discovered DB system component.\n\nAllowed values for this property are: "NEW", "EXISTING", "EXISTING_BASIC", "EXISTING_PE", "EXISTING_BASIC_PE", "MARKED_FOR_UPGRADE", "MARKED_FOR_MIGRATION", "MARKED_FOR_UPGRADE_MIGRATION", "MARKED_FOR_DELETION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + associated_components: list[AssociatedCloudComponent] | None = Field(None, alias='associatedComponents', description='Gets the associated_components of this DiscoveredCloudDbSystemComponent.\nThe list of associated components.') + instance_name: str = Field(..., alias='instanceName', description='**[Required]** Gets the instance_name of this DiscoveredCloudDbInstance.\nThe name of the DB instance.') + host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this DiscoveredCloudDbInstance.\nThe name of the host on which the DB instance is running.') + node_name: str | None = Field(None, alias='nodeName', description='Gets the node_name of this DiscoveredCloudDbInstance.\nThe name of the DB instance node.') + oracle_home: str | None = Field(None, alias='oracleHome', description='Gets the oracle_home of this DiscoveredCloudDbInstance.\nThe Oracle home location of the DB instance.') + adr_home_directory: str | None = Field(None, alias='adrHomeDirectory', description='Gets the adr_home_directory of this DiscoveredCloudDbInstance.\nThe Automatic Diagnostic Repository (ADR) home directory for the DB instance.') + + +class DiscoveredCloudDbNode(DbmBaseModel): + """The details of an Oracle DB node discovered in a cloud DB system discovery run.""" + + component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this DiscoveredCloudDbSystemComponent.\nThe identifier of the discovered DB system component.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DiscoveredCloudDbSystemComponent.\nThe user-friendly name for the discovered DB system component. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this DiscoveredCloudDbSystemComponent.\nThe name of the discovered DB system component.') + component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this DiscoveredCloudDbSystemComponent.\nThe cloud DB system component type.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this DiscoveredCloudDbSystemComponent. The OCID of the existing OCI resource matching the discovered DB system component.') + dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this DiscoveredCloudDbSystemComponent. The OCID of the existing Dbaas OCI resource matching the discovered DB system component.') + is_selected_for_monitoring: bool | None = Field(None, alias='isSelectedForMonitoring', description='Gets the is_selected_for_monitoring of this DiscoveredCloudDbSystemComponent.\nIndicates whether the DB system component should be provisioned as an OCI resource or not.') + status: Literal['NEW', 'EXISTING', 'EXISTING_BASIC', 'EXISTING_PE', 'EXISTING_BASIC_PE', 'MARKED_FOR_UPGRADE', 'MARKED_FOR_MIGRATION', 'MARKED_FOR_UPGRADE_MIGRATION', 'MARKED_FOR_DELETION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DiscoveredCloudDbSystemComponent.\nThe state of the discovered DB system component.\n\nAllowed values for this property are: "NEW", "EXISTING", "EXISTING_BASIC", "EXISTING_PE", "EXISTING_BASIC_PE", "MARKED_FOR_UPGRADE", "MARKED_FOR_MIGRATION", "MARKED_FOR_UPGRADE_MIGRATION", "MARKED_FOR_DELETION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + associated_components: list[AssociatedCloudComponent] | None = Field(None, alias='associatedComponents', description='Gets the associated_components of this DiscoveredCloudDbSystemComponent.\nThe list of associated components.') + host_name: str = Field(..., alias='hostName', description='**[Required]** Gets the host_name of this DiscoveredCloudDbNode.\nThe name of the host on which the ASM instance is running.') + cpu_core_count: float | None = Field(None, ge=0, alias='cpuCoreCount', description='Gets the cpu_core_count of this DiscoveredCloudDbNode.\nThe number of CPU cores available on the DB node.') + memory_size_in_gbs: float | None = Field(None, alias='memorySizeInGBs', description='Gets the memory_size_in_gbs of this DiscoveredCloudDbNode.\nThe total memory in gigabytes (GB) on the DB node.') + connector: CloudDbSystemDiscoveryConnector | None = Field(None, description='Gets the connector of this DiscoveredCloudDbNode.') + + +class DiscoveredCloudDbSystemComponent(DbmBaseModel): + """The details of a cloud DB system component.""" + + component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this DiscoveredCloudDbSystemComponent.\nThe identifier of the discovered DB system component.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DiscoveredCloudDbSystemComponent.\nThe user-friendly name for the discovered DB system component. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this DiscoveredCloudDbSystemComponent.\nThe name of the discovered DB system component.') + component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this DiscoveredCloudDbSystemComponent.\nThe cloud DB system component type.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this DiscoveredCloudDbSystemComponent. The OCID of the existing OCI resource matching the discovered DB system component.') + dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this DiscoveredCloudDbSystemComponent. The OCID of the existing Dbaas OCI resource matching the discovered DB system component.') + is_selected_for_monitoring: bool | None = Field(None, alias='isSelectedForMonitoring', description='Gets the is_selected_for_monitoring of this DiscoveredCloudDbSystemComponent.\nIndicates whether the DB system component should be provisioned as an OCI resource or not.') + status: Literal['NEW', 'EXISTING', 'EXISTING_BASIC', 'EXISTING_PE', 'EXISTING_BASIC_PE', 'MARKED_FOR_UPGRADE', 'MARKED_FOR_MIGRATION', 'MARKED_FOR_UPGRADE_MIGRATION', 'MARKED_FOR_DELETION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DiscoveredCloudDbSystemComponent.\nThe state of the discovered DB system component.\n\nAllowed values for this property are: "NEW", "EXISTING", "EXISTING_BASIC", "EXISTING_PE", "EXISTING_BASIC_PE", "MARKED_FOR_UPGRADE", "MARKED_FOR_MIGRATION", "MARKED_FOR_UPGRADE_MIGRATION", "MARKED_FOR_DELETION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + associated_components: list[AssociatedCloudComponent] | None = Field(None, alias='associatedComponents', description='Gets the associated_components of this DiscoveredCloudDbSystemComponent.\nThe list of associated components.') + + +class DiscoveredCloudListener(DbmBaseModel): + """The details of an Oracle listener discovered in a cloud DB system discovery run.""" + + component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this DiscoveredCloudDbSystemComponent.\nThe identifier of the discovered DB system component.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DiscoveredCloudDbSystemComponent.\nThe user-friendly name for the discovered DB system component. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this DiscoveredCloudDbSystemComponent.\nThe name of the discovered DB system component.') + component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this DiscoveredCloudDbSystemComponent.\nThe cloud DB system component type.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this DiscoveredCloudDbSystemComponent. The OCID of the existing OCI resource matching the discovered DB system component.') + dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this DiscoveredCloudDbSystemComponent. The OCID of the existing Dbaas OCI resource matching the discovered DB system component.') + is_selected_for_monitoring: bool | None = Field(None, alias='isSelectedForMonitoring', description='Gets the is_selected_for_monitoring of this DiscoveredCloudDbSystemComponent.\nIndicates whether the DB system component should be provisioned as an OCI resource or not.') + status: Literal['NEW', 'EXISTING', 'EXISTING_BASIC', 'EXISTING_PE', 'EXISTING_BASIC_PE', 'MARKED_FOR_UPGRADE', 'MARKED_FOR_MIGRATION', 'MARKED_FOR_UPGRADE_MIGRATION', 'MARKED_FOR_DELETION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DiscoveredCloudDbSystemComponent.\nThe state of the discovered DB system component.\n\nAllowed values for this property are: "NEW", "EXISTING", "EXISTING_BASIC", "EXISTING_PE", "EXISTING_BASIC_PE", "MARKED_FOR_UPGRADE", "MARKED_FOR_MIGRATION", "MARKED_FOR_UPGRADE_MIGRATION", "MARKED_FOR_DELETION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + associated_components: list[AssociatedCloudComponent] | None = Field(None, alias='associatedComponents', description='Gets the associated_components of this DiscoveredCloudDbSystemComponent.\nThe list of associated components.') + db_node_name: str | None = Field(None, alias='dbNodeName', description='Gets the db_node_name of this DiscoveredCloudListener.\nThe name of the DB node.') + oracle_home: str | None = Field(None, alias='oracleHome', description='Gets the oracle_home of this DiscoveredCloudListener.\nThe Oracle home location of the listener.') + listener_alias: str | None = Field(None, alias='listenerAlias', description='Gets the listener_alias of this DiscoveredCloudListener.\nThe listener alias.') + adr_home_directory: str | None = Field(None, alias='adrHomeDirectory', description='Gets the adr_home_directory of this DiscoveredCloudListener.\nThe directory that stores tracing and logging incidents when Automatic Diagnostic Repository (ADR) is enabled.') + log_directory: str | None = Field(None, alias='logDirectory', description='Gets the log_directory of this DiscoveredCloudListener.\nThe destination directory of the listener log file.') + trace_directory: str | None = Field(None, alias='traceDirectory', description='Gets the trace_directory of this DiscoveredCloudListener.\nThe destination directory of the listener trace file.') + version: str | None = Field(None, description='Gets the version of this DiscoveredCloudListener.\nThe listener version.') + listener_type: Literal['ASM', 'LOCAL', 'SCAN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='listenerType', description='Gets the listener_type of this DiscoveredCloudListener.\nThe type of listener.\n\nAllowed values for this property are: "ASM", "LOCAL", "SCAN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this DiscoveredCloudListener.\nThe name of the host on which the cloud listener is running.') + endpoints: list[CloudListenerEndpoint] | None = Field(None, description='Gets the endpoints of this DiscoveredCloudListener.\nThe list of protocol addresses the listener is configured to listen on.') + connector: CloudDbSystemDiscoveryConnector | None = Field(None, description='Gets the connector of this DiscoveredCloudListener.') + + +class DiscoveredCloudPluggableDatabase(DbmBaseModel): + """The details of a cloud Pluggable Database (PDB) discovered in a cloud DB system discovery run.""" + + component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this DiscoveredCloudDbSystemComponent.\nThe identifier of the discovered DB system component.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DiscoveredCloudDbSystemComponent.\nThe user-friendly name for the discovered DB system component. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this DiscoveredCloudDbSystemComponent.\nThe name of the discovered DB system component.') + component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this DiscoveredCloudDbSystemComponent.\nThe cloud DB system component type.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this DiscoveredCloudDbSystemComponent. The OCID of the existing OCI resource matching the discovered DB system component.') + dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this DiscoveredCloudDbSystemComponent. The OCID of the existing Dbaas OCI resource matching the discovered DB system component.') + is_selected_for_monitoring: bool | None = Field(None, alias='isSelectedForMonitoring', description='Gets the is_selected_for_monitoring of this DiscoveredCloudDbSystemComponent.\nIndicates whether the DB system component should be provisioned as an OCI resource or not.') + status: Literal['NEW', 'EXISTING', 'EXISTING_BASIC', 'EXISTING_PE', 'EXISTING_BASIC_PE', 'MARKED_FOR_UPGRADE', 'MARKED_FOR_MIGRATION', 'MARKED_FOR_UPGRADE_MIGRATION', 'MARKED_FOR_DELETION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DiscoveredCloudDbSystemComponent.\nThe state of the discovered DB system component.\n\nAllowed values for this property are: "NEW", "EXISTING", "EXISTING_BASIC", "EXISTING_PE", "EXISTING_BASIC_PE", "MARKED_FOR_UPGRADE", "MARKED_FOR_MIGRATION", "MARKED_FOR_UPGRADE_MIGRATION", "MARKED_FOR_DELETION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + associated_components: list[AssociatedCloudComponent] | None = Field(None, alias='associatedComponents', description='Gets the associated_components of this DiscoveredCloudDbSystemComponent.\nThe list of associated components.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this DiscoveredCloudPluggableDatabase. The OCID of the compartment.') + container_database_id: str = Field(..., alias='containerDatabaseId', description='**[Required]** Gets the container_database_id of this DiscoveredCloudPluggableDatabase.\nThe unique identifier of the parent Container Database (CDB).') + guid: str | None = Field(None, description='Gets the guid of this DiscoveredCloudPluggableDatabase.\nThe unique identifier of the PDB.') + connector: CloudDbSystemDiscoveryConnector | None = Field(None, description='Gets the connector of this DiscoveredCloudPluggableDatabase.') + + +class DiscoveredExternalAsm(DbmBaseModel): + """The details of an ASM discovered in an external DB system discovery run.""" + + component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this DiscoveredExternalDbSystemComponent.\nThe identifier of the discovered DB system component.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DiscoveredExternalDbSystemComponent.\nThe user-friendly name for the discovered DB system component. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this DiscoveredExternalDbSystemComponent.\nThe name of the discovered DB system component.') + component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this DiscoveredExternalDbSystemComponent.\nThe external DB system component type.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this DiscoveredExternalDbSystemComponent. The OCID of the existing OCI resource matching the discovered DB system component.') + is_selected_for_monitoring: bool | None = Field(None, alias='isSelectedForMonitoring', description='Gets the is_selected_for_monitoring of this DiscoveredExternalDbSystemComponent.\nIndicates whether the DB system component should be provisioned as an OCI resource or not.') + status: Literal['NEW', 'EXISTING', 'MARKED_FOR_DELETION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DiscoveredExternalDbSystemComponent.\nThe state of the discovered DB system component.\n\nAllowed values for this property are: "NEW", "EXISTING", "MARKED_FOR_DELETION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + associated_components: list[AssociatedComponent] | None = Field(None, alias='associatedComponents', description='Gets the associated_components of this DiscoveredExternalDbSystemComponent.\nThe list of associated components.') + grid_home: str | None = Field(None, alias='gridHome', description='Gets the grid_home of this DiscoveredExternalAsm.\nThe directory in which ASM is installed. This is the same directory in which Oracle Grid Infrastructure is installed.') + is_flex_enabled: bool | None = Field(None, alias='isFlexEnabled', description='Gets the is_flex_enabled of this DiscoveredExternalAsm.\nIndicates whether Oracle Flex ASM is enabled or not.') + version: str | None = Field(None, description='Gets the version of this DiscoveredExternalAsm.\nThe ASM version.') + asm_instances: list[DiscoveredExternalAsmInstance] | None = Field(None, alias='asmInstances', description='Gets the asm_instances of this DiscoveredExternalAsm.') + connector: ExternalDbSystemDiscoveryConnector | None = Field(None, description='Gets the connector of this DiscoveredExternalAsm.') + + +class DiscoveredExternalAsmInstance(DbmBaseModel): + """The details of an ASM instance discovered in an external DB system discovery run.""" + + component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this DiscoveredExternalDbSystemComponent.\nThe identifier of the discovered DB system component.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DiscoveredExternalDbSystemComponent.\nThe user-friendly name for the discovered DB system component. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this DiscoveredExternalDbSystemComponent.\nThe name of the discovered DB system component.') + component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this DiscoveredExternalDbSystemComponent.\nThe external DB system component type.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this DiscoveredExternalDbSystemComponent. The OCID of the existing OCI resource matching the discovered DB system component.') + is_selected_for_monitoring: bool | None = Field(None, alias='isSelectedForMonitoring', description='Gets the is_selected_for_monitoring of this DiscoveredExternalDbSystemComponent.\nIndicates whether the DB system component should be provisioned as an OCI resource or not.') + status: Literal['NEW', 'EXISTING', 'MARKED_FOR_DELETION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DiscoveredExternalDbSystemComponent.\nThe state of the discovered DB system component.\n\nAllowed values for this property are: "NEW", "EXISTING", "MARKED_FOR_DELETION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + associated_components: list[AssociatedComponent] | None = Field(None, alias='associatedComponents', description='Gets the associated_components of this DiscoveredExternalDbSystemComponent.\nThe list of associated components.') + host_name: str = Field(..., alias='hostName', description='**[Required]** Gets the host_name of this DiscoveredExternalAsmInstance.\nThe name of the host on which the ASM instance is running.') + instance_name: str | None = Field(None, alias='instanceName', description='Gets the instance_name of this DiscoveredExternalAsmInstance.\nThe name of the ASM instance.') + adr_home_directory: str | None = Field(None, alias='adrHomeDirectory', description='Gets the adr_home_directory of this DiscoveredExternalAsmInstance.\nThe Automatic Diagnostic Repository (ADR) home directory for the ASM instance.') + + +class DiscoveredExternalCluster(DbmBaseModel): + """The details of an external cluster discovered in an external DB system discovery run.""" + + component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this DiscoveredExternalDbSystemComponent.\nThe identifier of the discovered DB system component.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DiscoveredExternalDbSystemComponent.\nThe user-friendly name for the discovered DB system component. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this DiscoveredExternalDbSystemComponent.\nThe name of the discovered DB system component.') + component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this DiscoveredExternalDbSystemComponent.\nThe external DB system component type.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this DiscoveredExternalDbSystemComponent. The OCID of the existing OCI resource matching the discovered DB system component.') + is_selected_for_monitoring: bool | None = Field(None, alias='isSelectedForMonitoring', description='Gets the is_selected_for_monitoring of this DiscoveredExternalDbSystemComponent.\nIndicates whether the DB system component should be provisioned as an OCI resource or not.') + status: Literal['NEW', 'EXISTING', 'MARKED_FOR_DELETION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DiscoveredExternalDbSystemComponent.\nThe state of the discovered DB system component.\n\nAllowed values for this property are: "NEW", "EXISTING", "MARKED_FOR_DELETION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + associated_components: list[AssociatedComponent] | None = Field(None, alias='associatedComponents', description='Gets the associated_components of this DiscoveredExternalDbSystemComponent.\nThe list of associated components.') + grid_home: str | None = Field(None, alias='gridHome', description='Gets the grid_home of this DiscoveredExternalCluster.\nThe directory in which Oracle Grid Infrastructure is installed.') + version: str | None = Field(None, description='Gets the version of this DiscoveredExternalCluster.\nThe version of Oracle Clusterware running in the cluster.') + is_flex_cluster: bool | None = Field(None, alias='isFlexCluster', description='Gets the is_flex_cluster of this DiscoveredExternalCluster.\nIndicates whether the cluster is an Oracle Flex Cluster or not.') + network_configurations: list[ExternalClusterNetworkConfiguration] | None = Field(None, alias='networkConfigurations', description='Gets the network_configurations of this DiscoveredExternalCluster.\nThe list of network address configurations of the external cluster.') + vip_configurations: list[ExternalClusterVipConfiguration] | None = Field(None, alias='vipConfigurations', description='Gets the vip_configurations of this DiscoveredExternalCluster.\nThe list of Virtual IP (VIP) configurations of the external cluster.') + scan_configurations: list[ExternalClusterScanListenerConfiguration] | None = Field(None, alias='scanConfigurations', description='Gets the scan_configurations of this DiscoveredExternalCluster.\nThe list of Single Client Access Name (SCAN) configurations of the external cluster.') + ocr_file_location: str | None = Field(None, alias='ocrFileLocation', description='Gets the ocr_file_location of this DiscoveredExternalCluster.\nThe location of the Oracle Cluster Registry (OCR) file.') + cluster_instances: list[DiscoveredExternalClusterInstance] | None = Field(None, alias='clusterInstances', description='Gets the cluster_instances of this DiscoveredExternalCluster.') + + +class DiscoveredExternalClusterInstance(DbmBaseModel): + """The details of an external cluster instance discovered in an external DB system discovery run.""" + + component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this DiscoveredExternalDbSystemComponent.\nThe identifier of the discovered DB system component.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DiscoveredExternalDbSystemComponent.\nThe user-friendly name for the discovered DB system component. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this DiscoveredExternalDbSystemComponent.\nThe name of the discovered DB system component.') + component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this DiscoveredExternalDbSystemComponent.\nThe external DB system component type.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this DiscoveredExternalDbSystemComponent. The OCID of the existing OCI resource matching the discovered DB system component.') + is_selected_for_monitoring: bool | None = Field(None, alias='isSelectedForMonitoring', description='Gets the is_selected_for_monitoring of this DiscoveredExternalDbSystemComponent.\nIndicates whether the DB system component should be provisioned as an OCI resource or not.') + status: Literal['NEW', 'EXISTING', 'MARKED_FOR_DELETION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DiscoveredExternalDbSystemComponent.\nThe state of the discovered DB system component.\n\nAllowed values for this property are: "NEW", "EXISTING", "MARKED_FOR_DELETION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + associated_components: list[AssociatedComponent] | None = Field(None, alias='associatedComponents', description='Gets the associated_components of this DiscoveredExternalDbSystemComponent.\nThe list of associated components.') + host_name: str = Field(..., alias='hostName', description='**[Required]** Gets the host_name of this DiscoveredExternalClusterInstance.\nThe name of the host on which the cluster instance is running.') + cluster_id: str | None = Field(None, alias='clusterId', description='Gets the cluster_id of this DiscoveredExternalClusterInstance.\nThe unique identifier of the Oracle cluster.') + node_role: Literal['HUB', 'LEAF', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='nodeRole', description='Gets the node_role of this DiscoveredExternalClusterInstance.\nThe role of the cluster node.\n\nAllowed values for this property are: "HUB", "LEAF", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + crs_base_directory: str | None = Field(None, alias='crsBaseDirectory', description='Gets the crs_base_directory of this DiscoveredExternalClusterInstance.\nThe Oracle base location of Cluster Ready Services (CRS).') + adr_home_directory: str | None = Field(None, alias='adrHomeDirectory', description='Gets the adr_home_directory of this DiscoveredExternalClusterInstance.\nThe Automatic Diagnostic Repository (ADR) home directory for the cluster instance.') + connector: ExternalDbSystemDiscoveryConnector | None = Field(None, description='Gets the connector of this DiscoveredExternalClusterInstance.') + + +class DiscoveredExternalDatabase(DbmBaseModel): + """The details of an external Oracle Database discovered in an external DB system discovery run.""" + + component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this DiscoveredExternalDbSystemComponent.\nThe identifier of the discovered DB system component.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DiscoveredExternalDbSystemComponent.\nThe user-friendly name for the discovered DB system component. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this DiscoveredExternalDbSystemComponent.\nThe name of the discovered DB system component.') + component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this DiscoveredExternalDbSystemComponent.\nThe external DB system component type.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this DiscoveredExternalDbSystemComponent. The OCID of the existing OCI resource matching the discovered DB system component.') + is_selected_for_monitoring: bool | None = Field(None, alias='isSelectedForMonitoring', description='Gets the is_selected_for_monitoring of this DiscoveredExternalDbSystemComponent.\nIndicates whether the DB system component should be provisioned as an OCI resource or not.') + status: Literal['NEW', 'EXISTING', 'MARKED_FOR_DELETION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DiscoveredExternalDbSystemComponent.\nThe state of the discovered DB system component.\n\nAllowed values for this property are: "NEW", "EXISTING", "MARKED_FOR_DELETION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + associated_components: list[AssociatedComponent] | None = Field(None, alias='associatedComponents', description='Gets the associated_components of this DiscoveredExternalDbSystemComponent.\nThe list of associated components.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this DiscoveredExternalDatabase. The OCID of the compartment.') + db_unique_name: str = Field(..., alias='dbUniqueName', description='**[Required]** Gets the db_unique_name of this DiscoveredExternalDatabase.\nThe `DB_UNIQUE_NAME` of the external database.') + db_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='dbType', description='Gets the db_type of this DiscoveredExternalDatabase.\nThe type of Oracle Database. Indicates whether the database is a Container Database,\nPluggable Database, or a Non-container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + is_cluster: bool | None = Field(None, alias='isCluster', description='Gets the is_cluster of this DiscoveredExternalDatabase.\nIndicates whether the Oracle Database is part of a cluster.') + db_edition: str | None = Field(None, alias='dbEdition', description='Gets the db_edition of this DiscoveredExternalDatabase.\nThe Oracle Database edition.') + db_id: str | None = Field(None, alias='dbId', description='Gets the db_id of this DiscoveredExternalDatabase.\nThe Oracle Database ID.') + db_packs: str | None = Field(None, alias='dbPacks', description='Gets the db_packs of this DiscoveredExternalDatabase.\nThe database packs licensed for the external Oracle Database.') + db_role: Literal['LOGICAL_STANDBY', 'PHYSICAL_STANDBY', 'SNAPSHOT_STANDBY', 'PRIMARY', 'FAR_SYNC', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='dbRole', description='Gets the db_role of this DiscoveredExternalDatabase.\nThe role of the Oracle Database in Oracle Data Guard configuration.\n\nAllowed values for this property are: "LOGICAL_STANDBY", "PHYSICAL_STANDBY", "SNAPSHOT_STANDBY", "PRIMARY", "FAR_SYNC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + db_version: str | None = Field(None, alias='dbVersion', description='Gets the db_version of this DiscoveredExternalDatabase.\nThe Oracle Database version.') + pluggable_databases: list[DiscoveredExternalPluggableDatabase] | None = Field(None, alias='pluggableDatabases', description='Gets the pluggable_databases of this DiscoveredExternalDatabase.\nThe list of Pluggable Databases.') + db_instances: list[DiscoveredExternalDbInstance] | None = Field(None, alias='dbInstances', description='Gets the db_instances of this DiscoveredExternalDatabase.\nThe list of database instances.') + connector: ExternalDbSystemDiscoveryConnector | None = Field(None, description='Gets the connector of this DiscoveredExternalDatabase.') + can_enable_all_current_pdbs: bool | None = Field(None, alias='canEnableAllCurrentPdbs', description='Gets the can_enable_all_current_pdbs of this DiscoveredExternalDatabase.\nIndicates whether Diagnostics & Management should be enabled for all the current pluggable databases in the container database.') + is_auto_enable_pluggable_database: bool | None = Field(None, alias='isAutoEnablePluggableDatabase', description='Gets the is_auto_enable_pluggable_database of this DiscoveredExternalDatabase.\nIndicates whether Diagnostics & Management should be enabled automatically for all the pluggable databases in the container database.') + + +class DiscoveredExternalDbHome(DbmBaseModel): + """The details of an Oracle DB home discovered in an external DB system discovery run.""" + + component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this DiscoveredExternalDbSystemComponent.\nThe identifier of the discovered DB system component.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DiscoveredExternalDbSystemComponent.\nThe user-friendly name for the discovered DB system component. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this DiscoveredExternalDbSystemComponent.\nThe name of the discovered DB system component.') + component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this DiscoveredExternalDbSystemComponent.\nThe external DB system component type.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this DiscoveredExternalDbSystemComponent. The OCID of the existing OCI resource matching the discovered DB system component.') + is_selected_for_monitoring: bool | None = Field(None, alias='isSelectedForMonitoring', description='Gets the is_selected_for_monitoring of this DiscoveredExternalDbSystemComponent.\nIndicates whether the DB system component should be provisioned as an OCI resource or not.') + status: Literal['NEW', 'EXISTING', 'MARKED_FOR_DELETION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DiscoveredExternalDbSystemComponent.\nThe state of the discovered DB system component.\n\nAllowed values for this property are: "NEW", "EXISTING", "MARKED_FOR_DELETION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + associated_components: list[AssociatedComponent] | None = Field(None, alias='associatedComponents', description='Gets the associated_components of this DiscoveredExternalDbSystemComponent.\nThe list of associated components.') + home_directory: str = Field(..., alias='homeDirectory', description='**[Required]** Gets the home_directory of this DiscoveredExternalDbHome.\nThe location of the DB home.') + + +class DiscoveredExternalDbInstance(DbmBaseModel): + """The details of an Oracle DB instance discovered in an external DB system discovery run.""" + + component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this DiscoveredExternalDbSystemComponent.\nThe identifier of the discovered DB system component.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DiscoveredExternalDbSystemComponent.\nThe user-friendly name for the discovered DB system component. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this DiscoveredExternalDbSystemComponent.\nThe name of the discovered DB system component.') + component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this DiscoveredExternalDbSystemComponent.\nThe external DB system component type.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this DiscoveredExternalDbSystemComponent. The OCID of the existing OCI resource matching the discovered DB system component.') + is_selected_for_monitoring: bool | None = Field(None, alias='isSelectedForMonitoring', description='Gets the is_selected_for_monitoring of this DiscoveredExternalDbSystemComponent.\nIndicates whether the DB system component should be provisioned as an OCI resource or not.') + status: Literal['NEW', 'EXISTING', 'MARKED_FOR_DELETION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DiscoveredExternalDbSystemComponent.\nThe state of the discovered DB system component.\n\nAllowed values for this property are: "NEW", "EXISTING", "MARKED_FOR_DELETION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + associated_components: list[AssociatedComponent] | None = Field(None, alias='associatedComponents', description='Gets the associated_components of this DiscoveredExternalDbSystemComponent.\nThe list of associated components.') + instance_name: str = Field(..., alias='instanceName', description='**[Required]** Gets the instance_name of this DiscoveredExternalDbInstance.\nThe name of the DB instance.') + host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this DiscoveredExternalDbInstance.\nThe name of the host on which the DB instance is running.') + node_name: str | None = Field(None, alias='nodeName', description='Gets the node_name of this DiscoveredExternalDbInstance.\nThe name of the DB instance node.') + oracle_home: str | None = Field(None, alias='oracleHome', description='Gets the oracle_home of this DiscoveredExternalDbInstance.\nThe Oracle home location of the DB instance.') + adr_home_directory: str | None = Field(None, alias='adrHomeDirectory', description='Gets the adr_home_directory of this DiscoveredExternalDbInstance.\nThe Automatic Diagnostic Repository (ADR) home directory for the DB instance.') + + +class DiscoveredExternalDbNode(DbmBaseModel): + """The details of an Oracle DB node discovered in an external DB system discovery run.""" + + component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this DiscoveredExternalDbSystemComponent.\nThe identifier of the discovered DB system component.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DiscoveredExternalDbSystemComponent.\nThe user-friendly name for the discovered DB system component. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this DiscoveredExternalDbSystemComponent.\nThe name of the discovered DB system component.') + component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this DiscoveredExternalDbSystemComponent.\nThe external DB system component type.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this DiscoveredExternalDbSystemComponent. The OCID of the existing OCI resource matching the discovered DB system component.') + is_selected_for_monitoring: bool | None = Field(None, alias='isSelectedForMonitoring', description='Gets the is_selected_for_monitoring of this DiscoveredExternalDbSystemComponent.\nIndicates whether the DB system component should be provisioned as an OCI resource or not.') + status: Literal['NEW', 'EXISTING', 'MARKED_FOR_DELETION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DiscoveredExternalDbSystemComponent.\nThe state of the discovered DB system component.\n\nAllowed values for this property are: "NEW", "EXISTING", "MARKED_FOR_DELETION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + associated_components: list[AssociatedComponent] | None = Field(None, alias='associatedComponents', description='Gets the associated_components of this DiscoveredExternalDbSystemComponent.\nThe list of associated components.') + host_name: str = Field(..., alias='hostName', description='**[Required]** Gets the host_name of this DiscoveredExternalDbNode.\nThe name of the host on which the ASM instance is running.') + cpu_core_count: float | None = Field(None, ge=0, alias='cpuCoreCount', description='Gets the cpu_core_count of this DiscoveredExternalDbNode.\nThe number of CPU cores available on the DB node.') + memory_size_in_gbs: float | None = Field(None, alias='memorySizeInGBs', description='Gets the memory_size_in_gbs of this DiscoveredExternalDbNode.\nThe total memory in gigabytes (GB) on the DB node.') + connector: ExternalDbSystemDiscoveryConnector | None = Field(None, description='Gets the connector of this DiscoveredExternalDbNode.') + + +class DiscoveredExternalDbSystemComponent(DbmBaseModel): + """The details of an external DB system component.""" + + component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this DiscoveredExternalDbSystemComponent.\nThe identifier of the discovered DB system component.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DiscoveredExternalDbSystemComponent.\nThe user-friendly name for the discovered DB system component. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this DiscoveredExternalDbSystemComponent.\nThe name of the discovered DB system component.') + component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this DiscoveredExternalDbSystemComponent.\nThe external DB system component type.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this DiscoveredExternalDbSystemComponent. The OCID of the existing OCI resource matching the discovered DB system component.') + is_selected_for_monitoring: bool | None = Field(None, alias='isSelectedForMonitoring', description='Gets the is_selected_for_monitoring of this DiscoveredExternalDbSystemComponent.\nIndicates whether the DB system component should be provisioned as an OCI resource or not.') + status: Literal['NEW', 'EXISTING', 'MARKED_FOR_DELETION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DiscoveredExternalDbSystemComponent.\nThe state of the discovered DB system component.\n\nAllowed values for this property are: "NEW", "EXISTING", "MARKED_FOR_DELETION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + associated_components: list[AssociatedComponent] | None = Field(None, alias='associatedComponents', description='Gets the associated_components of this DiscoveredExternalDbSystemComponent.\nThe list of associated components.') + + +class DiscoveredExternalListener(DbmBaseModel): + """The details of an Oracle listener discovered in an external DB system discovery run.""" + + component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this DiscoveredExternalDbSystemComponent.\nThe identifier of the discovered DB system component.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DiscoveredExternalDbSystemComponent.\nThe user-friendly name for the discovered DB system component. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this DiscoveredExternalDbSystemComponent.\nThe name of the discovered DB system component.') + component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this DiscoveredExternalDbSystemComponent.\nThe external DB system component type.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this DiscoveredExternalDbSystemComponent. The OCID of the existing OCI resource matching the discovered DB system component.') + is_selected_for_monitoring: bool | None = Field(None, alias='isSelectedForMonitoring', description='Gets the is_selected_for_monitoring of this DiscoveredExternalDbSystemComponent.\nIndicates whether the DB system component should be provisioned as an OCI resource or not.') + status: Literal['NEW', 'EXISTING', 'MARKED_FOR_DELETION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DiscoveredExternalDbSystemComponent.\nThe state of the discovered DB system component.\n\nAllowed values for this property are: "NEW", "EXISTING", "MARKED_FOR_DELETION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + associated_components: list[AssociatedComponent] | None = Field(None, alias='associatedComponents', description='Gets the associated_components of this DiscoveredExternalDbSystemComponent.\nThe list of associated components.') + db_node_name: str | None = Field(None, alias='dbNodeName', description='Gets the db_node_name of this DiscoveredExternalListener.\nThe name of the DB node.') + oracle_home: str | None = Field(None, alias='oracleHome', description='Gets the oracle_home of this DiscoveredExternalListener.\nThe Oracle home location of the listener.') + listener_alias: str | None = Field(None, alias='listenerAlias', description='Gets the listener_alias of this DiscoveredExternalListener.\nThe listener alias.') + adr_home_directory: str | None = Field(None, alias='adrHomeDirectory', description='Gets the adr_home_directory of this DiscoveredExternalListener.\nThe directory that stores tracing and logging incidents when Automatic Diagnostic Repository (ADR) is enabled.') + log_directory: str | None = Field(None, alias='logDirectory', description='Gets the log_directory of this DiscoveredExternalListener.\nThe destination directory of the listener log file.') + trace_directory: str | None = Field(None, alias='traceDirectory', description='Gets the trace_directory of this DiscoveredExternalListener.\nThe destination directory of the listener trace file.') + version: str | None = Field(None, description='Gets the version of this DiscoveredExternalListener.\nThe listener version.') + listener_type: Literal['ASM', 'LOCAL', 'SCAN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='listenerType', description='Gets the listener_type of this DiscoveredExternalListener.\nThe type of listener.\n\nAllowed values for this property are: "ASM", "LOCAL", "SCAN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this DiscoveredExternalListener.\nThe name of the host on which the external listener is running.') + endpoints: list[ExternalListenerEndpoint] | None = Field(None, description='Gets the endpoints of this DiscoveredExternalListener.\nThe list of protocol addresses the listener is configured to listen on.') + connector: ExternalDbSystemDiscoveryConnector | None = Field(None, description='Gets the connector of this DiscoveredExternalListener.') + + +class DiscoveredExternalPluggableDatabase(DbmBaseModel): + """The details of an external Pluggable Database (PDB) discovered in an external DB system discovery run.""" + + component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this DiscoveredExternalDbSystemComponent.\nThe identifier of the discovered DB system component.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DiscoveredExternalDbSystemComponent.\nThe user-friendly name for the discovered DB system component. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this DiscoveredExternalDbSystemComponent.\nThe name of the discovered DB system component.') + component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this DiscoveredExternalDbSystemComponent.\nThe external DB system component type.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this DiscoveredExternalDbSystemComponent. The OCID of the existing OCI resource matching the discovered DB system component.') + is_selected_for_monitoring: bool | None = Field(None, alias='isSelectedForMonitoring', description='Gets the is_selected_for_monitoring of this DiscoveredExternalDbSystemComponent.\nIndicates whether the DB system component should be provisioned as an OCI resource or not.') + status: Literal['NEW', 'EXISTING', 'MARKED_FOR_DELETION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DiscoveredExternalDbSystemComponent.\nThe state of the discovered DB system component.\n\nAllowed values for this property are: "NEW", "EXISTING", "MARKED_FOR_DELETION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + associated_components: list[AssociatedComponent] | None = Field(None, alias='associatedComponents', description='Gets the associated_components of this DiscoveredExternalDbSystemComponent.\nThe list of associated components.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this DiscoveredExternalPluggableDatabase. The OCID of the compartment.') + container_database_id: str = Field(..., alias='containerDatabaseId', description='**[Required]** Gets the container_database_id of this DiscoveredExternalPluggableDatabase.\nThe unique identifier of the parent Container Database (CDB).') + guid: str | None = Field(None, description='Gets the guid of this DiscoveredExternalPluggableDatabase.\nThe unique identifier of the PDB.') + connector: ExternalDbSystemDiscoveryConnector | None = Field(None, description='Gets the connector of this DiscoveredExternalPluggableDatabase.') + + +class DropSqlPlanBaselinesDetails(DbmRequestModel): + """The details required to drop SQL plan baselines. +It takes either credentials or databaseCredential. It's recommended to provide databaseCredential""" + + sql_handle: str | None = Field(None, alias='sqlHandle', description='Gets the sql_handle of this DropSqlPlanBaselinesDetails.\nThe SQL statement handle. It identifies plans associated with a SQL statement\nthat are to be dropped. If `null` then `planName` must be specified.') + plan_name: str | None = Field(None, alias='planName', description="Gets the plan_name of this DropSqlPlanBaselinesDetails.\nThe plan name. It identifies a specific plan. If `null' then all plans\nassociated with the SQL statement identified by `sqlHandle' are dropped.") + credentials: ManagedDatabaseCredential | None = Field(None, description='Gets the credentials of this DropSqlPlanBaselinesDetails.') + database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this DropSqlPlanBaselinesDetails.') + + +class DropSqlTuningSetDetails(DbmRequestModel): + """The details required to drop a Sql tuning set. +It takes either credentialDetails or databaseCredential. It's recommended to provide databaseCredential""" + + credential_details: SqlTuningSetAdminCredentialDetails | None = Field(None, alias='credentialDetails', description='Gets the credential_details of this DropSqlTuningSetDetails.') + database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this DropSqlTuningSetDetails.') + name: str = Field(..., description='**[Required]** Gets the name of this DropSqlTuningSetDetails.\nA unique Sql tuning set name.') + owner: str | None = Field(None, description='Gets the owner of this DropSqlTuningSetDetails.\nOwner of the Sql tuning set.') + show_sql_only: int | None = Field(None, alias='showSqlOnly', description='Gets the show_sql_only of this DropSqlTuningSetDetails.\nFlag to indicate whether to drop the Sql tuning set or just display the plsql used to drop Sql tuning set.') + + +class DropSqlTuningTaskDetails(DbmRequestModel): + """The request to drop a SQL tuning task. +It takes either credentialDetails or databaseCredential. It's recommended to provide databaseCredential""" + + task_id: int = Field(..., alias='taskId', description='**[Required]** Gets the task_id of this DropSqlTuningTaskDetails. Identifier of the SQL tuning task being dropped. This value is not an OCID; use the identifier returned by SQL tuning task list, start, or clone operations.') + credential_details: SqlTuningTaskCredentialDetails | None = Field(None, alias='credentialDetails', description='Gets the credential_details of this DropSqlTuningTaskDetails.') + database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this DropSqlTuningTaskDetails.') + + +class DropSqlsInSqlTuningSetDetails(DbmRequestModel): + """Drops the selected list of Sql statements from the current Sql tuning set. +The basicFilter parameter specifies the Sql predicate to filter the Sql from the Sql tuning set defined on attributes of the SQLSET_ROW. +If a valid filter criteria is specified, then, Sql statements matching this filter criteria will be deleted from the current Sql tuning set. +If filter criteria is not specified, then, all Sql statements will be deleted from the current Sql tuning set. +It takes either credentialDetails or databaseCredential. It's recommended to provide databaseCredential""" + + credential_details: SqlTuningSetAdminCredentialDetails | None = Field(None, alias='credentialDetails', description='Gets the credential_details of this DropSqlsInSqlTuningSetDetails.') + database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this DropSqlsInSqlTuningSetDetails.') + show_sql_only: int | None = Field(None, alias='showSqlOnly', description='Gets the show_sql_only of this DropSqlsInSqlTuningSetDetails.\nFlag to indicate whether to drop the Sql statements or just display the plsql used to drop the Sql statements.') + owner: str | None = Field(None, description='Gets the owner of this DropSqlsInSqlTuningSetDetails.\nThe owner of the Sql tuning set.') + name: str = Field(..., description='**[Required]** Gets the name of this DropSqlsInSqlTuningSetDetails.\nThe name of the Sql tuning set.') + basic_filter: str | None = Field(None, alias='basicFilter', description='Gets the basic_filter of this DropSqlsInSqlTuningSetDetails. Specifies the Sql predicate to filter the Sql from the Sql tuning set defined on attributes of the SQLSET_ROW. User could use any combination of the following columns with appropriate values as Sql predicate Refer to the documentation.') + + +class DropTablespaceDetails(DbmRequestModel): + """The details required to drop a tablespace. +It takes either credentialDetails or databaseCredential. It's recommended to provide databaseCredential""" + + credential_details: TablespaceAdminCredentialDetails | None = Field(None, alias='credentialDetails', description='Gets the credential_details of this DropTablespaceDetails.') + database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this DropTablespaceDetails.') + is_including_contents: bool | None = Field(None, alias='isIncludingContents', description='Gets the is_including_contents of this DropTablespaceDetails.\nSpecifies whether all the contents of the tablespace being dropped should be dropped.') + is_dropping_data_files: bool | None = Field(None, alias='isDroppingDataFiles', description='Gets the is_dropping_data_files of this DropTablespaceDetails.\nSpecifies whether all the associated data files of the tablespace being dropped should be dropped.') + is_cascade_constraints: bool | None = Field(None, alias='isCascadeConstraints', description='Gets the is_cascade_constraints of this DropTablespaceDetails.\nSpecifies whether all the constraints on the tablespace being dropped should be dropped.') + + +class EnableAutomaticInitialPlanCaptureDetails(DbmRequestModel): + """The details required to enable automatic initial plan capture. +It takes either credentials or databaseCredential. It's recommended to provide databaseCredential""" + + credentials: ManagedDatabaseCredential | None = Field(None, description='Gets the credentials of this EnableAutomaticInitialPlanCaptureDetails.') + database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this EnableAutomaticInitialPlanCaptureDetails.') + + +class EnableAutomaticSpmEvolveAdvisorTaskDetails(DbmRequestModel): + """The details required to enable Automatic SPM Evolve Advisor task. +It takes either credentials or databaseCredential. It's recommended to provide databaseCredential""" + + credentials: ManagedDatabaseCredential | None = Field(None, description='Gets the credentials of this EnableAutomaticSpmEvolveAdvisorTaskDetails.') + database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this EnableAutomaticSpmEvolveAdvisorTaskDetails.') + + +class EnableAutonomousDatabaseManagementFeatureDetails(DbmRequestModel): + """The details required to enable a Database Management feature for an Autonomous Database.""" + + feature_details: AutonomousDatabaseFeatureDetails = Field(..., alias='featureDetails', description='**[Required]** Gets the feature_details of this EnableAutonomousDatabaseManagementFeatureDetails.') + + +class EnableCloudDbSystemDatabaseManagementDetails(DbmRequestModel): + """The details required to enable Database Management for a cloud DB system.""" + + is_enabled: bool = Field(..., alias='isEnabled', description='**[Required]** Gets the is_enabled of this EnableCloudDbSystemDatabaseManagementDetails.\nThe status of the associated service.') + metadata: str | None = Field(None, description='Gets the metadata of this EnableCloudDbSystemDatabaseManagementDetails.\nThe associated service-specific inputs in JSON string format, which Database Management can identify.') + + +class EnableCloudDbSystemStackMonitoringDetails(DbmRequestModel): + """The details required to enable Stack Monitoring for a cloud DB system.""" + + is_enabled: bool = Field(..., alias='isEnabled', description='**[Required]** Gets the is_enabled of this EnableCloudDbSystemStackMonitoringDetails.\nThe status of the associated service.') + metadata: str | None = Field(None, description='Gets the metadata of this EnableCloudDbSystemStackMonitoringDetails.\nThe associated service-specific inputs in JSON string format, which Database Management can identify.') + + +class EnableCloudExadataInfrastructureManagementDetails(DbmRequestModel): + """The details required to enable Database Management on the Exadata infrastructure.""" + + license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE'] = Field(..., alias='licenseModel', description='**[Required]** Gets the license_model of this EnableCloudExadataInfrastructureManagementDetails.\nThe Oracle license model that applies to the database management resources.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE"') + + +class EnableDatabaseManagementFeatureDetails(DbmRequestModel): + """The details required to enable Database Management features for an Oracle cloud database.""" + + feature_details: DatabaseFeatureDetails = Field(..., alias='featureDetails', description='**[Required]** Gets the feature_details of this EnableDatabaseManagementFeatureDetails.') + + +class EnableExternalContainerDatabaseManagementFeatureDetails(DbmRequestModel): + """The details required to enable a Database Management feature for an external container database.""" + + feature_details: ExternalDatabaseFeatureDetails = Field(..., alias='featureDetails', description='**[Required]** Gets the feature_details of this EnableExternalContainerDatabaseManagementFeatureDetails.') + + +class EnableExternalDatabaseManagementDetails(DbmRequestModel): + """Detail to enable or disable database management.""" + + connector_id: str = Field(..., alias='connectorId', description='**[Required]** Gets the connector_id of this EnableExternalDatabaseManagementDetails.\nOCID of External MySQL Database connector.') + + +class EnableExternalDbSystemDatabaseManagementDetails(DbmRequestModel): + """The details required to enable Database Management for an external DB system.""" + + license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE'] = Field(..., alias='licenseModel', description='**[Required]** Gets the license_model of this EnableExternalDbSystemDatabaseManagementDetails.\nThe Oracle license model that applies to the external database.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE"') + + +class EnableExternalDbSystemStackMonitoringDetails(DbmRequestModel): + """The details required to enable Stack Monitoring for an external DB system.""" + + is_enabled: bool = Field(..., alias='isEnabled', description='**[Required]** Gets the is_enabled of this EnableExternalDbSystemStackMonitoringDetails.\nThe status of the associated service.') + metadata: str | None = Field(None, description='Gets the metadata of this EnableExternalDbSystemStackMonitoringDetails.\nThe associated service-specific inputs in JSON string format, which Database Management can identify.') + + +class EnableExternalExadataInfrastructureManagementDetails(DbmRequestModel): + """The details required to enable Database Management on the Exadata infrastructure.""" + + license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE'] = Field(..., alias='licenseModel', description='**[Required]** Gets the license_model of this EnableExternalExadataInfrastructureManagementDetails.\nThe Oracle license model.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE"') + + +class EnableExternalNonContainerDatabaseManagementFeatureDetails(DbmRequestModel): + """The details required to enable a Database Management feature for an external non-container database.""" + + feature_details: ExternalDatabaseFeatureDetails = Field(..., alias='featureDetails', description='**[Required]** Gets the feature_details of this EnableExternalNonContainerDatabaseManagementFeatureDetails.') + + +class EnableExternalPluggableDatabaseManagementFeatureDetails(DbmRequestModel): + """The details required to enable a Database Management feature for an external pluggable database.""" + + feature_details: ExternalPluggableDatabaseFeatureDetails = Field(..., alias='featureDetails', description='**[Required]** Gets the feature_details of this EnableExternalPluggableDatabaseManagementFeatureDetails.') + + +class EnableHighFrequencyAutomaticSpmEvolveAdvisorTaskDetails(DbmRequestModel): + """The details required to enable high frequency Automatic SPM Evolve Advisor task. +It takes either credentials or databaseCredential. It's recommended to provide databaseCredential""" + + credentials: ManagedDatabaseCredential | None = Field(None, description='Gets the credentials of this EnableHighFrequencyAutomaticSpmEvolveAdvisorTaskDetails.') + database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this EnableHighFrequencyAutomaticSpmEvolveAdvisorTaskDetails.') + + +class EnablePluggableDatabaseManagementFeatureDetails(DbmRequestModel): + """The details required to enable a Database Management feature for an Oracle cloud pluggable database.""" + + feature_details: DatabaseFeatureDetails = Field(..., alias='featureDetails', description='**[Required]** Gets the feature_details of this EnablePluggableDatabaseManagementFeatureDetails.') + + +class EnableSqlPlanBaselinesUsageDetails(DbmRequestModel): + """The details required to enable SQL plan baseline usage. +It takes either credentials or databaseCredential. It's recommended to provide databaseCredential""" + + credentials: ManagedDatabaseCredential | None = Field(None, description='Gets the credentials of this EnableSqlPlanBaselinesUsageDetails.') + database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this EnableSqlPlanBaselinesUsageDetails.') + + +class EntityDiscovered(DbmBaseModel): + """The details of the base entity discovery.""" + + id: str | None = Field(None, description='Gets the id of this EntityDiscovered. The OCID of the entity discovered.') + agent_id: str | None = Field(None, alias='agentId', description='Gets the agent_id of this EntityDiscovered. The OCID of the agent used for monitoring.') + connector_id: str | None = Field(None, alias='connectorId', description='Gets the connector_id of this EntityDiscovered. The OCID of the associated connector.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this EntityDiscovered.\nThe name of the entity.') + version: str | None = Field(None, description='Gets the version of this EntityDiscovered.\nThe version of the entity.') + internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this EntityDiscovered.\nThe internal identifier of the entity.') + status: str | None = Field(None, description='Gets the status of this EntityDiscovered.\nThe status of the entity.') + discover_status: Literal['PREV_DISCOVERED', 'NEW_DISCOVERED', 'NOT_FOUND', 'DISCOVERING', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='discoverStatus', description='Gets the discover_status of this EntityDiscovered.\nThe status of the entity discovery.\n\nAllowed values for this property are: "PREV_DISCOVERED", "NEW_DISCOVERED", "NOT_FOUND", "DISCOVERING", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + discover_error_code: str | None = Field(None, alias='discoverErrorCode', description='Gets the discover_error_code of this EntityDiscovered.\nThe error code of the discovery.') + discover_error_msg: str | None = Field(None, alias='discoverErrorMsg', description='Gets the discover_error_msg of this EntityDiscovered.\nThe error message of the discovery.') + entity_type: Literal['STORAGE_SERVER_DISCOVER_SUMMARY', 'STORAGE_GRID_DISCOVER_SUMMARY', 'DATABASE_SYSTEM_DISCOVER_SUMMARY', 'INFRASTRUCTURE_DISCOVER_SUMMARY', 'INFRASTRUCTURE_DISCOVER', 'MANAGED_STORAGE_SERVER_DISCOVER_SUMMARY', 'MANAGED_STORAGE_GRID_DISCOVER_SUMMARY', 'VM_CLUSTER_DISCOVER_SUMMARY', 'MANAGED_INFRASTRUCTURE_DISCOVER_SUMMARY', 'CLOUD_INFRASTRUCTURE_DISCOVER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entityType', description='**[Required]** Gets the entity_type of this EntityDiscovered.\nThe type of discovered entities.\n\nAllowed values for this property are: "STORAGE_SERVER_DISCOVER_SUMMARY", "STORAGE_GRID_DISCOVER_SUMMARY", "DATABASE_SYSTEM_DISCOVER_SUMMARY", "INFRASTRUCTURE_DISCOVER_SUMMARY", "INFRASTRUCTURE_DISCOVER", "MANAGED_STORAGE_SERVER_DISCOVER_SUMMARY", "MANAGED_STORAGE_GRID_DISCOVER_SUMMARY", "VM_CLUSTER_DISCOVER_SUMMARY", "MANAGED_INFRASTRUCTURE_DISCOVER_SUMMARY", "CLOUD_INFRASTRUCTURE_DISCOVER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class ExadataFleetMetricDefinition(DbmBaseModel): + """The Exadata infrastructure metric details.""" + + metric_name: str | None = Field(None, alias='metricName', description='Gets the metric_name of this ExadataFleetMetricDefinition.\nThe name of the metric.') + baseline_value: float | None = Field(None, alias='baselineValue', description='Gets the baseline_value of this ExadataFleetMetricDefinition.\nThe baseline value of the metric.') + target_value: float | None = Field(None, alias='targetValue', description='Gets the target_value of this ExadataFleetMetricDefinition.\nThe target value of the metric.') + unit: str | None = Field(None, description='Gets the unit of this ExadataFleetMetricDefinition.\nThe unit of the value.') + timestamp: datetime | None = Field(None, description='Gets the timestamp of this ExadataFleetMetricDefinition.\nThe data point date and time in UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".') + percentage_change: float | None = Field(None, alias='percentageChange', description='Gets the percentage_change of this ExadataFleetMetricDefinition.\nThe percentage change in the metric aggregated value compared to the baseline value.') + dimensions: list[ExadataMetricDimensionDefinition] | None = Field(None, description='Gets the dimensions of this ExadataFleetMetricDefinition.\nThe dimensions of the metric.') + + +class ExadataFleetMetricSummaryDefinition(DbmBaseModel): + """A summary of the fleet metrics, which provides the metric aggregated value of the Exadata infrastructures in the fleet.""" + + metric_name: str | None = Field(None, alias='metricName', description='Gets the metric_name of this ExadataFleetMetricSummaryDefinition.\nThe name of the metric.') + baseline_value: float | None = Field(None, alias='baselineValue', description='Gets the baseline_value of this ExadataFleetMetricSummaryDefinition.\nThe metric aggregated value at the baseline date and time.') + target_value: float | None = Field(None, alias='targetValue', description='Gets the target_value of this ExadataFleetMetricSummaryDefinition.\nThe metric aggregated value at the target date and time.') + unit: str | None = Field(None, description='Gets the unit of this ExadataFleetMetricSummaryDefinition.\nThe unit of the value.') + percentage_change: float | None = Field(None, alias='percentageChange', description='Gets the percentage_change of this ExadataFleetMetricSummaryDefinition.\nThe percentage change in the metric aggregated value compared to the baseline value.') + dimensions: list[ExadataMetricDimensionDefinition] | None = Field(None, description='Gets the dimensions of this ExadataFleetMetricSummaryDefinition.\nThe unique dimension key and values of the baseline metric.') + + +class ExadataInfrastructureDiscoverySummary(DbmBaseModel): + """The summary of the Exadata system infrastructure discovery.""" + + id: str | None = Field(None, description='Gets the id of this EntityDiscovered. The OCID of the entity discovered.') + agent_id: str | None = Field(None, alias='agentId', description='Gets the agent_id of this EntityDiscovered. The OCID of the agent used for monitoring.') + connector_id: str | None = Field(None, alias='connectorId', description='Gets the connector_id of this EntityDiscovered. The OCID of the associated connector.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this EntityDiscovered.\nThe name of the entity.') + version: str | None = Field(None, description='Gets the version of this EntityDiscovered.\nThe version of the entity.') + internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this EntityDiscovered.\nThe internal identifier of the entity.') + status: str | None = Field(None, description='Gets the status of this EntityDiscovered.\nThe status of the entity.') + discover_status: Literal['PREV_DISCOVERED', 'NEW_DISCOVERED', 'NOT_FOUND', 'DISCOVERING', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='discoverStatus', description='Gets the discover_status of this EntityDiscovered.\nThe status of the entity discovery.\n\nAllowed values for this property are: "PREV_DISCOVERED", "NEW_DISCOVERED", "NOT_FOUND", "DISCOVERING", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + discover_error_code: str | None = Field(None, alias='discoverErrorCode', description='Gets the discover_error_code of this EntityDiscovered.\nThe error code of the discovery.') + discover_error_msg: str | None = Field(None, alias='discoverErrorMsg', description='Gets the discover_error_msg of this EntityDiscovered.\nThe error message of the discovery.') + entity_type: Literal['STORAGE_SERVER_DISCOVER_SUMMARY', 'STORAGE_GRID_DISCOVER_SUMMARY', 'DATABASE_SYSTEM_DISCOVER_SUMMARY', 'INFRASTRUCTURE_DISCOVER_SUMMARY', 'INFRASTRUCTURE_DISCOVER', 'MANAGED_STORAGE_SERVER_DISCOVER_SUMMARY', 'MANAGED_STORAGE_GRID_DISCOVER_SUMMARY', 'VM_CLUSTER_DISCOVER_SUMMARY', 'MANAGED_INFRASTRUCTURE_DISCOVER_SUMMARY', 'CLOUD_INFRASTRUCTURE_DISCOVER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entityType', description='**[Required]** Gets the entity_type of this EntityDiscovered.\nThe type of discovered entities.\n\nAllowed values for this property are: "STORAGE_SERVER_DISCOVER_SUMMARY", "STORAGE_GRID_DISCOVER_SUMMARY", "DATABASE_SYSTEM_DISCOVER_SUMMARY", "INFRASTRUCTURE_DISCOVER_SUMMARY", "INFRASTRUCTURE_DISCOVER", "MANAGED_STORAGE_SERVER_DISCOVER_SUMMARY", "MANAGED_STORAGE_GRID_DISCOVER_SUMMARY", "VM_CLUSTER_DISCOVER_SUMMARY", "MANAGED_INFRASTRUCTURE_DISCOVER_SUMMARY", "CLOUD_INFRASTRUCTURE_DISCOVER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + rack_size: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='rackSize', description='Gets the rack_size of this ExadataInfrastructureDiscoverySummary.\nThe size of the Exadata infrastructure.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class ExadataInfrastructureFleetHealthMetrics(DbmBaseModel): + """The details of the fleet health metrics.""" + + compare_baseline_time: str = Field(..., alias='compareBaselineTime', description='**[Required]** Gets the compare_baseline_time of this ExadataInfrastructureFleetHealthMetrics.\nThe baseline date and time in UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".\nThis is the date and time against which percentage change is calculated.') + compare_target_time: str = Field(..., alias='compareTargetTime', description='**[Required]** Gets the compare_target_time of this ExadataInfrastructureFleetHealthMetrics.\nThe target date and time in UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".\nAll the metrics are returned for the target date and time and the percentage change\nis calculated against the baseline date and time.') + compare_type: Literal['HOUR', 'DAY', 'WEEK', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='compareType', description='Gets the compare_type of this ExadataInfrastructureFleetHealthMetrics.\nThe time window used for metrics comparison.\n\nAllowed values for this property are: "HOUR", "DAY", "WEEK", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + exadata_infrastructure_fleet_summary: ExadataInfrastructureFleetSummary | None = Field(None, alias='exadataInfrastructureFleetSummary', description='Gets the exadata_infrastructure_fleet_summary of this ExadataInfrastructureFleetHealthMetrics.') + fleet_exadata_infrastructures: list[ExadataInfrastructureUsageMetrics] = Field(..., alias='fleetExadataInfrastructures', description='**[Required]** Gets the fleet_exadata_infrastructures of this ExadataInfrastructureFleetHealthMetrics.\nA list of the Exadata infrastructures present in the fleet and their usage metrics.') + + +class ExadataInfrastructureFleetStatusByCategory(DbmBaseModel): + """The number of Exadata infrastructures in the fleet, grouped by deployment type and rack-size.""" + + deployment_type: Literal['ONPREMISE', 'EXADATA', 'EXADATA_CC', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='deploymentType', description='Gets the deployment_type of this ExadataInfrastructureFleetStatusByCategory.\nThe infrastructure deployment type.\n\nAllowed values for this property are: "ONPREMISE", "EXADATA", "EXADATA_CC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + rack_size: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'OTHER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='rackSize', description='Gets the rack_size of this ExadataInfrastructureFleetStatusByCategory.\nThe size of the Exadata infrastructure.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", "OTHER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + inventory_count: int | None = Field(None, ge=0, alias='inventoryCount', description='Gets the inventory_count of this ExadataInfrastructureFleetStatusByCategory.\nThe number of Exadata infrastructures in the fleet.') + + +class ExadataInfrastructureFleetSummary(DbmBaseModel): + """A summary of the inventory count grouped by Exadata infrastructure deployment type, and the metrics that +describe the aggregated usage of CPU, storage, and so on of all Exadata infrastructures in the fleet.""" + + aggregated_metrics: list[ExadataFleetMetricSummaryDefinition] | None = Field(None, alias='aggregatedMetrics', description='Gets the aggregated_metrics of this ExadataInfrastructureFleetSummary.\nA list of Exadata infrastructures present in the fleet and their usage metrics.') + inventory: list[ExadataInfrastructureFleetStatusByCategory] | None = Field(None, description='Gets the inventory of this ExadataInfrastructureFleetSummary.\nA list of the Exadata infrastructures in the fleet.') + + +class ExadataInfrastructureLifecycleStateValues(DbmBaseModel): + """the lifecycle state values for the Exadata infrastructure.""" + + state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the state of this ExadataInfrastructureLifecycleStateValues.\nThe current lifecycle state of the Exadata infrastructure resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class ExadataInfrastructureUsageMetrics(DbmBaseModel): + """The list of aggregated metrics for Exadata infrastructures in the fleet.""" + + infrastructure_id: str | None = Field(None, alias='infrastructureId', description='Gets the infrastructure_id of this ExadataInfrastructureUsageMetrics. The OCID of the Exadata infrastructure.') + compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this ExadataInfrastructureUsageMetrics. The OCID of the compartment where the Exadata infrastructure resides.') + deployment_type: Literal['ONPREMISE', 'EXADATA', 'EXADATA_CC', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='deploymentType', description='Gets the deployment_type of this ExadataInfrastructureUsageMetrics.\nThe Exadata infrastructure deployment type.\n\nAllowed values for this property are: "ONPREMISE", "EXADATA", "EXADATA_CC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + infrastructure_name: str | None = Field(None, alias='infrastructureName', description='Gets the infrastructure_name of this ExadataInfrastructureUsageMetrics.\nThe display name of the Exadata infrastructure.') + state: str | None = Field(None, description='Gets the state of this ExadataInfrastructureUsageMetrics.\nThe lifecycle state of the Exadata infrastructure.') + number_of_db_systems: int | None = Field(None, alias='numberOfDbSystems', description='Gets the number_of_db_systems of this ExadataInfrastructureUsageMetrics.\nThe number of Database Systems created on the Exadata infrastructure.') + rack_size: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'OTHER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='rackSize', description='Gets the rack_size of this ExadataInfrastructureUsageMetrics.\nThe size of the Exadata infrastructure.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", "OTHER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + storage_server_count: int | None = Field(None, ge=0, alias='storageServerCount', description='Gets the storage_server_count of this ExadataInfrastructureUsageMetrics.\nThe number of storage server for the Exadata infrastructure.') + metrics: list[ExadataFleetMetricDefinition] | None = Field(None, description='Gets the metrics of this ExadataInfrastructureUsageMetrics.\nA list of the health metrics like CPU, Storage, and Memory.') + + +class ExadataMetricDimensionDefinition(DbmBaseModel): + """The metric dimension details.""" + + dimension_name: str | None = Field(None, alias='dimensionName', description='Gets the dimension_name of this ExadataMetricDimensionDefinition.\nThe name of the dimension.') + dimension_value: str | None = Field(None, alias='dimensionValue', description='Gets the dimension_value of this ExadataMetricDimensionDefinition.\nThe value of the dimension.') + + +class ExadataVmClusterSummary(DbmBaseModel): + """The VM Clusters of the Exadata infrastructure.""" + + id: str = Field(..., description='**[Required]** Gets the id of this DbmResource. The OCID of the Exadata resource.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DbmResource.\nThe name of the Exadata resource. English letters, numbers, "-", "_" and "." only.') + version: str | None = Field(None, description='Gets the version of this DbmResource.\nThe version of the Exadata resource.') + internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this DbmResource.\nThe internal ID of the Exadata resource.') + status: str | None = Field(None, description='Gets the status of this DbmResource.\nThe status of the Exadata resource.') + lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DbmResource.\nThe current lifecycle state of the database resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DbmResource.\nThe timestamp of the creation of the Exadata resource.') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DbmResource.\nThe timestamp of the last update of the Exadata resource.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DbmResource.\nThe details of the lifecycle state of the Exadata resource.') + additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this DbmResource.\nThe additional details of the resource defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') + resource_type: Literal['INFRASTRUCTURE_SUMMARY', 'INFRASTRUCTURE', 'STORAGE_SERVER_SUMMARY', 'STORAGE_SERVER', 'STORAGE_GRID_SUMMARY', 'STORAGE_GRID', 'STORAGE_CONNECTOR_SUMMARY', 'STORAGE_CONNECTOR', 'DATABASE_SYSTEM_SUMMARY', 'DATABASE_SUMMARY', 'VM_CLUSTER_SUMMARY', 'CLOUD_INFRASTRUCTURE_SUMMARY', 'CLOUD_INFRASTRUCTURE', 'CLOUD_STORAGE_SERVER_SUMMARY', 'CLOUD_STORAGE_SERVER', 'CLOUD_STORAGE_GRID_SUMMARY', 'CLOUD_STORAGE_GRID', 'CLOUD_STORAGE_CONNECTOR_SUMMARY', 'CLOUD_STORAGE_CONNECTOR', 'MANAGED_DATABASE_SUMMARY', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceType', description='**[Required]** Gets the resource_type of this DbmResource.\nThe type of Exadata resource.\n\nAllowed values for this property are: "INFRASTRUCTURE_SUMMARY", "INFRASTRUCTURE", "STORAGE_SERVER_SUMMARY", "STORAGE_SERVER", "STORAGE_GRID_SUMMARY", "STORAGE_GRID", "STORAGE_CONNECTOR_SUMMARY", "STORAGE_CONNECTOR", "DATABASE_SYSTEM_SUMMARY", "DATABASE_SUMMARY", "VM_CLUSTER_SUMMARY", "CLOUD_INFRASTRUCTURE_SUMMARY", "CLOUD_INFRASTRUCTURE", "CLOUD_STORAGE_SERVER_SUMMARY", "CLOUD_STORAGE_SERVER", "CLOUD_STORAGE_GRID_SUMMARY", "CLOUD_STORAGE_GRID", "CLOUD_STORAGE_CONNECTOR_SUMMARY", "CLOUD_STORAGE_CONNECTOR", "MANAGED_DATABASE_SUMMARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this ExadataVmClusterSummary. The OCID of the compartment.') + license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='licenseModel', description='Gets the license_model of this ExadataVmClusterSummary.\nThe Oracle license model that applies to the database management resources.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + home_directory: str | None = Field(None, alias='homeDirectory', description='Gets the home_directory of this ExadataVmClusterSummary.\nThe Oracle home directory.') + deployment_type: Literal['EXADATA', 'EXADATA_CC', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='deploymentType', description='Gets the deployment_type of this ExadataVmClusterSummary.\nThe infrastructure deployment type.\n\nAllowed values for this property are: "EXADATA", "EXADATA_CC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class ExecutionPlanStatsComparision(DbmBaseModel): + """The comparison report of the SQL execution plan statistics in the original and modified plan.""" + + original: SqlTuningTaskPlanStats = Field(..., description='**[Required]** Gets the original of this ExecutionPlanStatsComparision.') + modified: SqlTuningTaskPlanStats = Field(..., description='**[Required]** Gets the modified of this ExecutionPlanStatsComparision.') + + +class ExternalAsm(DbmBaseModel): + """The details of an external ASM.""" + + id: str = Field(..., description='**[Required]** Gets the id of this ExternalAsm. The OCID of the external ASM.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalAsm.\nThe user-friendly name for the external ASM. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this ExternalAsm.\nThe name of the external ASM.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalAsm. The OCID of the compartment.') + external_db_system_id: str = Field(..., alias='externalDbSystemId', description='**[Required]** Gets the external_db_system_id of this ExternalAsm. The OCID of the external DB system that the ASM is a part of.') + external_connector_id: str | None = Field(None, alias='externalConnectorId', description='Gets the external_connector_id of this ExternalAsm. The OCID of the external connector.') + grid_home: str | None = Field(None, alias='gridHome', description='Gets the grid_home of this ExternalAsm.\nThe directory in which ASM is installed. This is the same directory in which Oracle Grid Infrastructure is installed.') + is_cluster: bool | None = Field(None, alias='isCluster', description='Gets the is_cluster of this ExternalAsm.\nIndicates whether the ASM is a cluster ASM or not.') + is_flex_enabled: bool | None = Field(None, alias='isFlexEnabled', description='Gets the is_flex_enabled of this ExternalAsm.\nIndicates whether Oracle Flex ASM is enabled or not.') + lifecycle_state: Literal['CREATING', 'NOT_CONNECTED', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ExternalAsm.\nThe current lifecycle state of the external ASM.\n\nAllowed values for this property are: "CREATING", "NOT_CONNECTED", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExternalAsm.\nAdditional information about the current lifecycle state.') + serviced_databases: list[ExternalAsmServicedDatabase] | None = Field(None, alias='servicedDatabases', description='Gets the serviced_databases of this ExternalAsm.\nThe list of databases that are serviced by the ASM.') + additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this ExternalAsm.\nThe additional details of the external ASM defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ExternalAsm.\nThe date and time the external ASM was created.') + time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this ExternalAsm.\nThe date and time the external ASM was last updated.') + version: str | None = Field(None, description='Gets the version of this ExternalAsm.\nThe ASM version.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalAsm. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalAsm. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalAsm. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class ExternalAsmCollection(DbmBaseModel): + """A collection of external ASMs.""" + + items: list[ExternalAsmSummary] = Field(..., description='**[Required]** Gets the items of this ExternalAsmCollection.\nAn array of external ASMs.') + + +class ExternalAsmConfiguration(DbmBaseModel): + """The configuration details of an ASM.""" + + init_parameters: list[ExternalAsmInstanceParameters] = Field(..., alias='initParameters', description='**[Required]** Gets the init_parameters of this ExternalAsmConfiguration.\nAn array of initialization parameters for the external ASM instances.') + + +class ExternalAsmConnectionInfo(DbmBaseModel): + """The details required to connect to an external ASM instance.""" + + component_type: Literal['DATABASE', 'ASM', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this ExternalDbSystemConnectionInfo.\nThe component type.\n\nAllowed values for this property are: "DATABASE", "ASM", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + connection_string: AsmConnectionString = Field(..., alias='connectionString', description='**[Required]** Gets the connection_string of this ExternalAsmConnectionInfo.') + connection_credentials: AsmConnectionCredentials = Field(..., alias='connectionCredentials', description='**[Required]** Gets the connection_credentials of this ExternalAsmConnectionInfo.') + + +class ExternalAsmDiskGroupCollection(DbmBaseModel): + """A collection of external ASM disk groups.""" + + items: list[ExternalAsmDiskGroupSummary] = Field(..., description='**[Required]** Gets the items of this ExternalAsmDiskGroupCollection.\nAn array of external ASM disk groups.') + + +class ExternalAsmDiskGroupSummary(DbmBaseModel): + """The summary of an external ASM disk group.""" + + name: str = Field(..., description='**[Required]** Gets the name of this ExternalAsmDiskGroupSummary.\nThe name of the ASM disk group.') + mounting_instance_count: int | None = Field(None, ge=0, alias='mountingInstanceCount', description='Gets the mounting_instance_count of this ExternalAsmDiskGroupSummary.\nThe number of ASM instances that have the disk group in mounted state.') + dismounting_instance_count: int | None = Field(None, ge=0, alias='dismountingInstanceCount', description='Gets the dismounting_instance_count of this ExternalAsmDiskGroupSummary.\nThe number of ASM instances that have the disk group in dismounted state.') + redundancy_type: Literal['EXTEND', 'EXTERN', 'FLEX', 'HIGH', 'NORMAL', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='redundancyType', description='Gets the redundancy_type of this ExternalAsmDiskGroupSummary.\nThe redundancy type of the disk group.\n\nAllowed values for this property are: "EXTEND", "EXTERN", "FLEX", "HIGH", "NORMAL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + is_sparse: bool | None = Field(None, alias='isSparse', description='Gets the is_sparse of this ExternalAsmDiskGroupSummary.\nIndicates whether the disk group is a sparse disk group or not.') + databases: list[str] | None = Field(None, description='Gets the databases of this ExternalAsmDiskGroupSummary.\nThe unique names of the databases using the disk group.') + total_size_in_mbs: int | None = Field(None, alias='totalSizeInMBs', description='Gets the total_size_in_mbs of this ExternalAsmDiskGroupSummary.\nThe total capacity of the disk group (in megabytes).') + used_size_in_mbs: int | None = Field(None, alias='usedSizeInMBs', description='Gets the used_size_in_mbs of this ExternalAsmDiskGroupSummary.\nThe used capacity of the disk group (in megabytes).') + used_percent: float | None = Field(None, alias='usedPercent', description='Gets the used_percent of this ExternalAsmDiskGroupSummary.\nThe percentage of used space in the disk group.') + + +class ExternalAsmInstance(DbmBaseModel): + """The details of an external ASM instance.""" + + id: str = Field(..., description='**[Required]** Gets the id of this ExternalAsmInstance. The OCID of the external ASM instance.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalAsmInstance.\nThe user-friendly name for the ASM instance. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this ExternalAsmInstance.\nThe name of the external ASM instance.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalAsmInstance. The OCID of the compartment.') + external_asm_id: str = Field(..., alias='externalAsmId', description='**[Required]** Gets the external_asm_id of this ExternalAsmInstance. The OCID of the external ASM that the ASM instance belongs to.') + external_db_system_id: str = Field(..., alias='externalDbSystemId', description='**[Required]** Gets the external_db_system_id of this ExternalAsmInstance. The OCID of the external DB system that the ASM instance is a part of.') + external_db_node_id: str | None = Field(None, alias='externalDbNodeId', description='Gets the external_db_node_id of this ExternalAsmInstance. The OCID of the external DB node on which the ASM instance is running.') + adr_home_directory: str | None = Field(None, alias='adrHomeDirectory', description='Gets the adr_home_directory of this ExternalAsmInstance.\nThe Automatic Diagnostic Repository (ADR) home directory for the ASM instance.') + host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this ExternalAsmInstance.\nThe name of the host on which the ASM instance is running.') + lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ExternalAsmInstance.\nThe current lifecycle state of the external ASM instance.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExternalAsmInstance.\nAdditional information about the current lifecycle state.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this ExternalAsmInstance.\nThe date and time the external ASM instance was created.') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this ExternalAsmInstance.\nThe date and time the external ASM instance was last updated.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalAsmInstance. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalAsmInstance. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalAsmInstance. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class ExternalAsmInstanceCollection(DbmBaseModel): + """A collection of external ASM instances.""" + + items: list[ExternalAsmInstanceSummary] = Field(..., description='**[Required]** Gets the items of this ExternalAsmInstanceCollection.\nAn array of external ASM instances.') + + +class ExternalAsmInstanceParameters(DbmBaseModel): + """The initialization parameters for an ASM instance.""" + + asm_instance_id: str = Field(..., alias='asmInstanceId', description='**[Required]** Gets the asm_instance_id of this ExternalAsmInstanceParameters. The OCID of the external ASM instance.') + asm_instance_display_name: str = Field(..., alias='asmInstanceDisplayName', description='**[Required]** Gets the asm_instance_display_name of this ExternalAsmInstanceParameters.\nThe user-friendly name for the ASM instance. The name does not have to be unique.') + disk_discovery_path: str = Field(..., alias='diskDiscoveryPath', description='**[Required]** Gets the disk_discovery_path of this ExternalAsmInstanceParameters.\nAn operating system-dependent value used to limit the set of disks considered for discovery.') + auto_mount_disk_groups: list[str] = Field(..., alias='autoMountDiskGroups', description='**[Required]** Gets the auto_mount_disk_groups of this ExternalAsmInstanceParameters.\nThe list of disk group names that an ASM instance mounts at startup or when the `ALTER DISKGROUP ALL MOUNT` statement is issued.') + rebalance_power: int = Field(..., alias='rebalancePower', description='**[Required]** Gets the rebalance_power of this ExternalAsmInstanceParameters.\nThe maximum power on an ASM instance for disk rebalancing.') + preferred_read_failure_groups: list[str] = Field(..., alias='preferredReadFailureGroups', description='**[Required]** Gets the preferred_read_failure_groups of this ExternalAsmInstanceParameters.\nThe list of failure groups that contain preferred read disks.') + + +class ExternalAsmInstanceSummary(DbmBaseModel): + """The summary of an external ASM instance.""" + + id: str = Field(..., description='**[Required]** Gets the id of this ExternalAsmInstanceSummary. The OCID of the external ASM instance.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalAsmInstanceSummary.\nThe user-friendly name for the ASM instance. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this ExternalAsmInstanceSummary.\nThe name of the external ASM instance.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalAsmInstanceSummary. The OCID of the compartment.') + external_asm_id: str = Field(..., alias='externalAsmId', description='**[Required]** Gets the external_asm_id of this ExternalAsmInstanceSummary. The OCID of the external ASM that the ASM instance belongs to.') + external_db_system_id: str = Field(..., alias='externalDbSystemId', description='**[Required]** Gets the external_db_system_id of this ExternalAsmInstanceSummary. The OCID of the external DB system that the ASM instance is a part of.') + external_db_node_id: str | None = Field(None, alias='externalDbNodeId', description='Gets the external_db_node_id of this ExternalAsmInstanceSummary. The OCID of the external DB node on which the ASM instance is running.') + adr_home_directory: str | None = Field(None, alias='adrHomeDirectory', description='Gets the adr_home_directory of this ExternalAsmInstanceSummary.\nThe Automatic Diagnostic Repository (ADR) home directory for the ASM instance.') + host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this ExternalAsmInstanceSummary.\nThe name of the host on which the ASM instance is running.') + lifecycle_state: str = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ExternalAsmInstanceSummary.\nThe current lifecycle state of the external ASM instance.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExternalAsmInstanceSummary.\nAdditional information about the current lifecycle state.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this ExternalAsmInstanceSummary.\nThe date and time the external ASM instance was created.') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this ExternalAsmInstanceSummary.\nThe date and time the external ASM instance was last updated.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalAsmInstanceSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalAsmInstanceSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalAsmInstanceSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class ExternalAsmServicedDatabase(DbmBaseModel): + """The details of a database serviced by an external ASM.""" + + disk_groups: list[str] | None = Field(None, alias='diskGroups', description='Gets the disk_groups of this ExternalAsmServicedDatabase.\nThe list of ASM disk groups used by the database.') + id: str = Field(..., description='**[Required]** Gets the id of this ExternalAsmServicedDatabase. The OCID of the external database.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalAsmServicedDatabase.\nThe user-friendly name for the database. The name does not have to be unique.') + db_unique_name: str | None = Field(None, alias='dbUniqueName', description='Gets the db_unique_name of this ExternalAsmServicedDatabase.\nThe unique name of the external database.') + compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this ExternalAsmServicedDatabase. The OCID of the compartment in which the external database resides.') + database_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseType', description='Gets the database_type of this ExternalAsmServicedDatabase.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseSubType', description='Gets the database_sub_type of this ExternalAsmServicedDatabase.\nThe subtype of Oracle Database. Indicates whether the database is a Container Database,\nPluggable Database, Non-container Database, Autonomous Database, or Autonomous Container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + is_managed: bool | None = Field(None, alias='isManaged', description='Gets the is_managed of this ExternalAsmServicedDatabase.\nIndicates whether the database is a Managed Database or not.') + + +class ExternalAsmSummary(DbmBaseModel): + """The summary of an external ASM.""" + + id: str = Field(..., description='**[Required]** Gets the id of this ExternalAsmSummary. The OCID of the external ASM.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalAsmSummary.\nThe user-friendly name for the external ASM. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this ExternalAsmSummary.\nThe name of the external ASM.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalAsmSummary. The OCID of the compartment.') + external_db_system_id: str = Field(..., alias='externalDbSystemId', description='**[Required]** Gets the external_db_system_id of this ExternalAsmSummary. The OCID of the external DB system that the ASM is a part of.') + external_connector_id: str | None = Field(None, alias='externalConnectorId', description='Gets the external_connector_id of this ExternalAsmSummary. The OCID of the external connector.') + lifecycle_state: str = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ExternalAsmSummary.\nThe current lifecycle state of the external ASM.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExternalAsmSummary.\nAdditional information about the current lifecycle state.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ExternalAsmSummary.\nThe date and time the external ASM was created.') + time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this ExternalAsmSummary.\nThe date and time the external ASM was last updated.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalAsmSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalAsmSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalAsmSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class ExternalAsmUserCollection(DbmBaseModel): + """A collection of external ASM users.""" + + items: list[ExternalAsmUserSummary] = Field(..., description='**[Required]** Gets the items of this ExternalAsmUserCollection.\nAn array of external ASM users.') + + +class ExternalAsmUserSummary(DbmBaseModel): + """The summary of an ASM user.""" + + name: str = Field(..., description='**[Required]** Gets the name of this ExternalAsmUserSummary.\nThe name of the ASM user.') + privileges: list[str] = Field(..., description='**[Required]** Gets the privileges of this ExternalAsmUserSummary.\nThe list of privileges of the ASM user.') + asm_id: str | None = Field(None, alias='asmId', description='Gets the asm_id of this ExternalAsmUserSummary. The OCID of the external ASM.') + + +class ExternalCluster(DbmBaseModel): + """The details of an external cluster.""" + + id: str = Field(..., description='**[Required]** Gets the id of this ExternalCluster. The OCID of the external cluster.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalCluster.\nThe user-friendly name for the external cluster. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this ExternalCluster.\nThe name of the external cluster.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalCluster. The OCID of the compartment.') + external_db_system_id: str = Field(..., alias='externalDbSystemId', description='**[Required]** Gets the external_db_system_id of this ExternalCluster. The OCID of the external DB system that the cluster is a part of.') + external_connector_id: str | None = Field(None, alias='externalConnectorId', description='Gets the external_connector_id of this ExternalCluster. The OCID of the external connector.') + grid_home: str | None = Field(None, alias='gridHome', description='Gets the grid_home of this ExternalCluster.\nThe directory in which Oracle Grid Infrastructure is installed.') + is_flex_cluster: bool | None = Field(None, alias='isFlexCluster', description='Gets the is_flex_cluster of this ExternalCluster.\nIndicates whether the cluster is Oracle Flex Cluster or not.') + additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this ExternalCluster.\nThe additional details of the external cluster defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') + lifecycle_state: Literal['CREATING', 'NOT_CONNECTED', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ExternalCluster.\nThe current lifecycle state of the external cluster.\n\nAllowed values for this property are: "CREATING", "NOT_CONNECTED", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExternalCluster.\nAdditional information about the current lifecycle state.') + network_configurations: list[ExternalClusterNetworkConfiguration] | None = Field(None, alias='networkConfigurations', description='Gets the network_configurations of this ExternalCluster.\nThe list of network address configurations of the external cluster.') + vip_configurations: list[ExternalClusterVipConfiguration] | None = Field(None, alias='vipConfigurations', description='Gets the vip_configurations of this ExternalCluster.\nThe list of Virtual IP (VIP) configurations of the external cluster.') + scan_configurations: list[ExternalClusterScanListenerConfiguration] | None = Field(None, alias='scanConfigurations', description='Gets the scan_configurations of this ExternalCluster.\nThe list of Single Client Access Name (SCAN) configurations of the external cluster.') + ocr_file_location: str | None = Field(None, alias='ocrFileLocation', description='Gets the ocr_file_location of this ExternalCluster.\nThe location of the Oracle Cluster Registry (OCR).') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ExternalCluster.\nThe date and time the external cluster was created.') + time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this ExternalCluster.\nThe date and time the external cluster was last updated.') + version: str | None = Field(None, description='Gets the version of this ExternalCluster.\nThe cluster version.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalCluster. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalCluster. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalCluster. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class ExternalClusterCollection(DbmBaseModel): + """A collection of external clusters.""" + + items: list[ExternalClusterSummary] = Field(..., description='**[Required]** Gets the items of this ExternalClusterCollection.\nAn array of external clusters.') + + +class ExternalClusterInstance(DbmBaseModel): + """The details of an external cluster instance.""" + + id: str = Field(..., description='**[Required]** Gets the id of this ExternalClusterInstance. The OCID of the external cluster instance.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalClusterInstance.\nThe user-friendly name for the cluster instance. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this ExternalClusterInstance.\nThe name of the external cluster instance.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalClusterInstance. The OCID of the compartment.') + external_cluster_id: str = Field(..., alias='externalClusterId', description='**[Required]** Gets the external_cluster_id of this ExternalClusterInstance. The OCID of the external cluster that the cluster instance belongs to.') + external_db_system_id: str = Field(..., alias='externalDbSystemId', description='**[Required]** Gets the external_db_system_id of this ExternalClusterInstance. The OCID of the external DB system that the cluster instance is a part of.') + external_db_node_id: str | None = Field(None, alias='externalDbNodeId', description='Gets the external_db_node_id of this ExternalClusterInstance. The OCID of the external DB node.') + external_connector_id: str | None = Field(None, alias='externalConnectorId', description='Gets the external_connector_id of this ExternalClusterInstance. The OCID of the external connector.') + host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this ExternalClusterInstance.\nThe name of the host on which the cluster instance is running.') + node_role: Literal['HUB', 'LEAF', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='nodeRole', description='Gets the node_role of this ExternalClusterInstance.\nThe role of the cluster node.\n\nAllowed values for this property are: "HUB", "LEAF", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + crs_base_directory: str | None = Field(None, alias='crsBaseDirectory', description='Gets the crs_base_directory of this ExternalClusterInstance.\nThe Oracle base location of Cluster Ready Services (CRS).') + adr_home_directory: str | None = Field(None, alias='adrHomeDirectory', description='Gets the adr_home_directory of this ExternalClusterInstance.\nThe Automatic Diagnostic Repository (ADR) home directory for the cluster instance.') + lifecycle_state: Literal['CREATING', 'NOT_CONNECTED', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ExternalClusterInstance.\nThe current lifecycle state of the external cluster instance.\n\nAllowed values for this property are: "CREATING", "NOT_CONNECTED", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExternalClusterInstance.\nAdditional information about the current lifecycle state.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this ExternalClusterInstance.\nThe date and time the external cluster instance was created.') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this ExternalClusterInstance.\nThe date and time the external cluster instance was last updated.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalClusterInstance. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalClusterInstance. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalClusterInstance. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class ExternalClusterInstanceCollection(DbmBaseModel): + """A collection of external cluster instances.""" + + items: list[ExternalClusterInstanceSummary] = Field(..., description='**[Required]** Gets the items of this ExternalClusterInstanceCollection.\nAn array of external cluster instances.') + + +class ExternalClusterInstanceSummary(DbmBaseModel): + """The summary of an external cluster instance.""" + + id: str = Field(..., description='**[Required]** Gets the id of this ExternalClusterInstanceSummary. The OCID of the external cluster instance.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalClusterInstanceSummary.\nThe user-friendly name for the cluster instance. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this ExternalClusterInstanceSummary.\nThe name of the external cluster instance.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalClusterInstanceSummary. The OCID of the compartment.') + external_cluster_id: str = Field(..., alias='externalClusterId', description='**[Required]** Gets the external_cluster_id of this ExternalClusterInstanceSummary. The OCID of the external cluster that the cluster instance belongs to.') + external_db_system_id: str = Field(..., alias='externalDbSystemId', description='**[Required]** Gets the external_db_system_id of this ExternalClusterInstanceSummary. The OCID of the external DB system that the cluster instance is a part of.') + external_db_node_id: str | None = Field(None, alias='externalDbNodeId', description='Gets the external_db_node_id of this ExternalClusterInstanceSummary. The OCID of the external DB node.') + external_connector_id: str | None = Field(None, alias='externalConnectorId', description='Gets the external_connector_id of this ExternalClusterInstanceSummary. The OCID of the external connector.') + host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this ExternalClusterInstanceSummary.\nThe name of the host on which the cluster instance is running.') + node_role: str | None = Field(None, alias='nodeRole', description='Gets the node_role of this ExternalClusterInstanceSummary.\nThe role of the cluster node.') + crs_base_directory: str | None = Field(None, alias='crsBaseDirectory', description='Gets the crs_base_directory of this ExternalClusterInstanceSummary.\nThe Oracle base location of Cluster Ready Services (CRS).') + adr_home_directory: str | None = Field(None, alias='adrHomeDirectory', description='Gets the adr_home_directory of this ExternalClusterInstanceSummary.\nThe Automatic Diagnostic Repository (ADR) home directory for the cluster instance.') + lifecycle_state: str = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ExternalClusterInstanceSummary.\nThe current lifecycle state of the external cluster instance.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExternalClusterInstanceSummary.\nAdditional information about the current lifecycle state.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this ExternalClusterInstanceSummary.\nThe date and time the external cluster instance was created.') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this ExternalClusterInstanceSummary.\nThe date and time the external cluster instance was last updated.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalClusterInstanceSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalClusterInstanceSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalClusterInstanceSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class ExternalClusterNetworkConfiguration(DbmBaseModel): + """The details of a network address configuration in an external cluster.""" + + network_number: int | None = Field(None, alias='networkNumber', description='Gets the network_number of this ExternalClusterNetworkConfiguration.\nThe network number.') + network_type: Literal['AUTOCONFIG', 'DHCP', 'STATIC', 'MIXED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='networkType', description='Gets the network_type of this ExternalClusterNetworkConfiguration.\nThe network type.\n\nAllowed values for this property are: "AUTOCONFIG", "DHCP", "STATIC", "MIXED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + subnet: str | None = Field(None, description='Gets the subnet of this ExternalClusterNetworkConfiguration.\nThe subnet for the network.') + + +class ExternalClusterScanListenerConfiguration(DbmBaseModel): + """The details of a SCAN listener in an external cluster.""" + + scan_name: str | None = Field(None, alias='scanName', description='Gets the scan_name of this ExternalClusterScanListenerConfiguration.\nThe name of the SCAN listener.') + network_number: int | None = Field(None, alias='networkNumber', description='Gets the network_number of this ExternalClusterScanListenerConfiguration.\nThe network number from which SCAN VIPs are obtained.') + scan_port: int | None = Field(None, alias='scanPort', description='Gets the scan_port of this ExternalClusterScanListenerConfiguration.\nThe port number of the SCAN listener.') + scan_protocol: Literal['TCP', 'TCPS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='scanProtocol', description='Gets the scan_protocol of this ExternalClusterScanListenerConfiguration.\nThe protocol of the SCAN listener.\n\nAllowed values for this property are: "TCP", "TCPS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class ExternalClusterSummary(DbmBaseModel): + """The summary of an external cluster.""" + + id: str = Field(..., description='**[Required]** Gets the id of this ExternalClusterSummary. The OCID of the external cluster.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalClusterSummary.\nThe user-friendly name for the external cluster. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this ExternalClusterSummary.\nThe name of the external cluster.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalClusterSummary. The OCID of the compartment.') + external_db_system_id: str = Field(..., alias='externalDbSystemId', description='**[Required]** Gets the external_db_system_id of this ExternalClusterSummary. The OCID of the external DB system that the cluster is a part of.') + external_connector_id: str | None = Field(None, alias='externalConnectorId', description='Gets the external_connector_id of this ExternalClusterSummary. The OCID of the external connector.') + lifecycle_state: str = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ExternalClusterSummary.\nThe current lifecycle state of the external cluster.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExternalClusterSummary.\nAdditional information about the current lifecycle state.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ExternalClusterSummary.\nThe date and time the external cluster was created.') + time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this ExternalClusterSummary.\nThe date and time the external cluster was last updated.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalClusterSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalClusterSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalClusterSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class ExternalClusterVipConfiguration(DbmBaseModel): + """The details of the Virtual IP (VIP) address for a node in an external cluster.""" + + node_name: str | None = Field(None, alias='nodeName', description='Gets the node_name of this ExternalClusterVipConfiguration.\nThe name of the node with the VIP.') + address: str | None = Field(None, description='Gets the address of this ExternalClusterVipConfiguration.\nThe VIP name or IP address.') + network_number: int | None = Field(None, alias='networkNumber', description='Gets the network_number of this ExternalClusterVipConfiguration.\nThe network number from which VIPs are obtained.') + + +class ExternalConnectorDetails(DbmRequestModel): + """The details of the external database connector used to connect to the external database.""" + + connector_type: Literal['PE', 'MACS', 'EXTERNAL', 'DIRECT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this ConnectorDetails.\nThe list of supported connection types:\n - PE: Private endpoint\n - MACS: Management agent\n - EXTERNAL: External database connector\n\n - DIRECT: Direct connection\n\nAllowed values for this property are: "PE", "MACS", "EXTERNAL", "DIRECT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_connector_id: str = Field(..., alias='databaseConnectorId', description='**[Required]** Gets the database_connector_id of this ExternalConnectorDetails. The OCID of the external database connector.') + + +class ExternalDatabaseCollection(DbmBaseModel): + """A collection of external databases.""" + + items: list[ExternalDatabaseSummary] = Field(..., description='**[Required]** Gets the items of this ExternalDatabaseCollection.\nAn array of external databases.') + + +class ExternalDatabaseConnectionInfo(DbmBaseModel): + """The details required to connect to an external Oracle Database. +It takes either connectionCredentials or databaseCredential. It's recommended to provide databaseCredential""" + + component_type: Literal['DATABASE', 'ASM', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this ExternalDbSystemConnectionInfo.\nThe component type.\n\nAllowed values for this property are: "DATABASE", "ASM", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + connection_string: DatabaseConnectionString = Field(..., alias='connectionString', description='**[Required]** Gets the connection_string of this ExternalDatabaseConnectionInfo.') + connection_credentials: DatabaseConnectionCredentials | None = Field(None, alias='connectionCredentials', description='Gets the connection_credentials of this ExternalDatabaseConnectionInfo.') + database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this ExternalDatabaseConnectionInfo.') + + +class ExternalDatabaseDiagnosticsAndManagementFeatureDetails(DbmRequestModel): + """The details required to enable the Diagnostics and Management feature.""" + + feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH'] = Field(..., description='**[Required]** Gets the feature of this ExternalDatabaseFeatureDetails.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH"') + connector_details: ConnectorDetails = Field(..., alias='connectorDetails', description='**[Required]** Gets the connector_details of this ExternalDatabaseFeatureDetails.') + license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE'] = Field(..., alias='licenseModel', description='**[Required]** Gets the license_model of this ExternalDatabaseDiagnosticsAndManagementFeatureDetails.\nThe Oracle license model that applies to the external database.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE"') + can_enable_all_current_pdbs: bool | None = Field(None, alias='canEnableAllCurrentPdbs', description='Gets the can_enable_all_current_pdbs of this ExternalDatabaseDiagnosticsAndManagementFeatureDetails.\nIndicates whether Diagnostics & Management should be enabled for all the current pluggable databases in the container database.') + is_auto_enable_pluggable_database: bool | None = Field(None, alias='isAutoEnablePluggableDatabase', description='Gets the is_auto_enable_pluggable_database of this ExternalDatabaseDiagnosticsAndManagementFeatureDetails.\nIndicates whether Diagnostics & Management should be enabled automatically for all the pluggable databases in the container database.') + + +class ExternalDatabaseFeatureDetails(DbmRequestModel): + """The details required to enable the specified Database Management feature.""" + + feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH'] = Field(..., description='**[Required]** Gets the feature of this ExternalDatabaseFeatureDetails.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH"') + connector_details: ConnectorDetails = Field(..., alias='connectorDetails', description='**[Required]** Gets the connector_details of this ExternalDatabaseFeatureDetails.') + + +class ExternalDatabaseInstance(DbmBaseModel): + """The details of an external database instance.""" + + instance_number: int = Field(..., alias='instanceNumber', description='**[Required]** Gets the instance_number of this ExternalDatabaseInstance.\nThe instance number of the database instance.') + instance_name: str = Field(..., alias='instanceName', description='**[Required]** Gets the instance_name of this ExternalDatabaseInstance.\nThe name of the database instance.') + host_name: str = Field(..., alias='hostName', description='**[Required]** Gets the host_name of this ExternalDatabaseInstance.\nThe name of the host machine.') + + +class ExternalDatabaseLifecycleManagementFeatureDetails(DbmRequestModel): + """The details required to enable the Database Lifecycle Management feature.""" + + feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH'] = Field(..., description='**[Required]** Gets the feature of this ExternalDatabaseFeatureDetails.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH"') + connector_details: ConnectorDetails = Field(..., alias='connectorDetails', description='**[Required]** Gets the connector_details of this ExternalDatabaseFeatureDetails.') + license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE'] = Field(..., alias='licenseModel', description='**[Required]** Gets the license_model of this ExternalDatabaseLifecycleManagementFeatureDetails.\nThe Oracle license model that applies to the external database.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE"') + + +class ExternalDatabaseSqlWatchFeatureDetails(DbmRequestModel): + """The details required to enable the SQL Watch feature.""" + + feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH'] = Field(..., description='**[Required]** Gets the feature of this ExternalDatabaseFeatureDetails.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH"') + connector_details: ConnectorDetails = Field(..., alias='connectorDetails', description='**[Required]** Gets the connector_details of this ExternalDatabaseFeatureDetails.') + + +class ExternalDatabaseSummary(DbmBaseModel): + """The summary of an external database.""" + + id: str = Field(..., description='**[Required]** Gets the id of this ExternalDatabaseSummary. The OCID of the external DB system.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalDatabaseSummary.\nThe user-friendly name for the database. The name does not have to be unique.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalDatabaseSummary. The OCID of the compartment.') + db_unique_name: str | None = Field(None, alias='dbUniqueName', description='Gets the db_unique_name of this ExternalDatabaseSummary.\nThe `DB_UNIQUE_NAME` of the external database.') + database_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseType', description='Gets the database_type of this ExternalDatabaseSummary.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseSubType', description='Gets the database_sub_type of this ExternalDatabaseSummary.\nThe subtype of Oracle Database. Indicates whether the database is a Container Database,\nPluggable Database, or Non-container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + external_container_database_id: str | None = Field(None, alias='externalContainerDatabaseId', description='Gets the external_container_database_id of this ExternalDatabaseSummary. The OCID of the parent Container Database (CDB) if this is a Pluggable Database (PDB).') + external_db_home_id: str | None = Field(None, alias='externalDbHomeId', description='Gets the external_db_home_id of this ExternalDatabaseSummary. The OCID of the external DB home.') + db_system_info: ExternalDbSystemBasicInfo | None = Field(None, alias='dbSystemInfo', description='Gets the db_system_info of this ExternalDatabaseSummary.') + db_management_config: DatabaseManagementConfig | None = Field(None, alias='dbManagementConfig', description='Gets the db_management_config of this ExternalDatabaseSummary.') + instance_details: list[ExternalDatabaseInstance] | None = Field(None, alias='instanceDetails', description='Gets the instance_details of this ExternalDatabaseSummary.\nThe list of database instances if the database is a RAC database.') + lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ExternalDatabaseSummary.\nThe current lifecycle state of the external database resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ExternalDatabaseSummary.\nThe date and time the external DB system was created.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalDatabaseSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalDatabaseSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalDatabaseSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + dbmgmt_feature_configs: list[DatabaseFeatureConfiguration] | None = Field(None, alias='dbmgmtFeatureConfigs', description='Gets the dbmgmt_feature_configs of this ExternalDatabaseSummary.\nThe list of feature configurations') + database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this ExternalDatabaseSummary.\nThe Oracle database version.') + database_platform_name: str | None = Field(None, alias='databasePlatformName', description='Gets the database_platform_name of this ExternalDatabaseSummary.\nThe operating system of database.') + + +class ExternalDatabaseSystemDiscoverySummary(DbmBaseModel): + """The summary of the DB system discovery.""" + + id: str | None = Field(None, description='Gets the id of this EntityDiscovered. The OCID of the entity discovered.') + agent_id: str | None = Field(None, alias='agentId', description='Gets the agent_id of this EntityDiscovered. The OCID of the agent used for monitoring.') + connector_id: str | None = Field(None, alias='connectorId', description='Gets the connector_id of this EntityDiscovered. The OCID of the associated connector.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this EntityDiscovered.\nThe name of the entity.') + version: str | None = Field(None, description='Gets the version of this EntityDiscovered.\nThe version of the entity.') + internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this EntityDiscovered.\nThe internal identifier of the entity.') + status: str | None = Field(None, description='Gets the status of this EntityDiscovered.\nThe status of the entity.') + discover_status: Literal['PREV_DISCOVERED', 'NEW_DISCOVERED', 'NOT_FOUND', 'DISCOVERING', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='discoverStatus', description='Gets the discover_status of this EntityDiscovered.\nThe status of the entity discovery.\n\nAllowed values for this property are: "PREV_DISCOVERED", "NEW_DISCOVERED", "NOT_FOUND", "DISCOVERING", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + discover_error_code: str | None = Field(None, alias='discoverErrorCode', description='Gets the discover_error_code of this EntityDiscovered.\nThe error code of the discovery.') + discover_error_msg: str | None = Field(None, alias='discoverErrorMsg', description='Gets the discover_error_msg of this EntityDiscovered.\nThe error message of the discovery.') + entity_type: Literal['STORAGE_SERVER_DISCOVER_SUMMARY', 'STORAGE_GRID_DISCOVER_SUMMARY', 'DATABASE_SYSTEM_DISCOVER_SUMMARY', 'INFRASTRUCTURE_DISCOVER_SUMMARY', 'INFRASTRUCTURE_DISCOVER', 'MANAGED_STORAGE_SERVER_DISCOVER_SUMMARY', 'MANAGED_STORAGE_GRID_DISCOVER_SUMMARY', 'VM_CLUSTER_DISCOVER_SUMMARY', 'MANAGED_INFRASTRUCTURE_DISCOVER_SUMMARY', 'CLOUD_INFRASTRUCTURE_DISCOVER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entityType', description='**[Required]** Gets the entity_type of this EntityDiscovered.\nThe type of discovered entities.\n\nAllowed values for this property are: "STORAGE_SERVER_DISCOVER_SUMMARY", "STORAGE_GRID_DISCOVER_SUMMARY", "DATABASE_SYSTEM_DISCOVER_SUMMARY", "INFRASTRUCTURE_DISCOVER_SUMMARY", "INFRASTRUCTURE_DISCOVER", "MANAGED_STORAGE_SERVER_DISCOVER_SUMMARY", "MANAGED_STORAGE_GRID_DISCOVER_SUMMARY", "VM_CLUSTER_DISCOVER_SUMMARY", "MANAGED_INFRASTRUCTURE_DISCOVER_SUMMARY", "CLOUD_INFRASTRUCTURE_DISCOVER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + oracle_home: str | None = Field(None, alias='oracleHome', description='Gets the oracle_home of this ExternalDatabaseSystemDiscoverySummary.\nThe Oracle home path.') + asm_connector_name: str | None = Field(None, alias='asmConnectorName', description='Gets the asm_connector_name of this ExternalDatabaseSystemDiscoverySummary.\nThe display name of the ASM connector.') + license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='licenseModel', description='Gets the license_model of this ExternalDatabaseSystemDiscoverySummary.\nThe Oracle license model that applies to the database management resources.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this ExternalDatabaseSystemDiscoverySummary. The OCID of the compartment.') + + +class ExternalDbHome(DbmBaseModel): + """The details of an external database home.""" + + id: str = Field(..., description='**[Required]** Gets the id of this ExternalDbHome. The OCID of the external DB home.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalDbHome.\nThe user-friendly name for the external DB home. The name does not have to be unique.') + component_name: str | None = Field(None, alias='componentName', description='Gets the component_name of this ExternalDbHome.\nThe name of the external DB home.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalDbHome. The OCID of the compartment.') + external_db_system_id: str = Field(..., alias='externalDbSystemId', description='**[Required]** Gets the external_db_system_id of this ExternalDbHome. The OCID of the external DB system that the DB home is a part of.') + home_directory: str | None = Field(None, alias='homeDirectory', description='Gets the home_directory of this ExternalDbHome.\nThe location of the DB home.') + additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this ExternalDbHome.\nThe additional details of the DB home defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') + lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ExternalDbHome.\nThe current lifecycle state of the external DB home.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExternalDbHome.\nAdditional information about the current lifecycle state.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ExternalDbHome.\nThe date and time the external DB home was created.') + time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this ExternalDbHome.\nThe date and time the external DB home was last updated.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalDbHome. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalDbHome. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalDbHome. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class ExternalDbHomeCollection(DbmBaseModel): + """A collection of external database homes.""" + + items: list[ExternalDbHomeSummary] = Field(..., description='**[Required]** Gets the items of this ExternalDbHomeCollection.\nAn array of external DB homes.') + + +class ExternalDbHomeSummary(DbmBaseModel): + """The summary of an external database home.""" + + id: str = Field(..., description='**[Required]** Gets the id of this ExternalDbHomeSummary. The OCID of the external DB home.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalDbHomeSummary.\nThe user-friendly name for the external DB home. The name does not have to be unique.') + component_name: str | None = Field(None, alias='componentName', description='Gets the component_name of this ExternalDbHomeSummary.\nThe name of the external DB home.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalDbHomeSummary. The OCID of the compartment.') + external_db_system_id: str = Field(..., alias='externalDbSystemId', description='**[Required]** Gets the external_db_system_id of this ExternalDbHomeSummary. The OCID of the external DB system that the DB home is a part of.') + home_directory: str | None = Field(None, alias='homeDirectory', description='Gets the home_directory of this ExternalDbHomeSummary.\nThe location of the DB home.') + lifecycle_state: str = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ExternalDbHomeSummary.\nThe current lifecycle state of the external DB home.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExternalDbHomeSummary.\nAdditional information about the current lifecycle state.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ExternalDbHomeSummary.\nThe date and time the external DB home was created.') + time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this ExternalDbHomeSummary.\nThe date and time the external DB home was last updated.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalDbHomeSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalDbHomeSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalDbHomeSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class ExternalDbNode(DbmBaseModel): + """The details of an external database node.""" + + id: str = Field(..., description='**[Required]** Gets the id of this ExternalDbNode. The OCID of the external DB node.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalDbNode.\nThe user-friendly name for the external DB node. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this ExternalDbNode.\nThe name of the external DB node.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalDbNode. The OCID of the compartment.') + external_db_system_id: str = Field(..., alias='externalDbSystemId', description='**[Required]** Gets the external_db_system_id of this ExternalDbNode. The OCID of the external DB system that the DB node is a part of.') + external_connector_id: str | None = Field(None, alias='externalConnectorId', description='Gets the external_connector_id of this ExternalDbNode. The OCID of the external connector.') + host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this ExternalDbNode.\nThe host name for the DB node.') + cpu_core_count: float | None = Field(None, ge=0, alias='cpuCoreCount', description='Gets the cpu_core_count of this ExternalDbNode.\nThe number of CPU cores available on the DB node.') + memory_size_in_gbs: float | None = Field(None, alias='memorySizeInGBs', description='Gets the memory_size_in_gbs of this ExternalDbNode.\nThe total memory in gigabytes (GB) on the DB node.') + additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this ExternalDbNode.\nThe additional details of the external DB node defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') + lifecycle_state: Literal['CREATING', 'NOT_CONNECTED', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ExternalDbNode.\nThe current lifecycle state of the external DB node.\n\nAllowed values for this property are: "CREATING", "NOT_CONNECTED", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExternalDbNode.\nAdditional information about the current lifecycle state.') + domain_name: str | None = Field(None, alias='domainName', description='Gets the domain_name of this ExternalDbNode.\nName of the domain.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ExternalDbNode.\nThe date and time the external DB node was created.') + time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this ExternalDbNode.\nThe date and time the external DB node was last updated.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalDbNode. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalDbNode. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalDbNode. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class ExternalDbNodeCollection(DbmBaseModel): + """A collection of external database nodes.""" + + items: list[ExternalDbNodeSummary] = Field(..., description='**[Required]** Gets the items of this ExternalDbNodeCollection.\nAn array of external DB nodes.') + + +class ExternalDbNodeSummary(DbmBaseModel): + """The summary of an external database node.""" + + id: str = Field(..., description='**[Required]** Gets the id of this ExternalDbNodeSummary. The OCID of the external DB node.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalDbNodeSummary.\nThe user-friendly name for the external DB node. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this ExternalDbNodeSummary.\nThe name of the external DB node.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalDbNodeSummary. The OCID of the compartment.') + external_db_system_id: str = Field(..., alias='externalDbSystemId', description='**[Required]** Gets the external_db_system_id of this ExternalDbNodeSummary. The OCID of the external DB system that the DB node is a part of.') + external_connector_id: str | None = Field(None, alias='externalConnectorId', description='Gets the external_connector_id of this ExternalDbNodeSummary. The OCID of the external connector.') + host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this ExternalDbNodeSummary.\nThe host name for the DB node.') + lifecycle_state: str = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ExternalDbNodeSummary.\nThe current lifecycle state of the external DB node.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExternalDbNodeSummary.\nAdditional information about the current lifecycle state.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ExternalDbNodeSummary.\nThe date and time the external DB node was created.') + time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this ExternalDbNodeSummary.\nThe date and time the external DB node was last updated.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalDbNodeSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalDbNodeSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalDbNodeSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class ExternalDbSystem(DbmBaseModel): + """The details of an external DB system.""" + + id: str = Field(..., description='**[Required]** Gets the id of this ExternalDbSystem. The OCID of the external DB system.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalDbSystem.\nThe user-friendly name for the DB system. The name does not have to be unique.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalDbSystem. The OCID of the compartment.') + db_system_discovery_id: str | None = Field(None, alias='dbSystemDiscoveryId', description='Gets the db_system_discovery_id of this ExternalDbSystem. The OCID of the DB system discovery.') + discovery_agent_id: str | None = Field(None, alias='discoveryAgentId', description='Gets the discovery_agent_id of this ExternalDbSystem. The OCID of the management agent used during the discovery of the DB system.') + is_cluster: bool | None = Field(None, alias='isCluster', description='Gets the is_cluster of this ExternalDbSystem.\nIndicates whether the DB system is a cluster DB system or not.') + home_directory: str | None = Field(None, alias='homeDirectory', description='Gets the home_directory of this ExternalDbSystem.\nThe Oracle Grid home directory in case of cluster-based DB system and\nOracle home directory in case of single instance-based DB system.') + database_management_config: ExternalDbSystemDatabaseManagementConfigDetails | None = Field(None, alias='databaseManagementConfig', description='Gets the database_management_config of this ExternalDbSystem.') + stack_monitoring_config: ExternalDbSystemStackMonitoringConfigDetails | None = Field(None, alias='stackMonitoringConfig', description='Gets the stack_monitoring_config of this ExternalDbSystem.') + lifecycle_state: Literal['CREATING', 'ACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'INACTIVE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ExternalDbSystem.\nThe current lifecycle state of the external DB system resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "UPDATING", "DELETING", "DELETED", "INACTIVE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExternalDbSystem.\nAdditional information about the current lifecycle state.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ExternalDbSystem.\nThe date and time the external DB system was created.') + time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this ExternalDbSystem.\nThe date and time the external DB system was last updated.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalDbSystem. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalDbSystem. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalDbSystem. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class ExternalDbSystemBasicInfo(DbmBaseModel): + """The basic information about an external DB system.""" + + id: str = Field(..., description='**[Required]** Gets the id of this ExternalDbSystemBasicInfo. The OCID of the external DB system.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalDbSystemBasicInfo.\nThe user-friendly name for the DB system. The name does not have to be unique.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalDbSystemBasicInfo. The OCID of the compartment.') + exadata_infra_info: ExternalExadataInfraBasicInfo | None = Field(None, alias='exadataInfraInfo', description='Gets the exadata_infra_info of this ExternalDbSystemBasicInfo.') + + +class ExternalDbSystemCollection(DbmBaseModel): + """A collection of external DB systems.""" + + items: list[ExternalDbSystemSummary] = Field(..., description='**[Required]** Gets the items of this ExternalDbSystemCollection.\nAn array of external DB systems.') + + +class ExternalDbSystemConnectionInfo(DbmBaseModel): + """The connection details required to connect to an external DB system component.""" + + component_type: Literal['DATABASE', 'ASM', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this ExternalDbSystemConnectionInfo.\nThe component type.\n\nAllowed values for this property are: "DATABASE", "ASM", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class ExternalDbSystemConnector(DbmBaseModel): + """The details of an external DB system connector.""" + + connector_type: Literal['MACS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this ExternalDbSystemConnector.\nThe type of connector.\n\nAllowed values for this property are: "MACS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + id: str = Field(..., description='**[Required]** Gets the id of this ExternalDbSystemConnector. The OCID of the external DB system connector.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalDbSystemConnector.\nThe user-friendly name for the external connector. The name does not have to be unique.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalDbSystemConnector. The OCID of the compartment.') + external_db_system_id: str = Field(..., alias='externalDbSystemId', description='**[Required]** Gets the external_db_system_id of this ExternalDbSystemConnector. The OCID of the external DB system that the connector is a part of.') + connection_status: str | None = Field(None, alias='connectionStatus', description='Gets the connection_status of this ExternalDbSystemConnector.\nThe status of connectivity to the external DB system component.') + connection_failure_message: str | None = Field(None, alias='connectionFailureMessage', description='Gets the connection_failure_message of this ExternalDbSystemConnector.\nThe error message indicating the reason for connection failure or `null` if\nthe connection was successful.') + lifecycle_state: Literal['CREATING', 'NOT_CONNECTED', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ExternalDbSystemConnector.\nThe current lifecycle state of the external DB system connector.\n\nAllowed values for this property are: "CREATING", "NOT_CONNECTED", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExternalDbSystemConnector.\nAdditional information about the current lifecycle state.') + time_connection_status_last_updated: datetime | None = Field(None, alias='timeConnectionStatusLastUpdated', description='Gets the time_connection_status_last_updated of this ExternalDbSystemConnector.\nThe date and time the connectionStatus of the external DB system connector was last updated.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ExternalDbSystemConnector.\nThe date and time the external DB system connector was created.') + time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this ExternalDbSystemConnector.\nThe date and time the external DB system connector was last updated.') + + +class ExternalDbSystemConnectorCollection(DbmBaseModel): + """A collection of external DB system connectors.""" + + items: list[ExternalDbSystemConnectorSummary] = Field(..., description='**[Required]** Gets the items of this ExternalDbSystemConnectorCollection.\nAn array of external DB system connectors.') + + +class ExternalDbSystemConnectorSummary(DbmBaseModel): + """The summary of an external DB system connector.""" + + id: str = Field(..., description='**[Required]** Gets the id of this ExternalDbSystemConnectorSummary. The OCID of the external DB system connector.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalDbSystemConnectorSummary.\nThe user-friendly name for the external connector. The name does not have to be unique.') + connector_type: Literal['MACS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this ExternalDbSystemConnectorSummary.\nThe type of connector.\n\nAllowed values for this property are: "MACS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalDbSystemConnectorSummary. The OCID of the compartment.') + external_db_system_id: str = Field(..., alias='externalDbSystemId', description='**[Required]** Gets the external_db_system_id of this ExternalDbSystemConnectorSummary. The OCID of the external DB system that the connector is a part of.') + agent_id: str = Field(..., alias='agentId', description='**[Required]** Gets the agent_id of this ExternalDbSystemConnectorSummary. The OCID of the management agent used for the external DB system connector.') + lifecycle_state: str = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ExternalDbSystemConnectorSummary.\nThe current lifecycle state of the external DB system connector.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExternalDbSystemConnectorSummary.\nAdditional information about the current lifecycle state.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ExternalDbSystemConnectorSummary.\nThe date and time the external DB system connector was created.') + time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this ExternalDbSystemConnectorSummary.\nThe date and time the external DB system connector was last updated.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalDbSystemConnectorSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalDbSystemConnectorSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalDbSystemConnectorSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class ExternalDbSystemDatabaseManagementConfigDetails(DbmRequestModel): + """The details required to enable Database Management for an external DB system.""" + + license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='licenseModel', description='**[Required]** Gets the license_model of this ExternalDbSystemDatabaseManagementConfigDetails.\nThe Oracle license model that applies to the external database.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class ExternalDbSystemDiscovery(DbmBaseModel): + """The details of an external DB system discovery.""" + + id: str = Field(..., description='**[Required]** Gets the id of this ExternalDbSystemDiscovery. The OCID of the external DB system discovery.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalDbSystemDiscovery.\nThe user-friendly name for the DB system. The name does not have to be unique.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalDbSystemDiscovery. The OCID of the compartment.') + agent_id: str = Field(..., alias='agentId', description='**[Required]** Gets the agent_id of this ExternalDbSystemDiscovery. The OCID of the management agent used for the external DB system discovery.') + grid_home: str | None = Field(None, alias='gridHome', description='Gets the grid_home of this ExternalDbSystemDiscovery.\nThe directory in which Oracle Grid Infrastructure is installed.') + discovered_components: list[DiscoveredExternalDbSystemComponent] | None = Field(None, alias='discoveredComponents', description='Gets the discovered_components of this ExternalDbSystemDiscovery.\nThe list of DB system components that were found in the DB system discovery.') + resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this ExternalDbSystemDiscovery. The OCID of the existing OCI resource matching the discovered DB system.') + lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ExternalDbSystemDiscovery.\nThe current lifecycle state of the external DB system discovery resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExternalDbSystemDiscovery.\nAdditional information about the current lifecycle state.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ExternalDbSystemDiscovery.\nThe date and time the external DB system discovery was created.') + time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this ExternalDbSystemDiscovery.\nThe date and time the external DB system discovery was last updated.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalDbSystemDiscovery. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalDbSystemDiscovery. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalDbSystemDiscovery. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class ExternalDbSystemDiscoveryCollection(DbmBaseModel): + """A collection of external DB system discovery summaries.""" + + items: list[ExternalDbSystemDiscoverySummary] = Field(..., description='**[Required]** Gets the items of this ExternalDbSystemDiscoveryCollection.\nAn array of external DB system discoveries.') + + +class ExternalDbSystemDiscoveryConnector(DbmBaseModel): + """The connector details used to connect to the external DB system component.""" + + connector_type: Literal['MACS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this ExternalDbSystemDiscoveryConnector.\nThe type of connector.\n\nAllowed values for this property are: "MACS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalDbSystemDiscoveryConnector.\nThe user-friendly name for the external connector. The name does not have to be unique.') + connection_status: str | None = Field(None, alias='connectionStatus', description='Gets the connection_status of this ExternalDbSystemDiscoveryConnector.\nThe status of connectivity to the external DB system component.') + connection_failure_message: str | None = Field(None, alias='connectionFailureMessage', description='Gets the connection_failure_message of this ExternalDbSystemDiscoveryConnector.\nThe error message indicating the reason for connection failure or `null` if\nthe connection was successful.') + time_connection_status_last_updated: datetime | None = Field(None, alias='timeConnectionStatusLastUpdated', description='Gets the time_connection_status_last_updated of this ExternalDbSystemDiscoveryConnector.\nThe date and time the connectionStatus of the external DB system connector was last updated.') + + +class ExternalDbSystemDiscoveryMacsConnector(DbmBaseModel): + """The details of an external DB system connector that uses the +Management Agent Cloud Service (MACS) +to connect to an external DB system component.""" + + + + connector_type: Literal['MACS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this ExternalDbSystemDiscoveryConnector.\nThe type of connector.\n\nAllowed values for this property are: "MACS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalDbSystemDiscoveryConnector.\nThe user-friendly name for the external connector. The name does not have to be unique.') + connection_status: str | None = Field(None, alias='connectionStatus', description='Gets the connection_status of this ExternalDbSystemDiscoveryConnector.\nThe status of connectivity to the external DB system component.') + connection_failure_message: str | None = Field(None, alias='connectionFailureMessage', description='Gets the connection_failure_message of this ExternalDbSystemDiscoveryConnector.\nThe error message indicating the reason for connection failure or `null` if\nthe connection was successful.') + time_connection_status_last_updated: datetime | None = Field(None, alias='timeConnectionStatusLastUpdated', description='Gets the time_connection_status_last_updated of this ExternalDbSystemDiscoveryConnector.\nThe date and time the connectionStatus of the external DB system connector was last updated.') + agent_id: str = Field(..., alias='agentId', description='**[Required]** Gets the agent_id of this ExternalDbSystemDiscoveryMacsConnector. The OCID of the management agent used for the external DB system connector.') + connection_info: ExternalDbSystemConnectionInfo | None = Field(None, alias='connectionInfo', description='Gets the connection_info of this ExternalDbSystemDiscoveryMacsConnector.') + + +class ExternalDbSystemDiscoverySummary(DbmBaseModel): + """The summary of an external DB system.""" + + id: str = Field(..., description='**[Required]** Gets the id of this ExternalDbSystemDiscoverySummary. The OCID of the external DB system discovery.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalDbSystemDiscoverySummary.\nThe user-friendly name for the DB system. The name does not have to be unique.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalDbSystemDiscoverySummary. The OCID of the compartment.') + agent_id: str = Field(..., alias='agentId', description='**[Required]** Gets the agent_id of this ExternalDbSystemDiscoverySummary. The OCID of the management agent used for the external DB system discovery.') + lifecycle_state: str = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ExternalDbSystemDiscoverySummary.\nThe current lifecycle state of the external DB system discovery resource.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExternalDbSystemDiscoverySummary.\nAdditional information about the current lifecycle state.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ExternalDbSystemDiscoverySummary.\nThe date and time the external DB system discovery was created.') + time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this ExternalDbSystemDiscoverySummary.\nThe date and time the external DB system discovery was last updated.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalDbSystemDiscoverySummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalDbSystemDiscoverySummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalDbSystemDiscoverySummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class ExternalDbSystemMacsConnector(DbmBaseModel): + """The details of an external DB system connector that uses the +Management Agent Cloud Service (MACS) +to connect to an external DB system component.""" + + + + connector_type: Literal['MACS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this ExternalDbSystemConnector.\nThe type of connector.\n\nAllowed values for this property are: "MACS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + id: str = Field(..., description='**[Required]** Gets the id of this ExternalDbSystemConnector. The OCID of the external DB system connector.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalDbSystemConnector.\nThe user-friendly name for the external connector. The name does not have to be unique.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalDbSystemConnector. The OCID of the compartment.') + external_db_system_id: str = Field(..., alias='externalDbSystemId', description='**[Required]** Gets the external_db_system_id of this ExternalDbSystemConnector. The OCID of the external DB system that the connector is a part of.') + connection_status: str | None = Field(None, alias='connectionStatus', description='Gets the connection_status of this ExternalDbSystemConnector.\nThe status of connectivity to the external DB system component.') + connection_failure_message: str | None = Field(None, alias='connectionFailureMessage', description='Gets the connection_failure_message of this ExternalDbSystemConnector.\nThe error message indicating the reason for connection failure or `null` if\nthe connection was successful.') + lifecycle_state: Literal['CREATING', 'NOT_CONNECTED', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ExternalDbSystemConnector.\nThe current lifecycle state of the external DB system connector.\n\nAllowed values for this property are: "CREATING", "NOT_CONNECTED", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExternalDbSystemConnector.\nAdditional information about the current lifecycle state.') + time_connection_status_last_updated: datetime | None = Field(None, alias='timeConnectionStatusLastUpdated', description='Gets the time_connection_status_last_updated of this ExternalDbSystemConnector.\nThe date and time the connectionStatus of the external DB system connector was last updated.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ExternalDbSystemConnector.\nThe date and time the external DB system connector was created.') + time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this ExternalDbSystemConnector.\nThe date and time the external DB system connector was last updated.') + agent_id: str = Field(..., alias='agentId', description='**[Required]** Gets the agent_id of this ExternalDbSystemMacsConnector. The OCID of the management agent used for the external DB system connector.') + connection_info: ExternalDbSystemConnectionInfo | None = Field(None, alias='connectionInfo', description='Gets the connection_info of this ExternalDbSystemMacsConnector.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalDbSystemMacsConnector. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalDbSystemMacsConnector. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalDbSystemMacsConnector. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class ExternalDbSystemStackMonitoringConfigDetails(DbmRequestModel): + """The configuration details of Stack Monitoring for an external DB system.""" + + is_enabled: bool = Field(..., alias='isEnabled', description='**[Required]** Gets the is_enabled of this ExternalDbSystemStackMonitoringConfigDetails.\nThe status of the associated service.') + metadata: str | None = Field(None, description='Gets the metadata of this ExternalDbSystemStackMonitoringConfigDetails.\nThe associated service-specific inputs in JSON string format, which Database Management can identify.') + + +class ExternalDbSystemSummary(DbmBaseModel): + """The summary of an external DB system.""" + + id: str = Field(..., description='**[Required]** Gets the id of this ExternalDbSystemSummary. The OCID of the external DB system.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalDbSystemSummary.\nThe user-friendly name for the DB system. The name does not have to be unique.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalDbSystemSummary. The OCID of the compartment.') + home_directory: str | None = Field(None, alias='homeDirectory', description='Gets the home_directory of this ExternalDbSystemSummary.\nThe Oracle Grid home directory in case of cluster-based DB system and\nOracle home directory in case of single instance-based DB system.') + database_management_config: ExternalDbSystemDatabaseManagementConfigDetails | None = Field(None, alias='databaseManagementConfig', description='Gets the database_management_config of this ExternalDbSystemSummary.') + lifecycle_state: str = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ExternalDbSystemSummary.\nThe current lifecycle state of the external DB system resource.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExternalDbSystemSummary.\nAdditional information about the current lifecycle state.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ExternalDbSystemSummary.\nThe date and time the external DB system was created.') + time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this ExternalDbSystemSummary.\nThe date and time the external DB system was last updated.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalDbSystemSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalDbSystemSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalDbSystemSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class ExternalExadataDatabaseSystemSummary(DbmBaseModel): + """The DB systems of the Exadata infrastructure.""" + + id: str = Field(..., description='**[Required]** Gets the id of this DbmResource. The OCID of the Exadata resource.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DbmResource.\nThe name of the Exadata resource. English letters, numbers, "-", "_" and "." only.') + version: str | None = Field(None, description='Gets the version of this DbmResource.\nThe version of the Exadata resource.') + internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this DbmResource.\nThe internal ID of the Exadata resource.') + status: str | None = Field(None, description='Gets the status of this DbmResource.\nThe status of the Exadata resource.') + lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DbmResource.\nThe current lifecycle state of the database resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DbmResource.\nThe timestamp of the creation of the Exadata resource.') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DbmResource.\nThe timestamp of the last update of the Exadata resource.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DbmResource.\nThe details of the lifecycle state of the Exadata resource.') + additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this DbmResource.\nThe additional details of the resource defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') + resource_type: Literal['INFRASTRUCTURE_SUMMARY', 'INFRASTRUCTURE', 'STORAGE_SERVER_SUMMARY', 'STORAGE_SERVER', 'STORAGE_GRID_SUMMARY', 'STORAGE_GRID', 'STORAGE_CONNECTOR_SUMMARY', 'STORAGE_CONNECTOR', 'DATABASE_SYSTEM_SUMMARY', 'DATABASE_SUMMARY', 'VM_CLUSTER_SUMMARY', 'CLOUD_INFRASTRUCTURE_SUMMARY', 'CLOUD_INFRASTRUCTURE', 'CLOUD_STORAGE_SERVER_SUMMARY', 'CLOUD_STORAGE_SERVER', 'CLOUD_STORAGE_GRID_SUMMARY', 'CLOUD_STORAGE_GRID', 'CLOUD_STORAGE_CONNECTOR_SUMMARY', 'CLOUD_STORAGE_CONNECTOR', 'MANAGED_DATABASE_SUMMARY', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceType', description='**[Required]** Gets the resource_type of this DbmResource.\nThe type of Exadata resource.\n\nAllowed values for this property are: "INFRASTRUCTURE_SUMMARY", "INFRASTRUCTURE", "STORAGE_SERVER_SUMMARY", "STORAGE_SERVER", "STORAGE_GRID_SUMMARY", "STORAGE_GRID", "STORAGE_CONNECTOR_SUMMARY", "STORAGE_CONNECTOR", "DATABASE_SYSTEM_SUMMARY", "DATABASE_SUMMARY", "VM_CLUSTER_SUMMARY", "CLOUD_INFRASTRUCTURE_SUMMARY", "CLOUD_INFRASTRUCTURE", "CLOUD_STORAGE_SERVER_SUMMARY", "CLOUD_STORAGE_SERVER", "CLOUD_STORAGE_GRID_SUMMARY", "CLOUD_STORAGE_GRID", "CLOUD_STORAGE_CONNECTOR_SUMMARY", "CLOUD_STORAGE_CONNECTOR", "MANAGED_DATABASE_SUMMARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this ExternalExadataDatabaseSystemSummary. The OCID of the compartment.') + license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='licenseModel', description='Gets the license_model of this ExternalExadataDatabaseSystemSummary.\nThe Oracle license model that applies to the database management resources.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class ExternalExadataInfraBasicInfo(DbmBaseModel): + """The basic information about an external Exadata Infrastructure.""" + + id: str = Field(..., description='**[Required]** Gets the id of this ExternalExadataInfraBasicInfo. The OCID of the external Exadata Infrastructure.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalExadataInfraBasicInfo.\nThe user-friendly name for the Exadata Infrastructure. The name does not have to be unique.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalExadataInfraBasicInfo. The OCID of the compartment.') + + +class ExternalExadataInfrastructure(DbmBaseModel): + """The details of the Exadata infrastructure.""" + + id: str = Field(..., description='**[Required]** Gets the id of this DbmResource. The OCID of the Exadata resource.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DbmResource.\nThe name of the Exadata resource. English letters, numbers, "-", "_" and "." only.') + version: str | None = Field(None, description='Gets the version of this DbmResource.\nThe version of the Exadata resource.') + internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this DbmResource.\nThe internal ID of the Exadata resource.') + status: str | None = Field(None, description='Gets the status of this DbmResource.\nThe status of the Exadata resource.') + lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DbmResource.\nThe current lifecycle state of the database resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DbmResource.\nThe timestamp of the creation of the Exadata resource.') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DbmResource.\nThe timestamp of the last update of the Exadata resource.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DbmResource.\nThe details of the lifecycle state of the Exadata resource.') + additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this DbmResource.\nThe additional details of the resource defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') + resource_type: Literal['INFRASTRUCTURE_SUMMARY', 'INFRASTRUCTURE', 'STORAGE_SERVER_SUMMARY', 'STORAGE_SERVER', 'STORAGE_GRID_SUMMARY', 'STORAGE_GRID', 'STORAGE_CONNECTOR_SUMMARY', 'STORAGE_CONNECTOR', 'DATABASE_SYSTEM_SUMMARY', 'DATABASE_SUMMARY', 'VM_CLUSTER_SUMMARY', 'CLOUD_INFRASTRUCTURE_SUMMARY', 'CLOUD_INFRASTRUCTURE', 'CLOUD_STORAGE_SERVER_SUMMARY', 'CLOUD_STORAGE_SERVER', 'CLOUD_STORAGE_GRID_SUMMARY', 'CLOUD_STORAGE_GRID', 'CLOUD_STORAGE_CONNECTOR_SUMMARY', 'CLOUD_STORAGE_CONNECTOR', 'MANAGED_DATABASE_SUMMARY', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceType', description='**[Required]** Gets the resource_type of this DbmResource.\nThe type of Exadata resource.\n\nAllowed values for this property are: "INFRASTRUCTURE_SUMMARY", "INFRASTRUCTURE", "STORAGE_SERVER_SUMMARY", "STORAGE_SERVER", "STORAGE_GRID_SUMMARY", "STORAGE_GRID", "STORAGE_CONNECTOR_SUMMARY", "STORAGE_CONNECTOR", "DATABASE_SYSTEM_SUMMARY", "DATABASE_SUMMARY", "VM_CLUSTER_SUMMARY", "CLOUD_INFRASTRUCTURE_SUMMARY", "CLOUD_INFRASTRUCTURE", "CLOUD_STORAGE_SERVER_SUMMARY", "CLOUD_STORAGE_SERVER", "CLOUD_STORAGE_GRID_SUMMARY", "CLOUD_STORAGE_GRID", "CLOUD_STORAGE_CONNECTOR_SUMMARY", "CLOUD_STORAGE_CONNECTOR", "MANAGED_DATABASE_SUMMARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + rack_size: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='rackSize', description='Gets the rack_size of this ExternalExadataInfrastructure.\nThe rack size of the Exadata infrastructure.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this ExternalExadataInfrastructure. The OCID of the compartment.') + license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='licenseModel', description='Gets the license_model of this ExternalExadataInfrastructure.\nThe Oracle license model that applies to the database management resources.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + storage_grid: ExternalExadataStorageGridSummary | None = Field(None, alias='storageGrid', description='Gets the storage_grid of this ExternalExadataInfrastructure.') + database_systems: list[ExternalExadataDatabaseSystemSummary] | None = Field(None, alias='databaseSystems', description='Gets the database_systems of this ExternalExadataInfrastructure.\nA list of DB systems.') + database_compartments: list[str] | None = Field(None, alias='databaseCompartments', description='Gets the database_compartments of this ExternalExadataInfrastructure. The list of OCIDs] of the compartments.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalExadataInfrastructure. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalExadataInfrastructure. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalExadataInfrastructure. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class ExternalExadataInfrastructureCollection(DbmBaseModel): + """A list of the Exadata infrastructure resources.""" + + items: list[ExternalExadataInfrastructureSummary] = Field(..., description='**[Required]** Gets the items of this ExternalExadataInfrastructureCollection.\nA list of Exadata infrastructures.') + + +class ExternalExadataInfrastructureDiscovery(DbmBaseModel): + """The result of the Exadata infrastructure discovery.""" + + id: str | None = Field(None, description='Gets the id of this EntityDiscovered. The OCID of the entity discovered.') + agent_id: str | None = Field(None, alias='agentId', description='Gets the agent_id of this EntityDiscovered. The OCID of the agent used for monitoring.') + connector_id: str | None = Field(None, alias='connectorId', description='Gets the connector_id of this EntityDiscovered. The OCID of the associated connector.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this EntityDiscovered.\nThe name of the entity.') + version: str | None = Field(None, description='Gets the version of this EntityDiscovered.\nThe version of the entity.') + internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this EntityDiscovered.\nThe internal identifier of the entity.') + status: str | None = Field(None, description='Gets the status of this EntityDiscovered.\nThe status of the entity.') + discover_status: Literal['PREV_DISCOVERED', 'NEW_DISCOVERED', 'NOT_FOUND', 'DISCOVERING', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='discoverStatus', description='Gets the discover_status of this EntityDiscovered.\nThe status of the entity discovery.\n\nAllowed values for this property are: "PREV_DISCOVERED", "NEW_DISCOVERED", "NOT_FOUND", "DISCOVERING", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + discover_error_code: str | None = Field(None, alias='discoverErrorCode', description='Gets the discover_error_code of this EntityDiscovered.\nThe error code of the discovery.') + discover_error_msg: str | None = Field(None, alias='discoverErrorMsg', description='Gets the discover_error_msg of this EntityDiscovered.\nThe error message of the discovery.') + entity_type: Literal['STORAGE_SERVER_DISCOVER_SUMMARY', 'STORAGE_GRID_DISCOVER_SUMMARY', 'DATABASE_SYSTEM_DISCOVER_SUMMARY', 'INFRASTRUCTURE_DISCOVER_SUMMARY', 'INFRASTRUCTURE_DISCOVER', 'MANAGED_STORAGE_SERVER_DISCOVER_SUMMARY', 'MANAGED_STORAGE_GRID_DISCOVER_SUMMARY', 'VM_CLUSTER_DISCOVER_SUMMARY', 'MANAGED_INFRASTRUCTURE_DISCOVER_SUMMARY', 'CLOUD_INFRASTRUCTURE_DISCOVER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entityType', description='**[Required]** Gets the entity_type of this EntityDiscovered.\nThe type of discovered entities.\n\nAllowed values for this property are: "STORAGE_SERVER_DISCOVER_SUMMARY", "STORAGE_GRID_DISCOVER_SUMMARY", "DATABASE_SYSTEM_DISCOVER_SUMMARY", "INFRASTRUCTURE_DISCOVER_SUMMARY", "INFRASTRUCTURE_DISCOVER", "MANAGED_STORAGE_SERVER_DISCOVER_SUMMARY", "MANAGED_STORAGE_GRID_DISCOVER_SUMMARY", "VM_CLUSTER_DISCOVER_SUMMARY", "MANAGED_INFRASTRUCTURE_DISCOVER_SUMMARY", "CLOUD_INFRASTRUCTURE_DISCOVER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + discovery_key: str = Field(..., alias='discoveryKey', description='**[Required]** Gets the discovery_key of this ExternalExadataInfrastructureDiscovery.\nThe unique key of the discovery request.') + license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='licenseModel', description='Gets the license_model of this ExternalExadataInfrastructureDiscovery.\nThe Oracle license model that applies to the database management resources.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this ExternalExadataInfrastructureDiscovery. The OCID of the compartment.') + rack_size: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='rackSize', description='Gets the rack_size of this ExternalExadataInfrastructureDiscovery.\nThe size of the Exadata infrastructure.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + grid_home_path: str | None = Field(None, alias='gridHomePath', description='Gets the grid_home_path of this ExternalExadataInfrastructureDiscovery.\nThe Oracle home path of the Exadata infrastructure.') + db_systems: list[ExternalDatabaseSystemDiscoverySummary] | None = Field(None, alias='dbSystems', description='Gets the db_systems of this ExternalExadataInfrastructureDiscovery.\nThe list of DB systems in the Exadata infrastructure.') + storage_grid: ExternalStorageGridDiscoverySummary | None = Field(None, alias='storageGrid', description='Gets the storage_grid of this ExternalExadataInfrastructureDiscovery.') + storage_servers: list[ExternalStorageServerDiscoverySummary] | None = Field(None, alias='storageServers', description='Gets the storage_servers of this ExternalExadataInfrastructureDiscovery.\nThe list of storage servers in the Exadata infrastructure.') + + +class ExternalExadataInfrastructureDiscoverySummary(DbmBaseModel): + """The summary of the Exadata system infrastructure discovery.""" + + id: str | None = Field(None, description='Gets the id of this EntityDiscovered. The OCID of the entity discovered.') + agent_id: str | None = Field(None, alias='agentId', description='Gets the agent_id of this EntityDiscovered. The OCID of the agent used for monitoring.') + connector_id: str | None = Field(None, alias='connectorId', description='Gets the connector_id of this EntityDiscovered. The OCID of the associated connector.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this EntityDiscovered.\nThe name of the entity.') + version: str | None = Field(None, description='Gets the version of this EntityDiscovered.\nThe version of the entity.') + internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this EntityDiscovered.\nThe internal identifier of the entity.') + status: str | None = Field(None, description='Gets the status of this EntityDiscovered.\nThe status of the entity.') + discover_status: Literal['PREV_DISCOVERED', 'NEW_DISCOVERED', 'NOT_FOUND', 'DISCOVERING', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='discoverStatus', description='Gets the discover_status of this EntityDiscovered.\nThe status of the entity discovery.\n\nAllowed values for this property are: "PREV_DISCOVERED", "NEW_DISCOVERED", "NOT_FOUND", "DISCOVERING", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + discover_error_code: str | None = Field(None, alias='discoverErrorCode', description='Gets the discover_error_code of this EntityDiscovered.\nThe error code of the discovery.') + discover_error_msg: str | None = Field(None, alias='discoverErrorMsg', description='Gets the discover_error_msg of this EntityDiscovered.\nThe error message of the discovery.') + entity_type: Literal['STORAGE_SERVER_DISCOVER_SUMMARY', 'STORAGE_GRID_DISCOVER_SUMMARY', 'DATABASE_SYSTEM_DISCOVER_SUMMARY', 'INFRASTRUCTURE_DISCOVER_SUMMARY', 'INFRASTRUCTURE_DISCOVER', 'MANAGED_STORAGE_SERVER_DISCOVER_SUMMARY', 'MANAGED_STORAGE_GRID_DISCOVER_SUMMARY', 'VM_CLUSTER_DISCOVER_SUMMARY', 'MANAGED_INFRASTRUCTURE_DISCOVER_SUMMARY', 'CLOUD_INFRASTRUCTURE_DISCOVER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entityType', description='**[Required]** Gets the entity_type of this EntityDiscovered.\nThe type of discovered entities.\n\nAllowed values for this property are: "STORAGE_SERVER_DISCOVER_SUMMARY", "STORAGE_GRID_DISCOVER_SUMMARY", "DATABASE_SYSTEM_DISCOVER_SUMMARY", "INFRASTRUCTURE_DISCOVER_SUMMARY", "INFRASTRUCTURE_DISCOVER", "MANAGED_STORAGE_SERVER_DISCOVER_SUMMARY", "MANAGED_STORAGE_GRID_DISCOVER_SUMMARY", "VM_CLUSTER_DISCOVER_SUMMARY", "MANAGED_INFRASTRUCTURE_DISCOVER_SUMMARY", "CLOUD_INFRASTRUCTURE_DISCOVER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + rack_size: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='rackSize', description='Gets the rack_size of this ExternalExadataInfrastructureDiscoverySummary.\nThe size of the Exadata infrastructure.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class ExternalExadataInfrastructureSummary(DbmBaseModel): + """The Exadata infrastructure.""" + + id: str = Field(..., description='**[Required]** Gets the id of this DbmResource. The OCID of the Exadata resource.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DbmResource.\nThe name of the Exadata resource. English letters, numbers, "-", "_" and "." only.') + version: str | None = Field(None, description='Gets the version of this DbmResource.\nThe version of the Exadata resource.') + internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this DbmResource.\nThe internal ID of the Exadata resource.') + status: str | None = Field(None, description='Gets the status of this DbmResource.\nThe status of the Exadata resource.') + lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DbmResource.\nThe current lifecycle state of the database resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DbmResource.\nThe timestamp of the creation of the Exadata resource.') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DbmResource.\nThe timestamp of the last update of the Exadata resource.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DbmResource.\nThe details of the lifecycle state of the Exadata resource.') + additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this DbmResource.\nThe additional details of the resource defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') + resource_type: Literal['INFRASTRUCTURE_SUMMARY', 'INFRASTRUCTURE', 'STORAGE_SERVER_SUMMARY', 'STORAGE_SERVER', 'STORAGE_GRID_SUMMARY', 'STORAGE_GRID', 'STORAGE_CONNECTOR_SUMMARY', 'STORAGE_CONNECTOR', 'DATABASE_SYSTEM_SUMMARY', 'DATABASE_SUMMARY', 'VM_CLUSTER_SUMMARY', 'CLOUD_INFRASTRUCTURE_SUMMARY', 'CLOUD_INFRASTRUCTURE', 'CLOUD_STORAGE_SERVER_SUMMARY', 'CLOUD_STORAGE_SERVER', 'CLOUD_STORAGE_GRID_SUMMARY', 'CLOUD_STORAGE_GRID', 'CLOUD_STORAGE_CONNECTOR_SUMMARY', 'CLOUD_STORAGE_CONNECTOR', 'MANAGED_DATABASE_SUMMARY', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceType', description='**[Required]** Gets the resource_type of this DbmResource.\nThe type of Exadata resource.\n\nAllowed values for this property are: "INFRASTRUCTURE_SUMMARY", "INFRASTRUCTURE", "STORAGE_SERVER_SUMMARY", "STORAGE_SERVER", "STORAGE_GRID_SUMMARY", "STORAGE_GRID", "STORAGE_CONNECTOR_SUMMARY", "STORAGE_CONNECTOR", "DATABASE_SYSTEM_SUMMARY", "DATABASE_SUMMARY", "VM_CLUSTER_SUMMARY", "CLOUD_INFRASTRUCTURE_SUMMARY", "CLOUD_INFRASTRUCTURE", "CLOUD_STORAGE_SERVER_SUMMARY", "CLOUD_STORAGE_SERVER", "CLOUD_STORAGE_GRID_SUMMARY", "CLOUD_STORAGE_GRID", "CLOUD_STORAGE_CONNECTOR_SUMMARY", "CLOUD_STORAGE_CONNECTOR", "MANAGED_DATABASE_SUMMARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + rack_size: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='rackSize', description='Gets the rack_size of this ExternalExadataInfrastructureSummary.\nThe rack size of the Exadata infrastructure.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalExadataInfrastructureSummary. The OCID of the compartment.') + license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='licenseModel', description='Gets the license_model of this ExternalExadataInfrastructureSummary.\nThe Oracle license model that applies to the database management resources.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + grid_home_path: str | None = Field(None, alias='gridHomePath', description='Gets the grid_home_path of this ExternalExadataInfrastructureSummary.\nThe Oracle grid home path.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalExadataInfrastructureSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalExadataInfrastructureSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalExadataInfrastructureSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class ExternalExadataStorageConnector(DbmBaseModel): + """The details of the Exadata storage server connector.""" + + id: str = Field(..., description='**[Required]** Gets the id of this DbmResource. The OCID of the Exadata resource.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DbmResource.\nThe name of the Exadata resource. English letters, numbers, "-", "_" and "." only.') + version: str | None = Field(None, description='Gets the version of this DbmResource.\nThe version of the Exadata resource.') + internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this DbmResource.\nThe internal ID of the Exadata resource.') + status: str | None = Field(None, description='Gets the status of this DbmResource.\nThe status of the Exadata resource.') + lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DbmResource.\nThe current lifecycle state of the database resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DbmResource.\nThe timestamp of the creation of the Exadata resource.') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DbmResource.\nThe timestamp of the last update of the Exadata resource.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DbmResource.\nThe details of the lifecycle state of the Exadata resource.') + additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this DbmResource.\nThe additional details of the resource defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') + resource_type: Literal['INFRASTRUCTURE_SUMMARY', 'INFRASTRUCTURE', 'STORAGE_SERVER_SUMMARY', 'STORAGE_SERVER', 'STORAGE_GRID_SUMMARY', 'STORAGE_GRID', 'STORAGE_CONNECTOR_SUMMARY', 'STORAGE_CONNECTOR', 'DATABASE_SYSTEM_SUMMARY', 'DATABASE_SUMMARY', 'VM_CLUSTER_SUMMARY', 'CLOUD_INFRASTRUCTURE_SUMMARY', 'CLOUD_INFRASTRUCTURE', 'CLOUD_STORAGE_SERVER_SUMMARY', 'CLOUD_STORAGE_SERVER', 'CLOUD_STORAGE_GRID_SUMMARY', 'CLOUD_STORAGE_GRID', 'CLOUD_STORAGE_CONNECTOR_SUMMARY', 'CLOUD_STORAGE_CONNECTOR', 'MANAGED_DATABASE_SUMMARY', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceType', description='**[Required]** Gets the resource_type of this DbmResource.\nThe type of Exadata resource.\n\nAllowed values for this property are: "INFRASTRUCTURE_SUMMARY", "INFRASTRUCTURE", "STORAGE_SERVER_SUMMARY", "STORAGE_SERVER", "STORAGE_GRID_SUMMARY", "STORAGE_GRID", "STORAGE_CONNECTOR_SUMMARY", "STORAGE_CONNECTOR", "DATABASE_SYSTEM_SUMMARY", "DATABASE_SUMMARY", "VM_CLUSTER_SUMMARY", "CLOUD_INFRASTRUCTURE_SUMMARY", "CLOUD_INFRASTRUCTURE", "CLOUD_STORAGE_SERVER_SUMMARY", "CLOUD_STORAGE_SERVER", "CLOUD_STORAGE_GRID_SUMMARY", "CLOUD_STORAGE_GRID", "CLOUD_STORAGE_CONNECTOR_SUMMARY", "CLOUD_STORAGE_CONNECTOR", "MANAGED_DATABASE_SUMMARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + exadata_infrastructure_id: str | None = Field(None, alias='exadataInfrastructureId', description='Gets the exadata_infrastructure_id of this ExternalExadataStorageConnector. The OCID of the Exadata infrastructure.') + agent_id: str | None = Field(None, alias='agentId', description='Gets the agent_id of this ExternalExadataStorageConnector. The OCID of the agent for the Exadata storage server.') + connection_uri: str | None = Field(None, alias='connectionUri', description='Gets the connection_uri of this ExternalExadataStorageConnector. The unique string of the connection. For example, ".') + storage_server_id: str | None = Field(None, alias='storageServerId', description='Gets the storage_server_id of this ExternalExadataStorageConnector. The OCID of the Exadata storage server.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalExadataStorageConnector. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalExadataStorageConnector. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalExadataStorageConnector. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class ExternalExadataStorageConnectorCollection(DbmBaseModel): + """The Exadata storage server connector list.""" + + items: list[ExternalExadataStorageConnectorSummary] = Field(..., description='**[Required]** Gets the items of this ExternalExadataStorageConnectorCollection.\nA list of Exadata storage server connectors.') + + +class ExternalExadataStorageConnectorStatus(DbmBaseModel): + """The status of an Exadata storage server connector.""" + + id: str | None = Field(None, description='Gets the id of this ExternalExadataStorageConnectorStatus. The OCID of the Exadata storage server connector.') + status: Literal['SUCCEEDED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the status of this ExternalExadataStorageConnectorStatus.\nThe connection status of the connector.\n\nAllowed values for this property are: "SUCCEEDED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + error_message: str | None = Field(None, alias='errorMessage', description='Gets the error_message of this ExternalExadataStorageConnectorStatus.\nThe error message indicating the reason for failure or `null` if the connection was successful.') + + +class ExternalExadataStorageConnectorSummary(DbmBaseModel): + """The connector of the Exadata storage server.""" + + id: str = Field(..., description='**[Required]** Gets the id of this DbmResource. The OCID of the Exadata resource.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DbmResource.\nThe name of the Exadata resource. English letters, numbers, "-", "_" and "." only.') + version: str | None = Field(None, description='Gets the version of this DbmResource.\nThe version of the Exadata resource.') + internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this DbmResource.\nThe internal ID of the Exadata resource.') + status: str | None = Field(None, description='Gets the status of this DbmResource.\nThe status of the Exadata resource.') + lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DbmResource.\nThe current lifecycle state of the database resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DbmResource.\nThe timestamp of the creation of the Exadata resource.') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DbmResource.\nThe timestamp of the last update of the Exadata resource.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DbmResource.\nThe details of the lifecycle state of the Exadata resource.') + additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this DbmResource.\nThe additional details of the resource defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') + resource_type: Literal['INFRASTRUCTURE_SUMMARY', 'INFRASTRUCTURE', 'STORAGE_SERVER_SUMMARY', 'STORAGE_SERVER', 'STORAGE_GRID_SUMMARY', 'STORAGE_GRID', 'STORAGE_CONNECTOR_SUMMARY', 'STORAGE_CONNECTOR', 'DATABASE_SYSTEM_SUMMARY', 'DATABASE_SUMMARY', 'VM_CLUSTER_SUMMARY', 'CLOUD_INFRASTRUCTURE_SUMMARY', 'CLOUD_INFRASTRUCTURE', 'CLOUD_STORAGE_SERVER_SUMMARY', 'CLOUD_STORAGE_SERVER', 'CLOUD_STORAGE_GRID_SUMMARY', 'CLOUD_STORAGE_GRID', 'CLOUD_STORAGE_CONNECTOR_SUMMARY', 'CLOUD_STORAGE_CONNECTOR', 'MANAGED_DATABASE_SUMMARY', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceType', description='**[Required]** Gets the resource_type of this DbmResource.\nThe type of Exadata resource.\n\nAllowed values for this property are: "INFRASTRUCTURE_SUMMARY", "INFRASTRUCTURE", "STORAGE_SERVER_SUMMARY", "STORAGE_SERVER", "STORAGE_GRID_SUMMARY", "STORAGE_GRID", "STORAGE_CONNECTOR_SUMMARY", "STORAGE_CONNECTOR", "DATABASE_SYSTEM_SUMMARY", "DATABASE_SUMMARY", "VM_CLUSTER_SUMMARY", "CLOUD_INFRASTRUCTURE_SUMMARY", "CLOUD_INFRASTRUCTURE", "CLOUD_STORAGE_SERVER_SUMMARY", "CLOUD_STORAGE_SERVER", "CLOUD_STORAGE_GRID_SUMMARY", "CLOUD_STORAGE_GRID", "CLOUD_STORAGE_CONNECTOR_SUMMARY", "CLOUD_STORAGE_CONNECTOR", "MANAGED_DATABASE_SUMMARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + connection_uri: str | None = Field(None, alias='connectionUri', description='Gets the connection_uri of this ExternalExadataStorageConnectorSummary. The unique string of the connection. For example, ".') + storage_server_id: str | None = Field(None, alias='storageServerId', description='Gets the storage_server_id of this ExternalExadataStorageConnectorSummary. The OCID of the Exadata storage server.') + agent_id: str | None = Field(None, alias='agentId', description='Gets the agent_id of this ExternalExadataStorageConnectorSummary. The OCID of the agent for the Exadata storage server.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalExadataStorageConnectorSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalExadataStorageConnectorSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalExadataStorageConnectorSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class ExternalExadataStorageGrid(DbmBaseModel): + """The details of the Exadata storage server grid.""" + + id: str = Field(..., description='**[Required]** Gets the id of this DbmResource. The OCID of the Exadata resource.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DbmResource.\nThe name of the Exadata resource. English letters, numbers, "-", "_" and "." only.') + version: str | None = Field(None, description='Gets the version of this DbmResource.\nThe version of the Exadata resource.') + internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this DbmResource.\nThe internal ID of the Exadata resource.') + status: str | None = Field(None, description='Gets the status of this DbmResource.\nThe status of the Exadata resource.') + lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DbmResource.\nThe current lifecycle state of the database resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DbmResource.\nThe timestamp of the creation of the Exadata resource.') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DbmResource.\nThe timestamp of the last update of the Exadata resource.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DbmResource.\nThe details of the lifecycle state of the Exadata resource.') + additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this DbmResource.\nThe additional details of the resource defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') + resource_type: Literal['INFRASTRUCTURE_SUMMARY', 'INFRASTRUCTURE', 'STORAGE_SERVER_SUMMARY', 'STORAGE_SERVER', 'STORAGE_GRID_SUMMARY', 'STORAGE_GRID', 'STORAGE_CONNECTOR_SUMMARY', 'STORAGE_CONNECTOR', 'DATABASE_SYSTEM_SUMMARY', 'DATABASE_SUMMARY', 'VM_CLUSTER_SUMMARY', 'CLOUD_INFRASTRUCTURE_SUMMARY', 'CLOUD_INFRASTRUCTURE', 'CLOUD_STORAGE_SERVER_SUMMARY', 'CLOUD_STORAGE_SERVER', 'CLOUD_STORAGE_GRID_SUMMARY', 'CLOUD_STORAGE_GRID', 'CLOUD_STORAGE_CONNECTOR_SUMMARY', 'CLOUD_STORAGE_CONNECTOR', 'MANAGED_DATABASE_SUMMARY', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceType', description='**[Required]** Gets the resource_type of this DbmResource.\nThe type of Exadata resource.\n\nAllowed values for this property are: "INFRASTRUCTURE_SUMMARY", "INFRASTRUCTURE", "STORAGE_SERVER_SUMMARY", "STORAGE_SERVER", "STORAGE_GRID_SUMMARY", "STORAGE_GRID", "STORAGE_CONNECTOR_SUMMARY", "STORAGE_CONNECTOR", "DATABASE_SYSTEM_SUMMARY", "DATABASE_SUMMARY", "VM_CLUSTER_SUMMARY", "CLOUD_INFRASTRUCTURE_SUMMARY", "CLOUD_INFRASTRUCTURE", "CLOUD_STORAGE_SERVER_SUMMARY", "CLOUD_STORAGE_SERVER", "CLOUD_STORAGE_GRID_SUMMARY", "CLOUD_STORAGE_GRID", "CLOUD_STORAGE_CONNECTOR_SUMMARY", "CLOUD_STORAGE_CONNECTOR", "MANAGED_DATABASE_SUMMARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + exadata_infrastructure_id: str | None = Field(None, alias='exadataInfrastructureId', description='Gets the exadata_infrastructure_id of this ExternalExadataStorageGrid. The OCID of the Exadata infrastructure.') + server_count: float | None = Field(None, ge=0, alias='serverCount', description='Gets the server_count of this ExternalExadataStorageGrid.\nThe number of Exadata storage servers in the Exadata infrastructure.') + storage_servers: list[ExternalExadataStorageServerSummary] | None = Field(None, alias='storageServers', description='Gets the storage_servers of this ExternalExadataStorageGrid.\nA list of monitored Exadata storage servers.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalExadataStorageGrid. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalExadataStorageGrid. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalExadataStorageGrid. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class ExternalExadataStorageGridSummary(DbmBaseModel): + """The Exadata storage server grid of the Exadata infrastructure.""" + + id: str = Field(..., description='**[Required]** Gets the id of this DbmResource. The OCID of the Exadata resource.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DbmResource.\nThe name of the Exadata resource. English letters, numbers, "-", "_" and "." only.') + version: str | None = Field(None, description='Gets the version of this DbmResource.\nThe version of the Exadata resource.') + internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this DbmResource.\nThe internal ID of the Exadata resource.') + status: str | None = Field(None, description='Gets the status of this DbmResource.\nThe status of the Exadata resource.') + lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DbmResource.\nThe current lifecycle state of the database resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DbmResource.\nThe timestamp of the creation of the Exadata resource.') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DbmResource.\nThe timestamp of the last update of the Exadata resource.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DbmResource.\nThe details of the lifecycle state of the Exadata resource.') + additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this DbmResource.\nThe additional details of the resource defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') + resource_type: Literal['INFRASTRUCTURE_SUMMARY', 'INFRASTRUCTURE', 'STORAGE_SERVER_SUMMARY', 'STORAGE_SERVER', 'STORAGE_GRID_SUMMARY', 'STORAGE_GRID', 'STORAGE_CONNECTOR_SUMMARY', 'STORAGE_CONNECTOR', 'DATABASE_SYSTEM_SUMMARY', 'DATABASE_SUMMARY', 'VM_CLUSTER_SUMMARY', 'CLOUD_INFRASTRUCTURE_SUMMARY', 'CLOUD_INFRASTRUCTURE', 'CLOUD_STORAGE_SERVER_SUMMARY', 'CLOUD_STORAGE_SERVER', 'CLOUD_STORAGE_GRID_SUMMARY', 'CLOUD_STORAGE_GRID', 'CLOUD_STORAGE_CONNECTOR_SUMMARY', 'CLOUD_STORAGE_CONNECTOR', 'MANAGED_DATABASE_SUMMARY', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceType', description='**[Required]** Gets the resource_type of this DbmResource.\nThe type of Exadata resource.\n\nAllowed values for this property are: "INFRASTRUCTURE_SUMMARY", "INFRASTRUCTURE", "STORAGE_SERVER_SUMMARY", "STORAGE_SERVER", "STORAGE_GRID_SUMMARY", "STORAGE_GRID", "STORAGE_CONNECTOR_SUMMARY", "STORAGE_CONNECTOR", "DATABASE_SYSTEM_SUMMARY", "DATABASE_SUMMARY", "VM_CLUSTER_SUMMARY", "CLOUD_INFRASTRUCTURE_SUMMARY", "CLOUD_INFRASTRUCTURE", "CLOUD_STORAGE_SERVER_SUMMARY", "CLOUD_STORAGE_SERVER", "CLOUD_STORAGE_GRID_SUMMARY", "CLOUD_STORAGE_GRID", "CLOUD_STORAGE_CONNECTOR_SUMMARY", "CLOUD_STORAGE_CONNECTOR", "MANAGED_DATABASE_SUMMARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + server_count: float | None = Field(None, ge=0, alias='serverCount', description='Gets the server_count of this ExternalExadataStorageGridSummary.\nThe number of Exadata storage servers in the Exadata infrastructure.') + + +class ExternalExadataStorageServer(DbmBaseModel): + """The details of the Exadata storage server.""" + + id: str = Field(..., description='**[Required]** Gets the id of this DbmResource. The OCID of the Exadata resource.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DbmResource.\nThe name of the Exadata resource. English letters, numbers, "-", "_" and "." only.') + version: str | None = Field(None, description='Gets the version of this DbmResource.\nThe version of the Exadata resource.') + internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this DbmResource.\nThe internal ID of the Exadata resource.') + status: str | None = Field(None, description='Gets the status of this DbmResource.\nThe status of the Exadata resource.') + lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DbmResource.\nThe current lifecycle state of the database resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DbmResource.\nThe timestamp of the creation of the Exadata resource.') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DbmResource.\nThe timestamp of the last update of the Exadata resource.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DbmResource.\nThe details of the lifecycle state of the Exadata resource.') + additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this DbmResource.\nThe additional details of the resource defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') + resource_type: Literal['INFRASTRUCTURE_SUMMARY', 'INFRASTRUCTURE', 'STORAGE_SERVER_SUMMARY', 'STORAGE_SERVER', 'STORAGE_GRID_SUMMARY', 'STORAGE_GRID', 'STORAGE_CONNECTOR_SUMMARY', 'STORAGE_CONNECTOR', 'DATABASE_SYSTEM_SUMMARY', 'DATABASE_SUMMARY', 'VM_CLUSTER_SUMMARY', 'CLOUD_INFRASTRUCTURE_SUMMARY', 'CLOUD_INFRASTRUCTURE', 'CLOUD_STORAGE_SERVER_SUMMARY', 'CLOUD_STORAGE_SERVER', 'CLOUD_STORAGE_GRID_SUMMARY', 'CLOUD_STORAGE_GRID', 'CLOUD_STORAGE_CONNECTOR_SUMMARY', 'CLOUD_STORAGE_CONNECTOR', 'MANAGED_DATABASE_SUMMARY', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceType', description='**[Required]** Gets the resource_type of this DbmResource.\nThe type of Exadata resource.\n\nAllowed values for this property are: "INFRASTRUCTURE_SUMMARY", "INFRASTRUCTURE", "STORAGE_SERVER_SUMMARY", "STORAGE_SERVER", "STORAGE_GRID_SUMMARY", "STORAGE_GRID", "STORAGE_CONNECTOR_SUMMARY", "STORAGE_CONNECTOR", "DATABASE_SYSTEM_SUMMARY", "DATABASE_SUMMARY", "VM_CLUSTER_SUMMARY", "CLOUD_INFRASTRUCTURE_SUMMARY", "CLOUD_INFRASTRUCTURE", "CLOUD_STORAGE_SERVER_SUMMARY", "CLOUD_STORAGE_SERVER", "CLOUD_STORAGE_GRID_SUMMARY", "CLOUD_STORAGE_GRID", "CLOUD_STORAGE_CONNECTOR_SUMMARY", "CLOUD_STORAGE_CONNECTOR", "MANAGED_DATABASE_SUMMARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + exadata_infrastructure_id: str | None = Field(None, alias='exadataInfrastructureId', description='Gets the exadata_infrastructure_id of this ExternalExadataStorageServer. The OCID of the Exadata infrastructure.') + storage_grid_id: str | None = Field(None, alias='storageGridId', description='Gets the storage_grid_id of this ExternalExadataStorageServer. The OCID of the Exadata storage server grid.') + make_model: str | None = Field(None, alias='makeModel', description='Gets the make_model of this ExternalExadataStorageServer.\nThe make model of the Exadata storage server.') + ip_address: str | None = Field(None, alias='ipAddress', description='Gets the ip_address of this ExternalExadataStorageServer.\nThe IP address of the Exadata storage server.') + cpu_count: float | None = Field(None, ge=0, alias='cpuCount', description='Gets the cpu_count of this ExternalExadataStorageServer.\nThe CPU count of the Exadata storage server.') + memory_gb: float | None = Field(None, alias='memoryGB', description='Gets the memory_gb of this ExternalExadataStorageServer.\nThe Exadata storage server memory size in GB.') + max_hard_disk_iops: int | None = Field(None, alias='maxHardDiskIOPS', description='Gets the max_hard_disk_iops of this ExternalExadataStorageServer.\nThe maximum hard disk IO operations per second of the Exadata storage server.') + max_hard_disk_throughput: int | None = Field(None, alias='maxHardDiskThroughput', description='Gets the max_hard_disk_throughput of this ExternalExadataStorageServer.\nThe maximum hard disk IO throughput in MB/s of the Exadata storage server.') + max_flash_disk_iops: int | None = Field(None, alias='maxFlashDiskIOPS', description='Gets the max_flash_disk_iops of this ExternalExadataStorageServer.\nThe maximum flash disk IO operations per second of the Exadata storage server.') + max_flash_disk_throughput: int | None = Field(None, alias='maxFlashDiskThroughput', description='Gets the max_flash_disk_throughput of this ExternalExadataStorageServer.\nThe maximum flash disk IO throughput in MB/s of the Exadata storage server.') + connector: ExternalExadataStorageConnectorSummary | None = Field(None, description='Gets the connector of this ExternalExadataStorageServer.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalExadataStorageServer. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalExadataStorageServer. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalExadataStorageServer. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class ExternalExadataStorageServerCollection(DbmBaseModel): + """The Exadata storage server list.""" + + items: list[ExternalExadataStorageServerSummary] = Field(..., description='**[Required]** Gets the items of this ExternalExadataStorageServerCollection.\nA list of Exadata storage servers.') + + +class ExternalExadataStorageServerSummary(DbmBaseModel): + """The Exadata storage server of the Exadata infrastructure.""" + + id: str = Field(..., description='**[Required]** Gets the id of this DbmResource. The OCID of the Exadata resource.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DbmResource.\nThe name of the Exadata resource. English letters, numbers, "-", "_" and "." only.') + version: str | None = Field(None, description='Gets the version of this DbmResource.\nThe version of the Exadata resource.') + internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this DbmResource.\nThe internal ID of the Exadata resource.') + status: str | None = Field(None, description='Gets the status of this DbmResource.\nThe status of the Exadata resource.') + lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DbmResource.\nThe current lifecycle state of the database resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DbmResource.\nThe timestamp of the creation of the Exadata resource.') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DbmResource.\nThe timestamp of the last update of the Exadata resource.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DbmResource.\nThe details of the lifecycle state of the Exadata resource.') + additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this DbmResource.\nThe additional details of the resource defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') + resource_type: Literal['INFRASTRUCTURE_SUMMARY', 'INFRASTRUCTURE', 'STORAGE_SERVER_SUMMARY', 'STORAGE_SERVER', 'STORAGE_GRID_SUMMARY', 'STORAGE_GRID', 'STORAGE_CONNECTOR_SUMMARY', 'STORAGE_CONNECTOR', 'DATABASE_SYSTEM_SUMMARY', 'DATABASE_SUMMARY', 'VM_CLUSTER_SUMMARY', 'CLOUD_INFRASTRUCTURE_SUMMARY', 'CLOUD_INFRASTRUCTURE', 'CLOUD_STORAGE_SERVER_SUMMARY', 'CLOUD_STORAGE_SERVER', 'CLOUD_STORAGE_GRID_SUMMARY', 'CLOUD_STORAGE_GRID', 'CLOUD_STORAGE_CONNECTOR_SUMMARY', 'CLOUD_STORAGE_CONNECTOR', 'MANAGED_DATABASE_SUMMARY', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceType', description='**[Required]** Gets the resource_type of this DbmResource.\nThe type of Exadata resource.\n\nAllowed values for this property are: "INFRASTRUCTURE_SUMMARY", "INFRASTRUCTURE", "STORAGE_SERVER_SUMMARY", "STORAGE_SERVER", "STORAGE_GRID_SUMMARY", "STORAGE_GRID", "STORAGE_CONNECTOR_SUMMARY", "STORAGE_CONNECTOR", "DATABASE_SYSTEM_SUMMARY", "DATABASE_SUMMARY", "VM_CLUSTER_SUMMARY", "CLOUD_INFRASTRUCTURE_SUMMARY", "CLOUD_INFRASTRUCTURE", "CLOUD_STORAGE_SERVER_SUMMARY", "CLOUD_STORAGE_SERVER", "CLOUD_STORAGE_GRID_SUMMARY", "CLOUD_STORAGE_GRID", "CLOUD_STORAGE_CONNECTOR_SUMMARY", "CLOUD_STORAGE_CONNECTOR", "MANAGED_DATABASE_SUMMARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + make_model: str | None = Field(None, alias='makeModel', description='Gets the make_model of this ExternalExadataStorageServerSummary.\nThe make model of the Exadata storage server.') + ip_address: str | None = Field(None, alias='ipAddress', description='Gets the ip_address of this ExternalExadataStorageServerSummary.\nThe IP address of the Exadata storage server.') + cpu_count: float | None = Field(None, ge=0, alias='cpuCount', description='Gets the cpu_count of this ExternalExadataStorageServerSummary.\nThe CPU count of the Exadata storage server.') + memory_gb: float | None = Field(None, alias='memoryGB', description='Gets the memory_gb of this ExternalExadataStorageServerSummary.\nThe Exadata storage server memory size in GB.') + max_hard_disk_iops: int | None = Field(None, alias='maxHardDiskIOPS', description='Gets the max_hard_disk_iops of this ExternalExadataStorageServerSummary.\nThe maximum hard disk IO operations per second of the Exadata storage server.') + max_hard_disk_throughput: int | None = Field(None, alias='maxHardDiskThroughput', description='Gets the max_hard_disk_throughput of this ExternalExadataStorageServerSummary.\nThe maximum hard disk IO throughput in MB/s of the Exadata storage server.') + max_flash_disk_iops: int | None = Field(None, alias='maxFlashDiskIOPS', description='Gets the max_flash_disk_iops of this ExternalExadataStorageServerSummary.\nThe maximum flash disk IO operations per second of the Exadata storage server.') + max_flash_disk_throughput: int | None = Field(None, alias='maxFlashDiskThroughput', description='Gets the max_flash_disk_throughput of this ExternalExadataStorageServerSummary.\nThe maximum flash disk IO throughput in MB/s of the Exadata storage server.') + connector_id: str | None = Field(None, alias='connectorId', description='Gets the connector_id of this ExternalExadataStorageServerSummary. The OCID of the connector.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalExadataStorageServerSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalExadataStorageServerSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalExadataStorageServerSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class ExternalListener(DbmBaseModel): + """The details of an external listener.""" + + id: str = Field(..., description='**[Required]** Gets the id of this ExternalListener. The OCID of the external listener.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalListener.\nThe user-friendly name for the external listener. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this ExternalListener.\nThe name of the external listener.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalListener. The OCID of the compartment.') + external_db_system_id: str = Field(..., alias='externalDbSystemId', description='**[Required]** Gets the external_db_system_id of this ExternalListener. The OCID of the external DB system that the listener is a part of.') + external_connector_id: str | None = Field(None, alias='externalConnectorId', description='Gets the external_connector_id of this ExternalListener. The OCID of the external connector.') + external_db_node_id: str | None = Field(None, alias='externalDbNodeId', description='Gets the external_db_node_id of this ExternalListener. The OCID of the external DB node.') + external_db_home_id: str | None = Field(None, alias='externalDbHomeId', description='Gets the external_db_home_id of this ExternalListener. The OCID of the external DB home.') + listener_alias: str | None = Field(None, alias='listenerAlias', description='Gets the listener_alias of this ExternalListener.\nThe listener alias.') + listener_type: Literal['ASM', 'LOCAL', 'SCAN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='listenerType', description='Gets the listener_type of this ExternalListener.\nThe type of listener.\n\nAllowed values for this property are: "ASM", "LOCAL", "SCAN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this ExternalListener.\nThe additional details of the external listener defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') + lifecycle_state: Literal['CREATING', 'NOT_CONNECTED', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ExternalListener.\nThe current lifecycle state of the external listener.\n\nAllowed values for this property are: "CREATING", "NOT_CONNECTED", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExternalListener.\nAdditional information about the current lifecycle state.') + listener_ora_location: str | None = Field(None, alias='listenerOraLocation', description='Gets the listener_ora_location of this ExternalListener.\nThe location of the listener configuration file listener.ora.') + oracle_home: str | None = Field(None, alias='oracleHome', description='Gets the oracle_home of this ExternalListener.\nThe Oracle home location of the listener.') + host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this ExternalListener.\nThe name of the host on which the external listener is running.') + adr_home_directory: str | None = Field(None, alias='adrHomeDirectory', description='Gets the adr_home_directory of this ExternalListener.\nThe directory that stores tracing and logging incidents when Automatic Diagnostic Repository (ADR) is enabled.') + log_directory: str | None = Field(None, alias='logDirectory', description='Gets the log_directory of this ExternalListener.\nThe destination directory of the listener log file.') + trace_directory: str | None = Field(None, alias='traceDirectory', description='Gets the trace_directory of this ExternalListener.\nThe destination directory of the listener trace file.') + version: str | None = Field(None, description='Gets the version of this ExternalListener.\nThe listener version.') + endpoints: list[ExternalListenerEndpoint] | None = Field(None, description='Gets the endpoints of this ExternalListener.\nThe list of protocol addresses the listener is configured to listen on.') + serviced_databases: list[ExternalListenerServicedDatabase] | None = Field(None, alias='servicedDatabases', description='Gets the serviced_databases of this ExternalListener.\nThe list of databases that are serviced by the listener.') + serviced_asms: list[ExternalServicedAsm] | None = Field(None, alias='servicedAsms', description='Gets the serviced_asms of this ExternalListener.\nThe list of ASMs that are serviced by the listener.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ExternalListener.\nThe date and time the external listener was created.') + time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this ExternalListener.\nThe date and time the external listener was last updated.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalListener. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalListener. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalListener. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class ExternalListenerCollection(DbmBaseModel): + """A collection of external listeners.""" + + items: list[ExternalListenerSummary] = Field(..., description='**[Required]** Gets the items of this ExternalListenerCollection.\nAn array of external listeners.') + + +class ExternalListenerEndpoint(DbmBaseModel): + """The protocol address that an external listener is configured to listen on.""" + + protocol: Literal['IPC', 'TCP', 'TCPS', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the protocol of this ExternalListenerEndpoint.\nThe listener protocol.\n\nAllowed values for this property are: "IPC", "TCP", "TCPS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + services: list[str] | None = Field(None, description='Gets the services of this ExternalListenerEndpoint.\nThe list of services registered with the listener.') + + +class ExternalListenerIpcEndpoint(DbmBaseModel): + """An `IPC`-based protocol address.""" + + protocol: Literal['IPC', 'TCP', 'TCPS', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the protocol of this ExternalListenerEndpoint.\nThe listener protocol.\n\nAllowed values for this property are: "IPC", "TCP", "TCPS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + services: list[str] | None = Field(None, description='Gets the services of this ExternalListenerEndpoint.\nThe list of services registered with the listener.') + key: str = Field(..., description='**[Required]** Gets the key of this ExternalListenerIpcEndpoint.\nThe unique name of the service.') + + +class ExternalListenerServiceCollection(DbmBaseModel): + """A collection of external listener services.""" + + items: list[ExternalListenerServiceSummary] = Field(..., description='**[Required]** Gets the items of this ExternalListenerServiceCollection.\nAn array of external listener services.') + + +class ExternalListenerServiceSummary(DbmBaseModel): + """The summary of a service registered with an external listener.""" + + name: str = Field(..., description='**[Required]** Gets the name of this ExternalListenerServiceSummary.\nThe name of the service.') + listener_id: str | None = Field(None, alias='listenerId', description='Gets the listener_id of this ExternalListenerServiceSummary. The OCID of the external listener.') + managed_database_id: str | None = Field(None, alias='managedDatabaseId', description='Gets the managed_database_id of this ExternalListenerServiceSummary. The OCID of the Managed Database.') + + +class ExternalListenerServicedDatabase(DbmBaseModel): + """The details of a database serviced by an external listener.""" + + id: str = Field(..., description='**[Required]** Gets the id of this ExternalListenerServicedDatabase. The OCID of the external database.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalListenerServicedDatabase.\nThe user-friendly name for the database. The name does not have to be unique.') + db_unique_name: str | None = Field(None, alias='dbUniqueName', description='Gets the db_unique_name of this ExternalListenerServicedDatabase.\nThe unique name of the external database.') + compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this ExternalListenerServicedDatabase. The OCID of the compartment in which the external database resides.') + database_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseType', description='Gets the database_type of this ExternalListenerServicedDatabase.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseSubType', description='Gets the database_sub_type of this ExternalListenerServicedDatabase.\nThe subtype of Oracle Database. Indicates whether the database is a Container Database,\nPluggable Database, Non-container Database, Autonomous Database, or Autonomous Container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + is_managed: bool | None = Field(None, alias='isManaged', description='Gets the is_managed of this ExternalListenerServicedDatabase.\nIndicates whether the database is a Managed Database or not.') + + +class ExternalListenerSummary(DbmBaseModel): + """The summary of an external listener.""" + + id: str = Field(..., description='**[Required]** Gets the id of this ExternalListenerSummary. The OCID of the external listener.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalListenerSummary.\nThe user-friendly name for the external listener. The name does not have to be unique.') + component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this ExternalListenerSummary.\nThe name of the external listener.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalListenerSummary. The OCID of the compartment.') + external_db_system_id: str = Field(..., alias='externalDbSystemId', description='**[Required]** Gets the external_db_system_id of this ExternalListenerSummary. The OCID of the external DB system that the listener is a member of.') + external_connector_id: str | None = Field(None, alias='externalConnectorId', description='Gets the external_connector_id of this ExternalListenerSummary. The OCID of the external connector.') + external_db_node_id: str | None = Field(None, alias='externalDbNodeId', description='Gets the external_db_node_id of this ExternalListenerSummary. The OCID of the external DB node on which the listener is running.') + listener_type: str | None = Field(None, alias='listenerType', description='Gets the listener_type of this ExternalListenerSummary.\nThe type of listener.') + lifecycle_state: str = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ExternalListenerSummary.\nThe current lifecycle state of the external listener.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExternalListenerSummary.\nAdditional information about the current lifecycle state.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ExternalListenerSummary.\nThe date and time the external listener was created.') + time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this ExternalListenerSummary.\nThe date and time the external listener was last updated.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalListenerSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalListenerSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalListenerSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class ExternalListenerTcpEndpoint(DbmBaseModel): + """A `TCP`-based protocol address.""" + + protocol: Literal['IPC', 'TCP', 'TCPS', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the protocol of this ExternalListenerEndpoint.\nThe listener protocol.\n\nAllowed values for this property are: "IPC", "TCP", "TCPS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + services: list[str] | None = Field(None, description='Gets the services of this ExternalListenerEndpoint.\nThe list of services registered with the listener.') + host: str = Field(..., description='**[Required]** Gets the host of this ExternalListenerTcpEndpoint.\nThe host name or IP address.') + port: int = Field(..., description='**[Required]** Gets the port of this ExternalListenerTcpEndpoint.\nThe port number.') + + +class ExternalListenerTcpsEndpoint(DbmBaseModel): + """A `TCPS`-based protocol address.""" + + protocol: Literal['IPC', 'TCP', 'TCPS', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the protocol of this ExternalListenerEndpoint.\nThe listener protocol.\n\nAllowed values for this property are: "IPC", "TCP", "TCPS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + services: list[str] | None = Field(None, description='Gets the services of this ExternalListenerEndpoint.\nThe list of services registered with the listener.') + host: str = Field(..., description='**[Required]** Gets the host of this ExternalListenerTcpsEndpoint.\nThe host name or IP address.') + port: int = Field(..., description='**[Required]** Gets the port of this ExternalListenerTcpsEndpoint.\nThe port number.') + + +class ExternalMySqlDatabase(DbmBaseModel): + """External database.""" + + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalMySqlDatabase.\nOCID of compartment for the External MySQL Database.') + external_database_id: str | None = Field(None, alias='externalDatabaseId', description='Gets the external_database_id of this ExternalMySqlDatabase.\nOCID of External MySQL Database.') + db_name: str = Field(..., alias='dbName', description='**[Required]** Gets the db_name of this ExternalMySqlDatabase.\nDisplay Name of the External MySQL Database.') + management_state: Literal['ENABLED', 'DISABLED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='managementState', description='Gets the management_state of this ExternalMySqlDatabase.\nIndicates database management state.\n\nAllowed values for this property are: "ENABLED", "DISABLED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class ExternalMySqlDatabaseCollection(DbmBaseModel): + """The collection of external MySQL Databases.""" + + items: list[ExternalMySqlDatabaseSummary] = Field(..., description='**[Required]** Gets the items of this ExternalMySqlDatabaseCollection.\nThe list of external MySQL Database records.') + + +class ExternalMySqlDatabaseConnector(DbmBaseModel): + """Details of external database connector.""" + + name: str | None = Field(None, description='Gets the name of this ExternalMySqlDatabaseConnector.\nExternal MySQL Database Connector Name.') + compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this ExternalMySqlDatabaseConnector.\nOCID of compartment for the External MySQL connector.') + associated_services: str | None = Field(None, alias='associatedServices', description='Gets the associated_services of this ExternalMySqlDatabaseConnector.\nOCI Services associated with this connector.') + external_database_id: str | None = Field(None, alias='externalDatabaseId', description='Gets the external_database_id of this ExternalMySqlDatabaseConnector.\nOCID of MySQL Database resource') + id: str = Field(..., description='**[Required]** Gets the id of this ExternalMySqlDatabaseConnector.\nOCID of MySQL Database Connector.') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this ExternalMySqlDatabaseConnector.\nConnector update time.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this ExternalMySqlDatabaseConnector.\nConnector creation time.') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this ExternalMySqlDatabaseConnector.\nIndicates lifecycle state of the resource.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + source_database: str | None = Field(None, alias='sourceDatabase', description='Gets the source_database of this ExternalMySqlDatabaseConnector.\nName of MySQL Database.') + source_database_type: Literal['EXTERNAL', 'MDS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='sourceDatabaseType', description='Gets the source_database_type of this ExternalMySqlDatabaseConnector.\nType of MySQL Database.\n\nAllowed values for this property are: "EXTERNAL", "MDS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + macs_agent_id: str | None = Field(None, alias='macsAgentId', description='Gets the macs_agent_id of this ExternalMySqlDatabaseConnector.\nAgent Id of the MACS agent.') + connection_status: str | None = Field(None, alias='connectionStatus', description='Gets the connection_status of this ExternalMySqlDatabaseConnector.\nConnection Status') + time_connection_status_updated: datetime | None = Field(None, alias='timeConnectionStatusUpdated', description='Gets the time_connection_status_updated of this ExternalMySqlDatabaseConnector.\nTime when connection status was last updated.') + host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this ExternalMySqlDatabaseConnector.\nHost name for Connector.') + port: int | None = Field(None, description='Gets the port of this ExternalMySqlDatabaseConnector.\nConnector port.') + connector_type: Literal['MACS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='connectorType', description='Gets the connector_type of this ExternalMySqlDatabaseConnector.\nConnector Type.\n\nAllowed values for this property are: "MACS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + network_protocol: Literal['TCP', 'TCPS', 'SOCKETS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='networkProtocol', description='Gets the network_protocol of this ExternalMySqlDatabaseConnector.\nNetwork Protocol.\n\nAllowed values for this property are: "TCP", "TCPS", "SOCKETS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + credential_type: Literal['MYSQL_EXTERNAL_NON_SSL_CREDENTIALS', 'MYSQL_EXTERNAL_SSL_CREDENTIALS', 'MYSQL_EXTERNAL_SOCKET_CREDENTIALS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='credentialType', description='Gets the credential_type of this ExternalMySqlDatabaseConnector.\nCredential type used to connect to database.\n\nAllowed values for this property are: "MYSQL_EXTERNAL_NON_SSL_CREDENTIALS", "MYSQL_EXTERNAL_SSL_CREDENTIALS", "MYSQL_EXTERNAL_SOCKET_CREDENTIALS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + ssl_secret_id: str | None = Field(None, alias='sslSecretId', description='Gets the ssl_secret_id of this ExternalMySqlDatabaseConnector.\nOCID of the SSL secret, if TCPS with SSL is used to connect to database.') + ssl_secret_name: str | None = Field(None, alias='sslSecretName', description='Gets the ssl_secret_name of this ExternalMySqlDatabaseConnector.\nName of the SSL secret, if TCPS with SSL is used to connect to database.') + + +class ExternalMySqlDatabaseSummary(DbmBaseModel): + """External database summary record.""" + + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalMySqlDatabaseSummary.\nOCID of compartment for the External MySQL Database.') + external_database_id: str | None = Field(None, alias='externalDatabaseId', description='Gets the external_database_id of this ExternalMySqlDatabaseSummary.\nOCID of External MySQL Database.') + connector_id: str | None = Field(None, alias='connectorId', description='Gets the connector_id of this ExternalMySqlDatabaseSummary.\nThe OCID of the enabled MySQL Database Connector.') + db_name: str = Field(..., alias='dbName', description='**[Required]** Gets the db_name of this ExternalMySqlDatabaseSummary.\nDisplay name of the External MySQL Database.') + deployment_type: Literal['ONPREMISE', 'MDS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='deploymentType', description='Gets the deployment_type of this ExternalMySqlDatabaseSummary.\nThe deployment type of the Mysql Database.\n\nAllowed values for this property are: "ONPREMISE", "MDS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + management_state: Literal['ENABLED', 'DISABLED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='managementState', description='Gets the management_state of this ExternalMySqlDatabaseSummary.\nIndicates database management state.\n\nAllowed values for this property are: "ENABLED", "DISABLED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this ExternalMySqlDatabaseSummary.\nIndicates lifecycle state of the resource.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalMySqlDatabaseSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class ExternalPluggableDatabaseDiagnosticsAndManagementFeatureDetails(DbmRequestModel): + """The details required to enable the Diagnostics and Management feature.""" + + feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH'] = Field(..., description='**[Required]** Gets the feature of this ExternalPluggableDatabaseFeatureDetails.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH"') + connector_details: ConnectorDetails = Field(..., alias='connectorDetails', description='**[Required]** Gets the connector_details of this ExternalPluggableDatabaseFeatureDetails.') + + +class ExternalPluggableDatabaseFeatureDetails(DbmRequestModel): + """The details required to enable the specified Database Management feature.""" + + feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH'] = Field(..., description='**[Required]** Gets the feature of this ExternalPluggableDatabaseFeatureDetails.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH"') + connector_details: ConnectorDetails = Field(..., alias='connectorDetails', description='**[Required]** Gets the connector_details of this ExternalPluggableDatabaseFeatureDetails.') + + +class ExternalPluggableDatabaseLifecycleManagementFeatureDetails(DbmRequestModel): + """The details required to enable the Database Lifecycle Management feature.""" + + feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH'] = Field(..., description='**[Required]** Gets the feature of this ExternalPluggableDatabaseFeatureDetails.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH"') + connector_details: ConnectorDetails = Field(..., alias='connectorDetails', description='**[Required]** Gets the connector_details of this ExternalPluggableDatabaseFeatureDetails.') + + +class ExternalPluggableDatabaseSqlWatchFeatureDetails(DbmRequestModel): + """The details required to enable the SQL watch feature.""" + + feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH'] = Field(..., description='**[Required]** Gets the feature of this ExternalPluggableDatabaseFeatureDetails.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH"') + connector_details: ConnectorDetails = Field(..., alias='connectorDetails', description='**[Required]** Gets the connector_details of this ExternalPluggableDatabaseFeatureDetails.') + + +class ExternalServicedAsm(DbmBaseModel): + """The details of ASM serviced by an external listener.""" + + id: str = Field(..., description='**[Required]** Gets the id of this ExternalServicedAsm. The OCID of the external ASM.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalServicedAsm.\nThe user-friendly name for the external ASM. The name does not have to be unique.') + compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this ExternalServicedAsm. The OCID of the compartment in which the external ASM resides.') + + +class ExternalServicedDatabase(DbmBaseModel): + """The details of a database serviced by an external DB system component such as a listener or ASM.""" + + id: str = Field(..., description='**[Required]** Gets the id of this ExternalServicedDatabase. The OCID of the external database.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalServicedDatabase.\nThe user-friendly name for the database. The name does not have to be unique.') + db_unique_name: str | None = Field(None, alias='dbUniqueName', description='Gets the db_unique_name of this ExternalServicedDatabase.\nThe unique name of the external database.') + compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this ExternalServicedDatabase. The OCID of the compartment in which the external database resides.') + database_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseType', description='Gets the database_type of this ExternalServicedDatabase.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseSubType', description='Gets the database_sub_type of this ExternalServicedDatabase.\nThe subtype of Oracle Database. Indicates whether the database is a Container Database,\nPluggable Database, Non-container Database, Autonomous Database, or Autonomous Container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + is_managed: bool | None = Field(None, alias='isManaged', description='Gets the is_managed of this ExternalServicedDatabase.\nIndicates whether the database is a Managed Database or not.') + + +class ExternalStorageGridDiscoverySummary(DbmBaseModel): + """The summary of the Exadata storage server grid discovery.""" + + id: str | None = Field(None, description='Gets the id of this EntityDiscovered. The OCID of the entity discovered.') + agent_id: str | None = Field(None, alias='agentId', description='Gets the agent_id of this EntityDiscovered. The OCID of the agent used for monitoring.') + connector_id: str | None = Field(None, alias='connectorId', description='Gets the connector_id of this EntityDiscovered. The OCID of the associated connector.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this EntityDiscovered.\nThe name of the entity.') + version: str | None = Field(None, description='Gets the version of this EntityDiscovered.\nThe version of the entity.') + internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this EntityDiscovered.\nThe internal identifier of the entity.') + status: str | None = Field(None, description='Gets the status of this EntityDiscovered.\nThe status of the entity.') + discover_status: Literal['PREV_DISCOVERED', 'NEW_DISCOVERED', 'NOT_FOUND', 'DISCOVERING', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='discoverStatus', description='Gets the discover_status of this EntityDiscovered.\nThe status of the entity discovery.\n\nAllowed values for this property are: "PREV_DISCOVERED", "NEW_DISCOVERED", "NOT_FOUND", "DISCOVERING", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + discover_error_code: str | None = Field(None, alias='discoverErrorCode', description='Gets the discover_error_code of this EntityDiscovered.\nThe error code of the discovery.') + discover_error_msg: str | None = Field(None, alias='discoverErrorMsg', description='Gets the discover_error_msg of this EntityDiscovered.\nThe error message of the discovery.') + entity_type: Literal['STORAGE_SERVER_DISCOVER_SUMMARY', 'STORAGE_GRID_DISCOVER_SUMMARY', 'DATABASE_SYSTEM_DISCOVER_SUMMARY', 'INFRASTRUCTURE_DISCOVER_SUMMARY', 'INFRASTRUCTURE_DISCOVER', 'MANAGED_STORAGE_SERVER_DISCOVER_SUMMARY', 'MANAGED_STORAGE_GRID_DISCOVER_SUMMARY', 'VM_CLUSTER_DISCOVER_SUMMARY', 'MANAGED_INFRASTRUCTURE_DISCOVER_SUMMARY', 'CLOUD_INFRASTRUCTURE_DISCOVER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entityType', description='**[Required]** Gets the entity_type of this EntityDiscovered.\nThe type of discovered entities.\n\nAllowed values for this property are: "STORAGE_SERVER_DISCOVER_SUMMARY", "STORAGE_GRID_DISCOVER_SUMMARY", "DATABASE_SYSTEM_DISCOVER_SUMMARY", "INFRASTRUCTURE_DISCOVER_SUMMARY", "INFRASTRUCTURE_DISCOVER", "MANAGED_STORAGE_SERVER_DISCOVER_SUMMARY", "MANAGED_STORAGE_GRID_DISCOVER_SUMMARY", "VM_CLUSTER_DISCOVER_SUMMARY", "MANAGED_INFRASTRUCTURE_DISCOVER_SUMMARY", "CLOUD_INFRASTRUCTURE_DISCOVER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + count_of_storage_servers_discovered: int | None = Field(None, alias='countOfStorageServersDiscovered', description='Gets the count_of_storage_servers_discovered of this ExternalStorageGridDiscoverySummary.\nThe total number of Exadata storage servers discovered.') + + +class ExternalStorageServerDiscoverySummary(DbmBaseModel): + """The summary of the Exadata storage server discovery.""" + + id: str | None = Field(None, description='Gets the id of this EntityDiscovered. The OCID of the entity discovered.') + agent_id: str | None = Field(None, alias='agentId', description='Gets the agent_id of this EntityDiscovered. The OCID of the agent used for monitoring.') + connector_id: str | None = Field(None, alias='connectorId', description='Gets the connector_id of this EntityDiscovered. The OCID of the associated connector.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this EntityDiscovered.\nThe name of the entity.') + version: str | None = Field(None, description='Gets the version of this EntityDiscovered.\nThe version of the entity.') + internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this EntityDiscovered.\nThe internal identifier of the entity.') + status: str | None = Field(None, description='Gets the status of this EntityDiscovered.\nThe status of the entity.') + discover_status: Literal['PREV_DISCOVERED', 'NEW_DISCOVERED', 'NOT_FOUND', 'DISCOVERING', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='discoverStatus', description='Gets the discover_status of this EntityDiscovered.\nThe status of the entity discovery.\n\nAllowed values for this property are: "PREV_DISCOVERED", "NEW_DISCOVERED", "NOT_FOUND", "DISCOVERING", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + discover_error_code: str | None = Field(None, alias='discoverErrorCode', description='Gets the discover_error_code of this EntityDiscovered.\nThe error code of the discovery.') + discover_error_msg: str | None = Field(None, alias='discoverErrorMsg', description='Gets the discover_error_msg of this EntityDiscovered.\nThe error message of the discovery.') + entity_type: Literal['STORAGE_SERVER_DISCOVER_SUMMARY', 'STORAGE_GRID_DISCOVER_SUMMARY', 'DATABASE_SYSTEM_DISCOVER_SUMMARY', 'INFRASTRUCTURE_DISCOVER_SUMMARY', 'INFRASTRUCTURE_DISCOVER', 'MANAGED_STORAGE_SERVER_DISCOVER_SUMMARY', 'MANAGED_STORAGE_GRID_DISCOVER_SUMMARY', 'VM_CLUSTER_DISCOVER_SUMMARY', 'MANAGED_INFRASTRUCTURE_DISCOVER_SUMMARY', 'CLOUD_INFRASTRUCTURE_DISCOVER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entityType', description='**[Required]** Gets the entity_type of this EntityDiscovered.\nThe type of discovered entities.\n\nAllowed values for this property are: "STORAGE_SERVER_DISCOVER_SUMMARY", "STORAGE_GRID_DISCOVER_SUMMARY", "DATABASE_SYSTEM_DISCOVER_SUMMARY", "INFRASTRUCTURE_DISCOVER_SUMMARY", "INFRASTRUCTURE_DISCOVER", "MANAGED_STORAGE_SERVER_DISCOVER_SUMMARY", "MANAGED_STORAGE_GRID_DISCOVER_SUMMARY", "VM_CLUSTER_DISCOVER_SUMMARY", "MANAGED_INFRASTRUCTURE_DISCOVER_SUMMARY", "CLOUD_INFRASTRUCTURE_DISCOVER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + ip_address: str | None = Field(None, alias='ipAddress', description='Gets the ip_address of this ExternalStorageServerDiscoverySummary.\nThe IP address of the Exadata storage server.') + make_model: str | None = Field(None, alias='makeModel', description='Gets the make_model of this ExternalStorageServerDiscoverySummary.\nThe make model of the Exadata storage server.') + cpu_count: int | None = Field(None, ge=0, alias='cpuCount', description='Gets the cpu_count of this ExternalStorageServerDiscoverySummary.\nThe CPU count of the Exadata storage server.') + memory_gb: float | None = Field(None, alias='memoryGB', description='Gets the memory_gb of this ExternalStorageServerDiscoverySummary.\nThe memory size in GB of the Exadata storage server.') + connector_name: str | None = Field(None, alias='connectorName', description='Gets the connector_name of this ExternalStorageServerDiscoverySummary.\nThe name of the Exadata storage server connector in case of rediscovery.') + + +class FailedConnectionsAggregateMetrics(DbmBaseModel): + """The failed connection metrics for Autonomous Databases on Shared Exadata Infrastructure.""" + + failed_connections: MetricDataPoint | None = Field(None, alias='failedConnections', description='Gets the failed_connections of this FailedConnectionsAggregateMetrics.') + + +class FetchSqlTuningSetDetails(DbmRequestModel): + """The details required to fetch the Sql tuning set details. +It takes either credentialDetails or databaseCredential. It's recommended to provide databaseCredential""" + + credential_details: SqlTuningSetAdminCredentialDetails | None = Field(None, alias='credentialDetails', description='Gets the credential_details of this FetchSqlTuningSetDetails.') + database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this FetchSqlTuningSetDetails.') + owner: str = Field(..., description='**[Required]** Gets the owner of this FetchSqlTuningSetDetails.\nThe owner of the Sql tuning set.') + name: str = Field(..., description='**[Required]** Gets the name of this FetchSqlTuningSetDetails.\nThe name of the Sql tuning set.') + basic_filter: str | None = Field(None, alias='basicFilter', description='Gets the basic_filter of this FetchSqlTuningSetDetails. Specifies the Sql predicate to filter the Sql from the Sql tuning set defined on attributes of the SQLSET_ROW. User could use any combination of the following columns with appropriate values as Sql predicate Refer to the documentation.') + recursive_sql: Literal['HAS_RECURSIVE_SQL', 'NO_RECURSIVE_SQL'] | None = Field(None, alias='recursiveSql', description='Gets the recursive_sql of this FetchSqlTuningSetDetails.\nSpecifies that the filter must include recursive Sql in the Sql tuning set.\n\nAllowed values for this property are: "HAS_RECURSIVE_SQL", "NO_RECURSIVE_SQL"') + result_percentage: float | None = Field(None, alias='resultPercentage', description='Gets the result_percentage of this FetchSqlTuningSetDetails.\nSpecifies a filter that picks the top n% according to the supplied ranking measure.\nNote that this parameter applies only if one ranking measure is supplied.') + result_limit: int | None = Field(None, alias='resultLimit', description='Gets the result_limit of this FetchSqlTuningSetDetails.\nThe top limit Sql from the filtered source, ranked by the ranking measure.') + ranking_measure1: Literal['ELAPSED_TIME', 'CPU_TIME', 'OPTIMIZER_COST', 'BUFFER_GETS', 'DISK_READS', 'DIRECT_WRITES'] | None = Field(None, alias='rankingMeasure1', description='Gets the ranking_measure1 of this FetchSqlTuningSetDetails.\nSpecifies an ORDER BY clause on the selected Sql. User can specify upto three ranking measures.\n\nAllowed values for this property are: "ELAPSED_TIME", "CPU_TIME", "OPTIMIZER_COST", "BUFFER_GETS", "DISK_READS", "DIRECT_WRITES"') + ranking_measure2: Literal['ELAPSED_TIME', 'CPU_TIME', 'OPTIMIZER_COST', 'BUFFER_GETS', 'DISK_READS', 'DIRECT_WRITES'] | None = Field(None, alias='rankingMeasure2', description='Gets the ranking_measure2 of this FetchSqlTuningSetDetails.\nSpecifies an ORDER BY clause on the selected Sql. User can specify upto three ranking measures.\n\nAllowed values for this property are: "ELAPSED_TIME", "CPU_TIME", "OPTIMIZER_COST", "BUFFER_GETS", "DISK_READS", "DIRECT_WRITES"') + ranking_measure3: Literal['ELAPSED_TIME', 'CPU_TIME', 'OPTIMIZER_COST', 'BUFFER_GETS', 'DISK_READS', 'DIRECT_WRITES'] | None = Field(None, alias='rankingMeasure3', description='Gets the ranking_measure3 of this FetchSqlTuningSetDetails.\nSpecifies an ORDER BY clause on the selected Sql. User can specify upto three ranking measures.\n\nAllowed values for this property are: "ELAPSED_TIME", "CPU_TIME", "OPTIMIZER_COST", "BUFFER_GETS", "DISK_READS", "DIRECT_WRITES"') + + +class FindingSchemaOrOperation(DbmBaseModel): + """The findings of the Optimizer Statistics Advisor.""" + + operations: list[str] | None = Field(None, description='Gets the operations of this FindingSchemaOrOperation.\nThe list of operation details.') + schemas: list[SchemaDefinition] | None = Field(None, description='Gets the schemas of this FindingSchemaOrOperation.\nThe names of the impacted database schemas and their objects.') + + +class FleetMetricDefinition(DbmBaseModel): + """The database metric details.""" + + metric_name: str | None = Field(None, alias='metricName', description='Gets the metric_name of this FleetMetricDefinition.\nThe name of the metric.') + baseline_value: float | None = Field(None, alias='baselineValue', description='Gets the baseline_value of this FleetMetricDefinition.\nThe baseline value of the metric.') + target_value: float | None = Field(None, alias='targetValue', description='Gets the target_value of this FleetMetricDefinition.\nThe target value of the metric.') + unit: str | None = Field(None, description='Gets the unit of this FleetMetricDefinition.\nThe unit of the value.') + timestamp: datetime | None = Field(None, description='Gets the timestamp of this FleetMetricDefinition.\nThe data point date and time in UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".') + percentage_change: float | None = Field(None, alias='percentageChange', description='Gets the percentage_change of this FleetMetricDefinition.\nThe percentage change in the metric aggregated value compared to the baseline value.') + dimensions: list[MetricDimensionDefinition] | None = Field(None, description='Gets the dimensions of this FleetMetricDefinition.\nThe dimensions of the metric.') + + +class FleetMetricSummaryDefinition(DbmBaseModel): + """A summary of the fleet metrics, which provides the metric aggregated value of the databases in the fleet.""" + + metric_name: str | None = Field(None, alias='metricName', description='Gets the metric_name of this FleetMetricSummaryDefinition.\nThe name of the metric.') + baseline_value: float | None = Field(None, alias='baselineValue', description='Gets the baseline_value of this FleetMetricSummaryDefinition.\nThe metric aggregated value at the baseline date and time.') + target_value: float | None = Field(None, alias='targetValue', description='Gets the target_value of this FleetMetricSummaryDefinition.\nThe metric aggregated value at the target date and time.') + unit: str | None = Field(None, description='Gets the unit of this FleetMetricSummaryDefinition.\nThe unit of the value.') + percentage_change: float | None = Field(None, alias='percentageChange', description='Gets the percentage_change of this FleetMetricSummaryDefinition.\nThe percentage change in the metric aggregated value compared to the baseline value.') + dimensions: list[MetricDimensionDefinition] | None = Field(None, description='Gets the dimensions of this FleetMetricSummaryDefinition.\nThe unique dimension key and values of the baseline metric.') + + +class FleetStatusByCategory(DbmBaseModel): + """The number of databases in the fleet, grouped by database type and sub type.""" + + database_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseType', description='Gets the database_type of this FleetStatusByCategory.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseSubType', description='Gets the database_sub_type of this FleetStatusByCategory.\nThe subtype of the Oracle Database. Indicates whether the database is a Container Database,\nPluggable Database, Non-container Database, Autonomous Database, or Autonomous Container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + deployment_type: Literal['ONPREMISE', 'BM', 'VM', 'EXADATA', 'EXADATA_CC', 'AUTONOMOUS', 'EXADATA_XS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='deploymentType', description='Gets the deployment_type of this FleetStatusByCategory.\nThe infrastructure used to deploy the Oracle Database.\n\nAllowed values for this property are: "ONPREMISE", "BM", "VM", "EXADATA", "EXADATA_CC", "AUTONOMOUS", "EXADATA_XS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + inventory_count: int | None = Field(None, ge=0, alias='inventoryCount', description='Gets the inventory_count of this FleetStatusByCategory.\nThe number of databases in the fleet.') + + +class FleetSummary(DbmBaseModel): + """A summary of the inventory count grouped by database type and subtype, and the metrics that +describe the aggregated usage of CPU, storage, and so on of all the databases in the fleet.""" + + aggregated_metrics: list[FleetMetricSummaryDefinition] | None = Field(None, alias='aggregatedMetrics', description='Gets the aggregated_metrics of this FleetSummary.\nA list of databases present in the fleet and their usage metrics.') + inventory: list[FleetStatusByCategory] | None = Field(None, description='Gets the inventory of this FleetSummary.\nA list of the databases in the fleet, grouped by database type and subtype.') + + +class HaMetricDefinition(DbmBaseModel): + """The metric definition for HA and backup metrics.""" + + metric_name: str = Field(..., alias='metricName', description='**[Required]** Gets the metric_name of this HaMetricDefinition.\nThe name of the metric.') + metadata: dict[str, str] = Field(..., description='**[Required]** Gets the metadata of this HaMetricDefinition.\nThe metadata qualifiers provided in the definition of the returned metric.\nAvailable metadata vary by metric.') + dimensions: dict[str, str] = Field(..., description='**[Required]** Gets the dimensions of this HaMetricDefinition.\nThe dimension qualifiers provided in the definition of the returned metric.\nAvailable dimensions vary by metric namespace. Each dimension takes the form of a key-value pair.\nExample: `{"resourceId": "ocid1.instance.region1.phx.exampleuniqueID"}`') + timestamp: datetime = Field(..., description='**[Required]** Gets the timestamp of this HaMetricDefinition.\nThe data point date and time in UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".') + value: float = Field(..., description='**[Required]** Gets the value of this HaMetricDefinition.\nThe target value of the metric.') + + +class HeatWaveClusterUsageMetrics(DbmBaseModel): + """The list of aggregated metrics for a HeatWave cluster in the fleet.""" + + status: Literal['UP', 'DOWN', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the status of this HeatWaveClusterUsageMetrics.\nThe status of the HeatWave cluster. Indicates whether the status of the cluster is UP, DOWN, or UNKNOWN at the current time.\n\nAllowed values for this property are: "UP", "DOWN", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + db_system_id: str = Field(..., alias='dbSystemId', description='**[Required]** Gets the db_system_id of this HeatWaveClusterUsageMetrics.\nThe OCID of the MySQL Database System associated with the HeatWave cluster.') + db_system_name: str = Field(..., alias='dbSystemName', description='**[Required]** Gets the db_system_name of this HeatWaveClusterUsageMetrics.\nThe name of the MySQL Database System associated with the HeatWave cluster.') + heat_wave_cluster_display_name: str = Field(..., alias='heatWaveClusterDisplayName', description='**[Required]** Gets the heat_wave_cluster_display_name of this HeatWaveClusterUsageMetrics.\nThe name of the HeatWave cluster.') + node_count: int = Field(..., ge=0, alias='nodeCount', description='**[Required]** Gets the node_count of this HeatWaveClusterUsageMetrics.\nThe number of nodes in the HeatWave cluster.') + is_lakehouse_enabled: bool = Field(..., alias='isLakehouseEnabled', description='**[Required]** Gets the is_lakehouse_enabled of this HeatWaveClusterUsageMetrics.\nIndicates whether Lakehouse is enabled for the HeatWave cluster or not.') + heat_wave_node_shape: str = Field(..., alias='heatWaveNodeShape', description='**[Required]** Gets the heat_wave_node_shape of this HeatWaveClusterUsageMetrics.\nThe shape of the nodes in the HeatWave cluster.') + memory_size: int = Field(..., alias='memorySize', description='**[Required]** Gets the memory_size of this HeatWaveClusterUsageMetrics.\nThe total memory belonging to the HeatWave cluster in GBs.') + metrics: list[HeatWaveFleetMetricDefinition] = Field(..., description='**[Required]** Gets the metrics of this HeatWaveClusterUsageMetrics.\nA list of the HeatWave cluster health metrics like CPU and Memory.') + + +class HeatWaveFleetByCategory(DbmBaseModel): + """The number of HeatWave clusters in the fleet, grouped by shape and Lakehouse-enabled status.""" + + name: str = Field(..., description='**[Required]** Gets the name of this HeatWaveFleetByCategory.\nThe name of the HeatWave fleet category.') + value: str = Field(..., description='**[Required]** Gets the value of this HeatWaveFleetByCategory.\nThe value of the HeatWave fleet category.') + count: int = Field(..., ge=0, description='**[Required]** Gets the count of this HeatWaveFleetByCategory.\nThe number of matching HeatWave clusters.') + + +class HeatWaveFleetMetricDefinition(DbmBaseModel): + """An aggregated metric for a HeatWave cluster.""" + + metric_name: str = Field(..., alias='metricName', description='**[Required]** Gets the metric_name of this HeatWaveFleetMetricDefinition.\nThe name of the metric.') + metric_value: float = Field(..., alias='metricValue', description='**[Required]** Gets the metric_value of this HeatWaveFleetMetricDefinition.\nThe value of the metric.') + timestamp: datetime = Field(..., description='**[Required]** Gets the timestamp of this HeatWaveFleetMetricDefinition.\nThe data point date and time in UTC in ISO-8601 format.') + dimensions: list[MetricDimensionDefinition] = Field(..., description='**[Required]** Gets the dimensions of this HeatWaveFleetMetricDefinition.\nThe dimensions of the metric.') + unit: str = Field(..., description='**[Required]** Gets the unit of this HeatWaveFleetMetricDefinition.\nThe unit of the metric value.') + + +class HeatWaveFleetMetricSummaryDefinition(DbmBaseModel): + """A summary of the fleet metrics, which provides the metric aggregated value of the HeatWave clusters in the fleet.""" + + metric_name: str = Field(..., alias='metricName', description='**[Required]** Gets the metric_name of this HeatWaveFleetMetricSummaryDefinition.\nThe name of the metric.') + metric_value: float = Field(..., alias='metricValue', description='**[Required]** Gets the metric_value of this HeatWaveFleetMetricSummaryDefinition.\nThe aggregated metric value.') + dimensions: list[MetricDimensionDefinition] = Field(..., description='**[Required]** Gets the dimensions of this HeatWaveFleetMetricSummaryDefinition.\nThe unique dimension key and values of the metric.') + unit: str = Field(..., description='**[Required]** Gets the unit of this HeatWaveFleetMetricSummaryDefinition.\nThe unit of the metric value.') + + +class HeatWaveFleetMetrics(DbmBaseModel): + """The details of the HeatWave cluster fleet health metrics.""" + + start_time: str = Field(..., alias='startTime', description='**[Required]** Gets the start_time of this HeatWaveFleetMetrics.\nThe beginning of the time range during which metric data is retrieved.') + end_time: str = Field(..., alias='endTime', description='**[Required]** Gets the end_time of this HeatWaveFleetMetrics.\nThe end of the time range during which metric data is retrieved.') + fleet_clusters: list[HeatWaveClusterUsageMetrics] = Field(..., alias='fleetClusters', description='**[Required]** Gets the fleet_clusters of this HeatWaveFleetMetrics.\nThe list of HeatWave clusters in the fleet and their usage metrics.') + fleet_summary: list[HeatWaveFleetSummary] = Field(..., alias='fleetSummary', description='**[Required]** Gets the fleet_summary of this HeatWaveFleetMetrics.\nThe number of HeatWave clusters in the fleet and a summary of the metrics that provide the aggregated usage of CPU, storage, and so on of all the clusters.') + + +class HeatWaveFleetSummary(DbmBaseModel): + """The inventory count of HeatWave clusters in the fleet and a summary of the metrics that provide the aggregated usage of CPU, storage, and so on of all the clusters.""" + + aggregated_metrics: list[HeatWaveFleetMetricSummaryDefinition] = Field(..., alias='aggregatedMetrics', description='**[Required]** Gets the aggregated_metrics of this HeatWaveFleetSummary.\nThe usage metrics for the HeatWave clusters in the fleet.') + inventory: list[HeatWaveFleetByCategory] = Field(..., description='**[Required]** Gets the inventory of this HeatWaveFleetSummary.\nThe number of HeatWave clusters in the fleet, grouped by cluster type or other properties.') + + +class HeatWaveNode(DbmBaseModel): + """The information about an individual HeatWave node.""" + + id: str = Field(..., description='**[Required]** Gets the id of this HeatWaveNode.\nThe ID associated with the HeatWave node.') + status: Literal['UP', 'DOWN', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the status of this HeatWaveNode.\nThe status of the HeatWave node. Indicates whether the status of the node is UP, DOWN, or UNKNOWN at the current time.\n\nAllowed values for this property are: "UP", "DOWN", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this HeatWaveNode.\nThe date and time the HeatWave node was created.') + + +class HistoricAddmResult(DbmBaseModel): + """The details of the historic ADDM task.""" + + is_newly_created: bool | None = Field(None, alias='isNewlyCreated', description='Gets the is_newly_created of this HistoricAddmResult.\nSpecifies whether the ADDM task returned had already existed or was newly created by the api call.') + task_name: str | None = Field(None, alias='taskName', description='Gets the task_name of this HistoricAddmResult.\nThe name of the historic ADDM task.') + task_id: int = Field(..., alias='taskId', description='**[Required]** Gets the task_id of this HistoricAddmResult.\nThe ID of the historic ADDM task.') + description: str | None = Field(None, description='Gets the description of this HistoricAddmResult.\nThe description of the ADDM task.') + db_user: str | None = Field(None, alias='dbUser', description='Gets the db_user of this HistoricAddmResult.\nThe database user who owns the historic ADDM task.') + status: Literal['INITIAL', 'EXECUTING', 'INTERRUPTED', 'COMPLETED', 'ERROR', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this HistoricAddmResult.\nThe status of the ADDM task.\n\nAllowed values for this property are: "INITIAL", "EXECUTING", "INTERRUPTED", "COMPLETED", "ERROR", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this HistoricAddmResult.\nThe creation date of the ADDM task.') + how_created: Literal['AUTO', 'MANUAL', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='howCreated', description='Gets the how_created of this HistoricAddmResult.\nA description of how the task was created.\n\nAllowed values for this property are: "AUTO", "MANUAL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + start_snapshot_time: datetime | None = Field(None, alias='startSnapshotTime', description='Gets the start_snapshot_time of this HistoricAddmResult.\nThe timestamp of the beginning AWR snapshot used in the ADDM task as defined by date-time RFC3339 format.') + end_snapshot_time: datetime | None = Field(None, alias='endSnapshotTime', description='Gets the end_snapshot_time of this HistoricAddmResult.\nThe timestamp of the ending AWR snapshot used in the ADDM task as defined by date-time RFC3339 format.') + begin_snapshot_id: int | None = Field(None, alias='beginSnapshotId', description='Gets the begin_snapshot_id of this HistoricAddmResult.\nThe ID number of the beginning AWR snapshot.') + end_snapshot_id: int | None = Field(None, alias='endSnapshotId', description='Gets the end_snapshot_id of this HistoricAddmResult.\nThe ID number of the ending AWR snapshot.') + findings: int | None = Field(None, description='Gets the findings of this HistoricAddmResult.\nThe number of ADDM findings.') + + +class ImplementOptimizerStatisticsAdvisorRecommendationsDetails(DbmRequestModel): + """The request details object to implement the Optimizer Statistics Advisor task recommendations.""" + + task_name: str = Field(..., alias='taskName', description='**[Required]** Gets the task_name of this ImplementOptimizerStatisticsAdvisorRecommendationsDetails.\nThe name of the task.') + job_details: ImplementOptimizerStatisticsAdvisorRecommendationsJob = Field(..., alias='jobDetails', description='**[Required]** Gets the job_details of this ImplementOptimizerStatisticsAdvisorRecommendationsDetails.') + + +class ImplementOptimizerStatisticsAdvisorRecommendationsJob(DbmBaseModel): + """The job request details to implement the Optimizer Statistics Advisor task recommendations.""" + + name: str = Field(..., description='**[Required]** Gets the name of this ImplementOptimizerStatisticsAdvisorRecommendationsJob.\nThe name of the job. Valid characters are uppercase or lowercase letters,\nnumbers, and "_". The name of the job cannot be modified. It must be unique\nin the compartment and must begin with an alphabetic character.') + description: str | None = Field(None, description='Gets the description of this ImplementOptimizerStatisticsAdvisorRecommendationsJob.\nThe name of the execution.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ImplementOptimizerStatisticsAdvisorRecommendationsJob. The OCID of the compartment in which the job resides.') + result_location: JobExecutionResultLocation = Field(..., alias='resultLocation', description='**[Required]** Gets the result_location of this ImplementOptimizerStatisticsAdvisorRecommendationsJob.') + credentials: ManagedDatabaseCredential | None = Field(None, description='Gets the credentials of this ImplementOptimizerStatisticsAdvisorRecommendationsJob.') + database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this ImplementOptimizerStatisticsAdvisorRecommendationsJob.') + + +class InstanceDetails(DbmRequestModel): + """The details of the Oracle Real Application Clusters (Oracle RAC) database instance.""" + + id: int = Field(..., description='**[Required]** Gets the id of this InstanceDetails.\nThe ID of the Oracle RAC database instance.') + name: str = Field(..., description='**[Required]** Gets the name of this InstanceDetails.\nThe name of the Oracle RAC database instance.') + host_name: str = Field(..., alias='hostName', description='**[Required]** Gets the host_name of this InstanceDetails.\nThe name of the host of the Oracle RAC database instance.') + status: Literal['UP', 'DOWN', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the status of this InstanceDetails.\nThe status of the Oracle RAC database instance.\n\nAllowed values for this property are: "UP", "DOWN", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class IormPlan(DbmBaseModel): + """The IORM plan from an Exadata storage server.""" + + plan_status: Literal['ACTIVE', 'INACTIVE', 'OTHER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='planStatus', description='**[Required]** Gets the plan_status of this IormPlan.\nThe status of the IORM plan.\n\nAllowed values for this property are: "ACTIVE", "INACTIVE", "OTHER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + plan_objective: Literal['AUTO', 'HIGH_THROUGHPUT', 'LOW_LATENCY', 'BALANCED', 'BASIC', 'OTHER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='planObjective', description='**[Required]** Gets the plan_objective of this IormPlan.\nThe objective of the IORM plan.\n\nAllowed values for this property are: "AUTO", "HIGH_THROUGHPUT", "LOW_LATENCY", "BALANCED", "BASIC", "OTHER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + db_plan: DatabasePlan | None = Field(None, alias='dbPlan', description='Gets the db_plan of this IormPlan.') + + +class Job(DbmBaseModel): + """The details of the job.""" + + id: str = Field(..., description='**[Required]** Gets the id of this Job. The OCID of the job.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this Job. The OCID of the compartment in which the job resides.') + name: str = Field(..., description='**[Required]** Gets the name of this Job.\nThe display name of the job.') + description: str | None = Field(None, description='Gets the description of this Job.\nThe description of the job.') + managed_database_group_id: str | None = Field(None, alias='managedDatabaseGroupId', description='Gets the managed_database_group_id of this Job. The OCID of the Managed Database Group where the job has to be executed.') + managed_database_id: str | None = Field(None, alias='managedDatabaseId', description='Gets the managed_database_id of this Job. The OCID of the Managed Database where the job has to be executed.') + managed_databases_details: list[JobDatabase] | None = Field(None, alias='managedDatabasesDetails', description='Gets the managed_databases_details of this Job.\nThe details of the Managed Databases where the job has to be executed.') + database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseSubType', description='Gets the database_sub_type of this Job.\nThe subtype of the Oracle Database where the job has to be executed. Applicable only when managedDatabaseGroupId is provided.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + schedule_type: Literal['IMMEDIATE', 'LATER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='scheduleType', description='**[Required]** Gets the schedule_type of this Job.\nThe schedule type of the job.\n\nAllowed values for this property are: "IMMEDIATE", "LATER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + job_type: Literal['SQL', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='jobType', description='**[Required]** Gets the job_type of this Job.\nThe type of job.\n\nAllowed values for this property are: "SQL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_state: Literal['ACTIVE', 'INACTIVE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this Job.\nThe lifecycle state of the job.\n\nAllowed values for this property are: "ACTIVE", "INACTIVE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + timeout: str | None = Field(None, description='Gets the timeout of this Job.\nThe job timeout duration, which is expressed like "1h 10m 15s".') + result_location: JobExecutionResultLocation | None = Field(None, alias='resultLocation', description='Gets the result_location of this Job.') + schedule_details: JobScheduleDetails | None = Field(None, alias='scheduleDetails', description='Gets the schedule_details of this Job.') + submission_error_message: str | None = Field(None, alias='submissionErrorMessage', description='Gets the submission_error_message of this Job.\nThe error message that is returned if the job submission fails. Null is returned in all other scenarios.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this Job.\nThe date and time when the job was created.') + time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this Job.\nThe date and time when the job was last updated.') + + +class JobCollection(DbmBaseModel): + """A collection of job objects.""" + + items: list[JobSummary] = Field(..., description='**[Required]** Gets the items of this JobCollection.\nA list of JobSummary objects.') + + +class JobDatabase(DbmBaseModel): + """The Managed Database on which the job is executed.""" + + id: str = Field(..., description='**[Required]** Gets the id of this JobDatabase. The OCID of the Managed Database.') + name: str = Field(..., description='**[Required]** Gets the name of this JobDatabase.\nThe name of the Managed Database.') + database_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseType', description='Gets the database_type of this JobDatabase.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseSubType', description='Gets the database_sub_type of this JobDatabase.\nThe subtype of the Oracle Database. Indicates whether the database is a Container Database, Pluggable Database, or a Non-container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + deployment_type: Literal['ONPREMISE', 'BM', 'VM', 'EXADATA', 'EXADATA_CC', 'AUTONOMOUS', 'EXADATA_XS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='deploymentType', description='Gets the deployment_type of this JobDatabase.\nA list of the supported infrastructure that can be used to deploy the database.\n\nAllowed values for this property are: "ONPREMISE", "BM", "VM", "EXADATA", "EXADATA_CC", "AUTONOMOUS", "EXADATA_XS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + is_cluster: bool | None = Field(None, alias='isCluster', description='Gets the is_cluster of this JobDatabase.\nIndicates whether the Oracle Database is part of a cluster.') + workload_type: Literal['OLTP', 'DW', 'AJD', 'APEX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='workloadType', description='Gets the workload_type of this JobDatabase.\nThe workload type of the Autonomous Database.\n\nAllowed values for this property are: "OLTP", "DW", "AJD", "APEX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class JobExecution(DbmBaseModel): + """The details of a job execution.""" + + id: str = Field(..., description='**[Required]** Gets the id of this JobExecution.\nThe identifier of the job execution.') + name: str = Field(..., description='**[Required]** Gets the name of this JobExecution.\nThe name of the job execution.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this JobExecution. The OCID of the compartment in which the parent job resides.') + managed_database_group_id: str | None = Field(None, alias='managedDatabaseGroupId', description='Gets the managed_database_group_id of this JobExecution. The OCID of the Managed Database Group where the parent job has to be executed.') + managed_database_id: str = Field(..., alias='managedDatabaseId', description='**[Required]** Gets the managed_database_id of this JobExecution. The OCID of the Managed Database associated with the job execution.') + managed_database_name: str = Field(..., alias='managedDatabaseName', description='**[Required]** Gets the managed_database_name of this JobExecution.\nThe name of the Managed Database associated with the job execution.') + database_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseType', description='Gets the database_type of this JobExecution.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseSubType', description='Gets the database_sub_type of this JobExecution.\nThe subtype of the Oracle Database. Indicates whether the database is a Container Database, Pluggable Database, or a Non-container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + deployment_type: Literal['ONPREMISE', 'BM', 'VM', 'EXADATA', 'EXADATA_CC', 'AUTONOMOUS', 'EXADATA_XS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='deploymentType', description='Gets the deployment_type of this JobExecution.\nA list of the supported infrastructure that can be used to deploy the database.\n\nAllowed values for this property are: "ONPREMISE", "BM", "VM", "EXADATA", "EXADATA_CC", "AUTONOMOUS", "EXADATA_XS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + is_cluster: bool | None = Field(None, alias='isCluster', description='Gets the is_cluster of this JobExecution.\nIndicates whether the Oracle Database is part of a cluster.') + workload_type: Literal['OLTP', 'DW', 'AJD', 'APEX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='workloadType', description='Gets the workload_type of this JobExecution.\nThe workload type of the Autonomous Database.\n\nAllowed values for this property are: "OLTP", "DW", "AJD", "APEX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + job_id: str = Field(..., alias='jobId', description='**[Required]** Gets the job_id of this JobExecution. The OCID of the parent job.') + job_name: str = Field(..., alias='jobName', description='**[Required]** Gets the job_name of this JobExecution.\nThe name of the parent job.') + job_run_id: str = Field(..., alias='jobRunId', description='**[Required]** Gets the job_run_id of this JobExecution.\nThe identifier of the associated job run.') + status: Literal['SUCCEEDED', 'FAILED', 'IN_PROGRESS', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the status of this JobExecution.\nThe status of the job execution.\n\nAllowed values for this property are: "SUCCEEDED", "FAILED", "IN_PROGRESS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + error_message: str | None = Field(None, alias='errorMessage', description='Gets the error_message of this JobExecution.\nThe error message that is returned if the job execution fails. Null is returned if the job is\nstill running or if the job execution is successful.') + result_details: JobExecutionResultDetails | None = Field(None, alias='resultDetails', description='Gets the result_details of this JobExecution.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this JobExecution.\nThe date and time when the job execution was created.') + time_completed: datetime | None = Field(None, alias='timeCompleted', description='Gets the time_completed of this JobExecution.\nThe date and time when the job execution completed.') + user_name: str | None = Field(None, alias='userName', description='Gets the user_name of this JobExecution.\nThe database user name used to execute the SQL job.') + sql_text: str | None = Field(None, alias='sqlText', description='Gets the sql_text of this JobExecution.\nThe SQL text executed as part of the job.') + in_binds: JobInBindsDetails | None = Field(None, alias='inBinds', description='Gets the in_binds of this JobExecution.') + out_binds: JobOutBindsDetails | None = Field(None, alias='outBinds', description='Gets the out_binds of this JobExecution.') + schedule_details: JobScheduleDetails | None = Field(None, alias='scheduleDetails', description='Gets the schedule_details of this JobExecution.') + + +class JobExecutionCollection(DbmBaseModel): + """A collection of job execution objects.""" + + items: list[JobExecutionSummary] = Field(..., description='**[Required]** Gets the items of this JobExecutionCollection.\nA list of JobExecutionSummary objects.') + + +class JobExecutionResultDetails(DbmRequestModel): + """The job execution result details.""" + + type: Literal['OBJECT_STORAGE', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the type of this JobExecutionResultDetails.\nThe type of job execution result.\n\nAllowed values for this property are: "OBJECT_STORAGE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class JobExecutionResultLocation(DbmBaseModel): + """The location of the job execution result.""" + + type: Literal['OBJECT_STORAGE', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the type of this JobExecutionResultLocation.\nThe type of the job execution result location.\n\nAllowed values for this property are: "OBJECT_STORAGE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class JobExecutionSummary(DbmBaseModel): + """A summary of a job execution on a Managed Database.""" + + id: str = Field(..., description='**[Required]** Gets the id of this JobExecutionSummary.\nThe identifier of the job execution.') + name: str = Field(..., description='**[Required]** Gets the name of this JobExecutionSummary.\nThe name of the job execution.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this JobExecutionSummary. The OCID of the compartment in which the parent job resides.') + managed_database_group_id: str | None = Field(None, alias='managedDatabaseGroupId', description='Gets the managed_database_group_id of this JobExecutionSummary. The OCID of the Managed Database Group where the parent job has to be executed.') + managed_database_id: str = Field(..., alias='managedDatabaseId', description='**[Required]** Gets the managed_database_id of this JobExecutionSummary. The OCID of Managed Database associated with the job execution.') + managed_database_name: str = Field(..., alias='managedDatabaseName', description='**[Required]** Gets the managed_database_name of this JobExecutionSummary.\nThe name of the Managed Database associated with the job execution.') + database_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseType', description='Gets the database_type of this JobExecutionSummary.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseSubType', description='Gets the database_sub_type of this JobExecutionSummary.\nThe subtype of the Oracle Database. Indicates whether the database is a Container Database, Pluggable Database, or a Non-container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + deployment_type: Literal['ONPREMISE', 'BM', 'VM', 'EXADATA', 'EXADATA_CC', 'AUTONOMOUS', 'EXADATA_XS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='deploymentType', description='Gets the deployment_type of this JobExecutionSummary.\nA list of the supported infrastructure that can be used to deploy the database.\n\nAllowed values for this property are: "ONPREMISE", "BM", "VM", "EXADATA", "EXADATA_CC", "AUTONOMOUS", "EXADATA_XS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + is_cluster: bool | None = Field(None, alias='isCluster', description='Gets the is_cluster of this JobExecutionSummary.\nIndicates whether the Oracle Database is part of a cluster.') + workload_type: Literal['OLTP', 'DW', 'AJD', 'APEX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='workloadType', description='Gets the workload_type of this JobExecutionSummary.\nThe workload type of the Autonomous Database.\n\nAllowed values for this property are: "OLTP", "DW", "AJD", "APEX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + job_id: str = Field(..., alias='jobId', description='**[Required]** Gets the job_id of this JobExecutionSummary. The OCID of the parent job.') + job_name: str = Field(..., alias='jobName', description='**[Required]** Gets the job_name of this JobExecutionSummary.\nThe name of the parent job.') + status: str = Field(..., description='**[Required]** Gets the status of this JobExecutionSummary.\nThe status of the job execution.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this JobExecutionSummary.\nThe date and time when the job execution was created.') + time_completed: datetime | None = Field(None, alias='timeCompleted', description='Gets the time_completed of this JobExecutionSummary.\nThe date and time when the job execution was completed.') + + +class JobExecutionsStatusSummary(DbmBaseModel): + """A summary of the status of the job executions.""" + + status: Literal['SUCCEEDED', 'FAILED', 'IN_PROGRESS', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the status of this JobExecutionsStatusSummary.\nThe status of the job execution.\n\nAllowed values for this property are: "SUCCEEDED", "FAILED", "IN_PROGRESS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + count: int = Field(..., ge=0, description='**[Required]** Gets the count of this JobExecutionsStatusSummary.\nThe number of job executions of a particular status.') + + +class JobExecutionsStatusSummaryCollection(DbmBaseModel): + """A collection of job execution status summary objects.""" + + items: list[JobExecutionsStatusSummary] = Field(..., description='**[Required]** Gets the items of this JobExecutionsStatusSummaryCollection.\nA list of JobExecutionsSummary objects.') + + +class JobInBind(DbmBaseModel): + """The details of the job in-bind variable.""" + + position: int = Field(..., description='**[Required]** Gets the position of this JobInBind.\nThe position of the in-bind variable.') + data_type: Literal['NUMBER', 'STRING', 'CLOB', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dataType', description='**[Required]** Gets the data_type of this JobInBind.\nThe datatype of the in-bind variable.\n\nAllowed values for this property are: "NUMBER", "STRING", "CLOB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + values: list[str] = Field(..., description='**[Required]** Gets the values of this JobInBind.\nThe values for the in-bind variable.') + array_type_name: str | None = Field(None, alias='arrayTypeName', description='Gets the array_type_name of this JobInBind.\nThe Oracle schema object name for the predefined type of array.') + + +class JobInBindsDetails(DbmRequestModel): + """A collection of job in-bind variables.""" + + items: list[JobInBind] = Field(..., description='**[Required]** Gets the items of this JobInBindsDetails.\nA list of JobInBind objects.') + + +class JobOutBind(DbmBaseModel): + """The details of the job out-bind variable.""" + + position: int = Field(..., description='**[Required]** Gets the position of this JobOutBind.\nThe position of the out-bind variable.') + data_type: Literal['NUMBER', 'STRING', 'CLOB', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dataType', description='**[Required]** Gets the data_type of this JobOutBind.\nThe datatype of the out-bind variable.\n\nAllowed values for this property are: "NUMBER", "STRING", "CLOB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class JobOutBindsDetails(DbmRequestModel): + """A collection of job out-bind variables.""" + + items: list[JobOutBind] = Field(..., description='**[Required]** Gets the items of this JobOutBindsDetails.\nA list of JobOutBind objects.') + + +class JobRun(DbmBaseModel): + """The details of a specific job run.""" + + id: str = Field(..., description='**[Required]** Gets the id of this JobRun.\nThe identifier of the job run.') + name: str = Field(..., description='**[Required]** Gets the name of this JobRun.\nThe name of the job run.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this JobRun. The OCID of the compartment in which the parent job resides.') + job_id: str = Field(..., alias='jobId', description='**[Required]** Gets the job_id of this JobRun. The OCID of the parent job.') + job_name: str = Field(..., alias='jobName', description='**[Required]** Gets the job_name of this JobRun.\nThe name of the parent job.') + managed_database_group_id: str | None = Field(None, alias='managedDatabaseGroupId', description='Gets the managed_database_group_id of this JobRun. The OCID of the Managed Database Group where the parent job has to be executed.') + managed_database_id: str | None = Field(None, alias='managedDatabaseId', description='Gets the managed_database_id of this JobRun. The OCID of Managed Database where the parent job has to be executed.') + run_status: Literal['COMPLETED', 'FAILED', 'IN_PROGRESS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='runStatus', description='**[Required]** Gets the run_status of this JobRun.\nThe status of the job run.\n\nAllowed values for this property are: "COMPLETED", "FAILED", "IN_PROGRESS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_submitted: datetime = Field(..., alias='timeSubmitted', description='**[Required]** Gets the time_submitted of this JobRun.\nThe date and time when the job run was submitted.') + time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this JobRun.\nThe date and time when the job run was last updated.') + + +class JobRunCollection(DbmBaseModel): + """A collection of job run objects.""" + + items: list[JobRunSummary] = Field(..., description='**[Required]** Gets the items of this JobRunCollection.\nA list of JobRunSummary objects.') + + +class JobRunSummary(DbmBaseModel): + """A summary of a specific job run.""" + + id: str = Field(..., description='**[Required]** Gets the id of this JobRunSummary.\nThe identifier of the job run.') + name: str = Field(..., description='**[Required]** Gets the name of this JobRunSummary.\nThe name of the job run.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this JobRunSummary. The OCID of the compartment in which the parent job resides.') + job_id: str = Field(..., alias='jobId', description='**[Required]** Gets the job_id of this JobRunSummary. The OCID of the parent job.') + job_name: str = Field(..., alias='jobName', description='**[Required]** Gets the job_name of this JobRunSummary.\nThe name of the parent job.') + managed_database_group_id: str | None = Field(None, alias='managedDatabaseGroupId', description='Gets the managed_database_group_id of this JobRunSummary. The OCID of the Managed Database Group where the parent job has to be executed.') + managed_database_id: str | None = Field(None, alias='managedDatabaseId', description='Gets the managed_database_id of this JobRunSummary. The OCID of the Managed Database where the parent job has to be executed.') + run_status: str = Field(..., alias='runStatus', description='**[Required]** Gets the run_status of this JobRunSummary.\nThe status of the job run.') + time_submitted: datetime = Field(..., alias='timeSubmitted', description='**[Required]** Gets the time_submitted of this JobRunSummary.\nThe date and time when the job run was submitted.') + time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this JobRunSummary.\nThe date and time when the job run was last updated.') + + +class JobScheduleDetails(DbmRequestModel): + """The details of the job schedule.""" + + start_time: str | None = Field(None, alias='startTime', description='Gets the start_time of this JobScheduleDetails.\nThe start time of the scheduled job in UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".') + end_time: str | None = Field(None, alias='endTime', description='Gets the end_time of this JobScheduleDetails.\nThe end time of the scheduled job in UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".') + interval_type: Literal['DAILY', 'HOURLY', 'WEEKLY', 'MONTHLY', 'NEVER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='intervalType', description='Gets the interval_type of this JobScheduleDetails.\nThe interval type for a recurring scheduled job. For a non-recurring (one time) job, NEVER must be specified as the interval type.\n\nAllowed values for this property are: "DAILY", "HOURLY", "WEEKLY", "MONTHLY", "NEVER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + interval_value: str | None = Field(None, alias='intervalValue', description='Gets the interval_value of this JobScheduleDetails.\nThe value for the interval period for a recurring scheduled job.') + + +class JobSummary(DbmBaseModel): + """A summary of the job.""" + + id: str = Field(..., description='**[Required]** Gets the id of this JobSummary. The OCID of the job.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this JobSummary. The OCID of the compartment in which the job resides.') + name: str = Field(..., description='**[Required]** Gets the name of this JobSummary.\nThe display name of the job.') + description: str | None = Field(None, description='Gets the description of this JobSummary.\nThe description of the job.') + managed_database_group_id: str | None = Field(None, alias='managedDatabaseGroupId', description='Gets the managed_database_group_id of this JobSummary. The OCID of the Managed Database Group where the job has to be executed.') + managed_database_id: str | None = Field(None, alias='managedDatabaseId', description='Gets the managed_database_id of this JobSummary. The OCID of the Managed Database where the job has to be executed.') + database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseSubType', description='Gets the database_sub_type of this JobSummary.\nThe subtype of the Oracle Database where the job has to be executed. Only applicable when managedDatabaseGroupId is provided.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + schedule_type: str = Field(..., alias='scheduleType', description='**[Required]** Gets the schedule_type of this JobSummary.\nThe schedule type of the job.') + schedule_details: JobScheduleDetails | None = Field(None, alias='scheduleDetails', description='Gets the schedule_details of this JobSummary.') + job_type: Literal['SQL', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='jobType', description='**[Required]** Gets the job_type of this JobSummary.\nThe type of job.\n\nAllowed values for this property are: "SQL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_state: str = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this JobSummary.\nThe lifecycle state of the job.') + timeout: str | None = Field(None, description='Gets the timeout of this JobSummary.\nThe job timeout duration, which is expressed like "1h 10m 15s".') + submission_error_message: str | None = Field(None, alias='submissionErrorMessage', description='Gets the submission_error_message of this JobSummary.\nThe error message that is returned if the job submission fails. Null is returned in all other scenarios.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this JobSummary.\nThe date and time when the job was created.') + time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this JobSummary.\nThe date and time when the job was last updated.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this JobSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this JobSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this JobSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class LoadSqlPlanBaselinesFromAwrDetails(DbmRequestModel): + """The details required to load plans from Automatic Workload Repository (AWR). +It takes either credentials or databaseCredential. It's recommended to provide databaseCredential""" + + job_name: str = Field(..., alias='jobName', description='**[Required]** Gets the job_name of this LoadSqlPlanBaselinesFromAwrDetails.\nThe name of the database job used for loading SQL plan baselines.') + job_description: str | None = Field(None, alias='jobDescription', description='Gets the job_description of this LoadSqlPlanBaselinesFromAwrDetails.\nThe description of the job.') + begin_snapshot: int = Field(..., alias='beginSnapshot', description='**[Required]** Gets the begin_snapshot of this LoadSqlPlanBaselinesFromAwrDetails.\nThe begin snapshot.') + end_snapshot: int = Field(..., alias='endSnapshot', description='**[Required]** Gets the end_snapshot of this LoadSqlPlanBaselinesFromAwrDetails.\nThe end snapshot.') + sql_text_filter: str | None = Field(None, alias='sqlTextFilter', description="Gets the sql_text_filter of this LoadSqlPlanBaselinesFromAwrDetails.\nA filter applied to AWR to select only qualifying plans to be loaded.\nBy default all plans in AWR are selected. The filter can take the form of\nany `WHERE` clause predicate that can be specified against the column\n`DBA_HIST_SQLTEXT.SQL_TEXT`. An example is `sql_text like 'SELECT %'`.") + is_fixed: bool | None = Field(None, alias='isFixed', description='Gets the is_fixed of this LoadSqlPlanBaselinesFromAwrDetails.\nIndicates whether the plans are loaded as fixed plans (`true`) or non-fixed plans (`false`).\nBy default, they are loaded as non-fixed plans.') + is_enabled: bool | None = Field(None, alias='isEnabled', description='Gets the is_enabled of this LoadSqlPlanBaselinesFromAwrDetails.\nIndicates whether the loaded plans are enabled (`true`) or not (`false`).\nBy default, they are enabled.') + credentials: ManagedDatabaseCredential | None = Field(None, description='Gets the credentials of this LoadSqlPlanBaselinesFromAwrDetails.') + database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this LoadSqlPlanBaselinesFromAwrDetails.') + + +class LoadSqlPlanBaselinesFromCursorCacheDetails(DbmRequestModel): + """The details of SQL statements and plans to be loaded from cursor cache. You can specify +the plans to load using SQL ID, plan identifier, or filterName and filterValue pair. +You can also control the SQL plan baseline into which the plans are loaded using either +SQL text or SQL handle. +It takes either credentials or databaseCredential. It's recommended to provide databaseCredential""" + + job_name: str = Field(..., alias='jobName', description='**[Required]** Gets the job_name of this LoadSqlPlanBaselinesFromCursorCacheDetails.\nThe name of the database job used for loading SQL plan baselines.') + job_description: str | None = Field(None, alias='jobDescription', description='Gets the job_description of this LoadSqlPlanBaselinesFromCursorCacheDetails.\nThe description of the job.') + sql_id: str | None = Field(None, alias='sqlId', description='Gets the sql_id of this LoadSqlPlanBaselinesFromCursorCacheDetails.\nThe SQL statement identifier. Identifies a SQL statement in the cursor cache.') + plan_hash: float | None = Field(None, alias='planHash', description='Gets the plan_hash of this LoadSqlPlanBaselinesFromCursorCacheDetails.\nThe plan identifier. By default, all plans present in the cursor cache\nfor the SQL statement identified by `sqlId` are captured.') + sql_text: str | None = Field(None, alias='sqlText', description='Gets the sql_text of this LoadSqlPlanBaselinesFromCursorCacheDetails.\nThe SQL text to use in identifying the SQL plan baseline into which the plans\nare loaded. If the SQL plan baseline does not exist, it is created.') + sql_handle: str | None = Field(None, alias='sqlHandle', description='Gets the sql_handle of this LoadSqlPlanBaselinesFromCursorCacheDetails.\nThe SQL handle to use in identifying the SQL plan baseline into which\nthe plans are loaded.') + filter_name: Literal['SQL_TEXT', 'PARSING_SCHEMA_NAME', 'MODULE', 'ACTION'] | None = Field(None, alias='filterName', description='Gets the filter_name of this LoadSqlPlanBaselinesFromCursorCacheDetails.\nThe name of the filter.\n\n- SQL_TEXT: Search pattern to apply to SQL text.\n- PARSING_SCHEMA_NAME: Name of the parsing schema.\n- MODULE: Name of the module.\n- ACTION: Name of the action.\n\nAllowed values for this property are: "SQL_TEXT", "PARSING_SCHEMA_NAME", "MODULE", "ACTION"') + filter_value: str | None = Field(None, alias='filterValue', description='Gets the filter_value of this LoadSqlPlanBaselinesFromCursorCacheDetails.\nThe filter value. It is upper-cased except when it is enclosed in\ndouble quotes or filter name is `SQL_TEXT`.') + is_fixed: bool | None = Field(None, alias='isFixed', description='Gets the is_fixed of this LoadSqlPlanBaselinesFromCursorCacheDetails.\nIndicates whether the plans are loaded as fixed plans (`true`) or non-fixed plans (`false`).\nBy default, they are loaded as non-fixed plans.') + is_enabled: bool | None = Field(None, alias='isEnabled', description='Gets the is_enabled of this LoadSqlPlanBaselinesFromCursorCacheDetails.\nIndicates whether the loaded plans are enabled (`true`) or not (`false`).\nBy default, they are enabled.') + credentials: ManagedDatabaseCredential | None = Field(None, description='Gets the credentials of this LoadSqlPlanBaselinesFromCursorCacheDetails.') + database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this LoadSqlPlanBaselinesFromCursorCacheDetails.') + + +class LoadSqlTuningSetDetails(DbmRequestModel): + """The details required to load the Sql statements into the Sql tuning set. +It takes either credentialDetails or databaseCredential. It's recommended to provide databaseCredential""" + + credential_details: SqlTuningSetAdminCredentialDetails | None = Field(None, alias='credentialDetails', description='Gets the credential_details of this LoadSqlTuningSetDetails.') + database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this LoadSqlTuningSetDetails.') + show_sql_only: int | None = Field(None, alias='showSqlOnly', description='Gets the show_sql_only of this LoadSqlTuningSetDetails.\nFlag to indicate whether to create the Sql tuning set or just display the plsql used to create Sql tuning set.') + owner: str | None = Field(None, description='Gets the owner of this LoadSqlTuningSetDetails.\nThe owner of the Sql tuning set.') + name: str = Field(..., description='**[Required]** Gets the name of this LoadSqlTuningSetDetails.\nThe name of the Sql tuning set.') + load_type: Literal['INCREMENTAL_CURSOR_CACHE', 'CURRENT_CURSOR_CACHE', 'AWR'] = Field(..., alias='loadType', description='**[Required]** Gets the load_type of this LoadSqlTuningSetDetails.\nSpecifies the loading method into the Sql tuning set.\n\nAllowed values for this property are: "INCREMENTAL_CURSOR_CACHE", "CURRENT_CURSOR_CACHE", "AWR"') + basic_filter: str | None = Field(None, alias='basicFilter', description='Gets the basic_filter of this LoadSqlTuningSetDetails. Specifies the Sql predicate to filter the Sql from the Sql tuning set defined on attributes of the SQLSET_ROW. User could use any combination of the following columns with appropriate values as Sql predicate Refer to the documentation.') + recursive_sql: Literal['HAS_RECURSIVE_SQL', 'NO_RECURSIVE_SQL'] | None = Field(None, alias='recursiveSql', description='Gets the recursive_sql of this LoadSqlTuningSetDetails.\nSpecifies that the filter must include recursive Sql in the Sql tuning set.\n\nAllowed values for this property are: "HAS_RECURSIVE_SQL", "NO_RECURSIVE_SQL"') + result_percentage: float | None = Field(None, alias='resultPercentage', description='Gets the result_percentage of this LoadSqlTuningSetDetails.\nSpecifies a filter that picks the top n% according to the supplied ranking measure.\nNote that this parameter applies only if one ranking measure is supplied.') + result_limit: int | None = Field(None, alias='resultLimit', description='Gets the result_limit of this LoadSqlTuningSetDetails.\nThe top limit Sql from the filtered source, ranked by the ranking measure.') + ranking_measure1: Literal['ELAPSED_TIME', 'CPU_TIME', 'OPTIMIZER_COST', 'BUFFER_GETS', 'DISK_READS', 'DIRECT_WRITES'] | None = Field(None, alias='rankingMeasure1', description='Gets the ranking_measure1 of this LoadSqlTuningSetDetails.\nSpecifies an ORDER BY clause on the selected Sql. User can specify upto three ranking measures.\n\nAllowed values for this property are: "ELAPSED_TIME", "CPU_TIME", "OPTIMIZER_COST", "BUFFER_GETS", "DISK_READS", "DIRECT_WRITES"') + ranking_measure2: Literal['ELAPSED_TIME', 'CPU_TIME', 'OPTIMIZER_COST', 'BUFFER_GETS', 'DISK_READS', 'DIRECT_WRITES'] | None = Field(None, alias='rankingMeasure2', description='Gets the ranking_measure2 of this LoadSqlTuningSetDetails.\nSpecifies an ORDER BY clause on the selected Sql. User can specify upto three ranking measures.\n\nAllowed values for this property are: "ELAPSED_TIME", "CPU_TIME", "OPTIMIZER_COST", "BUFFER_GETS", "DISK_READS", "DIRECT_WRITES"') + ranking_measure3: Literal['ELAPSED_TIME', 'CPU_TIME', 'OPTIMIZER_COST', 'BUFFER_GETS', 'DISK_READS', 'DIRECT_WRITES'] | None = Field(None, alias='rankingMeasure3', description='Gets the ranking_measure3 of this LoadSqlTuningSetDetails.\nSpecifies an ORDER BY clause on the selected Sql. User can specify upto three ranking measures.\n\nAllowed values for this property are: "ELAPSED_TIME", "CPU_TIME", "OPTIMIZER_COST", "BUFFER_GETS", "DISK_READS", "DIRECT_WRITES"') + total_time_limit: int | None = Field(None, alias='totalTimeLimit', description='Gets the total_time_limit of this LoadSqlTuningSetDetails.\nDefines the total amount of time, in seconds, to execute.') + repeat_interval: int | None = Field(None, alias='repeatInterval', description='Gets the repeat_interval of this LoadSqlTuningSetDetails.\nDefines the amount of time, in seconds, to pause between sampling.') + capture_option: Literal['INSERT', 'UPDATE', 'MERGE'] | None = Field(None, alias='captureOption', description='Gets the capture_option of this LoadSqlTuningSetDetails.\nSpecifies whether to insert new statements, update existing statements, or both.\n\nAllowed values for this property are: "INSERT", "UPDATE", "MERGE"') + capture_mode: Literal['MODE_REPLACE_OLD_STATS', 'MODE_ACCUMULATE_STATS'] | None = Field(None, alias='captureMode', description='Gets the capture_mode of this LoadSqlTuningSetDetails.\nSpecifies the capture mode. Note that this parameter is applicable only for UPDATE and MERGE capture options.\nCapture mode can take one of the following values\n - MODE_REPLACE_OLD_STATS\n Replaces statistics when the number of executions is greater than the number stored in the Sql tuning set\n - MODE_ACCUMULATE_STATS\n Adds new values to current values for Sql that is already stored.\n Note that this mode detects if a statement has been aged out, so the final value for a statistics is the sum of the statistics of all cursors that statement existed under.\n\nAllowed values for this property are: "MODE_REPLACE_OLD_STATS", "MODE_ACCUMULATE_STATS"') + attribute_list: str | None = Field(None, alias='attributeList', description='Gets the attribute_list of this LoadSqlTuningSetDetails.\nSpecifies the list of Sql statement attributes to return in the result.\nNote that this parameter cannot be made an enum since custom value can take a list of comma separated attribute names.\nAttribute list can take one of the following values.\n TYPICAL - Specifies BASIC plus Sql plan (without row source statistics) and without object reference list (default).\n BASIC - Specifies all attributes (such as execution statistics and binds) except the plans. The execution context is always part of the result.\n ALL - Specifies all attributes.\n CUSTOM - Comma-separated list of the following attribute names.\n - EXECUTION_STATISTICS\n - BIND_LIST\n - OBJECT_LIST\n - SQL_PLAN\n - SQL_PLAN_STATISTICS\nUsage examples:\n 1. "attributeList": "TYPICAL"\n 2. "attributeList": "ALL"\n 3. "attributeList": "EXECUTION_STATISTICS,OBJECT_LIST,SQL_PLAN"') + load_option: Literal['INSERT', 'UPDATE', 'MERGE'] | None = Field(None, alias='loadOption', description='Gets the load_option of this LoadSqlTuningSetDetails.\nSpecifies which statements are loaded into the Sql tuning set.\nThe possible values are.\n - INSERT (default)\n Adds only new statements.\n - UPDATE\n Updates existing the Sql statements and ignores any new statements.\n - MERGE\n Inserts new statements and updates the information of the existing ones.\n\nAllowed values for this property are: "INSERT", "UPDATE", "MERGE"') + update_option: Literal['REPLACE', 'ACCUMULATE'] | None = Field(None, alias='updateOption', description='Gets the update_option of this LoadSqlTuningSetDetails.\nSpecifies how existing Sql statements are updated.\nThis parameter is applicable only if load_option is specified with UPDATE or MERGE as an option.\nUpdate option can take one of the following values.\n REPLACE (default) - Updates the statement using the new statistics, bind list, object list, and so on.\n ACCUMULATE - Combines attributes when possible (for example, statistics such as elapsed_time), otherwise replaces the existing values (for example, module and action) with the provided values.\n Following Sql statement attributes can be accumulated.\n elapsed_time\n buffer_gets\n direct_writes\n disk_reads\n row_processed\n fetches\n executions\n end_of_fetch_count\n stat_period\n active_stat_period\n\nAllowed values for this property are: "REPLACE", "ACCUMULATE"') + update_attributes: str | None = Field(None, alias='updateAttributes', description='Gets the update_attributes of this LoadSqlTuningSetDetails.\nSpecifies the list of Sql statement attributes to update during a merge or update.\nNote that this parameter cannot be made an enum since custom value can take a list of comma separated attribute names.\nUpdate attributes can take one of the following values.\n NULL (default) - Specifies the content of the input cursor except the execution context. On other terms, it is equivalent to ALL without execution contexts such as module and action.\n BASIC - Specifies statistics and binds only.\n TYPICAL - Specifies BASIC with Sql plans (without row source statistics) and without an object reference list.\n ALL - Specifies all attributes, including the execution context attributes such as module and action.\n CUSTOM - List of comma separated attribute names to update\n EXECUTION_CONTEXT\n EXECUTION_STATISTICS\n SQL_BINDS\n SQL_PLAN\n SQL_PLAN_STATISTICS (similar to SQL_PLAN with added row source statistics)\nUsage examples:\n 1. "updateAttributes": "TYPICAL"\n 2. "updateAttributes": "BASIC"\n 3. "updateAttributes": "EXECUTION_STATISTICS,SQL_PLAN_STATISTICS,SQL_PLAN"\n 4. "updateAttributes": "EXECUTION_STATISTICS,SQL_PLAN"') + update_condition: Literal['OLD', 'NEW', 'NULL'] | None = Field(None, alias='updateCondition', description='Gets the update_condition of this LoadSqlTuningSetDetails.\nSpecifies when to perform the update.\nThe procedure only performs the update when the specified condition is satisfied.\nThe condition can refer to either the data source or destination.\nThe condition must use the following prefixes to refer to attributes from the source or the destination:\nOLD — Refers to statement attributes from the SQL tuning set (destination).\nNEW — Refers to statement attributes from the input statements (source).\nNULL — No updates are performed.\n\nAllowed values for this property are: "OLD", "NEW", "NULL"') + is_ignore_null: bool | None = Field(None, alias='isIgnoreNull', description='Gets the is_ignore_null of this LoadSqlTuningSetDetails.\nSpecifies whether to update attributes when the new value is NULL.\nIf TRUE, then the procedure does not update an attribute when the new value is NULL.\nThat is, do not override with NULL values unless intentional.\nPossible values - true or false') + commit_rows: int | None = Field(None, alias='commitRows', description='Gets the commit_rows of this LoadSqlTuningSetDetails.\nSpecifies whether to commit statements after DML.\nIf a value is provided, then the load commits after each specified number of statements is inserted.\nIf NULL is provided, then the load commits only once, at the end of the operation.') + begin_snapshot: int | None = Field(None, alias='beginSnapshot', description='Gets the begin_snapshot of this LoadSqlTuningSetDetails.\nDefines the beginning AWR snapshot (non-inclusive).') + end_snapshot: int | None = Field(None, alias='endSnapshot', description='Gets the end_snapshot of this LoadSqlTuningSetDetails.\nDefines the ending AWR snapshot (inclusive).') + baseline_name: str | None = Field(None, alias='baselineName', description='Gets the baseline_name of this LoadSqlTuningSetDetails.\nSpecifies the name of the AWR baseline period.\nWhen loading the sql statements from AWR, following inputs has to be provided:\nbeginSnapshot and endSnapshot\nOR\nbaselineName') + + +class MacsConnectorDetails(DbmRequestModel): + """The management agent details required to connect to an Oracle cloud Database.""" + + connector_type: Literal['PE', 'MACS', 'EXTERNAL', 'DIRECT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this ConnectorDetails.\nThe list of supported connection types:\n - PE: Private endpoint\n - MACS: Management agent\n - EXTERNAL: External database connector\n\n - DIRECT: Direct connection\n\nAllowed values for this property are: "PE", "MACS", "EXTERNAL", "DIRECT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + management_agent_id: str = Field(..., alias='managementAgentId', description='**[Required]** Gets the management_agent_id of this MacsConnectorDetails. The OCID of the management agent.') + + +class ManagedDatabase(DbmBaseModel): + """The details of a Managed Database.""" + + id: str = Field(..., description='**[Required]** Gets the id of this ManagedDatabase. The OCID of the Managed Database.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ManagedDatabase. The OCID of the compartment.') + name: str = Field(..., description='**[Required]** Gets the name of this ManagedDatabase.\nThe name of the Managed Database.') + database_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='databaseType', description='**[Required]** Gets the database_type of this ManagedDatabase.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='databaseSubType', description='**[Required]** Gets the database_sub_type of this ManagedDatabase.\nThe subtype of the Oracle Database. Indicates whether the database is a Container Database,\nPluggable Database, Non-container Database, Autonomous Database, or Autonomous Container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + deployment_type: Literal['ONPREMISE', 'BM', 'VM', 'EXADATA', 'EXADATA_CC', 'AUTONOMOUS', 'EXADATA_XS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='deploymentType', description='Gets the deployment_type of this ManagedDatabase.\nThe infrastructure used to deploy the Oracle Database.\n\nAllowed values for this property are: "ONPREMISE", "BM", "VM", "EXADATA", "EXADATA_CC", "AUTONOMOUS", "EXADATA_XS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + management_option: Literal['BASIC', 'ADVANCED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='managementOption', description='Gets the management_option of this ManagedDatabase.\nThe management option used when enabling Database Management.\n\nAllowed values for this property are: "BASIC", "ADVANCED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + workload_type: Literal['OLTP', 'DW', 'AJD', 'APEX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='workloadType', description='Gets the workload_type of this ManagedDatabase.\nThe workload type of the Autonomous Database.\n\nAllowed values for this property are: "OLTP", "DW", "AJD", "APEX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + is_cluster: bool = Field(..., alias='isCluster', description='**[Required]** Gets the is_cluster of this ManagedDatabase.\nIndicates whether the Oracle Database is part of a cluster.') + parent_container_id: str | None = Field(None, alias='parentContainerId', description='Gets the parent_container_id of this ManagedDatabase. The OCID of the parent Container Database if Managed Database is a Pluggable Database.') + managed_database_groups: list[ParentGroup] | None = Field(None, alias='managedDatabaseGroups', description='Gets the managed_database_groups of this ManagedDatabase.\nA list of Managed Database Groups that the Managed Database belongs to.') + db_system_id: str | None = Field(None, alias='dbSystemId', description='Gets the db_system_id of this ManagedDatabase. The OCID of the DB system that this Managed Database is part of.') + storage_system_id: str | None = Field(None, alias='storageSystemId', description='Gets the storage_system_id of this ManagedDatabase. The OCID of the storage DB system.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ManagedDatabase.\nThe date and time the Managed Database was created.') + database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this ManagedDatabase.\nThe Oracle Database version.') + database_status: Literal['UP', 'DOWN', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseStatus', description='Gets the database_status of this ManagedDatabase.\nThe status of the Oracle Database. Indicates whether the status of the database\nis UP, DOWN, or UNKNOWN at the current time.\n\nAllowed values for this property are: "UP", "DOWN", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + parent_container_name: str | None = Field(None, alias='parentContainerName', description='Gets the parent_container_name of this ManagedDatabase.\nThe name of the parent Container Database.') + parent_container_compartment_id: str | None = Field(None, alias='parentContainerCompartmentId', description='Gets the parent_container_compartment_id of this ManagedDatabase. The OCID of the compartment in which the parent Container Database resides, if the Managed Database is a Pluggable Database (PDB).') + instance_count: int | None = Field(None, ge=0, alias='instanceCount', description='Gets the instance_count of this ManagedDatabase.\nThe number of Oracle Real Application Clusters (Oracle RAC) database instances.') + instance_details: list[InstanceDetails] | None = Field(None, alias='instanceDetails', description='Gets the instance_details of this ManagedDatabase.\nThe details of the Oracle Real Application Clusters (Oracle RAC) database instances.') + pdb_count: int | None = Field(None, ge=0, alias='pdbCount', description='Gets the pdb_count of this ManagedDatabase.\nThe number of PDBs in the Container Database.') + pdb_status: list[PdbStatusDetails] | None = Field(None, alias='pdbStatus', description='Gets the pdb_status of this ManagedDatabase.\nThe status of the PDB in the Container Database.') + additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this ManagedDatabase.\nThe additional details specific to a type of database defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ManagedDatabase. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ManagedDatabase. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ManagedDatabase. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + dbmgmt_feature_configs: list[DatabaseFeatureConfiguration] | None = Field(None, alias='dbmgmtFeatureConfigs', description='Gets the dbmgmt_feature_configs of this ManagedDatabase.\nThe list of feature configurations') + database_platform_name: str | None = Field(None, alias='databasePlatformName', description='Gets the database_platform_name of this ManagedDatabase.\nThe operating system of database.') + + +class ManagedDatabaseCollection(DbmBaseModel): + """A collection of Managed Database objects.""" + + items: list[ManagedDatabaseSummary] = Field(..., description='**[Required]** Gets the items of this ManagedDatabaseCollection.\nAn array of ManagedDatabaseSummary resources.') + + +class ManagedDatabaseCredential(DbmBaseModel): + """The credential used to connect to the Managed Database and obtain the details of the optimizer statistics tasks.""" + + credential_type: Literal['SECRET', 'PASSWORD'] = Field(..., alias='credentialType', description='**[Required]** Gets the credential_type of this ManagedDatabaseCredential.\nIndicates the type of credential required to retrieve the details of the optimizer statistics tasks.\n\nAllowed values for this property are: "SECRET", "PASSWORD"') + username: str = Field(..., description='**[Required]** Gets the username of this ManagedDatabaseCredential.\nThe user name used to connect to the database.') + role: Literal['NORMAL', 'SYSDBA'] = Field(..., description='**[Required]** Gets the role of this ManagedDatabaseCredential.\nThe role of the database user.\n\nAllowed values for this property are: "NORMAL", "SYSDBA"') + + +class ManagedDatabaseGroup(DbmBaseModel): + """The details of a Managed Database Group.""" + + name: str = Field(..., description='**[Required]** Gets the name of this ManagedDatabaseGroup.\nThe name of the Managed Database Group.') + id: str = Field(..., description='**[Required]** Gets the id of this ManagedDatabaseGroup. The OCID of the Managed Database Group.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ManagedDatabaseGroup. The OCID of the compartment.') + description: str | None = Field(None, description='Gets the description of this ManagedDatabaseGroup.\nThe information specified by the user about the Managed Database Group.') + managed_databases: list[ChildDatabase] = Field(..., alias='managedDatabases', description='**[Required]** Gets the managed_databases of this ManagedDatabaseGroup.\nA list of Managed Databases in the Managed Database Group.') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ManagedDatabaseGroup.\nThe current lifecycle state of the Managed Database Group.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ManagedDatabaseGroup.\nThe date and time the Managed Database Group was created.') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this ManagedDatabaseGroup.\nThe date and time the Managed Database Group was last updated.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ManagedDatabaseGroup. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ManagedDatabaseGroup. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ManagedDatabaseGroup. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class ManagedDatabaseGroupCollection(DbmBaseModel): + """A collection of Managed Database Group resources.""" + + items: list[ManagedDatabaseGroupSummary] = Field(..., description='**[Required]** Gets the items of this ManagedDatabaseGroupCollection.\nAn array of ManagedDatabaseGroupSummary resources.') + + +class ManagedDatabaseGroupSummary(DbmBaseModel): + """A group of Managed Databases that will be managed together.""" + + name: str = Field(..., description='**[Required]** Gets the name of this ManagedDatabaseGroupSummary.\nThe name of the Managed Database Group.') + id: str = Field(..., description='**[Required]** Gets the id of this ManagedDatabaseGroupSummary. The OCID of the Managed Database Group.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ManagedDatabaseGroupSummary. The OCID of the compartment.') + description: str | None = Field(None, description='Gets the description of this ManagedDatabaseGroupSummary.\nThe information specified by the user about the Managed Database Group.') + managed_database_count: int = Field(..., ge=0, alias='managedDatabaseCount', description='**[Required]** Gets the managed_database_count of this ManagedDatabaseGroupSummary.\nThe number of Managed Databases in the Managed Database Group.') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ManagedDatabaseGroupSummary.\nThe current lifecycle state of the Managed Database Group.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ManagedDatabaseGroupSummary.\nThe date and time the Managed Database Group was created.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ManagedDatabaseGroupSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ManagedDatabaseGroupSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ManagedDatabaseGroupSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class ManagedDatabasePasswordCredential(DbmBaseModel): + """User provides a password to be used to connect to the database.""" + + credential_type: Literal['SECRET', 'PASSWORD'] = Field(..., alias='credentialType', description='**[Required]** Gets the credential_type of this ManagedDatabaseCredential.\nIndicates the type of credential required to retrieve the details of the optimizer statistics tasks.\n\nAllowed values for this property are: "SECRET", "PASSWORD"') + username: str = Field(..., description='**[Required]** Gets the username of this ManagedDatabaseCredential.\nThe user name used to connect to the database.') + role: Literal['NORMAL', 'SYSDBA'] = Field(..., description='**[Required]** Gets the role of this ManagedDatabaseCredential.\nThe role of the database user.\n\nAllowed values for this property are: "NORMAL", "SYSDBA"') + password: str = Field(..., description="**[Required]** Gets the password of this ManagedDatabasePasswordCredential.\nThe database user's password encoded using BASE64 scheme.") + + +class ManagedDatabaseSecretCredential(DbmBaseModel): + """User provides a secret OCID, which will be used to retrieve the password to connect to the database.""" + + credential_type: Literal['SECRET', 'PASSWORD'] = Field(..., alias='credentialType', description='**[Required]** Gets the credential_type of this ManagedDatabaseCredential.\nIndicates the type of credential required to retrieve the details of the optimizer statistics tasks.\n\nAllowed values for this property are: "SECRET", "PASSWORD"') + username: str = Field(..., description='**[Required]** Gets the username of this ManagedDatabaseCredential.\nThe user name used to connect to the database.') + role: Literal['NORMAL', 'SYSDBA'] = Field(..., description='**[Required]** Gets the role of this ManagedDatabaseCredential.\nThe role of the database user.\n\nAllowed values for this property are: "NORMAL", "SYSDBA"') + password_secret_id: str = Field(..., alias='passwordSecretId', description='**[Required]** Gets the password_secret_id of this ManagedDatabaseSecretCredential. The OCID of the Secret where the database password is stored.') + + +class ManagedDatabaseSummary(DbmBaseModel): + """A summary of the Managed Database.""" + + id: str = Field(..., description='**[Required]** Gets the id of this ManagedDatabaseSummary. The OCID of the Managed Database.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ManagedDatabaseSummary. The OCID of the compartment.') + name: str = Field(..., description='**[Required]** Gets the name of this ManagedDatabaseSummary.\nThe name of the Managed Database.') + database_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='databaseType', description='**[Required]** Gets the database_type of this ManagedDatabaseSummary.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='databaseSubType', description='**[Required]** Gets the database_sub_type of this ManagedDatabaseSummary.\nThe subtype of the Oracle Database. Indicates whether the database is a Container Database,\nPluggable Database, Non-container Database, Autonomous Database, or Autonomous Container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + deployment_type: Literal['ONPREMISE', 'BM', 'VM', 'EXADATA', 'EXADATA_CC', 'AUTONOMOUS', 'EXADATA_XS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='deploymentType', description='Gets the deployment_type of this ManagedDatabaseSummary.\nThe infrastructure used to deploy the Oracle Database.\n\nAllowed values for this property are: "ONPREMISE", "BM", "VM", "EXADATA", "EXADATA_CC", "AUTONOMOUS", "EXADATA_XS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + management_option: Literal['BASIC', 'ADVANCED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='managementOption', description='Gets the management_option of this ManagedDatabaseSummary.\nThe management option used when enabling Database Management.\n\nAllowed values for this property are: "BASIC", "ADVANCED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + workload_type: Literal['OLTP', 'DW', 'AJD', 'APEX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='workloadType', description='Gets the workload_type of this ManagedDatabaseSummary.\nThe workload type of the Autonomous Database.\n\nAllowed values for this property are: "OLTP", "DW", "AJD", "APEX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + is_cluster: bool = Field(..., alias='isCluster', description='**[Required]** Gets the is_cluster of this ManagedDatabaseSummary.\nIndicates whether the Oracle Database is part of a cluster.') + parent_container_id: str | None = Field(None, alias='parentContainerId', description='Gets the parent_container_id of this ManagedDatabaseSummary. The OCID of the parent Container Database if the Managed Database is a Pluggable Database.') + db_system_id: str | None = Field(None, alias='dbSystemId', description='Gets the db_system_id of this ManagedDatabaseSummary. The OCID of the DB system that this Managed Database is part of.') + storage_system_id: str | None = Field(None, alias='storageSystemId', description='Gets the storage_system_id of this ManagedDatabaseSummary. The OCID of the storage DB system.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ManagedDatabaseSummary.\nThe date and time the Managed Database was created.') + database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this ManagedDatabaseSummary.\nThe Oracle Database version.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ManagedDatabaseSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ManagedDatabaseSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ManagedDatabaseSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + dbmgmt_feature_configs: list[DatabaseFeatureConfiguration] | None = Field(None, alias='dbmgmtFeatureConfigs', description='Gets the dbmgmt_feature_configs of this ManagedDatabaseSummary.\nThe list of feature configurations') + database_platform_name: str | None = Field(None, alias='databasePlatformName', description='Gets the database_platform_name of this ManagedDatabaseSummary.\nThe operating system of database.') + + +class ManagedMySqlDatabase(DbmBaseModel): + """The details of the Managed MySQL Database.""" + + id: str = Field(..., description='**[Required]** Gets the id of this ManagedMySqlDatabase.\nThe OCID of the Managed MySQL Database.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ManagedMySqlDatabase.\nThe OCID of the compartment.') + db_name: str = Field(..., alias='dbName', description='**[Required]** Gets the db_name of this ManagedMySqlDatabase.\nThe name of the MySQL Database.') + db_version: str = Field(..., alias='dbVersion', description='**[Required]** Gets the db_version of this ManagedMySqlDatabase.\nThe version of the MySQL Database.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ManagedMySqlDatabase.\nThe date and time the Managed MySQL Database was created.') + name: str = Field(..., description='**[Required]** Gets the name of this ManagedMySqlDatabase.\nThe name of the Managed MySQL Database.') + heat_wave_management_type: Literal['BASIC', 'FULL', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='heatWaveManagementType', description='Gets the heat_wave_management_type of this ManagedMySqlDatabase.\nThe customer\'s selected type for HeatWave management.\n\nAllowed values for this property are: "BASIC", "FULL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + heat_wave_cluster_display_name: str | None = Field(None, alias='heatWaveClusterDisplayName', description='Gets the heat_wave_cluster_display_name of this ManagedMySqlDatabase.\nThe name of the HeatWave cluster.') + is_heat_wave_enabled: bool | None = Field(None, alias='isHeatWaveEnabled', description='Gets the is_heat_wave_enabled of this ManagedMySqlDatabase.\nIndicates whether HeatWave is enabled for the MySQL Database System or not.') + is_lakehouse_enabled: bool | None = Field(None, alias='isLakehouseEnabled', description='Gets the is_lakehouse_enabled of this ManagedMySqlDatabase.\nIndicates whether HeatWave Lakehouse is enabled for the MySQL Database System or not.') + heat_wave_node_shape: str | None = Field(None, alias='heatWaveNodeShape', description='Gets the heat_wave_node_shape of this ManagedMySqlDatabase.\nThe shape of the nodes in the HeatWave cluster.') + heat_wave_memory_size: int | None = Field(None, alias='heatWaveMemorySize', description='Gets the heat_wave_memory_size of this ManagedMySqlDatabase.\nThe total memory belonging to the HeatWave cluster in GBs.') + heat_wave_nodes: list[HeatWaveNode] | None = Field(None, alias='heatWaveNodes', description='Gets the heat_wave_nodes of this ManagedMySqlDatabase.\nThe information about individual HeatWave nodes in the cluster.') + is_heat_wave_active: bool | None = Field(None, alias='isHeatWaveActive', description='Gets the is_heat_wave_active of this ManagedMySqlDatabase.\nIndicates whether the HeatWave cluster is active or not.') + time_created_heat_wave: datetime | None = Field(None, alias='timeCreatedHeatWave', description='Gets the time_created_heat_wave of this ManagedMySqlDatabase.\nThe date and time the Managed MySQL Database was created.') + database_type: Literal['EXTERNAL', 'MDS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseType', description='Gets the database_type of this ManagedMySqlDatabase.\nThe type of the MySQL Database. Indicates whether the database\nis external or MDS.\n\nAllowed values for this property are: "EXTERNAL", "MDS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + management_state: Literal['ENABLED', 'DISABLED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='managementState', description='Gets the management_state of this ManagedMySqlDatabase.\nIndicates database management status.\n\nAllowed values for this property are: "ENABLED", "DISABLED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this ManagedMySqlDatabase.\nIndicates lifecycle state of the resource.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this ManagedMySqlDatabase.\nThe date and time the Managed MySQL Database was updated.') + + +class ManagedMySqlDatabaseBinaryLogInformation(DbmBaseModel): + """Information pertaining to the binary logs of a MySQL server.""" + + binary_logging: str = Field(..., alias='binaryLogging', description='**[Required]** Gets the binary_logging of this ManagedMySqlDatabaseBinaryLogInformation.\nThe status of binary logging on the MySQL server.') + binary_log_format: str | None = Field(None, alias='binaryLogFormat', description='Gets the binary_log_format of this ManagedMySqlDatabaseBinaryLogInformation.\nThe binary logging format used by the MySQL server.') + binary_log_compression: str | None = Field(None, alias='binaryLogCompression', description='Gets the binary_log_compression of this ManagedMySqlDatabaseBinaryLogInformation.\nIndicates whether compression is enabled for transactions written to binary log files on the MySQL server.') + binary_log_compression_percent: int | None = Field(None, alias='binaryLogCompressionPercent', description='Gets the binary_log_compression_percent of this ManagedMySqlDatabaseBinaryLogInformation.\nThe compression ratio for the binary log, expressed as a percentage.') + binary_log_name: str | None = Field(None, alias='binaryLogName', description='Gets the binary_log_name of this ManagedMySqlDatabaseBinaryLogInformation.\nThe name of the binary log file.') + binary_log_position: int | None = Field(None, alias='binaryLogPosition', description='Gets the binary_log_position of this ManagedMySqlDatabaseBinaryLogInformation.\nThe position within the binary log file.') + + +class ManagedMySqlDatabaseCollection(DbmBaseModel): + """A collection of Managed MySQL Database objects.""" + + items: list[ManagedMySqlDatabaseSummary] = Field(..., description='**[Required]** Gets the items of this ManagedMySqlDatabaseCollection.\nAn array of ManagedMySqlDatabaseSummary resources.') + + +class ManagedMySqlDatabaseGeneralReplicationInformation(DbmBaseModel): + """General information about the replication of a MySQL server.""" + + instance_type: str | None = Field(None, alias='instanceType', description='Gets the instance_type of this ManagedMySqlDatabaseGeneralReplicationInformation.\nThe type of the instance for example, Source, Replica, Primary Group Member, and Secondary Group Member. If the instance is replicating from one or more sources and has one or more replicas, which means, it belongs to a replication chain, the instance type can be Replica/Source.') + host_name: str | None = Field(None, alias='hostName', description="Gets the host_name of this ManagedMySqlDatabaseGeneralReplicationInformation.\nThis server's host name.") + port: int | None = Field(None, description='Gets the port of this ManagedMySqlDatabaseGeneralReplicationInformation.\nThe number of the port on which the server listens for TCP/IP connections.') + server_id: int = Field(..., alias='serverId', description="**[Required]** Gets the server_id of this ManagedMySqlDatabaseGeneralReplicationInformation.\nThis server's ID.") + server_uuid: str = Field(..., alias='serverUuid', description="**[Required]** Gets the server_uuid of this ManagedMySqlDatabaseGeneralReplicationInformation.\nThis server's Universally Unique Identifier (UUID).") + seconds_behind_source_max: int | None = Field(None, alias='secondsBehindSourceMax', description='Gets the seconds_behind_source_max of this ManagedMySqlDatabaseGeneralReplicationInformation.\nThe number of seconds the replica is behind the source. When multiple sources are involved, this is the maximum value across all sources.') + fetch_status_summary: str | None = Field(None, alias='fetchStatusSummary', description='Gets the fetch_status_summary of this ManagedMySqlDatabaseGeneralReplicationInformation.\nA summary of the current status of fetch operations.') + apply_status_summary: str | None = Field(None, alias='applyStatusSummary', description='Gets the apply_status_summary of this ManagedMySqlDatabaseGeneralReplicationInformation.\nA summary of the current status of apply operations.') + is_high_availability_enabled: bool | None = Field(None, alias='isHighAvailabilityEnabled', description='Gets the is_high_availability_enabled of this ManagedMySqlDatabaseGeneralReplicationInformation.\nSpecifies if high availability is enabled on this server.') + high_availability_member_state: str | None = Field(None, alias='highAvailabilityMemberState', description='Gets the high_availability_member_state of this ManagedMySqlDatabaseGeneralReplicationInformation.\nThe state of this server as a group replication member.') + inbound_replications_count: int | None = Field(None, ge=0, alias='inboundReplicationsCount', description='Gets the inbound_replications_count of this ManagedMySqlDatabaseGeneralReplicationInformation.\nThe number of sources this server is replicating from.') + read_only: Literal['ON', 'SUPER', 'OFF', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='readOnly', description='**[Required]** Gets the read_only of this ManagedMySqlDatabaseGeneralReplicationInformation.\nIf the value is ON, the instance is configured as read_only. If the value is SUPER, the instance is configured as super_read_only. If the value is OFF, the instance is neither read_only nor super_read_only.\n\nAllowed values for this property are: "ON", "SUPER", "OFF", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + gtid_mode: str | None = Field(None, alias='gtidMode', description='Gets the gtid_mode of this ManagedMySqlDatabaseGeneralReplicationInformation.\nThe Global Transaction Identifier (GTID) mode of this server.') + executed_gtid_set: str | None = Field(None, alias='executedGtidSet', description='Gets the executed_gtid_set of this ManagedMySqlDatabaseGeneralReplicationInformation.\nThe set of global transaction identifiers for transactions that have been executed on this source server.') + binary_logging: str | None = Field(None, alias='binaryLogging', description='Gets the binary_logging of this ManagedMySqlDatabaseGeneralReplicationInformation.\nThe status of binary logging on this server.') + binary_log_format: str | None = Field(None, alias='binaryLogFormat', description='Gets the binary_log_format of this ManagedMySqlDatabaseGeneralReplicationInformation.\nThe binary logging format used by this server.') + outbound_replications_count: int | None = Field(None, ge=0, alias='outboundReplicationsCount', description='Gets the outbound_replications_count of this ManagedMySqlDatabaseGeneralReplicationInformation.\nThe number of replicas replicating from this server.') + + +class ManagedMySqlDatabaseHighAvailabilityMemberCollection(DbmBaseModel): + """Information pertaining to high availability of a MySQL server.""" + + group_name: str | None = Field(None, alias='groupName', description='Gets the group_name of this ManagedMySqlDatabaseHighAvailabilityMemberCollection.\nThe name of the group to which this server instance belongs.') + single_primary_mode: str | None = Field(None, alias='singlePrimaryMode', description='Gets the single_primary_mode of this ManagedMySqlDatabaseHighAvailabilityMemberCollection.\nIndicates if the replication group is running in single-primary mode.') + group_auto_increment: int | None = Field(None, alias='groupAutoIncrement', description='Gets the group_auto_increment of this ManagedMySqlDatabaseHighAvailabilityMemberCollection.\nThe interval between successive values for auto-incremented columns for transactions that execute on this server instance.') + flow_control: str | None = Field(None, alias='flowControl', description='Gets the flow_control of this ManagedMySqlDatabaseHighAvailabilityMemberCollection.\nThe mode used for flow control.') + member_state: str | None = Field(None, alias='memberState', description='Gets the member_state of this ManagedMySqlDatabaseHighAvailabilityMemberCollection.\nThe state of this server as a group replication member.') + member_role: str | None = Field(None, alias='memberRole', description='Gets the member_role of this ManagedMySqlDatabaseHighAvailabilityMemberCollection.\nThe role of this server as a group replication member.') + view_id: str | None = Field(None, alias='viewId', description='Gets the view_id of this ManagedMySqlDatabaseHighAvailabilityMemberCollection.\nThe current view identifier for this group.') + transactions_in_gtid_executed: int | None = Field(None, alias='transactionsInGtidExecuted', description='Gets the transactions_in_gtid_executed of this ManagedMySqlDatabaseHighAvailabilityMemberCollection.\nThe number of transactions that were replicated within the cluster.') + items: list[ManagedMySqlDatabaseHighAvailabilityMemberSummary] = Field(..., description='**[Required]** Gets the items of this ManagedMySqlDatabaseHighAvailabilityMemberCollection.\nA list of MySqlHighAvailabilityMember records.') + status_summary: MySqlHighAvailabilityStatusSummary | None = Field(None, alias='statusSummary', description='Gets the status_summary of this ManagedMySqlDatabaseHighAvailabilityMemberCollection.') + + +class ManagedMySqlDatabaseHighAvailabilityMemberSummary(DbmBaseModel): + """Information about a member of a MySQL server group replication for high availability.""" + + member_host: str = Field(..., alias='memberHost', description='**[Required]** Gets the member_host of this ManagedMySqlDatabaseHighAvailabilityMemberSummary.\nThe host name of the group member that clients use to connect to it.') + member_port: int = Field(..., alias='memberPort', description='**[Required]** Gets the member_port of this ManagedMySqlDatabaseHighAvailabilityMemberSummary.\nThe port number of the group member that clients use to connect to it.') + member_state: str | None = Field(None, alias='memberState', description='Gets the member_state of this ManagedMySqlDatabaseHighAvailabilityMemberSummary.\nThe current state of the group member.') + member_role: str | None = Field(None, alias='memberRole', description='Gets the member_role of this ManagedMySqlDatabaseHighAvailabilityMemberSummary.\nThe current role of the group member in the group.') + member_uuid: str = Field(..., alias='memberUuid', description='**[Required]** Gets the member_uuid of this ManagedMySqlDatabaseHighAvailabilityMemberSummary.\nThe Universally Unique Identifier (UUID) of the member server.') + + +class ManagedMySqlDatabaseInboundReplicationCollection(DbmBaseModel): + """The collection of inbound replication records for a specific MySQL server.""" + + inbound_replications_count: int | None = Field(None, ge=0, alias='inboundReplicationsCount', description='Gets the inbound_replications_count of this ManagedMySqlDatabaseInboundReplicationCollection.\nThe number of sources this server is replicating from.') + replica_uuid: str | None = Field(None, alias='replicaUuid', description='Gets the replica_uuid of this ManagedMySqlDatabaseInboundReplicationCollection.\nThe Universally Unique Identifier (UUID) value of this replica server.') + replica_server_id: int | None = Field(None, alias='replicaServerId', description='Gets the replica_server_id of this ManagedMySqlDatabaseInboundReplicationCollection.\nThe server ID value of this replica.') + parallel_workers: int | None = Field(None, alias='parallelWorkers', description='Gets the parallel_workers of this ManagedMySqlDatabaseInboundReplicationCollection.\nThe number of applier threads for executing replication transactions in parallel.') + preserve_commit_order: str | None = Field(None, alias='preserveCommitOrder', description='Gets the preserve_commit_order of this ManagedMySqlDatabaseInboundReplicationCollection.\nFor multi-threaded replicas, indicates if transactions are executed and committed on the replica in the same order as they appear in the relay log.') + items: list[ManagedMySqlDatabaseInboundReplicationSummary] = Field(..., description='**[Required]** Gets the items of this ManagedMySqlDatabaseInboundReplicationCollection.\nA list of ManagedMySqlDatabaseInboundReplicationSummary records.') + + +class ManagedMySqlDatabaseInboundReplicationSummary(DbmBaseModel): + """Inbound replication information of a MySQL replica.""" + + source_host: str = Field(..., alias='sourceHost', description='**[Required]** Gets the source_host of this ManagedMySqlDatabaseInboundReplicationSummary.\nThe host name or IP address of the source this replica is connected to.') + source_port: int = Field(..., alias='sourcePort', description='**[Required]** Gets the source_port of this ManagedMySqlDatabaseInboundReplicationSummary.\nThe port used to connect to the source.') + fetch_status: str | None = Field(None, alias='fetchStatus', description='Gets the fetch_status of this ManagedMySqlDatabaseInboundReplicationSummary.\nThe current status of fetch operations.') + apply_status: str | None = Field(None, alias='applyStatus', description='Gets the apply_status of this ManagedMySqlDatabaseInboundReplicationSummary.\nThe current status of apply operations.') + desired_delay_seconds: int | None = Field(None, alias='desiredDelaySeconds', description='Gets the desired_delay_seconds of this ManagedMySqlDatabaseInboundReplicationSummary.\nThe desired number of seconds that the replica must lag the source.') + remaining_delay_seconds: int | None = Field(None, alias='remainingDelaySeconds', description='Gets the remaining_delay_seconds of this ManagedMySqlDatabaseInboundReplicationSummary.\nIf the replica is waiting for the desired delay seconds to pass since the source applied an event, this field contains the number of delay seconds remaining.') + channel_name: str | None = Field(None, alias='channelName', description='Gets the channel_name of this ManagedMySqlDatabaseInboundReplicationSummary.\nThe name of the replication channel.') + source_uuid: str = Field(..., alias='sourceUuid', description='**[Required]** Gets the source_uuid of this ManagedMySqlDatabaseInboundReplicationSummary.\nThe Universally Unique Identifier (UUID) value from the source server.') + source_server_id: int | None = Field(None, alias='sourceServerId', description='Gets the source_server_id of this ManagedMySqlDatabaseInboundReplicationSummary.\nThe server ID value from the source server.') + gtid_assignment: str | None = Field(None, alias='gtidAssignment', description="Gets the gtid_assignment of this ManagedMySqlDatabaseInboundReplicationSummary.\nIndicates whether the channel assigns global transaction identifiers (GTIDs) to anonymous replicated transactions. OFF means no GTIDs are assigned. LOCAL means a GTID is assigned that includes this replica's own universally unique identifier (UUID). A UUID as value indicates that a GTID is assigned, which includes that manually set UUID value.") + applier_filters: list[MySqlReplicationApplierFilter] | None = Field(None, alias='applierFilters', description='Gets the applier_filters of this ManagedMySqlDatabaseInboundReplicationSummary.\nA list of MySqlReplicationApplierFilter records.') + seconds_behind_source: int | None = Field(None, alias='secondsBehindSource', description='Gets the seconds_behind_source of this ManagedMySqlDatabaseInboundReplicationSummary.\nThe number of seconds the replica is behind the source server.') + retrieved_gtid_set: str | None = Field(None, alias='retrievedGtidSet', description='Gets the retrieved_gtid_set of this ManagedMySqlDatabaseInboundReplicationSummary.\nThe set of global transaction IDs corresponding to all transactions received by this replica from the source server. Empty if GTIDs are not in use.') + relay_log_storage_space_used: int | None = Field(None, alias='relayLogStorageSpaceUsed', description='Gets the relay_log_storage_space_used of this ManagedMySqlDatabaseInboundReplicationSummary.\nThe total size in bytes of all the existing relay log files pertaining to this channel.') + transactions_received: int | None = Field(None, alias='transactionsReceived', description='Gets the transactions_received of this ManagedMySqlDatabaseInboundReplicationSummary.\nThe number of transactions received by this replica from the source server.') + apply_delay: float | None = Field(None, alias='applyDelay', description='Gets the apply_delay of this ManagedMySqlDatabaseInboundReplicationSummary.\nThe time in seconds that the current transaction took between being committed on the source and being applied on the replica.') + busy_workers: int | None = Field(None, alias='busyWorkers', description='Gets the busy_workers of this ManagedMySqlDatabaseInboundReplicationSummary.\nThe number of workers currently busy applying transactions from the source server.') + fetch_error: MySqlFetchError | None = Field(None, alias='fetchError', description='Gets the fetch_error of this ManagedMySqlDatabaseInboundReplicationSummary.') + apply_error: MySqlApplyError | None = Field(None, alias='applyError', description='Gets the apply_error of this ManagedMySqlDatabaseInboundReplicationSummary.') + + +class ManagedMySqlDatabaseOutboundReplicationCollection(DbmBaseModel): + """The collection of outbound replication records of a MySQL server.""" + + outbound_replications_count: int | None = Field(None, ge=0, alias='outboundReplicationsCount', description='Gets the outbound_replications_count of this ManagedMySqlDatabaseOutboundReplicationCollection.\nThe number of outbound replications from the MySQL server.') + items: list[ManagedMySqlDatabaseOutboundReplicationSummary] = Field(..., description='**[Required]** Gets the items of this ManagedMySqlDatabaseOutboundReplicationCollection.\nThe list of ManagedMySqlDatabaseOutboundReplicationSummary records.') + + +class ManagedMySqlDatabaseOutboundReplicationSummary(DbmBaseModel): + """An outbound replication record of a MySQL server.""" + + replica_host: str | None = Field(None, alias='replicaHost', description='Gets the replica_host of this ManagedMySqlDatabaseOutboundReplicationSummary.\nThe host name of the replica server, as specified on the replica with the --report-host option. This can differ from the machine name as configured in the operating system.') + replica_port: int | None = Field(None, alias='replicaPort', description='Gets the replica_port of this ManagedMySqlDatabaseOutboundReplicationSummary.\nThe port on the replica server, as specified on the replica with the --report-port option. A zero in this column means that the replica port (--report-port) was not set.') + replica_uuid: str = Field(..., alias='replicaUuid', description='**[Required]** Gets the replica_uuid of this ManagedMySqlDatabaseOutboundReplicationSummary.\nThe Universally Unique Identifier (UUID) value of the replica server.') + replica_server_id: int = Field(..., alias='replicaServerId', description='**[Required]** Gets the replica_server_id of this ManagedMySqlDatabaseOutboundReplicationSummary.\nThe server ID value of the replica.') + + +class ManagedMySqlDatabaseSummary(DbmBaseModel): + """The details of the Managed MySQL Database.""" + + id: str = Field(..., description='**[Required]** Gets the id of this ManagedMySqlDatabaseSummary.\nThe OCID of the Managed MySQL Database.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ManagedMySqlDatabaseSummary.\nThe OCID of the compartment.') + db_name: str = Field(..., alias='dbName', description='**[Required]** Gets the db_name of this ManagedMySqlDatabaseSummary.\nThe name of the MySQL Database.') + db_version: str = Field(..., alias='dbVersion', description='**[Required]** Gets the db_version of this ManagedMySqlDatabaseSummary.\nThe version of the MySQL Database.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ManagedMySqlDatabaseSummary.\nThe date and time the Managed MySQL Database was created.') + name: str = Field(..., description='**[Required]** Gets the name of this ManagedMySqlDatabaseSummary.\nThe name of the Managed MySQL Database.') + database_type: Literal['EXTERNAL', 'MDS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseType', description='Gets the database_type of this ManagedMySqlDatabaseSummary.\nThe type of the MySQL Database. Indicates whether the database\nis external or MDS.\n\nAllowed values for this property are: "EXTERNAL", "MDS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + management_state: Literal['ENABLED', 'DISABLED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='managementState', description='Gets the management_state of this ManagedMySqlDatabaseSummary.\nIndicates database management status.\n\nAllowed values for this property are: "ENABLED", "DISABLED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this ManagedMySqlDatabaseSummary.\nIndicates lifecycle state of the resource.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + heat_wave_management_type: str | None = Field(None, alias='heatWaveManagementType', description="Gets the heat_wave_management_type of this ManagedMySqlDatabaseSummary.\nThe customer's selected type for HeatWave management.") + + +class MemoryAggregateMetrics(DbmBaseModel): + """The memory aggregate metric details.""" + + memory_usage: list[MetricDataPoint] | None = Field(None, alias='memoryUsage', description='Gets the memory_usage of this MemoryAggregateMetrics.\nThe Memory Usage metrics grouped by memorypool for a specific Managed Database.') + + +class MetricDataPoint(DbmBaseModel): + """The metric values with dimension details.""" + + value: float | None = Field(None, description='Gets the value of this MetricDataPoint.\nThe value of the metric.') + unit: str | None = Field(None, description='Gets the unit of this MetricDataPoint.\nThe unit of the metric value.') + dimensions: list[MetricDimensionDefinition] | None = Field(None, description='Gets the dimensions of this MetricDataPoint.\nThe dimensions of the metric.') + + +class MetricDimensionDefinition(DbmBaseModel): + """The metric dimension details.""" + + dimension_name: str | None = Field(None, alias='dimensionName', description='Gets the dimension_name of this MetricDimensionDefinition.\nThe name of the dimension.') + dimension_value: str | None = Field(None, alias='dimensionValue', description='Gets the dimension_value of this MetricDimensionDefinition.\nThe value of the dimension.') + + +class MetricStatisticsDefinition(DbmBaseModel): + """The metric statistics values with dimension details.""" + + min: float | None = Field(None, description='Gets the min of this MetricStatisticsDefinition.\nThe minimum value of the metric.') + max: float | None = Field(None, description='Gets the max of this MetricStatisticsDefinition.\nThe maximum value of the metric.') + median: float | None = Field(None, description='Gets the median of this MetricStatisticsDefinition.\nThe median value of the metric.') + lower_quartile: float | None = Field(None, alias='lowerQuartile', description='Gets the lower_quartile of this MetricStatisticsDefinition.\nThe first quartile value of the metric.') + upper_quartile: float | None = Field(None, alias='upperQuartile', description='Gets the upper_quartile of this MetricStatisticsDefinition.\nThe third quartile value of the metric.') + unit: str | None = Field(None, description='Gets the unit of this MetricStatisticsDefinition.\nThe unit of the metric value.') + dimensions: list[MetricDimensionDefinition] | None = Field(None, description='Gets the dimensions of this MetricStatisticsDefinition.\nThe dimensions of the metric.') + + +class MetricsAggregationRange(DbmBaseModel): + """The set of aggregated data returned for a metric.""" + + header: DbManagementAnalyticsMetric | None = Field(None, description='Gets the header of this MetricsAggregationRange.') + metrics: list[DbManagementAnalyticsMetric] | None = Field(None, description='Gets the metrics of this MetricsAggregationRange.\nThe list of metrics returned for the specified request. Each of the metrics\nhas a `metricName` and additional properties like `metadata`, `dimensions`.\nIf a property is not set, then use the value from `header`.\n\nSuppose `m` be an item in the `metrics` array:\n- If `m.metricName` is not set, use `header.metricName` instead\n- If `m.durationInSeconds` is not set, use `header.durationInSeconds` instead\n- If `m.dimensions` is not set, use `header.dimensions` instead\n- If `m.metadata` is not set, use `header.metadata` instead') + range_start_time_in_epoch_seconds: int | None = Field(None, alias='rangeStartTimeInEpochSeconds', description='Gets the range_start_time_in_epoch_seconds of this MetricsAggregationRange.\nThe beginning of the time range (inclusive) of the returned metric data.') + range_end_time_in_epoch_seconds: int | None = Field(None, alias='rangeEndTimeInEpochSeconds', description='Gets the range_end_time_in_epoch_seconds of this MetricsAggregationRange.\nThe end of the time range (exclusive) of the returned metric data.') + + +class MetricsAggregationRangeCollection(DbmBaseModel): + """The collection of metrics.""" + + items: list[MetricsAggregationRange] = Field(..., description='**[Required]** Gets the items of this MetricsAggregationRangeCollection.\nThe metric data.') + start_time: str | None = Field(None, alias='startTime', description="Gets the start_time of this MetricsAggregationRangeCollection.\nThe beginning of the metric data query time range. Expressed in UTC in\nISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`.") + end_time: str | None = Field(None, alias='endTime', description="Gets the end_time of this MetricsAggregationRangeCollection.\nThe end of the metric data query time range. Expressed in UTC in\nISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`.") + + +class ModifyAutonomousDatabaseManagementFeatureDetails(DbmRequestModel): + """The details required to modify a Database Management feature for an Autonomous Database.""" + + feature_details: AutonomousDatabaseFeatureDetails = Field(..., alias='featureDetails', description='**[Required]** Gets the feature_details of this ModifyAutonomousDatabaseManagementFeatureDetails.') + + +class ModifyDatabaseManagementFeatureDetails(DbmRequestModel): + """The details required to modify a Database Management feature for an Oracle cloud database.""" + + feature_details: DatabaseFeatureDetails = Field(..., alias='featureDetails', description='**[Required]** Gets the feature_details of this ModifyDatabaseManagementFeatureDetails.') + + +class ModifyPluggableDatabaseManagementFeatureDetails(DbmRequestModel): + """The details required to modify a Database Management feature for an Oracle cloud pluggable database.""" + + feature_details: DatabaseFeatureDetails = Field(..., alias='featureDetails', description='**[Required]** Gets the feature_details of this ModifyPluggableDatabaseManagementFeatureDetails.') + + +class ModifySnapshotSettingsDetails(DbmRequestModel): + """Details to modify the AWR snapshot settings for a database.""" + + retention: int | None = Field(None, description='Gets the retention of this ModifySnapshotSettingsDetails.\nThe retention time in minutes. Acceptable values are 0, 1440 to 52596000 (inclusive), and null.') + interval: int | None = Field(None, description='Gets the interval of this ModifySnapshotSettingsDetails.\nThe interval time in minutes. Acceptable values are 0, 10 to 527040 (inclusive), and null.') + + +class MySqlApplyError(DbmBaseModel): + """Error from the apply operation of a MySQL server replication channel.""" + + last_error_number: int | None = Field(None, alias='lastErrorNumber', description='Gets the last_error_number of this MySqlApplyError.\nThe error number of the most recent error that caused the SQL or coordinator thread to stop.') + last_error_message: str | None = Field(None, alias='lastErrorMessage', description='Gets the last_error_message of this MySqlApplyError.\nThe error message of the most recent error that caused the SQL or coordinator thread to stop.') + time_last_error: datetime | None = Field(None, alias='timeLastError', description='Gets the time_last_error of this MySqlApplyError.\nThe timestamp when the most recent SQL or coordinator error occurred.') + worker_errors: list[MySqlApplyErrorWorker] | None = Field(None, alias='workerErrors', description='Gets the worker_errors of this MySqlApplyError.\nA list of MySqlApplyErrorWorker records.') + + +class MySqlApplyErrorWorker(DbmBaseModel): + """If the replica is multi-threaded, error from worker threads. Otherwise, error from the applier thread.""" + + last_error_number: int = Field(..., alias='lastErrorNumber', description='**[Required]** Gets the last_error_number of this MySqlApplyErrorWorker.\nThe error number of the most recent error that caused the worker thread to stop.') + last_error_message: str = Field(..., alias='lastErrorMessage', description='**[Required]** Gets the last_error_message of this MySqlApplyErrorWorker.\nThe error message of the most recent error that caused the worker thread to stop.') + time_last_error: datetime = Field(..., alias='timeLastError', description='**[Required]** Gets the time_last_error of this MySqlApplyErrorWorker.\nThe timestamp when the most recent worker error occurred.') + + +class MySqlChannelApplyError(DbmBaseModel): + """MySQL server replication channel name and error from its apply operation.""" + + channel_name: str | None = Field(None, alias='channelName', description='Gets the channel_name of this MySqlChannelApplyError.\nThe name of the replication channel.') + apply_error: MySqlApplyError = Field(..., alias='applyError', description='**[Required]** Gets the apply_error of this MySqlChannelApplyError.') + + +class MySqlChannelFetchError(DbmBaseModel): + """MySQL server replication channel name and error from its fetch operation.""" + + channel_name: str | None = Field(None, alias='channelName', description='Gets the channel_name of this MySqlChannelFetchError.\nThe name of the replication channel.') + fetch_error: MySqlFetchError = Field(..., alias='fetchError', description='**[Required]** Gets the fetch_error of this MySqlChannelFetchError.') + + +class MySqlConfigurationDataCollection(DbmBaseModel): + """The collection of configuration records for a specific MySQL Database.""" + + items: list[MySqlConfigurationDataSummary] = Field(..., description='**[Required]** Gets the items of this MySqlConfigurationDataCollection.\nThe list of ConfigurationDataSummary records.') + + +class MySqlConfigurationDataSummary(DbmBaseModel): + """The configuration variables for a MySQL Database.""" + + name: str = Field(..., description='**[Required]** Gets the name of this MySqlConfigurationDataSummary.\nThe name of the configuration variable') + value: str = Field(..., description='**[Required]** Gets the value of this MySqlConfigurationDataSummary.\nThe value of the variable.') + source: Literal['COMPILED', 'GLOBAL', 'SERVER', 'EXPLICIT', 'EXTRA', 'USER', 'LOGIN', 'COMMAND_LINE', 'PERSISTED', 'DYNAMIC', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the source of this MySqlConfigurationDataSummary.\nThe source from which the variable was most recently set.\n\nAllowed values for this property are: "COMPILED", "GLOBAL", "SERVER", "EXPLICIT", "EXTRA", "USER", "LOGIN", "COMMAND_LINE", "PERSISTED", "DYNAMIC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + min_value: float = Field(..., alias='minValue', description='**[Required]** Gets the min_value of this MySqlConfigurationDataSummary.\nThe minimum value of the variable.') + max_value: float = Field(..., alias='maxValue', description='**[Required]** Gets the max_value of this MySqlConfigurationDataSummary.\nThe maximum value of the variable.') + type: str = Field(..., description='**[Required]** Gets the type of this MySqlConfigurationDataSummary.\nThe type of variable.') + default_value: str = Field(..., alias='defaultValue', description='**[Required]** Gets the default_value of this MySqlConfigurationDataSummary.\nThe default value of the variable.') + time_set: datetime = Field(..., alias='timeSet', description='**[Required]** Gets the time_set of this MySqlConfigurationDataSummary.\nThe time when the value of the variable was set.') + host_set: str = Field(..., alias='hostSet', description='**[Required]** Gets the host_set of this MySqlConfigurationDataSummary.\nThe host from where the value of the variable was set. This is empty for a MySQL Database System.') + user_set: str = Field(..., alias='userSet', description='**[Required]** Gets the user_set of this MySqlConfigurationDataSummary.\nThe user who sets the value of the variable. This is empty for a MySQL Database System.') + is_dynamic: bool = Field(..., alias='isDynamic', description='**[Required]** Gets the is_dynamic of this MySqlConfigurationDataSummary.\nIndicates whether the variable can be set dynamically or not.') + is_init: bool = Field(..., alias='isInit', description='**[Required]** Gets the is_init of this MySqlConfigurationDataSummary.\nIndicates whether the variable is set at server startup.') + is_configurable: bool = Field(..., alias='isConfigurable', description='**[Required]** Gets the is_configurable of this MySqlConfigurationDataSummary.\nIndicates whether the variable is configurable.') + path: str = Field(..., description='**[Required]** Gets the path of this MySqlConfigurationDataSummary.\nThe path name of the option file (VARIABLE_PATH), if the variable was set in an option file. If the variable was not set in an') + description: str = Field(..., description='**[Required]** Gets the description of this MySqlConfigurationDataSummary.\nThe description of the variable.') + possible_values: str = Field(..., alias='possibleValues', description='**[Required]** Gets the possible_values of this MySqlConfigurationDataSummary.\nThe comma-separated list of possible values for the variable in value:valueDescription format.') + supported_versions: str = Field(..., alias='supportedVersions', description='**[Required]** Gets the supported_versions of this MySqlConfigurationDataSummary.\nThe comma-separated list of MySQL versions that support the variable.') + + +class MySqlConnectorCollection(DbmBaseModel): + """The collection of external MySQL Database connectors.""" + + items: list[MySqlDatabaseConnectorSummary] = Field(..., description='**[Required]** Gets the items of this MySqlConnectorCollection.\nThe list of external MySQL Database connector records.') + + +class MySqlDataCollection(DbmBaseModel): + """The collection of SQL performance data records for a specific Managed MySQL Database.""" + + items: list[MySqlDataSummary] = Field(..., description='**[Required]** Gets the items of this MySqlDataCollection.\nThe list of SQLDataSummary records.') + + +class MySqlDataSummary(DbmBaseModel): + """The SQL performance data record for a specific SQL query.""" + + schema_name: str = Field(..., alias='schemaName', description='**[Required]** Gets the schema_name of this MySqlDataSummary.\nThe name of the default schema when executing the query. If a schema is not set as the default, then the value is NULL.') + digest: str = Field(..., description='**[Required]** Gets the digest of this MySqlDataSummary.\nThe digest information of the normalized query.') + digest_text: str = Field(..., alias='digestText', description='**[Required]** Gets the digest_text of this MySqlDataSummary.\nThe normalized query.') + count_star: float = Field(..., alias='countStar', description='**[Required]** Gets the count_star of this MySqlDataSummary.\nThe number Of times the query has been executed.') + sum_timer_wait: float = Field(..., alias='sumTimerWait', description='**[Required]** Gets the sum_timer_wait of this MySqlDataSummary.\nThe total amount of time that has been spent executing the query.') + min_timer_wait: float = Field(..., alias='minTimerWait', description='**[Required]** Gets the min_timer_wait of this MySqlDataSummary.\nThe fastest the query has been executed.') + avg_timer_wait: float = Field(..., alias='avgTimerWait', description='**[Required]** Gets the avg_timer_wait of this MySqlDataSummary.\nThe average execution time.') + max_timer_wait: float = Field(..., alias='maxTimerWait', description='**[Required]** Gets the max_timer_wait of this MySqlDataSummary.\nThe slowest the query has been executed.') + max_controlled_memory: int | None = Field(None, alias='maxControlledMemory', description='Gets the max_controlled_memory of this MySqlDataSummary.\nThe maximum amount of controlled memory used by a statement during execution.') + max_total_memory: int | None = Field(None, alias='maxTotalMemory', description='Gets the max_total_memory of this MySqlDataSummary.\nThe maximum amount of memory used by a statement during execution.') + sum_cpu_time: int | None = Field(None, alias='sumCpuTime', description='Gets the sum_cpu_time of this MySqlDataSummary.\nThe total amount of time spent on CPU for this statement.') + sum_lock_time: float = Field(..., alias='sumLockTime', description='**[Required]** Gets the sum_lock_time of this MySqlDataSummary.\nThe total amount of time that has been spent waiting for table locks.') + sum_errors: float = Field(..., alias='sumErrors', description='**[Required]** Gets the sum_errors of this MySqlDataSummary.\nThe total number of errors that have been encountered executing the query.') + sum_warnings: float = Field(..., alias='sumWarnings', description='**[Required]** Gets the sum_warnings of this MySqlDataSummary.\nThe total number of warnings that have been encountered executing the query.') + sum_rows_affected: float = Field(..., alias='sumRowsAffected', description='**[Required]** Gets the sum_rows_affected of this MySqlDataSummary.\nThe total number of rows that have been modified by the query.') + sum_rows_sent: float = Field(..., alias='sumRowsSent', description='**[Required]** Gets the sum_rows_sent of this MySqlDataSummary.\nThe total number of rows that have been returned (sent) to the client.') + sum_rows_examined: float = Field(..., alias='sumRowsExamined', description='**[Required]** Gets the sum_rows_examined of this MySqlDataSummary.\nThe total number of rows that have been examined by the query.') + sum_created_temp_disk_tables: float = Field(..., alias='sumCreatedTempDiskTables', description='**[Required]** Gets the sum_created_temp_disk_tables of this MySqlDataSummary.\nThe total number of On-Disk internal temporary tables that have been created by the query.') + sum_created_temp_tables: float = Field(..., alias='sumCreatedTempTables', description='**[Required]** Gets the sum_created_temp_tables of this MySqlDataSummary.\nThe total number of internal temporary tables (in memory or on disk), which have been created by the query.') + sum_select_full_join: float = Field(..., alias='sumSelectFullJoin', description='**[Required]** Gets the sum_select_full_join of this MySqlDataSummary.\nThe total number of joins that have performed full table scans as there was no join condition or no index for the join condition. This is the same as the select_full_join status variable.') + sum_select_full_range_join: float = Field(..., alias='sumSelectFullRangeJoin', description='**[Required]** Gets the sum_select_full_range_join of this MySqlDataSummary.\nThe total number of joins that use a full range search. This is the same as the select_full_range_join status variable.') + sum_select_range: float = Field(..., alias='sumSelectRange', description='**[Required]** Gets the sum_select_range of this MySqlDataSummary.\nThe total number of times the query has used a range search. This is the same as the select_range status variable.') + sum_select_range_check: float = Field(..., alias='sumSelectRangeCheck', description='**[Required]** Gets the sum_select_range_check of this MySqlDataSummary.\nThe total number of joins by the query where the join does not have an index that checks for the index usage after each row. This is the same as the select_range_check status variable.') + sum_select_scan: float = Field(..., alias='sumSelectScan', description='**[Required]** Gets the sum_select_scan of this MySqlDataSummary.\nThe total number of times the query has performed a full table scan on the first table in the join. This is the same as the select_scan status variable.') + sum_sort_merge_passes: float = Field(..., alias='sumSortMergePasses', description='**[Required]** Gets the sum_sort_merge_passes of this MySqlDataSummary.\nThe total number of sort merge passes that have been done to sort the result of the query. This is the same as the sort_merge_passes status variable.') + sum_sort_range: float = Field(..., alias='sumSortRange', description='**[Required]** Gets the sum_sort_range of this MySqlDataSummary.\nThe total number of times a sort was done using ranges. This is the same as the sort_range status variable.') + sum_sort_rows: float = Field(..., alias='sumSortRows', description='**[Required]** Gets the sum_sort_rows of this MySqlDataSummary.\nThe total number of rows sorted. This is the same as the sort_rowsStatus variable.') + sum_sort_scan: float = Field(..., alias='sumSortScan', description='**[Required]** Gets the sum_sort_scan of this MySqlDataSummary.\nThe total number of times a sort was done by scanning the table. This is the same as the sort_scan status variable.') + sum_no_index_used: float = Field(..., alias='sumNoIndexUsed', description='**[Required]** Gets the sum_no_index_used of this MySqlDataSummary.\nThe total number of times no index was used to execute the query.') + sum_no_good_index_used: float = Field(..., alias='sumNoGoodIndexUsed', description='**[Required]** Gets the sum_no_good_index_used of this MySqlDataSummary.\nThe total number of times no good index was used. This means that the extra column in The EXPLAIN output includes “Range Checked For Each Record.”') + first_seen: datetime = Field(..., alias='firstSeen', description='**[Required]** Gets the first_seen of this MySqlDataSummary.\nThe date and time the query was first seen. If the table is truncated, the first seen value is reset.') + last_seen: datetime = Field(..., alias='lastSeen', description='**[Required]** Gets the last_seen of this MySqlDataSummary.\nThe date and time the query was last seen.') + quantile95: float = Field(..., description='**[Required]** Gets the quantile95 of this MySqlDataSummary.\nThe 95th percentile of the query latency. That is, 95% of the queries complete in the time given or in less time.') + quantile99: float = Field(..., description='**[Required]** Gets the quantile99 of this MySqlDataSummary.\nThe 99th percentile of the query latency.') + quantile999: float = Field(..., description='**[Required]** Gets the quantile999 of this MySqlDataSummary.\nThe 99.9th percentile of the query latency.') + heat_wave_offloaded: float | None = Field(None, alias='heatWaveOffloaded', description='Gets the heat_wave_offloaded of this MySqlDataSummary.\nThe number of query executions offloaded to HeatWave.') + heat_wave_out_of_memory: float | None = Field(None, alias='heatWaveOutOfMemory', description='Gets the heat_wave_out_of_memory of this MySqlDataSummary.\nThe number of query executions with HeatWave out-of-memory errors.') + + +class MySqlDatabaseConnectorSummary(DbmBaseModel): + """Details of external database connector.""" + + name: str | None = Field(None, description='Gets the name of this MySqlDatabaseConnectorSummary.\nExternal MySQL Database Connector Name') + compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this MySqlDatabaseConnectorSummary.\nOCID of compartment for the External MySQL connector.') + associated_services: str | None = Field(None, alias='associatedServices', description='Gets the associated_services of this MySqlDatabaseConnectorSummary.\nOCI Services associated with this connector.') + id: str = Field(..., description='**[Required]** Gets the id of this MySqlDatabaseConnectorSummary.\nOCID of MySQL Database Connector.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this MySqlDatabaseConnectorSummary.\nConnector creation time.') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this MySqlDatabaseConnectorSummary.\nConnector update time.') + source_database: str | None = Field(None, alias='sourceDatabase', description='Gets the source_database of this MySqlDatabaseConnectorSummary.\nName of MySQL Database.') + source_database_type: Literal['EXTERNAL', 'MDS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='sourceDatabaseType', description='Gets the source_database_type of this MySqlDatabaseConnectorSummary.\nType of MySQL Database.\n\nAllowed values for this property are: "EXTERNAL", "MDS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + connection_status: str | None = Field(None, alias='connectionStatus', description='Gets the connection_status of this MySqlDatabaseConnectorSummary.\nConnection Status.') + time_connection_status_updated: datetime | None = Field(None, alias='timeConnectionStatusUpdated', description='Gets the time_connection_status_updated of this MySqlDatabaseConnectorSummary.\nTime when connection status was last updated.') + host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this MySqlDatabaseConnectorSummary.\nHost name for Connector.') + macs_agent_id: str | None = Field(None, alias='macsAgentId', description='Gets the macs_agent_id of this MySqlDatabaseConnectorSummary.\nAgent Id of the MACS agent.') + port: int | None = Field(None, description='Gets the port of this MySqlDatabaseConnectorSummary.\nConnector port.') + connector_type: Literal['MACS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='connectorType', description='Gets the connector_type of this MySqlDatabaseConnectorSummary.\nConnector Type.\n\nAllowed values for this property are: "MACS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + network_protocol: Literal['TCP', 'TCPS', 'SOCKETS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='networkProtocol', description='Gets the network_protocol of this MySqlDatabaseConnectorSummary.\nNetwork Protocol.\n\nAllowed values for this property are: "TCP", "TCPS", "SOCKETS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + credential_type: Literal['MYSQL_EXTERNAL_NON_SSL_CREDENTIALS', 'MYSQL_EXTERNAL_SSL_CREDENTIALS', 'MYSQL_EXTERNAL_SOCKET_CREDENTIALS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='credentialType', description='Gets the credential_type of this MySqlDatabaseConnectorSummary.\nCredential type used to connect to database.\n\nAllowed values for this property are: "MYSQL_EXTERNAL_NON_SSL_CREDENTIALS", "MYSQL_EXTERNAL_SSL_CREDENTIALS", "MYSQL_EXTERNAL_SOCKET_CREDENTIALS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this MySqlDatabaseConnectorSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this MySqlDatabaseConnectorSummary.\nIndicates lifecycle state of the resource.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class MySqlDatabaseUsageMetrics(DbmBaseModel): + """The list of aggregated metrics for Managed MySQL Databases in the fleet.""" + + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this MySqlDatabaseUsageMetrics.\nThe OCID of the compartment where the Managed MySQL Database resides.') + database_name: str = Field(..., alias='databaseName', description='**[Required]** Gets the database_name of this MySqlDatabaseUsageMetrics.\nThe display name of the Managed MySQL Database.') + database_type: str = Field(..., alias='databaseType', description='**[Required]** Gets the database_type of this MySqlDatabaseUsageMetrics.\nIndicates MySQL Database type, ONPREMISE or MySQL Database System.') + mds_deployment_type: str = Field(..., alias='mdsDeploymentType', description='**[Required]** Gets the mds_deployment_type of this MySqlDatabaseUsageMetrics.\nThe type of MySQL Database System.') + mdslifecycle_state: str = Field(..., alias='mdslifecycleState', description='**[Required]** Gets the mdslifecycle_state of this MySqlDatabaseUsageMetrics.\nThe lifecycle state of the MySQL Database System.') + database_version: str = Field(..., alias='databaseVersion', description='**[Required]** Gets the database_version of this MySqlDatabaseUsageMetrics.\nThe version of the MySQL Database.') + db_id: str = Field(..., alias='dbId', description='**[Required]** Gets the db_id of this MySqlDatabaseUsageMetrics.\nThe OCID of the Managed MySQL Database.') + database_status: Literal['UP', 'DOWN', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='databaseStatus', description='**[Required]** Gets the database_status of this MySqlDatabaseUsageMetrics.\nThe status of the MySQL Database. Indicates whether the status of the database\nis UP, DOWN, or UNKNOWN at the current time.\n\nAllowed values for this property are: "UP", "DOWN", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + heat_wave_management_type: str | None = Field(None, alias='heatWaveManagementType', description="Gets the heat_wave_management_type of this MySqlDatabaseUsageMetrics.\nThe customer's selected type for HeatWave management.") + is_heat_wave_enabled: bool | None = Field(None, alias='isHeatWaveEnabled', description='Gets the is_heat_wave_enabled of this MySqlDatabaseUsageMetrics.\nIndicates whether HeatWave is enabled for the MySQL Database System or not.') + heat_wave_cluster_display_name: str | None = Field(None, alias='heatWaveClusterDisplayName', description='Gets the heat_wave_cluster_display_name of this MySqlDatabaseUsageMetrics.\nThe name of the HeatWave cluster.') + heat_wave_node_count: int | None = Field(None, ge=0, alias='heatWaveNodeCount', description='Gets the heat_wave_node_count of this MySqlDatabaseUsageMetrics.\nThe number of nodes in the HeatWave cluster.') + metrics: list[MySqlFleetMetricDefinition] = Field(..., description='**[Required]** Gets the metrics of this MySqlDatabaseUsageMetrics.\nA list of the database health metrics like CPU, Storage, and Memory.') + + +class MySqlDigestErrorSummary(DbmBaseModel): + """Consists of the error and the number of times it is encountered.""" + + error: MySqlQueryMessage = Field(..., description='**[Required]** Gets the error of this MySqlDigestErrorSummary.') + occurrence_count: int = Field(..., ge=0, alias='occurrenceCount', description='**[Required]** Gets the occurrence_count of this MySqlDigestErrorSummary.\nThe number of times a MySQL error is encountered.') + + +class MySqlDigestErrorsCollection(DbmBaseModel): + """The collection of errors for a given digest.""" + + items: list[MySqlDigestErrorSummary] = Field(..., description='**[Required]** Gets the items of this MySqlDigestErrorsCollection.\nThe unique set of errors for a given digest.') + + +class MySqlFetchError(DbmBaseModel): + """Error from the fetch operation of a MySQL server replication channel.""" + + last_error_number: int = Field(..., alias='lastErrorNumber', description='**[Required]** Gets the last_error_number of this MySqlFetchError.\nThe error number of the most recent error that caused the I/O thread to stop.') + last_error_message: str = Field(..., alias='lastErrorMessage', description='**[Required]** Gets the last_error_message of this MySqlFetchError.\nThe error message of the most recent error that caused the I/O thread to stop.') + time_last_error: datetime = Field(..., alias='timeLastError', description='**[Required]** Gets the time_last_error of this MySqlFetchError.\nThe timestamp when the most recent I/O error occurred.') + + +class MySqlFleetByCategory(DbmBaseModel): + """The number of MySQL Databases in the fleet, grouped by database type and sub type.""" + + database_type: str = Field(..., alias='databaseType', description='**[Required]** Gets the database_type of this MySqlFleetByCategory.\nThe type of the MySQL Database. Indicates whether the database is on premises or Oracle Cloud. Allowed values are: MDS and ONPREMISE') + mds_deployment_type: str = Field(..., alias='mdsDeploymentType', description='**[Required]** Gets the mds_deployment_type of this MySqlFleetByCategory.\nThe type of MySQL Database installation. Allowed values are: STANDALONE, HEATWAVE and HA') + inventory_count: int = Field(..., ge=0, alias='inventoryCount', description='**[Required]** Gets the inventory_count of this MySqlFleetByCategory.\nThe number of MySQL Databases.') + + +class MySqlFleetMetricDefinition(DbmBaseModel): + """The list of aggregated metrics for the Managed MySQL Databases in the fleet.""" + + metric_value: int = Field(..., alias='metricValue', description='**[Required]** Gets the metric_value of this MySqlFleetMetricDefinition.\nThe value of the metric.') + metric_value_double: float | None = Field(None, alias='metricValueDouble', description='Gets the metric_value_double of this MySqlFleetMetricDefinition.\nThe value of the metric.') + metric_name: str = Field(..., alias='metricName', description='**[Required]** Gets the metric_name of this MySqlFleetMetricDefinition.\nThe name of the metric.') + timestamp: datetime = Field(..., description='**[Required]** Gets the timestamp of this MySqlFleetMetricDefinition.\nThe data point date and time in UTC in ISO-8601 format.') + dimensions: list[MetricDimensionDefinition] = Field(..., description='**[Required]** Gets the dimensions of this MySqlFleetMetricDefinition.\nThe dimensions of the metric.') + unit: str = Field(..., description='**[Required]** Gets the unit of this MySqlFleetMetricDefinition.\nThe unit of the metric value.') + + +class MySqlFleetMetricSummaryDefinition(DbmBaseModel): + """A summary of the fleet metrics, which provides the metric aggregated value of the MySQL Databases in the fleet.""" + + metric_value: float = Field(..., alias='metricValue', description='**[Required]** Gets the metric_value of this MySqlFleetMetricSummaryDefinition.\nThe aggregated metric value.') + dimensions: list[MetricDimensionDefinition] = Field(..., description='**[Required]** Gets the dimensions of this MySqlFleetMetricSummaryDefinition.\nThe unique dimension key and values of the metric.') + metric_name: str = Field(..., alias='metricName', description='**[Required]** Gets the metric_name of this MySqlFleetMetricSummaryDefinition.\nThe name of the metric.') + unit: str = Field(..., description='**[Required]** Gets the unit of this MySqlFleetMetricSummaryDefinition.\nThe unit of the metric value.') + + +class MySqlFleetMetrics(DbmBaseModel): + """The details of the MySQL Database fleet health metrics.""" + + start_time: str = Field(..., alias='startTime', description='**[Required]** Gets the start_time of this MySqlFleetMetrics.\nThe beginning of the time range during which metric data is retrieved.') + end_time: str = Field(..., alias='endTime', description='**[Required]** Gets the end_time of this MySqlFleetMetrics.\nThe end of the time range during which metric data is retrieved.') + fleet_databases: list[MySqlDatabaseUsageMetrics] = Field(..., alias='fleetDatabases', description='**[Required]** Gets the fleet_databases of this MySqlFleetMetrics.\nThe list of MySQL Databases in the fleet and their usage metrics.') + fleet_summary: list[MySqlFleetSummary] = Field(..., alias='fleetSummary', description='**[Required]** Gets the fleet_summary of this MySqlFleetMetrics.\nA summary of the inventory count and the metrics that describe the aggregated usage of CPU, storage, and so on of all the MySQL Databases in the fleet.') + + +class MySqlFleetSummary(DbmBaseModel): + """A summary of the inventory count and the metrics that describe the aggregated usage of CPU, storage, and so on of all the MySQL Databases in the fleet.""" + + aggregated_metrics: list[MySqlFleetMetricSummaryDefinition] = Field(..., alias='aggregatedMetrics', description='**[Required]** Gets the aggregated_metrics of this MySqlFleetSummary.\nThe usage metrics for the Managed MySQL Databases in the fleet.') + inventory: list[MySqlFleetByCategory] = Field(..., description='**[Required]** Gets the inventory of this MySqlFleetSummary.\nA list of MySQL Databases in the fleet, grouped by database type.') + + +class MySqlHighAvailabilityStatusSummary(DbmBaseModel): + """High availability status summary of a MySQL server.""" + + channel_fetch_errors: list[MySqlChannelFetchError] | None = Field(None, alias='channelFetchErrors', description='Gets the channel_fetch_errors of this MySqlHighAvailabilityStatusSummary.\nA list of MySqlChannelFetchError records.') + channel_apply_errors: list[MySqlChannelApplyError] | None = Field(None, alias='channelApplyErrors', description='Gets the channel_apply_errors of this MySqlHighAvailabilityStatusSummary.\nA list of MySqlChannelApplyError records.') + + +class MySqlQueryDetails(DbmRequestModel): + """The details of a given MySQL query, it consists of the query sample details, the explain plan and potential warnings.""" + + query_sample_details: MySqlQuerySampleDetails = Field(..., alias='querySampleDetails', description='**[Required]** Gets the query_sample_details of this MySqlQueryDetails.') + query_explain_plan: MySqlQueryExplainPlan | None = Field(None, alias='queryExplainPlan', description='Gets the query_explain_plan of this MySqlQueryDetails.') + query_messages: list[MySqlQueryMessage] | None = Field(None, alias='queryMessages', description='Gets the query_messages of this MySqlQueryDetails.\nThe errors, warnings and notes that could be raised by the execution of the query.') + + +class MySqlQueryExplainPlan(DbmBaseModel): + """The explain plan for a given MySQL query.""" + + json_explain: str = Field(..., alias='jsonExplain', description='**[Required]** Gets the json_explain of this MySqlQueryExplainPlan.\nThe json format of the explain plan.') + json_explain_version: Literal['V1', 'V2', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='jsonExplainVersion', description='**[Required]** Gets the json_explain_version of this MySqlQueryExplainPlan.\nThe version of the Json format of MySQL Explain.\n\nAllowed values for this property are: "V1", "V2", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class MySqlQueryMessage(DbmBaseModel): + """The MySQL error, warning or note raised when a query is run, if any.""" + + level: Literal['ERROR', 'WARNING', 'NOTE', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the level of this MySqlQueryMessage.\nThe level of severity of the MySQL message.\n\nAllowed values for this property are: "ERROR", "WARNING", "NOTE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + code: int = Field(..., description='**[Required]** Gets the code of this MySqlQueryMessage.\nThe MySQL code of the raised error, warning or note.') + message_text: str = Field(..., alias='messageText', description='**[Required]** Gets the message_text of this MySqlQueryMessage.\nThe MySQL message text of the raised error, warning or note.') + + +class MySqlQuerySampleDetails(DbmRequestModel): + """The details of a query sample including the query text, execution time and other details.""" + + query_sample_text: str = Field(..., alias='querySampleText', description='**[Required]** Gets the query_sample_text of this MySqlQuerySampleDetails.\nThe query sample mapped by MySQL to a given normalized query.') + time_query_sample_seen: datetime = Field(..., alias='timeQuerySampleSeen', description='**[Required]** Gets the time_query_sample_seen of this MySqlQuerySampleDetails.\nThe date and time the query sample was last seen.') + execution_time: int = Field(..., alias='executionTime', description='**[Required]** Gets the execution_time of this MySqlQuerySampleDetails.\nThe total amount of time that has been spent executing the query sample.') + thread_id: int = Field(..., alias='threadId', description='**[Required]** Gets the thread_id of this MySqlQuerySampleDetails.\nThe thread id of the connection.') + user: str = Field(..., description='**[Required]** Gets the user of this MySqlQuerySampleDetails.\nThe user who ran the query sample.') + host: str = Field(..., description='**[Required]** Gets the host of this MySqlQuerySampleDetails.\nThe host from which the query sample was run.') + mysql_instance: str = Field(..., alias='mysqlInstance', description='**[Required]** Gets the mysql_instance of this MySqlQuerySampleDetails.\nThe MySQL instance against which the query sample was run.') + + +class MySqlReplicationApplierFilter(DbmBaseModel): + """Filter configured for a replication channel.""" + + filter_name: str = Field(..., alias='filterName', description='**[Required]** Gets the filter_name of this MySqlReplicationApplierFilter.\nThe type of replication filter that has been configured for the replication channel.') + filter_rule: str | None = Field(None, alias='filterRule', description='Gets the filter_rule of this MySqlReplicationApplierFilter.\nThe rules configured for the replication filter type.') + + +class NamedCredential(DbmBaseModel): + """The details of a named credential.""" + + name: str = Field(..., description='**[Required]** Gets the name of this NamedCredential.\nThe name of the named credential.') + id: str = Field(..., description='**[Required]** Gets the id of this NamedCredential. The OCID of the named credential.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this NamedCredential. The OCID of the compartment.') + description: str | None = Field(None, description='Gets the description of this NamedCredential.\nThe information specified by the user about the named credential.') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this NamedCredential.\nThe current lifecycle state of the named credential.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this NamedCredential.\nThe details of the lifecycle state.') + scope: Literal['RESOURCE', 'GLOBAL', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the scope of this NamedCredential.\nThe scope of the named credential.\n\nAllowed values for this property are: "RESOURCE", "GLOBAL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + type: Literal['ORACLE_DB', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the type of this NamedCredential.\nThe type of resource associated with the named credential.\n\nAllowed values for this property are: "ORACLE_DB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + content: NamedCredentialContent | None = Field(None, description='Gets the content of this NamedCredential.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this NamedCredential.\nThe date and time the named credential was created.') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this NamedCredential.\nThe date and time the named credential was last updated.') + associated_resource: str | None = Field(None, alias='associatedResource', description='Gets the associated_resource of this NamedCredential. The OCID of the resource that is associated to the named credential.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this NamedCredential. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this NamedCredential. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this NamedCredential. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class NamedCredentialCollection(DbmBaseModel): + """A collection of named credential summary.""" + + items: list[NamedCredentialSummary] = Field(..., description='**[Required]** Gets the items of this NamedCredentialCollection.\nAn array of named credential resources.') + + +class NamedCredentialContent(DbmBaseModel): + """The details of the named credential.""" + + credential_type: Literal['BASIC', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='credentialType', description='**[Required]** Gets the credential_type of this NamedCredentialContent.\nThe type of named credential. Only \'BASIC\' is supported currently.\n\nAllowed values for this property are: "BASIC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class NamedCredentialSummary(DbmBaseModel): + """A summary of the named credential.""" + + id: str = Field(..., description='**[Required]** Gets the id of this NamedCredentialSummary. The OCID of the named credential.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this NamedCredentialSummary. The OCID of the compartment in which the named credential resides.') + name: str = Field(..., description='**[Required]** Gets the name of this NamedCredentialSummary.\nThe name of the named credential. Valid characters are uppercase or\nlowercase letters, numbers, and "_". The name of the named credential\ncannot be modified. It must be unique in the compartment and must begin with\nan alphabetic character.') + description: str = Field(..., description='**[Required]** Gets the description of this NamedCredentialSummary.\nThe information specified by the user about the named credential.') + scope: Literal['RESOURCE', 'GLOBAL', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the scope of this NamedCredentialSummary.\nThe scope of the named credential.\n\nAllowed values for this property are: "RESOURCE", "GLOBAL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + type: Literal['ORACLE_DB', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the type of this NamedCredentialSummary.\nThe type of resource associated with the named credential.\n\nAllowed values for this property are: "ORACLE_DB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this NamedCredentialSummary.\nThe current lifecycle state of the named credential.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str = Field(..., alias='lifecycleDetails', description='**[Required]** Gets the lifecycle_details of this NamedCredentialSummary.\nThe details of the lifecycle state.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this NamedCredentialSummary.\nThe date and time the named credential was created.') + time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this NamedCredentialSummary.\nThe date and time the named credential was last updated.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this NamedCredentialSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this NamedCredentialSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this NamedCredentialSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class NamedPreferredCredential(DbmBaseModel): + """The details of the 'NAMED_CREDENTIAL' preferred credential.""" + + type: Literal['BASIC', 'NAMED_CREDENTIAL', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the type of this PreferredCredential.\nThe type of preferred credential. Only \'BASIC\' is supported currently.\n\nAllowed values for this property are: "BASIC", "NAMED_CREDENTIAL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + credential_name: str | None = Field(None, alias='credentialName', description='Gets the credential_name of this PreferredCredential.\nThe name of the preferred credential.') + status: Literal['SET', 'NOT_SET', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this PreferredCredential.\nThe status of the preferred credential.\n\nAllowed values for this property are: "SET", "NOT_SET", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + is_accessible: bool | None = Field(None, alias='isAccessible', description='Gets the is_accessible of this PreferredCredential.\nIndicates whether the preferred credential is accessible.') + named_credential_id: str | None = Field(None, alias='namedCredentialId', description='Gets the named_credential_id of this NamedPreferredCredential. The OCID of the Named Credential that contains the database user password metadata.') + + +class ObjectPrivilegeCollection(DbmBaseModel): + """A collection of object privileges granted to the current user.""" + + items: list[ObjectPrivilegeSummary] = Field(..., description='**[Required]** Gets the items of this ObjectPrivilegeCollection.\nAn array of object privileges.') + + +class ObjectPrivilegeSummary(DbmBaseModel): + """A summary of object privileges.""" + + name: str | None = Field(None, description='Gets the name of this ObjectPrivilegeSummary.\nThe name of the privilege on the object.') + schema_type: str | None = Field(None, alias='schemaType', description='Gets the schema_type of this ObjectPrivilegeSummary.\nThe type of object.') + owner: str | None = Field(None, description='Gets the owner of this ObjectPrivilegeSummary.\nThe owner of the object.') + grantor: str | None = Field(None, description='Gets the grantor of this ObjectPrivilegeSummary.\nThe name of the user who granted the object privilege.') + hierarchy: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the hierarchy of this ObjectPrivilegeSummary.\nIndicates whether the privilege is granted with the HIERARCHY OPTION (YES) or not (NO).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + object: str | None = Field(None, description='Gets the object of this ObjectPrivilegeSummary.\nThe name of the object. The object can be any object, including tables, packages, indexes, sequences, and so on.') + grant_option: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='grantOption', description='Gets the grant_option of this ObjectPrivilegeSummary.\nIndicates whether the privilege is granted with the GRANT OPTION (YES) or not (NO).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + common: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the common of this ObjectPrivilegeSummary.\nIndicates how the object privilege was granted. Possible values:\nYES if the role is granted commonly (CONTAINER=ALL is used)\nNO if the role is granted locally (CONTAINER=ALL is not used)\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + inherited: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the inherited of this ObjectPrivilegeSummary.\nIndicates whether the granted privilege is inherited from another container (YES) or not (NO).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class ObjectStorageJobExecutionResultDetails(DbmRequestModel): + """The details of the job execution result stored in Object Storage. The +job execution result could be accessed using the Object Storage API.""" + + type: Literal['OBJECT_STORAGE', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the type of this JobExecutionResultDetails.\nThe type of job execution result.\n\nAllowed values for this property are: "OBJECT_STORAGE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + namespace_name: str | None = Field(None, alias='namespaceName', description='Gets the namespace_name of this ObjectStorageJobExecutionResultDetails.\nThe Object Storage namespace used for job execution result storage.') + bucket_name: str | None = Field(None, alias='bucketName', description='Gets the bucket_name of this ObjectStorageJobExecutionResultDetails.\nThe name of the bucket used for job execution result storage.') + object_name: str | None = Field(None, alias='objectName', description='Gets the object_name of this ObjectStorageJobExecutionResultDetails.\nThe name of the object containing the job execution result.') + row_count: int | None = Field(None, ge=0, alias='rowCount', description='Gets the row_count of this ObjectStorageJobExecutionResultDetails.\nThe number of rows returned in the result for the Query SqlType.') + + +class ObjectStorageJobExecutionResultLocation(DbmBaseModel): + """The details about Object Storage job execution result location type.""" + + type: Literal['OBJECT_STORAGE', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the type of this JobExecutionResultLocation.\nThe type of the job execution result location.\n\nAllowed values for this property are: "OBJECT_STORAGE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + namespace_name: str | None = Field(None, alias='namespaceName', description='Gets the namespace_name of this ObjectStorageJobExecutionResultLocation.\nThe Object Storage namespace used for job execution result storage.') + bucket_name: str | None = Field(None, alias='bucketName', description='Gets the bucket_name of this ObjectStorageJobExecutionResultLocation.\nThe name of the bucket used for job execution result storage.') + + +class OpenAlertHistory(DbmBaseModel): + """The existing open alerts in the Exadata storage server.""" + + alerts: list[OpenAlertSummary] = Field(..., description='**[Required]** Gets the alerts of this OpenAlertHistory.\nA list of open alerts.') + + +class OpenAlertSummary(DbmBaseModel): + """An alert from the Exadata storage server.""" + + severity: Literal['CLEAR', 'INFO', 'WARNING', 'CRITICAL', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the severity of this OpenAlertSummary.\nThe severity of the alert.\n\nAllowed values for this property are: "CLEAR", "INFO", "WARNING", "CRITICAL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + type: Literal['STATEFUL', 'STATELESS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the type of this OpenAlertSummary.\nThe type of alert.\n\nAllowed values for this property are: "STATEFUL", "STATELESS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_start_at: datetime | None = Field(None, alias='timeStartAt', description='Gets the time_start_at of this OpenAlertSummary.\nThe start time of the alert.') + message: str | None = Field(None, description='Gets the message of this OpenAlertSummary.\nThe alert message.') + + +class OptimizerDatabase(DbmBaseModel): + """The subset information of the Managed Database resource, which is used by Optimizer Statistics.""" + + id: str = Field(..., description='**[Required]** Gets the id of this OptimizerDatabase. The OCID of the Managed Database.') + name: str = Field(..., description='**[Required]** Gets the name of this OptimizerDatabase.\nThe name of the Managed Database.') + db_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dbType', description='**[Required]** Gets the db_type of this OptimizerDatabase.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + db_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dbSubType', description='**[Required]** Gets the db_sub_type of this OptimizerDatabase.\nThe subtype of the Oracle Database. Indicates whether the database is a Container Database,\nPluggable Database, Non-container Database, Autonomous Database, or Autonomous Container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + db_deployment_type: Literal['ONPREMISE', 'BM', 'VM', 'EXADATA', 'EXADATA_CC', 'AUTONOMOUS', 'EXADATA_XS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dbDeploymentType', description='**[Required]** Gets the db_deployment_type of this OptimizerDatabase.\nThe infrastructure used to deploy the Oracle Database.\n\nAllowed values for this property are: "ONPREMISE", "BM", "VM", "EXADATA", "EXADATA_CC", "AUTONOMOUS", "EXADATA_XS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + db_version: str = Field(..., alias='dbVersion', description='**[Required]** Gets the db_version of this OptimizerDatabase.\nThe version of the Oracle Database.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this OptimizerDatabase. The OCID of the compartment in which the Managed Database resides.') + + +class OptimizerStatisticsAdvisorExecution(DbmBaseModel): + """The summary of the Optimizer Statistics Advisor execution, which includes information about the Managed Database +and a comprehensive execution report.""" + + database: OptimizerDatabase | None = Field(None, description='Gets the database of this OptimizerStatisticsAdvisorExecution.') + report: OptimizerStatisticsAdvisorExecutionReport | None = Field(None, description='Gets the report of this OptimizerStatisticsAdvisorExecution.') + task_name: str = Field(..., alias='taskName', description='**[Required]** Gets the task_name of this OptimizerStatisticsAdvisorExecution.\nThe name of the Optimizer Statistics Advisor task.') + execution_name: str = Field(..., alias='executionName', description='**[Required]** Gets the execution_name of this OptimizerStatisticsAdvisorExecution.\nThe name of the Optimizer Statistics Advisor execution.') + time_start: datetime = Field(..., alias='timeStart', description='**[Required]** Gets the time_start of this OptimizerStatisticsAdvisorExecution.\nThe start time of the time range to retrieve the Optimizer Statistics Advisor execution of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".') + time_end: datetime = Field(..., alias='timeEnd', description='**[Required]** Gets the time_end of this OptimizerStatisticsAdvisorExecution.\nThe end time of the time range to retrieve the Optimizer Statistics Advisor execution of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".') + status: Literal['EXECUTING', 'COMPLETED', 'INTERRUPTED', 'CANCELLED', 'FATAL_ERROR', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the status of this OptimizerStatisticsAdvisorExecution.\nThe status of the Optimizer Statistics Advisor execution.\n\nAllowed values for this property are: "EXECUTING", "COMPLETED", "INTERRUPTED", "CANCELLED", "FATAL_ERROR", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + status_message: str | None = Field(None, alias='statusMessage', description='Gets the status_message of this OptimizerStatisticsAdvisorExecution.\nThe Optimizer Statistics Advisor execution status message, if any.') + error_message: str | None = Field(None, alias='errorMessage', description='Gets the error_message of this OptimizerStatisticsAdvisorExecution.\nThe errors in the Optimizer Statistics Advisor execution, if any.') + findings: int | None = Field(None, description='Gets the findings of this OptimizerStatisticsAdvisorExecution.\nThe number of findings generated by the Optimizer Statistics Advisor execution.') + + +class OptimizerStatisticsAdvisorExecutionReport(DbmBaseModel): + """A report that includes the rules, findings, recommendations, and actions discovered during the +execution of the Optimizer Statistics Advisor.""" + + summary: str = Field(..., description='**[Required]** Gets the summary of this OptimizerStatisticsAdvisorExecutionReport.\nA summary of the Optimizer Statistics Advisor execution.') + rules: list[AdvisorRule] = Field(..., description='**[Required]** Gets the rules of this OptimizerStatisticsAdvisorExecutionReport.\nThe list of rules that were not adhered to by the Optimizer Statistics Collection.') + + +class OptimizerStatisticsAdvisorExecutionScript(DbmBaseModel): + """The Oracle system-generated script for the Optimizer Statistics Advisor execution.""" + + script: str = Field(..., description='**[Required]** Gets the script of this OptimizerStatisticsAdvisorExecutionScript.\nThe Optimizer Statistics Advisor execution script.') + + +class OptimizerStatisticsAdvisorExecutionSummary(DbmBaseModel): + """The summary of the Optimizer Statistics Advisor execution.""" + + task_name: str = Field(..., alias='taskName', description='**[Required]** Gets the task_name of this OptimizerStatisticsAdvisorExecutionSummary.\nThe name of the Optimizer Statistics Advisor task.') + execution_name: str = Field(..., alias='executionName', description='**[Required]** Gets the execution_name of this OptimizerStatisticsAdvisorExecutionSummary.\nThe name of the Optimizer Statistics Advisor execution.') + time_start: datetime = Field(..., alias='timeStart', description='**[Required]** Gets the time_start of this OptimizerStatisticsAdvisorExecutionSummary.\nThe start time of the time range to retrieve the Optimizer Statistics Advisor execution of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".') + time_end: datetime = Field(..., alias='timeEnd', description='**[Required]** Gets the time_end of this OptimizerStatisticsAdvisorExecutionSummary.\nThe end time of the time range to retrieve the Optimizer Statistics Advisor execution of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".') + status: Literal['EXECUTING', 'COMPLETED', 'INTERRUPTED', 'CANCELLED', 'FATAL_ERROR', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the status of this OptimizerStatisticsAdvisorExecutionSummary.\nThe status of the Optimizer Statistics Advisor execution.\n\nAllowed values for this property are: "EXECUTING", "COMPLETED", "INTERRUPTED", "CANCELLED", "FATAL_ERROR", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + status_message: str | None = Field(None, alias='statusMessage', description='Gets the status_message of this OptimizerStatisticsAdvisorExecutionSummary.\nThe Optimizer Statistics Advisor execution status message, if any.') + error_message: str | None = Field(None, alias='errorMessage', description='Gets the error_message of this OptimizerStatisticsAdvisorExecutionSummary.\nThe errors in the Optimizer Statistics Advisor execution, if any.') + findings: int | None = Field(None, description='Gets the findings of this OptimizerStatisticsAdvisorExecutionSummary.\nThe number of findings generated by the Optimizer Statistics Advisor execution.') + + +class OptimizerStatisticsAdvisorExecutionsCollection(DbmBaseModel): + """The details of each Optimizer Statistics Advisor execution.""" + + items: list[OptimizerStatisticsAdvisorExecutionSummary] = Field(..., description='**[Required]** Gets the items of this OptimizerStatisticsAdvisorExecutionsCollection.\nThe list of Optimizer Statistics Advisor executions.') + + +class OptimizerStatisticsCollectionAggregationSummary(DbmBaseModel): + """The summary of the Optimizer Statistics Collection, which includes the aggregated number of tasks grouped by status.""" + + group_by: Literal['TASK_STATUS', 'TASK_OBJECTS_STATUS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='groupBy', description='Gets the group_by of this OptimizerStatisticsCollectionAggregationSummary.\nThe optimizer statistics tasks grouped by type.\n\nAllowed values for this property are: "TASK_STATUS", "TASK_OBJECTS_STATUS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_start: datetime = Field(..., alias='timeStart', description='**[Required]** Gets the time_start of this OptimizerStatisticsCollectionAggregationSummary.\nIndicates the start of the hour as the statistics are aggregated per hour.') + time_end: datetime | None = Field(None, alias='timeEnd', description='Gets the time_end of this OptimizerStatisticsCollectionAggregationSummary.\nIndicates the end of the hour as the statistics are aggregated per hour.') + pending: int | None = Field(None, description='Gets the pending of this OptimizerStatisticsCollectionAggregationSummary.\nThe number of tasks or objects for which statistics are yet to be gathered.') + in_progress: int | None = Field(None, alias='inProgress', description='Gets the in_progress of this OptimizerStatisticsCollectionAggregationSummary.\nThe number of tasks or objects for which statistics gathering is in progress.') + completed: int | None = Field(None, description='Gets the completed of this OptimizerStatisticsCollectionAggregationSummary.\nThe number of tasks or objects for which statistics gathering is completed.') + failed: int | None = Field(None, description='Gets the failed of this OptimizerStatisticsCollectionAggregationSummary.\nThe number of tasks or objects for which statistics gathering failed.') + skipped: int | None = Field(None, description='Gets the skipped of this OptimizerStatisticsCollectionAggregationSummary.\nThe number of tasks or objects for which statistics gathering was skipped.') + timed_out: int | None = Field(None, alias='timedOut', description='Gets the timed_out of this OptimizerStatisticsCollectionAggregationSummary.\nThe number of tasks or objects for which statistics gathering timed out.') + unknown: int | None = Field(None, description='Gets the unknown of this OptimizerStatisticsCollectionAggregationSummary.\nThe number of tasks or objects for which the status of statistics gathering is unknown.') + total: int | None = Field(None, description='Gets the total of this OptimizerStatisticsCollectionAggregationSummary.\nThe total number of tasks or objects for which statistics collection is finished. This number is the\nsum of all the tasks or objects with various statuses: pending, inProgress, completed, failed, skipped,\ntimedOut, and unknown.') + + +class OptimizerStatisticsCollectionAggregationsCollection(DbmBaseModel): + """The number of times optimizer statistics are collected each hour, grouped by task status.""" + + items: list[OptimizerStatisticsCollectionAggregationSummary] = Field(..., description='**[Required]** Gets the items of this OptimizerStatisticsCollectionAggregationsCollection.\nThe list of Optimizer Statistics Collection details.') + + +class OptimizerStatisticsCollectionOperation(DbmBaseModel): + """The summary of the Optimizer Statistics Collection tasks, which includes details of the Managed Database and the execution.""" + + database: OptimizerDatabase | None = Field(None, description='Gets the database of this OptimizerStatisticsCollectionOperation.') + tasks: list[OptimizerStatisticsOperationTask] | None = Field(None, description='Gets the tasks of this OptimizerStatisticsCollectionOperation.\nAn array of Optimizer Statistics Collection task details.') + id: int = Field(..., description='**[Required]** Gets the id of this OptimizerStatisticsCollectionOperation.\nThe ID of the operation.') + operation_name: str = Field(..., alias='operationName', description='**[Required]** Gets the operation_name of this OptimizerStatisticsCollectionOperation.\nThe name of the operation.') + target: str = Field(..., description='**[Required]** Gets the target of this OptimizerStatisticsCollectionOperation.\nThe target object type such as Table, Index, and Partition.') + job_name: str = Field(..., alias='jobName', description='**[Required]** Gets the job_name of this OptimizerStatisticsCollectionOperation.\nThe name of the job.') + status: Literal['IN_PROGRESS', 'COMPLETED', 'FAILED', 'TIMED_OUT', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the status of this OptimizerStatisticsCollectionOperation.\nThe status of the operation such as Completed, and Failed.\n\nAllowed values for this property are: "IN_PROGRESS", "COMPLETED", "FAILED", "TIMED_OUT", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + start_time: str = Field(..., alias='startTime', description='**[Required]** Gets the start_time of this OptimizerStatisticsCollectionOperation.\nThe start time of the operation.') + end_time: str = Field(..., alias='endTime', description='**[Required]** Gets the end_time of this OptimizerStatisticsCollectionOperation.\nThe end time of the operation.') + duration_in_seconds: float = Field(..., alias='durationInSeconds', description='**[Required]** Gets the duration_in_seconds of this OptimizerStatisticsCollectionOperation.\nThe time it takes to complete the operation (in seconds).') + completed_count: int | None = Field(None, ge=0, alias='completedCount', description='Gets the completed_count of this OptimizerStatisticsCollectionOperation.\nThe number of objects for which statistics collection is completed.') + in_progress_count: int | None = Field(None, ge=0, alias='inProgressCount', description='Gets the in_progress_count of this OptimizerStatisticsCollectionOperation.\nThe number of objects for which statistics collection is in progress.') + failed_count: int | None = Field(None, ge=0, alias='failedCount', description='Gets the failed_count of this OptimizerStatisticsCollectionOperation.\nThe number of objects for which statistics collection failed.') + timed_out_count: int | None = Field(None, ge=0, alias='timedOutCount', description='Gets the timed_out_count of this OptimizerStatisticsCollectionOperation.\nThe number of objects for which statistics collection timed out.') + total_objects_count: int | None = Field(None, ge=0, alias='totalObjectsCount', description='Gets the total_objects_count of this OptimizerStatisticsCollectionOperation.\nThe total number of objects for which statistics is collected. This number is the sum of all the objects\nwith various statuses: completed, inProgress, failed, and timedOut.') + + +class OptimizerStatisticsCollectionOperationSummary(DbmBaseModel): + """The summary of the Optimizer Statistics Collection operation.""" + + id: int = Field(..., description='**[Required]** Gets the id of this OptimizerStatisticsCollectionOperationSummary.\nThe ID of the operation.') + operation_name: str = Field(..., alias='operationName', description='**[Required]** Gets the operation_name of this OptimizerStatisticsCollectionOperationSummary.\nThe name of the operation.') + target: str = Field(..., description='**[Required]** Gets the target of this OptimizerStatisticsCollectionOperationSummary.\nThe target object type such as Table, Index, and Partition.') + job_name: str = Field(..., alias='jobName', description='**[Required]** Gets the job_name of this OptimizerStatisticsCollectionOperationSummary.\nThe name of the job.') + status: Literal['IN_PROGRESS', 'COMPLETED', 'FAILED', 'TIMED_OUT', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the status of this OptimizerStatisticsCollectionOperationSummary.\nThe status of the operation such as Completed, and Failed.\n\nAllowed values for this property are: "IN_PROGRESS", "COMPLETED", "FAILED", "TIMED_OUT", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + start_time: str = Field(..., alias='startTime', description='**[Required]** Gets the start_time of this OptimizerStatisticsCollectionOperationSummary.\nThe start time of the operation.') + end_time: str = Field(..., alias='endTime', description='**[Required]** Gets the end_time of this OptimizerStatisticsCollectionOperationSummary.\nThe end time of the operation.') + duration_in_seconds: float = Field(..., alias='durationInSeconds', description='**[Required]** Gets the duration_in_seconds of this OptimizerStatisticsCollectionOperationSummary.\nThe time it takes to complete the operation (in seconds).') + completed_count: int | None = Field(None, ge=0, alias='completedCount', description='Gets the completed_count of this OptimizerStatisticsCollectionOperationSummary.\nThe number of objects for which statistics collection is completed.') + in_progress_count: int | None = Field(None, ge=0, alias='inProgressCount', description='Gets the in_progress_count of this OptimizerStatisticsCollectionOperationSummary.\nThe number of objects for which statistics collection is in progress.') + failed_count: int | None = Field(None, ge=0, alias='failedCount', description='Gets the failed_count of this OptimizerStatisticsCollectionOperationSummary.\nThe number of objects for which statistics collection failed.') + timed_out_count: int | None = Field(None, ge=0, alias='timedOutCount', description='Gets the timed_out_count of this OptimizerStatisticsCollectionOperationSummary.\nThe number of objects for which statistics collection timed out.') + total_objects_count: int | None = Field(None, ge=0, alias='totalObjectsCount', description='Gets the total_objects_count of this OptimizerStatisticsCollectionOperationSummary.\nThe total number of objects for which statistics is collected. This number is the sum of all the objects\nwith various statuses: completed, inProgress, failed, and timedOut.') + + +class OptimizerStatisticsCollectionOperationsCollection(DbmBaseModel): + """The details of each statistics collection operation.""" + + items: list[OptimizerStatisticsCollectionOperationSummary] = Field(..., description='**[Required]** Gets the items of this OptimizerStatisticsCollectionOperationsCollection.\nThe details of the Optimizer Statistics Collection operation.') + + +class OptimizerStatisticsOperationTask(DbmBaseModel): + """The details of the Optimizer Statistics Collection task.""" + + target: str = Field(..., description='**[Required]** Gets the target of this OptimizerStatisticsOperationTask.\nThe name of the target object for which statistics are gathered.') + target_type: Literal['TABLE', 'GLOBAL_TABLE', 'COORDINATOR_TABLE', 'TABLE_PARTITION', 'TABLE_SUBPARTITION', 'INDEX', 'INDEX_PARTITION', 'INDEX_SUBPARTITION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='targetType', description='**[Required]** Gets the target_type of this OptimizerStatisticsOperationTask.\nThe type of target object.\n\nAllowed values for this property are: "TABLE", "GLOBAL_TABLE", "COORDINATOR_TABLE", "TABLE_PARTITION", "TABLE_SUBPARTITION", "INDEX", "INDEX_PARTITION", "INDEX_SUBPARTITION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_start: datetime = Field(..., alias='timeStart', description='**[Required]** Gets the time_start of this OptimizerStatisticsOperationTask.\nThe start time of the Optimizer Statistics Collection task.') + time_end: datetime = Field(..., alias='timeEnd', description='**[Required]** Gets the time_end of this OptimizerStatisticsOperationTask.\nThe end time of the Optimizer Statistics Collection task.') + status: Literal['PENDING', 'IN_PROGRESS', 'SKIPPED', 'TIMED_OUT', 'COMPLETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the status of this OptimizerStatisticsOperationTask.\nThe status of the Optimizer Statistics Collection task.\n\nAllowed values for this property are: "PENDING", "IN_PROGRESS", "SKIPPED", "TIMED_OUT", "COMPLETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class ParentGroup(DbmBaseModel): + """The parent Managed Database Group of a Managed Database.""" + + id: str = Field(..., description='**[Required]** Gets the id of this ParentGroup. The OCID of the Managed Database Group.') + name: str = Field(..., description='**[Required]** Gets the name of this ParentGroup.\nThe name of the Managed Database Group.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ParentGroup. The OCID of the compartment in which the Managed Database Group resides.') + + +class PatchCloudDbSystemDiscoveryDetails(DbmRequestModel): + """The details required to update a cloud DB system discovery resource.""" + + items: list[PatchInstruction] | None = Field(None, description='Gets the items of this PatchCloudDbSystemDiscoveryDetails.\nA sequence of instructions to apply to the resource.') + + +class PatchExternalDbSystemDiscoveryDetails(DbmRequestModel): + """The details required to update an external DB system discovery resource.""" + + items: list[PatchInstruction] | None = Field(None, description='Gets the items of this PatchExternalDbSystemDiscoveryDetails.\nA sequence of instructions to apply to the resource.') + + +class PatchInstruction(DbmBaseModel): + """A single instruction to be included as part of Patch request content.""" + + operation: Literal['MERGE'] = Field(..., description='**[Required]** Gets the operation of this PatchInstruction.\nThe type of operation.\n\nAllowed values for this property are: "MERGE"') + selection: str = Field(..., description='**[Required]** Gets the selection of this PatchInstruction. The set of values to which the operation applies as a JMESPath expression for evaluation against the context resource. An operation fails if the selection yields an exception, except as otherwise specified. Note that comparisons involving non-primitive values (objects or arrays) are not supported and will always evaluate to false.') + + +class PatchMergeInstruction(DbmBaseModel): + """An operation that recursively updates items of the selection, or adding the value if the selection is empty. +If the value is not an object, it is used directly, otherwise each key-value member is used +to create or update a member of the same name in the target and the same process is applied recursively for each object-typed value +(similar to RFC 7396 JSON Merge Patch, except that null values are copied +rather than transformed into deletions). +NOT_FOUND exceptions are handled by creating the implied containing structure. +To avoid referential errors if an item's descendant is also in the selection, items of the selection are processed in order of decreasing depth.""" + + + + operation: Literal['MERGE'] = Field(..., description='**[Required]** Gets the operation of this PatchInstruction.\nThe type of operation.\n\nAllowed values for this property are: "MERGE"') + selection: str = Field(..., description='**[Required]** Gets the selection of this PatchInstruction. The set of values to which the operation applies as a JMESPath expression for evaluation against the context resource. An operation fails if the selection yields an exception, except as otherwise specified. Note that comparisons involving non-primitive values (objects or arrays) are not supported and will always evaluate to false.') + value: Any | None = Field(None, description='Gets the value of this PatchMergeInstruction.\nA value to be merged into the target.') + + +class PdbMetrics(DbmBaseModel): + """The summary of Pluggable Databases (PDBs) and their resource usage metrics, within a specific Container Database (CDB).""" + + database_usage_metrics: list[DatabaseUsageMetrics] = Field(..., alias='databaseUsageMetrics', description='**[Required]** Gets the database_usage_metrics of this PdbMetrics.\nA summary of PDBs and their resource usage metrics such as CPU, User I/O, and Storage, within a specific CDB.') + + +class PdbStatusDetails(DbmRequestModel): + """The number and status of PDBs in a Container Database.""" + + status: Literal['UP', 'DOWN', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this PdbStatusDetails.\nThe status of the PDBs with this count.\n\nAllowed values for this property are: "UP", "DOWN", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + count: int | None = Field(None, ge=0, description='Gets the count of this PdbStatusDetails.\nThe number of PDBs with this status.') + + +class PeerDatabaseMetrics(DbmBaseModel): + """The summary of resource usage metrics for the peer database.""" + + peer_db_metrics: list[DatabaseUsageMetrics] = Field(..., alias='peerDbMetrics', description='**[Required]** Gets the peer_db_metrics of this PeerDatabaseMetrics.\nA list of resource usage metrics for the peer database.') + + +class PerformanceMetrics(DbmBaseModel): + """The Data Guard performance metric details.""" + + name: str | None = Field(None, description='Gets the name of this PerformanceMetrics.\nThe name of the metric.') + dimensions: Any | None = Field(None, description='Gets the dimensions of this PerformanceMetrics.\nThe dimensions of the Data Guard performance metrics, such as primary database ID, primary database unique name.') + metadata: Any | None = Field(None, description='Gets the metadata of this PerformanceMetrics.\nThe metadata of the metric, such as Unit.') + datapoints: list[DataPoints] | None = Field(None, description='Gets the datapoints of this PerformanceMetrics.\nThe aggregated datapoints of the metric.') + + +class PerformanceMetricsData(DbmBaseModel): + """The list of Data Guard performance metrics for Managed Databases.""" + + compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this PerformanceMetricsData. The OCID of the compartment in which the Managed Database resides.') + resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this PerformanceMetricsData. The OCID of the Managed Database.') + primary_db_id: str | None = Field(None, alias='primaryDbId', description='Gets the primary_db_id of this PerformanceMetricsData.\nThe ID of the primary database.') + primary_db_unique_name: str | None = Field(None, alias='primaryDbUniqueName', description='Gets the primary_db_unique_name of this PerformanceMetricsData.\nThe primary database unique name of the Managed Database.') + database_id: str | None = Field(None, alias='databaseId', description='Gets the database_id of this PerformanceMetricsData.\nThe database ID of the Managed Database. Every database had its own ID and that value is captured here.') + db_unique_name: str | None = Field(None, alias='dbUniqueName', description='Gets the db_unique_name of this PerformanceMetricsData.\nThe database unique name of the Managed Database.') + deployment_type: str | None = Field(None, alias='deploymentType', description='Gets the deployment_type of this PerformanceMetricsData.\nThe deployment type of the Managed Database.') + resource_name: str | None = Field(None, alias='resourceName', description='Gets the resource_name of this PerformanceMetricsData.\nThe resource name of the Managed Database.') + db_role: Literal['SNAPSHOT_STANDBY', 'LOGICAL_STANDBY', 'PHYSICAL_STANDBY', 'PRIMARY', 'FAR_SYNC', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='dbRole', description='Gets the db_role of this PerformanceMetricsData.\nThe database role of the Managed Database.\n\nAllowed values for this property are: "SNAPSHOT_STANDBY", "LOGICAL_STANDBY", "PHYSICAL_STANDBY", "PRIMARY", "FAR_SYNC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + metrics: list[PerformanceMetrics] | None = Field(None, description='Gets the metrics of this PerformanceMetricsData.\nThe list of Data Guard performance metrics such as ApplyLag, TransportLag and RedoApplyRate for the Managed Databases.') + + +class PreferredCredential(DbmBaseModel): + """The details of the preferred credential.""" + + type: Literal['BASIC', 'NAMED_CREDENTIAL', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the type of this PreferredCredential.\nThe type of preferred credential. Only \'BASIC\' is supported currently.\n\nAllowed values for this property are: "BASIC", "NAMED_CREDENTIAL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + credential_name: str | None = Field(None, alias='credentialName', description='Gets the credential_name of this PreferredCredential.\nThe name of the preferred credential.') + status: Literal['SET', 'NOT_SET', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this PreferredCredential.\nThe status of the preferred credential.\n\nAllowed values for this property are: "SET", "NOT_SET", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + is_accessible: bool | None = Field(None, alias='isAccessible', description='Gets the is_accessible of this PreferredCredential.\nIndicates whether the preferred credential is accessible.') + + +class PreferredCredentialCollection(DbmBaseModel): + """A collection of preferred credential attributes.""" + + items: list[PreferredCredentialSummary] = Field(..., description='**[Required]** Gets the items of this PreferredCredentialCollection.\nThe attributes of the preferred credential.') + + +class PreferredCredentialSummary(DbmBaseModel): + """The summary of preferred credentials.""" + + credential_name: str = Field(..., alias='credentialName', description='**[Required]** Gets the credential_name of this PreferredCredentialSummary.\nThe name of the preferred credential.') + status: Literal['SET', 'NOT_SET', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the status of this PreferredCredentialSummary.\nThe status of the preferred credential.\n\nAllowed values for this property are: "SET", "NOT_SET", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + is_accessible: bool = Field(..., alias='isAccessible', description='**[Required]** Gets the is_accessible of this PreferredCredentialSummary.\nIndicates whether the preferred credential is accessible.') + user_name: str | None = Field(None, alias='userName', description='Gets the user_name of this PreferredCredentialSummary.\nThe user name used to connect to the database.') + role: Literal['NORMAL', 'SYSDBA', 'SYSDG', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the role of this PreferredCredentialSummary.\nThe role of the database user.\n\nAllowed values for this property are: "NORMAL", "SYSDBA", "SYSDG", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + password_secret_id: str | None = Field(None, alias='passwordSecretId', description='Gets the password_secret_id of this PreferredCredentialSummary. The OCID of the Vault service secret that contains the database user password.') + named_credential_id: str | None = Field(None, alias='namedCredentialId', description='Gets the named_credential_id of this PreferredCredentialSummary. The OCID of the Named Credential that contains the database user password metadata.') + + +class PrivateEndPointConnectorDetails(DbmRequestModel): + """The private endpoint details required to connect to an Oracle cloud Database.""" + + connector_type: Literal['PE', 'MACS', 'EXTERNAL', 'DIRECT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this ConnectorDetails.\nThe list of supported connection types:\n - PE: Private endpoint\n - MACS: Management agent\n - EXTERNAL: External database connector\n\n - DIRECT: Direct connection\n\nAllowed values for this property are: "PE", "MACS", "EXTERNAL", "DIRECT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + private_end_point_id: str = Field(..., alias='privateEndPointId', description='**[Required]** Gets the private_end_point_id of this PrivateEndPointConnectorDetails. The OCID of the private endpoint.') + + +class ProxiedForUserCollection(DbmBaseModel): + """A collection of users on whose behalf the current user acts as proxy.""" + + items: list[ProxiedForUserSummary] = Field(..., description='**[Required]** Gets the items of this ProxiedForUserCollection.\nAn array of user resources.') + + +class ProxiedForUserSummary(DbmBaseModel): + """A summary of users on whose behalf the current user acts as proxy.""" + + name: str | None = Field(None, description='Gets the name of this ProxiedForUserSummary.\nThe name of a proxy user or the name of the client user.') + authentication: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the authentication of this ProxiedForUserSummary.\nIndicates whether the proxy is required to supply the client credentials (YES) or not (NO).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + flags: Literal['PROXY_MAY_ACTIVATE_ALL_CLIENT_ROLES', 'NO_CLIENT_ROLES_MAY_BE_ACTIVATED', 'PROXY_MAY_ACTIVATE_ROLE', 'PROXY_MAY_NOT_ACTIVATE_ROLE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the flags of this ProxiedForUserSummary.\nThe flags associated with the proxy/client pair.\n\nAllowed values for this property are: "PROXY_MAY_ACTIVATE_ALL_CLIENT_ROLES", "NO_CLIENT_ROLES_MAY_BE_ACTIVATED", "PROXY_MAY_ACTIVATE_ROLE", "PROXY_MAY_NOT_ACTIVATE_ROLE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class ProxyUserCollection(DbmBaseModel): + """A collection of proxy users for the current user.""" + + items: list[ProxyUserSummary] = Field(..., description='**[Required]** Gets the items of this ProxyUserCollection.\nAn array of user resources.') + + +class ProxyUserSummary(DbmBaseModel): + """A summary of the proxy user.""" + + name: str | None = Field(None, description='Gets the name of this ProxyUserSummary.\nThe name of a proxy user or the name of the client user.') + authentication: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the authentication of this ProxyUserSummary.\nIndicates whether the proxy is required to supply the client credentials (YES) or not (NO).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + flags: Literal['PROXY_MAY_ACTIVATE_ALL_CLIENT_ROLES', 'NO_CLIENT_ROLES_MAY_BE_ACTIVATED', 'PROXY_MAY_ACTIVATE_ROLE', 'PROXY_MAY_NOT_ACTIVATE_ROLE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the flags of this ProxyUserSummary.\nThe flags associated with the proxy/client pair.\n\nAllowed values for this property are: "PROXY_MAY_ACTIVATE_ALL_CLIENT_ROLES", "NO_CLIENT_ROLES_MAY_BE_ACTIVATED", "PROXY_MAY_ACTIVATE_ROLE", "PROXY_MAY_NOT_ACTIVATE_ROLE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class Recommendation(DbmBaseModel): + """The details of the Optimizer Statistics Advisor findings and recommendations.""" + + message: str = Field(..., description='**[Required]** Gets the message of this Recommendation.\nAn overview of the Optimizer Statistics Advisor recommendation.') + example: RecommendationExample | None = Field(None, description='Gets the example of this Recommendation.') + rationales: list[RecommendationRationale] | None = Field(None, description='Gets the rationales of this Recommendation.\nThe rationale of the recommendation.') + + +class RecommendationExample(DbmBaseModel): + """An example of the recommendation.""" + + lines: list[RecommendationExampleLine] | None = Field(None, description='Gets the lines of this RecommendationExample.\nThe list of examples for the recommendation.') + + +class RecommendationExampleLine(DbmBaseModel): + """An example line of the recommendation""" + + operation: str | None = Field(None, description='Gets the operation of this RecommendationExampleLine.\nThe details of the example operation.') + comment: str | None = Field(None, description='Gets the comment of this RecommendationExampleLine.\nThe comments about the operation.') + + +class RecommendationRationale(DbmBaseModel): + """The details of the rationale for the recommendation.""" + + message: str = Field(..., description='**[Required]** Gets the message of this RecommendationRationale.\nThe message of the rationale.') + + +class RemoveDataFileDetails(DbmRequestModel): + """The details required to remove a data file or temp file from the tablespace. +It takes either credentialDetails or databaseCredential. It's recommended to provide databaseCredential""" + + credential_details: TablespaceAdminCredentialDetails | None = Field(None, alias='credentialDetails', description='Gets the credential_details of this RemoveDataFileDetails.') + database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this RemoveDataFileDetails.') + file_type: Literal['DATAFILE', 'TEMPFILE'] = Field(..., alias='fileType', description='**[Required]** Gets the file_type of this RemoveDataFileDetails.\nSpecifies whether the file is a data file or temp file.\n\nAllowed values for this property are: "DATAFILE", "TEMPFILE"') + data_file: str = Field(..., alias='dataFile', description='**[Required]** Gets the data_file of this RemoveDataFileDetails.\nName of the data file or temp file to be removed from the tablespace.') + + +class RemoveManagedDatabaseFromManagedDatabaseGroupDetails(DbmRequestModel): + """The Managed Database details required to remove it from a Managed Database Group.""" + + managed_database_id: str = Field(..., alias='managedDatabaseId', description='**[Required]** Gets the managed_database_id of this RemoveManagedDatabaseFromManagedDatabaseGroupDetails. The OCID of the Managed Database.') + + +class ResetDatabaseParametersDetails(DbmRequestModel): + """The details required to reset database parameter values. +It takes either credentials or databaseCredential. It's recommended to provide databaseCredential""" + + credentials: DatabaseCredentials | None = Field(None, description='Gets the credentials of this ResetDatabaseParametersDetails.') + database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this ResetDatabaseParametersDetails.') + scope: Literal['MEMORY', 'SPFILE', 'BOTH'] = Field(..., description='**[Required]** Gets the scope of this ResetDatabaseParametersDetails.\nThe clause used to specify when the parameter change takes effect.\n\nUse `MEMORY` to make the change in memory and ensure that it takes\neffect immediately. Use `SPFILE` to make the change in the server\nparameter file. The change takes effect when the database is next\nshut down and started up again. Use `BOTH` to make the change in\nmemory and in the server parameter file. The change takes effect\nimmediately and persists after the database is shut down and\nstarted up again.\n\nAllowed values for this property are: "MEMORY", "SPFILE", "BOTH"') + parameters: list[str] = Field(..., description='**[Required]** Gets the parameters of this ResetDatabaseParametersDetails.\nA list of database parameter names.') + + +class ResizeDataFileDetails(DbmRequestModel): + """The details required to resize a data file or temp file within the tablespace. +It takes either credentialDetails or databaseCredential. It's recommended to provide databaseCredential""" + + credential_details: TablespaceAdminCredentialDetails | None = Field(None, alias='credentialDetails', description='Gets the credential_details of this ResizeDataFileDetails.') + database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this ResizeDataFileDetails.') + file_type: Literal['DATAFILE', 'TEMPFILE'] = Field(..., alias='fileType', description='**[Required]** Gets the file_type of this ResizeDataFileDetails.\nSpecifies whether the file is a data file or temp file.\n\nAllowed values for this property are: "DATAFILE", "TEMPFILE"') + data_file: str = Field(..., alias='dataFile', description='**[Required]** Gets the data_file of this ResizeDataFileDetails.\nName of the data file or temp file to be resized.') + file_size: TablespaceStorageSize | None = Field(None, alias='fileSize', description='Gets the file_size of this ResizeDataFileDetails.\nThe new size of the data file or temp file.') + is_auto_extensible: bool | None = Field(None, alias='isAutoExtensible', description='Gets the is_auto_extensible of this ResizeDataFileDetails.\nSpecifies whether the data file or temp file can be extended automatically.') + auto_extend_next_size: TablespaceStorageSize | None = Field(None, alias='autoExtendNextSize', description='Gets the auto_extend_next_size of this ResizeDataFileDetails.\nThe size of the next increment of disk space to be allocated automatically when more extents are required.') + auto_extend_max_size: TablespaceStorageSize | None = Field(None, alias='autoExtendMaxSize', description='Gets the auto_extend_max_size of this ResizeDataFileDetails.\nThe maximum disk space allowed for automatic extension of the data files or temp files.') + is_max_size_unlimited: bool | None = Field(None, alias='isMaxSizeUnlimited', description='Gets the is_max_size_unlimited of this ResizeDataFileDetails.\nSpecifies whether the disk space of the data file or temp file can be limited.') + + +class RestCredential(DbmBaseModel): + """The user credential information.""" + + username: str = Field(..., description='**[Required]** Gets the username of this RestCredential.\nThe name of the user.') + password: str = Field(..., description='**[Required]** Gets the password of this RestCredential.\nThe password of the user.') + ssl_trust_store_type: Literal['JKS', 'BCFKS'] | None = Field(None, alias='sslTrustStoreType', description='Gets the ssl_trust_store_type of this RestCredential.\nThe SSL truststore type.\n\nAllowed values for this property are: "JKS", "BCFKS"') + ssl_trust_store_location: str | None = Field(None, alias='sslTrustStoreLocation', description='Gets the ssl_trust_store_location of this RestCredential.\nThe full path of the SSL truststore location in the agent.') + ssl_trust_store_password: str | None = Field(None, alias='sslTrustStorePassword', description='Gets the ssl_trust_store_password of this RestCredential.\nThe password of the SSL truststore location in the agent.') + + +class RoleCollection(DbmBaseModel): + """A collection of roles granted to the current User.""" + + items: list[RoleSummary] = Field(..., description='**[Required]** Gets the items of this RoleCollection.\nAn array of roles.') + + +class RoleSummary(DbmBaseModel): + """A summary of each role.""" + + name: str | None = Field(None, description='Gets the name of this RoleSummary.\nThe name of the role granted to the user.') + admin_option: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='adminOption', description='Gets the admin_option of this RoleSummary.\nIndicates whether the role is granted with the ADMIN OPTION (YES) or not (NO).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + delegate_option: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='delegateOption', description='Gets the delegate_option of this RoleSummary.\nIndicates whether the role is granted with the DELEGATE OPTION (YES) or not (NO).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + default_role: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='defaultRole', description='Gets the default_role of this RoleSummary.\nIndicates whether the role is designated as a DEFAULT ROLE for the user (YES) or not (NO).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + common: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the common of this RoleSummary.\nIndicates how the role was granted. Possible values:\nYES if the role is granted commonly (CONTAINER=ALL is used)\nNO if the role is granted locally (CONTAINER=ALL is not used)\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + inherited: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the inherited of this RoleSummary.\nIndicates whether the granted role is inherited from another container (YES) or not (NO).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class RuleFinding(DbmBaseModel): + """The summary of the Optimizer Statistics Advisor findings and recommendations.""" + + message: str = Field(..., description='**[Required]** Gets the message of this RuleFinding.\nA high-level overview of the findings of the Optimizer Statistics Advisor.') + details: list[FindingSchemaOrOperation] = Field(..., description='**[Required]** Gets the details of this RuleFinding.\nThe details of the schema or operation.') + recommendations: list[Recommendation] = Field(..., description='**[Required]** Gets the recommendations of this RuleFinding.\nThe list of recommendations.') + + +class RunHistoricAddmDetails(DbmRequestModel): + """The details of the ADDM task, which include the beginning and ending AWR snapshot IDs.""" + + start_snapshot_id: int = Field(..., alias='startSnapshotId', description='**[Required]** Gets the start_snapshot_id of this RunHistoricAddmDetails.\nThe ID number of the beginning AWR snapshot.') + end_snapshot_id: int = Field(..., alias='endSnapshotId', description='**[Required]** Gets the end_snapshot_id of this RunHistoricAddmDetails.\nThe ID of the ending AWR snapshot.') + + +class SaveSqlTuningSetAsDetails(DbmRequestModel): + """Save current list of Sql statements into another Sql tuning set. +It takes either credentialDetails or databaseCredential. It's recommended to provide databaseCredential""" + + credential_details: SqlTuningSetAdminCredentialDetails | None = Field(None, alias='credentialDetails', description='Gets the credential_details of this SaveSqlTuningSetAsDetails.') + database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this SaveSqlTuningSetAsDetails.') + show_sql_only: int | None = Field(None, alias='showSqlOnly', description='Gets the show_sql_only of this SaveSqlTuningSetAsDetails.\nFlag to indicate whether to save the Sql tuning set or just display the plsql used to save Sql tuning set.') + owner: str | None = Field(None, description='Gets the owner of this SaveSqlTuningSetAsDetails.\nThe owner of the Sql tuning set.') + name: str = Field(..., description='**[Required]** Gets the name of this SaveSqlTuningSetAsDetails.\nThe name of the Sql tuning set.') + destination_sql_tuning_set_name: str = Field(..., alias='destinationSqlTuningSetName', description='**[Required]** Gets the destination_sql_tuning_set_name of this SaveSqlTuningSetAsDetails.\nThe name of the destination Sql tuning set.') + destination_sql_tuning_set_description: str | None = Field(None, alias='destinationSqlTuningSetDescription', description='Gets the destination_sql_tuning_set_description of this SaveSqlTuningSetAsDetails.\nThe description for the destination Sql tuning set.') + destination_sql_tuning_set_owner: str | None = Field(None, alias='destinationSqlTuningSetOwner', description='Gets the destination_sql_tuning_set_owner of this SaveSqlTuningSetAsDetails.\nOwner of the destination Sql tuning set.') + create_new: int = Field(..., alias='createNew', description='**[Required]** Gets the create_new of this SaveSqlTuningSetAsDetails.\nSpecifies whether to create a new Sql tuning set or not.\nPossible values\n1 - Create a new Sql tuning set\n0 - Do not create a new Sql tuning set') + basic_filter: str | None = Field(None, alias='basicFilter', description='Gets the basic_filter of this SaveSqlTuningSetAsDetails. Specifies the Sql predicate to filter the Sql from the Sql tuning set defined on attributes of the SQLSET_ROW. User could use any combination of the following columns with appropriate values as Sql predicate Refer to the documentation.') + plan_filter: Literal['LAST_GENERATED', 'FIRST_GENERATED', 'LAST_LOADED', 'FIRST_LOADED', 'MAX_ELAPSED_TIME', 'MAX_BUFFER_GETS', 'MAX_DISK_READS', 'MAX_DIRECT_WRITES', 'MAX_OPTIMIZER_COST'] | None = Field(None, alias='planFilter', description='Gets the plan_filter of this SaveSqlTuningSetAsDetails.\nSpecifies the plan filter.\nThis parameter enables you to select a single plan when a statement has multiple plans.\nRefer to the documentation values for this property are: "LAST_GENERATED", "FIRST_GENERATED", "LAST_LOADED", "FIRST_LOADED", "MAX_ELAPSED_TIME", "MAX_BUFFER_GETS", "MAX_DISK_READS", "MAX_DIRECT_WRITES", "MAX_OPTIMIZER_COST"') + recursive_sql: Literal['HAS_RECURSIVE_SQL', 'NO_RECURSIVE_SQL'] | None = Field(None, alias='recursiveSql', description='Gets the recursive_sql of this SaveSqlTuningSetAsDetails.\nSpecifies that the filter must include recursive Sql in the Sql tuning set.\n\nAllowed values for this property are: "HAS_RECURSIVE_SQL", "NO_RECURSIVE_SQL"') + result_percentage: float | None = Field(None, alias='resultPercentage', description='Gets the result_percentage of this SaveSqlTuningSetAsDetails.\nSpecifies a filter that picks the top n% according to the supplied ranking measure.\nNote that this parameter applies only if one ranking measure is supplied.') + result_limit: int | None = Field(None, alias='resultLimit', description='Gets the result_limit of this SaveSqlTuningSetAsDetails.\nThe top limit Sql from the filtered source, ranked by the ranking measure.') + ranking_measure1: Literal['ELAPSED_TIME', 'CPU_TIME', 'OPTIMIZER_COST', 'BUFFER_GETS', 'DISK_READS', 'DIRECT_WRITES'] | None = Field(None, alias='rankingMeasure1', description='Gets the ranking_measure1 of this SaveSqlTuningSetAsDetails.\nSpecifies an ORDER BY clause on the selected Sql. User can specify upto three ranking measures.\n\nAllowed values for this property are: "ELAPSED_TIME", "CPU_TIME", "OPTIMIZER_COST", "BUFFER_GETS", "DISK_READS", "DIRECT_WRITES"') + ranking_measure2: Literal['ELAPSED_TIME', 'CPU_TIME', 'OPTIMIZER_COST', 'BUFFER_GETS', 'DISK_READS', 'DIRECT_WRITES'] | None = Field(None, alias='rankingMeasure2', description='Gets the ranking_measure2 of this SaveSqlTuningSetAsDetails.\nSpecifies an ORDER BY clause on the selected Sql. User can specify upto three ranking measures.\n\nAllowed values for this property are: "ELAPSED_TIME", "CPU_TIME", "OPTIMIZER_COST", "BUFFER_GETS", "DISK_READS", "DIRECT_WRITES"') + ranking_measure3: Literal['ELAPSED_TIME', 'CPU_TIME', 'OPTIMIZER_COST', 'BUFFER_GETS', 'DISK_READS', 'DIRECT_WRITES'] | None = Field(None, alias='rankingMeasure3', description='Gets the ranking_measure3 of this SaveSqlTuningSetAsDetails.\nSpecifies an ORDER BY clause on the selected Sql. User can specify upto three ranking measures.\n\nAllowed values for this property are: "ELAPSED_TIME", "CPU_TIME", "OPTIMIZER_COST", "BUFFER_GETS", "DISK_READS", "DIRECT_WRITES"') + attribute_list: str | None = Field(None, alias='attributeList', description='Gets the attribute_list of this SaveSqlTuningSetAsDetails.\nSpecifies the list of Sql statement attributes to return in the result.\nNote that this parameter cannot be made an enum since custom value can take a list of comma separated attribute names.\nAttribute list can take one of the following values.\n TYPICAL - Specifies BASIC plus Sql plan (without row source statistics) and without object reference list (default).\n BASIC - Specifies all attributes (such as execution statistics and binds) except the plans. The execution context is always part of the result.\n ALL - Specifies all attributes.\n CUSTOM - Comma-separated list of the following attribute names.\n - EXECUTION_STATISTICS\n - BIND_LIST\n - OBJECT_LIST\n - SQL_PLAN\n - SQL_PLAN_STATISTICS\nUsage examples:\n 1. "attributeList": "TYPICAL"\n 2. "attributeList": "ALL"\n 3. "attributeList": "EXECUTION_STATISTICS,OBJECT_LIST,SQL_PLAN"') + load_option: Literal['INSERT', 'UPDATE', 'MERGE'] | None = Field(None, alias='loadOption', description='Gets the load_option of this SaveSqlTuningSetAsDetails.\nSpecifies which statements are loaded into the Sql tuning set.\nThe possible values are.\n - INSERT (default)\n Adds only new statements.\n - UPDATE\n Updates existing the Sql statements and ignores any new statements.\n - MERGE\n Inserts new statements and updates the information of the existing ones.\n\nAllowed values for this property are: "INSERT", "UPDATE", "MERGE"') + update_option: Literal['REPLACE', 'ACCUMULATE'] | None = Field(None, alias='updateOption', description='Gets the update_option of this SaveSqlTuningSetAsDetails.\nSpecifies how existing Sql statements are updated.\nThis parameter is applicable only if load_option is specified with UPDATE or MERGE as an option.\nUpdate option can take one of the following values.\n REPLACE (default) - Updates the statement using the new statistics, bind list, object list, and so on.\n ACCUMULATE - Combines attributes when possible (for example, statistics such as elapsed_time), otherwise replaces the existing values (for example, module and action) with the provided values.\n Following Sql statement attributes can be accumulated.\n elapsed_time\n buffer_gets\n direct_writes\n disk_reads\n row_processed\n fetches\n executions\n end_of_fetch_count\n stat_period\n active_stat_period\n\nAllowed values for this property are: "REPLACE", "ACCUMULATE"') + update_condition: Literal['OLD', 'NEW', 'NULL'] | None = Field(None, alias='updateCondition', description='Gets the update_condition of this SaveSqlTuningSetAsDetails.\nSpecifies when to perform the update.\nThe procedure only performs the update when the specified condition is satisfied.\nThe condition can refer to either the data source or destination.\nThe condition must use the following prefixes to refer to attributes from the source or the destination:\n OLD — Refers to statement attributes from the SQL tuning set (destination).\n NEW — Refers to statement attributes from the input statements (source).\n NULL — No updates are performed.\n\nAllowed values for this property are: "OLD", "NEW", "NULL"') + update_attributes: str | None = Field(None, alias='updateAttributes', description='Gets the update_attributes of this SaveSqlTuningSetAsDetails.\nSpecifies the list of Sql statement attributes to update during a merge or update.\nNote that this parameter cannot be made an enum since custom value can take a list of comma separated attribute names.\nUpdate attributes can take one of the following values.\n NULL (default) - Specifies the content of the input cursor except the execution context. On other terms, it is equivalent to ALL without execution contexts such as module and action.\n BASIC - Specifies statistics and binds only.\n TYPICAL - Specifies BASIC with Sql plans (without row source statistics) and without an object reference list.\n ALL - Specifies all attributes, including the execution context attributes such as module and action.\n CUSTOM - List of comma separated attribute names to update\n EXECUTION_CONTEXT\n EXECUTION_STATISTICS\n SQL_BINDS\n SQL_PLAN\n SQL_PLAN_STATISTICS (similar to SQL_PLAN with added row source statistics)\nUsage examples:\n 1. "updateAttributes": "TYPICAL"\n 2. "updateAttributes": "BASIC"\n 3. "updateAttributes": "EXECUTION_STATISTICS,SQL_PLAN_STATISTICS,SQL_PLAN"\n 4. "updateAttributes": "EXECUTION_STATISTICS,SQL_PLAN"') + is_ignore_null: bool | None = Field(None, alias='isIgnoreNull', description='Gets the is_ignore_null of this SaveSqlTuningSetAsDetails.\nSpecifies whether to update attributes when the new value is NULL.\nIf TRUE, then the procedure does not update an attribute when the new value is NULL.\nThat is, do not override with NULL values unless intentional.\nPossible values - true or false') + commit_rows: int | None = Field(None, alias='commitRows', description='Gets the commit_rows of this SaveSqlTuningSetAsDetails.\nSpecifies whether to commit statements after DML.\nIf a value is provided, then the load commits after each specified number of statements is inserted.\nIf NULL is provided, then the load commits only once, at the end of the operation.') + + +class SchemaDefinition(DbmBaseModel): + """The schema object details.""" + + name: str = Field(..., description='**[Required]** Gets the name of this SchemaDefinition.\nThe name of the schema.') + objects: list[str] | None = Field(None, description='Gets the objects of this SchemaDefinition.\nThe names of schema objects.') + + +class SnapshotDetails(DbmRequestModel): + """The details of the newly generated AWR snapshot.""" + + snapshot_id: int = Field(..., alias='snapshotId', description='**[Required]** Gets the snapshot_id of this SnapshotDetails.\nThe ID of the beginning AWR snapshot.') + + +class SpmEvolveTaskParameters(DbmBaseModel): + """The set of parameters used in an SPM evolve task.""" + + alternate_plan_sources: list[str] | None = Field(None, alias='alternatePlanSources', description='Gets the alternate_plan_sources of this SpmEvolveTaskParameters.\nDetermines which sources to search for additional plans.\n\nAllowed values for items in this list are: "AUTO", "AUTOMATIC_WORKLOAD_REPOSITORY", "CURSOR_CACHE", "SQL_TUNING_SET", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + alternate_plan_baselines: list[str] | None = Field(None, alias='alternatePlanBaselines', description='Gets the alternate_plan_baselines of this SpmEvolveTaskParameters.\nDetermines which alternative plans should be loaded.\n\nAllowed values for items in this list are: "AUTO", "EXISTING", "NEW", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + alternate_plan_limit: int | None = Field(None, alias='alternatePlanLimit', description='Gets the alternate_plan_limit of this SpmEvolveTaskParameters.\nSpecifies the maximum number of plans to load in total (that is, not\nthe limit for each SQL statement). A value of zero indicates `UNLIMITED`\nnumber of plans.') + are_plans_auto_accepted: bool | None = Field(None, alias='arePlansAutoAccepted', description='Gets the are_plans_auto_accepted of this SpmEvolveTaskParameters.\nSpecifies whether to accept recommended plans automatically.') + allowed_time_limit: int | None = Field(None, alias='allowedTimeLimit', description='Gets the allowed_time_limit of this SpmEvolveTaskParameters.\nThe global time limit in seconds. This is the total time allowed for the task.') + + +class SqlCpuActivity(DbmBaseModel): + """The SQL CPU activity from the Exadata storage server.""" + + database_name: str | None = Field(None, alias='databaseName', description='Gets the database_name of this SqlCpuActivity.\nThe database name.') + sql_id: str | None = Field(None, alias='sqlId', description='Gets the sql_id of this SqlCpuActivity.\nThe SQL ID.') + cpu_activity: float | None = Field(None, alias='cpuActivity', description='Gets the cpu_activity of this SqlCpuActivity.\nThe CPU activity percentage.') + + +class SqlInSqlTuningSet(DbmBaseModel): + """Sql information in the Sql tuning set.""" + + sql_id: str = Field(..., alias='sqlId', description='**[Required]** Gets the sql_id of this SqlInSqlTuningSet.\nThe unique Sql identifier.') + sql_text: str | None = Field(None, alias='sqlText', description='Gets the sql_text of this SqlInSqlTuningSet.\nSql text.') + container_database_id: int | None = Field(None, alias='containerDatabaseId', description='Gets the container_database_id of this SqlInSqlTuningSet.\nThe unique container database identifier.') + plan_hash_value: int = Field(..., alias='planHashValue', description='**[Required]** Gets the plan_hash_value of this SqlInSqlTuningSet.\nPlan hash value of the Sql statement.') + schema_name: str | None = Field(None, alias='schema', description='Gets the schema of this SqlInSqlTuningSet.\nThe schema name of the Sql.') + module: str | None = Field(None, description='Gets the module of this SqlInSqlTuningSet.\nThe module of the Sql.') + metrics: list[SqlMetrics] | None = Field(None, description='Gets the metrics of this SqlInSqlTuningSet.\nA list of the Sqls associated with the Sql tuning set.') + + +class SqlJob(DbmBaseModel): + """The details of the SQL job.""" + + id: str = Field(..., description='**[Required]** Gets the id of this Job. The OCID of the job.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this Job. The OCID of the compartment in which the job resides.') + name: str = Field(..., description='**[Required]** Gets the name of this Job.\nThe display name of the job.') + description: str | None = Field(None, description='Gets the description of this Job.\nThe description of the job.') + managed_database_group_id: str | None = Field(None, alias='managedDatabaseGroupId', description='Gets the managed_database_group_id of this Job. The OCID of the Managed Database Group where the job has to be executed.') + managed_database_id: str | None = Field(None, alias='managedDatabaseId', description='Gets the managed_database_id of this Job. The OCID of the Managed Database where the job has to be executed.') + managed_databases_details: list[JobDatabase] | None = Field(None, alias='managedDatabasesDetails', description='Gets the managed_databases_details of this Job.\nThe details of the Managed Databases where the job has to be executed.') + database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseSubType', description='Gets the database_sub_type of this Job.\nThe subtype of the Oracle Database where the job has to be executed. Applicable only when managedDatabaseGroupId is provided.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + schedule_type: Literal['IMMEDIATE', 'LATER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='scheduleType', description='**[Required]** Gets the schedule_type of this Job.\nThe schedule type of the job.\n\nAllowed values for this property are: "IMMEDIATE", "LATER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + job_type: Literal['SQL', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='jobType', description='**[Required]** Gets the job_type of this Job.\nThe type of job.\n\nAllowed values for this property are: "SQL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_state: Literal['ACTIVE', 'INACTIVE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this Job.\nThe lifecycle state of the job.\n\nAllowed values for this property are: "ACTIVE", "INACTIVE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + timeout: str | None = Field(None, description='Gets the timeout of this Job.\nThe job timeout duration, which is expressed like "1h 10m 15s".') + result_location: JobExecutionResultLocation | None = Field(None, alias='resultLocation', description='Gets the result_location of this Job.') + schedule_details: JobScheduleDetails | None = Field(None, alias='scheduleDetails', description='Gets the schedule_details of this Job.') + submission_error_message: str | None = Field(None, alias='submissionErrorMessage', description='Gets the submission_error_message of this Job.\nThe error message that is returned if the job submission fails. Null is returned in all other scenarios.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this Job.\nThe date and time when the job was created.') + time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this Job.\nThe date and time when the job was last updated.') + sql_type: Literal['QUERY', 'DML', 'DDL', 'PLSQL', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='sqlType', description='Gets the sql_type of this SqlJob.\nThe type of SQL. This is a mandatory field for the EXECUTE_SQL operationType.\n\nAllowed values for this property are: "QUERY", "DML", "DDL", "PLSQL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + sql_text: str | None = Field(None, alias='sqlText', description='Gets the sql_text of this SqlJob.\nThe SQL text to be executed in the job. This is a mandatory field for the EXECUTE_SQL operationType.') + in_binds: JobInBindsDetails | None = Field(None, alias='inBinds', description='Gets the in_binds of this SqlJob.') + out_binds: JobOutBindsDetails | None = Field(None, alias='outBinds', description='Gets the out_binds of this SqlJob.') + operation_type: Literal['EXECUTE_SQL', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='operationType', description='**[Required]** Gets the operation_type of this SqlJob.\nThe SQL operation type.\n\nAllowed values for this property are: "EXECUTE_SQL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + user_name: str | None = Field(None, alias='userName', description='Gets the user_name of this SqlJob.\nThe database user name used to execute the SQL job. If the job is being executed on a Managed Database Group,\nthen the user name should exist on all the databases in the group with the same password.') + role: Literal['NORMAL', 'SYSDBA', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the role of this SqlJob.\nThe role of the database user. Indicates whether the database user is a normal user or sysdba.\n\nAllowed values for this property are: "NORMAL", "SYSDBA", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + named_credential_id: str | None = Field(None, alias='namedCredentialId', description='Gets the named_credential_id of this SqlJob. The OCID of the Named Credentials containing password secret.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this SqlJob. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this SqlJob. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this SqlJob. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') + + +class SqlMetrics(DbmBaseModel): + """Metrics of the Sql in the Sql tuning set.""" + + cpu_time: int | None = Field(None, alias='cpuTime', description='Gets the cpu_time of this SqlMetrics.\nTotal CPU time consumed by the Sql.') + elapsed_time: int | None = Field(None, alias='elapsedTime', description='Gets the elapsed_time of this SqlMetrics.\nElapsed time of the Sql.') + buffer_gets: int | None = Field(None, alias='bufferGets', description='Gets the buffer_gets of this SqlMetrics.\nSum total number of buffer gets.') + disk_reads: int | None = Field(None, alias='diskReads', description='Gets the disk_reads of this SqlMetrics.\nSum total number of disk reads.') + direct_writes: int | None = Field(None, alias='directWrites', description='Gets the direct_writes of this SqlMetrics.\nSum total number of direct path writes.') + executions: int | None = Field(None, description='Gets the executions of this SqlMetrics.\nTotal executions of this SQL statement.') + + +class SqlPlanBaseline(DbmBaseModel): + """The details of a SQL plan baseline.""" + + plan_name: str = Field(..., alias='planName', description='**[Required]** Gets the plan_name of this SqlPlanBaseline.\nThe unique plan identifier.') + sql_handle: str = Field(..., alias='sqlHandle', description='**[Required]** Gets the sql_handle of this SqlPlanBaseline.\nThe unique SQL identifier.') + sql_text: str = Field(..., alias='sqlText', description='**[Required]** Gets the sql_text of this SqlPlanBaseline.\nThe SQL text.') + origin: Literal['ADDM_SQLTUNE', 'AUTO_CAPTURE', 'AUTO_SQLTUNE', 'EVOLVE_AUTO_INDEX_LOAD', 'EVOLVE_CREATE_FROM_ADAPTIVE', 'EVOLVE_LOAD_FROM_STS', 'EVOLVE_LOAD_FROM_AWR', 'EVOLVE_LOAD_FROM_CURSOR_CACHE', 'MANUAL_LOAD', 'MANUAL_LOAD_FROM_AWR', 'MANUAL_LOAD_FROM_CURSOR_CACHE', 'MANUAL_LOAD_FROM_STS', 'MANUAL_SQLTUNE', 'STORED_OUTLINE', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the origin of this SqlPlanBaseline.\nThe origin of the SQL plan baseline.\n\nAllowed values for this property are: "ADDM_SQLTUNE", "AUTO_CAPTURE", "AUTO_SQLTUNE", "EVOLVE_AUTO_INDEX_LOAD", "EVOLVE_CREATE_FROM_ADAPTIVE", "EVOLVE_LOAD_FROM_STS", "EVOLVE_LOAD_FROM_AWR", "EVOLVE_LOAD_FROM_CURSOR_CACHE", "MANUAL_LOAD", "MANUAL_LOAD_FROM_AWR", "MANUAL_LOAD_FROM_CURSOR_CACHE", "MANUAL_LOAD_FROM_STS", "MANUAL_SQLTUNE", "STORED_OUTLINE", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this SqlPlanBaseline.\nThe date and time when the plan baseline was created.') + time_last_modified: datetime | None = Field(None, alias='timeLastModified', description='Gets the time_last_modified of this SqlPlanBaseline.\nThe date and time when the plan baseline was last modified.') + time_last_executed: datetime | None = Field(None, alias='timeLastExecuted', description='Gets the time_last_executed of this SqlPlanBaseline.\nThe date and time when the plan baseline was last executed.\n\n**Note:** For performance reasons, database does not update this value\nimmediately after each execution of the plan baseline. Therefore, the plan\nbaseline may have been executed more recently than this value indicates.') + enabled: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the enabled of this SqlPlanBaseline.\nIndicates whether the plan baseline is enabled (`YES`) or disabled (`NO`).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + accepted: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the accepted of this SqlPlanBaseline.\nIndicates whether the plan baseline is accepted (`YES`) or not (`NO`).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + fixed: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the fixed of this SqlPlanBaseline.\nIndicates whether the plan baseline is fixed (`YES`) or not (`NO`).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + reproduced: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the reproduced of this SqlPlanBaseline.\nIndicates whether the optimizer was able to reproduce the plan (`YES`) or not (`NO`).\nThe value is set to `YES` when a plan is initially added to the plan baseline.\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + auto_purge: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='autoPurge', description='Gets the auto_purge of this SqlPlanBaseline.\nIndicates whether the plan baseline is auto-purged (`YES`) or not (`NO`).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + adaptive: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the adaptive of this SqlPlanBaseline.\nIndicates whether a plan that is automatically captured by SQL plan management is marked adaptive or not.\n\nWhen a new adaptive plan is found for a SQL statement that has an existing SQL plan baseline, that new plan\nwill be added to the SQL plan baseline as an unaccepted plan, and the `ADAPTIVE` property will be marked `YES`.\nWhen this new plan is verified (either manually or via the auto evolve task), the plan will be test executed\nand the final plan determined at execution will become an accepted plan if its performance is better than\nthe existing plan baseline. At this point, the value of the `ADAPTIVE` property is set to `NO` since the plan\nis no longer adaptive, but resolved.\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + module: str | None = Field(None, description='Gets the module of this SqlPlanBaseline.\nThe application module name.') + action: str | None = Field(None, description='Gets the action of this SqlPlanBaseline.\nThe application action.') + execution_plan: str = Field(..., alias='executionPlan', description='**[Required]** Gets the execution_plan of this SqlPlanBaseline.\nThe execution plan for the SQL statement.') + + +class SqlPlanBaselineAggregation(DbmBaseModel): + """A summary of SQL plan baselines.""" + + dimensions: SqlPlanBaselineDimensions = Field(..., description='**[Required]** Gets the dimensions of this SqlPlanBaselineAggregation.') + count: int | None = Field(None, ge=0, description='Gets the count of this SqlPlanBaselineAggregation.\nThe number of SQL plan baselines matching aggregation criteria.') + + +class SqlPlanBaselineAggregationCollection(DbmBaseModel): + """A collection of SQL plan baseline aggregations.""" + + items: list[SqlPlanBaselineAggregation] = Field(..., description='**[Required]** Gets the items of this SqlPlanBaselineAggregationCollection.\nA list of SQL plan baseline aggregations.') + + +class SqlPlanBaselineCollection(DbmBaseModel): + """The SQL plan baseline list.""" + + items: list[SqlPlanBaselineSummary] = Field(..., description='**[Required]** Gets the items of this SqlPlanBaselineCollection.\nA list of SQL plan baselines.') + + +class SqlPlanBaselineConfiguration(DbmBaseModel): + """The configuration details of SQL plan baselines. The details include: + +- whether automatic initial plan capture is enabled or disabled +- whether use of SQL plan baselines is enabled or disabled +- whether Automatic SPM Evolve Advisor task is enabled or disabled +- whether high-frequency Automatic SPM Evolve Advisor task is enabled or disabled +- filters for the automatic initial plan capture +- parameters for the Automatic SPM Evolve Advisor task +- plan retention and allocated space for the plan baselines""" + + is_automatic_initial_plan_capture_enabled: bool = Field(..., alias='isAutomaticInitialPlanCaptureEnabled', description='**[Required]** Gets the is_automatic_initial_plan_capture_enabled of this SqlPlanBaselineConfiguration.\nIndicates whether the automatic capture of SQL plan baselines is enabled (`true`) or not (`false`).') + is_sql_plan_baselines_usage_enabled: bool = Field(..., alias='isSqlPlanBaselinesUsageEnabled', description='**[Required]** Gets the is_sql_plan_baselines_usage_enabled of this SqlPlanBaselineConfiguration.\nIndicates whether the database uses SQL plan baselines (`true`) or not (`false`).') + is_auto_spm_evolve_task_enabled: bool = Field(..., alias='isAutoSpmEvolveTaskEnabled', description='**[Required]** Gets the is_auto_spm_evolve_task_enabled of this SqlPlanBaselineConfiguration.\nIndicates whether the Automatic SPM Evolve Advisor task is enabled (`true`) or not (`false`).') + is_high_frequency_auto_spm_evolve_task_enabled: bool = Field(..., alias='isHighFrequencyAutoSpmEvolveTaskEnabled', description='**[Required]** Gets the is_high_frequency_auto_spm_evolve_task_enabled of this SqlPlanBaselineConfiguration.\nIndicates whether the high frequency Automatic SPM Evolve Advisor task is enabled (`true`) or not (`false`).') + plan_retention_weeks: int = Field(..., alias='planRetentionWeeks', description='**[Required]** Gets the plan_retention_weeks of this SqlPlanBaselineConfiguration.\nThe number of weeks to retain unused plans before they are purged.') + space_budget_percent: float = Field(..., alias='spaceBudgetPercent', description='**[Required]** Gets the space_budget_percent of this SqlPlanBaselineConfiguration.\nThe maximum percent of `SYSAUX` space that can be used for SQL Management Base.') + space_budget_mb: float | None = Field(None, alias='spaceBudgetMB', description='Gets the space_budget_mb of this SqlPlanBaselineConfiguration.\nThe maximum `SYSAUX` space that can be used for SQL Management Base in MB.') + space_used_mb: float | None = Field(None, alias='spaceUsedMB', description='Gets the space_used_mb of this SqlPlanBaselineConfiguration.\nThe space used by SQL Management Base in MB.') + auto_capture_filters: list[AutomaticCaptureFilter] | None = Field(None, alias='autoCaptureFilters', description='Gets the auto_capture_filters of this SqlPlanBaselineConfiguration.\nThe capture filters used in automatic initial plan capture.') + auto_spm_evolve_task_parameters: SpmEvolveTaskParameters | None = Field(None, alias='autoSpmEvolveTaskParameters', description='Gets the auto_spm_evolve_task_parameters of this SqlPlanBaselineConfiguration.') + + +class SqlPlanBaselineDimensions(DbmBaseModel): + """The details of the SQL plan baseline dimensions.""" + + attribute_name: str = Field(..., alias='attributeName', description='**[Required]** Gets the attribute_name of this SqlPlanBaselineDimensions.\nThe name of the SQL plan baseline attribute.') + attribute_value: str = Field(..., alias='attributeValue', description='**[Required]** Gets the attribute_value of this SqlPlanBaselineDimensions.\nThe value of the attribute.') + + +class SqlPlanBaselineJob(DbmBaseModel): + """The details of the database job used for loading and evolving SQL plan baselines.""" + + name: str = Field(..., description='**[Required]** Gets the name of this SqlPlanBaselineJob.\nThe job name.') + type: Literal['LOAD', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the type of this SqlPlanBaselineJob.\nThe job type.\n\nAllowed values for this property are: "LOAD", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + status: Literal['SUCCEEDED', 'SCHEDULED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the status of this SqlPlanBaselineJob.\nThe job status.\n\nAllowed values for this property are: "SUCCEEDED", "SCHEDULED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this SqlPlanBaselineJob.\nThe date and time the job was created.') + + +class SqlPlanBaselineJobCollection(DbmBaseModel): + """A collection of database jobs used for loading and evolving SQL plan baselines.""" + + items: list[SqlPlanBaselineJobSummary] = Field(..., description='**[Required]** Gets the items of this SqlPlanBaselineJobCollection.\nA list of SQL plan baseline jobs.') + + +class SqlPlanBaselineJobSummary(DbmBaseModel): + """A summary of the database job used for loading and evolving SQL plan baselines.""" + + name: str = Field(..., description='**[Required]** Gets the name of this SqlPlanBaselineJobSummary.\nThe name of the job.') + type: Literal['LOAD', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the type of this SqlPlanBaselineJobSummary.\nThe type of the job.\n\nAllowed values for this property are: "LOAD", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + status: Literal['SUCCEEDED', 'SCHEDULED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the status of this SqlPlanBaselineJobSummary.\nThe status of the job.\n\nAllowed values for this property are: "SUCCEEDED", "SCHEDULED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this SqlPlanBaselineJobSummary.\nThe date and time the job was created.') + + +class SqlPlanBaselineSummary(DbmBaseModel): + """The summary of a SQL plan baseline.""" + + plan_name: str = Field(..., alias='planName', description='**[Required]** Gets the plan_name of this SqlPlanBaselineSummary.\nThe unique plan identifier.') + sql_handle: str = Field(..., alias='sqlHandle', description='**[Required]** Gets the sql_handle of this SqlPlanBaselineSummary.\nThe unique SQL identifier.') + sql_text: str = Field(..., alias='sqlText', description='**[Required]** Gets the sql_text of this SqlPlanBaselineSummary.\nThe SQL text (truncated to the first 50 characters).') + origin: Literal['ADDM_SQLTUNE', 'AUTO_CAPTURE', 'AUTO_SQLTUNE', 'EVOLVE_AUTO_INDEX_LOAD', 'EVOLVE_CREATE_FROM_ADAPTIVE', 'EVOLVE_LOAD_FROM_STS', 'EVOLVE_LOAD_FROM_AWR', 'EVOLVE_LOAD_FROM_CURSOR_CACHE', 'MANUAL_LOAD', 'MANUAL_LOAD_FROM_AWR', 'MANUAL_LOAD_FROM_CURSOR_CACHE', 'MANUAL_LOAD_FROM_STS', 'MANUAL_SQLTUNE', 'STORED_OUTLINE', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the origin of this SqlPlanBaselineSummary.\nThe origin of the SQL plan baseline.\n\nAllowed values for this property are: "ADDM_SQLTUNE", "AUTO_CAPTURE", "AUTO_SQLTUNE", "EVOLVE_AUTO_INDEX_LOAD", "EVOLVE_CREATE_FROM_ADAPTIVE", "EVOLVE_LOAD_FROM_STS", "EVOLVE_LOAD_FROM_AWR", "EVOLVE_LOAD_FROM_CURSOR_CACHE", "MANUAL_LOAD", "MANUAL_LOAD_FROM_AWR", "MANUAL_LOAD_FROM_CURSOR_CACHE", "MANUAL_LOAD_FROM_STS", "MANUAL_SQLTUNE", "STORED_OUTLINE", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this SqlPlanBaselineSummary.\nThe date and time when the plan baseline was created.') + time_last_modified: datetime | None = Field(None, alias='timeLastModified', description='Gets the time_last_modified of this SqlPlanBaselineSummary.\nThe date and time when the plan baseline was last modified.') + time_last_executed: datetime | None = Field(None, alias='timeLastExecuted', description='Gets the time_last_executed of this SqlPlanBaselineSummary.\nThe date and time when the plan baseline was last executed.\n\n**Note:** For performance reasons, database does not update this value\nimmediately after each execution of the plan baseline. Therefore, the plan\nbaseline may have been executed more recently than this value indicates.') + enabled: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the enabled of this SqlPlanBaselineSummary.\nIndicates whether the plan baseline is enabled (`YES`) or disabled (`NO`).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + accepted: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the accepted of this SqlPlanBaselineSummary.\nIndicates whether the plan baseline is accepted (`YES`) or not (`NO`).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + fixed: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the fixed of this SqlPlanBaselineSummary.\nIndicates whether the plan baseline is fixed (`YES`) or not (`NO`).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + reproduced: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the reproduced of this SqlPlanBaselineSummary.\nIndicates whether the optimizer was able to reproduce the plan (`YES`) or not (`NO`).\nThe value is set to `YES` when a plan is initially added to the plan baseline.\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + auto_purge: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='autoPurge', description='Gets the auto_purge of this SqlPlanBaselineSummary.\nIndicates whether the plan baseline is auto-purged (`YES`) or not (`NO`).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + adaptive: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the adaptive of this SqlPlanBaselineSummary.\nIndicates whether a plan that is automatically captured by SQL plan management is marked adaptive or not.\n\nWhen a new adaptive plan is found for a SQL statement that has an existing SQL plan baseline, that new plan\nwill be added to the SQL plan baseline as an unaccepted plan, and the `ADAPTIVE` property will be marked `YES`.\nWhen this new plan is verified (either manually or via the auto evolve task), the plan will be test executed\nand the final plan determined at execution will become an accepted plan if its performance is better than\nthe existing plan baseline. At this point, the value of the `ADAPTIVE` property is set to `NO` since the plan\nis no longer adaptive, but resolved.\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class SqlTuningAdvisorTaskCollection(DbmBaseModel): + """The SQL Tuning Advisor task list.""" + + items: list[SqlTuningAdvisorTaskSummary] = Field(..., description='**[Required]** Gets the items of this SqlTuningAdvisorTaskCollection.\nA list of SQL Tuning Advisor tasks.') + + +class SqlTuningAdvisorTaskFindingCollection(DbmBaseModel): + """The list of findings for a SQL Tuning Advisor task.""" + + items: list[SqlTuningAdvisorTaskFindingSummary] = Field(..., description='**[Required]** Gets the items of this SqlTuningAdvisorTaskFindingCollection.\nAn array of the findings for a tuning task.') + + +class SqlTuningAdvisorTaskFindingSummary(DbmBaseModel): + """A summary of the findings of the objects in a tuning task that match a given filter. +This includes the kind of findings that were reported, whether the benefits were analyzed, and the number of benefits obtained.""" + + sql_tuning_advisor_task_id: int = Field(..., alias='sqlTuningAdvisorTaskId', description='**[Required]** Gets the sql_tuning_advisor_task_id of this SqlTuningAdvisorTaskFindingSummary. The unique identifier of the SQL Tuning Advisor task. This is not the OCID.') + sql_tuning_advisor_task_object_id: int = Field(..., alias='sqlTuningAdvisorTaskObjectId', description='**[Required]** Gets the sql_tuning_advisor_task_object_id of this SqlTuningAdvisorTaskFindingSummary. The key of the object to which these recommendations apply. This is not the OCID.') + sql_tuning_advisor_task_object_execution_id: int = Field(..., alias='sqlTuningAdvisorTaskObjectExecutionId', description='**[Required]** Gets the sql_tuning_advisor_task_object_execution_id of this SqlTuningAdvisorTaskFindingSummary. The execution id of the analyzed SQL object. This is not the OCID.') + sql_text: str = Field(..., alias='sqlText', description='**[Required]** Gets the sql_text of this SqlTuningAdvisorTaskFindingSummary.\nThe text of the SQL statement.') + parsing_schema: str = Field(..., alias='parsingSchema', description='**[Required]** Gets the parsing_schema of this SqlTuningAdvisorTaskFindingSummary.\nThe parsing schema of the object.') + sql_key: str = Field(..., alias='sqlKey', description='**[Required]** Gets the sql_key of this SqlTuningAdvisorTaskFindingSummary.\nThe unique key of this SQL statement.') + db_time_benefit: float | None = Field(None, alias='dbTimeBenefit', description='Gets the db_time_benefit of this SqlTuningAdvisorTaskFindingSummary.\nThe time benefit (in seconds) for the highest-rated finding for this object.') + per_execution_percentage: int | None = Field(None, alias='perExecutionPercentage', description='Gets the per_execution_percentage of this SqlTuningAdvisorTaskFindingSummary.\nThe per-execution percentage benefit.') + is_stats_finding_present: bool | None = Field(None, alias='isStatsFindingPresent', description='Gets the is_stats_finding_present of this SqlTuningAdvisorTaskFindingSummary.\nIndicates whether a statistics recommendation was reported for this SQL statement.') + is_sql_profile_finding_present: bool | None = Field(None, alias='isSqlProfileFindingPresent', description='Gets the is_sql_profile_finding_present of this SqlTuningAdvisorTaskFindingSummary.\nIndicates whether a SQL Profile recommendation was reported for this SQL statement.') + is_sql_profile_finding_implemented: bool | None = Field(None, alias='isSqlProfileFindingImplemented', description='Gets the is_sql_profile_finding_implemented of this SqlTuningAdvisorTaskFindingSummary.\nIndicates whether a SQL Profile recommendation has been implemented for this SQL statement.') + is_index_finding_present: bool | None = Field(None, alias='isIndexFindingPresent', description='Gets the is_index_finding_present of this SqlTuningAdvisorTaskFindingSummary.\nIndicates whether an index recommendation was reported for this SQL statement.') + is_restructure_sql_finding_present: bool | None = Field(None, alias='isRestructureSqlFindingPresent', description='Gets the is_restructure_sql_finding_present of this SqlTuningAdvisorTaskFindingSummary.\nIndicates whether a restructure SQL recommendation was reported for this SQL statement.') + is_alternative_plan_finding_present: bool | None = Field(None, alias='isAlternativePlanFindingPresent', description='Gets the is_alternative_plan_finding_present of this SqlTuningAdvisorTaskFindingSummary.\nIndicates whether an alternative execution plan was reported for this SQL statement.') + is_miscellaneous_finding_present: bool | None = Field(None, alias='isMiscellaneousFindingPresent', description='Gets the is_miscellaneous_finding_present of this SqlTuningAdvisorTaskFindingSummary.\nIndicates whether a miscellaneous finding was reported for this SQL statement.') + is_error_finding_present: bool | None = Field(None, alias='isErrorFindingPresent', description='Gets the is_error_finding_present of this SqlTuningAdvisorTaskFindingSummary.\nIndicates whether there is an error in this SQL statement.') + is_timeout_finding_present: bool | None = Field(None, alias='isTimeoutFindingPresent', description='Gets the is_timeout_finding_present of this SqlTuningAdvisorTaskFindingSummary.\nIndicates whether the task timed out.') + + +class SqlTuningAdvisorTaskRecommendationCollection(DbmBaseModel): + """The SQL Tuning Advisor recommendations for a given SQL statement.""" + + items: list[SqlTuningAdvisorTaskRecommendationSummary] = Field(..., description='**[Required]** Gets the items of this SqlTuningAdvisorTaskRecommendationCollection.\nA list of SQL Tuning Advisor recommendations.') + + +class SqlTuningAdvisorTaskRecommendationSummary(DbmBaseModel): + """A recommendation for a given object in a SQL Tuning Task.""" + + sql_tuning_advisor_task_id: int = Field(..., alias='sqlTuningAdvisorTaskId', description='**[Required]** Gets the sql_tuning_advisor_task_id of this SqlTuningAdvisorTaskRecommendationSummary. The unique identifier of the task. This is not the OCID.') + sql_tuning_advisor_task_object_id: int = Field(..., alias='sqlTuningAdvisorTaskObjectId', description='**[Required]** Gets the sql_tuning_advisor_task_object_id of this SqlTuningAdvisorTaskRecommendationSummary. The key of the object to which these recommendations apply. This is not the OCID.') + recommendation_key: int = Field(..., alias='recommendationKey', description='**[Required]** Gets the recommendation_key of this SqlTuningAdvisorTaskRecommendationSummary.\nThe unique identifier of the recommendation in the scope of the task.') + recommendation_type: Literal['STATISTICS', 'INDEX', 'SQL_PROFILE', 'RESTRUCTURE_SQL', 'ALTERNATIVE_PLANS', 'ERROR', 'MISCELLANEOUS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='recommendationType', description='**[Required]** Gets the recommendation_type of this SqlTuningAdvisorTaskRecommendationSummary.\nType of recommendation.\n\nAllowed values for this property are: "STATISTICS", "INDEX", "SQL_PROFILE", "RESTRUCTURE_SQL", "ALTERNATIVE_PLANS", "ERROR", "MISCELLANEOUS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + finding: str | None = Field(None, description='Gets the finding of this SqlTuningAdvisorTaskRecommendationSummary.\nSummary of the issue found in the SQL statement.') + recommendation: str | None = Field(None, description='Gets the recommendation of this SqlTuningAdvisorTaskRecommendationSummary.\nThe recommendation for a specific finding.') + rationale: str | None = Field(None, description='Gets the rationale of this SqlTuningAdvisorTaskRecommendationSummary.\nDescribes the reasoning behind the recommendation and how it relates to the finding.') + benefit: float | None = Field(None, description='Gets the benefit of this SqlTuningAdvisorTaskRecommendationSummary.\nThe percentage benefit of this implementation.') + implement_action_sql: str | None = Field(None, alias='implementActionSql', description='Gets the implement_action_sql of this SqlTuningAdvisorTaskRecommendationSummary.\nAction sql to be implemented based on the recommendation result.') + is_parallel_execution: bool | None = Field(None, alias='isParallelExecution', description='Gets the is_parallel_execution of this SqlTuningAdvisorTaskRecommendationSummary.\nIndicates whether a SQL Profile recommendation uses parallel execution.') + + +class SqlTuningAdvisorTaskSqlExecutionPlan(DbmBaseModel): + """A SQL execution plan.""" + + plan: list[SqlTuningTaskSqlExecutionPlanStep] = Field(..., description='**[Required]** Gets the plan of this SqlTuningAdvisorTaskSqlExecutionPlan.\nA SQL execution plan as a list of steps.') + + +class SqlTuningAdvisorTaskSummary(DbmBaseModel): + """The summary of a SQL Tuning Advisor task.""" + + sql_tuning_advisor_task_id: int = Field(..., alias='sqlTuningAdvisorTaskId', description='**[Required]** Gets the sql_tuning_advisor_task_id of this SqlTuningAdvisorTaskSummary. The unique identifier of the SQL Tuning Advisor task. This is not the OCID.') + instance_id: int | None = Field(None, alias='instanceId', description='Gets the instance_id of this SqlTuningAdvisorTaskSummary. The instance ID of the SQL Tuning Advisor task. This is not the OCID.') + name: str | None = Field(None, description='Gets the name of this SqlTuningAdvisorTaskSummary.\nThe name of the SQL Tuning Advisor task.') + description: str | None = Field(None, description='Gets the description of this SqlTuningAdvisorTaskSummary.\nThe description of the SQL Tuning Advisor task.') + owner: str | None = Field(None, description='Gets the owner of this SqlTuningAdvisorTaskSummary.\nThe owner of the SQL Tuning Advisor task.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this SqlTuningAdvisorTaskSummary.\nThe Creation date of the SQL Tuning Advisor task.') + task_status: Literal['COMPLETED', 'INITIAL', 'EXECUTING', 'INTERRUPTED', 'ERROR', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='taskStatus', description='Gets the task_status of this SqlTuningAdvisorTaskSummary.\nThe status of the SQL Tuning Advisor task.\n\nAllowed values for this property are: "COMPLETED", "INITIAL", "EXECUTING", "INTERRUPTED", "ERROR", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + days_to_expire: int | None = Field(None, alias='daysToExpire', description='Gets the days_to_expire of this SqlTuningAdvisorTaskSummary.\nThe number of days left before the task expires. If the value equals -1, then the task has no expiration time (UNLIMITED).') + time_execution_started: datetime | None = Field(None, alias='timeExecutionStarted', description='Gets the time_execution_started of this SqlTuningAdvisorTaskSummary.\nThe start time of the task execution.') + time_execution_ended: datetime | None = Field(None, alias='timeExecutionEnded', description='Gets the time_execution_ended of this SqlTuningAdvisorTaskSummary.\nThe end time of the task execution.') + total_sql_statements: int | None = Field(None, alias='totalSqlStatements', description='Gets the total_sql_statements of this SqlTuningAdvisorTaskSummary.\nThe total number of SQL statements related to the SQL Tuning Advisor task.') + recommendation_count: int | None = Field(None, ge=0, alias='recommendationCount', description='Gets the recommendation_count of this SqlTuningAdvisorTaskSummary.\nThe number of recommendations provided for the SQL Tuning Advisor task.') + + +class SqlTuningAdvisorTaskSummaryFindingBenefits(DbmBaseModel): + """The benefits of the findings in the SQL Tuning Advisor summary report.""" + + db_time_before_recommended: int = Field(..., alias='dbTimeBeforeRecommended', description='**[Required]** Gets the db_time_before_recommended of this SqlTuningAdvisorTaskSummaryFindingBenefits.\nThe actual database time of the SQL statements for which SQL Tuning Advisor recommendations are not implemented.') + db_time_after_recommended: int = Field(..., alias='dbTimeAfterRecommended', description='**[Required]** Gets the db_time_after_recommended of this SqlTuningAdvisorTaskSummaryFindingBenefits.\nThe estimated database time of the above SQL statements, if SQL Tuning Advisor recommendations are implemented.') + db_time_after_implemented: int = Field(..., alias='dbTimeAfterImplemented', description='**[Required]** Gets the db_time_after_implemented of this SqlTuningAdvisorTaskSummaryFindingBenefits.\nThe actual database time of the SQL statements for which SQL Tuning Advisor recommendations are implemented.') + db_time_before_implemented: int = Field(..., alias='dbTimeBeforeImplemented', description='**[Required]** Gets the db_time_before_implemented of this SqlTuningAdvisorTaskSummaryFindingBenefits.\nThe actual database time of the above SQL statements, before SQL Tuning Advisor recommendations are implemented.') + + +class SqlTuningAdvisorTaskSummaryFindingCounts(DbmBaseModel): + """The number of findings in the SQL Tuning Advisor summary report.""" + + recommended_sql_profile: int = Field(..., alias='recommendedSqlProfile', description='**[Required]** Gets the recommended_sql_profile of this SqlTuningAdvisorTaskSummaryFindingCounts.\nThe number of distinct SQL statements with recommended SQL profiles.') + implemented_sql_profile: int = Field(..., alias='implementedSqlProfile', description='**[Required]** Gets the implemented_sql_profile of this SqlTuningAdvisorTaskSummaryFindingCounts.\nThe number of distinct SQL statements with implemented SQL profiles.') + index: int = Field(..., description='**[Required]** Gets the index of this SqlTuningAdvisorTaskSummaryFindingCounts.\nThe number of distinct SQL statements with index recommendations.') + restructure: int = Field(..., description='**[Required]** Gets the restructure of this SqlTuningAdvisorTaskSummaryFindingCounts.\nThe number of distinct SQL statements with restructured SQL recommendations.') + statistics: int = Field(..., description='**[Required]** Gets the statistics of this SqlTuningAdvisorTaskSummaryFindingCounts.\nThe number of distinct SQL statements with stale or missing optimizer statistics recommendations.') + alternate_plan: int = Field(..., alias='alternatePlan', description='**[Required]** Gets the alternate_plan of this SqlTuningAdvisorTaskSummaryFindingCounts.\nThe number of distinct SQL statements with alternative plan recommendations.') + + +class SqlTuningAdvisorTaskSummaryReport(DbmBaseModel): + """The content of the SQL Tuning Advisor summary report.""" + + task_info: SqlTuningAdvisorTaskSummaryReportTaskInfo = Field(..., alias='taskInfo', description='**[Required]** Gets the task_info of this SqlTuningAdvisorTaskSummaryReport.') + statistics: SqlTuningAdvisorTaskSummaryReportStatistics = Field(..., description='**[Required]** Gets the statistics of this SqlTuningAdvisorTaskSummaryReport.') + object_stat_findings: list[SqlTuningAdvisorTaskSummaryReportObjectStatFindingSummary] | None = Field(None, alias='objectStatFindings', description='Gets the object_stat_findings of this SqlTuningAdvisorTaskSummaryReport.\nThe list of object findings related to statistics.') + index_findings: list[SqlTuningAdvisorTaskSummaryReportIndexFindingSummary] | None = Field(None, alias='indexFindings', description='Gets the index_findings of this SqlTuningAdvisorTaskSummaryReport.\nThe list of object findings related to indexes.') + + +class SqlTuningAdvisorTaskSummaryReportIndexFindingSummary(DbmBaseModel): + """A summary for all the index findings in a SQL Tuning Advisor task. Includes the index's hash value, table name, schema, index name, reference count and index columns""" + + index_hash_value: int = Field(..., alias='indexHashValue', description='**[Required]** Gets the index_hash_value of this SqlTuningAdvisorTaskSummaryReportIndexFindingSummary.\nNumerical representation of the index.') + index_name: str = Field(..., alias='indexName', description='**[Required]** Gets the index_name of this SqlTuningAdvisorTaskSummaryReportIndexFindingSummary.\nName of the index.') + table_name: str = Field(..., alias='tableName', description="**[Required]** Gets the table_name of this SqlTuningAdvisorTaskSummaryReportIndexFindingSummary.\nTable's name related to the index.") + schema_name: str = Field(..., alias='schema', description='**[Required]** Gets the schema of this SqlTuningAdvisorTaskSummaryReportIndexFindingSummary.\nSchema related to the index.') + reference_count: int = Field(..., ge=0, alias='referenceCount', description='**[Required]** Gets the reference_count of this SqlTuningAdvisorTaskSummaryReportIndexFindingSummary.\nThe number of times the index is referenced within the SQL Tuning advisor task findings.') + index_columns: list[str] = Field(..., alias='indexColumns', description='**[Required]** Gets the index_columns of this SqlTuningAdvisorTaskSummaryReportIndexFindingSummary.\nColumns of the index.') + + +class SqlTuningAdvisorTaskSummaryReportObjectStatFindingSummary(DbmBaseModel): + """A summary for all the statistic findings of an object in a SQL Tuning Advisor task. Includes the object's hash, name, type, schema, problem type and the object reference count.""" + + object_hash_value: int = Field(..., alias='objectHashValue', description='**[Required]** Gets the object_hash_value of this SqlTuningAdvisorTaskSummaryReportObjectStatFindingSummary.\nNumerical representation of the object.') + object_name: str = Field(..., alias='objectName', description='**[Required]** Gets the object_name of this SqlTuningAdvisorTaskSummaryReportObjectStatFindingSummary.\nName of the object.') + object_type: str = Field(..., alias='objectType', description='**[Required]** Gets the object_type of this SqlTuningAdvisorTaskSummaryReportObjectStatFindingSummary.\nType of the object.') + schema_name: str = Field(..., alias='schema', description='**[Required]** Gets the schema of this SqlTuningAdvisorTaskSummaryReportObjectStatFindingSummary.\nSchema of the object.') + problem_type: Literal['MISSING', 'STALE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='problemType', description='**[Required]** Gets the problem_type of this SqlTuningAdvisorTaskSummaryReportObjectStatFindingSummary.\nType of statistics problem related to the object.\n\nAllowed values for this property are: "MISSING", "STALE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + reference_count: int = Field(..., ge=0, alias='referenceCount', description='**[Required]** Gets the reference_count of this SqlTuningAdvisorTaskSummaryReportObjectStatFindingSummary.\nThe number of the times the object is referenced within the SQL Tuning advisor task findings.') + + +class SqlTuningAdvisorTaskSummaryReportStatementCounts(DbmBaseModel): + """The number of statements in the SQL Tuning Advisor summary report.""" + + distinct_sql: int = Field(..., alias='distinctSql', description='**[Required]** Gets the distinct_sql of this SqlTuningAdvisorTaskSummaryReportStatementCounts.\nThe number of distinct SQL statements.') + total_sql: int = Field(..., alias='totalSql', description='**[Required]** Gets the total_sql of this SqlTuningAdvisorTaskSummaryReportStatementCounts.\nThe total number of SQL statements.') + finding_count: int = Field(..., ge=0, alias='findingCount', description='**[Required]** Gets the finding_count of this SqlTuningAdvisorTaskSummaryReportStatementCounts.\nThe number of distinct SQL statements with findings.') + error_count: int = Field(..., ge=0, alias='errorCount', description='**[Required]** Gets the error_count of this SqlTuningAdvisorTaskSummaryReportStatementCounts.\nThe number of distinct SQL statements with errors.') + + +class SqlTuningAdvisorTaskSummaryReportStatistics(DbmBaseModel): + """The statistics of the statements and findings in the SQL Tuning Advisor summary report.""" + + statement_counts: SqlTuningAdvisorTaskSummaryReportStatementCounts = Field(..., alias='statementCounts', description='**[Required]** Gets the statement_counts of this SqlTuningAdvisorTaskSummaryReportStatistics.') + finding_counts: SqlTuningAdvisorTaskSummaryFindingCounts = Field(..., alias='findingCounts', description='**[Required]** Gets the finding_counts of this SqlTuningAdvisorTaskSummaryReportStatistics.') + finding_benefits: SqlTuningAdvisorTaskSummaryFindingBenefits = Field(..., alias='findingBenefits', description='**[Required]** Gets the finding_benefits of this SqlTuningAdvisorTaskSummaryReportStatistics.') + + +class SqlTuningAdvisorTaskSummaryReportTaskInfo(DbmBaseModel): + """The general information regarding the SQL Tuning Advisor task.""" + + id: int = Field(..., description='**[Required]** Gets the id of this SqlTuningAdvisorTaskSummaryReportTaskInfo. The ID of the SQL Tuning Advisor task. This is not the OCID.') + name: str = Field(..., description='**[Required]** Gets the name of this SqlTuningAdvisorTaskSummaryReportTaskInfo.\nThe name of the SQL Tuning Advisor task.') + description: str | None = Field(None, description='Gets the description of this SqlTuningAdvisorTaskSummaryReportTaskInfo.\nThe description of the SQL Tuning Advisor task. This is not defined for Auto SQL Tuning tasks.') + owner: str = Field(..., description='**[Required]** Gets the owner of this SqlTuningAdvisorTaskSummaryReportTaskInfo.\nThe owner of the SQL Tuning Advisor task.') + status: Literal['COMPLETED', 'INITIAL', 'EXECUTING', 'INTERRUPTED', 'ERROR', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this SqlTuningAdvisorTaskSummaryReportTaskInfo.\nThe status of the SQL Tuning Advisor task. This is not defined for Auto SQL Tuning tasks.\n\nAllowed values for this property are: "COMPLETED", "INITIAL", "EXECUTING", "INTERRUPTED", "ERROR", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_started: datetime = Field(..., alias='timeStarted', description='**[Required]** Gets the time_started of this SqlTuningAdvisorTaskSummaryReportTaskInfo.\nThe start time of the task execution.') + time_ended: datetime = Field(..., alias='timeEnded', description='**[Required]** Gets the time_ended of this SqlTuningAdvisorTaskSummaryReportTaskInfo.\nThe end time of the task execution.') + running_time: int | None = Field(None, alias='runningTime', description='Gets the running_time of this SqlTuningAdvisorTaskSummaryReportTaskInfo.\nThe total running time in seconds. This is not defined for Auto SQL Tuning tasks.') + + +class SqlTuningSet(DbmBaseModel): + """Details of the Sql tuning set.""" + + id: int | None = Field(None, description='Gets the id of this SqlTuningSet.\nThe unique Sql tuning set identifier.') + owner: str = Field(..., description='**[Required]** Gets the owner of this SqlTuningSet.\nThe owner of the Sql tuning set.') + name: str = Field(..., description='**[Required]** Gets the name of this SqlTuningSet.\nThe name of the Sql tuning set.') + statement_count: int | None = Field(None, ge=0, alias='statementCount', description='Gets the statement_count of this SqlTuningSet.\nNumber of statements in the Sql tuning set') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this SqlTuningSet.\nThe created time of the Sql tuning set.') + description: str | None = Field(None, description='Gets the description of this SqlTuningSet.\nThe description of the Sql tuning set.') + time_last_modified: datetime | None = Field(None, alias='timeLastModified', description='Gets the time_last_modified of this SqlTuningSet.\nLast modified time of the Sql tuning set.') + status: Literal['DISABLED', 'RETRY_SCHEDULED', 'SCHEDULED', 'BLOCKED', 'RUNNING', 'COMPLETED', 'BROKEN', 'FAILED', 'REMOTE', 'RESOURCE_UNAVAILABLE', 'SUCCEEDED', 'CHAIN_STALLED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this SqlTuningSet.\nCurrent status of the Sql tuning set.\n\nAllowed values for this property are: "DISABLED", "RETRY_SCHEDULED", "SCHEDULED", "BLOCKED", "RUNNING", "COMPLETED", "BROKEN", "FAILED", "REMOTE", "RESOURCE_UNAVAILABLE", "SUCCEEDED", "CHAIN_STALLED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + scheduled_job_name: str | None = Field(None, alias='scheduledJobName', description='Gets the scheduled_job_name of this SqlTuningSet.\nName of the Sql tuning set scheduler job.') + error_message: str | None = Field(None, alias='errorMessage', description='Gets the error_message of this SqlTuningSet.\nLatest execution error of the plsql that was submitted as a scheduler job.') + all_sql_statements_fetched: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='allSqlStatementsFetched', description='Gets the all_sql_statements_fetched of this SqlTuningSet.\nIn OCI database management, there is a limit to fetch only 2000 rows.\nThis flag indicates whether all Sql statements of this Sql tuning set matching the filter criteria are fetched or not.\nPossible values are \'Yes\' or \'No\'\n - Yes - All Sql statements matching the filter criteria are fetched.\n - No - There are more Sql statements matching the fitler criteria.\n User should fine tune the filter criteria to narrow down the result set.\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + sql_list: list[SqlInSqlTuningSet] | None = Field(None, alias='sqlList', description='Gets the sql_list of this SqlTuningSet.\nA list of the Sqls associated with the Sql tuning set.') + + +class SqlTuningSetAdminActionStatus(DbmBaseModel): + """The status of a Sql tuning set admin action.""" + + status: Literal['SUCCEEDED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the status of this SqlTuningSetAdminActionStatus.\nThe status of a Sql tuning set admin action.\n\nAllowed values for this property are: "SUCCEEDED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + success_message: str | None = Field(None, alias='successMessage', description='Gets the success_message of this SqlTuningSetAdminActionStatus.\nThe success message of the Sql tuning set admin action. The success message is "null" if the admin action is non successful.') + error_code: int | None = Field(None, ge=0, alias='errorCode', description='Gets the error_code of this SqlTuningSetAdminActionStatus.\nThe error code that denotes failure if the Sql tuning set admin action is not successful. The error code is "null" if the admin action is successful.') + error_message: str | None = Field(None, alias='errorMessage', description='Gets the error_message of this SqlTuningSetAdminActionStatus.\nThe error message that indicates the reason for failure if the Sql tuning set admin action is not successful. The error message is "null" if the admin action is successful.') + show_sql_only: int | None = Field(None, alias='showSqlOnly', description='Gets the show_sql_only of this SqlTuningSetAdminActionStatus.\nFlag to indicate whether to create the Sql tuning set or just display the plsql used for the selected user action.') + sql_statement: str | None = Field(None, alias='sqlStatement', description='Gets the sql_statement of this SqlTuningSetAdminActionStatus.\nWhen showSqlOnly is set to 1, this attribute displays the plsql generated for the selected user action.\nWhen showSqlOnly is set to 0, this attribute will not be returned.') + + +class SqlTuningSetAdminCredentialDetails(DbmRequestModel): + """The credential to connect to the database to perform Sql tuning set administration tasks.""" + + sql_tuning_set_admin_credential_type: Literal['SECRET', 'PASSWORD'] = Field(..., alias='sqlTuningSetAdminCredentialType', description='**[Required]** Gets the sql_tuning_set_admin_credential_type of this SqlTuningSetAdminCredentialDetails.\nThe type of the credential for Sql tuning set administration tasks.\n\nAllowed values for this property are: "SECRET", "PASSWORD"') + username: str = Field(..., description='**[Required]** Gets the username of this SqlTuningSetAdminCredentialDetails.\nThe user to connect to the database.') + role: Literal['NORMAL', 'SYSDBA'] = Field(..., description='**[Required]** Gets the role of this SqlTuningSetAdminCredentialDetails.\nThe role of the database user.\n\nAllowed values for this property are: "NORMAL", "SYSDBA"') + + +class SqlTuningSetAdminPasswordCredentialDetails(DbmRequestModel): + """User provides a password to be used to connect to the database.""" + + sql_tuning_set_admin_credential_type: Literal['SECRET', 'PASSWORD'] = Field(..., alias='sqlTuningSetAdminCredentialType', description='**[Required]** Gets the sql_tuning_set_admin_credential_type of this SqlTuningSetAdminCredentialDetails.\nThe type of the credential for Sql tuning set administration tasks.\n\nAllowed values for this property are: "SECRET", "PASSWORD"') + username: str = Field(..., description='**[Required]** Gets the username of this SqlTuningSetAdminCredentialDetails.\nThe user to connect to the database.') + role: Literal['NORMAL', 'SYSDBA'] = Field(..., description='**[Required]** Gets the role of this SqlTuningSetAdminCredentialDetails.\nThe role of the database user.\n\nAllowed values for this property are: "NORMAL", "SYSDBA"') + password: str = Field(..., description="**[Required]** Gets the password of this SqlTuningSetAdminPasswordCredentialDetails.\nThe database user's password encoded using BASE64 scheme.") + + +class SqlTuningSetAdminSecretCredentialDetails(DbmRequestModel): + """User provides a secret OCID, which will be used to retrieve the password to connect to the database.""" + + sql_tuning_set_admin_credential_type: Literal['SECRET', 'PASSWORD'] = Field(..., alias='sqlTuningSetAdminCredentialType', description='**[Required]** Gets the sql_tuning_set_admin_credential_type of this SqlTuningSetAdminCredentialDetails.\nThe type of the credential for Sql tuning set administration tasks.\n\nAllowed values for this property are: "SECRET", "PASSWORD"') + username: str = Field(..., description='**[Required]** Gets the username of this SqlTuningSetAdminCredentialDetails.\nThe user to connect to the database.') + role: Literal['NORMAL', 'SYSDBA'] = Field(..., description='**[Required]** Gets the role of this SqlTuningSetAdminCredentialDetails.\nThe role of the database user.\n\nAllowed values for this property are: "NORMAL", "SYSDBA"') + secret_id: str = Field(..., alias='secretId', description='**[Required]** Gets the secret_id of this SqlTuningSetAdminSecretCredentialDetails. The OCID of the Secret where the database password is stored.') + + +class SqlTuningSetCollection(DbmBaseModel): + """The details in the SQL tuning set summary.""" + + managed_database_id: str = Field(..., alias='managedDatabaseId', description='**[Required]** Gets the managed_database_id of this SqlTuningSetCollection. The OCID of the Managed Database.') + items: list[SqlTuningSetSummary] = Field(..., description='**[Required]** Gets the items of this SqlTuningSetCollection.\nThe details in the SQL tuning set summary.') + + +class SqlTuningSetInput(DbmBaseModel): + """The SQL tuning set for a SQL tuning task.""" + + name: str = Field(..., description='**[Required]** Gets the name of this SqlTuningSetInput.\nThe name of the SQL tuning set.') + owner: str = Field(..., description='**[Required]** Gets the owner of this SqlTuningSetInput.\nThe owner of the SQL tuning set.') + + +class SqlTuningSetSummary(DbmBaseModel): + """The summary information of a SQL tuning set.""" + + name: str = Field(..., description='**[Required]** Gets the name of this SqlTuningSetSummary.\nThe name of the SQL tuning set.') + owner: str = Field(..., description='**[Required]** Gets the owner of this SqlTuningSetSummary.\nThe owner of the SQL tuning set.') + description: str | None = Field(None, description='Gets the description of this SqlTuningSetSummary.\nThe description of the SQL tuning set.') + statement_counts: int | None = Field(None, alias='statementCounts', description='Gets the statement_counts of this SqlTuningSetSummary.\nThe number of SQL statements in the SQL tuning set.') + id: int | None = Field(None, description='Gets the id of this SqlTuningSetSummary.\nThe unique Sql tuning set identifier. This is not OCID.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this SqlTuningSetSummary.\nThe created time of the Sql tuning set.') + time_last_modified: datetime | None = Field(None, alias='timeLastModified', description='Gets the time_last_modified of this SqlTuningSetSummary.\nLast modified time of the Sql tuning set.') + status: Literal['DISABLED', 'RETRY_SCHEDULED', 'SCHEDULED', 'BLOCKED', 'RUNNING', 'COMPLETED', 'BROKEN', 'FAILED', 'REMOTE', 'RESOURCE_UNAVAILABLE', 'SUCCEEDED', 'CHAIN_STALLED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this SqlTuningSetSummary.\nCurrent status of the Sql tuning set.\n\nAllowed values for this property are: "DISABLED", "RETRY_SCHEDULED", "SCHEDULED", "BLOCKED", "RUNNING", "COMPLETED", "BROKEN", "FAILED", "REMOTE", "RESOURCE_UNAVAILABLE", "SUCCEEDED", "CHAIN_STALLED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + scheduled_job_name: str | None = Field(None, alias='scheduledJobName', description='Gets the scheduled_job_name of this SqlTuningSetSummary.\nName of the Sql tuning set scheduler job.') + error_message: str | None = Field(None, alias='errorMessage', description='Gets the error_message of this SqlTuningSetSummary.\nLatest execution error of the plsql that was submitted as a scheduler job.') + + +class SqlTuningTaskCredentialDetails(DbmRequestModel): + """The credential used to connect to the database.""" + + sql_tuning_task_credential_type: Literal['SECRET', 'PASSWORD'] = Field(..., alias='sqlTuningTaskCredentialType', description='**[Required]** Gets the sql_tuning_task_credential_type of this SqlTuningTaskCredentialDetails.\nThe type of credential for the SQL tuning task.\n\nAllowed values for this property are: "SECRET", "PASSWORD"') + username: str = Field(..., description='**[Required]** Gets the username of this SqlTuningTaskCredentialDetails.\nThe user name used to connect to the database.') + role: Literal['NORMAL', 'SYSDBA'] = Field(..., description='**[Required]** Gets the role of this SqlTuningTaskCredentialDetails.\nThe role of the database user.\n\nAllowed values for this property are: "NORMAL", "SYSDBA"') + + +class SqlTuningTaskPasswordCredentialDetails(DbmRequestModel): + """The password provided by the user to connect to the database.""" + + sql_tuning_task_credential_type: Literal['SECRET', 'PASSWORD'] = Field(..., alias='sqlTuningTaskCredentialType', description='**[Required]** Gets the sql_tuning_task_credential_type of this SqlTuningTaskCredentialDetails.\nThe type of credential for the SQL tuning task.\n\nAllowed values for this property are: "SECRET", "PASSWORD"') + username: str = Field(..., description='**[Required]** Gets the username of this SqlTuningTaskCredentialDetails.\nThe user name used to connect to the database.') + role: Literal['NORMAL', 'SYSDBA'] = Field(..., description='**[Required]** Gets the role of this SqlTuningTaskCredentialDetails.\nThe role of the database user.\n\nAllowed values for this property are: "NORMAL", "SYSDBA"') + password: str = Field(..., description="**[Required]** Gets the password of this SqlTuningTaskPasswordCredentialDetails.\nThe database user's password encoded using BASE64 scheme.") + + +class SqlTuningTaskPlanStats(DbmBaseModel): + """The statistics of a SQL execution plan.""" + + plan_type: str = Field(..., alias='planType', description='**[Required]** Gets the plan_type of this SqlTuningTaskPlanStats.\nThe type of the original or modified plan with profile, index, and so on.') + plan_stats: dict[str, float] = Field(..., alias='planStats', description="**[Required]** Gets the plan_stats of this SqlTuningTaskPlanStats.\nA map contains the statistics for the SQL execution using the plan.\nThe key of the map is the metric's name. The value of the map is the metric's value.") + plan_status: Literal['COMPLETE', 'PARTIAL', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='planStatus', description='**[Required]** Gets the plan_status of this SqlTuningTaskPlanStats.\nThe status of the execution using the plan.\n\nAllowed values for this property are: "COMPLETE", "PARTIAL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class SqlTuningTaskReturn(DbmBaseModel): + """The returned object for starting or cloning a SQL tuning advisor task.""" + + sql_tuning_task_id: int = Field(..., alias='sqlTuningTaskId', description='**[Required]** Gets the sql_tuning_task_id of this SqlTuningTaskReturn. Identifier of the SQL tuning task being started or cloned. This value is not an OCID; use the identifier returned by SQL tuning task list, start, or clone operations.') + + +class SqlTuningTaskSecretCredentialDetails(DbmRequestModel): + """The OCID of the Secret provided by the user to retrieve the password to connect to the database.""" + + sql_tuning_task_credential_type: Literal['SECRET', 'PASSWORD'] = Field(..., alias='sqlTuningTaskCredentialType', description='**[Required]** Gets the sql_tuning_task_credential_type of this SqlTuningTaskCredentialDetails.\nThe type of credential for the SQL tuning task.\n\nAllowed values for this property are: "SECRET", "PASSWORD"') + username: str = Field(..., description='**[Required]** Gets the username of this SqlTuningTaskCredentialDetails.\nThe user name used to connect to the database.') + role: Literal['NORMAL', 'SYSDBA'] = Field(..., description='**[Required]** Gets the role of this SqlTuningTaskCredentialDetails.\nThe role of the database user.\n\nAllowed values for this property are: "NORMAL", "SYSDBA"') + password_secret_id: str = Field(..., alias='passwordSecretId', description='**[Required]** Gets the password_secret_id of this SqlTuningTaskSecretCredentialDetails. The OCID of the Secret where the database password is stored.') + + +class SqlTuningTaskSqlDetail(DbmBaseModel): + """The details of the SQL statements on which SQL tuning is performed.""" + + sql_id: str = Field(..., alias='sqlId', description='**[Required]** Gets the sql_id of this SqlTuningTaskSqlDetail.\nThe identifier of a SQL statement.') + + +class SqlTuningTaskSqlExecutionPlanStep(DbmBaseModel): + """A step in the SQL execution plan.""" + + plan_hash_value: int | None = Field(None, alias='planHashValue', description='Gets the plan_hash_value of this SqlTuningTaskSqlExecutionPlanStep.\nThe numerical representation of the SQL execution plan.') + step_id: int | None = Field(None, alias='stepId', description='Gets the step_id of this SqlTuningTaskSqlExecutionPlanStep. The identification number of a step in the SQL execution plan. This is unique within the SQL execution plan. This is not the OCID.') + parent_step_id: int | None = Field(None, alias='parentStepId', description='Gets the parent_step_id of this SqlTuningTaskSqlExecutionPlanStep. The ID of the next step that operates on the results of this step. This is not the OCID.') + position: int | None = Field(None, description='Gets the position of this SqlTuningTaskSqlExecutionPlanStep.\nThe order of processing for steps with the same parent ID.') + operation: str | None = Field(None, description='Gets the operation of this SqlTuningTaskSqlExecutionPlanStep.\nThe name of the operation performed at this step.') + options: str | None = Field(None, description='Gets the options of this SqlTuningTaskSqlExecutionPlanStep.\nThe options used for the operation performed at this step.') + optimizer_mode: str | None = Field(None, alias='optimizerMode', description='Gets the optimizer_mode of this SqlTuningTaskSqlExecutionPlanStep.\nThe current mode of the optimizer, such as all_rows, first_rows_n (where n = 1, 10, 100, 1000, and so on).') + cost: float | None = Field(None, description='Gets the cost of this SqlTuningTaskSqlExecutionPlanStep.\nThe cost of the current operation estimated by the cost-based optimizer (CBO).') + cardinality: int | None = Field(None, description='Gets the cardinality of this SqlTuningTaskSqlExecutionPlanStep.\nThe number of rows returned by the current operation (estimated by the CBO).') + bytes: int | None = Field(None, description='Gets the bytes of this SqlTuningTaskSqlExecutionPlanStep.\nThe number of bytes returned by the current operation.') + cpu_cost: float | None = Field(None, alias='cpuCost', description='Gets the cpu_cost of this SqlTuningTaskSqlExecutionPlanStep.\nThe CPU cost of the current operation.') + io_cost: float | None = Field(None, alias='ioCost', description='Gets the io_cost of this SqlTuningTaskSqlExecutionPlanStep.\nThe I/O cost of the current operation.') + temp_space: int | None = Field(None, alias='tempSpace', description='Gets the temp_space of this SqlTuningTaskSqlExecutionPlanStep.\nThe temporary space usage (in bytes) of the operation (sort or hash-join) as estimated by the CBO.') + time: int | None = Field(None, description='Gets the time of this SqlTuningTaskSqlExecutionPlanStep.\nThe elapsed time (in seconds) of the operation as estimated by the CBO.') + object_node: str | None = Field(None, alias='objectNode', description='Gets the object_node of this SqlTuningTaskSqlExecutionPlanStep.\nThe name of the database link used to reference the object.') + object_owner: str | None = Field(None, alias='objectOwner', description='Gets the object_owner of this SqlTuningTaskSqlExecutionPlanStep.\nThe owner of the object.') + object_name: str | None = Field(None, alias='objectName', description='Gets the object_name of this SqlTuningTaskSqlExecutionPlanStep.\nThe name of the object.') + object_position: int | None = Field(None, alias='objectPosition', description='Gets the object_position of this SqlTuningTaskSqlExecutionPlanStep.\nThe numbered position of the object name in the original SQL statement.') + object_type: str | None = Field(None, alias='objectType', description='Gets the object_type of this SqlTuningTaskSqlExecutionPlanStep.\nThe descriptive modifier that further describes the type of object.') + partition_start: str | None = Field(None, alias='partitionStart', description='Gets the partition_start of this SqlTuningTaskSqlExecutionPlanStep.\nA step may get data from a range of partitions of a partitioned object, such as table or index,\nbased on predicates and sorting order. The partionStart is the starting partition of the range.\nThe partitionStop is the ending partition of the range.') + partition_stop: str | None = Field(None, alias='partitionStop', description='Gets the partition_stop of this SqlTuningTaskSqlExecutionPlanStep.\nA step may get data from a range of partitions of a partitioned object, such as table or index,\nbased on predicates and sorting order. The partionStart is the starting partition of the range.\nThe partitionStop is the ending partition of the range.') + partition_id: int | None = Field(None, alias='partitionId', description='Gets the partition_id of this SqlTuningTaskSqlExecutionPlanStep.\nThe ID of the step in the execution plan that has computed the pair of values of partitionStart and partitionStop.') + remarks: str | None = Field(None, description='Gets the remarks of this SqlTuningTaskSqlExecutionPlanStep.\nThe place for comments that can be added to the steps of the execution plan.') + number_of_search_column: int | None = Field(None, alias='numberOfSearchColumn', description='Gets the number_of_search_column of this SqlTuningTaskSqlExecutionPlanStep.\nNumber of index columns with start and stop keys (that is, the number of columns with matching predicates).') + other: str | None = Field(None, description='Gets the other of this SqlTuningTaskSqlExecutionPlanStep.\nInformation about parallel execution servers and parallel queries') + other_tag: str | None = Field(None, alias='otherTag', description='Gets the other_tag of this SqlTuningTaskSqlExecutionPlanStep.\nDescribes the function of the SQL text in the OTHER column.') + attribute: str | None = Field(None, description='Gets the attribute of this SqlTuningTaskSqlExecutionPlanStep.\nThe text string identifying the type of execution plan.') + access_predicates: str | None = Field(None, alias='accessPredicates', description='Gets the access_predicates of this SqlTuningTaskSqlExecutionPlanStep.\nThe predicates used to locate rows in an access structure. For example,\nstart or stop predicates for an index range scan.') + filter_predicates: str | None = Field(None, alias='filterPredicates', description='Gets the filter_predicates of this SqlTuningTaskSqlExecutionPlanStep.\nThe predicates used to filter rows before producing them.') + + +class StandByDatabaseDataguardMetrics(DbmBaseModel): + """The standby database details.""" + + db_id: str = Field(..., alias='dbId', description='**[Required]** Gets the db_id of this StandByDatabaseDataguardMetrics. The OCID of the Managed Database.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this StandByDatabaseDataguardMetrics. The OCID of the compartment where the Managed Database resides.') + database_id: str | None = Field(None, alias='databaseId', description='Gets the database_id of this StandByDatabaseDataguardMetrics.\nThe database ID of the Managed Database. Every database had its own ID and that value is captured here.') + database_name: str = Field(..., alias='databaseName', description='**[Required]** Gets the database_name of this StandByDatabaseDataguardMetrics.\nThe display name of the Managed Database.') + db_unique_name: str | None = Field(None, alias='dbUniqueName', description='Gets the db_unique_name of this StandByDatabaseDataguardMetrics.\nThe database unique name of the Managed Database.') + db_role: Literal['SNAPSHOT_STANDBY', 'LOGICAL_STANDBY', 'PHYSICAL_STANDBY', 'PRIMARY', 'FAR_SYNC', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dbRole', description='**[Required]** Gets the db_role of this StandByDatabaseDataguardMetrics.\nThe database role of the Managed Database.\n\nAllowed values for this property are: "SNAPSHOT_STANDBY", "LOGICAL_STANDBY", "PHYSICAL_STANDBY", "PRIMARY", "FAR_SYNC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + metrics: list[HaMetricDefinition] = Field(..., description='**[Required]** Gets the metrics of this StandByDatabaseDataguardMetrics.\nA list of standby databases with latest values for metrics such as ApplyLag, TransportLag, and RedoApplyRate.') + + +class StartSqlTuningTaskDetails(DbmRequestModel): + """The request to start a SQL tuning task. +It takes either credentialDetails or databaseCredential. It's recommended to provide databaseCredential""" + + task_name: str = Field(..., alias='taskName', description='**[Required]** Gets the task_name of this StartSqlTuningTaskDetails.\nThe name of the SQL tuning task. The name is unique per user in a database, and it is case-sensitive.') + task_description: str | None = Field(None, alias='taskDescription', description='Gets the task_description of this StartSqlTuningTaskDetails.\nThe description of the SQL tuning task.') + credential_details: SqlTuningTaskCredentialDetails | None = Field(None, alias='credentialDetails', description='Gets the credential_details of this StartSqlTuningTaskDetails.') + database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this StartSqlTuningTaskDetails.') + total_time_limit_in_minutes: int = Field(..., alias='totalTimeLimitInMinutes', description='**[Required]** Gets the total_time_limit_in_minutes of this StartSqlTuningTaskDetails.\nThe time limit for running the SQL tuning task.') + scope: Literal['LIMITED', 'COMPREHENSIVE'] = Field(..., description='**[Required]** Gets the scope of this StartSqlTuningTaskDetails.\nThe scope for the SQL tuning task. For LIMITED scope, the SQL profile recommendation\nis excluded, so the task is executed faster. For COMPREHENSIVE scope, the SQL profile recommendation\nis included.\n\nAllowed values for this property are: "LIMITED", "COMPREHENSIVE"') + statement_time_limit_in_minutes: int | None = Field(None, alias='statementTimeLimitInMinutes', description='Gets the statement_time_limit_in_minutes of this StartSqlTuningTaskDetails.\nThe time limit per SQL statement (in minutes). This is for a task with the COMPREHENSIVE scope.\nThe time limit per SQL statement should not be more than the total time limit.') + sql_tuning_set: SqlTuningSetInput | None = Field(None, alias='sqlTuningSet', description='Gets the sql_tuning_set of this StartSqlTuningTaskDetails.') + sql_details: list[SqlTuningTaskSqlDetail] | None = Field(None, alias='sqlDetails', description='Gets the sql_details of this StartSqlTuningTaskDetails.\nThe details of the SQL statement on which tuning is performed.\nTo obtain the details of the SQL statement, you must provide either the sqlTuningSet\nor the tuple of sqlDetails/timeStarted/timeEnded.') + time_started: datetime | None = Field(None, alias='timeStarted', description='Gets the time_started of this StartSqlTuningTaskDetails.\nThe start time of the period in which SQL statements are running.') + time_ended: datetime | None = Field(None, alias='timeEnded', description='Gets the time_ended of this StartSqlTuningTaskDetails.\nThe end time of the period in which SQL statements are running.') + + +class StatementsAggregateMetrics(DbmBaseModel): + """The queued and running statement metrics for Autonomous Databases.""" + + queued_statements: MetricDataPoint | None = Field(None, alias='queuedStatements', description='Gets the queued_statements of this StatementsAggregateMetrics.') + running_statements: MetricDataPoint | None = Field(None, alias='runningStatements', description='Gets the running_statements of this StatementsAggregateMetrics.') + + +class StorageGridDiscoverySummary(DbmBaseModel): + """The summary of the Exadata storage server grid discovery.""" + + id: str | None = Field(None, description='Gets the id of this EntityDiscovered. The OCID of the entity discovered.') + agent_id: str | None = Field(None, alias='agentId', description='Gets the agent_id of this EntityDiscovered. The OCID of the agent used for monitoring.') + connector_id: str | None = Field(None, alias='connectorId', description='Gets the connector_id of this EntityDiscovered. The OCID of the associated connector.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this EntityDiscovered.\nThe name of the entity.') + version: str | None = Field(None, description='Gets the version of this EntityDiscovered.\nThe version of the entity.') + internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this EntityDiscovered.\nThe internal identifier of the entity.') + status: str | None = Field(None, description='Gets the status of this EntityDiscovered.\nThe status of the entity.') + discover_status: Literal['PREV_DISCOVERED', 'NEW_DISCOVERED', 'NOT_FOUND', 'DISCOVERING', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='discoverStatus', description='Gets the discover_status of this EntityDiscovered.\nThe status of the entity discovery.\n\nAllowed values for this property are: "PREV_DISCOVERED", "NEW_DISCOVERED", "NOT_FOUND", "DISCOVERING", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + discover_error_code: str | None = Field(None, alias='discoverErrorCode', description='Gets the discover_error_code of this EntityDiscovered.\nThe error code of the discovery.') + discover_error_msg: str | None = Field(None, alias='discoverErrorMsg', description='Gets the discover_error_msg of this EntityDiscovered.\nThe error message of the discovery.') + entity_type: Literal['STORAGE_SERVER_DISCOVER_SUMMARY', 'STORAGE_GRID_DISCOVER_SUMMARY', 'DATABASE_SYSTEM_DISCOVER_SUMMARY', 'INFRASTRUCTURE_DISCOVER_SUMMARY', 'INFRASTRUCTURE_DISCOVER', 'MANAGED_STORAGE_SERVER_DISCOVER_SUMMARY', 'MANAGED_STORAGE_GRID_DISCOVER_SUMMARY', 'VM_CLUSTER_DISCOVER_SUMMARY', 'MANAGED_INFRASTRUCTURE_DISCOVER_SUMMARY', 'CLOUD_INFRASTRUCTURE_DISCOVER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entityType', description='**[Required]** Gets the entity_type of this EntityDiscovered.\nThe type of discovered entities.\n\nAllowed values for this property are: "STORAGE_SERVER_DISCOVER_SUMMARY", "STORAGE_GRID_DISCOVER_SUMMARY", "DATABASE_SYSTEM_DISCOVER_SUMMARY", "INFRASTRUCTURE_DISCOVER_SUMMARY", "INFRASTRUCTURE_DISCOVER", "MANAGED_STORAGE_SERVER_DISCOVER_SUMMARY", "MANAGED_STORAGE_GRID_DISCOVER_SUMMARY", "VM_CLUSTER_DISCOVER_SUMMARY", "MANAGED_INFRASTRUCTURE_DISCOVER_SUMMARY", "CLOUD_INFRASTRUCTURE_DISCOVER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + count_of_storage_servers_discovered: int | None = Field(None, alias='countOfStorageServersDiscovered', description='Gets the count_of_storage_servers_discovered of this StorageGridDiscoverySummary.\nThe total number of Exadata storage servers discovered.') + + +class StorageServerDiscoverySummary(DbmBaseModel): + """The summary of the Exadata storage server discovery.""" + + id: str | None = Field(None, description='Gets the id of this EntityDiscovered. The OCID of the entity discovered.') + agent_id: str | None = Field(None, alias='agentId', description='Gets the agent_id of this EntityDiscovered. The OCID of the agent used for monitoring.') + connector_id: str | None = Field(None, alias='connectorId', description='Gets the connector_id of this EntityDiscovered. The OCID of the associated connector.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this EntityDiscovered.\nThe name of the entity.') + version: str | None = Field(None, description='Gets the version of this EntityDiscovered.\nThe version of the entity.') + internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this EntityDiscovered.\nThe internal identifier of the entity.') + status: str | None = Field(None, description='Gets the status of this EntityDiscovered.\nThe status of the entity.') + discover_status: Literal['PREV_DISCOVERED', 'NEW_DISCOVERED', 'NOT_FOUND', 'DISCOVERING', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='discoverStatus', description='Gets the discover_status of this EntityDiscovered.\nThe status of the entity discovery.\n\nAllowed values for this property are: "PREV_DISCOVERED", "NEW_DISCOVERED", "NOT_FOUND", "DISCOVERING", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + discover_error_code: str | None = Field(None, alias='discoverErrorCode', description='Gets the discover_error_code of this EntityDiscovered.\nThe error code of the discovery.') + discover_error_msg: str | None = Field(None, alias='discoverErrorMsg', description='Gets the discover_error_msg of this EntityDiscovered.\nThe error message of the discovery.') + entity_type: Literal['STORAGE_SERVER_DISCOVER_SUMMARY', 'STORAGE_GRID_DISCOVER_SUMMARY', 'DATABASE_SYSTEM_DISCOVER_SUMMARY', 'INFRASTRUCTURE_DISCOVER_SUMMARY', 'INFRASTRUCTURE_DISCOVER', 'MANAGED_STORAGE_SERVER_DISCOVER_SUMMARY', 'MANAGED_STORAGE_GRID_DISCOVER_SUMMARY', 'VM_CLUSTER_DISCOVER_SUMMARY', 'MANAGED_INFRASTRUCTURE_DISCOVER_SUMMARY', 'CLOUD_INFRASTRUCTURE_DISCOVER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entityType', description='**[Required]** Gets the entity_type of this EntityDiscovered.\nThe type of discovered entities.\n\nAllowed values for this property are: "STORAGE_SERVER_DISCOVER_SUMMARY", "STORAGE_GRID_DISCOVER_SUMMARY", "DATABASE_SYSTEM_DISCOVER_SUMMARY", "INFRASTRUCTURE_DISCOVER_SUMMARY", "INFRASTRUCTURE_DISCOVER", "MANAGED_STORAGE_SERVER_DISCOVER_SUMMARY", "MANAGED_STORAGE_GRID_DISCOVER_SUMMARY", "VM_CLUSTER_DISCOVER_SUMMARY", "MANAGED_INFRASTRUCTURE_DISCOVER_SUMMARY", "CLOUD_INFRASTRUCTURE_DISCOVER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + ip_address: str | None = Field(None, alias='ipAddress', description='Gets the ip_address of this StorageServerDiscoverySummary.\nThe IP address of the Exadata storage server.') + make_model: str | None = Field(None, alias='makeModel', description='Gets the make_model of this StorageServerDiscoverySummary.\nThe make model of the Exadata storage server.') + cpu_count: int | None = Field(None, ge=0, alias='cpuCount', description='Gets the cpu_count of this StorageServerDiscoverySummary.\nThe CPU count of the Exadata storage server.') + memory_gb: float | None = Field(None, alias='memoryGB', description='Gets the memory_gb of this StorageServerDiscoverySummary.\nThe memory size in GB of the Exadata storage server.') + connector_name: str | None = Field(None, alias='connectorName', description='Gets the connector_name of this StorageServerDiscoverySummary.\nThe name of the Exadata storage server connector in case of rediscovery.') + + +class SystemPrivilegeCollection(DbmBaseModel): + """A collection of system privileges granted to the current user.""" + + items: list[SystemPrivilegeSummary] = Field(..., description='**[Required]** Gets the items of this SystemPrivilegeCollection.\nAn array of system privileges.') + + +class SystemPrivilegeSummary(DbmBaseModel): + """A Summary of system privileges.""" + + name: str | None = Field(None, description='Gets the name of this SystemPrivilegeSummary.\nThe name of a system privilege.') + admin_option: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='adminOption', description='Gets the admin_option of this SystemPrivilegeSummary.\nIndicates whether the system privilege is granted with the ADMIN option (YES) or not (NO).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + common: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the common of this SystemPrivilegeSummary.\nIndicates how the system privilege was granted. Possible values:\nYES if the system privilege is granted commonly (CONTAINER=ALL is used)\nNO if the system privilege is granted locally (CONTAINER=ALL is not used)\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + inherited: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the inherited of this SystemPrivilegeSummary.\nIndicates whether the granted system privilege is inherited from another container (YES) or not (NO).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class TableStatisticSummary(DbmBaseModel): + """The summary of table statistics statuses, which includes status categories such as Stale, Not Stale, and No Stats, +the number of table statistics grouped by status category, and the percentage of objects with a particular status.""" + + type: Literal['NO_STATS', 'STALE', 'NOT_STALE', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the type of this TableStatisticSummary.\nThe valid status categories of table statistics.\n\nAllowed values for this property are: "NO_STATS", "STALE", "NOT_STALE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + count: int = Field(..., ge=0, description='**[Required]** Gets the count of this TableStatisticSummary.\nThe number of objects aggregated by status category.') + percentage: float = Field(..., description='**[Required]** Gets the percentage of this TableStatisticSummary.\nThe percentage of objects with a particular status.') + + +class TableStatisticsCollection(DbmBaseModel): + """A collection of table statistics, which are grouped by status.""" + + items: list[TableStatisticSummary] = Field(..., description='**[Required]** Gets the items of this TableStatisticsCollection.\nThe list of table statistics statuses.') + + +class Tablespace(DbmBaseModel): + """The details of a tablespace.""" + + name: str = Field(..., description='**[Required]** Gets the name of this Tablespace.\nThe name of the tablespace.') + type: Literal['UNDO', 'LOST_WRITE_PROTECTION', 'PERMANENT', 'TEMPORARY', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the type of this Tablespace.\nThe type of tablespace.\n\nAllowed values for this property are: "UNDO", "LOST_WRITE_PROTECTION", "PERMANENT", "TEMPORARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + status: Literal['ONLINE', 'OFFLINE', 'READ_ONLY', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this Tablespace.\nThe status of the tablespace.\n\nAllowed values for this property are: "ONLINE", "OFFLINE", "READ_ONLY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + block_size_bytes: float | None = Field(None, alias='blockSizeBytes', description='Gets the block_size_bytes of this Tablespace.\nThe tablespace block size.') + logging: Literal['LOGGING', 'NOLOGGING', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the logging of this Tablespace.\nThe default logging attribute.\n\nAllowed values for this property are: "LOGGING", "NOLOGGING", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + is_force_logging: bool | None = Field(None, alias='isForceLogging', description='Gets the is_force_logging of this Tablespace.\nIndicates whether the tablespace is under Force Logging mode.') + extent_management: Literal['LOCAL', 'DICTIONARY', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='extentManagement', description='Gets the extent_management of this Tablespace.\nIndicates whether the extents in the tablespace are Locally managed or Dictionary managed.\n\nAllowed values for this property are: "LOCAL", "DICTIONARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + allocation_type: Literal['SYSTEM', 'UNIFORM', 'USER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='allocationType', description='Gets the allocation_type of this Tablespace.\nThe type of extent allocation in effect for the tablespace.\n\nAllowed values for this property are: "SYSTEM", "UNIFORM", "USER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + is_plugged_in: bool | None = Field(None, alias='isPluggedIn', description='Gets the is_plugged_in of this Tablespace.\nIndicates whether the tablespace is plugged in.') + segment_space_management: Literal['MANUAL', 'AUTO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='segmentSpaceManagement', description='Gets the segment_space_management of this Tablespace.\nIndicates whether the free and used segment space in the tablespace is managed using free lists (MANUAL) or bitmaps (AUTO).\n\nAllowed values for this property are: "MANUAL", "AUTO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + default_table_compression: Literal['ENABLED', 'DISABLED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='defaultTableCompression', description='Gets the default_table_compression of this Tablespace.\nIndicates whether default table compression is enabled or disabled.\n\nAllowed values for this property are: "ENABLED", "DISABLED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + retention: Literal['GUARANTEE', 'NOGUARANTEE', 'NOT_APPLY', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the retention of this Tablespace.\nIndicates whether undo retention guarantee is enabled for the tablespace.\n\nAllowed values for this property are: "GUARANTEE", "NOGUARANTEE", "NOT_APPLY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + is_bigfile: bool | None = Field(None, alias='isBigfile', description='Gets the is_bigfile of this Tablespace.\nIndicates whether the tablespace is a Bigfile tablespace or a Smallfile tablespace.') + predicate_evaluation: Literal['HOST', 'STORAGE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='predicateEvaluation', description='Gets the predicate_evaluation of this Tablespace.\nIndicates whether predicates are evaluated by Host or by Storage.\n\nAllowed values for this property are: "HOST", "STORAGE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + is_encrypted: bool | None = Field(None, alias='isEncrypted', description='Gets the is_encrypted of this Tablespace.\nIndicates whether the tablespace is encrypted.') + compress_for: Literal['BASIC', 'ADVANCED', 'QUERY_LOW', 'QUERY_HIGH', 'ARCHIVE_LOW', 'ARCHIVE_HIGH', 'DIRECT_LOAD_ONLY', 'FOR_ALL_OPERATIONS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='compressFor', description='Gets the compress_for of this Tablespace.\nThe operation type for which default compression is enabled.\n\nAllowed values for this property are: "BASIC", "ADVANCED", "QUERY_LOW", "QUERY_HIGH", "ARCHIVE_LOW", "ARCHIVE_HIGH", "DIRECT_LOAD_ONLY", "FOR_ALL_OPERATIONS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + default_in_memory: Literal['ENABLED', 'DISABLED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='defaultInMemory', description='Gets the default_in_memory of this Tablespace.\nIndicates whether the In-Memory Column Store (IM column store) is by default enabled or disabled for tables in the tablespace.\n\nAllowed values for this property are: "ENABLED", "DISABLED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + default_in_memory_priority: Literal['LOW', 'MEDIUM', 'HIGH', 'CRITICAL', 'NONE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='defaultInMemoryPriority', description='Gets the default_in_memory_priority of this Tablespace.\nIndicates the default priority for In-Memory Column Store (IM column store) population for the tablespace.\n\nAllowed values for this property are: "LOW", "MEDIUM", "HIGH", "CRITICAL", "NONE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + default_in_memory_distribute: Literal['AUTO', 'BY_ROWID_RANGE', 'BY_PARTITION', 'BY_SUBPARTITION', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='defaultInMemoryDistribute', description='Gets the default_in_memory_distribute of this Tablespace.\nIndicates how the IM column store is distributed by default for the tablespace in an Oracle Real Application Clusters (Oracle RAC) environment.\n\nAllowed values for this property are: "AUTO", "BY_ROWID_RANGE", "BY_PARTITION", "BY_SUBPARTITION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + default_in_memory_compression: Literal['NO_MEMCOMPRESS', 'FOR_DML', 'FOR_QUERY_LOW', 'FOR_QUERY_HIGH', 'FOR_CAPACITY_LOW', 'FOR_CAPACITY_HIGH', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='defaultInMemoryCompression', description='Gets the default_in_memory_compression of this Tablespace.\nIndicates the default compression level for the IM column store for the tablespace.\n\nAllowed values for this property are: "NO_MEMCOMPRESS", "FOR_DML", "FOR_QUERY_LOW", "FOR_QUERY_HIGH", "FOR_CAPACITY_LOW", "FOR_CAPACITY_HIGH", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + default_in_memory_duplicate: Literal['NO_DUPLICATE', 'DUPLICATE', 'DUPLICATE_ALL', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='defaultInMemoryDuplicate', description='Gets the default_in_memory_duplicate of this Tablespace.\nIndicates the duplicate setting for the IM column store in an Oracle RAC environment.\n\nAllowed values for this property are: "NO_DUPLICATE", "DUPLICATE", "DUPLICATE_ALL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + shared: Literal['SHARED', 'LOCAL_ON_LEAF', 'LOCAL_ON_ALL', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the shared of this Tablespace.\nIndicates whether the tablespace is for shared tablespace, or for local temporary tablespace for leaf (read-only) instances, or for local temporary tablespace for all instance types.\n\nAllowed values for this property are: "SHARED", "LOCAL_ON_LEAF", "LOCAL_ON_ALL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + default_index_compression: Literal['ENABLED', 'DISABLED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='defaultIndexCompression', description='Gets the default_index_compression of this Tablespace.\nIndicates whether default index compression is enabled or disabled.\n\nAllowed values for this property are: "ENABLED", "DISABLED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + index_compress_for: Literal['ADVANCED_LOW', 'ADVANCED_HIGH', 'NONE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='indexCompressFor', description='Gets the index_compress_for of this Tablespace.\nThe operation type for which default index compression is enabled.\n\nAllowed values for this property are: "ADVANCED_LOW", "ADVANCED_HIGH", "NONE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + default_cell_memory: str | None = Field(None, alias='defaultCellMemory', description='Gets the default_cell_memory of this Tablespace.\nThis specifies the default value for the CELLMEMORY attribute that tables created in the tablespace will inherit unless the behavior is overridden explicitly. This column is intended for use with Oracle Exadata.') + default_in_memory_service: Literal['DEFAULT', 'NONE', 'ALL', 'USER_DEFINED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='defaultInMemoryService', description='Gets the default_in_memory_service of this Tablespace.\nIndicates how the IM column store is populated on various instances by default for the tablespace.\n\nAllowed values for this property are: "DEFAULT", "NONE", "ALL", "USER_DEFINED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + default_in_memory_service_name: str | None = Field(None, alias='defaultInMemoryServiceName', description='Gets the default_in_memory_service_name of this Tablespace.\nIndicates the service name for the service on which the IM column store should be populated by default for the tablespace. This column has a value only when the corresponding DEF_INMEMORY_SERVICE is USER_DEFINED. In all other cases, this column is null.') + lost_write_protect: Literal['ENABLED', 'PROTECT_OFF', 'SUSPEND', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lostWriteProtect', description='Gets the lost_write_protect of this Tablespace.\nThe lost write protection setting for the tablespace.\n\nAllowed values for this property are: "ENABLED", "PROTECT_OFF", "SUSPEND", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + is_chunk_tablespace: bool | None = Field(None, alias='isChunkTablespace', description='Gets the is_chunk_tablespace of this Tablespace.\nIndicates whether this is a chunk tablespace.') + temp_group: str | None = Field(None, alias='tempGroup', description='Gets the temp_group of this Tablespace.\nThe temporary tablespace group.') + max_size_kb: float | None = Field(None, alias='maxSizeKB', description='Gets the max_size_kb of this Tablespace.\nThe maximum tablespace size in KB. If the tablespace contains any data files with Autoextend enabled, then this column displays the amount of underlying free storage space for the tablespace. For example, if the current tablespace size is 1 GB, the combined maximum size of all its data files is 32 GB, and its underlying storage (for example, ASM or file system storage) has 20 GB of free space, then this column will have a value of approximately 20 GB. If the tablespace contains only data files with autoextend disabled, then this column displays the allocated space for the entire tablespace, that is, the combined size of all data files in the tablespace.') + allocated_size_kb: float | None = Field(None, alias='allocatedSizeKB', description='Gets the allocated_size_kb of this Tablespace.\nThe allocated tablespace size in KB.') + user_size_kb: float | None = Field(None, alias='userSizeKB', description='Gets the user_size_kb of this Tablespace.\nThe size of the tablespace available for user data in KB. The difference between tablespace size and user data size is used for storing metadata.') + free_space_kb: float | None = Field(None, alias='freeSpaceKB', description='Gets the free_space_kb of this Tablespace.\nThe free space available in the tablespace in KB.') + used_space_kb: float | None = Field(None, alias='usedSpaceKB', description='Gets the used_space_kb of this Tablespace.\nThe total space used by the tablespace in KB.') + used_percent_available: float | None = Field(None, alias='usedPercentAvailable', description='Gets the used_percent_available of this Tablespace.\nThe percentage of used space out of the maximum available space in the tablespace.') + used_percent_allocated: float | None = Field(None, alias='usedPercentAllocated', description='Gets the used_percent_allocated of this Tablespace.\nThe percentage of used space out of the total allocated space in the tablespace.') + is_default: bool | None = Field(None, alias='isDefault', description='Gets the is_default of this Tablespace.\nIndicates whether this is the default tablespace.') + datafiles: list[Datafile] | None = Field(None, description='Gets the datafiles of this Tablespace.\nA list of the data files associated with the tablespace.') + + +class TablespaceAdminCredentialDetails(DbmRequestModel): + """The credential to connect to the database to perform tablespace administration tasks.""" + + tablespace_admin_credential_type: Literal['SECRET', 'PASSWORD'] = Field(..., alias='tablespaceAdminCredentialType', description='**[Required]** Gets the tablespace_admin_credential_type of this TablespaceAdminCredentialDetails.\nThe type of the credential for tablespace administration tasks.\n\nAllowed values for this property are: "SECRET", "PASSWORD"') + username: str = Field(..., description='**[Required]** Gets the username of this TablespaceAdminCredentialDetails.\nThe user to connect to the database.') + role: Literal['NORMAL', 'SYSDBA'] = Field(..., description='**[Required]** Gets the role of this TablespaceAdminCredentialDetails.\nThe role of the database user.\n\nAllowed values for this property are: "NORMAL", "SYSDBA"') + + +class TablespaceAdminPasswordCredentialDetails(DbmRequestModel): + """User provides a password to be used to connect to the database.""" + + tablespace_admin_credential_type: Literal['SECRET', 'PASSWORD'] = Field(..., alias='tablespaceAdminCredentialType', description='**[Required]** Gets the tablespace_admin_credential_type of this TablespaceAdminCredentialDetails.\nThe type of the credential for tablespace administration tasks.\n\nAllowed values for this property are: "SECRET", "PASSWORD"') + username: str = Field(..., description='**[Required]** Gets the username of this TablespaceAdminCredentialDetails.\nThe user to connect to the database.') + role: Literal['NORMAL', 'SYSDBA'] = Field(..., description='**[Required]** Gets the role of this TablespaceAdminCredentialDetails.\nThe role of the database user.\n\nAllowed values for this property are: "NORMAL", "SYSDBA"') + password: str = Field(..., description="**[Required]** Gets the password of this TablespaceAdminPasswordCredentialDetails.\nThe database user's password encoded using BASE64 scheme.") + + +class TablespaceAdminSecretCredentialDetails(DbmRequestModel): + """User provides a secret OCID, which will be used to retrieve the password to connect to the database.""" + + tablespace_admin_credential_type: Literal['SECRET', 'PASSWORD'] = Field(..., alias='tablespaceAdminCredentialType', description='**[Required]** Gets the tablespace_admin_credential_type of this TablespaceAdminCredentialDetails.\nThe type of the credential for tablespace administration tasks.\n\nAllowed values for this property are: "SECRET", "PASSWORD"') + username: str = Field(..., description='**[Required]** Gets the username of this TablespaceAdminCredentialDetails.\nThe user to connect to the database.') + role: Literal['NORMAL', 'SYSDBA'] = Field(..., description='**[Required]** Gets the role of this TablespaceAdminCredentialDetails.\nThe role of the database user.\n\nAllowed values for this property are: "NORMAL", "SYSDBA"') + password_secret_id: str = Field(..., alias='passwordSecretId', description='**[Required]** Gets the password_secret_id of this TablespaceAdminSecretCredentialDetails. The OCID of the Secret where the database password is stored.') + + +class TablespaceAdminStatus(DbmBaseModel): + """The status of a tablespace admin action.""" + + status: Literal['SUCCEEDED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the status of this TablespaceAdminStatus.\nThe status of a tablespace admin action.\n\nAllowed values for this property are: "SUCCEEDED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + error_code: int | None = Field(None, ge=0, alias='errorCode', description='Gets the error_code of this TablespaceAdminStatus.\nThe error code that denotes failure if the tablespace admin action is not successful. The error code is "null" if the admin action is successful.') + error_message: str | None = Field(None, alias='errorMessage', description='Gets the error_message of this TablespaceAdminStatus.\nThe error message that indicates the reason for failure if the tablespace admin action is not successful. The error message is "null" if the admin action is successful.') + + +class TablespaceCollection(DbmBaseModel): + """A collection of tablespaces for a specific Managed Database.""" + + items: list[TablespaceSummary] = Field(..., description='**[Required]** Gets the items of this TablespaceCollection.\nAn array of TablespaceSummary resources.') + + +class TablespaceStorageSize(DbmBaseModel): + """Storage size.""" + + size: float = Field(..., description='**[Required]** Gets the size of this TablespaceStorageSize.\nStorage size number in bytes, kilobytes, megabytes, gigabytes, or terabytes.') + unit: Literal['BYTES', 'KILOBYTES', 'MEGABYTES', 'GIGABYTES', 'TERABYTES'] | None = Field(None, description='Gets the unit of this TablespaceStorageSize.\nStorage size unit: bytes, kilobytes, megabytes, gigabytes, or terabytes.\n\nAllowed values for this property are: "BYTES", "KILOBYTES", "MEGABYTES", "GIGABYTES", "TERABYTES"') + + +class TablespaceSummary(DbmBaseModel): + """The summary of a tablespace.""" + + name: str = Field(..., description='**[Required]** Gets the name of this TablespaceSummary.\nThe name of the tablespace.') + type: Literal['UNDO', 'LOST_WRITE_PROTECTION', 'PERMANENT', 'TEMPORARY', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the type of this TablespaceSummary.\nThe type of tablespace.\n\nAllowed values for this property are: "UNDO", "LOST_WRITE_PROTECTION", "PERMANENT", "TEMPORARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + status: Literal['ONLINE', 'OFFLINE', 'READ_ONLY', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this TablespaceSummary.\nThe status of the tablespace.\n\nAllowed values for this property are: "ONLINE", "OFFLINE", "READ_ONLY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + block_size_bytes: float | None = Field(None, alias='blockSizeBytes', description='Gets the block_size_bytes of this TablespaceSummary.\nThe tablespace block size.') + logging: Literal['LOGGING', 'NOLOGGING', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the logging of this TablespaceSummary.\nThe default logging attribute.\n\nAllowed values for this property are: "LOGGING", "NOLOGGING", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + is_force_logging: bool | None = Field(None, alias='isForceLogging', description='Gets the is_force_logging of this TablespaceSummary.\nIndicates whether the tablespace is under Force Logging mode.') + extent_management: Literal['LOCAL', 'DICTIONARY', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='extentManagement', description='Gets the extent_management of this TablespaceSummary.\nIndicates whether the extents in the tablespace are Locally managed or Dictionary managed.\n\nAllowed values for this property are: "LOCAL", "DICTIONARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + allocation_type: Literal['SYSTEM', 'UNIFORM', 'USER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='allocationType', description='Gets the allocation_type of this TablespaceSummary.\nThe type of extent allocation in effect for the tablespace.\n\nAllowed values for this property are: "SYSTEM", "UNIFORM", "USER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + is_plugged_in: bool | None = Field(None, alias='isPluggedIn', description='Gets the is_plugged_in of this TablespaceSummary.\nIndicates whether the tablespace is plugged in.') + segment_space_management: Literal['MANUAL', 'AUTO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='segmentSpaceManagement', description='Gets the segment_space_management of this TablespaceSummary.\nIndicates whether the free and used segment space in the tablespace is managed using free lists (MANUAL) or bitmaps (AUTO).\n\nAllowed values for this property are: "MANUAL", "AUTO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + default_table_compression: Literal['ENABLED', 'DISABLED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='defaultTableCompression', description='Gets the default_table_compression of this TablespaceSummary.\nIndicates whether default table compression is enabled or disabled.\n\nAllowed values for this property are: "ENABLED", "DISABLED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + retention: Literal['GUARANTEE', 'NOGUARANTEE', 'NOT_APPLY', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the retention of this TablespaceSummary.\nIndicates whether undo retention guarantee is enabled for the tablespace.\n\nAllowed values for this property are: "GUARANTEE", "NOGUARANTEE", "NOT_APPLY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + is_bigfile: bool | None = Field(None, alias='isBigfile', description='Gets the is_bigfile of this TablespaceSummary.\nIndicates whether the tablespace is a Bigfile tablespace or a Smallfile tablespace.') + predicate_evaluation: Literal['HOST', 'STORAGE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='predicateEvaluation', description='Gets the predicate_evaluation of this TablespaceSummary.\nIndicates whether predicates are evaluated by Host or by Storage.\n\nAllowed values for this property are: "HOST", "STORAGE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + is_encrypted: bool | None = Field(None, alias='isEncrypted', description='Gets the is_encrypted of this TablespaceSummary.\nIndicates whether the tablespace is encrypted.') + compress_for: Literal['BASIC', 'ADVANCED', 'QUERY_LOW', 'QUERY_HIGH', 'ARCHIVE_LOW', 'ARCHIVE_HIGH', 'DIRECT_LOAD_ONLY', 'FOR_ALL_OPERATIONS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='compressFor', description='Gets the compress_for of this TablespaceSummary.\nThe operation type for which default compression is enabled.\n\nAllowed values for this property are: "BASIC", "ADVANCED", "QUERY_LOW", "QUERY_HIGH", "ARCHIVE_LOW", "ARCHIVE_HIGH", "DIRECT_LOAD_ONLY", "FOR_ALL_OPERATIONS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + default_in_memory: Literal['ENABLED', 'DISABLED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='defaultInMemory', description='Gets the default_in_memory of this TablespaceSummary.\nIndicates whether the In-Memory Column Store (IM column store) is by default enabled or disabled for tables in the tablespace.\n\nAllowed values for this property are: "ENABLED", "DISABLED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + default_in_memory_priority: Literal['LOW', 'MEDIUM', 'HIGH', 'CRITICAL', 'NONE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='defaultInMemoryPriority', description='Gets the default_in_memory_priority of this TablespaceSummary.\nIndicates the default priority for In-Memory Column Store (IM column store) population for the tablespace.\n\nAllowed values for this property are: "LOW", "MEDIUM", "HIGH", "CRITICAL", "NONE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + default_in_memory_distribute: Literal['AUTO', 'BY_ROWID_RANGE', 'BY_PARTITION', 'BY_SUBPARTITION', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='defaultInMemoryDistribute', description='Gets the default_in_memory_distribute of this TablespaceSummary.\nIndicates how the IM column store is distributed by default for the tablespace in an Oracle Real Application Clusters (Oracle RAC) environment.\n\nAllowed values for this property are: "AUTO", "BY_ROWID_RANGE", "BY_PARTITION", "BY_SUBPARTITION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + default_in_memory_compression: Literal['NO_MEMCOMPRESS', 'FOR_DML', 'FOR_QUERY_LOW', 'FOR_QUERY_HIGH', 'FOR_CAPACITY_LOW', 'FOR_CAPACITY_HIGH', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='defaultInMemoryCompression', description='Gets the default_in_memory_compression of this TablespaceSummary.\nIndicates the default compression level for the IM column store for the tablespace.\n\nAllowed values for this property are: "NO_MEMCOMPRESS", "FOR_DML", "FOR_QUERY_LOW", "FOR_QUERY_HIGH", "FOR_CAPACITY_LOW", "FOR_CAPACITY_HIGH", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + default_in_memory_duplicate: Literal['NO_DUPLICATE', 'DUPLICATE', 'DUPLICATE_ALL', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='defaultInMemoryDuplicate', description='Gets the default_in_memory_duplicate of this TablespaceSummary.\nIndicates the duplicate setting for the IM column store in an Oracle RAC environment.\n\nAllowed values for this property are: "NO_DUPLICATE", "DUPLICATE", "DUPLICATE_ALL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + shared: Literal['SHARED', 'LOCAL_ON_LEAF', 'LOCAL_ON_ALL', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the shared of this TablespaceSummary.\nIndicates whether the tablespace is for shared tablespace, or for local temporary tablespace for leaf (read-only) instances, or for local temporary tablespace for all instance types.\n\nAllowed values for this property are: "SHARED", "LOCAL_ON_LEAF", "LOCAL_ON_ALL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + default_index_compression: Literal['ENABLED', 'DISABLED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='defaultIndexCompression', description='Gets the default_index_compression of this TablespaceSummary.\nIndicates whether default index compression is enabled or disabled.\n\nAllowed values for this property are: "ENABLED", "DISABLED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + index_compress_for: Literal['ADVANCED_LOW', 'ADVANCED_HIGH', 'NONE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='indexCompressFor', description='Gets the index_compress_for of this TablespaceSummary.\nThe operation type for which default index compression is enabled.\n\nAllowed values for this property are: "ADVANCED_LOW", "ADVANCED_HIGH", "NONE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + default_cell_memory: str | None = Field(None, alias='defaultCellMemory', description='Gets the default_cell_memory of this TablespaceSummary.\nThis specifies the default value for the CELLMEMORY attribute that tables created in the tablespace will inherit unless the behavior is overridden explicitly. This column is intended for use with Oracle Exadata.') + default_in_memory_service: Literal['DEFAULT', 'NONE', 'ALL', 'USER_DEFINED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='defaultInMemoryService', description='Gets the default_in_memory_service of this TablespaceSummary.\nIndicates how the IM column store is populated on various instances by default for the tablespace.\n\nAllowed values for this property are: "DEFAULT", "NONE", "ALL", "USER_DEFINED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + default_in_memory_service_name: str | None = Field(None, alias='defaultInMemoryServiceName', description='Gets the default_in_memory_service_name of this TablespaceSummary.\nIndicates the service name for the service on which the IM column store should be populated by default for the tablespace. This column has a value only when the corresponding DEF_INMEMORY_SERVICE is USER_DEFINED. In all other cases, this column is null.') + lost_write_protect: Literal['ENABLED', 'PROTECT_OFF', 'SUSPEND', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lostWriteProtect', description='Gets the lost_write_protect of this TablespaceSummary.\nThe lost write protection setting for the tablespace.\n\nAllowed values for this property are: "ENABLED", "PROTECT_OFF", "SUSPEND", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + is_chunk_tablespace: bool | None = Field(None, alias='isChunkTablespace', description='Gets the is_chunk_tablespace of this TablespaceSummary.\nIndicates whether this is a chunk tablespace.') + temp_group: str | None = Field(None, alias='tempGroup', description='Gets the temp_group of this TablespaceSummary.\nThe temporary tablespace group.') + max_size_kb: float | None = Field(None, alias='maxSizeKB', description='Gets the max_size_kb of this TablespaceSummary.\nThe maximum tablespace size in KB. If the tablespace contains any data files with Autoextend enabled, then this column displays the amount of underlying free storage space for the tablespace. For example, if the current tablespace size is 1 GB, the combined maximum size of all its data files is 32 GB, and its underlying storage (for example, ASM or file system storage) has 20 GB of free space, then this column will have a value of approximately 20 GB. If the tablespace contains only data files with autoextend disabled, then this column displays the allocated space for the entire tablespace, that is, the combined size of all data files in the tablespace.') + allocated_size_kb: float | None = Field(None, alias='allocatedSizeKB', description='Gets the allocated_size_kb of this TablespaceSummary.\nThe allocated tablespace size in KB.') + user_size_kb: float | None = Field(None, alias='userSizeKB', description='Gets the user_size_kb of this TablespaceSummary.\nThe size of the tablespace available for user data in KB. The difference between tablespace size and user data size is used for storing metadata.') + free_space_kb: float | None = Field(None, alias='freeSpaceKB', description='Gets the free_space_kb of this TablespaceSummary.\nThe free space available in the tablespace in KB.') + used_space_kb: float | None = Field(None, alias='usedSpaceKB', description='Gets the used_space_kb of this TablespaceSummary.\nThe total space used by the tablespace in KB.') + used_percent_available: float | None = Field(None, alias='usedPercentAvailable', description='Gets the used_percent_available of this TablespaceSummary.\nThe percentage of used space out of the maximum available space in the tablespace.') + used_percent_allocated: float | None = Field(None, alias='usedPercentAllocated', description='Gets the used_percent_allocated of this TablespaceSummary.\nThe percentage of used space out of the total allocated space in the tablespace.') + is_default: bool | None = Field(None, alias='isDefault', description='Gets the is_default of this TablespaceSummary.\nIndicates whether this is the default tablespace.') + datafiles: list[Datafile] | None = Field(None, description='Gets the datafiles of this TablespaceSummary.\nA list of the data files associated with the tablespace.') + + +class TestBasicPreferredCredentialDetails(DbmRequestModel): + """The details of the 'BASIC' preferred credential.""" + + type: Literal['BASIC', 'NAMED_CREDENTIAL'] = Field(..., description='**[Required]** Gets the type of this TestPreferredCredentialDetails.\nThe type of preferred credential. Only \'BASIC\' is supported currently.\n\nAllowed values for this property are: "BASIC", "NAMED_CREDENTIAL"') + user_name: str | None = Field(None, alias='userName', description='Gets the user_name of this TestBasicPreferredCredentialDetails.\nThe user name used to connect to the database.') + role: Literal['NORMAL', 'SYSDBA', 'SYSDG'] | None = Field(None, description='Gets the role of this TestBasicPreferredCredentialDetails.\nThe role of the database user.\n\nAllowed values for this property are: "NORMAL", "SYSDBA", "SYSDG"') + password_secret_id: str | None = Field(None, alias='passwordSecretId', description='Gets the password_secret_id of this TestBasicPreferredCredentialDetails. The OCID of the Vault service secret that contains the database user password.') + + +class TestNamedCredentialDetails(DbmRequestModel): + """The OCID of the database against which the credential is to be tested.""" + + + + managed_database_id: str | None = Field(None, alias='managedDatabaseId', description='Gets the managed_database_id of this TestNamedCredentialDetails. The OCID of the Managed Database.') + + +class TestNamedCredentialStatus(DbmBaseModel): + """The status of the named credential test. The status is 'SUCCEEDED' if the named credential is working or else the status is 'FAILED'.""" + + status: Literal['SUCCEEDED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the status of this TestNamedCredentialStatus.\nThe status of the named credential test. The status is \'SUCCEEDED\' if the named credential is working or else the status is \'FAILED\'.\n\nAllowed values for this property are: "SUCCEEDED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + error_code: str | None = Field(None, ge=0, alias='errorCode', description="Gets the error_code of this TestNamedCredentialStatus.\nAn error code that defines the failure of the named credential test. The response is 'null' if the named credential test was successful.") + error_message: str | None = Field(None, alias='errorMessage', description="Gets the error_message of this TestNamedCredentialStatus.\nThe error message that indicates the reason for the failure of the named credential test. The response is 'null' if the named credential test was successful.") + + +class TestNamedPreferredCredentialDetails(DbmRequestModel): + """The details of the preferred credential that refers to a Named Credential.""" + + type: Literal['BASIC', 'NAMED_CREDENTIAL'] = Field(..., description='**[Required]** Gets the type of this TestPreferredCredentialDetails.\nThe type of preferred credential. Only \'BASIC\' is supported currently.\n\nAllowed values for this property are: "BASIC", "NAMED_CREDENTIAL"') + named_credential_id: str | None = Field(None, alias='namedCredentialId', description='Gets the named_credential_id of this TestNamedPreferredCredentialDetails. The OCID of the Named Credential that contains the database user password metadata.') + + +class TestPreferredCredentialDetails(DbmRequestModel): + """The status of the preferred credential test. The status is 'SUCCEEDED' if the preferred credential is working else the status is 'FAILED'.""" + + type: Literal['BASIC', 'NAMED_CREDENTIAL'] = Field(..., description='**[Required]** Gets the type of this TestPreferredCredentialDetails.\nThe type of preferred credential. Only \'BASIC\' is supported currently.\n\nAllowed values for this property are: "BASIC", "NAMED_CREDENTIAL"') + + +class TestPreferredCredentialStatus(DbmBaseModel): + """The status of the preferred credential test. The status is 'SUCCEEDED' if the preferred credential is working else the status is 'FAILED'.""" + + status: Literal['SUCCEEDED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this TestPreferredCredentialStatus.\nThe status of the preferred credential test. The status is \'SUCCEEDED\' if the preferred credential is working else the status is \'FAILED\'.\n\nAllowed values for this property are: "SUCCEEDED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + error_code: str | None = Field(None, ge=0, alias='errorCode', description="Gets the error_code of this TestPreferredCredentialStatus.\nAn error code that defines the failure of the preferred credential test. The response is 'null' if the preferred credential test was successful.") + error_message: str | None = Field(None, alias='errorMessage', description="Gets the error_message of this TestPreferredCredentialStatus.\nThe error message that indicates the reason for the failure of the preferred credential test. The response is 'null' if the preferred credential test was successful.") + + +class TimeSeriesMetricDataPoint(DbmBaseModel): + """The metric values with dimension details.""" + + timestamp: datetime = Field(..., description='**[Required]** Gets the timestamp of this TimeSeriesMetricDataPoint.\nThe date and time the metric was created.') + value: float = Field(..., description='**[Required]** Gets the value of this TimeSeriesMetricDataPoint.\nThe value of the metric.') + unit: str = Field(..., description='**[Required]** Gets the unit of this TimeSeriesMetricDataPoint.\nThe unit of the metric value.') + dimensions: list[MetricDimensionDefinition] | None = Field(None, description='Gets the dimensions of this TimeSeriesMetricDataPoint.\nThe dimensions of the metric.') + + +class TimeSeriesMetricDefinition(DbmBaseModel): + """The response object representing time series metric details +for a specific Managed Database at a particular time.""" + + metric_name: str = Field(..., alias='metricName', description='**[Required]** Gets the metric_name of this TimeSeriesMetricDefinition.\nThe name of the metric the time series data corresponds to.') + datapoints: list[TimeSeriesMetricDataPoint] = Field(..., description='**[Required]** Gets the datapoints of this TimeSeriesMetricDefinition.\nThe time series metric data for the given metric.') + + +class TopSqlCpuActivity(DbmBaseModel): + """A list of SQL IDs with most CPU activity.""" + + activity: list[SqlCpuActivity] = Field(..., description='**[Required]** Gets the activity of this TopSqlCpuActivity.\nA list of sql CPU activity.') + + +class UpdateBasicPreferredCredentialDetails(DbmRequestModel): + """The details of the 'BASIC' preferred credential.""" + + type: Literal['BASIC', 'NAMED_CREDENTIAL'] = Field(..., description='**[Required]** Gets the type of this UpdatePreferredCredentialDetails.\nThe type of preferred credential.\n\nAllowed values for this property are: "BASIC", "NAMED_CREDENTIAL"') + user_name: str | None = Field(None, alias='userName', description='Gets the user_name of this UpdateBasicPreferredCredentialDetails.\nThe user name used to connect to the database.') + role: Literal['NORMAL', 'SYSDBA', 'SYSDG'] | None = Field(None, description='Gets the role of this UpdateBasicPreferredCredentialDetails.\nThe role of the database user.\n\nAllowed values for this property are: "NORMAL", "SYSDBA", "SYSDG"') + password_secret_id: str | None = Field(None, alias='passwordSecretId', description='Gets the password_secret_id of this UpdateBasicPreferredCredentialDetails. The OCID of the Vault service secret that contains the database user password.') + + +class UpdateCloudAsmDetails(DbmRequestModel): + """The details required to update a cloud ASM.""" + + cloud_connector_id: str | None = Field(None, alias='cloudConnectorId', description='Gets the cloud_connector_id of this UpdateCloudAsmDetails. The OCID of the cloud connector.') + + +class UpdateCloudAsmInstanceDetails(DbmRequestModel): + """The details required to update a cloud ASM instance.""" + + pass + + +class UpdateCloudClusterDetails(DbmRequestModel): + """The details required to update a cloud cluster.""" + + cloud_connector_id: str | None = Field(None, alias='cloudConnectorId', description='Gets the cloud_connector_id of this UpdateCloudClusterDetails. The OCID of the cloud connector.') + + +class UpdateCloudClusterInstanceDetails(DbmRequestModel): + """The details required to update a cloud cluster instance.""" + + cloud_connector_id: str | None = Field(None, alias='cloudConnectorId', description='Gets the cloud_connector_id of this UpdateCloudClusterInstanceDetails. The OCID of the cloud connector.') + + +class UpdateCloudDbHomeDetails(DbmRequestModel): + """The details required to update a cloud DB home.""" + + pass + + +class UpdateCloudDbNodeDetails(DbmRequestModel): + """The details required to update a cloud DB node.""" + + cloud_connector_id: str | None = Field(None, alias='cloudConnectorId', description='Gets the cloud_connector_id of this UpdateCloudDbNodeDetails. The OCID of the cloud connector.') + + +class UpdateCloudDbSystemConnectorDetails(DbmRequestModel): + """The details required to update a cloud DB system connector.""" + + connector_type: Literal['MACS'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this UpdateCloudDbSystemConnectorDetails.\nThe type of connector.\n\nAllowed values for this property are: "MACS"') + + +class UpdateCloudDbSystemDetails(DbmRequestModel): + """The details required to update a cloud DB system.""" + + display_name: str | None = Field(None, alias='displayName', description='Gets the display_name of this UpdateCloudDbSystemDetails.\nThe user-friendly name for the DB system. The name does not have to be unique.') + + +class UpdateCloudDbSystemDiscoveryDetails(DbmRequestModel): + """The details required to update a cloud DB system discovery resource.""" + + display_name: str | None = Field(None, alias='displayName', description='Gets the display_name of this UpdateCloudDbSystemDiscoveryDetails.\nThe user-friendly name for the DB system. The name does not have to be unique.') + + +class UpdateCloudDbSystemMacsConnectorDetails(DbmRequestModel): + """The details for updating the cloud Management Agent Cloud Service (MACS) +connector used to connect to a cloud DB system component.""" + + + + connector_type: Literal['MACS'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this UpdateCloudDbSystemConnectorDetails.\nThe type of connector.\n\nAllowed values for this property are: "MACS"') + connection_info: CloudDbSystemConnectionInfo | None = Field(None, alias='connectionInfo', description='Gets the connection_info of this UpdateCloudDbSystemMacsConnectorDetails.') + + +class UpdateCloudExadataInfrastructureDetails(DbmRequestModel): + """The details required to update the Exadata infrastructure.""" + + discovery_key: str | None = Field(None, alias='discoveryKey', description='Gets the discovery_key of this UpdateCloudExadataInfrastructureDetails.\nThe unique key of the discovery request.') + license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE'] | None = Field(None, alias='licenseModel', description='Gets the license_model of this UpdateCloudExadataInfrastructureDetails.\nThe Oracle license model that applies to the database management resources.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE"') + display_name: str | None = Field(None, alias='displayName', description='Gets the display_name of this UpdateCloudExadataInfrastructureDetails.\nThe name of the Exadata infrastructure.') + vm_cluster_ids: list[str] | None = Field(None, alias='vmClusterIds', description='Gets the vm_cluster_ids of this UpdateCloudExadataInfrastructureDetails.\nThe list of all the VM Cluster OCIDs.') + storage_server_names: list[str] | None = Field(None, alias='storageServerNames', description='Gets the storage_server_names of this UpdateCloudExadataInfrastructureDetails.\nThe list of the names of Exadata storage servers to be monitored. If not specified, it includes all Exadata storage servers associated with the monitored VM Clusters.') + + +class UpdateCloudExadataStorageConnectorDetails(DbmRequestModel): + """The connector details of the Exadata storage server to be updated.""" + + display_name: str | None = Field(None, alias='displayName', description='Gets the display_name of this UpdateCloudExadataStorageConnectorDetails.\nThe name of the Exadata storage server connector.') + connection_uri: str | None = Field(None, alias='connectionUri', description='Gets the connection_uri of this UpdateCloudExadataStorageConnectorDetails. The unique string of the connection. For example, ".') + credential_info: RestCredential | None = Field(None, alias='credentialInfo', description='Gets the credential_info of this UpdateCloudExadataStorageConnectorDetails.') + + +class UpdateCloudExadataStorageGridDetails(DbmRequestModel): + """The details required to update an Exadata storage server grid.""" + + pass + + +class UpdateCloudExadataStorageServerDetails(DbmRequestModel): + """The details required to update an Exadata storage server.""" + + pass + + +class UpdateCloudListenerDetails(DbmRequestModel): + """The details required to update a cloud listener.""" + + cloud_connector_id: str | None = Field(None, alias='cloudConnectorId', description='Gets the cloud_connector_id of this UpdateCloudListenerDetails. The OCID of the cloud connector.') + + +class UpdateDatabaseParametersResult(DbmBaseModel): + """The results of database parameter update.""" + + status: dict[str, DatabaseParameterUpdateStatus] = Field(..., description='**[Required]** Gets the status of this UpdateDatabaseParametersResult.\nA map with the parameter name as key and its update status as value.') + + +class UpdateDbManagementPrivateEndpointDetails(DbmRequestModel): + """The details used to update a Database Management private endpoint.""" + + name: str | None = Field(None, description='Gets the name of this UpdateDbManagementPrivateEndpointDetails.\nThe display name of the private endpoint.') + description: str | None = Field(None, description='Gets the description of this UpdateDbManagementPrivateEndpointDetails.\nThe description of the private endpoint.') + nsg_ids: list[str] | None = Field(None, alias='nsgIds', description='Gets the nsg_ids of this UpdateDbManagementPrivateEndpointDetails.\nThe OCIDs of the Network Security Groups to which the Database Management private endpoint belongs.') + + +class UpdateExternalAsmDetails(DbmRequestModel): + """The details required to update an external ASM.""" + + external_connector_id: str | None = Field(None, alias='externalConnectorId', description='Gets the external_connector_id of this UpdateExternalAsmDetails. The OCID of the external connector.') + + +class UpdateExternalAsmInstanceDetails(DbmRequestModel): + """The details required to update an external ASM instance.""" + + pass + + +class UpdateExternalClusterDetails(DbmRequestModel): + """The details required to update an external cluster.""" + + external_connector_id: str | None = Field(None, alias='externalConnectorId', description='Gets the external_connector_id of this UpdateExternalClusterDetails. The OCID of the external connector.') + + +class UpdateExternalClusterInstanceDetails(DbmRequestModel): + """The details required to update an external cluster instance.""" + + external_connector_id: str | None = Field(None, alias='externalConnectorId', description='Gets the external_connector_id of this UpdateExternalClusterInstanceDetails. The OCID of the external connector.') + + +class UpdateExternalDbHomeDetails(DbmRequestModel): + """The details required to update an external DB home.""" + + pass + + +class UpdateExternalDbNodeDetails(DbmRequestModel): + """The details required to update an external DB node.""" + + external_connector_id: str | None = Field(None, alias='externalConnectorId', description='Gets the external_connector_id of this UpdateExternalDbNodeDetails. The OCID of the external connector.') + + +class UpdateExternalDbSystemConnectorDetails(DbmRequestModel): + """The details required to update an external DB system connector.""" + + connector_type: Literal['MACS'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this UpdateExternalDbSystemConnectorDetails.\nThe type of connector.\n\nAllowed values for this property are: "MACS"') + + +class UpdateExternalDbSystemDetails(DbmRequestModel): + """The details required to update an external DB system.""" + + display_name: str | None = Field(None, alias='displayName', description='Gets the display_name of this UpdateExternalDbSystemDetails.\nThe user-friendly name for the DB system. The name does not have to be unique.') + + +class UpdateExternalDbSystemDiscoveryDetails(DbmRequestModel): + """The details required to update an external DB system discovery resource.""" + + display_name: str | None = Field(None, alias='displayName', description='Gets the display_name of this UpdateExternalDbSystemDiscoveryDetails.\nThe user-friendly name for the DB system. The name does not have to be unique.') + + +class UpdateExternalDbSystemMacsConnectorDetails(DbmRequestModel): + """The details for updating the external Management Agent Cloud Service (MACS) +connector used to connect to an external DB system component.""" + + + + connector_type: Literal['MACS'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this UpdateExternalDbSystemConnectorDetails.\nThe type of connector.\n\nAllowed values for this property are: "MACS"') + connection_info: ExternalDbSystemConnectionInfo | None = Field(None, alias='connectionInfo', description='Gets the connection_info of this UpdateExternalDbSystemMacsConnectorDetails.') + + +class UpdateExternalExadataInfrastructureDetails(DbmRequestModel): + """The details required to update the external Exadata infrastructure.""" + + discovery_key: str | None = Field(None, alias='discoveryKey', description='Gets the discovery_key of this UpdateExternalExadataInfrastructureDetails.\nThe unique key of the discovery request.') + license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE'] | None = Field(None, alias='licenseModel', description='Gets the license_model of this UpdateExternalExadataInfrastructureDetails.\nThe Oracle license model that applies to the database management resources.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE"') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this UpdateExternalExadataInfrastructureDetails. The OCID of the compartment.') + display_name: str | None = Field(None, alias='displayName', description='Gets the display_name of this UpdateExternalExadataInfrastructureDetails.\nThe name of the Exadata infrastructure.') + db_system_ids: list[str] | None = Field(None, alias='dbSystemIds', description='Gets the db_system_ids of this UpdateExternalExadataInfrastructureDetails.\nThe list of all the DB systems OCIDs.') + storage_server_names: list[str] | None = Field(None, alias='storageServerNames', description='Gets the storage_server_names of this UpdateExternalExadataInfrastructureDetails.\nThe list of the names of Exadata storage servers to be monitored. If not specified, it includes all Exadata storage servers associated with the monitored DB systems.') + + +class UpdateExternalExadataStorageConnectorDetails(DbmRequestModel): + """The connector details of the Exadata storage server to be updated.""" + + connector_name: str | None = Field(None, alias='connectorName', description='Gets the connector_name of this UpdateExternalExadataStorageConnectorDetails.\nThe name of the Exadata storage server connector.') + connection_uri: str | None = Field(None, alias='connectionUri', description='Gets the connection_uri of this UpdateExternalExadataStorageConnectorDetails. The unique string of the connection. For example, ".') + credential_info: RestCredential | None = Field(None, alias='credentialInfo', description='Gets the credential_info of this UpdateExternalExadataStorageConnectorDetails.') + + +class UpdateExternalExadataStorageGridDetails(DbmRequestModel): + """The details required to update an Exadata storage server grid.""" + + pass + + +class UpdateExternalExadataStorageServerDetails(DbmRequestModel): + """The details required to update an Exadata storage server.""" + + pass + + +class UpdateExternalListenerDetails(DbmRequestModel): + """The details required to update an external listener.""" + + external_connector_id: str | None = Field(None, alias='externalConnectorId', description='Gets the external_connector_id of this UpdateExternalListenerDetails. The OCID of the external connector.') + + +class UpdateExternalMySqlDatabaseConnectorDetails(DbmRequestModel): + """Details required for updating an external MySQL database connector.""" + + compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this UpdateExternalMySqlDatabaseConnectorDetails.\nOCID of compartment for the External MySQL Database.') + connector_details: UpdateMySqlDatabaseConnectorDetails = Field(..., alias='connectorDetails', description='**[Required]** Gets the connector_details of this UpdateExternalMySqlDatabaseConnectorDetails.') + + +class UpdateExternalMySqlDatabaseDetails(DbmRequestModel): + """Details for updating an external MySQL database.""" + + db_name: str = Field(..., alias='dbName', description='**[Required]** Gets the db_name of this UpdateExternalMySqlDatabaseDetails.\nDisplay Name of the External MySQL Database.') + + +class UpdateJobDetails(DbmRequestModel): + """The details required to update a job.""" + + description: str | None = Field(None, description='Gets the description of this UpdateJobDetails.\nThe description of the job.') + job_type: Literal['SQL'] | None = Field(None, alias='jobType', description='Gets the job_type of this UpdateJobDetails.\nThe type of job.\n\nAllowed values for this property are: "SQL"') + timeout: str | None = Field(None, description='Gets the timeout of this UpdateJobDetails.\nThe job timeout duration, which is expressed like "1h 10m 15s".') + result_location: JobExecutionResultLocation | None = Field(None, alias='resultLocation', description='Gets the result_location of this UpdateJobDetails.') + schedule_details: JobScheduleDetails | None = Field(None, alias='scheduleDetails', description='Gets the schedule_details of this UpdateJobDetails.') + + +class UpdateManagedDatabaseDetails(DbmRequestModel): + """The details required to update a Managed Database.""" + + pass + + +class UpdateManagedDatabaseGroupDetails(DbmRequestModel): + """The details required to update a Managed Database Group.""" + + description: str | None = Field(None, description='Gets the description of this UpdateManagedDatabaseGroupDetails.\nThe information specified by the user about the Managed Database Group.') + + +class UpdateMySqlDatabaseConnectorDetails(DbmRequestModel): + """Update Details of external database connector.""" + + display_name: str | None = Field(None, alias='displayName', description='Gets the display_name of this UpdateMySqlDatabaseConnectorDetails.\nExternal MySQL Database Connector Name.') + macs_agent_id: str = Field(..., alias='macsAgentId', description='**[Required]** Gets the macs_agent_id of this UpdateMySqlDatabaseConnectorDetails.\nAgent Id of the MACS agent.') + host_name: str = Field(..., alias='hostName', description='**[Required]** Gets the host_name of this UpdateMySqlDatabaseConnectorDetails.\nHost name for Connector.') + port: int = Field(..., description='**[Required]** Gets the port of this UpdateMySqlDatabaseConnectorDetails.\nPort number to connect to External MySQL Database.') + credential_type: Literal['MYSQL_EXTERNAL_NON_SSL_CREDENTIALS', 'MYSQL_EXTERNAL_SSL_CREDENTIALS', 'MYSQL_EXTERNAL_SOCKET_CREDENTIALS'] | None = Field(None, alias='credentialType', description='Gets the credential_type of this UpdateMySqlDatabaseConnectorDetails.\nType of the credential.\n\nAllowed values for this property are: "MYSQL_EXTERNAL_NON_SSL_CREDENTIALS", "MYSQL_EXTERNAL_SSL_CREDENTIALS", "MYSQL_EXTERNAL_SOCKET_CREDENTIALS"') + ssl_secret_id: str = Field(..., alias='sslSecretId', description='**[Required]** Gets the ssl_secret_id of this UpdateMySqlDatabaseConnectorDetails.\nIf using existing SSL secret to connect, OCID for the secret resource.') + network_protocol: Literal['TCP', 'TCPS', 'SOCKETS'] = Field(..., alias='networkProtocol', description='**[Required]** Gets the network_protocol of this UpdateMySqlDatabaseConnectorDetails.\nProtocol to be used to connect to External MySQL Database; TCP, TCP with SSL or Socket.\n\nAllowed values for this property are: "TCP", "TCPS", "SOCKETS"') + external_database_id: str | None = Field(None, alias='externalDatabaseId', description='Gets the external_database_id of this UpdateMySqlDatabaseConnectorDetails.\nOCID of MySQL Database resource.') + + +class UpdateNamedCredentialDetails(DbmRequestModel): + """The details required to update a named credential.""" + + description: str | None = Field(None, description='Gets the description of this UpdateNamedCredentialDetails.\nThe information specified by the user about the named credential.') + scope: Literal['RESOURCE', 'GLOBAL'] | None = Field(None, description='Gets the scope of this UpdateNamedCredentialDetails.\nThe scope of the named credential.\n\nAllowed values for this property are: "RESOURCE", "GLOBAL"') + content: NamedCredentialContent | None = Field(None, description='Gets the content of this UpdateNamedCredentialDetails.') + associated_resource: str | None = Field(None, alias='associatedResource', description='Gets the associated_resource of this UpdateNamedCredentialDetails. The OCID of the resource that is associated to the named credential.') + + +class UpdateNamedPreferredCredentialDetails(DbmRequestModel): + """The details of the preferred credential that refers to a Named Credential.""" + + type: Literal['BASIC', 'NAMED_CREDENTIAL'] = Field(..., description='**[Required]** Gets the type of this UpdatePreferredCredentialDetails.\nThe type of preferred credential.\n\nAllowed values for this property are: "BASIC", "NAMED_CREDENTIAL"') + named_credential_id: str | None = Field(None, alias='namedCredentialId', description='Gets the named_credential_id of this UpdateNamedPreferredCredentialDetails. The OCID of the Named Credential that contains the database user password.') + + +class UpdatePreferredCredentialDetails(DbmRequestModel): + """The details required to update the preferred credential.""" + + type: Literal['BASIC', 'NAMED_CREDENTIAL'] = Field(..., description='**[Required]** Gets the type of this UpdatePreferredCredentialDetails.\nThe type of preferred credential.\n\nAllowed values for this property are: "BASIC", "NAMED_CREDENTIAL"') + + +class UpdateSqlJobDetails(DbmRequestModel): + """The details specific to the SQL job request.""" + + description: str | None = Field(None, description='Gets the description of this UpdateJobDetails.\nThe description of the job.') + job_type: Literal['SQL'] | None = Field(None, alias='jobType', description='Gets the job_type of this UpdateJobDetails.\nThe type of job.\n\nAllowed values for this property are: "SQL"') + timeout: str | None = Field(None, description='Gets the timeout of this UpdateJobDetails.\nThe job timeout duration, which is expressed like "1h 10m 15s".') + result_location: JobExecutionResultLocation | None = Field(None, alias='resultLocation', description='Gets the result_location of this UpdateJobDetails.') + schedule_details: JobScheduleDetails | None = Field(None, alias='scheduleDetails', description='Gets the schedule_details of this UpdateJobDetails.') + sql_text: str | None = Field(None, alias='sqlText', description='Gets the sql_text of this UpdateSqlJobDetails.\nThe SQL text to be executed as part of the job.') + in_binds: JobInBindsDetails | None = Field(None, alias='inBinds', description='Gets the in_binds of this UpdateSqlJobDetails.') + out_binds: JobOutBindsDetails | None = Field(None, alias='outBinds', description='Gets the out_binds of this UpdateSqlJobDetails.') + sql_type: str | None = Field(None, alias='sqlType', description='Gets the sql_type of this UpdateSqlJobDetails.') + user_name: str | None = Field(None, alias='userName', description='Gets the user_name of this UpdateSqlJobDetails.\nThe database user name used to execute the SQL job. If the job is being executed on a\nManaged Database Group, then the user name should exist on all the databases in the\ngroup with the same password.') + password: str | None = Field(None, description='Gets the password of this UpdateSqlJobDetails.\nThe password for the database user name used to execute the SQL job.') + secret_id: str | None = Field(None, alias='secretId', description='Gets the secret_id of this UpdateSqlJobDetails. The OCID of the secret containing the user password.') + named_credential_id: str | None = Field(None, alias='namedCredentialId', description='Gets the named_credential_id of this UpdateSqlJobDetails. The OCID of the Named Credentials containing password secret.') + role: str | None = Field(None, description='Gets the role of this UpdateSqlJobDetails.\nThe role of the database user. Indicates whether the database user is a normal user or sysdba.') + + +class UpdateTablespaceDetails(DbmRequestModel): + """The details required to update a tablespace. +It takes either credentialDetails or databaseCredential. It's recommended to provide databaseCredential""" + + credential_details: TablespaceAdminCredentialDetails | None = Field(None, alias='credentialDetails', description='Gets the credential_details of this UpdateTablespaceDetails.') + database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this UpdateTablespaceDetails.') + name: str | None = Field(None, description='Gets the name of this UpdateTablespaceDetails.\nThe name of the tablespace. It must be unique within a database.') + type: Literal['PERMANENT', 'TEMPORARY'] | None = Field(None, description='Gets the type of this UpdateTablespaceDetails.\nThe type of tablespace.\n\nAllowed values for this property are: "PERMANENT", "TEMPORARY"') + file_size: TablespaceStorageSize | None = Field(None, alias='fileSize', description='Gets the file_size of this UpdateTablespaceDetails.\nThe size of each data file or temp file.') + status: Literal['READ_ONLY', 'READ_WRITE'] | None = Field(None, description='Gets the status of this UpdateTablespaceDetails.\nThe status of the tablespace.\n\nAllowed values for this property are: "READ_ONLY", "READ_WRITE"') + is_auto_extensible: bool | None = Field(None, alias='isAutoExtensible', description='Gets the is_auto_extensible of this UpdateTablespaceDetails.\nSpecifies whether the data file or temp file can be extended automatically.') + auto_extend_next_size: TablespaceStorageSize | None = Field(None, alias='autoExtendNextSize', description='Gets the auto_extend_next_size of this UpdateTablespaceDetails.\nThe size of the next increment of disk space to be allocated automatically when more extents are required.') + auto_extend_max_size: TablespaceStorageSize | None = Field(None, alias='autoExtendMaxSize', description='Gets the auto_extend_max_size of this UpdateTablespaceDetails.\nThe maximum disk space allowed for automatic extension of the data files or temp files.') + is_max_size_unlimited: bool | None = Field(None, alias='isMaxSizeUnlimited', description='Gets the is_max_size_unlimited of this UpdateTablespaceDetails.\nSpecifies whether the disk space of the data file or temp file can be limited.') + is_default: bool | None = Field(None, alias='isDefault', description='Gets the is_default of this UpdateTablespaceDetails.\nSpecifies whether the tablespace is the default tablespace.') + + +class User(DbmBaseModel): + """The summary of a specific user resource.""" + + name: str = Field(..., description='**[Required]** Gets the name of this User.\nThe name of the User.') + status: Literal['OPEN', 'EXPIRED', 'EXPIRED_GRACE', 'LOCKED', 'LOCKED_TIMED', 'EXPIRED_AND_LOCKED', 'EXPIRED_GRACE_AND_LOCKED', 'EXPIRED_AND_LOCKED_TIMED', 'EXPIRED_GRACE_AND_LOCKED_TIMED', 'OPEN_AND_IN_ROLLOVER', 'EXPIRED_AND_IN_ROLLOVER', 'LOCKED_AND_IN_ROLLOVER', 'EXPIRED_AND_LOCKED_AND_IN_ROLLOVER', 'LOCKED_TIMED_AND_IN_ROLLOVER', 'EXPIRED_AND_LOCKED_TIMED_AND_IN_ROL', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the status of this User.\nThe status of the user account.\n\nAllowed values for this property are: "OPEN", "EXPIRED", "EXPIRED_GRACE", "LOCKED", "LOCKED_TIMED", "EXPIRED_AND_LOCKED", "EXPIRED_GRACE_AND_LOCKED", "EXPIRED_AND_LOCKED_TIMED", "EXPIRED_GRACE_AND_LOCKED_TIMED", "OPEN_AND_IN_ROLLOVER", "EXPIRED_AND_IN_ROLLOVER", "LOCKED_AND_IN_ROLLOVER", "EXPIRED_AND_LOCKED_AND_IN_ROLLOVER", "LOCKED_TIMED_AND_IN_ROLLOVER", "EXPIRED_AND_LOCKED_TIMED_AND_IN_ROL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_locked: datetime | None = Field(None, alias='timeLocked', description='Gets the time_locked of this User.\nThe date the account was locked, if the status of the account is LOCKED.') + time_expiring: datetime | None = Field(None, alias='timeExpiring', description='Gets the time_expiring of this User.\nThe date and time of the expiration of the user account.') + default_tablespace: str = Field(..., alias='defaultTablespace', description='**[Required]** Gets the default_tablespace of this User.\nThe default tablespace for data.') + temp_tablespace: str = Field(..., alias='tempTablespace', description='**[Required]** Gets the temp_tablespace of this User.\nThe name of the default tablespace for temporary tables or the name of a tablespace group.') + local_temp_tablespace: str | None = Field(None, alias='localTempTablespace', description='Gets the local_temp_tablespace of this User.\nThe default local temporary tablespace for the user.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this User.\nThe date and time the user was created.') + profile: str = Field(..., description='**[Required]** Gets the profile of this User.\nThe profile name of the user.') + consumer_group: str | None = Field(None, alias='consumerGroup', description='Gets the consumer_group of this User.\nThe initial resource consumer group for the User.') + external_name: str | None = Field(None, alias='externalName', description='Gets the external_name of this User.\nThe external name of the user.') + password_versions: str | None = Field(None, alias='passwordVersions', description='Gets the password_versions of this User.\nThe list of existing versions of the password hashes (also known as "verifiers") for the account.') + editions_enabled: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='editionsEnabled', description='Gets the editions_enabled of this User.\nIndicates whether editions have been enabled for the corresponding user (Y) or not (N).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + authentication: Literal['NONE', 'EXTERNAL', 'GLOBAL', 'PASSWORD', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the authentication of this User.\nThe authentication mechanism for the user.\n\nAllowed values for this property are: "NONE", "EXTERNAL", "GLOBAL", "PASSWORD", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + proxy_connect: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='proxyConnect', description='Gets the proxy_connect of this User.\nIndicates whether a user can connect directly (N) or whether the account can only be proxied (Y) by users who have proxy privileges\nfor this account (that is, by users who have been granted the "connect through" privilege for this account).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + common: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the common of this User.\nIndicates whether a given user is common(Y) or local(N).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_last_login: datetime | None = Field(None, alias='timeLastLogin', description='Gets the time_last_login of this User.\nThe date and time of the last user login.\nThis column is not populated when a user connects to the database with administrative privileges, that is, AS { SYSASM | SYSBACKUP | SYSDBA | SYSDG | SYSOPER | SYSRAC | SYSKM }.') + oracle_maintained: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='oracleMaintained', description='Gets the oracle_maintained of this User.\nIndicates whether the user was created and is maintained by Oracle-supplied scripts (such as catalog.sql or catproc.sql).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + inherited: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the inherited of this User.\nIndicates whether the user definition is inherited from another container (YES) or not (NO).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + default_collation: str | None = Field(None, alias='defaultCollation', description='Gets the default_collation of this User.\nThe default collation for the user schema.') + implicit: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the implicit of this User.\nIndicates whether the user is a common user created by an implicit application (YES) or not (NO).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + all_shared: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='allShared', description='Gets the all_shared of this User.\nIn a sharded database, indicates whether the user is created with shard DDL enabled (YES) or not (NO).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + external_shared: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='externalShared', description='Gets the external_shared of this User.\nIn a federated sharded database, indicates whether the user is an external shard user (YES) or not (NO).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_password_changed: datetime | None = Field(None, alias='timePasswordChanged', description='Gets the time_password_changed of this User.\nThe date and time when the user password was last set.\nThis column is populated only when the value of the AUTHENTICATION_TYPE column is PASSWORD. Otherwise, this column is null.') + + +class UserCollection(DbmBaseModel): + """A collection of users for a specific Managed Database.""" + + items: list[UserSummary] = Field(..., description='**[Required]** Gets the items of this UserCollection.\nAn array of User resources.') + + +class UserSummary(DbmBaseModel): + """The summary of a specific User.""" + + name: str = Field(..., description='**[Required]** Gets the name of this UserSummary.\nThe name of the User.') + status: Literal['OPEN', 'EXPIRED', 'EXPIRED_GRACE', 'LOCKED', 'LOCKED_TIMED', 'EXPIRED_AND_LOCKED', 'EXPIRED_GRACE_AND_LOCKED', 'EXPIRED_AND_LOCKED_TIMED', 'EXPIRED_GRACE_AND_LOCKED_TIMED', 'OPEN_AND_IN_ROLLOVER', 'EXPIRED_AND_IN_ROLLOVER', 'LOCKED_AND_IN_ROLLOVER', 'EXPIRED_AND_LOCKED_AND_IN_ROLLOVER', 'LOCKED_TIMED_AND_IN_ROLLOVER', 'EXPIRED_AND_LOCKED_TIMED_AND_IN_ROL', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the status of this UserSummary.\nThe status of the user account.\n\nAllowed values for this property are: "OPEN", "EXPIRED", "EXPIRED_GRACE", "LOCKED", "LOCKED_TIMED", "EXPIRED_AND_LOCKED", "EXPIRED_GRACE_AND_LOCKED", "EXPIRED_AND_LOCKED_TIMED", "EXPIRED_GRACE_AND_LOCKED_TIMED", "OPEN_AND_IN_ROLLOVER", "EXPIRED_AND_IN_ROLLOVER", "LOCKED_AND_IN_ROLLOVER", "EXPIRED_AND_LOCKED_AND_IN_ROLLOVER", "LOCKED_TIMED_AND_IN_ROLLOVER", "EXPIRED_AND_LOCKED_TIMED_AND_IN_ROL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_expiring: datetime | None = Field(None, alias='timeExpiring', description='Gets the time_expiring of this UserSummary.\nThe date and time of the expiration of the user account.') + default_tablespace: str = Field(..., alias='defaultTablespace', description='**[Required]** Gets the default_tablespace of this UserSummary.\nThe default tablespace for data.') + temp_tablespace: str = Field(..., alias='tempTablespace', description='**[Required]** Gets the temp_tablespace of this UserSummary.\nThe name of the default tablespace for temporary tables or the name of a tablespace group.') + time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this UserSummary.\nThe date and time the user was created.') + time_locked: datetime | None = Field(None, alias='timeLocked', description='Gets the time_locked of this UserSummary.\nThe date the account was locked, if the status of the account is LOCKED.') + profile: str = Field(..., description='**[Required]** Gets the profile of this UserSummary.\nThe profile name of the user.') + + +class VMClusterDiscoverySummary(DbmBaseModel): + """The summary of the VM Cluster discovery.""" + + id: str | None = Field(None, description='Gets the id of this EntityDiscovered. The OCID of the entity discovered.') + agent_id: str | None = Field(None, alias='agentId', description='Gets the agent_id of this EntityDiscovered. The OCID of the agent used for monitoring.') + connector_id: str | None = Field(None, alias='connectorId', description='Gets the connector_id of this EntityDiscovered. The OCID of the associated connector.') + display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this EntityDiscovered.\nThe name of the entity.') + version: str | None = Field(None, description='Gets the version of this EntityDiscovered.\nThe version of the entity.') + internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this EntityDiscovered.\nThe internal identifier of the entity.') + status: str | None = Field(None, description='Gets the status of this EntityDiscovered.\nThe status of the entity.') + discover_status: Literal['PREV_DISCOVERED', 'NEW_DISCOVERED', 'NOT_FOUND', 'DISCOVERING', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='discoverStatus', description='Gets the discover_status of this EntityDiscovered.\nThe status of the entity discovery.\n\nAllowed values for this property are: "PREV_DISCOVERED", "NEW_DISCOVERED", "NOT_FOUND", "DISCOVERING", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + discover_error_code: str | None = Field(None, alias='discoverErrorCode', description='Gets the discover_error_code of this EntityDiscovered.\nThe error code of the discovery.') + discover_error_msg: str | None = Field(None, alias='discoverErrorMsg', description='Gets the discover_error_msg of this EntityDiscovered.\nThe error message of the discovery.') + entity_type: Literal['STORAGE_SERVER_DISCOVER_SUMMARY', 'STORAGE_GRID_DISCOVER_SUMMARY', 'DATABASE_SYSTEM_DISCOVER_SUMMARY', 'INFRASTRUCTURE_DISCOVER_SUMMARY', 'INFRASTRUCTURE_DISCOVER', 'MANAGED_STORAGE_SERVER_DISCOVER_SUMMARY', 'MANAGED_STORAGE_GRID_DISCOVER_SUMMARY', 'VM_CLUSTER_DISCOVER_SUMMARY', 'MANAGED_INFRASTRUCTURE_DISCOVER_SUMMARY', 'CLOUD_INFRASTRUCTURE_DISCOVER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entityType', description='**[Required]** Gets the entity_type of this EntityDiscovered.\nThe type of discovered entities.\n\nAllowed values for this property are: "STORAGE_SERVER_DISCOVER_SUMMARY", "STORAGE_GRID_DISCOVER_SUMMARY", "DATABASE_SYSTEM_DISCOVER_SUMMARY", "INFRASTRUCTURE_DISCOVER_SUMMARY", "INFRASTRUCTURE_DISCOVER", "MANAGED_STORAGE_SERVER_DISCOVER_SUMMARY", "MANAGED_STORAGE_GRID_DISCOVER_SUMMARY", "VM_CLUSTER_DISCOVER_SUMMARY", "MANAGED_INFRASTRUCTURE_DISCOVER_SUMMARY", "CLOUD_INFRASTRUCTURE_DISCOVER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + oracle_home: str | None = Field(None, alias='oracleHome', description='Gets the oracle_home of this VMClusterDiscoverySummary.\nThe Oracle home path.') + asm_connector_name: str | None = Field(None, alias='asmConnectorName', description='Gets the asm_connector_name of this VMClusterDiscoverySummary.\nThe display name of the ASM connector.') + license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='licenseModel', description='Gets the license_model of this VMClusterDiscoverySummary.\nThe Oracle license model that applies to the database management resources.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this VMClusterDiscoverySummary. The OCID of the compartment.') + + +class ValidateBasicFilterDetails(DbmRequestModel): + """Validate the basic filter criteria provided by the user. +It takes either credentialDetails or databaseCredential. It's recommended to provide databaseCredential""" + + credential_details: SqlTuningSetAdminCredentialDetails | None = Field(None, alias='credentialDetails', description='Gets the credential_details of this ValidateBasicFilterDetails.') + database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this ValidateBasicFilterDetails.') + owner: str = Field(..., description='**[Required]** Gets the owner of this ValidateBasicFilterDetails.\nThe owner of the Sql tuning set.') + name: str = Field(..., description='**[Required]** Gets the name of this ValidateBasicFilterDetails.\nThe name of the Sql tuning set.') + basic_filter: str = Field(..., alias='basicFilter', description='**[Required]** Gets the basic_filter of this ValidateBasicFilterDetails. Specifies the Sql predicate to filter the Sql from the Sql tuning set defined on attributes of the SQLSET_ROW. User could use any combination of the following columns with appropriate values as Sql predicate Refer to the documentation.') + + +class WorkRequest(DbmBaseModel): + """A description of the work request status.""" + + id: str = Field(..., description='**[Required]** Gets the id of this WorkRequest.\nThe ID of the work request.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this WorkRequest.\nThe OCID of the compartment that contains the work request. Work requests should be scoped to\nthe same compartment as the resource the work request affects. If the work request affects multiple resources that are not in the same compartment,\nthen the system picks the primary resource whose compartment should be used.') + operation_type: Literal['CREATE_DB_MANAGEMENT_PRIVATE_ENDPOINT', 'DELETE_DB_MANAGEMENT_PRIVATE_ENDPOINT', 'CREATE_DB_SYSTEM_DISCOVERY', 'CREATE_DB_SYSTEM', 'UPDATE_DB_SYSTEM', 'DB_SYSTEM_ENABLE_DBMGMT', 'DB_SYSTEM_DISABLE_DBMGMT', 'DELETE_DB_SYSTEM', 'UPDATE_EXTERNAL_DB_SYSTEM_CONNECTOR', 'CHANGE_EXTERNAL_DB_SYSTEM_COMPARTMENT', 'DISABLE_EXADATA_INFRASTURCTURE', 'ENABLE_EXADATA_INFRASTRUCTURE', 'DELETE_EXADATA_INFRASTRUCTURE', 'CHANGE_EXADATA_COMPARTMENT', 'ENABLE_SQL_WATCH', 'DISABLE_SQL_WATCH', 'MODIFY_SQL_WATCH', 'ENABLE_DBLM', 'DISABLE_DBLM', 'MODIFY_DBLM', 'ENABLE_DBMGMT', 'DISABLE_DBMGMT', 'MODIFY_DBMGMT', 'CHECK_EXTERNAL_MYSQL_CONNECTION', 'UPDATE_EXTERNAL_MYSQL_CREDENTIAL', 'CREATE_EXTERNAL_MYSQL_CONNECTOR', 'DELETE_EXTERNAL_MYSQL_CONNECTOR', 'DELETE_EXTERNAL_MYSQL_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='operationType', description='**[Required]** Gets the operation_type of this WorkRequest.\nThe type of work request.\n\nAllowed values for this property are: "CREATE_DB_MANAGEMENT_PRIVATE_ENDPOINT", "DELETE_DB_MANAGEMENT_PRIVATE_ENDPOINT", "CREATE_DB_SYSTEM_DISCOVERY", "CREATE_DB_SYSTEM", "UPDATE_DB_SYSTEM", "DB_SYSTEM_ENABLE_DBMGMT", "DB_SYSTEM_DISABLE_DBMGMT", "DELETE_DB_SYSTEM", "UPDATE_EXTERNAL_DB_SYSTEM_CONNECTOR", "CHANGE_EXTERNAL_DB_SYSTEM_COMPARTMENT", "DISABLE_EXADATA_INFRASTURCTURE", "ENABLE_EXADATA_INFRASTRUCTURE", "DELETE_EXADATA_INFRASTRUCTURE", "CHANGE_EXADATA_COMPARTMENT", "ENABLE_SQL_WATCH", "DISABLE_SQL_WATCH", "MODIFY_SQL_WATCH", "ENABLE_DBLM", "DISABLE_DBLM", "MODIFY_DBLM", "ENABLE_DBMGMT", "DISABLE_DBMGMT", "MODIFY_DBMGMT", "CHECK_EXTERNAL_MYSQL_CONNECTION", "UPDATE_EXTERNAL_MYSQL_CREDENTIAL", "CREATE_EXTERNAL_MYSQL_CONNECTOR", "DELETE_EXTERNAL_MYSQL_CONNECTOR", "DELETE_EXTERNAL_MYSQL_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + status: Literal['ACCEPTED', 'IN_PROGRESS', 'FAILED', 'SUCCEEDED', 'CANCELING', 'CANCELED', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the status of this WorkRequest.\nThe status of the current work request.\n\nAllowed values for this property are: "ACCEPTED", "IN_PROGRESS", "FAILED", "SUCCEEDED", "CANCELING", "CANCELED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + percent_complete: float = Field(..., alias='percentComplete', description='**[Required]** Gets the percent_complete of this WorkRequest.\nThe completed percentage of the operation tracked by the work request.') + time_accepted: datetime = Field(..., alias='timeAccepted', description='**[Required]** Gets the time_accepted of this WorkRequest. The date and time the work request was accepted, as described in RFC 3339. The precision for this time object in milliseconds.') + time_started: datetime | None = Field(None, alias='timeStarted', description='Gets the time_started of this WorkRequest. The date and time the work request transitioned from ACCEPTED to IN_PROGRESS, as described in RFC 3339. The precision for this time object is in milliseconds.') + time_finished: datetime | None = Field(None, alias='timeFinished', description='Gets the time_finished of this WorkRequest. The date and time the work request reached a terminal state, either FAILED or SUCCEEDED, as described in RFC 3339. The precision for this time object is in milliseconds.') + resources: list[WorkRequestResource] = Field(..., description='**[Required]** Gets the resources of this WorkRequest.\nThe resources affected by this work request.') + + +class WorkRequestCollection(DbmBaseModel): + """Lists all work requests in a specific compartment. This contains WorkRequestSummary items.""" + + items: list[WorkRequestSummary] = Field(..., description='**[Required]** Gets the items of this WorkRequestCollection.\nA collection of work requests.') + + +class WorkRequestError(DbmBaseModel): + """An error encountered while executing a work request.""" + + id: str = Field(..., description='**[Required]** Gets the id of this WorkRequestError.\nThe identifier of the work request error.') + work_request_id: str = Field(..., alias='workRequestId', description='**[Required]** Gets the work_request_id of this WorkRequestError.\nThe OCID of the work request.') + code: str = Field(..., description='**[Required]** Gets the code of this WorkRequestError. A machine-usable code for the error that occurred. Error codes are listed on.') + message: str = Field(..., description='**[Required]** Gets the message of this WorkRequestError.\nA human-readable description of the issue that occurred.') + is_retryable: bool | None = Field(None, alias='isRetryable', description='Gets the is_retryable of this WorkRequestError.\nDetermines if the work request error can be reproduced and tried again.') + timestamp: datetime = Field(..., description='**[Required]** Gets the timestamp of this WorkRequestError. The date and time the error occurred as described in RFC 3339. The precision for the time object is in milliseconds.') + + +class WorkRequestErrorCollection(DbmBaseModel): + """The results of a work request error search. This contains WorkRequestError items and other data.""" + + items: list[WorkRequestError] = Field(..., description='**[Required]** Gets the items of this WorkRequestErrorCollection.\nA collection of work request errors.') + + +class WorkRequestLogEntry(DbmBaseModel): + """A log message from the execution of a work request.""" + + id: int = Field(..., description='**[Required]** Gets the id of this WorkRequestLogEntry.\nThe identifier of the work request log.') + work_request_id: str = Field(..., alias='workRequestId', description='**[Required]** Gets the work_request_id of this WorkRequestLogEntry.\nThe OCID of the work request.') + message: str = Field(..., description='**[Required]** Gets the message of this WorkRequestLogEntry.\nA human-readable log message.') + timestamp: datetime = Field(..., description='**[Required]** Gets the timestamp of this WorkRequestLogEntry. The date and time the log message was written, described in RFC 3339. The precision for the time object is in milliseconds.') + + +class WorkRequestLogEntryCollection(DbmBaseModel): + """The results of a work request log search. This contains WorkRequestLog items and other data.""" + + items: list[WorkRequestLogEntry] = Field(..., description='**[Required]** Gets the items of this WorkRequestLogEntryCollection.\nA collection of work request logs.') + + +class WorkRequestResource(DbmBaseModel): + """The resource that is created or operated on by a work request.""" + + entity_type: str = Field(..., alias='entityType', description='**[Required]** Gets the entity_type of this WorkRequestResource.\nThe resource type the work request affects.') + action_type: Literal['CREATED', 'UPDATED', 'DELETED', 'IN_PROGRESS', 'RELATED', 'FAILED', 'ACCEPTED', 'ENABLED', 'DISABLED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='actionType', description='**[Required]** Gets the action_type of this WorkRequestResource.\nThe way in which this resource is affected by the work tracked in the work request.\nA resource being created, updated, or deleted will remain in the IN_PROGRESS state until\nwork is complete for that resource at which point it will transition to CREATED, UPDATED,\nor DELETED, respectively.\n\nAllowed values for this property are: "CREATED", "UPDATED", "DELETED", "IN_PROGRESS", "RELATED", "FAILED", "ACCEPTED", "ENABLED", "DISABLED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + identifier: str = Field(..., description='**[Required]** Gets the identifier of this WorkRequestResource.\nThe OCID or other unique identifier of the resource the work request affects.') + entity_uri: str | None = Field(None, alias='entityUri', description='Gets the entity_uri of this WorkRequestResource.\nThe URI path that is used in a GET request to access the resource metadata.') + entity_name: str | None = Field(None, alias='entityName', description='Gets the entity_name of this WorkRequestResource.\nThe name of the WorkRequest resource entity.') + entity_dependencies: list[WorkRequestSubResource] | None = Field(None, alias='entityDependencies', description='Gets the entity_dependencies of this WorkRequestResource.\nThe dependent resources of this work request resource, these can only be provisioned\nwhen primary resource successfully completes.') + + +class WorkRequestSubResource(DbmBaseModel): + """The resource that is created or operated on by a work request.""" + + entity_name: str = Field(..., alias='entityName', description='**[Required]** Gets the entity_name of this WorkRequestSubResource.\nThe name of the subresource entity.') + entity_type: str = Field(..., alias='entityType', description='**[Required]** Gets the entity_type of this WorkRequestSubResource.\nThe resource type the work request affects.') + action_type: Literal['CREATED', 'UPDATED', 'DELETED', 'IN_PROGRESS', 'RELATED', 'FAILED', 'ACCEPTED', 'ENABLED', 'DISABLED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='actionType', description='**[Required]** Gets the action_type of this WorkRequestSubResource.\nThe way in which this resource is affected by the work tracked in the work request.\nA resource being created, updated, or deleted will remain in the IN_PROGRESS state until\nwork is complete for that resource at which point it will transition to CREATED, UPDATED,\nor DELETED, respectively.\n\nAllowed values for this property are: "CREATED", "UPDATED", "DELETED", "IN_PROGRESS", "RELATED", "FAILED", "ACCEPTED", "ENABLED", "DISABLED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + identifier: str | None = Field(None, description='Gets the identifier of this WorkRequestSubResource.\nThe OCID or other unique identifier of the resource the work request affects.') + entity_uri: str | None = Field(None, alias='entityUri', description='Gets the entity_uri of this WorkRequestSubResource.\nThe URI path that is used in a GET request to access the resource metadata.') + description: str | None = Field(None, description='Gets the description of this WorkRequestSubResource.\nDescription of the entity') + + +class WorkRequestSummary(DbmBaseModel): + """A Summary of the work request.""" + + operation_type: Literal['CREATE_DB_MANAGEMENT_PRIVATE_ENDPOINT', 'DELETE_DB_MANAGEMENT_PRIVATE_ENDPOINT', 'CREATE_DB_SYSTEM_DISCOVERY', 'CREATE_DB_SYSTEM', 'UPDATE_DB_SYSTEM', 'DB_SYSTEM_ENABLE_DBMGMT', 'DB_SYSTEM_DISABLE_DBMGMT', 'DELETE_DB_SYSTEM', 'UPDATE_EXTERNAL_DB_SYSTEM_CONNECTOR', 'CHANGE_EXTERNAL_DB_SYSTEM_COMPARTMENT', 'DISABLE_EXADATA_INFRASTURCTURE', 'ENABLE_EXADATA_INFRASTRUCTURE', 'DELETE_EXADATA_INFRASTRUCTURE', 'CHANGE_EXADATA_COMPARTMENT', 'ENABLE_SQL_WATCH', 'DISABLE_SQL_WATCH', 'MODIFY_SQL_WATCH', 'ENABLE_DBLM', 'DISABLE_DBLM', 'MODIFY_DBLM', 'ENABLE_DBMGMT', 'DISABLE_DBMGMT', 'MODIFY_DBMGMT', 'CHECK_EXTERNAL_MYSQL_CONNECTION', 'UPDATE_EXTERNAL_MYSQL_CREDENTIAL', 'CREATE_EXTERNAL_MYSQL_CONNECTOR', 'DELETE_EXTERNAL_MYSQL_CONNECTOR', 'DELETE_EXTERNAL_MYSQL_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='operationType', description='**[Required]** Gets the operation_type of this WorkRequestSummary.\nThe type of work request.\n\nAllowed values for this property are: "CREATE_DB_MANAGEMENT_PRIVATE_ENDPOINT", "DELETE_DB_MANAGEMENT_PRIVATE_ENDPOINT", "CREATE_DB_SYSTEM_DISCOVERY", "CREATE_DB_SYSTEM", "UPDATE_DB_SYSTEM", "DB_SYSTEM_ENABLE_DBMGMT", "DB_SYSTEM_DISABLE_DBMGMT", "DELETE_DB_SYSTEM", "UPDATE_EXTERNAL_DB_SYSTEM_CONNECTOR", "CHANGE_EXTERNAL_DB_SYSTEM_COMPARTMENT", "DISABLE_EXADATA_INFRASTURCTURE", "ENABLE_EXADATA_INFRASTRUCTURE", "DELETE_EXADATA_INFRASTRUCTURE", "CHANGE_EXADATA_COMPARTMENT", "ENABLE_SQL_WATCH", "DISABLE_SQL_WATCH", "MODIFY_SQL_WATCH", "ENABLE_DBLM", "DISABLE_DBLM", "MODIFY_DBLM", "ENABLE_DBMGMT", "DISABLE_DBMGMT", "MODIFY_DBMGMT", "CHECK_EXTERNAL_MYSQL_CONNECTION", "UPDATE_EXTERNAL_MYSQL_CREDENTIAL", "CREATE_EXTERNAL_MYSQL_CONNECTOR", "DELETE_EXTERNAL_MYSQL_CONNECTOR", "DELETE_EXTERNAL_MYSQL_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + status: Literal['ACCEPTED', 'IN_PROGRESS', 'FAILED', 'SUCCEEDED', 'CANCELING', 'CANCELED', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the status of this WorkRequestSummary.\nThe status of the current work request.\n\nAllowed values for this property are: "ACCEPTED", "IN_PROGRESS", "FAILED", "SUCCEEDED", "CANCELING", "CANCELED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + id: str = Field(..., description='**[Required]** Gets the id of this WorkRequestSummary.\nThe ID of the work request.') + compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this WorkRequestSummary.\nThe OCID of the compartment that contains the work request. Work requests should be scoped to the same compartment as the resource the work request affects.\nIf the work request affects multiple resources that are not in the same compartment then the system picks the primary resource whose compartment should be used.') + percent_complete: float = Field(..., alias='percentComplete', description='**[Required]** Gets the percent_complete of this WorkRequestSummary.\nThe completed percentage of the operation tracked by the work request.') + time_accepted: datetime = Field(..., alias='timeAccepted', description='**[Required]** Gets the time_accepted of this WorkRequestSummary. The date and time the work request was accepted, as described in RFC 3339. The precision for this time object is in milliseconds.') + time_started: datetime | None = Field(None, alias='timeStarted', description='Gets the time_started of this WorkRequestSummary. The date and time the work request transitioned from ACCEPTED to IN_PROGRESS, as described in RFC 3339. The precision for this time object is in milliseconds.') + time_finished: datetime | None = Field(None, alias='timeFinished', description='Gets the time_finished of this WorkRequestSummary. The date and time the work request reached a terminal state, either FAILED or SUCCEEDED, as described in RFC 3339. The precision for this time object is in milliseconds.') + resources: list[WorkRequestResource] = Field(..., description='**[Required]** Gets the resources of this WorkRequestSummary.\nThe resources affected by this work request.') + + +__all__ = [ + 'ActivityTimeSeriesMetrics', + 'AddDataFilesDetails', + 'AddManagedDatabaseToManagedDatabaseGroupDetails', + 'AddmTaskSummary', + 'AddmTasksCollection', + 'AdvisorRule', + 'AlertLogCollection', + 'AlertLogCountSummary', + 'AlertLogCountsCollection', + 'AlertLogSummary', + 'AllowedParameterValue', + 'AsmConnectionCredentailsByName', + 'AsmConnectionCredentials', + 'AsmConnectionCredentialsByDetails', + 'AsmConnectionString', + 'AsmProperty', + 'AsmPropertyCollection', + 'AsmPropertySummary', + 'AssociatedCloudComponent', + 'AssociatedComponent', + 'AssociatedDatabaseCollection', + 'AssociatedDatabaseSummary', + 'AssociatedServiceDetails', + 'AttentionLogCollection', + 'AttentionLogCountSummary', + 'AttentionLogCountsCollection', + 'AttentionLogSummary', + 'AutomaticCaptureFilter', + 'AutomaticCaptureFilterDetails', + 'AutonomousDatabaseDiagnosticsAndManagementFeatureDetails', + 'AutonomousDatabaseFeatureDetails', + 'AutonomousDatabaseSqlWatchFeatureDetails', + 'AwrDbCollection', + 'AwrDbCpuUsageCollection', + 'AwrDbCpuUsageSummary', + 'AwrDbMetricCollection', + 'AwrDbMetricSummary', + 'AwrDbParameterChangeCollection', + 'AwrDbParameterChangeSummary', + 'AwrDbParameterCollection', + 'AwrDbParameterSummary', + 'AwrDbReport', + 'AwrDbSnapshotCollection', + 'AwrDbSnapshotRangeCollection', + 'AwrDbSnapshotRangeSummary', + 'AwrDbSnapshotSummary', + 'AwrDbSqlReport', + 'AwrDbSummary', + 'AwrDbSysstatCollection', + 'AwrDbSysstatSummary', + 'AwrDbTopWaitEventCollection', + 'AwrDbTopWaitEventSummary', + 'AwrDbWaitEventBucketCollection', + 'AwrDbWaitEventBucketSummary', + 'AwrDbWaitEventCollection', + 'AwrDbWaitEventSummary', + 'AwrQueryResult', + 'BaseDatabaseHaDetails', + 'BasicDatabaseConnectionStringDetails', + 'BasicNamedCredentialContent', + 'BasicPreferredCredential', + 'ChangeCloudExadataInfrastructureCompartmentDetails', + 'ChangeDatabaseParameterDetails', + 'ChangeDatabaseParametersDetails', + 'ChangeDbManagementPrivateEndpointCompartmentDetails', + 'ChangeExternalDbSystemCompartmentDetails', + 'ChangeExternalExadataInfrastructureCompartmentDetails', + 'ChangeJobCompartmentDetails', + 'ChangeManagedDatabaseGroupCompartmentDetails', + 'ChangeMysqlDatabaseManagementTypeDetails', + 'ChangeNamedCredentialCompartmentDetails', + 'ChangePlanRetentionDetails', + 'ChangeSpaceBudgetDetails', + 'ChangeSqlPlanBaselinesAttributesDetails', + 'ChildDatabase', + 'CloneSqlTuningTaskDetails', + 'CloudAsm', + 'CloudAsmCollection', + 'CloudAsmConfiguration', + 'CloudAsmConnectionCredentials', + 'CloudAsmConnectionCredentialsByDetails', + 'CloudAsmConnectionCredentialsByName', + 'CloudAsmConnectionInfo', + 'CloudAsmDiskGroupCollection', + 'CloudAsmDiskGroupSummary', + 'CloudAsmInstance', + 'CloudAsmInstanceCollection', + 'CloudAsmInstanceParameters', + 'CloudAsmInstanceSummary', + 'CloudAsmServicedDatabase', + 'CloudAsmSummary', + 'CloudAsmUserCollection', + 'CloudAsmUserSummary', + 'CloudCluster', + 'CloudClusterCollection', + 'CloudClusterInstance', + 'CloudClusterInstanceCollection', + 'CloudClusterInstanceSummary', + 'CloudClusterNetworkConfiguration', + 'CloudClusterScanListenerConfiguration', + 'CloudClusterSummary', + 'CloudClusterVipConfiguration', + 'CloudDatabaseCollection', + 'CloudDatabaseConnectionInfo', + 'CloudDatabaseInstance', + 'CloudDatabaseSummary', + 'CloudDbHome', + 'CloudDbHomeCollection', + 'CloudDbHomeSummary', + 'CloudDbNode', + 'CloudDbNodeCollection', + 'CloudDbNodeSummary', + 'CloudDbSystem', + 'CloudDbSystemBasicInfo', + 'CloudDbSystemCollection', + 'CloudDbSystemConnectionInfo', + 'CloudDbSystemConnector', + 'CloudDbSystemConnectorCollection', + 'CloudDbSystemConnectorSummary', + 'CloudDbSystemDatabaseManagementConfigDetails', + 'CloudDbSystemDiscovery', + 'CloudDbSystemDiscoveryCollection', + 'CloudDbSystemDiscoveryConnector', + 'CloudDbSystemDiscoveryMacsConnector', + 'CloudDbSystemDiscoverySummary', + 'CloudDbSystemMacsConnector', + 'CloudDbSystemStackMonitoringConfigDetails', + 'CloudDbSystemSummary', + 'CloudExadataInfrastructure', + 'CloudExadataInfrastructureCollection', + 'CloudExadataInfrastructureDiscovery', + 'CloudExadataInfrastructureSummary', + 'CloudExadataStorageConnector', + 'CloudExadataStorageConnectorCollection', + 'CloudExadataStorageConnectorStatus', + 'CloudExadataStorageConnectorSummary', + 'CloudExadataStorageGrid', + 'CloudExadataStorageGridSummary', + 'CloudExadataStorageServer', + 'CloudExadataStorageServerCollection', + 'CloudExadataStorageServerSummary', + 'CloudIormPlan', + 'CloudListener', + 'CloudListenerCollection', + 'CloudListenerEndpoint', + 'CloudListenerIpcEndpoint', + 'CloudListenerServiceCollection', + 'CloudListenerServiceSummary', + 'CloudListenerServicedDatabase', + 'CloudListenerSummary', + 'CloudListenerTcpEndpoint', + 'CloudListenerTcpsEndpoint', + 'CloudOpenAlertHistory', + 'CloudServicedAsm', + 'CloudServicedDatabase', + 'ClusterCacheMetric', + 'ConfigureAutomaticCaptureFiltersDetails', + 'ConfigureAutomaticSpmEvolveAdvisorTaskDetails', + 'ConnectorDetails', + 'ConsumerGroupPrivilegeCollection', + 'ConsumerGroupPrivilegeSummary', + 'CpuUtilizationAggregateMetrics', + 'CreateCloudDbSystemConnectorDetails', + 'CreateCloudDbSystemDetails', + 'CreateCloudDbSystemDiscoveryDetails', + 'CreateCloudDbSystemMacsConnectorDetails', + 'CreateCloudExadataInfrastructureDetails', + 'CreateCloudExadataStorageConnectorDetails', + 'CreateDbManagementPrivateEndpointDetails', + 'CreateExternalDbSystemConnectorDetails', + 'CreateExternalDbSystemDetails', + 'CreateExternalDbSystemDiscoveryDetails', + 'CreateExternalDbSystemMacsConnectorDetails', + 'CreateExternalExadataInfrastructureDetails', + 'CreateExternalExadataStorageConnectorDetails', + 'CreateExternalMySqlDatabaseConnectorDetails', + 'CreateExternalMySqlDatabaseDetails', + 'CreateJobDetails', + 'CreateManagedDatabaseGroupDetails', + 'CreateMySqlDatabaseConnectorDetails', + 'CreateNamedCredentialDetails', + 'CreateSqlJobDetails', + 'CreateSqlTuningSetDetails', + 'CreateTablespaceDetails', + 'CursorCacheStatementCollection', + 'CursorCacheStatementSummary', + 'DataAccessContainerCollection', + 'DataAccessContainerSummary', + 'DataPoints', + 'DatabaseBackupMetrics', + 'DatabaseBackupSummary', + 'DatabaseConnectionCredentailsByName', + 'DatabaseConnectionCredentials', + 'DatabaseConnectionCredentialsByDetails', + 'DatabaseConnectionDetails', + 'DatabaseConnectionString', + 'DatabaseConnectionStringDetails', + 'DatabaseCredentialDetails', + 'DatabaseCredentials', + 'DatabaseDiagnosticsAndManagementFeatureConfiguration', + 'DatabaseDiagnosticsAndManagementFeatureDetails', + 'DatabaseFeatureConfiguration', + 'DatabaseFeatureDetails', + 'DatabaseFleetBackupMetrics', + 'DatabaseFleetDataguardMetrics', + 'DatabaseFleetHaOverviewMetrics', + 'DatabaseFleetHealthMetrics', + 'DatabaseHaBackupDetails', + 'DatabaseHaMetrics', + 'DatabaseHomeMetricDefinition', + 'DatabaseHomeMetrics', + 'DatabaseIOAggregateMetrics', + 'DatabaseInstanceHomeMetricsDefinition', + 'DatabaseLifecycleFeatureConfiguration', + 'DatabaseLifecycleManagementFeatureDetails', + 'DatabaseManagementConfig', + 'DatabaseNamedCredentialConnectionDetails', + 'DatabaseNamedCredentialDetails', + 'DatabaseParameterSummary', + 'DatabaseParameterUpdateStatus', + 'DatabaseParametersCollection', + 'DatabasePasswordCredentialDetails', + 'DatabasePlan', + 'DatabasePlanDirective', + 'DatabaseSecretCredentialDetails', + 'DatabaseSqlWatchFeatureConfiguration', + 'DatabaseSqlWatchFeatureDetails', + 'DatabaseSslConnectionCredentials', + 'DatabaseStorageAggregateMetrics', + 'DatabaseTimeAggregateMetrics', + 'DatabaseUsageMetrics', + 'Datafile', + 'DataguardMetrics', + 'DataguardPerformanceMetrics', + 'DbManagementAnalyticsMetric', + 'DbManagementPrivateEndpoint', + 'DbManagementPrivateEndpointCollection', + 'DbManagementPrivateEndpointSummary', + 'DbmResource', + 'DirectConnectorDetails', + 'DisableAutomaticInitialPlanCaptureDetails', + 'DisableAutomaticSpmEvolveAdvisorTaskDetails', + 'DisableAutonomousDatabaseManagementFeatureDetails', + 'DisableDatabaseManagementFeatureDetails', + 'DisableExternalContainerDatabaseManagementFeatureDetails', + 'DisableExternalNonContainerDatabaseManagementFeatureDetails', + 'DisableExternalPluggableDatabaseManagementFeatureDetails', + 'DisableHighFrequencyAutomaticSpmEvolveAdvisorTaskDetails', + 'DisablePluggableDatabaseManagementFeatureDetails', + 'DisableSqlPlanBaselinesUsageDetails', + 'DiscoverCloudExadataInfrastructureDetails', + 'DiscoverExternalExadataInfrastructureDetails', + 'DiscoveredCloudAsm', + 'DiscoveredCloudAsmInstance', + 'DiscoveredCloudCluster', + 'DiscoveredCloudClusterInstance', + 'DiscoveredCloudDatabase', + 'DiscoveredCloudDbHome', + 'DiscoveredCloudDbInstance', + 'DiscoveredCloudDbNode', + 'DiscoveredCloudDbSystemComponent', + 'DiscoveredCloudListener', + 'DiscoveredCloudPluggableDatabase', + 'DiscoveredExternalAsm', + 'DiscoveredExternalAsmInstance', + 'DiscoveredExternalCluster', + 'DiscoveredExternalClusterInstance', + 'DiscoveredExternalDatabase', + 'DiscoveredExternalDbHome', + 'DiscoveredExternalDbInstance', + 'DiscoveredExternalDbNode', + 'DiscoveredExternalDbSystemComponent', + 'DiscoveredExternalListener', + 'DiscoveredExternalPluggableDatabase', + 'DropSqlPlanBaselinesDetails', + 'DropSqlTuningSetDetails', + 'DropSqlTuningTaskDetails', + 'DropSqlsInSqlTuningSetDetails', + 'DropTablespaceDetails', + 'EnableAutomaticInitialPlanCaptureDetails', + 'EnableAutomaticSpmEvolveAdvisorTaskDetails', + 'EnableAutonomousDatabaseManagementFeatureDetails', + 'EnableCloudDbSystemDatabaseManagementDetails', + 'EnableCloudDbSystemStackMonitoringDetails', + 'EnableCloudExadataInfrastructureManagementDetails', + 'EnableDatabaseManagementFeatureDetails', + 'EnableExternalContainerDatabaseManagementFeatureDetails', + 'EnableExternalDatabaseManagementDetails', + 'EnableExternalDbSystemDatabaseManagementDetails', + 'EnableExternalDbSystemStackMonitoringDetails', + 'EnableExternalExadataInfrastructureManagementDetails', + 'EnableExternalNonContainerDatabaseManagementFeatureDetails', + 'EnableExternalPluggableDatabaseManagementFeatureDetails', + 'EnableHighFrequencyAutomaticSpmEvolveAdvisorTaskDetails', + 'EnablePluggableDatabaseManagementFeatureDetails', + 'EnableSqlPlanBaselinesUsageDetails', + 'EntityDiscovered', + 'ExadataFleetMetricDefinition', + 'ExadataFleetMetricSummaryDefinition', + 'ExadataInfrastructureDiscoverySummary', + 'ExadataInfrastructureFleetHealthMetrics', + 'ExadataInfrastructureFleetStatusByCategory', + 'ExadataInfrastructureFleetSummary', + 'ExadataInfrastructureLifecycleStateValues', + 'ExadataInfrastructureUsageMetrics', + 'ExadataMetricDimensionDefinition', + 'ExadataVmClusterSummary', + 'ExecutionPlanStatsComparision', + 'ExternalAsm', + 'ExternalAsmCollection', + 'ExternalAsmConfiguration', + 'ExternalAsmConnectionInfo', + 'ExternalAsmDiskGroupCollection', + 'ExternalAsmDiskGroupSummary', + 'ExternalAsmInstance', + 'ExternalAsmInstanceCollection', + 'ExternalAsmInstanceParameters', + 'ExternalAsmInstanceSummary', + 'ExternalAsmServicedDatabase', + 'ExternalAsmSummary', + 'ExternalAsmUserCollection', + 'ExternalAsmUserSummary', + 'ExternalCluster', + 'ExternalClusterCollection', + 'ExternalClusterInstance', + 'ExternalClusterInstanceCollection', + 'ExternalClusterInstanceSummary', + 'ExternalClusterNetworkConfiguration', + 'ExternalClusterScanListenerConfiguration', + 'ExternalClusterSummary', + 'ExternalClusterVipConfiguration', + 'ExternalConnectorDetails', + 'ExternalDatabaseCollection', + 'ExternalDatabaseConnectionInfo', + 'ExternalDatabaseDiagnosticsAndManagementFeatureDetails', + 'ExternalDatabaseFeatureDetails', + 'ExternalDatabaseInstance', + 'ExternalDatabaseLifecycleManagementFeatureDetails', + 'ExternalDatabaseSqlWatchFeatureDetails', + 'ExternalDatabaseSummary', + 'ExternalDatabaseSystemDiscoverySummary', + 'ExternalDbHome', + 'ExternalDbHomeCollection', + 'ExternalDbHomeSummary', + 'ExternalDbNode', + 'ExternalDbNodeCollection', + 'ExternalDbNodeSummary', + 'ExternalDbSystem', + 'ExternalDbSystemBasicInfo', + 'ExternalDbSystemCollection', + 'ExternalDbSystemConnectionInfo', + 'ExternalDbSystemConnector', + 'ExternalDbSystemConnectorCollection', + 'ExternalDbSystemConnectorSummary', + 'ExternalDbSystemDatabaseManagementConfigDetails', + 'ExternalDbSystemDiscovery', + 'ExternalDbSystemDiscoveryCollection', + 'ExternalDbSystemDiscoveryConnector', + 'ExternalDbSystemDiscoveryMacsConnector', + 'ExternalDbSystemDiscoverySummary', + 'ExternalDbSystemMacsConnector', + 'ExternalDbSystemStackMonitoringConfigDetails', + 'ExternalDbSystemSummary', + 'ExternalExadataDatabaseSystemSummary', + 'ExternalExadataInfraBasicInfo', + 'ExternalExadataInfrastructure', + 'ExternalExadataInfrastructureCollection', + 'ExternalExadataInfrastructureDiscovery', + 'ExternalExadataInfrastructureDiscoverySummary', + 'ExternalExadataInfrastructureSummary', + 'ExternalExadataStorageConnector', + 'ExternalExadataStorageConnectorCollection', + 'ExternalExadataStorageConnectorStatus', + 'ExternalExadataStorageConnectorSummary', + 'ExternalExadataStorageGrid', + 'ExternalExadataStorageGridSummary', + 'ExternalExadataStorageServer', + 'ExternalExadataStorageServerCollection', + 'ExternalExadataStorageServerSummary', + 'ExternalListener', + 'ExternalListenerCollection', + 'ExternalListenerEndpoint', + 'ExternalListenerIpcEndpoint', + 'ExternalListenerServiceCollection', + 'ExternalListenerServiceSummary', + 'ExternalListenerServicedDatabase', + 'ExternalListenerSummary', + 'ExternalListenerTcpEndpoint', + 'ExternalListenerTcpsEndpoint', + 'ExternalMySqlDatabase', + 'ExternalMySqlDatabaseCollection', + 'ExternalMySqlDatabaseConnector', + 'ExternalMySqlDatabaseSummary', + 'ExternalPluggableDatabaseDiagnosticsAndManagementFeatureDetails', + 'ExternalPluggableDatabaseFeatureDetails', + 'ExternalPluggableDatabaseLifecycleManagementFeatureDetails', + 'ExternalPluggableDatabaseSqlWatchFeatureDetails', + 'ExternalServicedAsm', + 'ExternalServicedDatabase', + 'ExternalStorageGridDiscoverySummary', + 'ExternalStorageServerDiscoverySummary', + 'FailedConnectionsAggregateMetrics', + 'FetchSqlTuningSetDetails', + 'FindingSchemaOrOperation', + 'FleetMetricDefinition', + 'FleetMetricSummaryDefinition', + 'FleetStatusByCategory', + 'FleetSummary', + 'HaMetricDefinition', + 'HeatWaveClusterUsageMetrics', + 'HeatWaveFleetByCategory', + 'HeatWaveFleetMetricDefinition', + 'HeatWaveFleetMetricSummaryDefinition', + 'HeatWaveFleetMetrics', + 'HeatWaveFleetSummary', + 'HeatWaveNode', + 'HistoricAddmResult', + 'ImplementOptimizerStatisticsAdvisorRecommendationsDetails', + 'ImplementOptimizerStatisticsAdvisorRecommendationsJob', + 'InstanceDetails', + 'IormPlan', + 'Job', + 'JobCollection', + 'JobDatabase', + 'JobExecution', + 'JobExecutionCollection', + 'JobExecutionResultDetails', + 'JobExecutionResultLocation', + 'JobExecutionSummary', + 'JobExecutionsStatusSummary', + 'JobExecutionsStatusSummaryCollection', + 'JobInBind', + 'JobInBindsDetails', + 'JobOutBind', + 'JobOutBindsDetails', + 'JobRun', + 'JobRunCollection', + 'JobRunSummary', + 'JobScheduleDetails', + 'JobSummary', + 'LoadSqlPlanBaselinesFromAwrDetails', + 'LoadSqlPlanBaselinesFromCursorCacheDetails', + 'LoadSqlTuningSetDetails', + 'MacsConnectorDetails', + 'ManagedDatabase', + 'ManagedDatabaseCollection', + 'ManagedDatabaseCredential', + 'ManagedDatabaseGroup', + 'ManagedDatabaseGroupCollection', + 'ManagedDatabaseGroupSummary', + 'ManagedDatabasePasswordCredential', + 'ManagedDatabaseSecretCredential', + 'ManagedDatabaseSummary', + 'ManagedMySqlDatabase', + 'ManagedMySqlDatabaseBinaryLogInformation', + 'ManagedMySqlDatabaseCollection', + 'ManagedMySqlDatabaseGeneralReplicationInformation', + 'ManagedMySqlDatabaseHighAvailabilityMemberCollection', + 'ManagedMySqlDatabaseHighAvailabilityMemberSummary', + 'ManagedMySqlDatabaseInboundReplicationCollection', + 'ManagedMySqlDatabaseInboundReplicationSummary', + 'ManagedMySqlDatabaseOutboundReplicationCollection', + 'ManagedMySqlDatabaseOutboundReplicationSummary', + 'ManagedMySqlDatabaseSummary', + 'MemoryAggregateMetrics', + 'MetricDataPoint', + 'MetricDimensionDefinition', + 'MetricStatisticsDefinition', + 'MetricsAggregationRange', + 'MetricsAggregationRangeCollection', + 'ModifyAutonomousDatabaseManagementFeatureDetails', + 'ModifyDatabaseManagementFeatureDetails', + 'ModifyPluggableDatabaseManagementFeatureDetails', + 'ModifySnapshotSettingsDetails', + 'MySqlApplyError', + 'MySqlApplyErrorWorker', + 'MySqlChannelApplyError', + 'MySqlChannelFetchError', + 'MySqlConfigurationDataCollection', + 'MySqlConfigurationDataSummary', + 'MySqlConnectorCollection', + 'MySqlDataCollection', + 'MySqlDataSummary', + 'MySqlDatabaseConnectorSummary', + 'MySqlDatabaseUsageMetrics', + 'MySqlDigestErrorSummary', + 'MySqlDigestErrorsCollection', + 'MySqlFetchError', + 'MySqlFleetByCategory', + 'MySqlFleetMetricDefinition', + 'MySqlFleetMetricSummaryDefinition', + 'MySqlFleetMetrics', + 'MySqlFleetSummary', + 'MySqlHighAvailabilityStatusSummary', + 'MySqlQueryDetails', + 'MySqlQueryExplainPlan', + 'MySqlQueryMessage', + 'MySqlQuerySampleDetails', + 'MySqlReplicationApplierFilter', + 'NamedCredential', + 'NamedCredentialCollection', + 'NamedCredentialContent', + 'NamedCredentialSummary', + 'NamedPreferredCredential', + 'ObjectPrivilegeCollection', + 'ObjectPrivilegeSummary', + 'ObjectStorageJobExecutionResultDetails', + 'ObjectStorageJobExecutionResultLocation', + 'OpenAlertHistory', + 'OpenAlertSummary', + 'OptimizerDatabase', + 'OptimizerStatisticsAdvisorExecution', + 'OptimizerStatisticsAdvisorExecutionReport', + 'OptimizerStatisticsAdvisorExecutionScript', + 'OptimizerStatisticsAdvisorExecutionSummary', + 'OptimizerStatisticsAdvisorExecutionsCollection', + 'OptimizerStatisticsCollectionAggregationSummary', + 'OptimizerStatisticsCollectionAggregationsCollection', + 'OptimizerStatisticsCollectionOperation', + 'OptimizerStatisticsCollectionOperationSummary', + 'OptimizerStatisticsCollectionOperationsCollection', + 'OptimizerStatisticsOperationTask', + 'ParentGroup', + 'PatchCloudDbSystemDiscoveryDetails', + 'PatchExternalDbSystemDiscoveryDetails', + 'PatchInstruction', + 'PatchMergeInstruction', + 'PdbMetrics', + 'PdbStatusDetails', + 'PeerDatabaseMetrics', + 'PerformanceMetrics', + 'PerformanceMetricsData', + 'PreferredCredential', + 'PreferredCredentialCollection', + 'PreferredCredentialSummary', + 'PrivateEndPointConnectorDetails', + 'ProxiedForUserCollection', + 'ProxiedForUserSummary', + 'ProxyUserCollection', + 'ProxyUserSummary', + 'Recommendation', + 'RecommendationExample', + 'RecommendationExampleLine', + 'RecommendationRationale', + 'RemoveDataFileDetails', + 'RemoveManagedDatabaseFromManagedDatabaseGroupDetails', + 'ResetDatabaseParametersDetails', + 'ResizeDataFileDetails', + 'RestCredential', + 'RoleCollection', + 'RoleSummary', + 'RuleFinding', + 'RunHistoricAddmDetails', + 'SaveSqlTuningSetAsDetails', + 'SchemaDefinition', + 'SnapshotDetails', + 'SpmEvolveTaskParameters', + 'SqlCpuActivity', + 'SqlInSqlTuningSet', + 'SqlJob', + 'SqlMetrics', + 'SqlPlanBaseline', + 'SqlPlanBaselineAggregation', + 'SqlPlanBaselineAggregationCollection', + 'SqlPlanBaselineCollection', + 'SqlPlanBaselineConfiguration', + 'SqlPlanBaselineDimensions', + 'SqlPlanBaselineJob', + 'SqlPlanBaselineJobCollection', + 'SqlPlanBaselineJobSummary', + 'SqlPlanBaselineSummary', + 'SqlTuningAdvisorTaskCollection', + 'SqlTuningAdvisorTaskFindingCollection', + 'SqlTuningAdvisorTaskFindingSummary', + 'SqlTuningAdvisorTaskRecommendationCollection', + 'SqlTuningAdvisorTaskRecommendationSummary', + 'SqlTuningAdvisorTaskSqlExecutionPlan', + 'SqlTuningAdvisorTaskSummary', + 'SqlTuningAdvisorTaskSummaryFindingBenefits', + 'SqlTuningAdvisorTaskSummaryFindingCounts', + 'SqlTuningAdvisorTaskSummaryReport', + 'SqlTuningAdvisorTaskSummaryReportIndexFindingSummary', + 'SqlTuningAdvisorTaskSummaryReportObjectStatFindingSummary', + 'SqlTuningAdvisorTaskSummaryReportStatementCounts', + 'SqlTuningAdvisorTaskSummaryReportStatistics', + 'SqlTuningAdvisorTaskSummaryReportTaskInfo', + 'SqlTuningSet', + 'SqlTuningSetAdminActionStatus', + 'SqlTuningSetAdminCredentialDetails', + 'SqlTuningSetAdminPasswordCredentialDetails', + 'SqlTuningSetAdminSecretCredentialDetails', + 'SqlTuningSetCollection', + 'SqlTuningSetInput', + 'SqlTuningSetSummary', + 'SqlTuningTaskCredentialDetails', + 'SqlTuningTaskPasswordCredentialDetails', + 'SqlTuningTaskPlanStats', + 'SqlTuningTaskReturn', + 'SqlTuningTaskSecretCredentialDetails', + 'SqlTuningTaskSqlDetail', + 'SqlTuningTaskSqlExecutionPlanStep', + 'StandByDatabaseDataguardMetrics', + 'StartSqlTuningTaskDetails', + 'StatementsAggregateMetrics', + 'StorageGridDiscoverySummary', + 'StorageServerDiscoverySummary', + 'SystemPrivilegeCollection', + 'SystemPrivilegeSummary', + 'TableStatisticSummary', + 'TableStatisticsCollection', + 'Tablespace', + 'TablespaceAdminCredentialDetails', + 'TablespaceAdminPasswordCredentialDetails', + 'TablespaceAdminSecretCredentialDetails', + 'TablespaceAdminStatus', + 'TablespaceCollection', + 'TablespaceStorageSize', + 'TablespaceSummary', + 'TestBasicPreferredCredentialDetails', + 'TestNamedCredentialDetails', + 'TestNamedCredentialStatus', + 'TestNamedPreferredCredentialDetails', + 'TestPreferredCredentialDetails', + 'TestPreferredCredentialStatus', + 'TimeSeriesMetricDataPoint', + 'TimeSeriesMetricDefinition', + 'TopSqlCpuActivity', + 'UpdateBasicPreferredCredentialDetails', + 'UpdateCloudAsmDetails', + 'UpdateCloudAsmInstanceDetails', + 'UpdateCloudClusterDetails', + 'UpdateCloudClusterInstanceDetails', + 'UpdateCloudDbHomeDetails', + 'UpdateCloudDbNodeDetails', + 'UpdateCloudDbSystemConnectorDetails', + 'UpdateCloudDbSystemDetails', + 'UpdateCloudDbSystemDiscoveryDetails', + 'UpdateCloudDbSystemMacsConnectorDetails', + 'UpdateCloudExadataInfrastructureDetails', + 'UpdateCloudExadataStorageConnectorDetails', + 'UpdateCloudExadataStorageGridDetails', + 'UpdateCloudExadataStorageServerDetails', + 'UpdateCloudListenerDetails', + 'UpdateDatabaseParametersResult', + 'UpdateDbManagementPrivateEndpointDetails', + 'UpdateExternalAsmDetails', + 'UpdateExternalAsmInstanceDetails', + 'UpdateExternalClusterDetails', + 'UpdateExternalClusterInstanceDetails', + 'UpdateExternalDbHomeDetails', + 'UpdateExternalDbNodeDetails', + 'UpdateExternalDbSystemConnectorDetails', + 'UpdateExternalDbSystemDetails', + 'UpdateExternalDbSystemDiscoveryDetails', + 'UpdateExternalDbSystemMacsConnectorDetails', + 'UpdateExternalExadataInfrastructureDetails', + 'UpdateExternalExadataStorageConnectorDetails', + 'UpdateExternalExadataStorageGridDetails', + 'UpdateExternalExadataStorageServerDetails', + 'UpdateExternalListenerDetails', + 'UpdateExternalMySqlDatabaseConnectorDetails', + 'UpdateExternalMySqlDatabaseDetails', + 'UpdateJobDetails', + 'UpdateManagedDatabaseDetails', + 'UpdateManagedDatabaseGroupDetails', + 'UpdateMySqlDatabaseConnectorDetails', + 'UpdateNamedCredentialDetails', + 'UpdateNamedPreferredCredentialDetails', + 'UpdatePreferredCredentialDetails', + 'UpdateSqlJobDetails', + 'UpdateTablespaceDetails', + 'User', + 'UserCollection', + 'UserSummary', + 'VMClusterDiscoverySummary', + 'ValidateBasicFilterDetails', + 'WorkRequest', + 'WorkRequestCollection', + 'WorkRequestError', + 'WorkRequestErrorCollection', + 'WorkRequestLogEntry', + 'WorkRequestLogEntryCollection', + 'WorkRequestResource', + 'WorkRequestSubResource', + 'WorkRequestSummary', + "Compartment", + "CompartmentAccessLevel", + "CompartmentCollection", + "CompartmentLifecycleState", + "DbmBaseModel", + "DbmRequestModel", +] diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/runtime.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/runtime.py new file mode 100644 index 00000000..1badac75 --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/runtime.py @@ -0,0 +1,147 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. +""" + +from __future__ import annotations + +from functools import lru_cache +from logging import Logger +from typing import Any + +import oci +from pydantic import BaseModel +from pydantic.fields import FieldInfo +from pydantic_core import PydanticUndefined + +from oracle.oci_oracle_db_observability.v1.auth import build_client +from oracle.oci_oracle_db_observability.v1.conversion import ( + polymorphic_request_to_sdk_model, + pydantic_to_sdk_model, +) +from oracle.oci_oracle_db_observability.v1.pagination import call_with_auto_pagination +from oracle.oci_oracle_db_observability.v1.response_mapping import map_response_data + +from . import __project__, __version__ +from .metadata import METHOD_CLIENTS, REQUEST_MODEL_TYPES + +logger = Logger(__name__, level="INFO") + + +@lru_cache(maxsize=1) +def get_db_management_client() -> oci.database_management.DbManagementClient: + """Create the OCI Database Management DbManagementClient SDK client.""" + + return build_client( + oci.database_management.DbManagementClient, + project=__project__, + version=__version__, + logger=logger, + ) + + +@lru_cache(maxsize=1) +def get_diagnosability_client() -> oci.database_management.DiagnosabilityClient: + """Create the OCI Database Management DiagnosabilityClient SDK client.""" + + return build_client( + oci.database_management.DiagnosabilityClient, + project=__project__, + version=__version__, + logger=logger, + ) + + + + +@lru_cache(maxsize=1) +def get_sql_tuning_client() -> oci.database_management.SqlTuningClient: + """Create the OCI Database Management SqlTuningClient SDK client.""" + + return build_client( + oci.database_management.SqlTuningClient, + project=__project__, + version=__version__, + logger=logger, + ) + + +@lru_cache(maxsize=1) +def get_identity_client() -> oci.identity.IdentityClient: + """Create the OCI Identity SDK client.""" + + return build_client( + oci.identity.IdentityClient, + project=__project__, + version=__version__, + logger=logger, + ) + + +CLIENT_GETTERS = { + 'DbManagementClient': get_db_management_client, + 'DiagnosabilityClient': get_diagnosability_client, + 'SqlTuningClient': get_sql_tuning_client, +} + + +def normalize_tool_value(value: Any) -> Any: + """Resolve FastMCP/Pydantic Field defaults when a tool is called directly.""" + + if isinstance(value, FieldInfo): + default = value.get_default(call_default_factory=True) + return None if default is PydanticUndefined else default + return value + + +def _coerce_argument(method_name: str, key: str, value: Any) -> Any: + value = normalize_tool_value(value) + if value is None: + return None + request_model_name = REQUEST_MODEL_TYPES.get((method_name, key)) + if request_model_name is not None: + sdk_type = getattr(oci.database_management.models, request_model_name) + return polymorphic_request_to_sdk_model(value, sdk_type) + if isinstance(value, BaseModel): + sdk_type = getattr(oci.database_management.models, value.__class__.__name__, None) + if sdk_type is not None: + return pydantic_to_sdk_model(value, sdk_type) + return value.model_dump(by_alias=True, exclude_none=True) + if isinstance(value, list): + return [_coerce_argument(method_name, key, item) for item in value] + if isinstance(value, dict): + return { + item_key: _coerce_argument(method_name, item_key, item) + for item_key, item in value.items() + if item is not None + } + return value + + +def _invoke(method_name: str, client: Any, service_name: str, **kwargs: Any) -> Any: + method = getattr(client, method_name) + sdk_kwargs = {} + for key, value in kwargs.items(): + coerced_value = _coerce_argument(method_name, key, value) + if coerced_value is not None: + sdk_kwargs[key] = coerced_value + try: + response = call_with_auto_pagination(method, sdk_kwargs) + return map_response_data(getattr(response, "data", None)) + except Exception as exc: + logger.error("Error in %s tool %s: %s", service_name, method_name, exc) + raise + + +def invoke_dbm(method_name: str, **kwargs: Any) -> Any: + """Invoke a DBM SDK method on the correct Database Management client.""" + + client_name = METHOD_CLIENTS[method_name] + return _invoke(method_name, CLIENT_GETTERS[client_name](), client_name, **kwargs) + + +def invoke_identity(method_name: str, **kwargs: Any) -> Any: + """Invoke an OCI Identity SDK method and map the SDK response for MCP.""" + + return _invoke(method_name, get_identity_client(), "Identity", **kwargs) diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/server.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/server.py new file mode 100644 index 00000000..3d28ea85 --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/server.py @@ -0,0 +1,57 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. +""" + +from __future__ import annotations + +import os + +from fastmcp.server.auth.providers.oci import OCIProvider +from fastmcp.utilities.auth import parse_scopes + +from . import __project__ +from . import tools as _tools # noqa: F401 +from .mcp import mcp + + +def _default_required_scopes() -> list[str]: + server_name = __project__.removeprefix("oracle.oci-").removesuffix("-mcp-server") + return f"openid profile email oci_mcp.{server_name.replace('-', '_')}.invoke".split() + + +def main() -> None: + """Run the DBM MCP server with stdio or HTTP transport.""" + + host = os.getenv("ORACLE_MCP_HOST") + port = os.getenv("ORACLE_MCP_PORT") + + if not (host and port): + mcp.run() + return + + domain = os.getenv("IDCS_DOMAIN") + client_id = os.getenv("IDCS_CLIENT_ID") + client_secret = os.getenv("IDCS_CLIENT_SECRET") + base_url = os.getenv("ORACLE_MCP_BASE_URL", "") + audience = os.getenv("IDCS_AUDIENCE") + if not all((domain, client_id, client_secret, audience, base_url)): + raise RuntimeError( + "HTTP transport requires IDCS authentication. " + "Set IDCS_DOMAIN, IDCS_CLIENT_ID, IDCS_CLIENT_SECRET, IDCS_AUDIENCE, " + "ORACLE_MCP_BASE_URL, ORACLE_MCP_HOST, and ORACLE_MCP_PORT." + ) + mcp.auth = OCIProvider( + config_url=f"https://{domain}/.well-known/openid-configuration", + client_id=client_id, + client_secret=client_secret, + audience=audience, + required_scopes=parse_scopes(os.getenv("IDCS_REQUIRED_SCOPES")) or _default_required_scopes(), + base_url=base_url, + ) + mcp.run(transport="http", host=host, port=int(port)) + + +if __name__ == "__main__": + main() diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tests/__init__.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tests/__init__.py new file mode 100644 index 00000000..b8f69b97 --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tests/__init__.py @@ -0,0 +1,5 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. +""" diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tests/test_auth_and_server.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tests/test_auth_and_server.py new file mode 100644 index 00000000..a72df4e3 --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tests/test_auth_and_server.py @@ -0,0 +1,95 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. +""" + +from __future__ import annotations + +import asyncio +import logging +from types import SimpleNamespace + +from oracle.oci_oracle_db_observability.v1 import auth +from oracle.oci_oracle_db_observability.v1.oci_dbm_mcp_server import server, tools + +TEST_LOGGER = logging.getLogger(__name__) + + +def test_stdio_build_client_uses_dbm_user_agent(monkeypatch, tmp_path) -> None: + token_file = tmp_path / "security-token" + token_file.write_text("SECURITY_TOKEN", encoding="utf-8") + monkeypatch.delenv("ORACLE_MCP_HOST", raising=False) + monkeypatch.delenv("ORACLE_MCP_PORT", raising=False) + monkeypatch.setattr( + auth.oci.config, + "from_file", + lambda file_location, profile_name: { + "region": "us-phoenix-1", + "tenancy": "ocid1.tenancy.oc1..example", + "key_file": "/keys/oci.pem", + "security_token_file": str(token_file), + }, + ) + monkeypatch.setattr(auth.oci.signer, "load_private_key_from_file", lambda key_file: "private-key") + monkeypatch.setattr( + auth.oci.auth.signers, + "SecurityTokenSigner", + lambda token, private_key: f"{token}:{private_key}", + ) + + client = auth.build_client( + lambda config, **kwargs: SimpleNamespace(config=config, kwargs=kwargs), + project="oracle.oci-dbm-mcp-server", + version="1.0.0", + logger=TEST_LOGGER, + ) + + assert client.config["region"] == "us-phoenix-1" + assert client.config["tenancy"] == "ocid1.tenancy.oc1..example" + assert client.config["additional_user_agent"] == "oci-dbm/1.0.0" + assert client.kwargs["signer"] == "SECURITY_TOKEN:private-key" + + +def test_http_build_client_uses_dbm_user_agent(monkeypatch) -> None: + monkeypatch.setenv("ORACLE_MCP_HOST", "127.0.0.1") + monkeypatch.setenv("ORACLE_MCP_PORT", "8888") + monkeypatch.setenv("OCI_REGION", "us-ashburn-1") + monkeypatch.setenv("IDCS_DOMAIN", "idcs.example.com") + monkeypatch.setenv("IDCS_CLIENT_ID", "client-id") + monkeypatch.setenv("IDCS_CLIENT_SECRET", "client-secret") + monkeypatch.setattr(auth, "get_access_token", lambda: SimpleNamespace(token="ACCESS_TOKEN")) + monkeypatch.setattr( + auth.oci.auth.signers, + "TokenExchangeSigner", + lambda token, domain, client_id, client_secret, region: "token-exchange-signer", + ) + + client = auth.build_client( + lambda config, **kwargs: SimpleNamespace(config=config, kwargs=kwargs), + project="oracle.oci-dbm-mcp-server", + version="1.0.0", + logger=TEST_LOGGER, + ) + + assert client.config["region"] == "us-ashburn-1" + assert client.config["additional_user_agent"] == "oci-dbm/1.0.0" + assert client.kwargs["signer"] == "token-exchange-signer" + + +def test_server_uses_dbm_default_http_scope() -> None: + assert server._default_required_scopes() == [ + "openid", + "profile", + "email", + "oci_mcp.dbm.invoke", + ] + + +def test_server_registers_expected_tools() -> None: + registered = asyncio.run(server.mcp.list_tools(run_middleware=False)) + + assert {tool.name for tool in registered} == tools.TOOL_NAMES + + for tool in registered: + assert tool.annotations == tools.TOOL_ANNOTATIONS[tool.name] diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tests/test_bootstrap.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tests/test_bootstrap.py new file mode 100644 index 00000000..f21180ba --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tests/test_bootstrap.py @@ -0,0 +1,130 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. +""" + +from __future__ import annotations + +from typing import Any + +import oci + +from oracle.oci_oracle_db_observability.v1.oci_dbm_mcp_server import runtime, tools + + +class _Response: + def __init__( + self, + data: Any, + next_page: str | None = None, + headers: dict[str, str] | None = None, + ) -> None: + self.data = data + self.next_page = next_page + self.headers = headers or {} + + +def _oci_config(tenancy_id: str | None = "ocid1.tenancy.oc1..example") -> dict[str, str]: + config = {"region": "us-phoenix-1"} + if tenancy_id is not None: + config["tenancy"] = tenancy_id + return config + + +def _compartment(compartment_id: str = "ocid1.compartment.oc1..example") -> oci.identity.models.Compartment: + return oci.identity.models.Compartment( + id=compartment_id, + compartment_id="ocid1.tenancy.oc1..example", + name="Database", + description="Database compartment", + lifecycle_state="ACTIVE", + ) + + +def test_get_compartment_calls_identity_client(monkeypatch) -> None: + captured: dict[str, Any] = {} + + class FakeIdentityClient: + def get_compartment(self, **kwargs): + captured.update(kwargs) + return _Response(_compartment()) + + monkeypatch.setattr(runtime, "get_identity_client", lambda: FakeIdentityClient()) + + result = tools.get_compartment("ocid1.compartment.oc1..example") + + assert captured["compartment_id"] == "ocid1.compartment.oc1..example" + assert result["id"] == "ocid1.compartment.oc1..example" + assert result["name"] == "Database" + + +def test_list_compartments_defaults_to_tenancy_and_maps_collection(monkeypatch) -> None: + captured: dict[str, Any] = {} + monkeypatch.setattr(tools, "get_oci_config", lambda project, version: _oci_config()) + + class FakeIdentityClient: + def list_compartments(self, **kwargs): + captured.update(kwargs) + return _Response([_compartment()]) + + monkeypatch.setattr(runtime, "get_identity_client", lambda: FakeIdentityClient()) + + result = tools.list_compartments(name="Database") + + assert captured["compartment_id"] == "ocid1.tenancy.oc1..example" + assert captured["compartment_id_in_subtree"] is True + assert captured["access_level"] == "ACCESSIBLE" + assert captured["name"] == "Database" + assert captured["limit"] == 50 + assert result["count"] == 1 + assert result["items"][0]["id"] == "ocid1.compartment.oc1..example" + + +def test_list_compartments_auto_paginates(monkeypatch) -> None: + calls: list[dict[str, Any]] = [] + monkeypatch.setattr(tools, "get_oci_config", lambda project, version: _oci_config()) + + class FakeIdentityClient: + def list_compartments(self, page=None, limit=None, **kwargs): + calls.append({"page": page, "limit": limit, **kwargs}) + if page is None: + return _Response( + [_compartment("ocid1.compartment.oc1..one")], + next_page="page-2", + ) + return _Response([_compartment("ocid1.compartment.oc1..two")]) + + monkeypatch.setattr(runtime, "get_identity_client", lambda: FakeIdentityClient()) + + result = tools.list_compartments(limit=10) + + assert result["count"] == 2 + assert [item["id"] for item in result["items"]] == [ + "ocid1.compartment.oc1..one", + "ocid1.compartment.oc1..two", + ] + assert calls[0]["limit"] == 10 + assert calls[1]["page"] == "page-2" + assert calls[1]["limit"] == 9 + + +def test_list_compartments_allows_explicit_root_without_tenancy_config(monkeypatch) -> None: + captured: dict[str, Any] = {} + monkeypatch.setattr(tools, "get_oci_config", lambda project, version: _oci_config(tenancy_id=None)) + + class FakeIdentityClient: + def list_compartments(self, **kwargs): + captured.update(kwargs) + return _Response([_compartment()]) + + monkeypatch.setattr(runtime, "get_identity_client", lambda: FakeIdentityClient()) + + result = tools.list_compartments( + root_compartment_id="ocid1.compartment.oc1..example", + include_subtree=True, + ) + + assert captured["compartment_id"] == "ocid1.compartment.oc1..example" + assert captured["compartment_id_in_subtree"] is True + assert result["count"] == 1 diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tests/test_metadata_and_schemas.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tests/test_metadata_and_schemas.py new file mode 100644 index 00000000..5687be2d --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tests/test_metadata_and_schemas.py @@ -0,0 +1,186 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. +""" + +from __future__ import annotations + +import inspect +from typing import Any, get_args, get_origin, get_type_hints + +import pytest +from pydantic import ValidationError + +from oracle.oci_oracle_db_observability.v1.oci_dbm_mcp_server import metadata, models, tools + + +REMOVED_TOOL_NAMES = { + "add_data_files", + "add_managed_database_to_managed_database_group", + "clone_sql_tuning_task", + "configure_automatic_capture_filters", + "configure_automatic_spm_evolve_advisor_task", + "fetch_sql_tuning_set", + "implement_optimizer_statistics_advisor_recommendations", + "load_sql_plan_baselines_from_awr", + "load_sql_plan_baselines_from_cursor_cache", + "load_sql_tuning_set", + "modify_autonomous_database_management_feature", + "modify_database_management_feature", + "modify_external_container_database_management_feature", + "modify_pluggable_database_management_feature", + "modify_snapshot_settings", + "patch_cloud_db_system_discovery", + "patch_external_db_system_discovery", + "remove_data_file", + "remove_managed_database_from_managed_database_group", + "reset_database_parameters", + "resize_data_file", + "run_historic_addm", + "save_sql_tuning_set_as", + "start_sql_tuning_task", + "test_named_credential", + "test_preferred_credential", + "validate_basic_filter", + # DBM MySQL/HeatWave tools removed because DBM MySQL support is deprecated. + "change_mysql_database_management_type", + "check_external_my_sql_database_connector_connection_status", + "create_external_my_sql_database", + "create_external_my_sql_database_connector", + "disable_external_my_sql_database_management", + "enable_external_my_sql_database_management", + "get_binary_log_information", + "get_external_my_sql_database", + "get_external_my_sql_database_connector", + "get_general_replication_information", + "get_heat_wave_fleet_metric", + "get_managed_my_sql_database", + "get_my_sql_fleet_metric", + "get_my_sql_query_details", + "list_external_my_sql_databases", + "list_high_availability_members", + "list_inbound_replications", + "list_managed_my_sql_database_configuration_data", + "list_managed_my_sql_database_sql_data", + "list_managed_my_sql_databases", + "list_my_sql_database_connectors", + "list_my_sql_digest_errors", + "list_outbound_replications", + "summarize_managed_my_sql_database_availability_metrics", + "update_external_mysql_database", + "update_external_mysql_database_connector", +} + + +def test_expected_tool_metadata_exposes_runtime_tool_sets() -> None: + assert len(metadata.INCLUDED_METHOD_NAMES) == 266 + assert len(metadata.REQUEST_MODEL_TYPES) == 90 + assert len(tools.TOOL_NAMES) == 268 + assert tools.TOOL_NAMES == metadata.TOOL_NAMES + assert metadata.TOOL_NAMES == frozenset(metadata.INCLUDED_METHOD_NAMES) | tools.BOOTSTRAP_TOOL_NAMES + assert REMOVED_TOOL_NAMES.isdisjoint(metadata.INCLUDED_METHOD_NAMES) + assert REMOVED_TOOL_NAMES.isdisjoint(tools.TOOL_NAMES) + assert REMOVED_TOOL_NAMES.isdisjoint(tools.TOOL_DESCRIPTIONS) + assert REMOVED_TOOL_NAMES.isdisjoint(metadata.METHOD_CLIENTS) + assert all(not name.startswith("delete_") for name in metadata.INCLUDED_METHOD_NAMES) + assert all(not name.startswith("drop_") for name in metadata.INCLUDED_METHOD_NAMES) + + +def test_tool_descriptions_do_not_duplicate_mutability_metadata() -> None: + assert len(metadata.MUTABLE_METHOD_NAMES) == 97 + + for description in tools.TOOL_DESCRIPTIONS.values(): + assert "WARNING:" not in description + + +def test_tool_annotations_match_mutability() -> None: + assert set(tools.TOOL_ANNOTATIONS) == tools.TOOL_NAMES + + for name, annotations in tools.TOOL_ANNOTATIONS.items(): + is_mutable = name in tools.MUTABLE_TOOL_NAMES + assert annotations.title == name.replace("_", " ").title() + assert annotations.readOnlyHint is not is_mutable + assert annotations.destructiveHint is is_mutable + assert annotations.idempotentHint is not is_mutable + assert annotations.openWorldHint is True + + +def test_schema_fields_include_descriptions_aliases_and_literals() -> None: + field = models.ManagedDatabase.model_fields["database_type"] + + assert field.is_required() + assert field.alias == "databaseType" + assert "type of Oracle Database installation" in (field.description or "") + assert "EXTERNAL_SIDB" in get_args(field.annotation) + + +def test_schema_fields_include_documented_constraints() -> None: + parameter = inspect.signature(tools.list_managed_databases).parameters["limit"] + constraints = {item.__class__.__name__: item for item in parameter.default.metadata} + + assert parameter.default.description.startswith("For list pagination.") + assert constraints["Ge"].ge == 1 + assert constraints["Le"].le == 1000 + + +def test_request_body_parameters_accept_dict_or_generated_model() -> None: + annotation = get_type_hints( + tools.create_job, + vars(tools), + vars(tools), + )["create_job_details"] + dict_arg, model_arg = get_args(annotation) + + assert get_origin(dict_arg) is dict + assert get_args(dict_arg) == (str, Any) + assert model_arg is models.CreateJobDetails + + +def test_tool_response_annotations_are_generic() -> None: + for name in tools.TOOL_NAMES: + annotation = get_type_hints(getattr(tools, name), vars(tools), vars(tools))["return"] + assert annotation is Any + + +def test_tools_do_not_expose_skipped_sdk_transport_parameters() -> None: + skipped = { + "allow_control_chars", + "buffer_limit", + "defined_tag_equals", + "defined_tag_exists", + "enable_strict_url_encoding", + "freeform_tag_equals", + "freeform_tag_exists", + "if_match", + "opc_request_id", + "opc_retry_token", + "page", + "retry_strategy", + } + + for name in metadata.INCLUDED_METHOD_NAMES: + assert skipped.isdisjoint(inspect.signature(getattr(tools, name)).parameters) + + +def test_request_models_do_not_expose_tag_mutation_fields() -> None: + request_tag_fields = {"defined_tags", "freeform_tags", "system_tags", "tag_filters", "match_rule"} + + assert request_tag_fields.isdisjoint(models.CreateManagedDatabaseGroupDetails.model_fields) + assert request_tag_fields.isdisjoint(models.UpdateManagedDatabaseGroupDetails.model_fields) + assert "defined_tags" in models.ManagedDatabaseGroup.model_fields + + with pytest.raises(ValidationError): + models.CreateManagedDatabaseGroupDetails( + name="GROUP1", + compartment_id="ocid1.compartment.oc1..example", + freeform_tags={"owner": "dbm"}, + ) + + +def test_schema_named_sdk_field_uses_non_shadowing_public_name() -> None: + fields = models.SqlInSqlTuningSet.model_fields + + assert "schema_name" in fields + assert "schema" not in fields + assert fields["schema_name"].alias == "schema" diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tests/test_runtime.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tests/test_runtime.py new file mode 100644 index 00000000..2da6a83d --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tests/test_runtime.py @@ -0,0 +1,294 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. +""" + +from __future__ import annotations + +from datetime import UTC, datetime +from typing import Any + +import oci + +from oracle.oci_oracle_db_observability.v1.oci_dbm_mcp_server import models, runtime, tools + + +class _Response: + def __init__( + self, + data: Any, + next_page: str | None = None, + headers: dict[str, str] | None = None, + ) -> None: + self.data = data + self.next_page = next_page + self.headers = headers or {} + + +def _managed_database_summary(suffix: str) -> oci.database_management.models.ManagedDatabaseSummary: + return oci.database_management.models.ManagedDatabaseSummary( + id=f"ocid1.manageddatabase.oc1..{suffix}", + compartment_id="ocid1.compartment.oc1..example", + name=f"DB{suffix}", + database_type="EXTERNAL_SIDB", + database_sub_type="NON_CDB", + is_cluster=False, + time_created=datetime(2026, 1, 1, tzinfo=UTC), + ) + + +def _alert_log_summary(suffix: str) -> oci.database_management.models.AlertLogSummary: + return oci.database_management.models.AlertLogSummary( + message_level="CRITICAL", + message_type="ERROR", + message_content=f"alert {suffix}", + ) + + +def _sql_tuning_set_summary(suffix: str) -> oci.database_management.models.SqlTuningSetSummary: + return oci.database_management.models.SqlTuningSetSummary( + name=f"STS{suffix}", + owner="SYS", + ) + + +def test_create_tool_converts_pydantic_model_to_sdk_model(monkeypatch) -> None: + captured: dict[str, Any] = {} + + class FakeDbManagementClient: + def create_managed_database_group(self, **kwargs): + captured.update(kwargs) + return _Response(None) + + monkeypatch.setitem(runtime.CLIENT_GETTERS, "DbManagementClient", lambda: FakeDbManagementClient()) + + result = tools.create_managed_database_group( + create_managed_database_group_details=models.CreateManagedDatabaseGroupDetails( + name="GROUP1", + compartment_id="ocid1.compartment.oc1..example", + ) + ) + + details = captured["create_managed_database_group_details"] + assert result is None + assert isinstance(details, oci.database_management.models.CreateManagedDatabaseGroupDetails) + assert details.name == "GROUP1" + assert details.compartment_id == "ocid1.compartment.oc1..example" + + +def test_create_job_accepts_polymorphic_dict_request(monkeypatch) -> None: + captured: dict[str, Any] = {} + + class FakeDbManagementClient: + def create_job(self, **kwargs): + captured.update(kwargs) + return _Response(None) + + monkeypatch.setitem(runtime.CLIENT_GETTERS, "DbManagementClient", lambda: FakeDbManagementClient()) + + result = tools.create_job( + create_job_details={ + "name": "JOB1", + "compartmentId": "ocid1.compartment.oc1..example", + "managedDatabaseId": "ocid1.manageddatabase.oc1..example", + "scheduleType": "IMMEDIATE", + "jobType": "SQL", + "operationType": "EXECUTE_SQL", + "sqlText": "select 1 from dual", + } + ) + + details = captured["create_job_details"] + assert result is None + assert isinstance(details, oci.database_management.models.CreateSqlJobDetails) + assert details.job_type == "SQL" + assert details.operation_type == "EXECUTE_SQL" + assert details.sql_text == "select 1 from dual" + + +def test_update_tablespace_converts_nested_polymorphic_secret_credential(monkeypatch) -> None: + captured: dict[str, Any] = {} + + class FakeDbManagementClient: + def update_tablespace(self, **kwargs): + captured.update(kwargs) + return _Response(None) + + monkeypatch.setitem(runtime.CLIENT_GETTERS, "DbManagementClient", lambda: FakeDbManagementClient()) + + result = tools.update_tablespace( + managed_database_id="ocid1.manageddatabase.oc1..example", + tablespace_name="USERS", + update_tablespace_details={ + "credentialDetails": { + "tablespaceAdminCredentialType": "SECRET", + "username": "SYS", + "role": "SYSDBA", + "passwordSecretId": "ocid1.vaultsecret.oc1..example", + }, + "name": "USERS_NEW", + }, + ) + + details = captured["update_tablespace_details"] + assert result is None + assert isinstance(details, oci.database_management.models.UpdateTablespaceDetails) + assert isinstance( + details.credential_details, + oci.database_management.models.TablespaceAdminSecretCredentialDetails, + ) + assert details.credential_details.password_secret_id == "ocid1.vaultsecret.oc1..example" + assert details.name == "USERS_NEW" + + +def test_diagnosability_tool_routes_to_diagnosability_client(monkeypatch) -> None: + captured: dict[str, Any] = {} + + class FakeDiagnosabilityClient: + def list_alert_logs(self, **kwargs): + captured.update(kwargs) + return _Response(None) + + monkeypatch.setitem(runtime.CLIENT_GETTERS, "DiagnosabilityClient", lambda: FakeDiagnosabilityClient()) + + result = tools.list_alert_logs( + managed_database_id="ocid1.manageddatabase.oc1..example", + level_filter="CRITICAL", + limit=10, + ) + + assert result is None + assert captured["managed_database_id"] == "ocid1.manageddatabase.oc1..example" + assert captured["level_filter"] == "CRITICAL" + assert captured["limit"] == 10 + + +def test_db_management_tool_auto_paginates_collection(monkeypatch) -> None: + calls: list[dict[str, Any]] = [] + + class FakeDbManagementClient: + def list_managed_databases(self, page=None, limit=None, **kwargs): + calls.append({"page": page, "limit": limit, **kwargs}) + if page is None: + return _Response( + oci.database_management.models.ManagedDatabaseCollection( + items=[_managed_database_summary("one")] + ), + next_page="page-2", + ) + return _Response( + oci.database_management.models.ManagedDatabaseCollection( + items=[_managed_database_summary("two")] + ) + ) + + monkeypatch.setitem(runtime.CLIENT_GETTERS, "DbManagementClient", lambda: FakeDbManagementClient()) + + result = tools.list_managed_databases( + compartment_id="ocid1.compartment.oc1..example", + limit=10, + ) + + assert [item["id"] for item in result["items"]] == [ + "ocid1.manageddatabase.oc1..one", + "ocid1.manageddatabase.oc1..two", + ] + assert calls[0]["limit"] == 10 + assert calls[1]["page"] == "page-2" + assert calls[1]["limit"] == 9 + + +def test_diagnosability_tool_auto_paginates_header_fallback(monkeypatch) -> None: + calls: list[dict[str, Any]] = [] + + class FakeDiagnosabilityClient: + def list_alert_logs(self, page=None, limit=None, **kwargs): + calls.append({"page": page, "limit": limit, **kwargs}) + if page is None: + return _Response( + oci.database_management.models.AlertLogCollection( + managed_database_id="ocid1.manageddatabase.oc1..example", + items=[_alert_log_summary("one")], + ), + headers={"opc-next-page": "page-2"}, + ) + return _Response( + oci.database_management.models.AlertLogCollection( + managed_database_id="ocid1.manageddatabase.oc1..example", + items=[_alert_log_summary("two")], + ) + ) + + monkeypatch.setitem(runtime.CLIENT_GETTERS, "DiagnosabilityClient", lambda: FakeDiagnosabilityClient()) + + result = tools.list_alert_logs( + managed_database_id="ocid1.manageddatabase.oc1..example", + limit=10, + ) + + assert [item["message_content"] for item in result["items"]] == ["alert one", "alert two"] + assert calls[1]["page"] == "page-2" + assert calls[1]["limit"] == 9 + + + + +def test_sql_tuning_tool_routes_to_sql_tuning_client(monkeypatch) -> None: + captured: dict[str, Any] = {} + + class FakeSqlTuningClient: + def create_sql_tuning_set(self, **kwargs): + captured.update(kwargs) + return _Response(None) + + monkeypatch.setitem(runtime.CLIENT_GETTERS, "SqlTuningClient", lambda: FakeSqlTuningClient()) + + result = tools.create_sql_tuning_set( + managed_database_id="ocid1.manageddatabase.oc1..example", + create_sql_tuning_set_details=models.CreateSqlTuningSetDetails(name="STS1"), + ) + + details = captured["create_sql_tuning_set_details"] + assert result is None + assert captured["managed_database_id"] == "ocid1.manageddatabase.oc1..example" + assert isinstance(details, oci.database_management.models.CreateSqlTuningSetDetails) + assert details.name == "STS1" + + +def test_sql_tuning_list_tool_routes_and_paginates(monkeypatch) -> None: + calls: list[dict[str, Any]] = [] + + class FakeSqlTuningClient: + def list_sql_tuning_sets(self, page=None, limit=None, **kwargs): + calls.append({"page": page, "limit": limit, **kwargs}) + if page is None: + return _Response( + oci.database_management.models.SqlTuningSetCollection( + managed_database_id="ocid1.manageddatabase.oc1..example", + items=[_sql_tuning_set_summary("1")], + ), + next_page="page-2", + ) + return _Response( + oci.database_management.models.SqlTuningSetCollection( + managed_database_id="ocid1.manageddatabase.oc1..example", + items=[_sql_tuning_set_summary("2")], + ) + ) + + monkeypatch.setitem(runtime.CLIENT_GETTERS, "SqlTuningClient", lambda: FakeSqlTuningClient()) + + result = tools.list_sql_tuning_sets( + managed_database_id="ocid1.manageddatabase.oc1..example", + limit=10, + ) + + assert [item["name"] for item in result["items"]] == ["STS1", "STS2"] + assert calls[0]["managed_database_id"] == "ocid1.manageddatabase.oc1..example" + assert calls[1]["page"] == "page-2" + assert calls[1]["limit"] == 9 + + +def test_perfhub_client_route_is_absent() -> None: + assert "PerfhubClient" not in runtime.CLIENT_GETTERS diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tools.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tools.py new file mode 100644 index 00000000..2b9ae5f1 --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tools.py @@ -0,0 +1,4384 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at + +""" + +from __future__ import annotations + +from datetime import datetime +from typing import Any, Literal + +from mcp.types import ToolAnnotations +from pydantic import Field + +from oracle.oci_oracle_db_observability.v1.auth import get_oci_config + +from. import __project__, __version__ +from. import models +from.metadata import BOOTSTRAP_TOOL_NAMES, MUTABLE_TOOL_NAMES, TOOL_DESCRIPTIONS, TOOL_NAMES +from.models import * # noqa: F403 +from.mcp import mcp +from.runtime import invoke_dbm, invoke_identity, normalize_tool_value + + +def _tool_title(name: str) -> str: + return name.replace("_", " ").title() + + +def _tool_annotations(name: str) -> ToolAnnotations: + is_mutable = name in MUTABLE_TOOL_NAMES + return ToolAnnotations( + title=_tool_title(name), + readOnlyHint=not is_mutable, + destructiveHint=is_mutable, + idempotentHint=not is_mutable, + openWorldHint=True,) + +TOOL_ANNOTATIONS = {name: _tool_annotations(name) for name in TOOL_NAMES} + + +def _require_tenancy_id() -> str: + config = get_oci_config(__project__, __version__) + tenancy_id = config.get("tenancy") + if not tenancy_id: + raise ValueError("Configured OCI authentication context is missing tenancy.") + return tenancy_id + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_compartment"], + annotations=TOOL_ANNOTATIONS["get_compartment"],) +def get_compartment( + compartment_id: str = Field(..., description="The compartment OCID."),) -> Any: + """Get a compartment by OCID.""" + + compartment_id = normalize_tool_value(compartment_id) + if not compartment_id: + raise ValueError("compartment_id is required.") + + result = invoke_identity("get_compartment", compartment_id=compartment_id) + if result is None: + raise ValueError("identity.get_compartment returned an empty response payload.") + return result + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_compartments"], + annotations=TOOL_ANNOTATIONS["list_compartments"],) +def list_compartments( + root_compartment_id: str | None = Field(None, description="The root compartment OCID. Defaults to the configured tenancy OCID."), + include_subtree: bool = Field(True, description="Whether to include subcompartments."), + access_level: models.CompartmentAccessLevel = Field("ACCESSIBLE", description="Compartment visibility filter: ANY or ACCESSIBLE."), + name: str | None = Field(None, description="Optional exact compartment name filter."), + lifecycle_state: models.CompartmentLifecycleState | None = Field(None, description="Optional compartment lifecycle state filter."), + limit: int = Field(50, description="Maximum number of compartments to return.", ge=1, le=1000),) -> Any: + """List compartments from a root compartment.""" + + root_compartment_id = normalize_tool_value(root_compartment_id) + include_subtree = normalize_tool_value(include_subtree) + access_level = normalize_tool_value(access_level) + name = normalize_tool_value(name) + lifecycle_state = normalize_tool_value(lifecycle_state) + limit = normalize_tool_value(limit) + + resolved_root_compartment_id = root_compartment_id or _require_tenancy_id() + + result = invoke_identity( + "list_compartments", + compartment_id=resolved_root_compartment_id, + compartment_id_in_subtree=include_subtree, + access_level=access_level, + name=name, + lifecycle_state=lifecycle_state, + limit=limit,) + if result is None: + raise ValueError("identity.list_compartments returned an empty response payload.") + return {"items": result, "count": len(result)} + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["addm_tasks"], + annotations=TOOL_ANNOTATIONS["addm_tasks"],) +def addm_tasks( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + time_start: datetime = Field(..., description='The beginning of the time range to search for ADDM tasks as defined by date-time RFC3339 format.'), + time_end: datetime = Field(..., description='The end of the time range to search for ADDM tasks as defined by date-time RFC3339 format.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['TASK_NAME', 'TASK_ID', 'DESCRIPTION', 'DB_USER', 'STATUS', 'TIME_CREATED', 'BEGIN_TIME', 'END_TIME'] | None = Field(None, description='The option to sort the list of ADDM tasks.\n\nAllowed values are: "TASK_NAME", "TASK_ID", "DESCRIPTION", "DB_USER", "STATUS", "TIME_CREATED", "BEGIN_TIME", "END_TIME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Descending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'addm_tasks', + managed_database_id=managed_database_id, + time_start=time_start, + time_end=time_end, + limit=limit, + sort_by=sort_by, + sort_order=sort_order, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["change_cloud_exadata_infrastructure_compartment"], + annotations=TOOL_ANNOTATIONS["change_cloud_exadata_infrastructure_compartment"],) +def change_cloud_exadata_infrastructure_compartment( + cloud_exadata_infrastructure_id: str = Field(..., description='The OCID of the Exadata infrastructure.'), + change_cloud_exadata_infrastructure_compartment_details: dict[str, Any] | ChangeCloudExadataInfrastructureCompartmentDetails = Field(..., description='The details required to move the Exadata infrastructure from one compartment to another.'),) -> Any: + return invoke_dbm( + 'change_cloud_exadata_infrastructure_compartment', + cloud_exadata_infrastructure_id=cloud_exadata_infrastructure_id, + change_cloud_exadata_infrastructure_compartment_details=change_cloud_exadata_infrastructure_compartment_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["change_database_parameters"], + annotations=TOOL_ANNOTATIONS["change_database_parameters"],) +def change_database_parameters( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + change_database_parameters_details: dict[str, Any] | ChangeDatabaseParametersDetails = Field(..., description='The details required to change database parameter values.'),) -> Any: + return invoke_dbm( + 'change_database_parameters', + managed_database_id=managed_database_id, + change_database_parameters_details=change_database_parameters_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["change_db_management_private_endpoint_compartment"], + annotations=TOOL_ANNOTATIONS["change_db_management_private_endpoint_compartment"],) +def change_db_management_private_endpoint_compartment( + db_management_private_endpoint_id: str = Field(..., description='The OCID of the Database Management private endpoint.'), + change_db_management_private_endpoint_compartment_details: dict[str, Any] | ChangeDbManagementPrivateEndpointCompartmentDetails = Field(..., description='The details used to move the Database Management private endpoint to another compartment.'),) -> Any: + return invoke_dbm( + 'change_db_management_private_endpoint_compartment', + db_management_private_endpoint_id=db_management_private_endpoint_id, + change_db_management_private_endpoint_compartment_details=change_db_management_private_endpoint_compartment_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["change_external_db_system_compartment"], + annotations=TOOL_ANNOTATIONS["change_external_db_system_compartment"],) +def change_external_db_system_compartment( + external_db_system_id: str = Field(..., description='The OCID of the external DB system.'), + change_external_db_system_compartment_details: dict[str, Any] | ChangeExternalDbSystemCompartmentDetails = Field(..., description='The OCID of the compartment to which the external DB system should be moved.'),) -> Any: + return invoke_dbm( + 'change_external_db_system_compartment', + external_db_system_id=external_db_system_id, + change_external_db_system_compartment_details=change_external_db_system_compartment_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["change_external_exadata_infrastructure_compartment"], + annotations=TOOL_ANNOTATIONS["change_external_exadata_infrastructure_compartment"],) +def change_external_exadata_infrastructure_compartment( + external_exadata_infrastructure_id: str = Field(..., description='The OCID of the Exadata infrastructure.'), + change_external_exadata_infrastructure_compartment_details: dict[str, Any] | ChangeExternalExadataInfrastructureCompartmentDetails = Field(..., description='The details required to move the Exadata infrastructure from one compartment to another.'),) -> Any: + return invoke_dbm( + 'change_external_exadata_infrastructure_compartment', + external_exadata_infrastructure_id=external_exadata_infrastructure_id, + change_external_exadata_infrastructure_compartment_details=change_external_exadata_infrastructure_compartment_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["change_job_compartment"], + annotations=TOOL_ANNOTATIONS["change_job_compartment"],) +def change_job_compartment( + job_id: str = Field(..., description='The identifier of the job.'), + change_job_compartment_details: dict[str, Any] | ChangeJobCompartmentDetails = Field(..., description='The OCID of the compartment to move the job to.'),) -> Any: + return invoke_dbm( + 'change_job_compartment', + job_id=job_id, + change_job_compartment_details=change_job_compartment_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["change_managed_database_group_compartment"], + annotations=TOOL_ANNOTATIONS["change_managed_database_group_compartment"],) +def change_managed_database_group_compartment( + managed_database_group_id: str = Field(..., description='The OCID of the Managed Database Group.'), + change_managed_database_group_compartment_details: dict[str, Any] | ChangeManagedDatabaseGroupCompartmentDetails = Field(..., description='The OCID of the compartment to move the Managed Database Group to.'),) -> Any: + return invoke_dbm( + 'change_managed_database_group_compartment', + managed_database_group_id=managed_database_group_id, + change_managed_database_group_compartment_details=change_managed_database_group_compartment_details,) + + + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["change_named_credential_compartment"], + annotations=TOOL_ANNOTATIONS["change_named_credential_compartment"],) +def change_named_credential_compartment( + named_credential_id: str = Field(..., description='The OCID of the named credential.'), + change_named_credential_compartment_details: dict[str, Any] | ChangeNamedCredentialCompartmentDetails = Field(..., description='The OCID of the compartment to which the named credential should be moved.'),) -> Any: + return invoke_dbm( + 'change_named_credential_compartment', + named_credential_id=named_credential_id, + change_named_credential_compartment_details=change_named_credential_compartment_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["change_plan_retention"], + annotations=TOOL_ANNOTATIONS["change_plan_retention"],) +def change_plan_retention( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + change_plan_retention_details: dict[str, Any] | ChangePlanRetentionDetails = Field(..., description='The details required to change the plan retention period.'),) -> Any: + return invoke_dbm( + 'change_plan_retention', + managed_database_id=managed_database_id, + change_plan_retention_details=change_plan_retention_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["change_space_budget"], + annotations=TOOL_ANNOTATIONS["change_space_budget"],) +def change_space_budget( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + change_space_budget_details: dict[str, Any] | ChangeSpaceBudgetDetails = Field(..., description='The details required to change the disk space limit for the SQL Management Base.'),) -> Any: + return invoke_dbm( + 'change_space_budget', + managed_database_id=managed_database_id, + change_space_budget_details=change_space_budget_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["change_sql_plan_baselines_attributes"], + annotations=TOOL_ANNOTATIONS["change_sql_plan_baselines_attributes"],) +def change_sql_plan_baselines_attributes( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + change_sql_plan_baselines_attributes_details: dict[str, Any] | ChangeSqlPlanBaselinesAttributesDetails = Field(..., description='The details required to change SQL plan baseline attributes.'),) -> Any: + return invoke_dbm( + 'change_sql_plan_baselines_attributes', + managed_database_id=managed_database_id, + change_sql_plan_baselines_attributes_details=change_sql_plan_baselines_attributes_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["check_cloud_db_system_connector_connection_status"], + annotations=TOOL_ANNOTATIONS["check_cloud_db_system_connector_connection_status"],) +def check_cloud_db_system_connector_connection_status( + cloud_db_system_connector_id: str = Field(..., description='The OCID of the cloud connector.'),) -> Any: + return invoke_dbm( + 'check_cloud_db_system_connector_connection_status', + cloud_db_system_connector_id=cloud_db_system_connector_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["check_cloud_exadata_storage_connector"], + annotations=TOOL_ANNOTATIONS["check_cloud_exadata_storage_connector"],) +def check_cloud_exadata_storage_connector( + cloud_exadata_storage_connector_id: str = Field(..., description='The OCID of the connector to the Exadata storage server.'),) -> Any: + return invoke_dbm( + 'check_cloud_exadata_storage_connector', + cloud_exadata_storage_connector_id=cloud_exadata_storage_connector_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["check_external_db_system_connector_connection_status"], + annotations=TOOL_ANNOTATIONS["check_external_db_system_connector_connection_status"],) +def check_external_db_system_connector_connection_status( + external_db_system_connector_id: str = Field(..., description='The OCID of the external connector.'),) -> Any: + return invoke_dbm( + 'check_external_db_system_connector_connection_status', + external_db_system_connector_id=external_db_system_connector_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["check_external_exadata_storage_connector"], + annotations=TOOL_ANNOTATIONS["check_external_exadata_storage_connector"],) +def check_external_exadata_storage_connector( + external_exadata_storage_connector_id: str = Field(..., description='The OCID of the connector to the Exadata storage server.'),) -> Any: + return invoke_dbm( + 'check_external_exadata_storage_connector', + external_exadata_storage_connector_id=external_exadata_storage_connector_id,) + + + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["create_cloud_db_system"], + annotations=TOOL_ANNOTATIONS["create_cloud_db_system"],) +def create_cloud_db_system( + create_cloud_db_system_details: dict[str, Any] | CreateCloudDbSystemDetails = Field(..., description='The details required to create an cloud DB system.'),) -> Any: + return invoke_dbm( + 'create_cloud_db_system', + create_cloud_db_system_details=create_cloud_db_system_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["create_cloud_db_system_connector"], + annotations=TOOL_ANNOTATIONS["create_cloud_db_system_connector"],) +def create_cloud_db_system_connector( + create_cloud_db_system_connector_details: dict[str, Any] | CreateCloudDbSystemConnectorDetails = Field(..., description='The details required to create an cloud connector.'),) -> Any: + return invoke_dbm( + 'create_cloud_db_system_connector', + create_cloud_db_system_connector_details=create_cloud_db_system_connector_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["create_cloud_db_system_discovery"], + annotations=TOOL_ANNOTATIONS["create_cloud_db_system_discovery"],) +def create_cloud_db_system_discovery( + create_cloud_db_system_discovery_details: dict[str, Any] | CreateCloudDbSystemDiscoveryDetails = Field(..., description='The details required to create an cloud DB system discovery.'),) -> Any: + return invoke_dbm( + 'create_cloud_db_system_discovery', + create_cloud_db_system_discovery_details=create_cloud_db_system_discovery_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["create_cloud_exadata_infrastructure"], + annotations=TOOL_ANNOTATIONS["create_cloud_exadata_infrastructure"],) +def create_cloud_exadata_infrastructure( + create_cloud_exadata_infrastructure_details: dict[str, Any] | CreateCloudExadataInfrastructureDetails = Field(..., description='The details required to create the managed Exadata infrastructure resources.'),) -> Any: + return invoke_dbm( + 'create_cloud_exadata_infrastructure', + create_cloud_exadata_infrastructure_details=create_cloud_exadata_infrastructure_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["create_cloud_exadata_storage_connector"], + annotations=TOOL_ANNOTATIONS["create_cloud_exadata_storage_connector"],) +def create_cloud_exadata_storage_connector( + create_cloud_exadata_storage_connector_details: dict[str, Any] | CreateCloudExadataStorageConnectorDetails = Field(..., description='The details required to add connections to the Exadata storage servers.'),) -> Any: + return invoke_dbm( + 'create_cloud_exadata_storage_connector', + create_cloud_exadata_storage_connector_details=create_cloud_exadata_storage_connector_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["create_db_management_private_endpoint"], + annotations=TOOL_ANNOTATIONS["create_db_management_private_endpoint"],) +def create_db_management_private_endpoint( + create_db_management_private_endpoint_details: dict[str, Any] | CreateDbManagementPrivateEndpointDetails = Field(..., description='Details used to create a new Database Management private endpoint.'),) -> Any: + return invoke_dbm( + 'create_db_management_private_endpoint', + create_db_management_private_endpoint_details=create_db_management_private_endpoint_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["create_external_db_system"], + annotations=TOOL_ANNOTATIONS["create_external_db_system"],) +def create_external_db_system( + create_external_db_system_details: dict[str, Any] | CreateExternalDbSystemDetails = Field(..., description='The details required to create an external DB system.'),) -> Any: + return invoke_dbm( + 'create_external_db_system', + create_external_db_system_details=create_external_db_system_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["create_external_db_system_connector"], + annotations=TOOL_ANNOTATIONS["create_external_db_system_connector"],) +def create_external_db_system_connector( + create_external_db_system_connector_details: dict[str, Any] | CreateExternalDbSystemConnectorDetails = Field(..., description='The details required to create an external connector.'),) -> Any: + return invoke_dbm( + 'create_external_db_system_connector', + create_external_db_system_connector_details=create_external_db_system_connector_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["create_external_db_system_discovery"], + annotations=TOOL_ANNOTATIONS["create_external_db_system_discovery"],) +def create_external_db_system_discovery( + create_external_db_system_discovery_details: dict[str, Any] | CreateExternalDbSystemDiscoveryDetails = Field(..., description='The details required to create an external DB system discovery.'),) -> Any: + return invoke_dbm( + 'create_external_db_system_discovery', + create_external_db_system_discovery_details=create_external_db_system_discovery_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["create_external_exadata_infrastructure"], + annotations=TOOL_ANNOTATIONS["create_external_exadata_infrastructure"],) +def create_external_exadata_infrastructure( + create_external_exadata_infrastructure_details: dict[str, Any] | CreateExternalExadataInfrastructureDetails = Field(..., description='The details required to create the managed Exadata infrastructure resources.'),) -> Any: + return invoke_dbm( + 'create_external_exadata_infrastructure', + create_external_exadata_infrastructure_details=create_external_exadata_infrastructure_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["create_external_exadata_storage_connector"], + annotations=TOOL_ANNOTATIONS["create_external_exadata_storage_connector"],) +def create_external_exadata_storage_connector( + create_external_exadata_storage_connector_details: dict[str, Any] | CreateExternalExadataStorageConnectorDetails = Field(..., description='The details required to add connections to the Exadata storage servers.'),) -> Any: + return invoke_dbm( + 'create_external_exadata_storage_connector', + create_external_exadata_storage_connector_details=create_external_exadata_storage_connector_details,) + + + + + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["create_job"], + annotations=TOOL_ANNOTATIONS["create_job"],) +def create_job( + create_job_details: dict[str, Any] | CreateJobDetails = Field(..., description='The details required to create a job.'),) -> Any: + return invoke_dbm( + 'create_job', + create_job_details=create_job_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["create_managed_database_group"], + annotations=TOOL_ANNOTATIONS["create_managed_database_group"],) +def create_managed_database_group( + create_managed_database_group_details: dict[str, Any] | CreateManagedDatabaseGroupDetails = Field(..., description='The details required to create a Managed Database Group.'),) -> Any: + return invoke_dbm( + 'create_managed_database_group', + create_managed_database_group_details=create_managed_database_group_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["create_named_credential"], + annotations=TOOL_ANNOTATIONS["create_named_credential"],) +def create_named_credential( + create_named_credential_details: dict[str, Any] | CreateNamedCredentialDetails = Field(..., description='The details required to create a named credential.'),) -> Any: + return invoke_dbm( + 'create_named_credential', + create_named_credential_details=create_named_credential_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["create_sql_tuning_set"], + annotations=TOOL_ANNOTATIONS["create_sql_tuning_set"],) +def create_sql_tuning_set( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + create_sql_tuning_set_details: dict[str, Any] | CreateSqlTuningSetDetails = Field(..., description='The details required to create a Sql tuning set.'),) -> Any: + return invoke_dbm( + 'create_sql_tuning_set', + managed_database_id=managed_database_id, + create_sql_tuning_set_details=create_sql_tuning_set_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["create_tablespace"], + annotations=TOOL_ANNOTATIONS["create_tablespace"],) +def create_tablespace( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + create_tablespace_details: dict[str, Any] | CreateTablespaceDetails = Field(..., description='The details required to create a tablespace.'),) -> Any: + return invoke_dbm( + 'create_tablespace', + managed_database_id=managed_database_id, + create_tablespace_details=create_tablespace_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["disable_automatic_initial_plan_capture"], + annotations=TOOL_ANNOTATIONS["disable_automatic_initial_plan_capture"],) +def disable_automatic_initial_plan_capture( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + disable_automatic_initial_plan_capture_details: dict[str, Any] | DisableAutomaticInitialPlanCaptureDetails = Field(..., description='The details required to disable automatic initial plan capture.'),) -> Any: + return invoke_dbm( + 'disable_automatic_initial_plan_capture', + managed_database_id=managed_database_id, + disable_automatic_initial_plan_capture_details=disable_automatic_initial_plan_capture_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["disable_automatic_spm_evolve_advisor_task"], + annotations=TOOL_ANNOTATIONS["disable_automatic_spm_evolve_advisor_task"],) +def disable_automatic_spm_evolve_advisor_task( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + disable_automatic_spm_evolve_advisor_task_details: dict[str, Any] | DisableAutomaticSpmEvolveAdvisorTaskDetails = Field(..., description='The details required to disable Automatic SPM Evolve Advisor task.'),) -> Any: + return invoke_dbm( + 'disable_automatic_spm_evolve_advisor_task', + managed_database_id=managed_database_id, + disable_automatic_spm_evolve_advisor_task_details=disable_automatic_spm_evolve_advisor_task_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["disable_autonomous_database_management_feature"], + annotations=TOOL_ANNOTATIONS["disable_autonomous_database_management_feature"],) +def disable_autonomous_database_management_feature( + autonomous_database_id: str = Field(..., description='The OCID of the Autonomous Database.'), + disable_autonomous_database_management_feature_details: dict[str, Any] | DisableAutonomousDatabaseManagementFeatureDetails = Field(..., description='The details required to disable a Database Management feature for an Autonomous Database.'),) -> Any: + return invoke_dbm( + 'disable_autonomous_database_management_feature', + autonomous_database_id=autonomous_database_id, + disable_autonomous_database_management_feature_details=disable_autonomous_database_management_feature_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["disable_cloud_db_system_database_management"], + annotations=TOOL_ANNOTATIONS["disable_cloud_db_system_database_management"],) +def disable_cloud_db_system_database_management( + cloud_db_system_id: str = Field(..., description='The OCID of the cloud DB system.'),) -> Any: + return invoke_dbm( + 'disable_cloud_db_system_database_management', + cloud_db_system_id=cloud_db_system_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["disable_cloud_db_system_stack_monitoring"], + annotations=TOOL_ANNOTATIONS["disable_cloud_db_system_stack_monitoring"],) +def disable_cloud_db_system_stack_monitoring( + cloud_db_system_id: str = Field(..., description='The OCID of the cloud DB system.'),) -> Any: + return invoke_dbm( + 'disable_cloud_db_system_stack_monitoring', + cloud_db_system_id=cloud_db_system_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["disable_cloud_exadata_infrastructure_management"], + annotations=TOOL_ANNOTATIONS["disable_cloud_exadata_infrastructure_management"],) +def disable_cloud_exadata_infrastructure_management( + cloud_exadata_infrastructure_id: str = Field(..., description='The OCID of the Exadata infrastructure.'),) -> Any: + return invoke_dbm( + 'disable_cloud_exadata_infrastructure_management', + cloud_exadata_infrastructure_id=cloud_exadata_infrastructure_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["disable_database_management_feature"], + annotations=TOOL_ANNOTATIONS["disable_database_management_feature"],) +def disable_database_management_feature( + database_id: str = Field(..., description='The OCID of the Database.'), + disable_database_management_feature_details: dict[str, Any] | DisableDatabaseManagementFeatureDetails = Field(..., description='The details required to disable a Database Management feature for an Oracle cloud database.'),) -> Any: + return invoke_dbm( + 'disable_database_management_feature', + database_id=database_id, + disable_database_management_feature_details=disable_database_management_feature_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["disable_external_container_database_management_feature"], + annotations=TOOL_ANNOTATIONS["disable_external_container_database_management_feature"],) +def disable_external_container_database_management_feature( + external_container_database_id: str = Field(..., description='The OCID of the external container database.'), + disable_external_container_database_management_feature_details: dict[str, Any] | DisableExternalContainerDatabaseManagementFeatureDetails = Field(..., description='The details required to disable a Database Management feature for an external container database.'),) -> Any: + return invoke_dbm( + 'disable_external_container_database_management_feature', + external_container_database_id=external_container_database_id, + disable_external_container_database_management_feature_details=disable_external_container_database_management_feature_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["disable_external_db_system_database_management"], + annotations=TOOL_ANNOTATIONS["disable_external_db_system_database_management"],) +def disable_external_db_system_database_management( + external_db_system_id: str = Field(..., description='The OCID of the external DB system.'),) -> Any: + return invoke_dbm( + 'disable_external_db_system_database_management', + external_db_system_id=external_db_system_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["disable_external_db_system_stack_monitoring"], + annotations=TOOL_ANNOTATIONS["disable_external_db_system_stack_monitoring"],) +def disable_external_db_system_stack_monitoring( + external_db_system_id: str = Field(..., description='The OCID of the external DB system.'),) -> Any: + return invoke_dbm( + 'disable_external_db_system_stack_monitoring', + external_db_system_id=external_db_system_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["disable_external_exadata_infrastructure_management"], + annotations=TOOL_ANNOTATIONS["disable_external_exadata_infrastructure_management"],) +def disable_external_exadata_infrastructure_management( + external_exadata_infrastructure_id: str = Field(..., description='The OCID of the Exadata infrastructure.'),) -> Any: + return invoke_dbm( + 'disable_external_exadata_infrastructure_management', + external_exadata_infrastructure_id=external_exadata_infrastructure_id,) + + + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["disable_external_non_container_database_management_feature"], + annotations=TOOL_ANNOTATIONS["disable_external_non_container_database_management_feature"],) +def disable_external_non_container_database_management_feature( + external_non_container_database_id: str = Field(..., description='The OCID of the external non-container database.'), + disable_external_non_container_database_management_feature_details: dict[str, Any] | DisableExternalNonContainerDatabaseManagementFeatureDetails = Field(..., description='The details required to disable a Database Management feature for an external non-container database.'),) -> Any: + return invoke_dbm( + 'disable_external_non_container_database_management_feature', + external_non_container_database_id=external_non_container_database_id, + disable_external_non_container_database_management_feature_details=disable_external_non_container_database_management_feature_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["disable_external_pluggable_database_management_feature"], + annotations=TOOL_ANNOTATIONS["disable_external_pluggable_database_management_feature"],) +def disable_external_pluggable_database_management_feature( + external_pluggable_database_id: str = Field(..., description='The OCID of the external pluggable database.'), + disable_external_pluggable_database_management_feature_details: dict[str, Any] | DisableExternalPluggableDatabaseManagementFeatureDetails = Field(..., description='The details required to disable a Database Management feature for an external pluggable database.'),) -> Any: + return invoke_dbm( + 'disable_external_pluggable_database_management_feature', + external_pluggable_database_id=external_pluggable_database_id, + disable_external_pluggable_database_management_feature_details=disable_external_pluggable_database_management_feature_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["disable_high_frequency_automatic_spm_evolve_advisor_task"], + annotations=TOOL_ANNOTATIONS["disable_high_frequency_automatic_spm_evolve_advisor_task"],) +def disable_high_frequency_automatic_spm_evolve_advisor_task( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + disable_high_frequency_automatic_spm_evolve_advisor_task_details: dict[str, Any] | DisableHighFrequencyAutomaticSpmEvolveAdvisorTaskDetails = Field(..., description='The details required to disable high frequency Automatic SPM Evolve Advisor task.'),) -> Any: + return invoke_dbm( + 'disable_high_frequency_automatic_spm_evolve_advisor_task', + managed_database_id=managed_database_id, + disable_high_frequency_automatic_spm_evolve_advisor_task_details=disable_high_frequency_automatic_spm_evolve_advisor_task_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["disable_pluggable_database_management_feature"], + annotations=TOOL_ANNOTATIONS["disable_pluggable_database_management_feature"],) +def disable_pluggable_database_management_feature( + pluggable_database_id: str = Field(..., description='The OCID of the Oracle cloud pluggable database.'), + disable_pluggable_database_management_feature_details: dict[str, Any] | DisablePluggableDatabaseManagementFeatureDetails = Field(..., description='The details required to disable a Database Management feature for an Oracle cloud pluggable database.'),) -> Any: + return invoke_dbm( + 'disable_pluggable_database_management_feature', + pluggable_database_id=pluggable_database_id, + disable_pluggable_database_management_feature_details=disable_pluggable_database_management_feature_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["disable_sql_plan_baselines_usage"], + annotations=TOOL_ANNOTATIONS["disable_sql_plan_baselines_usage"],) +def disable_sql_plan_baselines_usage( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + disable_sql_plan_baselines_usage_details: dict[str, Any] | DisableSqlPlanBaselinesUsageDetails = Field(..., description='The details required to disable SQL plan baseline usage.'),) -> Any: + return invoke_dbm( + 'disable_sql_plan_baselines_usage', + managed_database_id=managed_database_id, + disable_sql_plan_baselines_usage_details=disable_sql_plan_baselines_usage_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["discover_cloud_exadata_infrastructure"], + annotations=TOOL_ANNOTATIONS["discover_cloud_exadata_infrastructure"],) +def discover_cloud_exadata_infrastructure( + discover_cloud_exadata_infrastructure_details: dict[str, Any] | DiscoverCloudExadataInfrastructureDetails = Field(..., description='The details required to discover and monitor the Exadata infrastructure.'),) -> Any: + return invoke_dbm( + 'discover_cloud_exadata_infrastructure', + discover_cloud_exadata_infrastructure_details=discover_cloud_exadata_infrastructure_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["discover_external_exadata_infrastructure"], + annotations=TOOL_ANNOTATIONS["discover_external_exadata_infrastructure"],) +def discover_external_exadata_infrastructure( + discover_external_exadata_infrastructure_details: dict[str, Any] | DiscoverExternalExadataInfrastructureDetails = Field(..., description='The details required to discover and monitor the Exadata infrastructure.'),) -> Any: + return invoke_dbm( + 'discover_external_exadata_infrastructure', + discover_external_exadata_infrastructure_details=discover_external_exadata_infrastructure_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["enable_automatic_initial_plan_capture"], + annotations=TOOL_ANNOTATIONS["enable_automatic_initial_plan_capture"],) +def enable_automatic_initial_plan_capture( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + enable_automatic_initial_plan_capture_details: dict[str, Any] | EnableAutomaticInitialPlanCaptureDetails = Field(..., description='The details required to enable automatic initial plan capture.'),) -> Any: + return invoke_dbm( + 'enable_automatic_initial_plan_capture', + managed_database_id=managed_database_id, + enable_automatic_initial_plan_capture_details=enable_automatic_initial_plan_capture_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["enable_automatic_spm_evolve_advisor_task"], + annotations=TOOL_ANNOTATIONS["enable_automatic_spm_evolve_advisor_task"],) +def enable_automatic_spm_evolve_advisor_task( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + enable_automatic_spm_evolve_advisor_task_details: dict[str, Any] | EnableAutomaticSpmEvolveAdvisorTaskDetails = Field(..., description='The details required to enable Automatic SPM Evolve Advisor task.'),) -> Any: + return invoke_dbm( + 'enable_automatic_spm_evolve_advisor_task', + managed_database_id=managed_database_id, + enable_automatic_spm_evolve_advisor_task_details=enable_automatic_spm_evolve_advisor_task_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["enable_autonomous_database_management_feature"], + annotations=TOOL_ANNOTATIONS["enable_autonomous_database_management_feature"],) +def enable_autonomous_database_management_feature( + autonomous_database_id: str = Field(..., description='The OCID of the Autonomous Database.'), + enable_autonomous_database_management_feature_details: dict[str, Any] | EnableAutonomousDatabaseManagementFeatureDetails = Field(..., description='The details required to enable a Database Management feature for an Autonomous Database.'),) -> Any: + return invoke_dbm( + 'enable_autonomous_database_management_feature', + autonomous_database_id=autonomous_database_id, + enable_autonomous_database_management_feature_details=enable_autonomous_database_management_feature_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["enable_cloud_db_system_database_management"], + annotations=TOOL_ANNOTATIONS["enable_cloud_db_system_database_management"],) +def enable_cloud_db_system_database_management( + cloud_db_system_id: str = Field(..., description='The OCID of the cloud DB system.'), + enable_cloud_db_system_database_management_details: dict[str, Any] | EnableCloudDbSystemDatabaseManagementDetails = Field(..., description='The details required to enable Stack Monitoring for an cloud DB system.'),) -> Any: + return invoke_dbm( + 'enable_cloud_db_system_database_management', + cloud_db_system_id=cloud_db_system_id, + enable_cloud_db_system_database_management_details=enable_cloud_db_system_database_management_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["enable_cloud_db_system_stack_monitoring"], + annotations=TOOL_ANNOTATIONS["enable_cloud_db_system_stack_monitoring"],) +def enable_cloud_db_system_stack_monitoring( + cloud_db_system_id: str = Field(..., description='The OCID of the cloud DB system.'), + enable_cloud_db_system_stack_monitoring_details: dict[str, Any] | EnableCloudDbSystemStackMonitoringDetails = Field(..., description='The details required to enable Stack Monitoring for an cloud DB system.'),) -> Any: + return invoke_dbm( + 'enable_cloud_db_system_stack_monitoring', + cloud_db_system_id=cloud_db_system_id, + enable_cloud_db_system_stack_monitoring_details=enable_cloud_db_system_stack_monitoring_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["enable_cloud_exadata_infrastructure_management"], + annotations=TOOL_ANNOTATIONS["enable_cloud_exadata_infrastructure_management"],) +def enable_cloud_exadata_infrastructure_management( + cloud_exadata_infrastructure_id: str = Field(..., description='The OCID of the Exadata infrastructure.'), + enable_cloud_exadata_infrastructure_management_details: dict[str, Any] | EnableCloudExadataInfrastructureManagementDetails = Field(..., description='The details required to enable management for the Exadata infrastructure.'),) -> Any: + return invoke_dbm( + 'enable_cloud_exadata_infrastructure_management', + cloud_exadata_infrastructure_id=cloud_exadata_infrastructure_id, + enable_cloud_exadata_infrastructure_management_details=enable_cloud_exadata_infrastructure_management_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["enable_database_management_feature"], + annotations=TOOL_ANNOTATIONS["enable_database_management_feature"],) +def enable_database_management_feature( + database_id: str = Field(..., description='The OCID of the Database.'), + enable_database_management_feature_details: dict[str, Any] | EnableDatabaseManagementFeatureDetails = Field(..., description='The details required to enable a Database Management feature for an Oracle cloud database.'),) -> Any: + return invoke_dbm( + 'enable_database_management_feature', + database_id=database_id, + enable_database_management_feature_details=enable_database_management_feature_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["enable_external_container_database_management_feature"], + annotations=TOOL_ANNOTATIONS["enable_external_container_database_management_feature"],) +def enable_external_container_database_management_feature( + external_container_database_id: str = Field(..., description='The OCID of the external container database.'), + enable_external_container_database_management_feature_details: dict[str, Any] | EnableExternalContainerDatabaseManagementFeatureDetails = Field(..., description='The details required to enable a Database Management feature for an external container database.'),) -> Any: + return invoke_dbm( + 'enable_external_container_database_management_feature', + external_container_database_id=external_container_database_id, + enable_external_container_database_management_feature_details=enable_external_container_database_management_feature_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["enable_external_db_system_database_management"], + annotations=TOOL_ANNOTATIONS["enable_external_db_system_database_management"],) +def enable_external_db_system_database_management( + external_db_system_id: str = Field(..., description='The OCID of the external DB system.'), + enable_external_db_system_database_management_details: dict[str, Any] | EnableExternalDbSystemDatabaseManagementDetails = Field(..., description='The details required to enable Database Management for an external DB system.'),) -> Any: + return invoke_dbm( + 'enable_external_db_system_database_management', + external_db_system_id=external_db_system_id, + enable_external_db_system_database_management_details=enable_external_db_system_database_management_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["enable_external_db_system_stack_monitoring"], + annotations=TOOL_ANNOTATIONS["enable_external_db_system_stack_monitoring"],) +def enable_external_db_system_stack_monitoring( + external_db_system_id: str = Field(..., description='The OCID of the external DB system.'), + enable_external_db_system_stack_monitoring_details: dict[str, Any] | EnableExternalDbSystemStackMonitoringDetails = Field(..., description='The details required to enable Stack Monitoring for an external DB system.'),) -> Any: + return invoke_dbm( + 'enable_external_db_system_stack_monitoring', + external_db_system_id=external_db_system_id, + enable_external_db_system_stack_monitoring_details=enable_external_db_system_stack_monitoring_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["enable_external_exadata_infrastructure_management"], + annotations=TOOL_ANNOTATIONS["enable_external_exadata_infrastructure_management"],) +def enable_external_exadata_infrastructure_management( + external_exadata_infrastructure_id: str = Field(..., description='The OCID of the Exadata infrastructure.'), + enable_external_exadata_infrastructure_management_details: dict[str, Any] | EnableExternalExadataInfrastructureManagementDetails = Field(..., description='The details required to enable management for the Exadata infrastructure.'),) -> Any: + return invoke_dbm( + 'enable_external_exadata_infrastructure_management', + external_exadata_infrastructure_id=external_exadata_infrastructure_id, + enable_external_exadata_infrastructure_management_details=enable_external_exadata_infrastructure_management_details,) + + + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["enable_external_non_container_database_management_feature"], + annotations=TOOL_ANNOTATIONS["enable_external_non_container_database_management_feature"],) +def enable_external_non_container_database_management_feature( + external_non_container_database_id: str = Field(..., description='The OCID of the external non-container database.'), + enable_external_non_container_database_management_feature_details: dict[str, Any] | EnableExternalNonContainerDatabaseManagementFeatureDetails = Field(..., description='The details required to enable a Database Management feature for an external non-container database.'),) -> Any: + return invoke_dbm( + 'enable_external_non_container_database_management_feature', + external_non_container_database_id=external_non_container_database_id, + enable_external_non_container_database_management_feature_details=enable_external_non_container_database_management_feature_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["enable_external_pluggable_database_management_feature"], + annotations=TOOL_ANNOTATIONS["enable_external_pluggable_database_management_feature"],) +def enable_external_pluggable_database_management_feature( + external_pluggable_database_id: str = Field(..., description='The OCID of the external pluggable database.'), + enable_external_pluggable_database_management_feature_details: dict[str, Any] | EnableExternalPluggableDatabaseManagementFeatureDetails = Field(..., description='The details required to enable a Database Management feature for an external pluggable database.'),) -> Any: + return invoke_dbm( + 'enable_external_pluggable_database_management_feature', + external_pluggable_database_id=external_pluggable_database_id, + enable_external_pluggable_database_management_feature_details=enable_external_pluggable_database_management_feature_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["enable_high_frequency_automatic_spm_evolve_advisor_task"], + annotations=TOOL_ANNOTATIONS["enable_high_frequency_automatic_spm_evolve_advisor_task"],) +def enable_high_frequency_automatic_spm_evolve_advisor_task( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + enable_high_frequency_automatic_spm_evolve_advisor_task_details: dict[str, Any] | EnableHighFrequencyAutomaticSpmEvolveAdvisorTaskDetails = Field(..., description='The details required to enable high frequency Automatic SPM Evolve Advisor task.'),) -> Any: + return invoke_dbm( + 'enable_high_frequency_automatic_spm_evolve_advisor_task', + managed_database_id=managed_database_id, + enable_high_frequency_automatic_spm_evolve_advisor_task_details=enable_high_frequency_automatic_spm_evolve_advisor_task_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["enable_pluggable_database_management_feature"], + annotations=TOOL_ANNOTATIONS["enable_pluggable_database_management_feature"],) +def enable_pluggable_database_management_feature( + pluggable_database_id: str = Field(..., description='The OCID of the Oracle cloud pluggable database.'), + enable_pluggable_database_management_feature_details: dict[str, Any] | EnablePluggableDatabaseManagementFeatureDetails = Field(..., description='The details required to enable a Database Management feature for an Oracle cloud pluggable database.'),) -> Any: + return invoke_dbm( + 'enable_pluggable_database_management_feature', + pluggable_database_id=pluggable_database_id, + enable_pluggable_database_management_feature_details=enable_pluggable_database_management_feature_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["enable_sql_plan_baselines_usage"], + annotations=TOOL_ANNOTATIONS["enable_sql_plan_baselines_usage"],) +def enable_sql_plan_baselines_usage( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + enable_sql_plan_baselines_usage_details: dict[str, Any] | EnableSqlPlanBaselinesUsageDetails = Field(..., description='The details required to enable SQL plan baseline usage.'),) -> Any: + return invoke_dbm( + 'enable_sql_plan_baselines_usage', + managed_database_id=managed_database_id, + enable_sql_plan_baselines_usage_details=enable_sql_plan_baselines_usage_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["generate_awr_snapshot"], + annotations=TOOL_ANNOTATIONS["generate_awr_snapshot"],) +def generate_awr_snapshot( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'generate_awr_snapshot', + managed_database_id=managed_database_id, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_awr_db_report"], + annotations=TOOL_ANNOTATIONS["get_awr_db_report"],) +def get_awr_db_report( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + awr_db_id: str = Field(..., description='Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.'), + inst_nums: list[int] | None = Field(None, description='The optional multiple value query parameter to filter the database instance numbers.'), + begin_sn_id_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), + end_sn_id_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot ID.'), + time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp.'), + time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp.'), + report_type: Literal['AWR', 'ASH'] | None = Field(None, description='The query parameter to filter the AWR report types.\n\nAllowed values are: "AWR", "ASH"'), + container_id: int | None = Field(None, description='AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.'), + report_format: Literal['HTML', 'TEXT'] | None = Field(None, description='The format of the AWR report.\n\nAllowed values are: "HTML", "TEXT"'), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'get_awr_db_report', + managed_database_id=managed_database_id, + awr_db_id=awr_db_id, + inst_nums=inst_nums, + begin_sn_id_greater_than_or_equal_to=begin_sn_id_greater_than_or_equal_to, + end_sn_id_less_than_or_equal_to=end_sn_id_less_than_or_equal_to, + time_greater_than_or_equal_to=time_greater_than_or_equal_to, + time_less_than_or_equal_to=time_less_than_or_equal_to, + report_type=report_type, + container_id=container_id, + report_format=report_format, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_awr_db_sql_report"], + annotations=TOOL_ANNOTATIONS["get_awr_db_sql_report"],) +def get_awr_db_sql_report( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + awr_db_id: str = Field(..., description='Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.'), + sql_id: str = Field(..., description='Oracle-generated SQL ID for a SQL statement in AWR or Performance Hub data.'), + inst_num: str | None = Field(None, description='The optional single value query parameter to filter the database instance number.'), + begin_sn_id_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), + end_sn_id_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot ID.'), + time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp.'), + time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp.'), + report_format: Literal['HTML', 'TEXT'] | None = Field(None, description='The format of the AWR report.\n\nAllowed values are: "HTML", "TEXT"'), + container_id: int | None = Field(None, description='AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.'), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'get_awr_db_sql_report', + managed_database_id=managed_database_id, + awr_db_id=awr_db_id, + sql_id=sql_id, + inst_num=inst_num, + begin_sn_id_greater_than_or_equal_to=begin_sn_id_greater_than_or_equal_to, + end_sn_id_less_than_or_equal_to=end_sn_id_less_than_or_equal_to, + time_greater_than_or_equal_to=time_greater_than_or_equal_to, + time_less_than_or_equal_to=time_less_than_or_equal_to, + report_format=report_format, + container_id=container_id, + opc_named_credential_id=opc_named_credential_id,) + + + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_cloud_asm"], + annotations=TOOL_ANNOTATIONS["get_cloud_asm"],) +def get_cloud_asm( + cloud_asm_id: str = Field(..., description='The OCID of the cloud ASM.'),) -> Any: + return invoke_dbm( + 'get_cloud_asm', + cloud_asm_id=cloud_asm_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_cloud_asm_configuration"], + annotations=TOOL_ANNOTATIONS["get_cloud_asm_configuration"],) +def get_cloud_asm_configuration( + cloud_asm_id: str = Field(..., description='The OCID of the cloud ASM.'), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'get_cloud_asm_configuration', + cloud_asm_id=cloud_asm_id, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_cloud_asm_instance"], + annotations=TOOL_ANNOTATIONS["get_cloud_asm_instance"],) +def get_cloud_asm_instance( + cloud_asm_instance_id: str = Field(..., description='The OCID of the cloud ASM instance.'),) -> Any: + return invoke_dbm( + 'get_cloud_asm_instance', + cloud_asm_instance_id=cloud_asm_instance_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_cloud_cluster"], + annotations=TOOL_ANNOTATIONS["get_cloud_cluster"],) +def get_cloud_cluster( + cloud_cluster_id: str = Field(..., description='The OCID of the cloud cluster.'),) -> Any: + return invoke_dbm( + 'get_cloud_cluster', + cloud_cluster_id=cloud_cluster_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_cloud_cluster_instance"], + annotations=TOOL_ANNOTATIONS["get_cloud_cluster_instance"],) +def get_cloud_cluster_instance( + cloud_cluster_instance_id: str = Field(..., description='The OCID of the cloud cluster instance.'),) -> Any: + return invoke_dbm( + 'get_cloud_cluster_instance', + cloud_cluster_instance_id=cloud_cluster_instance_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_cloud_db_home"], + annotations=TOOL_ANNOTATIONS["get_cloud_db_home"],) +def get_cloud_db_home( + cloud_db_home_id: str = Field(..., description='The OCID of the cloud database home.'),) -> Any: + return invoke_dbm( + 'get_cloud_db_home', + cloud_db_home_id=cloud_db_home_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_cloud_db_node"], + annotations=TOOL_ANNOTATIONS["get_cloud_db_node"],) +def get_cloud_db_node( + cloud_db_node_id: str = Field(..., description='The OCID of the cloud database node.'),) -> Any: + return invoke_dbm( + 'get_cloud_db_node', + cloud_db_node_id=cloud_db_node_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_cloud_db_system"], + annotations=TOOL_ANNOTATIONS["get_cloud_db_system"],) +def get_cloud_db_system( + cloud_db_system_id: str = Field(..., description='The OCID of the cloud DB system.'),) -> Any: + return invoke_dbm( + 'get_cloud_db_system', + cloud_db_system_id=cloud_db_system_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_cloud_db_system_connector"], + annotations=TOOL_ANNOTATIONS["get_cloud_db_system_connector"],) +def get_cloud_db_system_connector( + cloud_db_system_connector_id: str = Field(..., description='The OCID of the cloud connector.'),) -> Any: + return invoke_dbm( + 'get_cloud_db_system_connector', + cloud_db_system_connector_id=cloud_db_system_connector_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_cloud_db_system_discovery"], + annotations=TOOL_ANNOTATIONS["get_cloud_db_system_discovery"],) +def get_cloud_db_system_discovery( + cloud_db_system_discovery_id: str = Field(..., description='The OCID of the cloud DB system discovery.'),) -> Any: + return invoke_dbm( + 'get_cloud_db_system_discovery', + cloud_db_system_discovery_id=cloud_db_system_discovery_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_cloud_exadata_infrastructure"], + annotations=TOOL_ANNOTATIONS["get_cloud_exadata_infrastructure"],) +def get_cloud_exadata_infrastructure( + cloud_exadata_infrastructure_id: str = Field(..., description='The OCID of the Exadata infrastructure.'),) -> Any: + return invoke_dbm( + 'get_cloud_exadata_infrastructure', + cloud_exadata_infrastructure_id=cloud_exadata_infrastructure_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_cloud_exadata_storage_connector"], + annotations=TOOL_ANNOTATIONS["get_cloud_exadata_storage_connector"],) +def get_cloud_exadata_storage_connector( + cloud_exadata_storage_connector_id: str = Field(..., description='The OCID of the connector to the Exadata storage server.'),) -> Any: + return invoke_dbm( + 'get_cloud_exadata_storage_connector', + cloud_exadata_storage_connector_id=cloud_exadata_storage_connector_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_cloud_exadata_storage_grid"], + annotations=TOOL_ANNOTATIONS["get_cloud_exadata_storage_grid"],) +def get_cloud_exadata_storage_grid( + cloud_exadata_storage_grid_id: str = Field(..., description='The OCID of the Exadata storage grid.'),) -> Any: + return invoke_dbm( + 'get_cloud_exadata_storage_grid', + cloud_exadata_storage_grid_id=cloud_exadata_storage_grid_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_cloud_exadata_storage_server"], + annotations=TOOL_ANNOTATIONS["get_cloud_exadata_storage_server"],) +def get_cloud_exadata_storage_server( + cloud_exadata_storage_server_id: str = Field(..., description='The OCID of the Exadata storage server.'),) -> Any: + return invoke_dbm( + 'get_cloud_exadata_storage_server', + cloud_exadata_storage_server_id=cloud_exadata_storage_server_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_cloud_iorm_plan"], + annotations=TOOL_ANNOTATIONS["get_cloud_iorm_plan"],) +def get_cloud_iorm_plan( + cloud_exadata_storage_server_id: str = Field(..., description='The OCID of the Exadata storage server.'),) -> Any: + return invoke_dbm( + 'get_cloud_iorm_plan', + cloud_exadata_storage_server_id=cloud_exadata_storage_server_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_cloud_listener"], + annotations=TOOL_ANNOTATIONS["get_cloud_listener"],) +def get_cloud_listener( + cloud_listener_id: str = Field(..., description='The OCID of the cloud listener.'),) -> Any: + return invoke_dbm( + 'get_cloud_listener', + cloud_listener_id=cloud_listener_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_cloud_open_alert_history"], + annotations=TOOL_ANNOTATIONS["get_cloud_open_alert_history"],) +def get_cloud_open_alert_history( + cloud_exadata_storage_server_id: str = Field(..., description='The OCID of the Exadata storage server.'),) -> Any: + return invoke_dbm( + 'get_cloud_open_alert_history', + cloud_exadata_storage_server_id=cloud_exadata_storage_server_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_cluster_cache_metric"], + annotations=TOOL_ANNOTATIONS["get_cluster_cache_metric"],) +def get_cluster_cache_metric( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + start_time: str = Field(..., description='The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".'), + end_time: str = Field(..., description='The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".'),) -> Any: + return invoke_dbm( + 'get_cluster_cache_metric', + managed_database_id=managed_database_id, + start_time=start_time, + end_time=end_time,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_database_fleet_backup_metrics"], + annotations=TOOL_ANNOTATIONS["get_database_fleet_backup_metrics"],) +def get_database_fleet_backup_metrics( + database_hosted_in: Literal['CLOUD', 'EXTERNAL'] = Field(..., description='Indicates whether the database is a cloud database or an external database.\n\nAllowed values are: "CLOUD", "EXTERNAL"'), + start_time: str = Field(..., description='The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".'), + end_time: str = Field(..., description='The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".'), + managed_database_group_id: str | None = Field(None, description='The OCID of the Managed Database Group.'), + compartment_id: str | None = Field(None, description='The OCID of the compartment.'), + filter_by_metric_names: str | None = Field(None, description='The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['DATABASENAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `DATABASENAME` is ascending and it is case-sensitive.\n\nAllowed values are: "DATABASENAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: + return invoke_dbm( + 'get_database_fleet_backup_metrics', + database_hosted_in=database_hosted_in, + start_time=start_time, + end_time=end_time, + managed_database_group_id=managed_database_group_id, + compartment_id=compartment_id, + filter_by_metric_names=filter_by_metric_names, + limit=limit, + sort_by=sort_by, + sort_order=sort_order,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_database_fleet_dataguard_metrics"], + annotations=TOOL_ANNOTATIONS["get_database_fleet_dataguard_metrics"],) +def get_database_fleet_dataguard_metrics( + managed_database_group_id: str | None = Field(None, description='The OCID of the Managed Database Group.'), + compartment_id: str | None = Field(None, description='The OCID of the compartment.'), + filter_by_metric_names: str | None = Field(None, description='The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['DATABASENAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `DATABASENAME` is ascending and it is case-sensitive.\n\nAllowed values are: "DATABASENAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: + return invoke_dbm( + 'get_database_fleet_dataguard_metrics', + managed_database_group_id=managed_database_group_id, + compartment_id=compartment_id, + filter_by_metric_names=filter_by_metric_names, + limit=limit, + sort_by=sort_by, + sort_order=sort_order,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_database_fleet_ha_overview_metrics"], + annotations=TOOL_ANNOTATIONS["get_database_fleet_ha_overview_metrics"],) +def get_database_fleet_ha_overview_metrics( + managed_database_group_id: str | None = Field(None, description='The OCID of the Managed Database Group.'), + compartment_id: str | None = Field(None, description='The OCID of the compartment.'), + filter_by_metric_names: str | None = Field(None, description='The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['DATABASENAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `DATABASENAME` is ascending and it is case-sensitive.\n\nAllowed values are: "DATABASENAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: + return invoke_dbm( + 'get_database_fleet_ha_overview_metrics', + managed_database_group_id=managed_database_group_id, + compartment_id=compartment_id, + filter_by_metric_names=filter_by_metric_names, + limit=limit, + sort_by=sort_by, + sort_order=sort_order,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_database_fleet_health_metrics"], + annotations=TOOL_ANNOTATIONS["get_database_fleet_health_metrics"],) +def get_database_fleet_health_metrics( + compare_baseline_time: str = Field(..., description='The baseline time for metrics comparison.'), + compare_target_time: str = Field(..., description='The target time for metrics comparison.'), + managed_database_group_id: str | None = Field(None, description='The OCID of the Managed Database Group.'), + compartment_id: str | None = Field(None, description='The OCID of the compartment.'), + compare_type: Literal['HOUR', 'DAY', 'WEEK'] | None = Field(None, description='The time window used for metrics comparison.\n\nAllowed values are: "HOUR", "DAY", "WEEK"'), + filter_by_metric_names: str | None = Field(None, description='The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.'), + filter_by_database_type: str | None = Field(None, description='The filter used to filter the databases in the fleet by a specific Oracle Database type.'), + filter_by_database_sub_type: str | None = Field(None, description='The filter used to filter the databases in the fleet by a specific Oracle Database subtype.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['TIMECREATED', 'NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘TIMECREATED’ is descending and the default sort order for ‘NAME’ is ascending.\nThe ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "NAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), + filter_by_database_deployment_type: str | None = Field(None, description='The filter used to filter the databases in the fleet by a specific Oracle Database deployment type.'), + filter_by_database_version: str | None = Field(None, description='The filter used to filter the databases in the fleet by a specific Oracle Database version.'),) -> Any: + return invoke_dbm( + 'get_database_fleet_health_metrics', + compare_baseline_time=compare_baseline_time, + compare_target_time=compare_target_time, + managed_database_group_id=managed_database_group_id, + compartment_id=compartment_id, + compare_type=compare_type, + filter_by_metric_names=filter_by_metric_names, + filter_by_database_type=filter_by_database_type, + filter_by_database_sub_type=filter_by_database_sub_type, + limit=limit, + sort_by=sort_by, + sort_order=sort_order, + filter_by_database_deployment_type=filter_by_database_deployment_type, + filter_by_database_version=filter_by_database_version,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_database_ha_backup_details"], + annotations=TOOL_ANNOTATIONS["get_database_ha_backup_details"],) +def get_database_ha_backup_details( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'get_database_ha_backup_details', + managed_database_id=managed_database_id, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_database_home_metrics"], + annotations=TOOL_ANNOTATIONS["get_database_home_metrics"],) +def get_database_home_metrics( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + start_time: str = Field(..., description='The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".'), + end_time: str = Field(..., description='The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".'),) -> Any: + return invoke_dbm( + 'get_database_home_metrics', + managed_database_id=managed_database_id, + start_time=start_time, + end_time=end_time,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_dataguard_performance_metrics"], + annotations=TOOL_ANNOTATIONS["get_dataguard_performance_metrics"],) +def get_dataguard_performance_metrics( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + start_time: str = Field(..., description='The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".'), + end_time: str = Field(..., description='The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".'), + peer_database_compartment_id: str | None = Field(None, description='The OCID of the compartment for which peer database metrics are required. This is not a mandatory parameter and in its absence, all the peer database metrics are returned.'), + filter_by_metric_names: str | None = Field(None, description='The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.'),) -> Any: + return invoke_dbm( + 'get_dataguard_performance_metrics', + managed_database_id=managed_database_id, + start_time=start_time, + end_time=end_time, + peer_database_compartment_id=peer_database_compartment_id, + filter_by_metric_names=filter_by_metric_names,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_db_management_private_endpoint"], + annotations=TOOL_ANNOTATIONS["get_db_management_private_endpoint"],) +def get_db_management_private_endpoint( + db_management_private_endpoint_id: str = Field(..., description='The OCID of the Database Management private endpoint.'),) -> Any: + return invoke_dbm( + 'get_db_management_private_endpoint', + db_management_private_endpoint_id=db_management_private_endpoint_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_exadata_infrastructure_fleet_health_metrics"], + annotations=TOOL_ANNOTATIONS["get_exadata_infrastructure_fleet_health_metrics"],) +def get_exadata_infrastructure_fleet_health_metrics( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + compare_baseline_time: str = Field(..., description='The baseline time for metrics comparison.'), + compare_target_time: str = Field(..., description='The target time for metrics comparison.'), + compare_type: Literal['HOUR', 'DAY', 'WEEK'] | None = Field(None, description='The time window used for metrics comparison.\n\nAllowed values are: "HOUR", "DAY", "WEEK"'), + filter_by_exadata_infrastructure_deployment_type: Literal['ONPREMISE', 'EXADATA', 'EXADATA_CC'] | None = Field(None, description='The filter used to filter the Exadata infrastructures in the fleet by a specific deployment type.\n\nAllowed values are: "ONPREMISE", "EXADATA", "EXADATA_CC"'), + filter_by_exadata_infrastructure_lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN'] | None = Field(None, description='The filter used to filter the Exadata infrastructure in the fleet by its lifecycle state.\nIf the parameter is not provided, Exdata infrastructures in any state are returned.\n\nAllowed values are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", "UNKNOWN"'), + sort_by: Literal['TIMECREATED', 'NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘TIMECREATED’ is descending and the default sort order for ‘NAME’ is ascending.\nThe ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "NAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: + return invoke_dbm( + 'get_exadata_infrastructure_fleet_health_metrics', + compartment_id=compartment_id, + compare_baseline_time=compare_baseline_time, + compare_target_time=compare_target_time, + compare_type=compare_type, + filter_by_exadata_infrastructure_deployment_type=filter_by_exadata_infrastructure_deployment_type, + filter_by_exadata_infrastructure_lifecycle_state=filter_by_exadata_infrastructure_lifecycle_state, + sort_by=sort_by, + sort_order=sort_order,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_execution_plan_stats_comparision"], + annotations=TOOL_ANNOTATIONS["get_execution_plan_stats_comparision"],) +def get_execution_plan_stats_comparision( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + sql_tuning_advisor_task_id: int = Field(..., description='The SQL tuning task identifier. This is not the OCID.'), + sql_object_id: int = Field(..., description='The SQL object ID for the SQL tuning task. This is not the OCID.'), + execution_id: int = Field(..., description='The execution ID for an execution of a SQL tuning task. This is not the OCID.'), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'get_execution_plan_stats_comparision', + managed_database_id=managed_database_id, + sql_tuning_advisor_task_id=sql_tuning_advisor_task_id, + sql_object_id=sql_object_id, + execution_id=execution_id, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_external_asm"], + annotations=TOOL_ANNOTATIONS["get_external_asm"],) +def get_external_asm( + external_asm_id: str = Field(..., description='The OCID of the external ASM.'),) -> Any: + return invoke_dbm( + 'get_external_asm', + external_asm_id=external_asm_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_external_asm_configuration"], + annotations=TOOL_ANNOTATIONS["get_external_asm_configuration"],) +def get_external_asm_configuration( + external_asm_id: str = Field(..., description='The OCID of the external ASM.'), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'get_external_asm_configuration', + external_asm_id=external_asm_id, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_external_asm_instance"], + annotations=TOOL_ANNOTATIONS["get_external_asm_instance"],) +def get_external_asm_instance( + external_asm_instance_id: str = Field(..., description='The OCID of the external ASM instance.'),) -> Any: + return invoke_dbm( + 'get_external_asm_instance', + external_asm_instance_id=external_asm_instance_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_external_cluster"], + annotations=TOOL_ANNOTATIONS["get_external_cluster"],) +def get_external_cluster( + external_cluster_id: str = Field(..., description='The OCID of the external cluster.'),) -> Any: + return invoke_dbm( + 'get_external_cluster', + external_cluster_id=external_cluster_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_external_cluster_instance"], + annotations=TOOL_ANNOTATIONS["get_external_cluster_instance"],) +def get_external_cluster_instance( + external_cluster_instance_id: str = Field(..., description='The OCID of the external cluster instance.'),) -> Any: + return invoke_dbm( + 'get_external_cluster_instance', + external_cluster_instance_id=external_cluster_instance_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_external_db_home"], + annotations=TOOL_ANNOTATIONS["get_external_db_home"],) +def get_external_db_home( + external_db_home_id: str = Field(..., description='The OCID of the external database home.'),) -> Any: + return invoke_dbm( + 'get_external_db_home', + external_db_home_id=external_db_home_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_external_db_node"], + annotations=TOOL_ANNOTATIONS["get_external_db_node"],) +def get_external_db_node( + external_db_node_id: str = Field(..., description='The OCID of the external database node.'),) -> Any: + return invoke_dbm( + 'get_external_db_node', + external_db_node_id=external_db_node_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_external_db_system"], + annotations=TOOL_ANNOTATIONS["get_external_db_system"],) +def get_external_db_system( + external_db_system_id: str = Field(..., description='The OCID of the external DB system.'),) -> Any: + return invoke_dbm( + 'get_external_db_system', + external_db_system_id=external_db_system_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_external_db_system_connector"], + annotations=TOOL_ANNOTATIONS["get_external_db_system_connector"],) +def get_external_db_system_connector( + external_db_system_connector_id: str = Field(..., description='The OCID of the external connector.'),) -> Any: + return invoke_dbm( + 'get_external_db_system_connector', + external_db_system_connector_id=external_db_system_connector_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_external_db_system_discovery"], + annotations=TOOL_ANNOTATIONS["get_external_db_system_discovery"],) +def get_external_db_system_discovery( + external_db_system_discovery_id: str = Field(..., description='The OCID of the external DB system discovery.'),) -> Any: + return invoke_dbm( + 'get_external_db_system_discovery', + external_db_system_discovery_id=external_db_system_discovery_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_external_exadata_infrastructure"], + annotations=TOOL_ANNOTATIONS["get_external_exadata_infrastructure"],) +def get_external_exadata_infrastructure( + external_exadata_infrastructure_id: str = Field(..., description='The OCID of the Exadata infrastructure.'),) -> Any: + return invoke_dbm( + 'get_external_exadata_infrastructure', + external_exadata_infrastructure_id=external_exadata_infrastructure_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_external_exadata_storage_connector"], + annotations=TOOL_ANNOTATIONS["get_external_exadata_storage_connector"],) +def get_external_exadata_storage_connector( + external_exadata_storage_connector_id: str = Field(..., description='The OCID of the connector to the Exadata storage server.'),) -> Any: + return invoke_dbm( + 'get_external_exadata_storage_connector', + external_exadata_storage_connector_id=external_exadata_storage_connector_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_external_exadata_storage_grid"], + annotations=TOOL_ANNOTATIONS["get_external_exadata_storage_grid"],) +def get_external_exadata_storage_grid( + external_exadata_storage_grid_id: str = Field(..., description='The OCID of the Exadata storage grid.'),) -> Any: + return invoke_dbm( + 'get_external_exadata_storage_grid', + external_exadata_storage_grid_id=external_exadata_storage_grid_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_external_exadata_storage_server"], + annotations=TOOL_ANNOTATIONS["get_external_exadata_storage_server"],) +def get_external_exadata_storage_server( + external_exadata_storage_server_id: str = Field(..., description='The OCID of the Exadata storage server.'),) -> Any: + return invoke_dbm( + 'get_external_exadata_storage_server', + external_exadata_storage_server_id=external_exadata_storage_server_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_external_listener"], + annotations=TOOL_ANNOTATIONS["get_external_listener"],) +def get_external_listener( + external_listener_id: str = Field(..., description='The OCID of the external listener.'),) -> Any: + return invoke_dbm( + 'get_external_listener', + external_listener_id=external_listener_id,) + + + + + + + + + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_iorm_plan"], + annotations=TOOL_ANNOTATIONS["get_iorm_plan"],) +def get_iorm_plan( + external_exadata_storage_server_id: str = Field(..., description='The OCID of the Exadata storage server.'),) -> Any: + return invoke_dbm( + 'get_iorm_plan', + external_exadata_storage_server_id=external_exadata_storage_server_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_job"], + annotations=TOOL_ANNOTATIONS["get_job"],) +def get_job( + job_id: str = Field(..., description='The identifier of the job.'),) -> Any: + return invoke_dbm( + 'get_job', + job_id=job_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_job_execution"], + annotations=TOOL_ANNOTATIONS["get_job_execution"],) +def get_job_execution( + job_execution_id: str = Field(..., description='The identifier of the job execution.'),) -> Any: + return invoke_dbm( + 'get_job_execution', + job_execution_id=job_execution_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_job_run"], + annotations=TOOL_ANNOTATIONS["get_job_run"],) +def get_job_run( + job_run_id: str = Field(..., description='The identifier of the job run.'),) -> Any: + return invoke_dbm( + 'get_job_run', + job_run_id=job_run_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_managed_database"], + annotations=TOOL_ANNOTATIONS["get_managed_database"],) +def get_managed_database( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'),) -> Any: + return invoke_dbm( + 'get_managed_database', + managed_database_id=managed_database_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_managed_database_group"], + annotations=TOOL_ANNOTATIONS["get_managed_database_group"],) +def get_managed_database_group( + managed_database_group_id: str = Field(..., description='The OCID of the Managed Database Group.'),) -> Any: + return invoke_dbm( + 'get_managed_database_group', + managed_database_group_id=managed_database_group_id,) + + + + + + + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_named_credential"], + annotations=TOOL_ANNOTATIONS["get_named_credential"],) +def get_named_credential( + named_credential_id: str = Field(..., description='The OCID of the named credential.'),) -> Any: + return invoke_dbm( + 'get_named_credential', + named_credential_id=named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_open_alert_history"], + annotations=TOOL_ANNOTATIONS["get_open_alert_history"],) +def get_open_alert_history( + external_exadata_storage_server_id: str = Field(..., description='The OCID of the Exadata storage server.'),) -> Any: + return invoke_dbm( + 'get_open_alert_history', + external_exadata_storage_server_id=external_exadata_storage_server_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_optimizer_statistics_advisor_execution"], + annotations=TOOL_ANNOTATIONS["get_optimizer_statistics_advisor_execution"],) +def get_optimizer_statistics_advisor_execution( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + execution_name: str = Field(..., description='The name of the Optimizer Statistics Advisor execution.'), + task_name: str = Field(..., description='The name of the optimizer statistics collection execution task.'), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'get_optimizer_statistics_advisor_execution', + managed_database_id=managed_database_id, + execution_name=execution_name, + task_name=task_name, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_optimizer_statistics_advisor_execution_script"], + annotations=TOOL_ANNOTATIONS["get_optimizer_statistics_advisor_execution_script"],) +def get_optimizer_statistics_advisor_execution_script( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + execution_name: str = Field(..., description='The name of the Optimizer Statistics Advisor execution.'), + task_name: str = Field(..., description='The name of the optimizer statistics collection execution task.'), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'get_optimizer_statistics_advisor_execution_script', + managed_database_id=managed_database_id, + execution_name=execution_name, + task_name=task_name, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_optimizer_statistics_collection_operation"], + annotations=TOOL_ANNOTATIONS["get_optimizer_statistics_collection_operation"],) +def get_optimizer_statistics_collection_operation( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + optimizer_statistics_collection_operation_id: float = Field(..., description='The ID of the Optimizer Statistics Collection operation.'), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'get_optimizer_statistics_collection_operation', + managed_database_id=managed_database_id, + optimizer_statistics_collection_operation_id=optimizer_statistics_collection_operation_id, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_pdb_metrics"], + annotations=TOOL_ANNOTATIONS["get_pdb_metrics"],) +def get_pdb_metrics( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + start_time: str = Field(..., description='The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".'), + end_time: str = Field(..., description='The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".'), + compartment_id: str | None = Field(None, description='The OCID of the compartment.'), + compare_type: Literal['HOUR', 'DAY', 'WEEK'] | None = Field(None, description='The time window used for metrics comparison.\n\nAllowed values are: "HOUR", "DAY", "WEEK"'), + filter_by_metric_names: str | None = Field(None, description='The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.'),) -> Any: + return invoke_dbm( + 'get_pdb_metrics', + managed_database_id=managed_database_id, + start_time=start_time, + end_time=end_time, + compartment_id=compartment_id, + compare_type=compare_type, + filter_by_metric_names=filter_by_metric_names,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_peer_database_metrics"], + annotations=TOOL_ANNOTATIONS["get_peer_database_metrics"],) +def get_peer_database_metrics( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + start_time: str = Field(..., description='The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".'), + end_time: str = Field(..., description='The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".'), + peer_database_compartment_id: str | None = Field(None, description='The OCID of the compartment for which peer database metrics are required. This is not a mandatory parameter and in its absence, all the peer database metrics are returned.'), + compare_type: Literal['HOUR', 'DAY', 'WEEK'] | None = Field(None, description='The time window used for metrics comparison.\n\nAllowed values are: "HOUR", "DAY", "WEEK"'), + filter_by_metric_names: str | None = Field(None, description='The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.'),) -> Any: + return invoke_dbm( + 'get_peer_database_metrics', + managed_database_id=managed_database_id, + start_time=start_time, + end_time=end_time, + peer_database_compartment_id=peer_database_compartment_id, + compare_type=compare_type, + filter_by_metric_names=filter_by_metric_names,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_preferred_credential"], + annotations=TOOL_ANNOTATIONS["get_preferred_credential"],) +def get_preferred_credential( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + credential_name: str = Field(..., description='The name of the preferred credential.'),) -> Any: + return invoke_dbm( + 'get_preferred_credential', + managed_database_id=managed_database_id, + credential_name=credential_name,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_sql_execution_plan"], + annotations=TOOL_ANNOTATIONS["get_sql_execution_plan"],) +def get_sql_execution_plan( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + sql_tuning_advisor_task_id: int = Field(..., description='The SQL tuning task identifier. This is not the OCID.'), + sql_object_id: int = Field(..., description='The SQL object ID for the SQL tuning task. This is not the OCID.'), + attribute: Literal['ORIGINAL', 'ORIGINAL_WITH_ADJUSTED_COST', 'USING_SQL_PROFILE', 'USING_NEW_INDICES', 'USING_PARALLEL_EXECUTION'] = Field(..., description='The attribute of the SQL execution plan.\n\nAllowed values are: "ORIGINAL", "ORIGINAL_WITH_ADJUSTED_COST", "USING_SQL_PROFILE", "USING_NEW_INDICES", "USING_PARALLEL_EXECUTION"'), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'get_sql_execution_plan', + managed_database_id=managed_database_id, + sql_tuning_advisor_task_id=sql_tuning_advisor_task_id, + sql_object_id=sql_object_id, + attribute=attribute, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_sql_plan_baseline"], + annotations=TOOL_ANNOTATIONS["get_sql_plan_baseline"],) +def get_sql_plan_baseline( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + plan_name: str = Field(..., description='The plan name of the SQL plan baseline.'), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'get_sql_plan_baseline', + managed_database_id=managed_database_id, + plan_name=plan_name, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_sql_plan_baseline_configuration"], + annotations=TOOL_ANNOTATIONS["get_sql_plan_baseline_configuration"],) +def get_sql_plan_baseline_configuration( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'get_sql_plan_baseline_configuration', + managed_database_id=managed_database_id, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_sql_tuning_advisor_task_summary_report"], + annotations=TOOL_ANNOTATIONS["get_sql_tuning_advisor_task_summary_report"],) +def get_sql_tuning_advisor_task_summary_report( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + sql_tuning_advisor_task_id: int = Field(..., description='The SQL tuning task identifier. This is not the OCID.'), + search_period: Literal['LAST_24HR', 'LAST_7DAY', 'LAST_31DAY', 'SINCE_LAST', 'ALL'] | None = Field(None, description='How far back the API will search for begin and end exec id. Unused if neither exec ids nor time filter query params are supplied. This is applicable only for Auto SQL Tuning tasks.\n\nAllowed values are: "LAST_24HR", "LAST_7DAY", "LAST_31DAY", "SINCE_LAST", "ALL"'), + time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp. This is applicable only for Auto SQL Tuning tasks.'), + time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp. This is applicable only for Auto SQL Tuning tasks.'), + begin_exec_id_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the execution ID related to a specific SQL Tuning Advisor task. This is applicable only for Auto SQL Tuning tasks.'), + end_exec_id_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter on the execution ID related to a specific SQL Tuning Advisor task. This is applicable only for Auto SQL Tuning tasks.'), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'get_sql_tuning_advisor_task_summary_report', + managed_database_id=managed_database_id, + sql_tuning_advisor_task_id=sql_tuning_advisor_task_id, + search_period=search_period, + time_greater_than_or_equal_to=time_greater_than_or_equal_to, + time_less_than_or_equal_to=time_less_than_or_equal_to, + begin_exec_id_greater_than_or_equal_to=begin_exec_id_greater_than_or_equal_to, + end_exec_id_less_than_or_equal_to=end_exec_id_less_than_or_equal_to, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_tablespace"], + annotations=TOOL_ANNOTATIONS["get_tablespace"],) +def get_tablespace( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + tablespace_name: str = Field(..., description='The name of the tablespace.'), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'get_tablespace', + managed_database_id=managed_database_id, + tablespace_name=tablespace_name, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_top_sql_cpu_activity"], + annotations=TOOL_ANNOTATIONS["get_top_sql_cpu_activity"],) +def get_top_sql_cpu_activity( + external_exadata_storage_server_id: str = Field(..., description='The OCID of the Exadata storage server.'),) -> Any: + return invoke_dbm( + 'get_top_sql_cpu_activity', + external_exadata_storage_server_id=external_exadata_storage_server_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_user"], + annotations=TOOL_ANNOTATIONS["get_user"],) +def get_user( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + user_name: str = Field(..., description='The name of the user whose details are to be viewed.'), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'get_user', + managed_database_id=managed_database_id, + user_name=user_name, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_work_request"], + annotations=TOOL_ANNOTATIONS["get_work_request"],) +def get_work_request( + work_request_id: str = Field(..., description='The OCID of the asynchronous work request.'),) -> Any: + return invoke_dbm( + 'get_work_request', + work_request_id=work_request_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_alert_logs"], + annotations=TOOL_ANNOTATIONS["list_alert_logs"],) +def list_alert_logs( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to timestamp to filter the logs.'), + time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to timestamp to filter the logs.'), + level_filter: Literal['CRITICAL', 'SEVERE', 'IMPORTANT', 'NORMAL', 'ALL'] | None = Field(None, description='The optional parameter to filter the alert logs by log level.\n\nAllowed values are: "CRITICAL", "SEVERE", "IMPORTANT", "NORMAL", "ALL"'), + type_filter: Literal['UNKNOWN', 'INCIDENT_ERROR', 'ERROR', 'WARNING', 'NOTIFICATION', 'TRACE', 'ALL'] | None = Field(None, description='The optional parameter to filter the attention or alert logs by type.\n\nAllowed values are: "UNKNOWN", "INCIDENT_ERROR", "ERROR", "WARNING", "NOTIFICATION", "TRACE", "ALL"'), + log_search_text: str | None = Field(None, description='The optional query parameter to filter the attention or alert logs by search text.'), + is_regular_expression: bool | None = Field(None, description='The flag to indicate whether the search text is regular expression or not.'), + sort_by: Literal['LEVEL', 'TYPE', 'MESSAGE', 'TIMESTAMP'] | None = Field(None, description='The possible sortBy values of attention logs.\n\nAllowed values are: "LEVEL", "TYPE", "MESSAGE", "TIMESTAMP"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'list_alert_logs', + managed_database_id=managed_database_id, + time_greater_than_or_equal_to=time_greater_than_or_equal_to, + time_less_than_or_equal_to=time_less_than_or_equal_to, + level_filter=level_filter, + type_filter=type_filter, + log_search_text=log_search_text, + is_regular_expression=is_regular_expression, + sort_by=sort_by, + sort_order=sort_order, + limit=limit, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_asm_properties"], + annotations=TOOL_ANNOTATIONS["list_asm_properties"],) +def list_asm_properties( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + name: str | None = Field(None, description='A filter to return only resources that match the entire name.'), + sort_by: Literal['TIMECREATED', 'NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘TIMECREATED’ is descending and the default sort order for ‘NAME’ is ascending.\nThe ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "NAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000),) -> Any: + return invoke_dbm( + 'list_asm_properties', + managed_database_id=managed_database_id, + name=name, + sort_by=sort_by, + sort_order=sort_order, + limit=limit,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_associated_databases"], + annotations=TOOL_ANNOTATIONS["list_associated_databases"],) +def list_associated_databases( + db_management_private_endpoint_id: str = Field(..., description='The OCID of the Database Management private endpoint.'), + compartment_id: str = Field(..., description='The OCID of the compartment.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), + sort_by: Literal['timeRegistered'] | None = Field(None, description='The option to sort databases using a specific Database Management private endpoint.\n\nAllowed values are: "timeRegistered"'),) -> Any: + return invoke_dbm( + 'list_associated_databases', + db_management_private_endpoint_id=db_management_private_endpoint_id, + compartment_id=compartment_id, + limit=limit, + sort_order=sort_order, + sort_by=sort_by,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_attention_logs"], + annotations=TOOL_ANNOTATIONS["list_attention_logs"],) +def list_attention_logs( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to timestamp to filter the logs.'), + time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to timestamp to filter the logs.'), + urgency_filter: Literal['IMMEDIATE', 'SOON', 'DEFERRABLE', 'INFO', 'ALL'] | None = Field(None, description='The optional parameter to filter the attention logs by urgency.\n\nAllowed values are: "IMMEDIATE", "SOON", "DEFERRABLE", "INFO", "ALL"'), + type_filter: Literal['UNKNOWN', 'INCIDENT_ERROR', 'ERROR', 'WARNING', 'NOTIFICATION', 'TRACE', 'ALL'] | None = Field(None, description='The optional parameter to filter the attention or alert logs by type.\n\nAllowed values are: "UNKNOWN", "INCIDENT_ERROR", "ERROR", "WARNING", "NOTIFICATION", "TRACE", "ALL"'), + log_search_text: str | None = Field(None, description='The optional query parameter to filter the attention or alert logs by search text.'), + is_regular_expression: bool | None = Field(None, description='The flag to indicate whether the search text is regular expression or not.'), + sort_by: Literal['URGENCY', 'TYPE', 'MESSAGE', 'TIMESTAMP', 'SCOPE', 'TARGET_USER'] | None = Field(None, description='The possible sortBy values of attention logs.\n\nAllowed values are: "URGENCY", "TYPE", "MESSAGE", "TIMESTAMP", "SCOPE", "TARGET_USER"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'list_attention_logs', + managed_database_id=managed_database_id, + time_greater_than_or_equal_to=time_greater_than_or_equal_to, + time_less_than_or_equal_to=time_less_than_or_equal_to, + urgency_filter=urgency_filter, + type_filter=type_filter, + log_search_text=log_search_text, + is_regular_expression=is_regular_expression, + sort_by=sort_by, + sort_order=sort_order, + limit=limit, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_awr_db_snapshots"], + annotations=TOOL_ANNOTATIONS["list_awr_db_snapshots"],) +def list_awr_db_snapshots( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + awr_db_id: str = Field(..., description='Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.'), + inst_num: str | None = Field(None, description='The optional single value query parameter to filter the database instance number.'), + begin_sn_id_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), + end_sn_id_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot ID.'), + time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp.'), + time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp.'), + container_id: int | None = Field(None, description='AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['TIME_BEGIN', 'SNAPSHOT_ID'] | None = Field(None, description='The option to sort the AWR snapshot summary data.\n\nAllowed values are: "TIME_BEGIN", "SNAPSHOT_ID"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Descending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'list_awr_db_snapshots', + managed_database_id=managed_database_id, + awr_db_id=awr_db_id, + inst_num=inst_num, + begin_sn_id_greater_than_or_equal_to=begin_sn_id_greater_than_or_equal_to, + end_sn_id_less_than_or_equal_to=end_sn_id_less_than_or_equal_to, + time_greater_than_or_equal_to=time_greater_than_or_equal_to, + time_less_than_or_equal_to=time_less_than_or_equal_to, + container_id=container_id, + limit=limit, + sort_by=sort_by, + sort_order=sort_order, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_awr_dbs"], + annotations=TOOL_ANNOTATIONS["list_awr_dbs"],) +def list_awr_dbs( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + name: str | None = Field(None, description='The optional single value query parameter to filter the entity name.'), + time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp.'), + time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['END_INTERVAL_TIME', 'NAME'] | None = Field(None, description='The option to sort the AWR summary data.\n\nAllowed values are: "END_INTERVAL_TIME", "NAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Descending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'list_awr_dbs', + managed_database_id=managed_database_id, + name=name, + time_greater_than_or_equal_to=time_greater_than_or_equal_to, + time_less_than_or_equal_to=time_less_than_or_equal_to, + limit=limit, + sort_by=sort_by, + sort_order=sort_order, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_cloud_asm_disk_groups"], + annotations=TOOL_ANNOTATIONS["list_cloud_asm_disk_groups"],) +def list_cloud_asm_disk_groups( + cloud_asm_id: str = Field(..., description='The OCID of the cloud ASM.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: "NAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'list_cloud_asm_disk_groups', + cloud_asm_id=cloud_asm_id, + limit=limit, + sort_by=sort_by, + sort_order=sort_order, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_cloud_asm_instances"], + annotations=TOOL_ANNOTATIONS["list_cloud_asm_instances"],) +def list_cloud_asm_instances( + compartment_id: str | None = Field(None, description='The OCID of the compartment.'), + cloud_asm_id: str | None = Field(None, description='The OCID of the cloud ASM.'), + display_name: str | None = Field(None, description='A filter to only return the resources that match the entire display name.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['TIMECREATED', 'DISPLAYNAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "DISPLAYNAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: + return invoke_dbm( + 'list_cloud_asm_instances', + compartment_id=compartment_id, + cloud_asm_id=cloud_asm_id, + display_name=display_name, + limit=limit, + sort_by=sort_by, + sort_order=sort_order,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_cloud_asm_users"], + annotations=TOOL_ANNOTATIONS["list_cloud_asm_users"],) +def list_cloud_asm_users( + cloud_asm_id: str = Field(..., description='The OCID of the cloud ASM.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: "NAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'list_cloud_asm_users', + cloud_asm_id=cloud_asm_id, + limit=limit, + sort_by=sort_by, + sort_order=sort_order, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_cloud_asms"], + annotations=TOOL_ANNOTATIONS["list_cloud_asms"],) +def list_cloud_asms( + compartment_id: str | None = Field(None, description='The OCID of the compartment.'), + cloud_db_system_id: str | None = Field(None, description='The OCID of the cloud DB system.'), + display_name: str | None = Field(None, description='A filter to only return the resources that match the entire display name.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['TIMECREATED', 'DISPLAYNAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "DISPLAYNAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: + return invoke_dbm( + 'list_cloud_asms', + compartment_id=compartment_id, + cloud_db_system_id=cloud_db_system_id, + display_name=display_name, + limit=limit, + sort_by=sort_by, + sort_order=sort_order,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_cloud_cluster_instances"], + annotations=TOOL_ANNOTATIONS["list_cloud_cluster_instances"],) +def list_cloud_cluster_instances( + compartment_id: str | None = Field(None, description='The OCID of the compartment.'), + cloud_cluster_id: str | None = Field(None, description='The OCID of the cloud cluster.'), + display_name: str | None = Field(None, description='A filter to only return the resources that match the entire display name.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['TIMECREATED', 'DISPLAYNAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "DISPLAYNAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: + return invoke_dbm( + 'list_cloud_cluster_instances', + compartment_id=compartment_id, + cloud_cluster_id=cloud_cluster_id, + display_name=display_name, + limit=limit, + sort_by=sort_by, + sort_order=sort_order,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_cloud_clusters"], + annotations=TOOL_ANNOTATIONS["list_cloud_clusters"],) +def list_cloud_clusters( + compartment_id: str | None = Field(None, description='The OCID of the compartment.'), + cloud_db_system_id: str | None = Field(None, description='The OCID of the cloud DB system.'), + display_name: str | None = Field(None, description='A filter to only return the resources that match the entire display name.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['TIMECREATED', 'DISPLAYNAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "DISPLAYNAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: + return invoke_dbm( + 'list_cloud_clusters', + compartment_id=compartment_id, + cloud_db_system_id=cloud_db_system_id, + display_name=display_name, + limit=limit, + sort_by=sort_by, + sort_order=sort_order,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_cloud_databases"], + annotations=TOOL_ANNOTATIONS["list_cloud_databases"],) +def list_cloud_databases( + cloud_db_system_id: str = Field(..., description='The OCID of the cloud DB system.'), + compartment_id: str | None = Field(None, description='The OCID of the compartment.'), + display_name: str | None = Field(None, description='A filter to only return the resources that match the entire display name.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['TIMECREATED', 'DISPLAYNAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "DISPLAYNAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: + return invoke_dbm( + 'list_cloud_databases', + cloud_db_system_id=cloud_db_system_id, + compartment_id=compartment_id, + display_name=display_name, + limit=limit, + sort_by=sort_by, + sort_order=sort_order,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_cloud_db_homes"], + annotations=TOOL_ANNOTATIONS["list_cloud_db_homes"],) +def list_cloud_db_homes( + compartment_id: str | None = Field(None, description='The OCID of the compartment.'), + cloud_db_system_id: str | None = Field(None, description='The OCID of the cloud DB system.'), + display_name: str | None = Field(None, description='A filter to only return the resources that match the entire display name.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['TIMECREATED', 'DISPLAYNAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "DISPLAYNAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: + return invoke_dbm( + 'list_cloud_db_homes', + compartment_id=compartment_id, + cloud_db_system_id=cloud_db_system_id, + display_name=display_name, + limit=limit, + sort_by=sort_by, + sort_order=sort_order,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_cloud_db_nodes"], + annotations=TOOL_ANNOTATIONS["list_cloud_db_nodes"],) +def list_cloud_db_nodes( + compartment_id: str | None = Field(None, description='The OCID of the compartment.'), + cloud_db_system_id: str | None = Field(None, description='The OCID of the cloud DB system.'), + display_name: str | None = Field(None, description='A filter to only return the resources that match the entire display name.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['TIMECREATED', 'DISPLAYNAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "DISPLAYNAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: + return invoke_dbm( + 'list_cloud_db_nodes', + compartment_id=compartment_id, + cloud_db_system_id=cloud_db_system_id, + display_name=display_name, + limit=limit, + sort_by=sort_by, + sort_order=sort_order,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_cloud_db_system_connectors"], + annotations=TOOL_ANNOTATIONS["list_cloud_db_system_connectors"],) +def list_cloud_db_system_connectors( + compartment_id: str | None = Field(None, description='The OCID of the compartment.'), + cloud_db_system_id: str | None = Field(None, description='The OCID of the cloud DB system.'), + display_name: str | None = Field(None, description='A filter to only return the resources that match the entire display name.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['TIMECREATED', 'DISPLAYNAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "DISPLAYNAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: + return invoke_dbm( + 'list_cloud_db_system_connectors', + compartment_id=compartment_id, + cloud_db_system_id=cloud_db_system_id, + display_name=display_name, + limit=limit, + sort_by=sort_by, + sort_order=sort_order,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_cloud_db_system_discoveries"], + annotations=TOOL_ANNOTATIONS["list_cloud_db_system_discoveries"],) +def list_cloud_db_system_discoveries( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + display_name: str | None = Field(None, description='A filter to only return the resources that match the entire display name.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['TIMECREATED', 'DISPLAYNAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "DISPLAYNAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: + return invoke_dbm( + 'list_cloud_db_system_discoveries', + compartment_id=compartment_id, + display_name=display_name, + limit=limit, + sort_by=sort_by, + sort_order=sort_order,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_cloud_db_systems"], + annotations=TOOL_ANNOTATIONS["list_cloud_db_systems"],) +def list_cloud_db_systems( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + dbaas_parent_infrastructure_id: str | None = Field(None, description='The OCID of the dbaas parent infrastructure of the cloud DB system.'), + deployment_type: Literal['VM', 'EXADATA', 'EXADATA_CC', 'EXADATA_XS'] | None = Field(None, description='A filter to return cloud DB systems of the specified deployment type.\n\nAllowed values are: "VM", "EXADATA", "EXADATA_CC", "EXADATA_XS"'), + display_name: str | None = Field(None, description='A filter to only return the resources that match the entire display name.'), + lifecycle_state: Literal['CREATING', 'ACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'INACTIVE'] | None = Field(None, description='The lifecycle state of a resource.\n\nAllowed values are: "CREATING", "ACTIVE", "UPDATING", "DELETING", "DELETED", "INACTIVE"'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['TIMECREATED', 'DISPLAYNAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "DISPLAYNAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: + return invoke_dbm( + 'list_cloud_db_systems', + compartment_id=compartment_id, + dbaas_parent_infrastructure_id=dbaas_parent_infrastructure_id, + deployment_type=deployment_type, + display_name=display_name, + lifecycle_state=lifecycle_state, + limit=limit, + sort_by=sort_by, + sort_order=sort_order,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_cloud_exadata_infrastructures"], + annotations=TOOL_ANNOTATIONS["list_cloud_exadata_infrastructures"],) +def list_cloud_exadata_infrastructures( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + display_name: str | None = Field(None, description='The optional single value query filter parameter on the entity display name.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['TIMECREATED', 'NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘TIMECREATED’ is descending and the default sort order for ‘NAME’ is ascending.\nThe ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "NAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: + return invoke_dbm( + 'list_cloud_exadata_infrastructures', + compartment_id=compartment_id, + display_name=display_name, + limit=limit, + sort_by=sort_by, + sort_order=sort_order,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_cloud_exadata_storage_connectors"], + annotations=TOOL_ANNOTATIONS["list_cloud_exadata_storage_connectors"],) +def list_cloud_exadata_storage_connectors( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + cloud_exadata_infrastructure_id: str = Field(..., description='The OCID of the Exadata infrastructure.'), + display_name: str | None = Field(None, description='The optional single value query filter parameter on the entity display name.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['TIMECREATED', 'NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘TIMECREATED’ is descending and the default sort order for ‘NAME’ is ascending.\nThe ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "NAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: + return invoke_dbm( + 'list_cloud_exadata_storage_connectors', + compartment_id=compartment_id, + cloud_exadata_infrastructure_id=cloud_exadata_infrastructure_id, + display_name=display_name, + limit=limit, + sort_by=sort_by, + sort_order=sort_order,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_cloud_exadata_storage_servers"], + annotations=TOOL_ANNOTATIONS["list_cloud_exadata_storage_servers"],) +def list_cloud_exadata_storage_servers( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + cloud_exadata_infrastructure_id: str = Field(..., description='The OCID of the Exadata infrastructure.'), + display_name: str | None = Field(None, description='The optional single value query filter parameter on the entity display name.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['TIMECREATED', 'NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘TIMECREATED’ is descending and the default sort order for ‘NAME’ is ascending.\nThe ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "NAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: + return invoke_dbm( + 'list_cloud_exadata_storage_servers', + compartment_id=compartment_id, + cloud_exadata_infrastructure_id=cloud_exadata_infrastructure_id, + display_name=display_name, + limit=limit, + sort_by=sort_by, + sort_order=sort_order,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_cloud_listener_services"], + annotations=TOOL_ANNOTATIONS["list_cloud_listener_services"],) +def list_cloud_listener_services( + cloud_listener_id: str = Field(..., description='The OCID of the cloud listener.'), + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: "NAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'list_cloud_listener_services', + cloud_listener_id=cloud_listener_id, + managed_database_id=managed_database_id, + limit=limit, + sort_by=sort_by, + sort_order=sort_order, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_cloud_listeners"], + annotations=TOOL_ANNOTATIONS["list_cloud_listeners"],) +def list_cloud_listeners( + compartment_id: str | None = Field(None, description='The OCID of the compartment.'), + cloud_db_system_id: str | None = Field(None, description='The OCID of the cloud DB system.'), + display_name: str | None = Field(None, description='A filter to only return the resources that match the entire display name.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['TIMECREATED', 'DISPLAYNAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "DISPLAYNAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: + return invoke_dbm( + 'list_cloud_listeners', + compartment_id=compartment_id, + cloud_db_system_id=cloud_db_system_id, + display_name=display_name, + limit=limit, + sort_by=sort_by, + sort_order=sort_order,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_consumer_group_privileges"], + annotations=TOOL_ANNOTATIONS["list_consumer_group_privileges"],) +def list_consumer_group_privileges( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + user_name: str = Field(..., description='The name of the user whose details are to be viewed.'), + name: str | None = Field(None, description='A filter to return only resources that match the entire name.'), + sort_by: Literal['NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘NAME’ is ascending. The ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "NAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'list_consumer_group_privileges', + managed_database_id=managed_database_id, + user_name=user_name, + name=name, + sort_by=sort_by, + sort_order=sort_order, + limit=limit, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_cursor_cache_statements"], + annotations=TOOL_ANNOTATIONS["list_cursor_cache_statements"],) +def list_cursor_cache_statements( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + sql_text: str | None = Field(None, description="A filter to return all the SQL plan baselines that match the SQL text. By default, the search\nis case insensitive. To run an exact or case-sensitive search, double-quote the search string.\nYou may also use the '%' symbol as a wildcard."), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['sqlId', 'schema'] | None = Field(None, description='The option to sort the SQL statement summary data.\n\nAllowed values are: "sqlId", "schema"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'list_cursor_cache_statements', + managed_database_id=managed_database_id, + sql_text=sql_text, + limit=limit, + sort_by=sort_by, + sort_order=sort_order, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_data_access_containers"], + annotations=TOOL_ANNOTATIONS["list_data_access_containers"],) +def list_data_access_containers( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + user_name: str = Field(..., description='The name of the user whose details are to be viewed.'), + name: str | None = Field(None, description='A filter to return only resources that match the entire name.'), + sort_by: Literal['NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘NAME’ is ascending. The ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "NAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'list_data_access_containers', + managed_database_id=managed_database_id, + user_name=user_name, + name=name, + sort_by=sort_by, + sort_order=sort_order, + limit=limit, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_database_parameters"], + annotations=TOOL_ANNOTATIONS["list_database_parameters"],) +def list_database_parameters( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + source: Literal['CURRENT', 'SPFILE'] | None = Field(None, description='The source used to list database parameters. `CURRENT` is used to get the\ndatabase parameters that are currently in effect for the database\ninstance. `SPFILE` is used to list parameters from the server parameter\nfile. Default is `CURRENT`.\n\nAllowed values are: "CURRENT", "SPFILE"'), + name: str | None = Field(None, description='A filter to return all parameters that have the text given in their names.'), + is_allowed_values_included: bool | None = Field(None, description='When true, results include a list of valid values for parameters (if applicable).'), + sort_by: Literal['NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: "NAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'list_database_parameters', + managed_database_id=managed_database_id, + source=source, + name=name, + is_allowed_values_included=is_allowed_values_included, + sort_by=sort_by, + sort_order=sort_order, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_db_management_private_endpoints"], + annotations=TOOL_ANNOTATIONS["list_db_management_private_endpoints"],) +def list_db_management_private_endpoints( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + name: str | None = Field(None, description='A filter to return only resources that match the entire name.'), + vcn_id: str | None = Field(None, description='The OCID of the VCN.'), + is_cluster: bool | None = Field(None, description='The option to filter Database Management private endpoints that can used for Oracle Databases in a cluster. This should be used along with the vcnId query parameter.'), + is_dns_resolution_enabled: bool | None = Field(None, description='The option to filter Database Management private endpoints which are endbled with DNS proxy server. This should be used along with the vcnId query parameter.\nOnly one of this parameter and IsClusterDbManagementPrivateEndpointQueryParam should be set to true at one time.'), + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED'] | None = Field(None, description='The lifecycle state of a resource.\n\nAllowed values are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED"'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), + sort_by: Literal['TIMECREATED', 'NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘TIMECREATED’ is descending and the default sort order for ‘NAME’ is ascending.\nThe ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "NAME"'),) -> Any: + return invoke_dbm( + 'list_db_management_private_endpoints', + compartment_id=compartment_id, + name=name, + vcn_id=vcn_id, + is_cluster=is_cluster, + is_dns_resolution_enabled=is_dns_resolution_enabled, + lifecycle_state=lifecycle_state, + limit=limit, + sort_order=sort_order, + sort_by=sort_by,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_external_asm_disk_groups"], + annotations=TOOL_ANNOTATIONS["list_external_asm_disk_groups"],) +def list_external_asm_disk_groups( + external_asm_id: str = Field(..., description='The OCID of the external ASM.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: "NAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'list_external_asm_disk_groups', + external_asm_id=external_asm_id, + limit=limit, + sort_by=sort_by, + sort_order=sort_order, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_external_asm_instances"], + annotations=TOOL_ANNOTATIONS["list_external_asm_instances"],) +def list_external_asm_instances( + compartment_id: str | None = Field(None, description='The OCID of the compartment.'), + external_asm_id: str | None = Field(None, description='The OCID of the external ASM.'), + display_name: str | None = Field(None, description='A filter to only return the resources that match the entire display name.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['TIMECREATED', 'DISPLAYNAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "DISPLAYNAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: + return invoke_dbm( + 'list_external_asm_instances', + compartment_id=compartment_id, + external_asm_id=external_asm_id, + display_name=display_name, + limit=limit, + sort_by=sort_by, + sort_order=sort_order,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_external_asm_users"], + annotations=TOOL_ANNOTATIONS["list_external_asm_users"],) +def list_external_asm_users( + external_asm_id: str = Field(..., description='The OCID of the external ASM.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: "NAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'list_external_asm_users', + external_asm_id=external_asm_id, + limit=limit, + sort_by=sort_by, + sort_order=sort_order, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_external_asms"], + annotations=TOOL_ANNOTATIONS["list_external_asms"],) +def list_external_asms( + compartment_id: str | None = Field(None, description='The OCID of the compartment.'), + external_db_system_id: str | None = Field(None, description='The OCID of the external DB system.'), + display_name: str | None = Field(None, description='A filter to only return the resources that match the entire display name.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['TIMECREATED', 'DISPLAYNAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "DISPLAYNAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: + return invoke_dbm( + 'list_external_asms', + compartment_id=compartment_id, + external_db_system_id=external_db_system_id, + display_name=display_name, + limit=limit, + sort_by=sort_by, + sort_order=sort_order,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_external_cluster_instances"], + annotations=TOOL_ANNOTATIONS["list_external_cluster_instances"],) +def list_external_cluster_instances( + compartment_id: str | None = Field(None, description='The OCID of the compartment.'), + external_cluster_id: str | None = Field(None, description='The OCID of the external cluster.'), + display_name: str | None = Field(None, description='A filter to only return the resources that match the entire display name.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['TIMECREATED', 'DISPLAYNAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "DISPLAYNAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: + return invoke_dbm( + 'list_external_cluster_instances', + compartment_id=compartment_id, + external_cluster_id=external_cluster_id, + display_name=display_name, + limit=limit, + sort_by=sort_by, + sort_order=sort_order,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_external_clusters"], + annotations=TOOL_ANNOTATIONS["list_external_clusters"],) +def list_external_clusters( + compartment_id: str | None = Field(None, description='The OCID of the compartment.'), + external_db_system_id: str | None = Field(None, description='The OCID of the external DB system.'), + display_name: str | None = Field(None, description='A filter to only return the resources that match the entire display name.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['TIMECREATED', 'DISPLAYNAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "DISPLAYNAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: + return invoke_dbm( + 'list_external_clusters', + compartment_id=compartment_id, + external_db_system_id=external_db_system_id, + display_name=display_name, + limit=limit, + sort_by=sort_by, + sort_order=sort_order,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_external_databases"], + annotations=TOOL_ANNOTATIONS["list_external_databases"],) +def list_external_databases( + compartment_id: str | None = Field(None, description='The OCID of the compartment.'), + external_db_system_id: str | None = Field(None, description='The OCID of the external DB system.'), + external_database_id: str | None = Field(None, description='The OCID of the external database.'), + display_name: str | None = Field(None, description='A filter to only return the resources that match the entire display name.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['TIMECREATED', 'DISPLAYNAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "DISPLAYNAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: + return invoke_dbm( + 'list_external_databases', + compartment_id=compartment_id, + external_db_system_id=external_db_system_id, + external_database_id=external_database_id, + display_name=display_name, + limit=limit, + sort_by=sort_by, + sort_order=sort_order,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_external_db_homes"], + annotations=TOOL_ANNOTATIONS["list_external_db_homes"],) +def list_external_db_homes( + compartment_id: str | None = Field(None, description='The OCID of the compartment.'), + external_db_system_id: str | None = Field(None, description='The OCID of the external DB system.'), + display_name: str | None = Field(None, description='A filter to only return the resources that match the entire display name.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['TIMECREATED', 'DISPLAYNAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "DISPLAYNAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: + return invoke_dbm( + 'list_external_db_homes', + compartment_id=compartment_id, + external_db_system_id=external_db_system_id, + display_name=display_name, + limit=limit, + sort_by=sort_by, + sort_order=sort_order,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_external_db_nodes"], + annotations=TOOL_ANNOTATIONS["list_external_db_nodes"],) +def list_external_db_nodes( + compartment_id: str | None = Field(None, description='The OCID of the compartment.'), + external_db_system_id: str | None = Field(None, description='The OCID of the external DB system.'), + display_name: str | None = Field(None, description='A filter to only return the resources that match the entire display name.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['TIMECREATED', 'DISPLAYNAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "DISPLAYNAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: + return invoke_dbm( + 'list_external_db_nodes', + compartment_id=compartment_id, + external_db_system_id=external_db_system_id, + display_name=display_name, + limit=limit, + sort_by=sort_by, + sort_order=sort_order,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_external_db_system_connectors"], + annotations=TOOL_ANNOTATIONS["list_external_db_system_connectors"],) +def list_external_db_system_connectors( + compartment_id: str | None = Field(None, description='The OCID of the compartment.'), + external_db_system_id: str | None = Field(None, description='The OCID of the external DB system.'), + display_name: str | None = Field(None, description='A filter to only return the resources that match the entire display name.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['TIMECREATED', 'DISPLAYNAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "DISPLAYNAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: + return invoke_dbm( + 'list_external_db_system_connectors', + compartment_id=compartment_id, + external_db_system_id=external_db_system_id, + display_name=display_name, + limit=limit, + sort_by=sort_by, + sort_order=sort_order,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_external_db_system_discoveries"], + annotations=TOOL_ANNOTATIONS["list_external_db_system_discoveries"],) +def list_external_db_system_discoveries( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + display_name: str | None = Field(None, description='A filter to only return the resources that match the entire display name.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['TIMECREATED', 'DISPLAYNAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "DISPLAYNAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: + return invoke_dbm( + 'list_external_db_system_discoveries', + compartment_id=compartment_id, + display_name=display_name, + limit=limit, + sort_by=sort_by, + sort_order=sort_order,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_external_db_systems"], + annotations=TOOL_ANNOTATIONS["list_external_db_systems"],) +def list_external_db_systems( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + display_name: str | None = Field(None, description='A filter to only return the resources that match the entire display name.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['TIMECREATED', 'DISPLAYNAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "DISPLAYNAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: + return invoke_dbm( + 'list_external_db_systems', + compartment_id=compartment_id, + display_name=display_name, + limit=limit, + sort_by=sort_by, + sort_order=sort_order,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_external_exadata_infrastructures"], + annotations=TOOL_ANNOTATIONS["list_external_exadata_infrastructures"],) +def list_external_exadata_infrastructures( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + display_name: str | None = Field(None, description='The optional single value query filter parameter on the entity display name.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['TIMECREATED', 'NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘TIMECREATED’ is descending and the default sort order for ‘NAME’ is ascending.\nThe ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "NAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: + return invoke_dbm( + 'list_external_exadata_infrastructures', + compartment_id=compartment_id, + display_name=display_name, + limit=limit, + sort_by=sort_by, + sort_order=sort_order,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_external_exadata_storage_connectors"], + annotations=TOOL_ANNOTATIONS["list_external_exadata_storage_connectors"],) +def list_external_exadata_storage_connectors( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + external_exadata_infrastructure_id: str = Field(..., description='The OCID of the Exadata infrastructure.'), + display_name: str | None = Field(None, description='The optional single value query filter parameter on the entity display name.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['TIMECREATED', 'NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘TIMECREATED’ is descending and the default sort order for ‘NAME’ is ascending.\nThe ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "NAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: + return invoke_dbm( + 'list_external_exadata_storage_connectors', + compartment_id=compartment_id, + external_exadata_infrastructure_id=external_exadata_infrastructure_id, + display_name=display_name, + limit=limit, + sort_by=sort_by, + sort_order=sort_order,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_external_exadata_storage_servers"], + annotations=TOOL_ANNOTATIONS["list_external_exadata_storage_servers"],) +def list_external_exadata_storage_servers( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + external_exadata_infrastructure_id: str = Field(..., description='The OCID of the Exadata infrastructure.'), + display_name: str | None = Field(None, description='The optional single value query filter parameter on the entity display name.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['TIMECREATED', 'NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘TIMECREATED’ is descending and the default sort order for ‘NAME’ is ascending.\nThe ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "NAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: + return invoke_dbm( + 'list_external_exadata_storage_servers', + compartment_id=compartment_id, + external_exadata_infrastructure_id=external_exadata_infrastructure_id, + display_name=display_name, + limit=limit, + sort_by=sort_by, + sort_order=sort_order,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_external_listener_services"], + annotations=TOOL_ANNOTATIONS["list_external_listener_services"],) +def list_external_listener_services( + external_listener_id: str = Field(..., description='The OCID of the external listener.'), + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: "NAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'list_external_listener_services', + external_listener_id=external_listener_id, + managed_database_id=managed_database_id, + limit=limit, + sort_by=sort_by, + sort_order=sort_order, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_external_listeners"], + annotations=TOOL_ANNOTATIONS["list_external_listeners"],) +def list_external_listeners( + compartment_id: str | None = Field(None, description='The OCID of the compartment.'), + external_db_system_id: str | None = Field(None, description='The OCID of the external DB system.'), + display_name: str | None = Field(None, description='A filter to only return the resources that match the entire display name.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['TIMECREATED', 'DISPLAYNAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "DISPLAYNAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: + return invoke_dbm( + 'list_external_listeners', + compartment_id=compartment_id, + external_db_system_id=external_db_system_id, + display_name=display_name, + limit=limit, + sort_by=sort_by, + sort_order=sort_order,) + + + + + + + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_job_executions"], + annotations=TOOL_ANNOTATIONS["list_job_executions"],) +def list_job_executions( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + id: str | None = Field(None, description='The identifier of the resource.'), + job_id: str | None = Field(None, description='The identifier of the job.'), + managed_database_id: str | None = Field(None, description='The OCID of the Managed Database.'), + managed_database_group_id: str | None = Field(None, description='The OCID of the Managed Database Group.'), + status: str | None = Field(None, description='The status of the job execution.'), + name: str | None = Field(None, description='A filter to return only resources that match the entire name.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['TIMECREATED', 'NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘TIMECREATED’ is descending and the default sort order for ‘NAME’ is ascending.\nThe ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "NAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), + job_run_id: str | None = Field(None, description='The identifier of the job run.'),) -> Any: + return invoke_dbm( + 'list_job_executions', + compartment_id=compartment_id, + id=id, + job_id=job_id, + managed_database_id=managed_database_id, + managed_database_group_id=managed_database_group_id, + status=status, + name=name, + limit=limit, + sort_by=sort_by, + sort_order=sort_order, + job_run_id=job_run_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_job_runs"], + annotations=TOOL_ANNOTATIONS["list_job_runs"],) +def list_job_runs( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + id: str | None = Field(None, description='The identifier of the resource.'), + job_id: str | None = Field(None, description='The identifier of the job.'), + managed_database_id: str | None = Field(None, description='The OCID of the Managed Database.'), + managed_database_group_id: str | None = Field(None, description='The OCID of the Managed Database Group.'), + run_status: str | None = Field(None, description='The status of the job run.'), + name: str | None = Field(None, description='A filter to return only resources that match the entire name.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['TIMECREATED', 'NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘TIMECREATED’ is descending and the default sort order for ‘NAME’ is ascending.\nThe ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "NAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: + return invoke_dbm( + 'list_job_runs', + compartment_id=compartment_id, + id=id, + job_id=job_id, + managed_database_id=managed_database_id, + managed_database_group_id=managed_database_group_id, + run_status=run_status, + name=name, + limit=limit, + sort_by=sort_by, + sort_order=sort_order,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_jobs"], + annotations=TOOL_ANNOTATIONS["list_jobs"],) +def list_jobs( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + id: str | None = Field(None, description='The identifier of the resource.'), + managed_database_group_id: str | None = Field(None, description='The OCID of the Managed Database Group.'), + managed_database_id: str | None = Field(None, description='The OCID of the Managed Database.'), + name: str | None = Field(None, description='A filter to return only resources that match the entire name.'), + lifecycle_state: Literal['ACTIVE', 'INACTIVE'] | None = Field(None, description='The lifecycle state of the job.\n\nAllowed values are: "ACTIVE", "INACTIVE"'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['TIMECREATED', 'NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘TIMECREATED’ is descending and the default sort order for ‘NAME’ is ascending.\nThe ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "NAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: + return invoke_dbm( + 'list_jobs', + compartment_id=compartment_id, + id=id, + managed_database_group_id=managed_database_group_id, + managed_database_id=managed_database_id, + name=name, + lifecycle_state=lifecycle_state, + limit=limit, + sort_by=sort_by, + sort_order=sort_order,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_managed_database_groups"], + annotations=TOOL_ANNOTATIONS["list_managed_database_groups"],) +def list_managed_database_groups( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + id: str | None = Field(None, description='The identifier of the resource.'), + name: str | None = Field(None, description='A filter to return only resources that match the entire name.'), + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED'] | None = Field(None, description='The lifecycle state of a resource.\n\nAllowed values are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED"'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['TIMECREATED', 'NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘TIMECREATED’ is descending and the default sort order for ‘NAME’ is ascending.\nThe ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "NAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: + return invoke_dbm( + 'list_managed_database_groups', + compartment_id=compartment_id, + id=id, + name=name, + lifecycle_state=lifecycle_state, + limit=limit, + sort_by=sort_by, + sort_order=sort_order,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_managed_databases"], + annotations=TOOL_ANNOTATIONS["list_managed_databases"],) +def list_managed_databases( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + id: str | None = Field(None, description='The identifier of the resource.'), + name: str | None = Field(None, description='A filter to return only resources that match the entire name.'), + management_option: Literal['BASIC', 'ADVANCED'] | None = Field(None, description='A filter to return Managed Databases with the specified management option.\n\nAllowed values are: "BASIC", "ADVANCED"'), + deployment_type: Literal['ONPREMISE', 'BM', 'VM', 'EXADATA', 'EXADATA_CC', 'AUTONOMOUS', 'EXADATA_XS'] | None = Field(None, description='A filter to return Managed Databases of the specified deployment type.\n\nAllowed values are: "ONPREMISE", "BM", "VM", "EXADATA", "EXADATA_CC", "AUTONOMOUS", "EXADATA_XS"'), + external_exadata_infrastructure_id: str | None = Field(None, description='The OCID of the Exadata infrastructure.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['TIMECREATED', 'NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘TIMECREATED’ is descending and the default sort order for ‘NAME’ is ascending.\nThe ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "NAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: + return invoke_dbm( + 'list_managed_databases', + compartment_id=compartment_id, + id=id, + name=name, + management_option=management_option, + deployment_type=deployment_type, + external_exadata_infrastructure_id=external_exadata_infrastructure_id, + limit=limit, + sort_by=sort_by, + sort_order=sort_order,) + + + + + + + + + + + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_named_credentials"], + annotations=TOOL_ANNOTATIONS["list_named_credentials"],) +def list_named_credentials( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + associated_resource: str | None = Field(None, description='The resource associated to the named credential.'), + type: Literal['ORACLE_DB'] | None = Field(None, description='The type of database that is associated to the named credential.\n\nAllowed values are: "ORACLE_DB"'), + scope: Literal['RESOURCE', 'GLOBAL'] | None = Field(None, description='The scope of named credential.\n\nAllowed values are: "RESOURCE", "GLOBAL"'), + name: str | None = Field(None, description='The name of the named credential.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['TIMECREATED', 'NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘TIMECREATED’ is descending and the default sort order for ‘NAME’ is ascending.\nThe ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "NAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: + return invoke_dbm( + 'list_named_credentials', + compartment_id=compartment_id, + associated_resource=associated_resource, + type=type, + scope=scope, + name=name, + limit=limit, + sort_by=sort_by, + sort_order=sort_order,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_object_privileges"], + annotations=TOOL_ANNOTATIONS["list_object_privileges"],) +def list_object_privileges( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + user_name: str = Field(..., description='The name of the user whose details are to be viewed.'), + name: str | None = Field(None, description='A filter to return only resources that match the entire name.'), + sort_by: Literal['NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘NAME’ is ascending. The ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "NAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'list_object_privileges', + managed_database_id=managed_database_id, + user_name=user_name, + name=name, + sort_by=sort_by, + sort_order=sort_order, + limit=limit, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_optimizer_statistics_advisor_executions"], + annotations=TOOL_ANNOTATIONS["list_optimizer_statistics_advisor_executions"],) +def list_optimizer_statistics_advisor_executions( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + start_time_greater_than_or_equal_to: str | None = Field(None, description='The start time of the time range to retrieve the optimizer statistics of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".'), + end_time_less_than_or_equal_to: str | None = Field(None, description='The end time of the time range to retrieve the optimizer statistics of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".'), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'list_optimizer_statistics_advisor_executions', + managed_database_id=managed_database_id, + start_time_greater_than_or_equal_to=start_time_greater_than_or_equal_to, + end_time_less_than_or_equal_to=end_time_less_than_or_equal_to, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_optimizer_statistics_collection_aggregations"], + annotations=TOOL_ANNOTATIONS["list_optimizer_statistics_collection_aggregations"],) +def list_optimizer_statistics_collection_aggregations( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + group_type: Literal['TASK_STATUS', 'TASK_OBJECTS_STATUS'] = Field(..., description='The optimizer statistics tasks grouped by type.\n\nAllowed values are: "TASK_STATUS", "TASK_OBJECTS_STATUS"'), + start_time_greater_than_or_equal_to: str | None = Field(None, description='The start time of the time range to retrieve the optimizer statistics of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".'), + end_time_less_than_or_equal_to: str | None = Field(None, description='The end time of the time range to retrieve the optimizer statistics of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".'), + task_type: Literal['ALL', 'MANUAL', 'AUTO'] | None = Field(None, description='The filter types of the optimizer statistics tasks.\n\nAllowed values are: "ALL", "MANUAL", "AUTO"'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'list_optimizer_statistics_collection_aggregations', + managed_database_id=managed_database_id, + group_type=group_type, + start_time_greater_than_or_equal_to=start_time_greater_than_or_equal_to, + end_time_less_than_or_equal_to=end_time_less_than_or_equal_to, + task_type=task_type, + limit=limit, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_optimizer_statistics_collection_operations"], + annotations=TOOL_ANNOTATIONS["list_optimizer_statistics_collection_operations"],) +def list_optimizer_statistics_collection_operations( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + start_time_greater_than_or_equal_to: str | None = Field(None, description='The start time of the time range to retrieve the optimizer statistics of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".'), + end_time_less_than_or_equal_to: str | None = Field(None, description='The end time of the time range to retrieve the optimizer statistics of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".'), + task_type: Literal['ALL', 'MANUAL', 'AUTO'] | None = Field(None, description='The filter types of the optimizer statistics tasks.\n\nAllowed values are: "ALL", "MANUAL", "AUTO"'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + filter_by: str | None = Field(None, description='The parameter used to filter the optimizer statistics operations.\nAny property of the OptimizerStatisticsCollectionOperationSummary can be used to define the filter condition.\nThe allowed conditional operators are AND or OR, and the allowed binary operators are are >, < and =. Any other operator is regarded invalid.\nExample: jobName= AND status='), + sort_by: Literal['START_TIME', 'END_TIME', 'STATUS'] | None = Field(None, description='Sorts the list of optimizer statistics operations based on a specific attribute.\n\nAllowed values are: "START_TIME", "END_TIME", "STATUS"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'list_optimizer_statistics_collection_operations', + managed_database_id=managed_database_id, + start_time_greater_than_or_equal_to=start_time_greater_than_or_equal_to, + end_time_less_than_or_equal_to=end_time_less_than_or_equal_to, + task_type=task_type, + limit=limit, + filter_by=filter_by, + sort_by=sort_by, + sort_order=sort_order, + opc_named_credential_id=opc_named_credential_id,) + + + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_preferred_credentials"], + annotations=TOOL_ANNOTATIONS["list_preferred_credentials"],) +def list_preferred_credentials( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'),) -> Any: + return invoke_dbm( + 'list_preferred_credentials', + managed_database_id=managed_database_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_proxied_for_users"], + annotations=TOOL_ANNOTATIONS["list_proxied_for_users"],) +def list_proxied_for_users( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + user_name: str = Field(..., description='The name of the user whose details are to be viewed.'), + name: str | None = Field(None, description='A filter to return only resources that match the entire name.'), + sort_by: Literal['NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘NAME’ is ascending. The ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "NAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'list_proxied_for_users', + managed_database_id=managed_database_id, + user_name=user_name, + name=name, + sort_by=sort_by, + sort_order=sort_order, + limit=limit, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_proxy_users"], + annotations=TOOL_ANNOTATIONS["list_proxy_users"],) +def list_proxy_users( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + user_name: str = Field(..., description='The name of the user whose details are to be viewed.'), + name: str | None = Field(None, description='A filter to return only resources that match the entire name.'), + sort_by: Literal['NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘NAME’ is ascending. The ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "NAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'list_proxy_users', + managed_database_id=managed_database_id, + user_name=user_name, + name=name, + sort_by=sort_by, + sort_order=sort_order, + limit=limit, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_roles"], + annotations=TOOL_ANNOTATIONS["list_roles"],) +def list_roles( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + user_name: str = Field(..., description='The name of the user whose details are to be viewed.'), + name: str | None = Field(None, description='A filter to return only resources that match the entire name.'), + sort_by: Literal['NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘NAME’ is ascending. The ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "NAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'list_roles', + managed_database_id=managed_database_id, + user_name=user_name, + name=name, + sort_by=sort_by, + sort_order=sort_order, + limit=limit, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_sql_plan_baseline_jobs"], + annotations=TOOL_ANNOTATIONS["list_sql_plan_baseline_jobs"],) +def list_sql_plan_baseline_jobs( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + name: str | None = Field(None, description='A filter to return the SQL plan baseline jobs that match the name.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['TIMECREATED', 'NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘TIMECREATED’ is descending and the default sort order for ‘NAME’ is ascending.\nThe ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "NAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'list_sql_plan_baseline_jobs', + managed_database_id=managed_database_id, + name=name, + limit=limit, + sort_by=sort_by, + sort_order=sort_order, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_sql_plan_baselines"], + annotations=TOOL_ANNOTATIONS["list_sql_plan_baselines"],) +def list_sql_plan_baselines( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + plan_name: str | None = Field(None, description='A filter to return only SQL plan baselines that match the plan name.'), + sql_handle: str | None = Field(None, description='A filter to return all the SQL plan baselines for the specified SQL handle.'), + sql_text: str | None = Field(None, description="A filter to return all the SQL plan baselines that match the SQL text. By default, the search\nis case insensitive. To run an exact or case-sensitive search, double-quote the search string.\nYou may also use the '%' symbol as a wildcard."), + is_enabled: bool | None = Field(None, description='A filter to return only SQL plan baselines that are either enabled or not enabled.\nBy default, all SQL plan baselines are returned.'), + is_accepted: bool | None = Field(None, description='A filter to return only SQL plan baselines that are either accepted or not accepted.\nBy default, all SQL plan baselines are returned.'), + is_reproduced: bool | None = Field(None, description='A filter to return only SQL plan baselines that were either reproduced or\nnot reproduced by the optimizer. By default, all SQL plan baselines are returned.'), + is_fixed: bool | None = Field(None, description='A filter to return only SQL plan baselines that are either fixed or not fixed.\nBy default, all SQL plan baselines are returned.'), + is_adaptive: bool | None = Field(None, description='A filter to return only SQL plan baselines that are either adaptive or not adaptive.\nBy default, all SQL plan baselines are returned.'), + origin: Literal['ADDM_SQLTUNE', 'AUTO_CAPTURE', 'AUTO_SQLTUNE', 'EVOLVE_AUTO_INDEX_LOAD', 'EVOLVE_CREATE_FROM_ADAPTIVE', 'EVOLVE_LOAD_FROM_STS', 'EVOLVE_LOAD_FROM_AWR', 'EVOLVE_LOAD_FROM_CURSOR_CACHE', 'MANUAL_LOAD', 'MANUAL_LOAD_FROM_AWR', 'MANUAL_LOAD_FROM_CURSOR_CACHE', 'MANUAL_LOAD_FROM_STS', 'MANUAL_SQLTUNE', 'STORED_OUTLINE', 'UNKNOWN'] | None = Field(None, description='A filter to return all the SQL plan baselines that match the origin.\n\nAllowed values are: "ADDM_SQLTUNE", "AUTO_CAPTURE", "AUTO_SQLTUNE", "EVOLVE_AUTO_INDEX_LOAD", "EVOLVE_CREATE_FROM_ADAPTIVE", "EVOLVE_LOAD_FROM_STS", "EVOLVE_LOAD_FROM_AWR", "EVOLVE_LOAD_FROM_CURSOR_CACHE", "MANUAL_LOAD", "MANUAL_LOAD_FROM_AWR", "MANUAL_LOAD_FROM_CURSOR_CACHE", "MANUAL_LOAD_FROM_STS", "MANUAL_SQLTUNE", "STORED_OUTLINE", "UNKNOWN"'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['timeCreated', 'timeLastModified', 'timeLastExecuted'] | None = Field(None, description='The option to sort the SQL plan baseline summary data.\n\nAllowed values are: "timeCreated", "timeLastModified", "timeLastExecuted"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Descending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), + is_auto_purged: bool | None = Field(None, description='A filter to return only SQL plan baselines that are either auto-purged or not auto-purged.\nBy default, all SQL plan baselines are returned.'), + time_last_executed_greater_than: datetime | None = Field(None, description='A filter to return only SQL plan baselines whose last execution time is\nafter the specified value. By default, all SQL plan baselines are returned.'), + time_last_executed_less_than: datetime | None = Field(None, description='A filter to return only SQL plan baselines whose last execution time is\nbefore the specified value. By default, all SQL plan baselines are returned.'), + is_never_executed: bool | None = Field(None, description='A filter to return only SQL plan baselines that are not executed till now.\nBy default, all SQL plan baselines are returned.'), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'list_sql_plan_baselines', + managed_database_id=managed_database_id, + plan_name=plan_name, + sql_handle=sql_handle, + sql_text=sql_text, + is_enabled=is_enabled, + is_accepted=is_accepted, + is_reproduced=is_reproduced, + is_fixed=is_fixed, + is_adaptive=is_adaptive, + origin=origin, + limit=limit, + sort_by=sort_by, + sort_order=sort_order, + is_auto_purged=is_auto_purged, + time_last_executed_greater_than=time_last_executed_greater_than, + time_last_executed_less_than=time_last_executed_less_than, + is_never_executed=is_never_executed, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_sql_tuning_advisor_task_findings"], + annotations=TOOL_ANNOTATIONS["list_sql_tuning_advisor_task_findings"],) +def list_sql_tuning_advisor_task_findings( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + sql_tuning_advisor_task_id: int = Field(..., description='The SQL tuning task identifier. This is not the OCID.'), + begin_exec_id: int | None = Field(None, description='The optional greater than or equal to filter on the execution ID related to a specific SQL Tuning Advisor task.'), + end_exec_id: int | None = Field(None, description='The optional less than or equal to query parameter to filter on the execution ID related to a specific SQL Tuning Advisor task.'), + search_period: Literal['LAST_24HR', 'LAST_7DAY', 'LAST_31DAY', 'SINCE_LAST', 'ALL'] | None = Field(None, description='The search period during which the API will search for begin and end exec id, if not supplied.\nUnused if beginExecId and endExecId optional query params are both supplied.\n\nAllowed values are: "LAST_24HR", "LAST_7DAY", "LAST_31DAY", "SINCE_LAST", "ALL"'), + finding_filter: Literal['none', 'FINDINGS', 'NOFINDINGS', 'ERRORS', 'PROFILES', 'INDICES', 'STATS', 'RESTRUCTURE', 'ALTERNATIVE', 'AUTO_PROFILES', 'OTHER_PROFILES'] | None = Field(None, description='The filter used to display specific findings in the report.\n\nAllowed values are: "none", "FINDINGS", "NOFINDINGS", "ERRORS", "PROFILES", "INDICES", "STATS", "RESTRUCTURE", "ALTERNATIVE", "AUTO_PROFILES", "OTHER_PROFILES"'), + stats_hash_filter: str | None = Field(None, description='The hash value of the object for the statistic finding search.'), + index_hash_filter: str | None = Field(None, description='The hash value of the index table name.'), + sort_by: Literal['DBTIME_BENEFIT', 'PARSING_SCHEMA', 'SQL_ID', 'STATS', 'PROFILES', 'SQL_BENEFIT', 'DATE', 'INDICES', 'RESTRUCTURE', 'ALTERNATIVE', 'MISC', 'ERROR', 'TIMEOUTS'] | None = Field(None, description='The possible sortBy values of an object\'s recommendations.\n\nAllowed values are: "DBTIME_BENEFIT", "PARSING_SCHEMA", "SQL_ID", "STATS", "PROFILES", "SQL_BENEFIT", "DATE", "INDICES", "RESTRUCTURE", "ALTERNATIVE", "MISC", "ERROR", "TIMEOUTS"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Descending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'list_sql_tuning_advisor_task_findings', + managed_database_id=managed_database_id, + sql_tuning_advisor_task_id=sql_tuning_advisor_task_id, + begin_exec_id=begin_exec_id, + end_exec_id=end_exec_id, + search_period=search_period, + finding_filter=finding_filter, + stats_hash_filter=stats_hash_filter, + index_hash_filter=index_hash_filter, + sort_by=sort_by, + sort_order=sort_order, + limit=limit, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_sql_tuning_advisor_task_recommendations"], + annotations=TOOL_ANNOTATIONS["list_sql_tuning_advisor_task_recommendations"],) +def list_sql_tuning_advisor_task_recommendations( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + sql_tuning_advisor_task_id: int = Field(..., description='The SQL tuning task identifier. This is not the OCID.'), + sql_object_id: int = Field(..., description='The SQL object ID for the SQL tuning task. This is not the OCID.'), + execution_id: int = Field(..., description='The execution ID for an execution of a SQL tuning task. This is not the OCID.'), + sort_by: Literal['RECOMMENDATION_TYPE', 'BENEFIT'] | None = Field(None, description='The possible sortBy values of an object\'s recommendations.\n\nAllowed values are: "RECOMMENDATION_TYPE", "BENEFIT"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Descending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'list_sql_tuning_advisor_task_recommendations', + managed_database_id=managed_database_id, + sql_tuning_advisor_task_id=sql_tuning_advisor_task_id, + sql_object_id=sql_object_id, + execution_id=execution_id, + sort_by=sort_by, + sort_order=sort_order, + limit=limit, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_sql_tuning_advisor_tasks"], + annotations=TOOL_ANNOTATIONS["list_sql_tuning_advisor_tasks"],) +def list_sql_tuning_advisor_tasks( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + name: str | None = Field(None, description='The optional query parameter to filter the SQL Tuning Advisor task list by name.'), + status: Literal['INITIAL', 'EXECUTING', 'INTERRUPTED', 'COMPLETED', 'ERROR'] | None = Field(None, description='The optional query parameter to filter the SQL Tuning Advisor task list by status.\n\nAllowed values are: "INITIAL", "EXECUTING", "INTERRUPTED", "COMPLETED", "ERROR"'), + time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp.'), + time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['NAME', 'START_TIME'] | None = Field(None, description='The option to sort the SQL Tuning Advisor task summary data.\n\nAllowed values are: "NAME", "START_TIME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Descending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'list_sql_tuning_advisor_tasks', + managed_database_id=managed_database_id, + name=name, + status=status, + time_greater_than_or_equal_to=time_greater_than_or_equal_to, + time_less_than_or_equal_to=time_less_than_or_equal_to, + limit=limit, + sort_by=sort_by, + sort_order=sort_order, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_sql_tuning_sets"], + annotations=TOOL_ANNOTATIONS["list_sql_tuning_sets"],) +def list_sql_tuning_sets( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + owner: str | None = Field(None, description='The owner of the SQL tuning set.'), + name_contains: str | None = Field(None, description='Allow searching the name of the SQL tuning set by partial matching. The search is case insensitive.'), + sort_by: Literal['NAME'] | None = Field(None, description='The option to sort the SQL tuning set summary data.\n\nAllowed values are: "NAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'list_sql_tuning_sets', + managed_database_id=managed_database_id, + owner=owner, + name_contains=name_contains, + sort_by=sort_by, + sort_order=sort_order, + limit=limit, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_system_privileges"], + annotations=TOOL_ANNOTATIONS["list_system_privileges"],) +def list_system_privileges( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + user_name: str = Field(..., description='The name of the user whose details are to be viewed.'), + name: str | None = Field(None, description='A filter to return only resources that match the entire name.'), + sort_by: Literal['NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘NAME’ is ascending. The ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "NAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'list_system_privileges', + managed_database_id=managed_database_id, + user_name=user_name, + name=name, + sort_by=sort_by, + sort_order=sort_order, + limit=limit, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_table_statistics"], + annotations=TOOL_ANNOTATIONS["list_table_statistics"],) +def list_table_statistics( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'list_table_statistics', + managed_database_id=managed_database_id, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_tablespaces"], + annotations=TOOL_ANNOTATIONS["list_tablespaces"],) +def list_tablespaces( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + name: str | None = Field(None, description='A filter to return only resources that match the entire name.'), + sort_by: Literal['TIMECREATED', 'NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘TIMECREATED’ is descending and the default sort order for ‘NAME’ is ascending.\nThe ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "NAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'list_tablespaces', + managed_database_id=managed_database_id, + name=name, + sort_by=sort_by, + sort_order=sort_order, + limit=limit, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_users"], + annotations=TOOL_ANNOTATIONS["list_users"],) +def list_users( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + name: str | None = Field(None, description='A filter to return only resources that match the entire name.'), + sort_by: Literal['TIMECREATED', 'NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘TIMECREATED’ is descending and the default sort order for ‘NAME’ is ascending.\nThe ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "NAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'list_users', + managed_database_id=managed_database_id, + name=name, + sort_by=sort_by, + sort_order=sort_order, + limit=limit, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_work_request_errors"], + annotations=TOOL_ANNOTATIONS["list_work_request_errors"],) +def list_work_request_errors( + work_request_id: str = Field(..., description='The OCID of the asynchronous work request.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['timeAccepted'] | None = Field(None, description='The field to sort by. Only one sort order may be provided and the default order for timeAccepted is descending.\n\nAllowed values are: "timeAccepted"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: + return invoke_dbm( + 'list_work_request_errors', + work_request_id=work_request_id, + limit=limit, + sort_by=sort_by, + sort_order=sort_order,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_work_request_logs"], + annotations=TOOL_ANNOTATIONS["list_work_request_logs"],) +def list_work_request_logs( + work_request_id: str = Field(..., description='The OCID of the asynchronous work request.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['timeAccepted'] | None = Field(None, description='The field to sort by. Only one sort order may be provided and the default order for timeAccepted is descending.\n\nAllowed values are: "timeAccepted"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: + return invoke_dbm( + 'list_work_request_logs', + work_request_id=work_request_id, + limit=limit, + sort_by=sort_by, + sort_order=sort_order,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_work_requests"], + annotations=TOOL_ANNOTATIONS["list_work_requests"],) +def list_work_requests( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + resource_id: str | None = Field(None, description='The OCID of the resource affected by the work request.'), + work_request_id: str | None = Field(None, description='The OCID of the asynchronous work request.'), + status: Literal['ACCEPTED', 'IN_PROGRESS', 'FAILED', 'SUCCEEDED', 'CANCELING', 'CANCELED'] | None = Field(None, description='A filter that returns the resources whose status matches the given WorkRequestStatus.\n\nAllowed values are: "ACCEPTED", "IN_PROGRESS", "FAILED", "SUCCEEDED", "CANCELING", "CANCELED"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), + sort_by: Literal['timeAccepted'] | None = Field(None, description='The field to sort by. Only one sort order may be provided and the default order for timeAccepted is descending.\n\nAllowed values are: "timeAccepted"'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000),) -> Any: + return invoke_dbm( + 'list_work_requests', + compartment_id=compartment_id, + resource_id=resource_id, + work_request_id=work_request_id, + status=status, + sort_order=sort_order, + sort_by=sort_by, + limit=limit,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_alert_log_counts"], + annotations=TOOL_ANNOTATIONS["summarize_alert_log_counts"],) +def summarize_alert_log_counts( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to timestamp to filter the logs.'), + time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to timestamp to filter the logs.'), + level_filter: Literal['CRITICAL', 'SEVERE', 'IMPORTANT', 'NORMAL', 'ALL'] | None = Field(None, description='The optional parameter to filter the alert logs by log level.\n\nAllowed values are: "CRITICAL", "SEVERE", "IMPORTANT", "NORMAL", "ALL"'), + group_by: Literal['LEVEL', 'TYPE'] | None = Field(None, description='The optional parameter used to group different alert logs.\n\nAllowed values are: "LEVEL", "TYPE"'), + type_filter: Literal['UNKNOWN', 'INCIDENT_ERROR', 'ERROR', 'WARNING', 'NOTIFICATION', 'TRACE', 'ALL'] | None = Field(None, description='The optional parameter to filter the attention or alert logs by type.\n\nAllowed values are: "UNKNOWN", "INCIDENT_ERROR", "ERROR", "WARNING", "NOTIFICATION", "TRACE", "ALL"'), + log_search_text: str | None = Field(None, description='The optional query parameter to filter the attention or alert logs by search text.'), + is_regular_expression: bool | None = Field(None, description='The flag to indicate whether the search text is regular expression or not.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'summarize_alert_log_counts', + managed_database_id=managed_database_id, + time_greater_than_or_equal_to=time_greater_than_or_equal_to, + time_less_than_or_equal_to=time_less_than_or_equal_to, + level_filter=level_filter, + group_by=group_by, + type_filter=type_filter, + log_search_text=log_search_text, + is_regular_expression=is_regular_expression, + limit=limit, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_attention_log_counts"], + annotations=TOOL_ANNOTATIONS["summarize_attention_log_counts"],) +def summarize_attention_log_counts( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to timestamp to filter the logs.'), + time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to timestamp to filter the logs.'), + urgency_filter: Literal['IMMEDIATE', 'SOON', 'DEFERRABLE', 'INFO', 'ALL'] | None = Field(None, description='The optional parameter to filter the attention logs by urgency.\n\nAllowed values are: "IMMEDIATE", "SOON", "DEFERRABLE", "INFO", "ALL"'), + group_by: Literal['URGENCY', 'TYPE'] | None = Field(None, description='The optional parameter used to group different attention logs.\n\nAllowed values are: "URGENCY", "TYPE"'), + type_filter: Literal['UNKNOWN', 'INCIDENT_ERROR', 'ERROR', 'WARNING', 'NOTIFICATION', 'TRACE', 'ALL'] | None = Field(None, description='The optional parameter to filter the attention or alert logs by type.\n\nAllowed values are: "UNKNOWN", "INCIDENT_ERROR", "ERROR", "WARNING", "NOTIFICATION", "TRACE", "ALL"'), + log_search_text: str | None = Field(None, description='The optional query parameter to filter the attention or alert logs by search text.'), + is_regular_expression: bool | None = Field(None, description='The flag to indicate whether the search text is regular expression or not.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'summarize_attention_log_counts', + managed_database_id=managed_database_id, + time_greater_than_or_equal_to=time_greater_than_or_equal_to, + time_less_than_or_equal_to=time_less_than_or_equal_to, + urgency_filter=urgency_filter, + group_by=group_by, + type_filter=type_filter, + log_search_text=log_search_text, + is_regular_expression=is_regular_expression, + limit=limit, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_awr_db_cpu_usages"], + annotations=TOOL_ANNOTATIONS["summarize_awr_db_cpu_usages"],) +def summarize_awr_db_cpu_usages( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + awr_db_id: str = Field(..., description='Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.'), + inst_num: str | None = Field(None, description='The optional single value query parameter to filter the database instance number.'), + begin_sn_id_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), + end_sn_id_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot ID.'), + time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp.'), + time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp.'), + session_type: Literal['FOREGROUND', 'BACKGROUND', 'ALL'] | None = Field(None, description='The optional query parameter to filter ASH activities by FOREGROUND or BACKGROUND.\n\nAllowed values are: "FOREGROUND", "BACKGROUND", "ALL"'), + container_id: int | None = Field(None, description='AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.'), + limit: int | None = Field(None, description='For large list pagination. Maximum number of results to return in one response page. Example: 1000.', ge=1, le=1000), + sort_by: Literal['TIME_SAMPLED', 'AVG_VALUE'] | None = Field(None, description='The option to sort the AWR CPU usage summary data.\n\nAllowed values are: "TIME_SAMPLED", "AVG_VALUE"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Descending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'summarize_awr_db_cpu_usages', + managed_database_id=managed_database_id, + awr_db_id=awr_db_id, + inst_num=inst_num, + begin_sn_id_greater_than_or_equal_to=begin_sn_id_greater_than_or_equal_to, + end_sn_id_less_than_or_equal_to=end_sn_id_less_than_or_equal_to, + time_greater_than_or_equal_to=time_greater_than_or_equal_to, + time_less_than_or_equal_to=time_less_than_or_equal_to, + session_type=session_type, + container_id=container_id, + limit=limit, + sort_by=sort_by, + sort_order=sort_order, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_awr_db_metrics"], + annotations=TOOL_ANNOTATIONS["summarize_awr_db_metrics"],) +def summarize_awr_db_metrics( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + awr_db_id: str = Field(..., description='Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.'), + name: list[str] = Field(..., description='The required multiple value query parameter to filter the entity name.'), + inst_num: str | None = Field(None, description='The optional single value query parameter to filter the database instance number.'), + begin_sn_id_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), + end_sn_id_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot ID.'), + time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp.'), + time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp.'), + container_id: int | None = Field(None, description='AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.'), + limit: int | None = Field(None, description='For large list pagination. Maximum number of results to return in one response page. Example: 1000.', ge=1, le=1000), + sort_by: Literal['TIMESTAMP', 'NAME'] | None = Field(None, description='The option to sort the AWR time series summary data.\n\nAllowed values are: "TIMESTAMP", "NAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Descending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'summarize_awr_db_metrics', + managed_database_id=managed_database_id, + awr_db_id=awr_db_id, + name=name, + inst_num=inst_num, + begin_sn_id_greater_than_or_equal_to=begin_sn_id_greater_than_or_equal_to, + end_sn_id_less_than_or_equal_to=end_sn_id_less_than_or_equal_to, + time_greater_than_or_equal_to=time_greater_than_or_equal_to, + time_less_than_or_equal_to=time_less_than_or_equal_to, + container_id=container_id, + limit=limit, + sort_by=sort_by, + sort_order=sort_order, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_awr_db_parameter_changes"], + annotations=TOOL_ANNOTATIONS["summarize_awr_db_parameter_changes"],) +def summarize_awr_db_parameter_changes( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + awr_db_id: str = Field(..., description='Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.'), + name: str = Field(..., description='The required single value query parameter to filter the entity name.'), + inst_num: str | None = Field(None, description='The optional single value query parameter to filter the database instance number.'), + begin_sn_id_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), + end_sn_id_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot ID.'), + time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp.'), + time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp.'), + container_id: int | None = Field(None, description='AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.'), + limit: int | None = Field(None, description='For large list pagination. Maximum number of results to return in one response page. Example: 1000.', ge=1, le=1000), + sort_by: Literal['IS_CHANGED', 'NAME'] | None = Field(None, description='The option to sort the AWR database parameter change history data.\n\nAllowed values are: "IS_CHANGED", "NAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Descending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'summarize_awr_db_parameter_changes', + managed_database_id=managed_database_id, + awr_db_id=awr_db_id, + name=name, + inst_num=inst_num, + begin_sn_id_greater_than_or_equal_to=begin_sn_id_greater_than_or_equal_to, + end_sn_id_less_than_or_equal_to=end_sn_id_less_than_or_equal_to, + time_greater_than_or_equal_to=time_greater_than_or_equal_to, + time_less_than_or_equal_to=time_less_than_or_equal_to, + container_id=container_id, + limit=limit, + sort_by=sort_by, + sort_order=sort_order, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_awr_db_parameters"], + annotations=TOOL_ANNOTATIONS["summarize_awr_db_parameters"],) +def summarize_awr_db_parameters( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + awr_db_id: str = Field(..., description='Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.'), + inst_num: str | None = Field(None, description='The optional single value query parameter to filter the database instance number.'), + begin_sn_id_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), + end_sn_id_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot ID.'), + time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp.'), + time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp.'), + container_id: int | None = Field(None, description='AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.'), + name: list[str] | None = Field(None, description='The optional multiple value query parameter to filter the entity name.'), + name_contains: str | None = Field(None, description='The optional contains query parameter to filter the entity name by any part of the name.'), + value_changed: Literal['Y', 'N'] | None = Field(None, description='The optional query parameter to filter database parameters whose values were changed.\n\nAllowed values are: "Y", "N"'), + value_default: Literal['TRUE', 'FALSE'] | None = Field(None, description='The optional query parameter to filter the database parameters that had the default value in the last snapshot.\n\nAllowed values are: "TRUE", "FALSE"'), + value_modified: Literal['MODIFIED', 'SYSTEM_MOD', 'FALSE'] | None = Field(None, description='The optional query parameter to filter the database parameters that had a modified value in the last snapshot.\n\nAllowed values are: "MODIFIED", "SYSTEM_MOD", "FALSE"'), + limit: int | None = Field(None, description='For large list pagination. Maximum number of results to return in one response page. Example: 1000.', ge=1, le=1000), + sort_by: Literal['IS_CHANGED', 'NAME'] | None = Field(None, description='The option to sort the AWR database parameter change history data.\n\nAllowed values are: "IS_CHANGED", "NAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Descending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'summarize_awr_db_parameters', + managed_database_id=managed_database_id, + awr_db_id=awr_db_id, + inst_num=inst_num, + begin_sn_id_greater_than_or_equal_to=begin_sn_id_greater_than_or_equal_to, + end_sn_id_less_than_or_equal_to=end_sn_id_less_than_or_equal_to, + time_greater_than_or_equal_to=time_greater_than_or_equal_to, + time_less_than_or_equal_to=time_less_than_or_equal_to, + container_id=container_id, + name=name, + name_contains=name_contains, + value_changed=value_changed, + value_default=value_default, + value_modified=value_modified, + limit=limit, + sort_by=sort_by, + sort_order=sort_order, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_awr_db_snapshot_ranges"], + annotations=TOOL_ANNOTATIONS["summarize_awr_db_snapshot_ranges"],) +def summarize_awr_db_snapshot_ranges( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + name: str | None = Field(None, description='The optional single value query parameter to filter the entity name.'), + time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp.'), + time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: Literal['END_INTERVAL_TIME', 'NAME'] | None = Field(None, description='The option to sort the AWR summary data.\n\nAllowed values are: "END_INTERVAL_TIME", "NAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Descending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'summarize_awr_db_snapshot_ranges', + managed_database_id=managed_database_id, + name=name, + time_greater_than_or_equal_to=time_greater_than_or_equal_to, + time_less_than_or_equal_to=time_less_than_or_equal_to, + limit=limit, + sort_by=sort_by, + sort_order=sort_order, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_awr_db_sysstats"], + annotations=TOOL_ANNOTATIONS["summarize_awr_db_sysstats"],) +def summarize_awr_db_sysstats( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + awr_db_id: str = Field(..., description='Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.'), + name: list[str] = Field(..., description='The required multiple value query parameter to filter the entity name.'), + inst_num: str | None = Field(None, description='The optional single value query parameter to filter the database instance number.'), + begin_sn_id_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), + end_sn_id_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot ID.'), + time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp.'), + time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp.'), + container_id: int | None = Field(None, description='AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.'), + limit: int | None = Field(None, description='For large list pagination. Maximum number of results to return in one response page. Example: 1000.', ge=1, le=1000), + sort_by: Literal['TIME_BEGIN', 'NAME'] | None = Field(None, description='The option to sort the data within a time period.\n\nAllowed values are: "TIME_BEGIN", "NAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Descending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'summarize_awr_db_sysstats', + managed_database_id=managed_database_id, + awr_db_id=awr_db_id, + name=name, + inst_num=inst_num, + begin_sn_id_greater_than_or_equal_to=begin_sn_id_greater_than_or_equal_to, + end_sn_id_less_than_or_equal_to=end_sn_id_less_than_or_equal_to, + time_greater_than_or_equal_to=time_greater_than_or_equal_to, + time_less_than_or_equal_to=time_less_than_or_equal_to, + container_id=container_id, + limit=limit, + sort_by=sort_by, + sort_order=sort_order, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_awr_db_top_wait_events"], + annotations=TOOL_ANNOTATIONS["summarize_awr_db_top_wait_events"],) +def summarize_awr_db_top_wait_events( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + awr_db_id: str = Field(..., description='Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.'), + inst_num: str | None = Field(None, description='The optional single value query parameter to filter the database instance number.'), + begin_sn_id_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), + end_sn_id_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot ID.'), + time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp.'), + time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp.'), + session_type: Literal['FOREGROUND', 'BACKGROUND', 'ALL'] | None = Field(None, description='The optional query parameter to filter ASH activities by FOREGROUND or BACKGROUND.\n\nAllowed values are: "FOREGROUND", "BACKGROUND", "ALL"'), + container_id: int | None = Field(None, description='AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.'), + top_n: int | None = Field(None, description='The optional query parameter to filter the number of top categories to be returned.'), + sort_by: Literal['WAITS_PERSEC', 'AVG_WAIT_TIME_PERSEC'] | None = Field(None, description='The option to sort the AWR top event summary data.\n\nAllowed values are: "WAITS_PERSEC", "AVG_WAIT_TIME_PERSEC"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Descending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'summarize_awr_db_top_wait_events', + managed_database_id=managed_database_id, + awr_db_id=awr_db_id, + inst_num=inst_num, + begin_sn_id_greater_than_or_equal_to=begin_sn_id_greater_than_or_equal_to, + end_sn_id_less_than_or_equal_to=end_sn_id_less_than_or_equal_to, + time_greater_than_or_equal_to=time_greater_than_or_equal_to, + time_less_than_or_equal_to=time_less_than_or_equal_to, + session_type=session_type, + container_id=container_id, + top_n=top_n, + sort_by=sort_by, + sort_order=sort_order, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_awr_db_wait_event_buckets"], + annotations=TOOL_ANNOTATIONS["summarize_awr_db_wait_event_buckets"],) +def summarize_awr_db_wait_event_buckets( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + awr_db_id: str = Field(..., description='Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.'), + name: str = Field(..., description='The required single value query parameter to filter the entity name.'), + inst_num: str | None = Field(None, description='The optional single value query parameter to filter the database instance number.'), + begin_sn_id_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), + end_sn_id_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot ID.'), + time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp.'), + time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp.'), + num_bucket: int | None = Field(None, description='The number of buckets within the histogram.'), + min_value: float | None = Field(None, description='The minimum value of the histogram.'), + max_value: float | None = Field(None, description='The maximum value of the histogram.'), + container_id: int | None = Field(None, description='AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.'), + limit: int | None = Field(None, description='For large list pagination. Maximum number of results to return in one response page. Example: 1000.', ge=1, le=1000), + sort_by: Literal['CATEGORY', 'PERCENTAGE'] | None = Field(None, description='The option to sort distribution data.\n\nAllowed values are: "CATEGORY", "PERCENTAGE"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'summarize_awr_db_wait_event_buckets', + managed_database_id=managed_database_id, + awr_db_id=awr_db_id, + name=name, + inst_num=inst_num, + begin_sn_id_greater_than_or_equal_to=begin_sn_id_greater_than_or_equal_to, + end_sn_id_less_than_or_equal_to=end_sn_id_less_than_or_equal_to, + time_greater_than_or_equal_to=time_greater_than_or_equal_to, + time_less_than_or_equal_to=time_less_than_or_equal_to, + num_bucket=num_bucket, + min_value=min_value, + max_value=max_value, + container_id=container_id, + limit=limit, + sort_by=sort_by, + sort_order=sort_order, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_awr_db_wait_events"], + annotations=TOOL_ANNOTATIONS["summarize_awr_db_wait_events"],) +def summarize_awr_db_wait_events( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + awr_db_id: str = Field(..., description='Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.'), + inst_num: str | None = Field(None, description='The optional single value query parameter to filter the database instance number.'), + begin_sn_id_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), + end_sn_id_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot ID.'), + time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp.'), + time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp.'), + name: list[str] | None = Field(None, description='The optional multiple value query parameter to filter the entity name.'), + session_type: Literal['FOREGROUND', 'BACKGROUND', 'ALL'] | None = Field(None, description='The optional query parameter to filter ASH activities by FOREGROUND or BACKGROUND.\n\nAllowed values are: "FOREGROUND", "BACKGROUND", "ALL"'), + container_id: int | None = Field(None, description='AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.'), + limit: int | None = Field(None, description='For large list pagination. Maximum number of results to return in one response page. Example: 1000.', ge=1, le=1000), + sort_by: Literal['TIME_BEGIN', 'NAME'] | None = Field(None, description='The option to sort the data within a time period.\n\nAllowed values are: "TIME_BEGIN", "NAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Descending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'summarize_awr_db_wait_events', + managed_database_id=managed_database_id, + awr_db_id=awr_db_id, + inst_num=inst_num, + begin_sn_id_greater_than_or_equal_to=begin_sn_id_greater_than_or_equal_to, + end_sn_id_less_than_or_equal_to=end_sn_id_less_than_or_equal_to, + time_greater_than_or_equal_to=time_greater_than_or_equal_to, + time_less_than_or_equal_to=time_less_than_or_equal_to, + name=name, + session_type=session_type, + container_id=container_id, + limit=limit, + sort_by=sort_by, + sort_order=sort_order, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_cloud_asm_metrics"], + annotations=TOOL_ANNOTATIONS["summarize_cloud_asm_metrics"],) +def summarize_cloud_asm_metrics( + cloud_asm_id: str = Field(..., description='The OCID of the cloud ASM.'), + start_time: str = Field(..., description="The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`."), + end_time: str = Field(..., description="The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`."), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + filter_by_metric_names: str | None = Field(None, description='The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.'),) -> Any: + return invoke_dbm( + 'summarize_cloud_asm_metrics', + cloud_asm_id=cloud_asm_id, + start_time=start_time, + end_time=end_time, + limit=limit, + filter_by_metric_names=filter_by_metric_names,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_cloud_cluster_metrics"], + annotations=TOOL_ANNOTATIONS["summarize_cloud_cluster_metrics"],) +def summarize_cloud_cluster_metrics( + cloud_cluster_id: str = Field(..., description='The OCID of the cloud cluster.'), + start_time: str = Field(..., description="The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`."), + end_time: str = Field(..., description="The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`."), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + filter_by_metric_names: str | None = Field(None, description='The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.'),) -> Any: + return invoke_dbm( + 'summarize_cloud_cluster_metrics', + cloud_cluster_id=cloud_cluster_id, + start_time=start_time, + end_time=end_time, + limit=limit, + filter_by_metric_names=filter_by_metric_names,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_cloud_db_node_metrics"], + annotations=TOOL_ANNOTATIONS["summarize_cloud_db_node_metrics"],) +def summarize_cloud_db_node_metrics( + cloud_db_node_id: str = Field(..., description='The OCID of the cloud database node.'), + start_time: str = Field(..., description="The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`."), + end_time: str = Field(..., description="The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`."), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + filter_by_metric_names: str | None = Field(None, description='The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.'),) -> Any: + return invoke_dbm( + 'summarize_cloud_db_node_metrics', + cloud_db_node_id=cloud_db_node_id, + start_time=start_time, + end_time=end_time, + limit=limit, + filter_by_metric_names=filter_by_metric_names,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_cloud_db_system_availability_metrics"], + annotations=TOOL_ANNOTATIONS["summarize_cloud_db_system_availability_metrics"],) +def summarize_cloud_db_system_availability_metrics( + cloud_db_system_id: str = Field(..., description='The OCID of the cloud DB system.'), + start_time: str = Field(..., description="The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`."), + end_time: str = Field(..., description="The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`."), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + filter_by_component_types: str | None = Field(None, description='The filter used to retrieve metrics for a specific set of component types by passing the desired component types separated by a comma. Note that, by default, the service returns metrics for all DB system component types.'),) -> Any: + return invoke_dbm( + 'summarize_cloud_db_system_availability_metrics', + cloud_db_system_id=cloud_db_system_id, + start_time=start_time, + end_time=end_time, + limit=limit, + filter_by_component_types=filter_by_component_types,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_cloud_listener_metrics"], + annotations=TOOL_ANNOTATIONS["summarize_cloud_listener_metrics"],) +def summarize_cloud_listener_metrics( + cloud_listener_id: str = Field(..., description='The OCID of the cloud listener.'), + start_time: str = Field(..., description="The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`."), + end_time: str = Field(..., description="The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`."), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + filter_by_metric_names: str | None = Field(None, description='The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.'),) -> Any: + return invoke_dbm( + 'summarize_cloud_listener_metrics', + cloud_listener_id=cloud_listener_id, + start_time=start_time, + end_time=end_time, + limit=limit, + filter_by_metric_names=filter_by_metric_names,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_external_asm_metrics"], + annotations=TOOL_ANNOTATIONS["summarize_external_asm_metrics"],) +def summarize_external_asm_metrics( + external_asm_id: str = Field(..., description='The OCID of the external ASM.'), + start_time: str = Field(..., description="The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`."), + end_time: str = Field(..., description="The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`."), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + filter_by_metric_names: str | None = Field(None, description='The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.'),) -> Any: + return invoke_dbm( + 'summarize_external_asm_metrics', + external_asm_id=external_asm_id, + start_time=start_time, + end_time=end_time, + limit=limit, + filter_by_metric_names=filter_by_metric_names,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_external_cluster_metrics"], + annotations=TOOL_ANNOTATIONS["summarize_external_cluster_metrics"],) +def summarize_external_cluster_metrics( + external_cluster_id: str = Field(..., description='The OCID of the external cluster.'), + start_time: str = Field(..., description="The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`."), + end_time: str = Field(..., description="The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`."), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + filter_by_metric_names: str | None = Field(None, description='The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.'),) -> Any: + return invoke_dbm( + 'summarize_external_cluster_metrics', + external_cluster_id=external_cluster_id, + start_time=start_time, + end_time=end_time, + limit=limit, + filter_by_metric_names=filter_by_metric_names,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_external_db_node_metrics"], + annotations=TOOL_ANNOTATIONS["summarize_external_db_node_metrics"],) +def summarize_external_db_node_metrics( + external_db_node_id: str = Field(..., description='The OCID of the external database node.'), + start_time: str = Field(..., description="The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`."), + end_time: str = Field(..., description="The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`."), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + filter_by_metric_names: str | None = Field(None, description='The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.'),) -> Any: + return invoke_dbm( + 'summarize_external_db_node_metrics', + external_db_node_id=external_db_node_id, + start_time=start_time, + end_time=end_time, + limit=limit, + filter_by_metric_names=filter_by_metric_names,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_external_db_system_availability_metrics"], + annotations=TOOL_ANNOTATIONS["summarize_external_db_system_availability_metrics"],) +def summarize_external_db_system_availability_metrics( + external_db_system_id: str = Field(..., description='The OCID of the external DB system.'), + start_time: str = Field(..., description="The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`."), + end_time: str = Field(..., description="The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`."), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + filter_by_component_types: str | None = Field(None, description='The filter used to retrieve metrics for a specific set of component types by passing the desired component types separated by a comma. Note that, by default, the service returns metrics for all DB system component types.'),) -> Any: + return invoke_dbm( + 'summarize_external_db_system_availability_metrics', + external_db_system_id=external_db_system_id, + start_time=start_time, + end_time=end_time, + limit=limit, + filter_by_component_types=filter_by_component_types,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_external_listener_metrics"], + annotations=TOOL_ANNOTATIONS["summarize_external_listener_metrics"],) +def summarize_external_listener_metrics( + external_listener_id: str = Field(..., description='The OCID of the external listener.'), + start_time: str = Field(..., description="The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`."), + end_time: str = Field(..., description="The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`."), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + filter_by_metric_names: str | None = Field(None, description='The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.'),) -> Any: + return invoke_dbm( + 'summarize_external_listener_metrics', + external_listener_id=external_listener_id, + start_time=start_time, + end_time=end_time, + limit=limit, + filter_by_metric_names=filter_by_metric_names,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_job_executions_statuses"], + annotations=TOOL_ANNOTATIONS["summarize_job_executions_statuses"],) +def summarize_job_executions_statuses( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + start_time: str = Field(..., description='The start time of the time range to retrieve the status summary of job executions\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".'), + end_time: str = Field(..., description='The end time of the time range to retrieve the status summary of job executions\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".'), + id: str | None = Field(None, description='The identifier of the resource.'), + managed_database_group_id: str | None = Field(None, description='The OCID of the Managed Database Group.'), + managed_database_id: str | None = Field(None, description='The OCID of the Managed Database.'), + name: str | None = Field(None, description='A filter to return only resources that match the entire name.'), + sort_by: Literal['TIMECREATED', 'NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘TIMECREATED’ is descending and the default sort order for ‘NAME’ is ascending.\nThe ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "NAME"'), + sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: + return invoke_dbm( + 'summarize_job_executions_statuses', + compartment_id=compartment_id, + start_time=start_time, + end_time=end_time, + id=id, + managed_database_group_id=managed_database_group_id, + managed_database_id=managed_database_id, + name=name, + sort_by=sort_by, + sort_order=sort_order,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_managed_database_availability_metrics"], + annotations=TOOL_ANNOTATIONS["summarize_managed_database_availability_metrics"],) +def summarize_managed_database_availability_metrics( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + start_time: str = Field(..., description='The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".'), + end_time: str = Field(..., description='The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000),) -> Any: + return invoke_dbm( + 'summarize_managed_database_availability_metrics', + managed_database_id=managed_database_id, + start_time=start_time, + end_time=end_time, + limit=limit,) + + + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_sql_plan_baselines"], + annotations=TOOL_ANNOTATIONS["summarize_sql_plan_baselines"],) +def summarize_sql_plan_baselines( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'summarize_sql_plan_baselines', + managed_database_id=managed_database_id, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_sql_plan_baselines_by_last_execution"], + annotations=TOOL_ANNOTATIONS["summarize_sql_plan_baselines_by_last_execution"],) +def summarize_sql_plan_baselines_by_last_execution( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: + return invoke_dbm( + 'summarize_sql_plan_baselines_by_last_execution', + managed_database_id=managed_database_id, + opc_named_credential_id=opc_named_credential_id,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_cloud_asm"], + annotations=TOOL_ANNOTATIONS["update_cloud_asm"],) +def update_cloud_asm( + cloud_asm_id: str = Field(..., description='The OCID of the cloud ASM.'), + update_cloud_asm_details: dict[str, Any] | UpdateCloudAsmDetails = Field(..., description='The details required to update an cloud ASM.'),) -> Any: + return invoke_dbm( + 'update_cloud_asm', + cloud_asm_id=cloud_asm_id, + update_cloud_asm_details=update_cloud_asm_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_cloud_asm_instance"], + annotations=TOOL_ANNOTATIONS["update_cloud_asm_instance"],) +def update_cloud_asm_instance( + cloud_asm_instance_id: str = Field(..., description='The OCID of the cloud ASM instance.'), + update_cloud_asm_instance_details: dict[str, Any] | UpdateCloudAsmInstanceDetails = Field(..., description='The details required to update an cloud ASM instance.'),) -> Any: + return invoke_dbm( + 'update_cloud_asm_instance', + cloud_asm_instance_id=cloud_asm_instance_id, + update_cloud_asm_instance_details=update_cloud_asm_instance_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_cloud_cluster"], + annotations=TOOL_ANNOTATIONS["update_cloud_cluster"],) +def update_cloud_cluster( + cloud_cluster_id: str = Field(..., description='The OCID of the cloud cluster.'), + update_cloud_cluster_details: dict[str, Any] | UpdateCloudClusterDetails = Field(..., description='The details required to update an cloud cluster.'),) -> Any: + return invoke_dbm( + 'update_cloud_cluster', + cloud_cluster_id=cloud_cluster_id, + update_cloud_cluster_details=update_cloud_cluster_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_cloud_cluster_instance"], + annotations=TOOL_ANNOTATIONS["update_cloud_cluster_instance"],) +def update_cloud_cluster_instance( + cloud_cluster_instance_id: str = Field(..., description='The OCID of the cloud cluster instance.'), + update_cloud_cluster_instance_details: dict[str, Any] | UpdateCloudClusterInstanceDetails = Field(..., description='The details required to update an cloud cluster instance.'),) -> Any: + return invoke_dbm( + 'update_cloud_cluster_instance', + cloud_cluster_instance_id=cloud_cluster_instance_id, + update_cloud_cluster_instance_details=update_cloud_cluster_instance_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_cloud_db_home"], + annotations=TOOL_ANNOTATIONS["update_cloud_db_home"],) +def update_cloud_db_home( + cloud_db_home_id: str = Field(..., description='The OCID of the cloud database home.'), + update_cloud_db_home_details: dict[str, Any] | UpdateCloudDbHomeDetails = Field(..., description='The details required to update an cloud DB home.'),) -> Any: + return invoke_dbm( + 'update_cloud_db_home', + cloud_db_home_id=cloud_db_home_id, + update_cloud_db_home_details=update_cloud_db_home_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_cloud_db_node"], + annotations=TOOL_ANNOTATIONS["update_cloud_db_node"],) +def update_cloud_db_node( + cloud_db_node_id: str = Field(..., description='The OCID of the cloud database node.'), + update_cloud_db_node_details: dict[str, Any] | UpdateCloudDbNodeDetails = Field(..., description='The details required to update an cloud DB node.'),) -> Any: + return invoke_dbm( + 'update_cloud_db_node', + cloud_db_node_id=cloud_db_node_id, + update_cloud_db_node_details=update_cloud_db_node_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_cloud_db_system"], + annotations=TOOL_ANNOTATIONS["update_cloud_db_system"],) +def update_cloud_db_system( + cloud_db_system_id: str = Field(..., description='The OCID of the cloud DB system.'), + update_cloud_db_system_details: dict[str, Any] | UpdateCloudDbSystemDetails = Field(..., description='The details required to update an cloud DB system.'),) -> Any: + return invoke_dbm( + 'update_cloud_db_system', + cloud_db_system_id=cloud_db_system_id, + update_cloud_db_system_details=update_cloud_db_system_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_cloud_db_system_connector"], + annotations=TOOL_ANNOTATIONS["update_cloud_db_system_connector"],) +def update_cloud_db_system_connector( + cloud_db_system_connector_id: str = Field(..., description='The OCID of the cloud connector.'), + update_cloud_db_system_connector_details: dict[str, Any] | UpdateCloudDbSystemConnectorDetails = Field(..., description='The details required to update an cloud connector.'),) -> Any: + return invoke_dbm( + 'update_cloud_db_system_connector', + cloud_db_system_connector_id=cloud_db_system_connector_id, + update_cloud_db_system_connector_details=update_cloud_db_system_connector_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_cloud_db_system_discovery"], + annotations=TOOL_ANNOTATIONS["update_cloud_db_system_discovery"],) +def update_cloud_db_system_discovery( + cloud_db_system_discovery_id: str = Field(..., description='The OCID of the cloud DB system discovery.'), + update_cloud_db_system_discovery_details: dict[str, Any] | UpdateCloudDbSystemDiscoveryDetails = Field(..., description='The details required to update an cloud DB system discovery.'),) -> Any: + return invoke_dbm( + 'update_cloud_db_system_discovery', + cloud_db_system_discovery_id=cloud_db_system_discovery_id, + update_cloud_db_system_discovery_details=update_cloud_db_system_discovery_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_cloud_exadata_infrastructure"], + annotations=TOOL_ANNOTATIONS["update_cloud_exadata_infrastructure"],) +def update_cloud_exadata_infrastructure( + cloud_exadata_infrastructure_id: str = Field(..., description='The OCID of the Exadata infrastructure.'), + update_cloud_exadata_infrastructure_details: dict[str, Any] | UpdateCloudExadataInfrastructureDetails = Field(..., description='The details required to update the managed Exadata infrastructure resources.'),) -> Any: + return invoke_dbm( + 'update_cloud_exadata_infrastructure', + cloud_exadata_infrastructure_id=cloud_exadata_infrastructure_id, + update_cloud_exadata_infrastructure_details=update_cloud_exadata_infrastructure_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_cloud_exadata_storage_connector"], + annotations=TOOL_ANNOTATIONS["update_cloud_exadata_storage_connector"],) +def update_cloud_exadata_storage_connector( + cloud_exadata_storage_connector_id: str = Field(..., description='The OCID of the connector to the Exadata storage server.'), + update_cloud_exadata_storage_connector_details: dict[str, Any] | UpdateCloudExadataStorageConnectorDetails = Field(..., description='The details required to update connections to the Exadata storage servers.'),) -> Any: + return invoke_dbm( + 'update_cloud_exadata_storage_connector', + cloud_exadata_storage_connector_id=cloud_exadata_storage_connector_id, + update_cloud_exadata_storage_connector_details=update_cloud_exadata_storage_connector_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_cloud_exadata_storage_grid"], + annotations=TOOL_ANNOTATIONS["update_cloud_exadata_storage_grid"],) +def update_cloud_exadata_storage_grid( + cloud_exadata_storage_grid_id: str = Field(..., description='The OCID of the Exadata storage grid.'), + update_cloud_exadata_storage_grid_details: dict[str, Any] | UpdateCloudExadataStorageGridDetails = Field(..., description='The details required to update an Exadata storage grid.'),) -> Any: + return invoke_dbm( + 'update_cloud_exadata_storage_grid', + cloud_exadata_storage_grid_id=cloud_exadata_storage_grid_id, + update_cloud_exadata_storage_grid_details=update_cloud_exadata_storage_grid_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_cloud_exadata_storage_server"], + annotations=TOOL_ANNOTATIONS["update_cloud_exadata_storage_server"],) +def update_cloud_exadata_storage_server( + cloud_exadata_storage_server_id: str = Field(..., description='The OCID of the Exadata storage server.'), + update_cloud_exadata_storage_server_details: dict[str, Any] | UpdateCloudExadataStorageServerDetails = Field(..., description='The details required to update an Exadata storage server.'),) -> Any: + return invoke_dbm( + 'update_cloud_exadata_storage_server', + cloud_exadata_storage_server_id=cloud_exadata_storage_server_id, + update_cloud_exadata_storage_server_details=update_cloud_exadata_storage_server_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_cloud_listener"], + annotations=TOOL_ANNOTATIONS["update_cloud_listener"],) +def update_cloud_listener( + cloud_listener_id: str = Field(..., description='The OCID of the cloud listener.'), + update_cloud_listener_details: dict[str, Any] | UpdateCloudListenerDetails = Field(..., description='The details required to update an cloud listener.'),) -> Any: + return invoke_dbm( + 'update_cloud_listener', + cloud_listener_id=cloud_listener_id, + update_cloud_listener_details=update_cloud_listener_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_db_management_private_endpoint"], + annotations=TOOL_ANNOTATIONS["update_db_management_private_endpoint"],) +def update_db_management_private_endpoint( + db_management_private_endpoint_id: str = Field(..., description='The OCID of the Database Management private endpoint.'), + update_db_management_private_endpoint_details: dict[str, Any] | UpdateDbManagementPrivateEndpointDetails = Field(..., description='The details used to update a Database Management private endpoint.'),) -> Any: + return invoke_dbm( + 'update_db_management_private_endpoint', + db_management_private_endpoint_id=db_management_private_endpoint_id, + update_db_management_private_endpoint_details=update_db_management_private_endpoint_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_external_asm"], + annotations=TOOL_ANNOTATIONS["update_external_asm"],) +def update_external_asm( + external_asm_id: str = Field(..., description='The OCID of the external ASM.'), + update_external_asm_details: dict[str, Any] | UpdateExternalAsmDetails = Field(..., description='The details required to update an external ASM.'),) -> Any: + return invoke_dbm( + 'update_external_asm', + external_asm_id=external_asm_id, + update_external_asm_details=update_external_asm_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_external_asm_instance"], + annotations=TOOL_ANNOTATIONS["update_external_asm_instance"],) +def update_external_asm_instance( + external_asm_instance_id: str = Field(..., description='The OCID of the external ASM instance.'), + update_external_asm_instance_details: dict[str, Any] | UpdateExternalAsmInstanceDetails = Field(..., description='The details required to update an external ASM instance.'),) -> Any: + return invoke_dbm( + 'update_external_asm_instance', + external_asm_instance_id=external_asm_instance_id, + update_external_asm_instance_details=update_external_asm_instance_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_external_cluster"], + annotations=TOOL_ANNOTATIONS["update_external_cluster"],) +def update_external_cluster( + external_cluster_id: str = Field(..., description='The OCID of the external cluster.'), + update_external_cluster_details: dict[str, Any] | UpdateExternalClusterDetails = Field(..., description='The details required to update an external cluster.'),) -> Any: + return invoke_dbm( + 'update_external_cluster', + external_cluster_id=external_cluster_id, + update_external_cluster_details=update_external_cluster_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_external_cluster_instance"], + annotations=TOOL_ANNOTATIONS["update_external_cluster_instance"],) +def update_external_cluster_instance( + external_cluster_instance_id: str = Field(..., description='The OCID of the external cluster instance.'), + update_external_cluster_instance_details: dict[str, Any] | UpdateExternalClusterInstanceDetails = Field(..., description='The details required to update an external cluster instance.'),) -> Any: + return invoke_dbm( + 'update_external_cluster_instance', + external_cluster_instance_id=external_cluster_instance_id, + update_external_cluster_instance_details=update_external_cluster_instance_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_external_db_home"], + annotations=TOOL_ANNOTATIONS["update_external_db_home"],) +def update_external_db_home( + external_db_home_id: str = Field(..., description='The OCID of the external database home.'), + update_external_db_home_details: dict[str, Any] | UpdateExternalDbHomeDetails = Field(..., description='The details required to update an external DB home.'),) -> Any: + return invoke_dbm( + 'update_external_db_home', + external_db_home_id=external_db_home_id, + update_external_db_home_details=update_external_db_home_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_external_db_node"], + annotations=TOOL_ANNOTATIONS["update_external_db_node"],) +def update_external_db_node( + external_db_node_id: str = Field(..., description='The OCID of the external database node.'), + update_external_db_node_details: dict[str, Any] | UpdateExternalDbNodeDetails = Field(..., description='The details required to update an external DB node.'),) -> Any: + return invoke_dbm( + 'update_external_db_node', + external_db_node_id=external_db_node_id, + update_external_db_node_details=update_external_db_node_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_external_db_system"], + annotations=TOOL_ANNOTATIONS["update_external_db_system"],) +def update_external_db_system( + external_db_system_id: str = Field(..., description='The OCID of the external DB system.'), + update_external_db_system_details: dict[str, Any] | UpdateExternalDbSystemDetails = Field(..., description='The details required to update an external DB system.'),) -> Any: + return invoke_dbm( + 'update_external_db_system', + external_db_system_id=external_db_system_id, + update_external_db_system_details=update_external_db_system_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_external_db_system_connector"], + annotations=TOOL_ANNOTATIONS["update_external_db_system_connector"],) +def update_external_db_system_connector( + external_db_system_connector_id: str = Field(..., description='The OCID of the external connector.'), + update_external_db_system_connector_details: dict[str, Any] | UpdateExternalDbSystemConnectorDetails = Field(..., description='The details required to update an external connector.'),) -> Any: + return invoke_dbm( + 'update_external_db_system_connector', + external_db_system_connector_id=external_db_system_connector_id, + update_external_db_system_connector_details=update_external_db_system_connector_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_external_db_system_discovery"], + annotations=TOOL_ANNOTATIONS["update_external_db_system_discovery"],) +def update_external_db_system_discovery( + external_db_system_discovery_id: str = Field(..., description='The OCID of the external DB system discovery.'), + update_external_db_system_discovery_details: dict[str, Any] | UpdateExternalDbSystemDiscoveryDetails = Field(..., description='The details required to update an external DB system discovery.'),) -> Any: + return invoke_dbm( + 'update_external_db_system_discovery', + external_db_system_discovery_id=external_db_system_discovery_id, + update_external_db_system_discovery_details=update_external_db_system_discovery_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_external_exadata_infrastructure"], + annotations=TOOL_ANNOTATIONS["update_external_exadata_infrastructure"],) +def update_external_exadata_infrastructure( + external_exadata_infrastructure_id: str = Field(..., description='The OCID of the Exadata infrastructure.'), + update_external_exadata_infrastructure_details: dict[str, Any] | UpdateExternalExadataInfrastructureDetails = Field(..., description='The details required to update the managed Exadata infrastructure resources.'),) -> Any: + return invoke_dbm( + 'update_external_exadata_infrastructure', + external_exadata_infrastructure_id=external_exadata_infrastructure_id, + update_external_exadata_infrastructure_details=update_external_exadata_infrastructure_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_external_exadata_storage_connector"], + annotations=TOOL_ANNOTATIONS["update_external_exadata_storage_connector"],) +def update_external_exadata_storage_connector( + external_exadata_storage_connector_id: str = Field(..., description='The OCID of the connector to the Exadata storage server.'), + update_external_exadata_storage_connector_details: dict[str, Any] | UpdateExternalExadataStorageConnectorDetails = Field(..., description='The details required to update connections to the Exadata storage servers.'),) -> Any: + return invoke_dbm( + 'update_external_exadata_storage_connector', + external_exadata_storage_connector_id=external_exadata_storage_connector_id, + update_external_exadata_storage_connector_details=update_external_exadata_storage_connector_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_external_exadata_storage_grid"], + annotations=TOOL_ANNOTATIONS["update_external_exadata_storage_grid"],) +def update_external_exadata_storage_grid( + external_exadata_storage_grid_id: str = Field(..., description='The OCID of the Exadata storage grid.'), + update_external_exadata_storage_grid_details: dict[str, Any] | UpdateExternalExadataStorageGridDetails = Field(..., description='The details required to update an external Exadata storage grid.'),) -> Any: + return invoke_dbm( + 'update_external_exadata_storage_grid', + external_exadata_storage_grid_id=external_exadata_storage_grid_id, + update_external_exadata_storage_grid_details=update_external_exadata_storage_grid_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_external_exadata_storage_server"], + annotations=TOOL_ANNOTATIONS["update_external_exadata_storage_server"],) +def update_external_exadata_storage_server( + external_exadata_storage_server_id: str = Field(..., description='The OCID of the Exadata storage server.'), + update_external_exadata_storage_server_details: dict[str, Any] | UpdateExternalExadataStorageServerDetails = Field(..., description='The details required to update an external Exadata storage server.'),) -> Any: + return invoke_dbm( + 'update_external_exadata_storage_server', + external_exadata_storage_server_id=external_exadata_storage_server_id, + update_external_exadata_storage_server_details=update_external_exadata_storage_server_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_external_listener"], + annotations=TOOL_ANNOTATIONS["update_external_listener"],) +def update_external_listener( + external_listener_id: str = Field(..., description='The OCID of the external listener.'), + update_external_listener_details: dict[str, Any] | UpdateExternalListenerDetails = Field(..., description='The details required to update an external listener.'),) -> Any: + return invoke_dbm( + 'update_external_listener', + external_listener_id=external_listener_id, + update_external_listener_details=update_external_listener_details,) + + + + + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_job"], + annotations=TOOL_ANNOTATIONS["update_job"],) +def update_job( + job_id: str = Field(..., description='The identifier of the job.'), + update_job_details: dict[str, Any] | UpdateJobDetails = Field(..., description='The details required to update a job.'),) -> Any: + return invoke_dbm( + 'update_job', + job_id=job_id, + update_job_details=update_job_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_managed_database"], + annotations=TOOL_ANNOTATIONS["update_managed_database"],) +def update_managed_database( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + update_managed_database_details: dict[str, Any] | UpdateManagedDatabaseDetails = Field(..., description='The details required to update a Managed Database.'),) -> Any: + return invoke_dbm( + 'update_managed_database', + managed_database_id=managed_database_id, + update_managed_database_details=update_managed_database_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_managed_database_group"], + annotations=TOOL_ANNOTATIONS["update_managed_database_group"],) +def update_managed_database_group( + managed_database_group_id: str = Field(..., description='The OCID of the Managed Database Group.'), + update_managed_database_group_details: dict[str, Any] | UpdateManagedDatabaseGroupDetails = Field(..., description='The details required to update a Managed Database Group.'),) -> Any: + return invoke_dbm( + 'update_managed_database_group', + managed_database_group_id=managed_database_group_id, + update_managed_database_group_details=update_managed_database_group_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_named_credential"], + annotations=TOOL_ANNOTATIONS["update_named_credential"],) +def update_named_credential( + named_credential_id: str = Field(..., description='The OCID of the named credential.'), + update_named_credential_details: dict[str, Any] | UpdateNamedCredentialDetails = Field(..., description='The details required to update a named credential.'),) -> Any: + return invoke_dbm( + 'update_named_credential', + named_credential_id=named_credential_id, + update_named_credential_details=update_named_credential_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_preferred_credential"], + annotations=TOOL_ANNOTATIONS["update_preferred_credential"],) +def update_preferred_credential( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + credential_name: str = Field(..., description='The name of the preferred credential.'), + update_preferred_credential_details: dict[str, Any] | UpdatePreferredCredentialDetails = Field(..., description='The details required to update preferred credential.'),) -> Any: + return invoke_dbm( + 'update_preferred_credential', + managed_database_id=managed_database_id, + credential_name=credential_name, + update_preferred_credential_details=update_preferred_credential_details,) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_tablespace"], + annotations=TOOL_ANNOTATIONS["update_tablespace"],) +def update_tablespace( + managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), + tablespace_name: str = Field(..., description='The name of the tablespace.'), + update_tablespace_details: dict[str, Any] | UpdateTablespaceDetails = Field(..., description='The details required to update a tablespace.'),) -> Any: + return invoke_dbm( + 'update_tablespace', + managed_database_id=managed_database_id, + tablespace_name=tablespace_name, + update_tablespace_details=update_tablespace_details,) + diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/__init__.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/__init__.py new file mode 100644 index 00000000..1c852257 --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/__init__.py @@ -0,0 +1,8 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. +""" + +__project__ = "oracle.oci-opsi-mcp-server" +__version__ = "1.0.0" diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/mcp.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/mcp.py new file mode 100644 index 00000000..64cd31f0 --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/mcp.py @@ -0,0 +1,21 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. +""" + +from __future__ import annotations + +from fastmcp import FastMCP + +from . import __project__ + + +mcp = FastMCP( + name=__project__, + instructions=( + "Use this server for OCI Operations Insights workflows. " + "Mutating non-delete tools are marked with MCP tool annotations and " + "should only be used when the user explicitly intends the change." + ), +) diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/metadata.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/metadata.py new file mode 100644 index 00000000..40ba370d --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/metadata.py @@ -0,0 +1,443 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. +""" + +from __future__ import annotations + +BOOTSTRAP_TOOL_NAMES = frozenset( + { + "get_compartment", + "list_compartments", + } +) +REQUEST_MODEL_TYPES = { + ('change_autonomous_database_insight_advanced_features', 'change_autonomous_database_insight_advanced_features_details'): 'ChangeAutonomousDatabaseInsightAdvancedFeaturesDetails', + ('change_awr_hub_source_compartment', 'change_awr_hub_source_compartment_details'): 'ChangeAwrHubSourceCompartmentDetails', + ('change_chargeback_plan_compartment', 'change_chargeback_plan_compartment_details'): 'ChangeChargebackPlanCompartmentDetails', + ('change_database_insight_compartment', 'change_database_insight_compartment_details'): 'ChangeDatabaseInsightCompartmentDetails', + ('change_enterprise_manager_bridge_compartment', 'change_enterprise_manager_bridge_compartment_details'): 'ChangeEnterpriseManagerBridgeCompartmentDetails', + ('change_exadata_insight_compartment', 'change_exadata_insight_compartment_details'): 'ChangeExadataInsightCompartmentDetails', + ('change_host_insight_compartment', 'change_host_insight_compartment_details'): 'ChangeHostInsightCompartmentDetails', + ('change_macs_managed_autonomous_database_insight_connection', 'change_macs_managed_autonomous_database_insight_connection_details'): 'ChangeMacsManagedAutonomousDatabaseInsightConnectionDetails', + ('change_macs_managed_cloud_database_insight_connection', 'change_macs_managed_cloud_database_insight_connection_details'): 'ChangeMacsManagedCloudDatabaseInsightConnectionDetails', + ('change_news_report_compartment', 'change_news_report_compartment_details'): 'ChangeNewsReportCompartmentDetails', + ('change_operations_insights_private_endpoint_compartment', 'change_operations_insights_private_endpoint_compartment_details'): 'ChangeOperationsInsightsPrivateEndpointCompartmentDetails', + ('change_operations_insights_warehouse_compartment', 'change_operations_insights_warehouse_compartment_details'): 'ChangeOperationsInsightsWarehouseCompartmentDetails', + ('change_opsi_configuration_compartment', 'change_opsi_configuration_compartment_details'): 'ChangeOpsiConfigurationCompartmentDetails', + ('change_pe_comanaged_database_insight', 'change_pe_comanaged_database_insight_details'): 'ChangePeComanagedDatabaseInsightDetails', + ('create_awr_hub', 'create_awr_hub_details'): 'CreateAwrHubDetails', + ('create_awr_hub_source', 'create_awr_hub_source_details'): 'CreateAwrHubSourceDetails', + ('create_chargeback_plan', 'create_chargeback_plan_details'): 'CreateChargebackPlanDetails', + ('create_chargeback_plan_report', 'create_chargeback_plan_report_details'): 'CreateChargebackPlanReportDetails', + ('create_database_insight', 'create_database_insight_details'): 'CreateDatabaseInsightDetails', + ('create_enterprise_manager_bridge', 'create_enterprise_manager_bridge_details'): 'CreateEnterpriseManagerBridgeDetails', + ('create_exadata_insight', 'create_exadata_insight_details'): 'CreateExadataInsightDetails', + ('create_host_insight', 'create_host_insight_details'): 'CreateHostInsightDetails', + ('create_news_report', 'create_news_report_details'): 'CreateNewsReportDetails', + ('create_operations_insights_private_endpoint', 'create_operations_insights_private_endpoint_details'): 'CreateOperationsInsightsPrivateEndpointDetails', + ('create_operations_insights_warehouse', 'create_operations_insights_warehouse_details'): 'CreateOperationsInsightsWarehouseDetails', + ('create_operations_insights_warehouse_user', 'create_operations_insights_warehouse_user_details'): 'CreateOperationsInsightsWarehouseUserDetails', + ('create_opsi_configuration', 'create_opsi_configuration_details'): 'CreateOpsiConfigurationDetails', + ('enable_autonomous_database_insight_advanced_features', 'enable_autonomous_database_insight_advanced_features_details'): 'EnableAutonomousDatabaseInsightAdvancedFeaturesDetails', + ('enable_database_insight', 'enable_database_insight_details'): 'EnableDatabaseInsightDetails', + ('enable_exadata_insight', 'enable_exadata_insight_details'): 'EnableExadataInsightDetails', + ('enable_host_insight', 'enable_host_insight_details'): 'EnableHostInsightDetails', + ('enable_plan_exadata_insight', 'enable_plan_exadata_insight_details'): 'EnablePlanExadataInsightDetails', + ('query_opsi_data_object_data', 'query_opsi_data_object_data_details'): 'QueryOpsiDataObjectDataDetails', + ('query_warehouse_data_object_data', 'query_warehouse_data_object_data_details'): 'QueryWarehouseDataObjectDataDetails', + ('update_awr_hub', 'update_awr_hub_details'): 'UpdateAwrHubDetails', + ('update_awr_hub_source', 'update_awr_hub_source_details'): 'UpdateAwrHubSourceDetails', + ('update_chargeback_plan', 'update_chargeback_plan_details'): 'UpdateChargebackPlanDetails', + ('update_chargeback_plan_report', 'update_chargeback_plan_report_details'): 'UpdateChargebackPlanReportDetails', + ('update_database_insight', 'update_database_insight_details'): 'UpdateDatabaseInsightDetails', + ('update_enterprise_manager_bridge', 'update_enterprise_manager_bridge_details'): 'UpdateEnterpriseManagerBridgeDetails', + ('update_exadata_insight', 'update_exadata_insight_details'): 'UpdateExadataInsightDetails', + ('update_host_insight', 'update_host_insight_details'): 'UpdateHostInsightDetails', + ('update_news_report', 'update_news_report_details'): 'UpdateNewsReportDetails', + ('update_operations_insights_private_endpoint', 'update_operations_insights_private_endpoint_details'): 'UpdateOperationsInsightsPrivateEndpointDetails', + ('update_operations_insights_warehouse', 'update_operations_insights_warehouse_details'): 'UpdateOperationsInsightsWarehouseDetails', + ('update_operations_insights_warehouse_user', 'update_operations_insights_warehouse_user_details'): 'UpdateOperationsInsightsWarehouseUserDetails', + ('update_opsi_configuration', 'update_opsi_configuration_details'): 'UpdateOpsiConfigurationDetails', +} +INCLUDED_METHOD_NAMES = ( + 'change_autonomous_database_insight_advanced_features', + 'change_awr_hub_source_compartment', + 'change_chargeback_plan_compartment', + 'change_database_insight_compartment', + 'change_enterprise_manager_bridge_compartment', + 'change_exadata_insight_compartment', + 'change_host_insight_compartment', + 'change_macs_managed_autonomous_database_insight_connection', + 'change_macs_managed_cloud_database_insight_connection', + 'change_news_report_compartment', + 'change_operations_insights_private_endpoint_compartment', + 'change_operations_insights_warehouse_compartment', + 'change_opsi_configuration_compartment', + 'change_pe_comanaged_database_insight', + 'create_awr_hub', + 'create_awr_hub_source', + 'create_chargeback_plan', + 'create_chargeback_plan_report', + 'create_database_insight', + 'create_enterprise_manager_bridge', + 'create_exadata_insight', + 'create_host_insight', + 'create_news_report', + 'create_operations_insights_private_endpoint', + 'create_operations_insights_warehouse', + 'create_operations_insights_warehouse_user', + 'create_opsi_configuration', + 'disable_autonomous_database_insight_advanced_features', + 'disable_awr_hub_source', + 'disable_database_insight', + 'disable_exadata_insight', + 'disable_host_insight', + 'disable_plan_exadata_insight', + 'enable_autonomous_database_insight_advanced_features', + 'enable_awr_hub_source', + 'enable_database_insight', + 'enable_exadata_insight', + 'enable_host_insight', + 'enable_plan_exadata_insight', + 'get_awr_database_report', + 'get_awr_database_sql_report', + 'get_awr_hub', + 'get_awr_hub_object', + 'get_awr_hub_source', + 'get_awr_report', + 'get_chargeback_plan', + 'get_chargeback_plan_report', + 'get_chargeback_plan_report_content', + 'get_database_insight', + 'get_enterprise_manager_bridge', + 'get_exadata_insight', + 'get_host_insight', + 'get_news_report', + 'get_operations_insights_private_endpoint', + 'get_operations_insights_warehouse', + 'get_operations_insights_warehouse_user', + 'get_opsi_configuration', + 'get_opsi_data_object', + 'get_work_request', + 'list_addm_db_finding_categories', + 'list_addm_db_findings_time_series', + 'list_addm_db_parameter_categories', + 'list_addm_db_recommendation_categories', + 'list_addm_db_recommendations_time_series', + 'list_addm_dbs', + 'list_awr_database_snapshots', + 'list_awr_databases', + 'list_awr_hub_objects', + 'list_awr_hub_sources', + 'list_awr_hubs', + 'list_awr_snapshots', + 'list_chargeback_plan_reports', + 'list_chargeback_plans', + 'list_database_configurations', + 'list_database_insights', + 'list_enterprise_manager_bridges', + 'list_exadata_configurations', + 'list_exadata_insights', + 'list_host_configurations', + 'list_host_insights', + 'list_hosted_entities', + 'list_importable_agent_entities', + 'list_importable_compute_entities', + 'list_importable_enterprise_manager_entities', + 'list_news_reports', + 'list_operations_insights_private_endpoints', + 'list_operations_insights_warehouse_users', + 'list_operations_insights_warehouses', + 'list_opsi_configurations', + 'list_opsi_data_objects', + 'list_sql_plans', + 'list_sql_texts', + 'list_warehouse_data_objects', + 'list_work_request_errors', + 'list_work_request_logs', + 'list_work_requests', + 'query_opsi_data_object_data', + 'query_warehouse_data_object_data', + 'summarize_addm_db_findings', + 'summarize_addm_db_parameter_changes', + 'summarize_addm_db_parameters', + 'summarize_addm_db_recommendations', + 'summarize_addm_db_schema_objects', + 'summarize_addm_db_sql_statements', + 'summarize_awr_database_cpu_usages', + 'summarize_awr_database_metrics', + 'summarize_awr_database_parameter_changes', + 'summarize_awr_database_parameters', + 'summarize_awr_database_snapshot_ranges', + 'summarize_awr_database_sysstats', + 'summarize_awr_database_top_wait_events', + 'summarize_awr_database_wait_event_buckets', + 'summarize_awr_database_wait_events', + 'summarize_awr_sources_summaries', + 'summarize_configuration_items', + 'summarize_database_insight_resource_capacity_trend', + 'summarize_database_insight_resource_forecast_trend', + 'summarize_database_insight_resource_statistics', + 'summarize_database_insight_resource_usage', + 'summarize_database_insight_resource_usage_trend', + 'summarize_database_insight_resource_utilization_insight', + 'summarize_database_insight_tablespace_usage_trend', + 'summarize_exadata_insight_resource_capacity_trend', + 'summarize_exadata_insight_resource_capacity_trend_aggregated', + 'summarize_exadata_insight_resource_forecast_trend', + 'summarize_exadata_insight_resource_forecast_trend_aggregated', + 'summarize_exadata_insight_resource_statistics', + 'summarize_exadata_insight_resource_usage', + 'summarize_exadata_insight_resource_usage_aggregated', + 'summarize_exadata_insight_resource_utilization_insight', + 'summarize_exadata_members', + 'summarize_host_insight_disk_statistics', + 'summarize_host_insight_host_recommendation', + 'summarize_host_insight_io_usage_trend', + 'summarize_host_insight_network_usage_trend', + 'summarize_host_insight_resource_capacity_trend', + 'summarize_host_insight_resource_forecast_trend', + 'summarize_host_insight_resource_statistics', + 'summarize_host_insight_resource_usage', + 'summarize_host_insight_resource_usage_trend', + 'summarize_host_insight_resource_utilization_insight', + 'summarize_host_insight_storage_usage_trend', + 'summarize_host_insight_top_processes_usage', + 'summarize_host_insight_top_processes_usage_trend', + 'summarize_operations_insights_warehouse_resource_usage', + 'update_awr_hub', + 'update_awr_hub_source', + 'update_chargeback_plan', + 'update_chargeback_plan_report', + 'update_database_insight', + 'update_enterprise_manager_bridge', + 'update_exadata_insight', + 'update_host_insight', + 'update_news_report', + 'update_operations_insights_private_endpoint', + 'update_operations_insights_warehouse', + 'update_operations_insights_warehouse_user', + 'update_opsi_configuration', +) +MUTABLE_METHOD_NAMES = ( + 'change_autonomous_database_insight_advanced_features', + 'change_awr_hub_source_compartment', + 'change_chargeback_plan_compartment', + 'change_database_insight_compartment', + 'change_enterprise_manager_bridge_compartment', + 'change_exadata_insight_compartment', + 'change_host_insight_compartment', + 'change_macs_managed_autonomous_database_insight_connection', + 'change_macs_managed_cloud_database_insight_connection', + 'change_news_report_compartment', + 'change_operations_insights_private_endpoint_compartment', + 'change_operations_insights_warehouse_compartment', + 'change_opsi_configuration_compartment', + 'change_pe_comanaged_database_insight', + 'create_awr_hub', + 'create_awr_hub_source', + 'create_chargeback_plan', + 'create_chargeback_plan_report', + 'create_database_insight', + 'create_enterprise_manager_bridge', + 'create_exadata_insight', + 'create_host_insight', + 'create_news_report', + 'create_operations_insights_private_endpoint', + 'create_operations_insights_warehouse', + 'create_operations_insights_warehouse_user', + 'create_opsi_configuration', + 'disable_autonomous_database_insight_advanced_features', + 'disable_awr_hub_source', + 'disable_database_insight', + 'disable_exadata_insight', + 'disable_host_insight', + 'disable_plan_exadata_insight', + 'enable_autonomous_database_insight_advanced_features', + 'enable_awr_hub_source', + 'enable_database_insight', + 'enable_exadata_insight', + 'enable_host_insight', + 'enable_plan_exadata_insight', + 'update_awr_hub', + 'update_awr_hub_source', + 'update_chargeback_plan', + 'update_chargeback_plan_report', + 'update_database_insight', + 'update_enterprise_manager_bridge', + 'update_exadata_insight', + 'update_host_insight', + 'update_news_report', + 'update_operations_insights_private_endpoint', + 'update_operations_insights_warehouse', + 'update_operations_insights_warehouse_user', + 'update_opsi_configuration', +) +TOOL_NAMES = frozenset(INCLUDED_METHOD_NAMES) | BOOTSTRAP_TOOL_NAMES +MUTABLE_TOOL_NAMES = frozenset(MUTABLE_METHOD_NAMES) + + +TOOL_DESCRIPTIONS = { + 'get_compartment': 'Retrieves an OCI compartment by OCID. Use this operation to validate or resolve compartment scope before listing Operations Insights resources.', + 'list_compartments': 'Lists OCI compartments under a root compartment. Use this operation to discover compartment IDs for subsequent Operations Insights queries.', + 'change_autonomous_database_insight_advanced_features': 'Updates the advanced-feature connection details for an Autonomous Database insight in Operations Insights.', + 'change_awr_hub_source_compartment': 'Moves an AWR Hub source resource to another compartment. Use this operation when the AWR Hub source must be re-scoped without changing its source database registration.', + 'change_chargeback_plan_compartment': 'Moves an Operations Insights chargeback plan resource to another compartment.', + 'change_database_insight_compartment': 'Moves a database insight resource to another compartment. This changes resource placement and does not return database performance metrics.', + 'change_enterprise_manager_bridge_compartment': 'Moves an Operations Insights Enterprise Manager bridge resource to another compartment.', + 'change_exadata_insight_compartment': 'Moves an Exadata insight resource to another compartment. This changes resource placement and does not change Exadata metric summaries.', + 'change_host_insight_compartment': 'Moves a host insight resource to another compartment. This changes resource placement and does not return host performance metrics.', + 'change_macs_managed_autonomous_database_insight_connection': 'Changes connection details for a MACS-managed Autonomous Database insight. Use this operation when the stored connection information must be refreshed or corrected.', + 'change_macs_managed_cloud_database_insight_connection': 'Changes connection details for a Cloud MACS-managed database insight. Use this operation when the stored connection information must be refreshed or corrected.', + 'change_news_report_compartment': 'Moves a news report resource to another compartment.', + 'change_operations_insights_private_endpoint_compartment': 'Moves an Operations Insights private endpoint to another compartment.', + 'change_operations_insights_warehouse_compartment': 'Moves an Operations Insights Warehouse resource to another compartment. Warehouses are normally tenant-scoped and expected in the root compartment.', + 'change_opsi_configuration_compartment': 'Moves an OPSI configuration resource to another compartment.', + 'change_pe_comanaged_database_insight': 'Changes connection details for a private-endpoint co-managed database insight.', + 'create_awr_hub': 'Creates an AWR Hub resource for a tenant in Operations Insights. The resource is expected to be created in the root compartment.', + 'create_awr_hub_source': 'Registers a source database with an AWR Hub so AWR snapshots can be imported and queried through Operations Insights.', + 'create_chargeback_plan': 'Creates an Operations Insights chargeback plan for a resource. Use this operation to define chargeback metering for supported insight resources.', + 'create_chargeback_plan_report': 'Creates a chargeback plan report for an Operations Insights resource.', + 'create_database_insight': 'Creates a database insight resource and enables the database in Operations Insights. Database metric collection and analysis start after enablement.', + 'create_enterprise_manager_bridge': 'Creates an Enterprise Manager bridge in Operations Insights. Use this operation to connect Enterprise Manager-managed entities for import and monitoring.', + 'create_exadata_insight': 'Creates an Exadata insight resource and enables the Exadata system in Operations Insights. Exadata-related metric collection and analysis start after enablement.', + 'create_host_insight': 'Creates a host insight resource and enables the host in Operations Insights. Host metric collection and analysis start after enablement.', + 'create_news_report': 'Creates a news report in Operations Insights. The report is enabled and emailed according to the selected frequency.', + 'create_operations_insights_private_endpoint': 'Creates an Operations Insights private endpoint in a customer compartment. Use this operation when private network access is required for Operations Insights resources.', + 'create_operations_insights_warehouse': 'Creates an Operations Insights Warehouse resource for a tenant. A new ADW is normally provisioned, only one warehouse is expected per tenant, and the warehouse is expected in the root compartment.', + 'create_operations_insights_warehouse_user': 'Creates an Operations Insights Warehouse user resource in the tenant root compartment.', + 'create_opsi_configuration': 'Creates an OPSI configuration resource. Use this operation to define configurable Operations Insights behavior for a compartment or target scope.', + 'disable_autonomous_database_insight_advanced_features': 'Disables advanced features for an Autonomous Database insight and removes the associated direct connection details.', + 'disable_awr_hub_source': 'Disables an AWR Hub source database in Operations Insights and stops AWR data flow for that source.', + 'disable_database_insight': 'Disables a database in Operations Insights and stops database metric collection and analysis.', + 'disable_exadata_insight': 'Disables an Exadata system in Operations Insights and stops Exadata-related metric collection and analysis.', + 'disable_host_insight': 'Disables a host in Operations Insights and stops host metric collection and analysis.', + 'disable_plan_exadata_insight': 'Disables the chargeback plan on an Exadata system and stops metering-related collection and analysis.', + 'enable_autonomous_database_insight_advanced_features': 'Enables advanced features for an Autonomous Database insight and creates the direct connection used for additional collection.', + 'enable_awr_hub_source': 'Enables an AWR Hub source database in Operations Insights and resumes AWR data flow if it was previously stopped.', + 'enable_database_insight': 'Enables a database in Operations Insights and starts database metric collection and analysis.', + 'enable_exadata_insight': 'Enables an Exadata system in Operations Insights and starts Exadata-related metric collection and analysis.', + 'enable_host_insight': 'Enables a host in Operations Insights and starts host metric collection and analysis.', + 'enable_plan_exadata_insight': 'Enables the chargeback plan on an Exadata system and starts metering-related collection and analysis.', + 'get_awr_database_report': 'Retrieves an AWR report for a specified database in an AWR Hub. Use this operation when the user needs the generated AWR report content rather than snapshot metadata.', + 'get_awr_database_sql_report': 'Retrieves a SQL health check report for one SQL statement in a specified AWR database.', + 'get_awr_hub': 'Retrieves details for a specific AWR Hub resource. This returns AWR Hub metadata, not AWR source snapshots or reports.', + 'get_awr_hub_object': 'Retrieves metadata and object content for a specific AWR Hub object.', + 'get_awr_hub_source': 'Retrieves details for a specific AWR Hub source database registration.', + 'get_awr_report': 'Retrieves an AWR report for a specified source database in an AWR Hub. The time range must not exceed seven days, and callers must use either snapshot identifiers or time bounds.', + 'get_chargeback_plan': 'Retrieves details for a specific Operations Insights chargeback plan.', + 'get_chargeback_plan_report': 'Retrieves details for a specific chargeback plan report resource.', + 'get_chargeback_plan_report_content': 'Generates chargeback report content in CSV format for a specified time interval.', + 'get_database_insight': 'Retrieves metadata and lifecycle details for a database insight. This returns the insight resource, not CPU, storage, tablespace, or utilization metrics; use database insight summary operations for those metrics.', + 'get_enterprise_manager_bridge': 'Retrieves details for an Operations Insights Enterprise Manager bridge.', + 'get_exadata_insight': 'Retrieves metadata and lifecycle details for an Exadata insight. This returns the insight resource, not capacity, usage, forecast, or utilization metrics; use Exadata summary operations for those metrics.', + 'get_host_insight': 'Retrieves metadata and lifecycle details for a host insight. This returns the insight resource, not CPU, memory, disk, network, storage, process, or recommendation metrics; use host summary operations for those metrics.', + 'get_news_report': 'Retrieves details for a specific Operations Insights news report.', + 'get_operations_insights_private_endpoint': 'Retrieves details for a specific Operations Insights private endpoint.', + 'get_operations_insights_warehouse': 'Retrieves details for an Operations Insights Warehouse. Only one warehouse is expected per tenant, and it is expected in the root compartment.', + 'get_operations_insights_warehouse_user': 'Retrieves details for a specific Operations Insights Warehouse user.', + 'get_opsi_configuration': 'Retrieves details for an OPSI configuration resource. Requested configuration item fields and custom-status filters are applied only when configuration items are requested.', + 'get_opsi_data_object': 'Retrieves metadata for an OPSI data object. Use query_opsi_data_object_data to execute a query against the data object.', + 'get_work_request': 'Retrieves status and metadata for a specific Operations Insights work request.', + 'list_addm_db_finding_categories': 'Lists ADDM finding categories for database insight analysis. Use this operation to discover category filter values for ADDM finding queries.', + 'list_addm_db_findings_time_series': 'Lists ADDM finding time series data for specified databases and a time period.', + 'list_addm_db_parameter_categories': 'Lists ADDM database parameter categories for specified databases. Use this operation to discover category filters for parameter history analysis.', + 'list_addm_db_recommendation_categories': 'Lists ADDM recommendation categories for specified databases. Use this operation to discover category filters for recommendation analysis.', + 'list_addm_db_recommendations_time_series': 'Lists ADDM recommendation time series data for specified databases and a time period.', + 'list_addm_dbs': 'Lists database information available for ADDM analysis.', + 'list_awr_database_snapshots': 'Lists AWR snapshots for a specified database in an AWR Hub.', + 'list_awr_databases': 'Lists databases and snapshot summary details available in an AWR Hub.', + 'list_awr_hub_objects': 'Lists objects stored for a specified AWR Hub source. Use get_awr_hub_object to retrieve a selected object body.', + 'list_awr_hub_sources': 'Lists source database registrations for AWR Hubs.', + 'list_awr_hubs': 'Lists AWR Hub resources by compartment or identifier. These resources are expected to be in the root compartment.', + 'list_awr_snapshots': 'Lists AWR snapshots for a specified source database in an AWR Hub. The optional time range must not exceed one day; without time bounds, the default range is the last day.', + 'list_chargeback_plan_reports': 'Lists Operations Insights chargeback plan reports for a resource.', + 'list_chargeback_plans': 'Lists Operations Insights chargeback plans.', + 'list_database_configurations': 'Lists database insight configuration records by compartment or database insight id. This returns configuration metadata, not database performance metrics.', + 'list_database_insights': 'Lists database insight resources in a compartment or by exact insight id. Use this operation to discover databases enabled in Operations Insights before calling database metric, forecast, or utilization summary operations.', + 'list_enterprise_manager_bridges': 'Lists Operations Insights Enterprise Manager bridges by compartment or identifier. Recursive compartment search can include bridges in subcompartments.', + 'list_exadata_configurations': 'Lists Exadata insight configuration records by compartment or Exadata insight id. This returns configuration metadata, not Exadata usage metrics.', + 'list_exadata_insights': 'Lists Exadata insight resources in a compartment or by exact insight id. Use this operation to discover Exadata systems enabled in Operations Insights before calling Exadata capacity, usage, forecast, or utilization summary operations.', + 'list_host_configurations': 'Lists host insight configuration records by compartment or host insight id. This returns configuration metadata, not host performance metrics.', + 'list_host_insights': 'Lists host insight resources in a compartment or by exact insight id. Use this operation to discover hosts enabled in Operations Insights before calling host CPU, memory, disk, network, storage, process, or recommendation summary operations.', + 'list_hosted_entities': 'Lists hosted entity details for host insights. Use this operation to identify databases or other entities hosted on a selected host.', + 'list_importable_agent_entities': 'Lists Management Agent entities that are available to create a new host insight. Returned agents are active and are not already associated with an existing host insight.', + 'list_importable_compute_entities': 'Lists compute instances running Oracle Cloud Agent that are available to create a new host insight.', + 'list_importable_enterprise_manager_entities': 'Lists Enterprise Manager entities that can be imported through an Operations Insights Enterprise Manager bridge and have not already been imported.', + 'list_news_reports': 'Lists scheduled Operations Insights news report resources by compartment or identifier before retrieving, updating, or inspecting delivery settings.', + 'list_operations_insights_private_endpoints': 'Lists Operations Insights private endpoints by compartment, VCN, endpoint identifier, RAC usage, or lifecycle state before retrieving or updating a selected endpoint.', + 'list_operations_insights_warehouse_users': 'Lists Operations Insights Warehouse users by compartment or identifier. These resources are expected to be in the root compartment.', + 'list_operations_insights_warehouses': 'Lists Operations Insights Warehouse resources by compartment or identifier. Only one warehouse is expected per tenant, and it is expected in the root compartment.', + 'list_opsi_configurations': 'Lists OPSI configuration resources by display name, lifecycle state, or configuration type before retrieving configuration item details.', + 'list_opsi_data_objects': 'Lists OPSI data objects available to query in a compartment. Use get_opsi_data_object for object metadata and query_opsi_data_object_data to retrieve rows.', + 'list_sql_plans': 'Lists SQL execution plan XML from the SQL Warehouse for a given SQL execution plan. The response is currently limited to a single plan and requires databaseId or database insight id.', + 'list_sql_texts': 'Retrieves full SQL text from the SQL Warehouse for a SQL identifier in a compartment and, when requested, its subcompartments.', + 'list_warehouse_data_objects': 'Lists Warehouse data objects such as views and tables based on query parameters. Use query_warehouse_data_object_data to query rows from a selected object.', + 'list_work_request_errors': 'Lists errors for a specific Operations Insights work request.', + 'list_work_request_logs': 'Lists log entries for a specific Operations Insights work request.', + 'list_work_requests': 'Lists Operations Insights work requests in a compartment or by identifier. Optional resource filters narrow the results to one target or related resource.', + 'query_opsi_data_object_data': 'Queries an OPSI data object and returns result rows. The request must provide either analysisTimeInterval or both timeIntervalStart and timeIntervalEnd.', + 'query_warehouse_data_object_data': 'Queries Warehouse data objects such as views and tables and returns result rows available to the authorized Operations Insights Warehouse user.', + 'summarize_addm_db_findings': 'Summarizes ADDM findings for specified databases over a time period.', + 'summarize_addm_db_parameter_changes': 'Summarizes AWR database parameter change history for one specified parameter. Use summarize_addm_db_parameters to identify parameters that changed during a period.', + 'summarize_addm_db_parameters': 'Summarizes database parameter history for specified databases, including whether parameter values changed during the requested time period. This does not return individual change records.', + 'summarize_addm_db_recommendations': 'Summarizes ADDM recommendations for specified databases over a time period.', + 'summarize_addm_db_schema_objects': 'Summarizes ADDM schema object details for specified databases and object identifiers.', + 'summarize_addm_db_sql_statements': 'Summarizes ADDM SQL statement details for specified databases and SQL identifiers.', + 'summarize_awr_database_cpu_usages': 'Summarizes AWR CPU resource limits and CPU usage metrics for a specified AWR database. Metric granularity depends on the requested time range.', + 'summarize_awr_database_metrics': 'Summarizes AWR metric samples for a specified database, grouped by time for each requested metric.', + 'summarize_awr_database_parameter_changes': 'Summarizes detailed AWR change history for one database parameter, including previous value, current value, and snapshot or time range.', + 'summarize_awr_database_parameters': 'Summarizes database parameter history for a specified AWR database, including whether each parameter changed, differs from the default, or was modified at the system level. Use summarize_awr_database_parameter_changes for detailed history of one parameter.', + 'summarize_awr_database_snapshot_ranges': 'Summarizes continuous AWR snapshot ranges for a specified AWR Hub.', + 'summarize_awr_database_sysstats': 'Summarizes AWR SYSSTAT sample data for a specified database, grouped by time for each statistic.', + 'summarize_awr_database_top_wait_events': 'Summarizes top AWR wait events for a specified database.', + 'summarize_awr_database_wait_event_buckets': 'Summarizes AWR wait event data into frequency buckets for a specified database.', + 'summarize_awr_database_wait_events': 'Summarizes AWR wait event sample data for a specified database, grouped by time for each event.', + 'summarize_awr_sources_summaries': 'Summarizes AWR source database information for AWR Hubs.', + 'summarize_configuration_items': 'Summarizes applicable OPSI configuration items for a configuration type and compartment. Optional field filters determine which configuration item fields are returned.', + 'summarize_database_insight_resource_capacity_trend': 'Summarizes database insight resource capacity time series, including capacity and base capacity, for the requested period. This operation supports up to two years and is not paginated.', + 'summarize_database_insight_resource_forecast_trend': 'Summarizes historical usage and forecast trends for database CPU or storage resources. Use this operation for projected capacity questions rather than current utilization only.', + 'summarize_database_insight_resource_statistics': 'Summarizes per-database resource statistics such as usage, capacity, utilization percentage, base capacity, and auto-scaling state.', + 'summarize_database_insight_resource_usage': 'Summarizes aggregate database resource usage, capacity, and usage change over a requested time period. Use resource_usage_trend for time-series points.', + 'summarize_database_insight_resource_usage_trend': 'Summarizes database resource usage and capacity as time-series data for a requested period. This operation supports up to two years and is not paginated.', + 'summarize_database_insight_resource_utilization_insight': 'Summarizes current and projected database resource utilization insights, including high and low utilization classifications.', + 'summarize_database_insight_tablespace_usage_trend': 'Summarizes database tablespace usage and capacity as time-series data, broken down by tablespace name. The request must identify the database by databaseId or database insight id.', + 'summarize_exadata_insight_resource_capacity_trend': 'Summarizes Exadata resource capacity time-series data for databases, hosts, storage servers, or disk groups in a selected Exadata system.', + 'summarize_exadata_insight_resource_capacity_trend_aggregated': 'Summarizes aggregated Exadata resource capacity time-series data for an Exadata system or fleet.', + 'summarize_exadata_insight_resource_forecast_trend': 'Summarizes historical usage and forecast trends for Exadata databases, hosts, storage servers, or disk groups.', + 'summarize_exadata_insight_resource_forecast_trend_aggregated': 'Summarizes aggregated Exadata historical usage and forecast trends across an Exadata system or fleet.', + 'summarize_exadata_insight_resource_statistics': 'Summarizes Exadata resource statistics such as usage, capacity, utilization percentage, and usage change for databases, hosts, storage servers, or disk groups.', + 'summarize_exadata_insight_resource_usage': 'Summarizes Exadata resource usage and usage change over a requested time period for databases, hosts, or storage servers.', + 'summarize_exadata_insight_resource_usage_aggregated': 'Summarizes aggregated Exadata resource usage and usage change over a requested time period.', + 'summarize_exadata_insight_resource_utilization_insight': 'Summarizes current and projected Exadata resource utilization insights for databases, hosts, or storage servers.', + 'summarize_exadata_members': 'Lists software and hardware inventory for an Exadata system, including Exadata members known to Operations Insights.', + 'summarize_host_insight_disk_statistics': 'Summarizes disk usage, size, and unallocated capacity for a host insight over the requested time interval. Use this operation for per-disk storage capacity questions.', + 'summarize_host_insight_host_recommendation': 'Summarizes host recommendations, when available, for a host insight.', + 'summarize_host_insight_io_usage_trend': 'Summarizes host I/O usage as time-series data broken down by I/O interface.', + 'summarize_host_insight_network_usage_trend': 'Summarizes host network usage as time-series data broken down by network interface.', + 'summarize_host_insight_resource_capacity_trend': 'Summarizes host resource capacity time-series data for a requested period. This operation supports up to two years and is not paginated.', + 'summarize_host_insight_resource_forecast_trend': 'Summarizes historical usage and forecast trends for host CPU or memory resources. Use this operation for projected capacity questions rather than current utilization only.', + 'summarize_host_insight_resource_statistics': 'Summarizes per-host resource statistics such as usage, capacity, utilization percentage, usage change, and load.', + 'summarize_host_insight_resource_usage': 'Summarizes aggregate host resource usage, capacity, and usage change over a requested time period. Use resource_usage_trend for time-series points.', + 'summarize_host_insight_resource_usage_trend': 'Summarizes host resource usage and capacity as time-series data for a requested period. This operation supports up to two years and is not paginated.', + 'summarize_host_insight_resource_utilization_insight': 'Summarizes current and projected host resource utilization insights, including high and low utilization classifications.', + 'summarize_host_insight_storage_usage_trend': 'Summarizes host storage usage as time-series data broken down by filesystem.', + 'summarize_host_insight_top_processes_usage': 'Summarizes top process resource usage on a host for a specific timestamp. Processes are sorted by the requested CPU, memory, or virtual memory metric.', + 'summarize_host_insight_top_processes_usage_trend': 'Summarizes top process resource usage on a host as time-series data. Processes are sorted by the requested CPU, memory, or virtual memory metric.', + 'summarize_operations_insights_warehouse_resource_usage': 'Summarizes resources used by an Operations Insights Warehouse. Only one warehouse is expected per tenant, and it is expected in the root compartment.', + 'update_awr_hub': 'Updates mutable configuration for an AWR Hub resource, such as display metadata or hub connection settings.', + 'update_awr_hub_source': 'Updates mutable configuration for an AWR Hub source database registration, such as display metadata or source registration settings.', + 'update_chargeback_plan': 'Updates one or more attributes of a chargeback plan.', + 'update_chargeback_plan_report': 'Updates one or more attributes of a chargeback plan report.', + 'update_database_insight': 'Updates mutable configuration for a database insight, such as display metadata, tags, or source-specific configuration. This operation changes configuration only and does not retrieve performance metrics.', + 'update_enterprise_manager_bridge': 'Updates mutable configuration for an Operations Insights Enterprise Manager bridge, such as display metadata or bridge connection settings.', + 'update_exadata_insight': 'Updates mutable configuration for an Exadata insight, such as display metadata, tags, or source-specific configuration. This operation changes configuration only and does not retrieve Exadata metrics.', + 'update_host_insight': 'Updates mutable configuration for a host insight, such as display metadata, tags, or source-specific configuration. This operation changes configuration only and does not retrieve host performance metrics.', + 'update_news_report': 'Updates mutable configuration for a news report, such as report content selection, locale, schedule, or notification target.', + 'update_operations_insights_private_endpoint': 'Updates one or more attributes of an Operations Insights private endpoint.', + 'update_operations_insights_warehouse': 'Updates mutable configuration for an Operations Insights Warehouse, such as display metadata or warehouse connection settings. Only one warehouse is expected per tenant, and it is expected in the root compartment.', + 'update_operations_insights_warehouse_user': 'Updates mutable configuration for an Operations Insights Warehouse user, such as user metadata or access-related configuration.', + 'update_opsi_configuration': 'Updates an OPSI configuration resource.', +} diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/models.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/models.py new file mode 100644 index 00000000..992c20cb --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/models.py @@ -0,0 +1,6202 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at + +""" + +from __future__ import annotations + +from datetime import date, datetime +from typing import Any, Literal + +from pydantic import BaseModel, ConfigDict, Field + +from oracle.oci_oracle_db_observability.v1.conversion import to_plain_data + + +class OpsiBaseModel(BaseModel): + """Base model for OCI OPSI MCP schemas.""" + + model_config = ConfigDict( + alias_generator=None, + arbitrary_types_allowed=True, + extra="allow", + populate_by_name=True,) + + @classmethod + def from_oci(cls, value: Any): + return cls.model_validate(to_plain_data(value)) + + +class OpsiRequestModel(OpsiBaseModel): + """Base model for OCI OPSI request schemas.""" + + model_config = ConfigDict( + alias_generator=None, + arbitrary_types_allowed=True, + extra="forbid", + populate_by_name=True,) + + +CompartmentAccessLevel = Literal["ANY", "ACCESSIBLE"] +CompartmentLifecycleState = Literal["CREATING", "ACTIVE", "INACTIVE", "DELETING", "DELETED", "UNKNOWN_ENUM_VALUE"] + + +class Compartment(OpsiBaseModel): + """OCI Identity compartment metadata.""" + + id: str = Field(..., description="The OCID of the compartment.") + compartment_id: str | None = Field( + None, + alias="compartmentId", + description="The OCID of the parent compartment.",) + name: str | None = Field(None, description="The compartment name.") + description: str | None = Field(None, description="The compartment description.") + lifecycle_state: CompartmentLifecycleState | None = Field( + None, + alias="lifecycleState", + description="The current lifecycle state of the compartment.",) + time_created: datetime | None = Field( + None, + alias="timeCreated", + description="The date and time the compartment was created.",) + inactive_status: int | None = Field( + None, + alias="inactiveStatus", + ge=0, + description="The status of the compartment if it is inactive.",) + freeform_tags: dict[str, str] | None = Field( + None, + alias="freeformTags", + description="Free-form tags returned for the compartment.",) + defined_tags: dict[str, dict[str, Any]] | None = Field( + None, + alias="definedTags", + description="Defined tags returned for the compartment.",) + system_tags: dict[str, dict[str, Any]] | None = Field( + None, + alias="systemTags", + description="System tags returned for the compartment.",) + + +class CompartmentCollection(OpsiBaseModel): + """Collection of OCI Identity compartments.""" + + items: list[Compartment] = Field(..., description="Compartments returned by the list request.") + count: int = Field(..., ge=0, description="Number of compartments returned.") + + +class AddEmManagedExternalExadataInsightMembersDetails(OpsiBaseModel): + """The information about the members of Exadata system to be added. If memberEntityDetails is not specified, the the Enterprise Manager entity (e.g. databases and hosts) associated with an Exadata system will be placed in the same compartment as the Exadata system.""" + + entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA'] = Field(..., alias='entitySource', description='Gets the entity_source of this AddExadataInsightMembersDetails.\nSource of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA"') + member_entity_details: list[CreateEmManagedExternalExadataMemberEntityDetails] | None = Field(None, alias='memberEntityDetails', description='The member_entity_details field of AddEmManagedExternalExadataInsightMembersDetails.') + + +class AddExadataInsightMembersDetails(OpsiRequestModel): + """The information about the members of Exadata system to be added.""" + + entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA'] = Field(..., alias='entitySource', description='Source of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA"') + + +class AddMacsManagedCloudExadataInsightMembersDetails(OpsiBaseModel): + """The information about the members of Exadata system to be added.""" + + entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA'] = Field(..., alias='entitySource', description='Gets the entity_source of this AddExadataInsightMembersDetails.\nSource of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA"') + member_entity_details: list[CreateMacsManagedCloudExadataVmclusterDetails] | None = Field(None, alias='memberEntityDetails', description='The member_entity_details field of AddMacsManagedCloudExadataInsightMembersDetails.') + + +class AddPeComanagedExadataInsightMembersDetails(OpsiBaseModel): + """The information about the members of Exadata system to be added.""" + + entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA'] = Field(..., alias='entitySource', description='Gets the entity_source of this AddExadataInsightMembersDetails.\nSource of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA"') + member_entity_details: list[CreatePeComanagedExadataVmclusterDetails] | None = Field(None, alias='memberEntityDetails', description='The member_entity_details field of AddPeComanagedExadataInsightMembersDetails.') + + +class AddmDbCollection(OpsiBaseModel): + """The result of ADDM databases.""" + + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + items: list[AddmDbSummary] = Field(..., alias='items', description='List of ADDM database summary data') + + +class AddmDbFindingAggregation(OpsiBaseModel): + """Summarizes a specific ADDM finding.""" + + id: str = Field(..., alias='id', description='The OCID of the Database insight.') + finding_id: str = Field(..., alias='findingId', description='Unique finding id') + category_name: str = Field(..., alias='categoryName', description='Category name') + category_display_name: str = Field(..., alias='categoryDisplayName', description='Category display name') + name: str = Field(..., alias='name', description='Finding name') + message: str = Field(..., alias='message', description='Finding message') + impact_overall_percent: float = Field(..., alias='impactOverallPercent', description='Overall impact in terms of percentage of total activity') + impact_max_percent: float = Field(..., alias='impactMaxPercent', description='Maximum impact in terms of percentage of total activity') + impact_avg_active_sessions: float | None = Field(None, alias='impactAvgActiveSessions', description='Impact in terms of average active sessions') + frequency_count: int = Field(..., alias='frequencyCount', description='Number of occurrences for this finding', ge=0) + recommendation_count: int = Field(..., alias='recommendationCount', description='Number of recommendations for this finding', ge=0) + + +class AddmDbFindingAggregationCollection(OpsiBaseModel): + """Summarizes ADDM findings over specified time period.""" + + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + database_details_items: list[DatabaseDetails] = Field(..., alias='databaseDetailsItems', description='List of database details data') + items: list[AddmDbFindingAggregation] = Field(..., alias='items', description='List of ADDM finding summaries') + + +class AddmDbFindingCategoryCollection(OpsiBaseModel): + """List of finding categories.""" + + database_details_items: list[DatabaseDetails] = Field(..., alias='databaseDetailsItems', description='List of database details data') + items: list[AddmDbFindingCategorySummary] = Field(..., alias='items', description='List of finding categories') + + +class AddmDbFindingCategorySummary(OpsiBaseModel): + """Finding category summary.""" + + id: str = Field(..., alias='id', description='The OCID of the Database insight.') + name: str = Field(..., alias='name', description='Name of finding category') + display_name: str = Field(..., alias='displayName', description='Display name of finding category') + + +class AddmDbFindingsTimeSeriesCollection(OpsiBaseModel): + """ADDM findings time series response.""" + + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + database_details_items: list[DatabaseDetails] = Field(..., alias='databaseDetailsItems', description='List of database details data') + items: list[AddmDbFindingsTimeSeriesSummary] = Field(..., alias='items', description='List of ADDM finding time series data') + + +class AddmDbFindingsTimeSeriesSummary(OpsiBaseModel): + """ADDM findings time series data.""" + + id: str = Field(..., alias='id', description='The OCID of the Database insight.') + task_id: int = Field(..., alias='taskId', description='Unique ADDM task id') + task_name: str = Field(..., alias='taskName', description='ADDM task name') + finding_id: str = Field(..., alias='findingId', description='Unique finding id') + timestamp: datetime = Field(..., alias='timestamp', description='Timestamp when finding was generated') + time_analysis_started: datetime | None = Field(None, alias='timeAnalysisStarted', description='Start Timestamp of snapshot') + time_analysis_ended: datetime | None = Field(None, alias='timeAnalysisEnded', description='End Timestamp of snapshot') + category_name: str = Field(..., alias='categoryName', description='Category name') + category_display_name: str = Field(..., alias='categoryDisplayName', description='Category display name') + name: str = Field(..., alias='name', description='Finding name') + message: str = Field(..., alias='message', description='Finding message') + analysis_db_time_in_secs: float | None = Field(None, alias='analysisDbTimeInSecs', description='DB time in seconds for the snapshot') + analysis_avg_active_sessions: float | None = Field(None, alias='analysisAvgActiveSessions', description='DB avg active sessions for the snapshot') + impact_db_time_in_secs: float | None = Field(None, alias='impactDbTimeInSecs', description='Impact in seconds') + impact_percent: float = Field(..., alias='impactPercent', description='Impact in terms of percentage of total activity') + impact_avg_active_sessions: float = Field(..., alias='impactAvgActiveSessions', description='Impact in terms of average active sessions') + + +class AddmDbParameterAggregation(OpsiBaseModel): + """Summarizes change history for specific database parameter.""" + + id: str = Field(..., alias='id', description='The OCID of the Database insight.') + name: str = Field(..., alias='name', description='Name of parameter') + inst_num: int | None = Field(None, alias='instNum', description='Number of database instance') + default_value: str | None = Field(None, alias='defaultValue', description='Parameter default value') + begin_value: str | None = Field(None, alias='beginValue', description='Parameter value when time period began') + end_value: str | None = Field(None, alias='endValue', description='Parameter value when time period ended') + is_changed: bool = Field(..., alias='isChanged', description="Indicates whether the parameter's value changed during the selected time range (TRUE) or\ndid not change during the selected time range (FALSE)") + is_default: bool | None = Field(None, alias='isDefault', description="Indicates whether the parameter's end value was set to the default value (TRUE) or was\nspecified in the parameter file (FALSE)") + value_modified: str | None = Field(None, alias='valueModified', description='Indicates whether the parameter has been modified after instance starup\nMODIFIED - Parameter has been modified with ALTER SESSION\nSYSTEM_MOD - Parameter has been modified with ALTER SYSTEM\nFALSE - Parameter has not been modified after instance starup') + is_high_impact: bool | None = Field(None, alias='isHighImpact', description='Indicates whether the parameter is a high impact parameter (TRUE) or not (FALSE)') + + +class AddmDbParameterAggregationCollection(OpsiBaseModel): + """Summarizes AWR parameter change history over specified time period.""" + + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + database_details_items: list[DatabaseDetails] = Field(..., alias='databaseDetailsItems', description='List of database details data') + items: list[AddmDbParameterAggregation] = Field(..., alias='items', description='List of AWR parameter change summaries') + + +class AddmDbParameterCategoryCollection(OpsiBaseModel): + """List of database parameter categories.""" + + database_details_items: list[DatabaseDetails] = Field(..., alias='databaseDetailsItems', description='List of database details data') + items: list[AddmDbParameterCategorySummary] = Field(..., alias='items', description='List of database parameter categories') + + +class AddmDbParameterCategorySummary(OpsiBaseModel): + """Database parameter category summary.""" + + id: str = Field(..., alias='id', description='The OCID of the Database insight.') + name: str = Field(..., alias='name', description='Name of database parameter category') + display_name: str = Field(..., alias='displayName', description='Display name of database parameter category') + + +class AddmDbParameterChangeAggregation(OpsiBaseModel): + """Change record for AWR database parameter.""" + + id: str = Field(..., alias='id', description='The OCID of the Database insight.') + time_begin: datetime = Field(..., alias='timeBegin', description='Begin time of interval which includes change') + time_end: datetime = Field(..., alias='timeEnd', description='End time of interval which includes change') + inst_num: int = Field(..., alias='instNum', description='Instance number') + previous_value: str | None = Field(None, alias='previousValue', description='Previous value') + value: str | None = Field(None, alias='value', description='Current value') + snapshot_id: int = Field(..., alias='snapshotId', description='AWR snapshot id which includes the parameter value change') + + +class AddmDbParameterChangeAggregationCollection(OpsiBaseModel): + """Summarizes AWR parameter change history over specified time period for specified parameter.""" + + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + database_details_items: list[DatabaseDetails] = Field(..., alias='databaseDetailsItems', description='List of database details data') + items: list[AddmDbParameterChangeAggregation] = Field(..., alias='items', description='List of AWR parameter changes') + + +class AddmDbRecommendationAggregation(OpsiBaseModel): + """Summarizes a specific ADDM recommendation.""" + + id: str = Field(..., alias='id', description='The OCID of the Database insight.') + type: str | None = Field(None, alias='type', description='Type of recommendation') + message: str = Field(..., alias='message', description='Recommendation message') + requires_db_restart: str | None = Field(None, alias='requiresDbRestart', description='Indicates implementation of the recommended action requires a database restart in order for it\nto take effect. Possible values "Y", "N" and null.') + implement_actions: list[str] | None = Field(None, alias='implementActions', description="Actions that can be performed to implement the recommendation (such as 'ALTER PARAMETER',\n'RUN SQL TUNING ADVISOR')") + rationale: str | None = Field(None, alias='rationale', description='Recommendation message') + max_benefit_percent: float | None = Field(None, alias='maxBenefitPercent', description='Maximum estimated benefit in terms of percentage of total activity') + overall_benefit_percent: float | None = Field(None, alias='overallBenefitPercent', description='Overall estimated benefit in terms of percentage of total activity') + max_benefit_avg_active_sessions: float | None = Field(None, alias='maxBenefitAvgActiveSessions', description='Maximum estimated benefit in terms of average active sessions') + frequency_count: int | None = Field(None, alias='frequencyCount', description='Number of occurrences for this recommendation', ge=0) + related_object: RelatedObjectTypeDetails | None = Field(None, alias='relatedObject', description='The related_object field of AddmDbRecommendationAggregation.') + + +class AddmDbRecommendationAggregationCollection(OpsiBaseModel): + """Summarizes ADDM recommendations over specified time period.""" + + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + database_details_items: list[DatabaseDetails] = Field(..., alias='databaseDetailsItems', description='List of database details data') + items: list[AddmDbRecommendationAggregation] = Field(..., alias='items', description='List of ADDM recommendation summaries') + + +class AddmDbRecommendationCategoryCollection(OpsiBaseModel): + """List of recommendation categories.""" + + database_details_items: list[DatabaseDetails] = Field(..., alias='databaseDetailsItems', description='List of database details data') + items: list[AddmDbRecommendationCategorySummary] = Field(..., alias='items', description='List of recommendation categories') + + +class AddmDbRecommendationCategorySummary(OpsiBaseModel): + """Recommendation category summary.""" + + id: str = Field(..., alias='id', description='The OCID of the Database insight.') + name: str = Field(..., alias='name', description='Name of recommendation category') + display_name: str = Field(..., alias='displayName', description='Display name of recommendation category') + + +class AddmDbRecommendationsTimeSeriesCollection(OpsiBaseModel): + """ADDM recommendations time series.""" + + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + database_details_items: list[DatabaseDetails] = Field(..., alias='databaseDetailsItems', description='List of database details data') + items: list[AddmDbRecommendationsTimeSeriesSummary] = Field(..., alias='items', description='List of ADDM recommendations time series data') + + +class AddmDbRecommendationsTimeSeriesSummary(OpsiBaseModel): + """ADDM recommendation.""" + + id: str = Field(..., alias='id', description='The OCID of the Database insight.') + task_id: int = Field(..., alias='taskId', description='Unique ADDM task id') + task_name: str = Field(..., alias='taskName', description='ADDM task name') + timestamp: datetime = Field(..., alias='timestamp', description='Timestamp when recommendation was generated') + time_analysis_started: datetime | None = Field(None, alias='timeAnalysisStarted', description='Start Timestamp of snapshot') + time_analysis_ended: datetime | None = Field(None, alias='timeAnalysisEnded', description='End Timestamp of snapshot') + type: str | None = Field(None, alias='type', description='Type of recommendation') + analysis_db_time_in_secs: float | None = Field(None, alias='analysisDbTimeInSecs', description='DB time in seconds for the snapshot') + analysis_avg_active_sessions: float | None = Field(None, alias='analysisAvgActiveSessions', description='DB avg active sessions for the snapshot') + max_benefit_percent: float | None = Field(None, alias='maxBenefitPercent', description='Maximum estimated benefit in terms of percentage of total activity') + max_benefit_db_time_in_secs: float | None = Field(None, alias='maxBenefitDbTimeInSecs', description='Maximum estimated benefit in terms of seconds') + max_benefit_avg_active_sessions: float | None = Field(None, alias='maxBenefitAvgActiveSessions', description='Maximum estimated benefit in terms of average active sessions') + related_object: RelatedObjectTypeDetails | None = Field(None, alias='relatedObject', description='The related_object field of AddmDbRecommendationsTimeSeriesSummary.') + + +class AddmDbSchemaObjectCollection(OpsiBaseModel): + """Summarizes Schema Objects over specified time period.""" + + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + database_details_items: list[DatabaseDetails] = Field(..., alias='databaseDetailsItems', description='List of database details data') + items: list[AddmDbSchemaObjectSummary] = Field(..., alias='items', description='List of Schema Objects') + + +class AddmDbSchemaObjectSummary(OpsiBaseModel): + """Details for a given object id.""" + + id: str = Field(..., alias='id', description='The OCID of the Database insight.') + object_identifier: int = Field(..., alias='objectIdentifier', description='Object id (from RDBMS)') + owner: str = Field(..., alias='owner', description='Owner of object') + object_name: str = Field(..., alias='objectName', description='Name of object') + sub_object_name: str | None = Field(None, alias='subObjectName', description='Subobject name; for example, partition name') + object_type: str = Field(..., alias='objectType', description='Type of the object (such as TABLE, INDEX)') + + +class AddmDbSqlStatementCollection(OpsiBaseModel): + """Summarizes SQL statements over specified time period.""" + + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + database_details_items: list[DatabaseDetails] = Field(..., alias='databaseDetailsItems', description='List of database details data') + items: list[AddmDbSqlStatementSummary] = Field(..., alias='items', description='List of SQL statements') + + +class AddmDbSqlStatementSummary(OpsiBaseModel): + """Details for a given SQL ID.""" + + id: str = Field(..., alias='id', description='The OCID of the Database insight.') + sql_identifier: str = Field(..., alias='sqlIdentifier', description='SQL identifier') + sql_text: str = Field(..., alias='sqlText', description='First 3800 characters of the SQL text') + is_sql_text_truncated: bool = Field(..., alias='isSqlTextTruncated', description='SQL identifier') + sql_command: str = Field(..., alias='sqlCommand', description='SQL command name (such as SELECT, INSERT)') + + +class AddmDbSummary(OpsiBaseModel): + """ADDM summary for a database.""" + + database_details: DatabaseDetails = Field(..., alias='databaseDetails', description='The database_details field of AddmDbSummary.') + number_of_findings: int | None = Field(None, alias='numberOfFindings', description='Number of ADDM findings') + number_of_addm_tasks: int | None = Field(None, alias='numberOfAddmTasks', description='Number of ADDM tasks') + time_first_snapshot_begin: datetime | None = Field(None, alias='timeFirstSnapshotBegin', description='The start timestamp that was passed into the request.') + time_latest_snapshot_end: datetime | None = Field(None, alias='timeLatestSnapshotEnd', description='The end timestamp that was passed into the request.') + snapshot_interval_start: str | None = Field(None, alias='snapshotIntervalStart', description='AWR snapshot id.') + snapshot_interval_end: str | None = Field(None, alias='snapshotIntervalEnd', description='AWR snapshot id.') + max_overall_impact: float | None = Field(None, alias='maxOverallImpact', description='Maximum overall impact in terms of percentage of total activity') + most_frequent_category_name: str | None = Field(None, alias='mostFrequentCategoryName', description='Category name') + most_frequent_category_display_name: str | None = Field(None, alias='mostFrequentCategoryDisplayName', description='Category display name') + + +class AddmReport(OpsiBaseModel): + """ADDM Tasks.""" + + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + task_identifier: str = Field(..., alias='taskIdentifier', description='TASK_ID in the oracle database view DBA_ADDM_TASKS') + database_identifier: str = Field(..., alias='databaseIdentifier', description='Internal id of the database.') + snapshot_interval_start: str = Field(..., alias='snapshotIntervalStart', description='AWR snapshot id.') + snapshot_interval_end: str = Field(..., alias='snapshotIntervalEnd', description='AWR snapshot id.') + addm_report: str = Field(..., alias='addmReport', description='The complete ADDM report') + + +class AutonomousDatabaseConfigurationSummary(OpsiBaseModel): + """Configuration Summary of autonomous database.""" + + database_insight_id: str = Field(..., alias='databaseInsightId', description='Gets the database_insight_id of this DatabaseConfigurationSummary. The OCID of the database insight resource.') + entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseConfigurationSummary.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this DatabaseConfigurationSummary. The OCID of the compartment.') + database_name: str = Field(..., alias='databaseName', description='Gets the database_name of this DatabaseConfigurationSummary.\nThe database name. The database name is unique within the tenancy.') + database_display_name: str = Field(..., alias='databaseDisplayName', description='Gets the database_display_name of this DatabaseConfigurationSummary.\nThe user-friendly name for the database. The name does not have to be unique.') + database_type: str = Field(..., alias='databaseType', description='Gets the database_type of this DatabaseConfigurationSummary.\nOps Insights internal representation of the database type.') + database_version: str = Field(..., alias='databaseVersion', description='Gets the database_version of this DatabaseConfigurationSummary.\nThe version of the database.') + is_advanced_features_enabled: bool = Field(..., alias='isAdvancedFeaturesEnabled', description='Gets the is_advanced_features_enabled of this DatabaseConfigurationSummary.\nFlag is to identify if advanced features for autonomous database is enabled or not') + cdb_name: str = Field(..., alias='cdbName', description='Gets the cdb_name of this DatabaseConfigurationSummary.\nName of the CDB.Only applies to PDB.') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this DatabaseConfigurationSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this DatabaseConfigurationSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseConfigurationSummary.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) + database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') + + +class AutonomousDatabaseInsight(OpsiBaseModel): + """Database insight resource.""" + + entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseInsight.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + id: str = Field(..., alias='id', description='Gets the id of this DatabaseInsight.\nDatabase insight identifier') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this DatabaseInsight.\nCompartment identifier of the database') + status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Gets the status of this DatabaseInsight.\nIndicates the status of a database insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_type: str | None = Field(None, alias='databaseType', description='Gets the database_type of this DatabaseInsight.\nOps Insights internal representation of the database type.') + database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this DatabaseInsight.\nThe version of the database.') + processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseInsight.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this DatabaseInsight.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this DatabaseInsight.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this DatabaseInsight.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + time_created: datetime = Field(..., alias='timeCreated', description='Gets the time_created of this DatabaseInsight.\nThe time the the database insight was first enabled. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DatabaseInsight.\nThe time the database insight was updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Gets the lifecycle_state of this DatabaseInsight.\nThe current state of the database.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DatabaseInsight.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + database_connection_status_details: str | None = Field(None, alias='databaseConnectionStatusDetails', description='Gets the database_connection_status_details of this DatabaseInsight.\nA message describing the status of the database connection of this resource. For example, it can be used to provide actionable information about the permission and content validity of the database connection.') + database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') + database_name: str = Field(..., alias='databaseName', description='Name of database') + database_display_name: str | None = Field(None, alias='databaseDisplayName', description='Display name of database') + database_resource_type: str = Field(..., alias='databaseResourceType', description='OCI database resource type') + db_additional_details: Any | None = Field(None, alias='dbAdditionalDetails', description='Additional details of a database in JSON format. For autonomous databases, this is the AutonomousDatabase object serialized as a JSON string as defined in For EM, pass in null or an empty string. Note that this string needs to be escaped when specified in the curl command.') + opsi_private_endpoint_id: str | None = Field(None, alias='opsiPrivateEndpointId', description='The OCID of the OPSI private endpoint.') + is_advanced_features_enabled: bool | None = Field(None, alias='isAdvancedFeaturesEnabled', description='Flag is to identify if advanced features for autonomous database is enabled or not') + connection_details: ConnectionDetails | None = Field(None, alias='connectionDetails', description='The connection_details field of AutonomousDatabaseInsight.') + credential_details: CredentialDetails | None = Field(None, alias='credentialDetails', description='The credential_details field of AutonomousDatabaseInsight.') + + +class AutonomousDatabaseInsightSummary(OpsiBaseModel): + """Summary of a database insight resource.""" + + id: str = Field(..., alias='id', description='Gets the id of this DatabaseInsightSummary. The OCID of the database insight resource.') + database_id: str = Field(..., alias='databaseId', description='Gets the database_id of this DatabaseInsightSummary. The OCID of the database.') + compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this DatabaseInsightSummary. The OCID of the compartment.') + database_name: str | None = Field(None, alias='databaseName', description='Gets the database_name of this DatabaseInsightSummary.\nThe database name. The database name is unique within the tenancy.') + database_display_name: str | None = Field(None, alias='databaseDisplayName', description='Gets the database_display_name of this DatabaseInsightSummary.\nThe user-friendly name for the database. The name does not have to be unique.') + database_type: str | None = Field(None, alias='databaseType', description='Gets the database_type of this DatabaseInsightSummary.\nOps Insights internal representation of the database type.') + database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this DatabaseInsightSummary.\nThe version of the database.') + database_host_names: list[str] | None = Field(None, alias='databaseHostNames', description='Gets the database_host_names of this DatabaseInsightSummary.\nThe hostnames for the database.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this DatabaseInsightSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this DatabaseInsightSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this DatabaseInsightSummary.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseInsightSummary.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseInsightSummary.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) + status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='status', description='Gets the status of this DatabaseInsightSummary.\nIndicates the status of a database insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DatabaseInsightSummary.\nThe time the the database insight was first enabled. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DatabaseInsightSummary.\nThe time the database insight was updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DatabaseInsightSummary.\nThe current state of the database.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DatabaseInsightSummary.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + database_connection_status_details: str | None = Field(None, alias='databaseConnectionStatusDetails', description='Gets the database_connection_status_details of this DatabaseInsightSummary.\nA message describing the status of the database connection of this resource. For example, it can be used to provide actionable information about the permission and content validity of the database connection.') + database_resource_type: str | None = Field(None, alias='databaseResourceType', description='OCI database resource type') + is_advanced_features_enabled: bool | None = Field(None, alias='isAdvancedFeaturesEnabled', description='Flag is to identify if advanced features for autonomous database is enabled or not') + + +class AwrDatabaseCollection(OpsiBaseModel): + """The result of AWR query.""" + + name: str = Field(..., alias='name', description='Gets the name of this AwrQueryResult.\nThe name of the query result.') + version: str | None = Field(None, alias='version', description='Gets the version of this AwrQueryResult.\nThe version of the query result.') + db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') + awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + items: list[AwrDatabaseSummary] | None = Field(None, alias='items', description='A list of AWR summary data.') + + +class AwrDatabaseCpuUsageCollection(OpsiBaseModel): + """The AWR CPU usage data.""" + + name: str = Field(..., alias='name', description='Gets the name of this AwrQueryResult.\nThe name of the query result.') + version: str | None = Field(None, alias='version', description='Gets the version of this AwrQueryResult.\nThe version of the query result.') + db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') + awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + num_cpu_cores: int | None = Field(None, alias='numCpuCores', description='The number of available CPU cores, which include subcores of multicore and single-core CPUs.') + database_cpu_count: int | None = Field(None, alias='databaseCpuCount', description='The number of CPUs available for the database to use.', ge=0) + host_cpu_count: float | None = Field(None, alias='hostCpuCount', description='The number of available CPUs or processors.', ge=0) + items: list[AwrDatabaseCpuUsageSummary] | None = Field(None, alias='items', description='A list of AWR CPU usage summary data.') + + +class AwrDatabaseCpuUsageSummary(OpsiBaseModel): + """A summary of the AWR CPU resource limits and metrics.""" + + timestamp: datetime | None = Field(None, alias='timestamp', description='The timestamp for the CPU summary data.') + avg_usage_in_secs: float | None = Field(None, alias='avgUsageInSecs', description='The average CPU usage per second.') + + +class AwrDatabaseMetricCollection(OpsiBaseModel): + """The AWR metrics time series summary data.""" + + name: str = Field(..., alias='name', description='Gets the name of this AwrQueryResult.\nThe name of the query result.') + version: str | None = Field(None, alias='version', description='Gets the version of this AwrQueryResult.\nThe version of the query result.') + db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') + awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + items: list[AwrDatabaseMetricSummary] | None = Field(None, alias='items', description='A list of AWR metric summary data.') + + +class AwrDatabaseMetricSummary(OpsiBaseModel): + """The summary of the AWR metric data for a particular metric at a specific time.""" + + name: str = Field(..., alias='name', description='The name of the metric.') + timestamp: datetime | None = Field(None, alias='timestamp', description='The time of the sampling.') + avg_value: float | None = Field(None, alias='avgValue', description='The average value of the sampling period.') + min_value: float | None = Field(None, alias='minValue', description='The minimum value of the sampling period.') + max_value: float | None = Field(None, alias='maxValue', description='The maximum value of the sampling period.') + + +class AwrDatabaseParameterChangeCollection(OpsiBaseModel): + """The AWR database parameter change history.""" + + name: str = Field(..., alias='name', description='Gets the name of this AwrQueryResult.\nThe name of the query result.') + version: str | None = Field(None, alias='version', description='Gets the version of this AwrQueryResult.\nThe version of the query result.') + db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') + awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + items: list[AwrDatabaseParameterChangeSummary] | None = Field(None, alias='items', description='A list of AWR database parameter change summary data.') + + +class AwrDatabaseParameterChangeSummary(OpsiBaseModel): + """A summary of the changes made to a single AWR database parameter.""" + + time_begin: datetime | None = Field(None, alias='timeBegin', description='The start time of the interval.') + time_end: datetime | None = Field(None, alias='timeEnd', description='The end time of the interval.') + instance_number: int | None = Field(None, alias='instanceNumber', description='The database instance number.') + previous_value: str | None = Field(None, alias='previousValue', description='The previous value of the database parameter.') + value: str | None = Field(None, alias='value', description='The current value of the database parameter.') + snapshot_identifier: int = Field(..., alias='snapshotIdentifier', description='AWR snapshot identifier for the snapshot where the parameter value changed. This value is not an OCID.') + value_modified: str | None = Field(None, alias='valueModified', description='Indicates whether the parameter has been modified after instance startup:\n- MODIFIED - Parameter has been modified with ALTER SESSION\n- SYSTEM_MOD - Parameter has been modified with ALTER SYSTEM (which causes all the currently logged in sessions values to be modified)\n- FALSE - Parameter has not been modified after instance startup') + is_default: bool | None = Field(None, alias='isDefault', description='Indicates whether the parameter value in the end snapshot is the default.') + + +class AwrDatabaseParameterCollection(OpsiBaseModel): + """The AWR database parameter data.""" + + name: str = Field(..., alias='name', description='Gets the name of this AwrQueryResult.\nThe name of the query result.') + version: str | None = Field(None, alias='version', description='Gets the version of this AwrQueryResult.\nThe version of the query result.') + db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') + awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + items: list[AwrDatabaseParameterSummary] | None = Field(None, alias='items', description='A list of AWR database parameter summary data.') + + +class AwrDatabaseParameterSummary(OpsiBaseModel): + """The summary of the AWR change history data for a single database parameter.""" + + name: str = Field(..., alias='name', description='The name of the parameter.') + instance_number: int | None = Field(None, alias='instanceNumber', description='The database instance number.') + begin_value: str | None = Field(None, alias='beginValue', description='The parameter value when the period began.') + end_value: str | None = Field(None, alias='endValue', description='The parameter value when the period ended.') + is_changed: bool | None = Field(None, alias='isChanged', description='Indicates whether the parameter value changed within the period.') + value_modified: str | None = Field(None, alias='valueModified', description='Indicates whether the parameter has been modified after instance startup:\n- MODIFIED - Parameter has been modified with ALTER SESSION\n- SYSTEM_MOD - Parameter has been modified with ALTER SYSTEM (which causes all the currently logged in sessions values to be modified)\n- FALSE - Parameter has not been modified after instance startup') + is_default: bool | None = Field(None, alias='isDefault', description='Indicates whether the parameter value in the end snapshot is the default.') + + +class AwrDatabaseReport(OpsiBaseModel): + """The result of the AWR report.""" + + name: str = Field(..., alias='name', description='Gets the name of this AwrQueryResult.\nThe name of the query result.') + version: str | None = Field(None, alias='version', description='Gets the version of this AwrQueryResult.\nThe version of the query result.') + db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') + awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + content: str | None = Field(None, alias='content', description='The content of the report.') + format: Literal['HTML', 'TEXT', 'XML', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='format', description='The format of the report.\n\nAllowed values for this property are: "HTML", "TEXT", "XML", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class AwrDatabaseSnapshotCollection(OpsiBaseModel): + """The list of AWR snapshots for one database.""" + + name: str = Field(..., alias='name', description='Gets the name of this AwrQueryResult.\nThe name of the query result.') + version: str | None = Field(None, alias='version', description='Gets the version of this AwrQueryResult.\nThe version of the query result.') + db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') + awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + items: list[AwrDatabaseSnapshotSummary] | None = Field(None, alias='items', description='A list of AWR snapshot summary data.') + + +class AwrDatabaseSnapshotRangeCollection(OpsiBaseModel): + """The AWR snapshot range list.""" + + name: str = Field(..., alias='name', description='Gets the name of this AwrQueryResult.\nThe name of the query result.') + version: str | None = Field(None, alias='version', description='Gets the version of this AwrQueryResult.\nThe version of the query result.') + db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') + awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + items: list[AwrDatabaseSnapshotRangeSummary] | None = Field(None, alias='items', description='A list of AWR snapshot range summary data.') + + +class AwrDatabaseSnapshotRangeSummary(OpsiBaseModel): + """The summary data for a range of AWR snapshots.""" + + awr_source_database_identifier: str = Field(..., alias='awrSourceDatabaseIdentifier', description='Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.') + db_name: str = Field(..., alias='dbName', description='The name of the database.') + instance_list: list[int] | None = Field(None, alias='instanceList', description='The database instance numbers.') + time_db_startup: datetime | None = Field(None, alias='timeDbStartup', description='The timestamp of the database startup.') + time_first_snapshot_begin: datetime | None = Field(None, alias='timeFirstSnapshotBegin', description='The start time of the earliest snapshot.') + time_latest_snapshot_end: datetime | None = Field(None, alias='timeLatestSnapshotEnd', description='The end time of the latest snapshot.') + first_snapshot_identifier: int | None = Field(None, alias='firstSnapshotIdentifier', description='Earliest AWR snapshot identifier in the range. This value is not an OCID; use snapshot identifiers returned by AWR snapshot listing results.') + latest_snapshot_identifier: int | None = Field(None, alias='latestSnapshotIdentifier', description='Latest AWR snapshot identifier in the range. This value is not an OCID; use snapshot identifiers returned by AWR snapshot listing results.') + snapshot_count: int | None = Field(None, alias='snapshotCount', description='The total number of snapshots.', ge=0) + snapshot_interval_in_min: int | None = Field(None, alias='snapshotIntervalInMin', description='The interval time between snapshots (in minutes).') + db_version: str | None = Field(None, alias='dbVersion', description='The version of the database.') + snapshot_timezone: str | None = Field(None, alias='snapshotTimezone', description='The time zone of the snapshot. sample - snapshotTimezone=+0 00:00:00') + + +class AwrDatabaseSnapshotSummary(OpsiBaseModel): + """The AWR snapshot summary of one snapshot.""" + + awr_source_database_identifier: str = Field(..., alias='awrSourceDatabaseIdentifier', description='Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.') + instance_number: int | None = Field(None, alias='instanceNumber', description='The database instance number.') + time_db_startup: datetime | None = Field(None, alias='timeDbStartup', description='The timestamp of the database startup.') + time_begin: datetime | None = Field(None, alias='timeBegin', description='The start time of the snapshot.') + time_end: datetime | None = Field(None, alias='timeEnd', description='The end time of the snapshot.') + snapshot_identifier: int = Field(..., alias='snapshotIdentifier', description='AWR snapshot identifier within the selected AWR database. This value is not an OCID; use snapshot identifiers returned by AWR snapshot listing results.') + error_count: int | None = Field(None, alias='errorCount', description='The total number of errors.', ge=0) + + +class AwrDatabaseSqlReport(OpsiBaseModel): + """The result of the AWR SQL report.""" + + name: str = Field(..., alias='name', description='Gets the name of this AwrQueryResult.\nThe name of the query result.') + version: str | None = Field(None, alias='version', description='Gets the version of this AwrQueryResult.\nThe version of the query result.') + db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') + awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + content: str | None = Field(None, alias='content', description='The content of the report.') + format: Literal['HTML', 'TEXT', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='format', description='The format of the report.\n\nAllowed values for this property are: "HTML", "TEXT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class AwrDatabaseSummary(OpsiBaseModel): + """The AWR summary for a database.""" + + awr_source_database_identifier: str = Field(..., alias='awrSourceDatabaseIdentifier', description='Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.') + db_name: str = Field(..., alias='dbName', description='The name of the database.') + instance_list: list[int] | None = Field(None, alias='instanceList', description='The database instance numbers.') + time_db_startup: datetime | None = Field(None, alias='timeDbStartup', description='The timestamp of the database startup.') + time_first_snapshot_begin: datetime | None = Field(None, alias='timeFirstSnapshotBegin', description='The start time of the earliest snapshot.') + time_latest_snapshot_end: datetime | None = Field(None, alias='timeLatestSnapshotEnd', description='The end time of the latest snapshot.') + first_snapshot_identifier: int | None = Field(None, alias='firstSnapshotIdentifier', description='Earliest AWR snapshot identifier in the range. This value is not an OCID; use snapshot identifiers returned by AWR snapshot listing results.') + latest_snapshot_identifier: int | None = Field(None, alias='latestSnapshotIdentifier', description='Latest AWR snapshot identifier in the range. This value is not an OCID; use snapshot identifiers returned by AWR snapshot listing results.') + snapshot_count: int | None = Field(None, alias='snapshotCount', description='The total number of snapshots.', ge=0) + snapshot_interval_in_min: int | None = Field(None, alias='snapshotIntervalInMin', description='The interval time between snapshots (in minutes).') + db_version: str | None = Field(None, alias='dbVersion', description='The version of the database.') + snapshot_timezone: str | None = Field(None, alias='snapshotTimezone', description='The time zone of the snapshot. sample - snapshotTimezone=+0 00:00:00') + + +class AwrDatabaseSysstatCollection(OpsiBaseModel): + """The AWR SYSSTAT time series summary data.""" + + name: str = Field(..., alias='name', description='Gets the name of this AwrQueryResult.\nThe name of the query result.') + version: str | None = Field(None, alias='version', description='Gets the version of this AwrQueryResult.\nThe version of the query result.') + db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') + awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + items: list[AwrDatabaseSysstatSummary] | None = Field(None, alias='items', description='A list of AWR SYSSTAT summary data.') + + +class AwrDatabaseSysstatSummary(OpsiBaseModel): + """The summary of the AWR SYSSTAT data.""" + + name: str = Field(..., alias='name', description='The name of the SYSSTAT.') + category: str | None = Field(None, alias='category', description='The name of the SYSSTAT category.') + time_begin: datetime | None = Field(None, alias='timeBegin', description='The start time of the SYSSTAT.') + time_end: datetime | None = Field(None, alias='timeEnd', description='The end time of the SYSSTAT.') + avg_value: float | None = Field(None, alias='avgValue', description='The average value of the SYSSTAT. The units are stats name/val per the time period {timeBegin - timeEnd}.') + current_value: float | None = Field(None, alias='currentValue', description='The last value of the SYSSTAT. The units are stats name/val per the time period {timeBegin - timeEnd}.') + + +class AwrDatabaseTopWaitEventCollection(OpsiBaseModel): + """The AWR top wait event data.""" + + name: str = Field(..., alias='name', description='Gets the name of this AwrQueryResult.\nThe name of the query result.') + version: str | None = Field(None, alias='version', description='Gets the version of this AwrQueryResult.\nThe version of the query result.') + db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') + awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + items: list[AwrDatabaseTopWaitEventSummary] | None = Field(None, alias='items', description='A list of AWR top event summary data.') + + +class AwrDatabaseTopWaitEventSummary(OpsiBaseModel): + """A summary of the AWR top wait event data for one event.""" + + name: str = Field(..., alias='name', description='The name of the event.') + waits_per_sec: float | None = Field(None, alias='waitsPerSec', description='The wait count per second.') + avg_wait_time_per_sec: float | None = Field(None, alias='avgWaitTimePerSec', description='The average wait time per second.') + + +class AwrDatabaseWaitEventBucketCollection(OpsiBaseModel): + """The percentage distribution of waits in the AWR wait event buckets.""" + + name: str = Field(..., alias='name', description='Gets the name of this AwrQueryResult.\nThe name of the query result.') + version: str | None = Field(None, alias='version', description='Gets the version of this AwrQueryResult.\nThe version of the query result.') + db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') + awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + total_waits: int | None = Field(None, alias='totalWaits', description='The total waits of the database.') + items: list[AwrDatabaseWaitEventBucketSummary] | None = Field(None, alias='items', description='A list of AWR wait event buckets.') + + +class AwrDatabaseWaitEventBucketSummary(OpsiBaseModel): + """A summary of the AWR wait event bucket and waits percentage.""" + + category: str = Field(..., alias='category', description='The name of the wait event frequency category. Normally, it is the upper range of the waits within the AWR wait event bucket.') + percentage: float = Field(..., alias='percentage', description='The percentage of waits in a wait event bucket over the total waits of the database.') + + +class AwrDatabaseWaitEventCollection(OpsiBaseModel): + """The AWR wait event data.""" + + name: str = Field(..., alias='name', description='Gets the name of this AwrQueryResult.\nThe name of the query result.') + version: str | None = Field(None, alias='version', description='Gets the version of this AwrQueryResult.\nThe version of the query result.') + db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') + awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + items: list[AwrDatabaseWaitEventSummary] | None = Field(None, alias='items', description='A list of AWR wait events.') + + +class AwrDatabaseWaitEventSummary(OpsiBaseModel): + """The summary of the AWR wait event time series data for one event.""" + + name: str = Field(..., alias='name', description='The name of the event.') + time_begin: datetime | None = Field(None, alias='timeBegin', description='The begin time of the wait event.') + time_end: datetime | None = Field(None, alias='timeEnd', description='The end time of the wait event.') + waits_per_sec: float | None = Field(None, alias='waitsPerSec', description='The wait count per second.') + avg_wait_time_per_sec: float | None = Field(None, alias='avgWaitTimePerSec', description='The average wait time per second.') + snapshot_identifier: int | None = Field(None, alias='snapshotIdentifier', description='AWR snapshot identifier within the selected AWR database. This value is not an OCID; use snapshot identifiers returned by AWR snapshot listing results.') + + +class AwrHub(OpsiBaseModel): + """Awr Hub resource.""" + + operations_insights_warehouse_id: str = Field(..., alias='operationsInsightsWarehouseId', description='OPSI Warehouse OCID') + id: str = Field(..., alias='id', description='AWR Hub OCID') + compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') + display_name: str = Field(..., alias='displayName', description='User-friedly name of AWR Hub that does not have to be unique.') + object_storage_bucket_name: str = Field(..., alias='objectStorageBucketName', description='Object Storage Bucket Name') + awr_mailbox_url: str | None = Field(None, alias='awrMailboxUrl', description='Mailbox URL required for AWR hub and AWR source setup.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + time_created: datetime = Field(..., alias='timeCreated', description='The time at which the resource was first created. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='The time at which the resource was last updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Possible lifecycle states\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + hub_dst_timezone_version: str | None = Field(None, alias='hubDstTimezoneVersion', description='Dst Time Zone Version of the AWR Hub') + + +class AwrHubObjects(OpsiBaseModel): + """Logical grouping used for Awr Hub Object operations.""" + + awr_snapshots: Any | None = Field(None, alias='awrSnapshots', description='Awr Hub Object.') + + +class AwrHubSource(OpsiBaseModel): + """Awr hub source object.""" + + name: str = Field(..., alias='name', description='The name of the Awr Hub source database.') + awr_hub_id: str = Field(..., alias='awrHubId', description='AWR Hub OCID') + compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') + type: Literal['ADW_S', 'ATP_S', 'ADW_D', 'ATP_D', 'EXTERNAL_PDB', 'EXTERNAL_NONCDB', 'COMANAGED_VM_CDB', 'COMANAGED_VM_PDB', 'COMANAGED_VM_NONCDB', 'COMANAGED_BM_CDB', 'COMANAGED_BM_PDB', 'COMANAGED_BM_NONCDB', 'COMANAGED_EXACS_CDB', 'COMANAGED_EXACS_PDB', 'COMANAGED_EXACS_NONCDB', 'LH_S', 'APEX_S', 'AJD_S', 'AVD_S', 'LH_D', 'APEX_D', 'AJD_D', 'AVD_D', 'UNDEFINED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='type', description='source type of the database\n\nAllowed values for this property are: "ADW_S", "ATP_S", "ADW_D", "ATP_D", "EXTERNAL_PDB", "EXTERNAL_NONCDB", "COMANAGED_VM_CDB", "COMANAGED_VM_PDB", "COMANAGED_VM_NONCDB", "COMANAGED_BM_CDB", "COMANAGED_BM_PDB", "COMANAGED_BM_NONCDB", "COMANAGED_EXACS_CDB", "COMANAGED_EXACS_PDB", "COMANAGED_EXACS_NONCDB", "LH_S", "APEX_S", "AJD_S", "AVD_S", "LH_D", "APEX_D", "AJD_D", "AVD_D", "UNDEFINED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + id: str = Field(..., alias='id', description='The OCID of the Awr Hub source database.') + awr_hub_opsi_source_id: str = Field(..., alias='awrHubOpsiSourceId', description='The shorted string of the Awr Hub source database identifier.') + source_mail_box_url: str = Field(..., alias='sourceMailBoxUrl', description='Opsi Mailbox URL based on the Awr Hub and Awr Hub source.') + associated_resource_id: str | None = Field(None, alias='associatedResourceId', description='The OCID of the database id.') + associated_opsi_id: str | None = Field(None, alias='associatedOpsiId', description='The OCID of the database id.') + time_created: datetime = Field(..., alias='timeCreated', description='The time at which the resource was first created. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='The time at which the resource was last updated. An RFC3339 formatted datetime string') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + is_registered_with_awr_hub: bool | None = Field(None, alias='isRegisteredWithAwrHub', description='This is `true` if the source databse is registered with a Awr Hub, otherwise `false`') + awr_source_database_id: str | None = Field(None, alias='awrSourceDatabaseId', description='DatabaseId of the Source database for which AWR Data will be uploaded to AWR Hub.') + min_snapshot_identifier: float | None = Field(None, alias='minSnapshotIdentifier', description='The minimum snapshot identifier of the source database for which AWR data is uploaded to AWR Hub.') + max_snapshot_identifier: float | None = Field(None, alias='maxSnapshotIdentifier', description='The maximum snapshot identifier of the source database for which AWR data is uploaded to AWR Hub.') + time_first_snapshot_generated: datetime | None = Field(None, alias='timeFirstSnapshotGenerated', description='The time at which the earliest snapshot was generated in the source database for which data is uploaded to AWR Hub. An RFC3339 formatted datetime string') + time_last_snapshot_generated: datetime | None = Field(None, alias='timeLastSnapshotGenerated', description='The time at which the latest snapshot was generated in the source database for which data is uploaded to AWR Hub. An RFC3339 formatted datetime string') + hours_since_last_import: float | None = Field(None, alias='hoursSinceLastImport', description='Number of hours since last AWR snapshots import happened from the Source database.') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='the current state of the source database\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + status: Literal['ACCEPTING', 'NOT_ACCEPTING', 'NOT_REGISTERED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Indicates the status of a source database in Operations Insights\n\nAllowed values for this property are: "ACCEPTING", "NOT_ACCEPTING", "NOT_REGISTERED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class AwrHubSourceSummary(OpsiBaseModel): + """Awr hub source object.""" + + name: str = Field(..., alias='name', description='The name of the Awr Hub source database.') + awr_hub_id: str = Field(..., alias='awrHubId', description='AWR Hub OCID') + compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') + type: Literal['ADW_S', 'ATP_S', 'ADW_D', 'ATP_D', 'EXTERNAL_PDB', 'EXTERNAL_NONCDB', 'COMANAGED_VM_CDB', 'COMANAGED_VM_PDB', 'COMANAGED_VM_NONCDB', 'COMANAGED_BM_CDB', 'COMANAGED_BM_PDB', 'COMANAGED_BM_NONCDB', 'COMANAGED_EXACS_CDB', 'COMANAGED_EXACS_PDB', 'COMANAGED_EXACS_NONCDB', 'LH_S', 'APEX_S', 'AJD_S', 'AVD_S', 'LH_D', 'APEX_D', 'AJD_D', 'AVD_D', 'UNDEFINED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='type', description='source type of the database\n\nAllowed values for this property are: "ADW_S", "ATP_S", "ADW_D", "ATP_D", "EXTERNAL_PDB", "EXTERNAL_NONCDB", "COMANAGED_VM_CDB", "COMANAGED_VM_PDB", "COMANAGED_VM_NONCDB", "COMANAGED_BM_CDB", "COMANAGED_BM_PDB", "COMANAGED_BM_NONCDB", "COMANAGED_EXACS_CDB", "COMANAGED_EXACS_PDB", "COMANAGED_EXACS_NONCDB", "LH_S", "APEX_S", "AJD_S", "AVD_S", "LH_D", "APEX_D", "AJD_D", "AVD_D", "UNDEFINED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + id: str = Field(..., alias='id', description='The OCID of the Awr Hub source database.') + awr_hub_opsi_source_id: str = Field(..., alias='awrHubOpsiSourceId', description='The shorted string of the Awr Hub source database identifier.') + source_mail_box_url: str = Field(..., alias='sourceMailBoxUrl', description='Opsi Mailbox URL based on the Awr Hub and Awr Hub source.') + associated_resource_id: str | None = Field(None, alias='associatedResourceId', description='The OCID of the database id.') + associated_opsi_id: str | None = Field(None, alias='associatedOpsiId', description='The OCID of the database id.') + time_created: datetime = Field(..., alias='timeCreated', description='The time at which the resource was first created. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='The time at which the resource was last updated. An RFC3339 formatted datetime string') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + is_registered_with_awr_hub: bool | None = Field(None, alias='isRegisteredWithAwrHub', description='This is `true` if the source databse is registered with a Awr Hub, otherwise `false`') + awr_source_database_id: str | None = Field(None, alias='awrSourceDatabaseId', description='DatabaseId of the Source database for which AWR Data will be uploaded to AWR Hub.') + min_snapshot_identifier: float | None = Field(None, alias='minSnapshotIdentifier', description='The minimum snapshot identifier of the source database for which AWR data is uploaded to AWR Hub.') + max_snapshot_identifier: float | None = Field(None, alias='maxSnapshotIdentifier', description='The maximum snapshot identifier of the source database for which AWR data is uploaded to AWR Hub.') + time_first_snapshot_generated: datetime | None = Field(None, alias='timeFirstSnapshotGenerated', description='The time at which the earliest snapshot was generated in the source database for which data is uploaded to AWR Hub. An RFC3339 formatted datetime string') + time_last_snapshot_generated: datetime | None = Field(None, alias='timeLastSnapshotGenerated', description='The time at which the latest snapshot was generated in the source database for which data is uploaded to AWR Hub. An RFC3339 formatted datetime string') + hours_since_last_import: float | None = Field(None, alias='hoursSinceLastImport', description='Number of hours since last AWR snapshots import happened from the Source database.') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='the current state of the source database\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + status: Literal['ACCEPTING', 'NOT_ACCEPTING', 'NOT_REGISTERED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Indicates the status of a source database in Operations Insights\n\nAllowed values for this property are: "ACCEPTING", "NOT_ACCEPTING", "NOT_REGISTERED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class AwrHubSourceSummaryCollection(OpsiBaseModel): + """Collection of Awr Hub sources.""" + + items: list[AwrHubSourceSummary] = Field(..., alias='items', description='Array of Awr Hub source objects.') + + +class AwrHubSources(OpsiBaseModel): + """Logical grouping used for Awr Hub Source operations.""" + + awr_hub_sources: Any | None = Field(None, alias='awrHubSources', description='Awr Hub Source Object.') + + +class AwrHubSummary(OpsiBaseModel): + """Summary Hub resource.""" + + operations_insights_warehouse_id: str = Field(..., alias='operationsInsightsWarehouseId', description='OPSI Warehouse OCID') + id: str = Field(..., alias='id', description='AWR Hub OCID') + compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') + display_name: str = Field(..., alias='displayName', description='User-friedly name of AWR Hub that does not have to be unique.') + object_storage_bucket_name: str = Field(..., alias='objectStorageBucketName', description='Object Storage Bucket Name') + awr_mailbox_url: str | None = Field(None, alias='awrMailboxUrl', description='Mailbox URL required for AWR hub and AWR source setup.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + time_created: datetime = Field(..., alias='timeCreated', description='The time at which the resource was first created. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='The time at which the resource was last updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Possible lifecycle states\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + + +class AwrHubSummaryCollection(OpsiBaseModel): + """Collection of Hub resources.""" + + items: list[AwrHubSummary] = Field(..., alias='items', description='Array of Hub summary objects.') + + +class AwrHubs(OpsiBaseModel): + """Logical grouping used for Awr Hub operations.""" + + awr_hubs: Any | None = Field(None, alias='awrHubs', description='Awr Hub Object.') + + +class AwrQueryResult(OpsiBaseModel): + """The AWR query result.""" + + name: str = Field(..., alias='name', description='The name of the query result.') + version: str | None = Field(None, alias='version', description='The version of the query result.') + db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='The time taken to query the database tier (in seconds).') + awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='The result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class AwrReport(OpsiBaseModel): + """The result of the AWR report.""" + + content: str | None = Field(None, alias='content', description='The content of the report.') + format: Literal['HTML', 'TEXT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='format', description='The format of the report.\n\nAllowed values for this property are: "HTML", "TEXT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class AwrSnapshotCollection(OpsiBaseModel): + """The list of AWR snapshots for one database.""" + + items: list[AwrSnapshotSummary] = Field(..., alias='items', description='A list of AWR snapshot summary data.') + + +class AwrSnapshotSummary(OpsiBaseModel): + """The AWR snapshot summary of one snapshot.""" + + awr_source_database_id: str = Field(..., alias='awrSourceDatabaseId', description='DatabaseId of the Source database for which AWR Data will be uploaded to AWR Hub.') + instance_number: int | None = Field(None, alias='instanceNumber', description='The database instance number.') + time_db_startup: datetime | None = Field(None, alias='timeDbStartup', description='The timestamp of the database startup.') + time_snapshot_begin: datetime | None = Field(None, alias='timeSnapshotBegin', description='The start time of the snapshot.') + time_snapshot_end: datetime | None = Field(None, alias='timeSnapshotEnd', description='The end time of the snapshot.') + snapshot_identifier: int = Field(..., alias='snapshotIdentifier', description='The identifier of the snapshot.') + error_count: int | None = Field(None, alias='errorCount', description='The total number of errors.', ge=0) + + +class AwrSourceSummary(OpsiBaseModel): + """Summary of an AwrSource.""" + + awr_hub_id: str = Field(..., alias='awrHubId', description='AWR Hub OCID') + name: str = Field(..., alias='name', description='Database name of the Source database for which AWR Data will be uploaded to AWR Hub.') + awr_source_database_id: str = Field(..., alias='awrSourceDatabaseId', description='DatabaseId of the Source database for which AWR Data will be uploaded to AWR Hub.') + snapshots_uploaded: float = Field(..., alias='snapshotsUploaded', description='Number of AWR snapshots uploaded from the Source database.') + min_snapshot_identifier: float = Field(..., alias='minSnapshotIdentifier', description='The minimum snapshot identifier of the source database for which AWR data is uploaded to AWR Hub.') + max_snapshot_identifier: float = Field(..., alias='maxSnapshotIdentifier', description='The maximum snapshot identifier of the source database for which AWR data is uploaded to AWR Hub.') + time_first_snapshot_generated: datetime = Field(..., alias='timeFirstSnapshotGenerated', description='The time at which the earliest snapshot was generated in the source database for which data is uploaded to AWR Hub. An RFC3339 formatted datetime string') + time_last_snapshot_generated: datetime = Field(..., alias='timeLastSnapshotGenerated', description='The time at which the latest snapshot was generated in the source database for which data is uploaded to AWR Hub. An RFC3339 formatted datetime string') + hours_since_last_import: float = Field(..., alias='hoursSinceLastImport', description='Number of hours since last AWR snapshots import happened from the Source database.') + + +class BasicConfigurationItemMetadata(OpsiBaseModel): + """Basic configuration item metadata.""" + + config_item_type: Literal['BASIC', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='configItemType', description='Gets the config_item_type of this ConfigurationItemMetadata.\nType of configuration item.\n\nAllowed values for this property are: "BASIC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + display_name: str | None = Field(None, alias='displayName', description='User-friendly display name for the configuration item.') + description: str | None = Field(None, alias='description', description='Description of configuration item.') + data_type: str | None = Field(None, alias='dataType', description='Data type of configuration item.\nExamples: STRING, BOOLEAN, NUMBER') + unit_details: ConfigurationItemUnitDetails | None = Field(None, alias='unitDetails', description='The unit_details field of BasicConfigurationItemMetadata.') + value_input_details: ConfigurationItemAllowedValueDetails | None = Field(None, alias='valueInputDetails', description='The value_input_details field of BasicConfigurationItemMetadata.') + + +class BasicConfigurationItemSummary(OpsiBaseModel): + """Basic configuration item summary. Value field contain the most preferred value for the specified scope (compartmentId), which could be from any of the ConfigurationItemValueSourceConfigurationType. Default value field contains the default value from Ops Insights.""" + + config_item_type: Literal['BASIC', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='configItemType', description='Gets the config_item_type of this ConfigurationItemSummary.\nType of configuration item.\n\nAllowed values for this property are: "BASIC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + name: str | None = Field(None, alias='name', description='Name of configuration item.') + value: Literal['COMPARTMENT', 'DEFAULT', 'TENANT'] | None = Field(None, alias='value', description='Value of configuration item.') + value_source_config: Literal['DEFAULT', 'TENANT', 'COMPARTMENT', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='valueSourceConfig', description='Source configuration from where the value is taken for a configuration item.\n\nAllowed values for this property are: "DEFAULT", "TENANT", "COMPARTMENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + default_value: str | None = Field(None, alias='defaultValue', description='Value of configuration item.') + applicable_contexts: list[str] | None = Field(None, alias='applicableContexts', description='List of contexts in Ops Insights where this configuration item is applicable.') + metadata: ConfigurationItemMetadata | None = Field(None, alias='metadata', description='The metadata field of BasicConfigurationItemSummary.') + + +class ChangeAutonomousDatabaseInsightAdvancedFeaturesDetails(OpsiRequestModel): + """Advanced feature details of autonomous database insight.""" + + connection_details: ConnectionDetails = Field(..., alias='connectionDetails', description='The connection_details field of ChangeAutonomousDatabaseInsightAdvancedFeaturesDetails.') + credential_details: CredentialDetails = Field(..., alias='credentialDetails', description='The credential_details field of ChangeAutonomousDatabaseInsightAdvancedFeaturesDetails.') + opsi_private_endpoint_id: str | None = Field(None, alias='opsiPrivateEndpointId', description='The OCID of the OPSI private endpoint.') + + +class ChangeAwrHubSourceCompartmentDetails(OpsiRequestModel): + """Destination compartment for moving an AWR Hub source. Set compartmentId to the target compartment OCID.""" + + compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment into which the resource should be moved.') + + +class ChangeChargebackPlanCompartmentDetails(OpsiRequestModel): + """Destination compartment for moving an Ops Insights chargeback plan. Set compartmentId to the target compartment OCID.""" + + compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment into which the resource should be moved.') + + +class ChangeDatabaseInsightCompartmentDetails(OpsiRequestModel): + """Destination compartment for moving a database insight. Set compartmentId to the target compartment OCID.""" + + compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment into which the resource should be moved.') + + +class ChangeEnterpriseManagerBridgeCompartmentDetails(OpsiRequestModel): + """Destination compartment for moving an Enterprise Manager bridge. Set compartmentId to the target compartment OCID.""" + + compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment into which the resource should be moved.') + + +class ChangeExadataInsightCompartmentDetails(OpsiRequestModel): + """Destination compartment for moving an Exadata insight. Set compartmentId to the target compartment OCID.""" + + compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment into which the resource should be moved.') + + +class ChangeExternalMysqlDatabaseInsightConnectionDetails(OpsiBaseModel): + """MySQL support within the OCI Ops Insights service has been deprecated as of January 29, 2026. Connection details of an External MySQL database insight.""" + + database_connector_id: str = Field(..., alias='databaseConnectorId', description='The DBM owned database connector OCID mapping to the database credentials and connection details.') + + +class ChangeHostInsightCompartmentDetails(OpsiRequestModel): + """Destination compartment for moving a host insight. Set compartmentId to the target compartment OCID.""" + + compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment into which the resource should be moved.') + + +class ChangeMacsManagedAutonomousDatabaseInsightConnectionDetails(OpsiRequestModel): + """Connection details of a MACS-managed autonomous database insight.""" + + management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') + connection_details: ConnectionDetails = Field(..., alias='connectionDetails', description='The connection_details field of ChangeMacsManagedAutonomousDatabaseInsightConnectionDetails.') + connection_credential_details: CredentialDetails = Field(..., alias='connectionCredentialDetails', description='The connection_credential_details field of ChangeMacsManagedAutonomousDatabaseInsightConnectionDetails.') + + +class ChangeMacsManagedCloudDatabaseInsightConnectionDetails(OpsiRequestModel): + """Connection details of a MACS-managed cloud database insight.""" + + management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') + connection_details: ConnectionDetails = Field(..., alias='connectionDetails', description='The connection_details field of ChangeMacsManagedCloudDatabaseInsightConnectionDetails.') + connection_credential_details: CredentialDetails = Field(..., alias='connectionCredentialDetails', description='The connection_credential_details field of ChangeMacsManagedCloudDatabaseInsightConnectionDetails.') + + +class ChangeNewsReportCompartmentDetails(OpsiRequestModel): + """Destination compartment for moving a news report. Set compartmentId to the target compartment OCID.""" + + compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment into which the resource will be moved.') + + +class ChangeOperationsInsightsPrivateEndpointCompartmentDetails(OpsiRequestModel): + """The details used to change the compartment of a Operation Insights private endpoint.""" + + compartment_id: str | None = Field(None, alias='compartmentId', description='The new compartment OCID of the Private service accessed database.') + + +class ChangeOperationsInsightsWarehouseCompartmentDetails(OpsiRequestModel): + """Destination compartment for moving an Operations Insights warehouse. Set compartmentId to the target compartment OCID.""" + + compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') + + +class ChangeOpsiConfigurationCompartmentDetails(OpsiRequestModel): + """The information used to change the compartment of an OPSI configuration resource.""" + + compartment_id: str = Field(..., alias='compartmentId', description='OCID of the compartment into which the resource should be moved.') + + +class ChangePeComanagedDatabaseInsightDetails(OpsiRequestModel): + """Details of a Private Endpoint co-managed database insight.""" + + service_name: str = Field(..., alias='serviceName', description='Database service name used for connection requests.') + credential_details: CredentialDetails = Field(..., alias='credentialDetails', description='The credential_details field of ChangePeComanagedDatabaseInsightDetails.') + connection_details: PeComanagedDatabaseConnectionDetails | None = Field(None, alias='connectionDetails', description='The connection_details field of ChangePeComanagedDatabaseInsightDetails.') + opsi_private_endpoint_id: str = Field(..., alias='opsiPrivateEndpointId', description='The OCID of the OPSI private endpoint.') + + +class ChargebackPlan(OpsiBaseModel): + """A chargeback plan that allows Ops Insights services to compute chargeback costs.""" + + id: str = Field(..., alias='id', description='OCID of OPSI Chargeback plan resource.') + compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') + plan_name: str = Field(..., alias='planName', description='Name for the OPSI Chargeback plan.') + plan_description: str | None = Field(None, alias='planDescription', description='Description of OPSI Chargeback Plan.') + plan_type: str = Field(..., alias='planType', description='Chargeback Plan type of the chargeback entity. For an Exadata it can be WEIGHTED_ALLOCATION, EQUAL_ALLOCATION, UNUSED_ALLOCATION.') + plan_category: Literal['OOB', 'CUSTOM', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='planCategory', description='Chargeback Plan category of the chargeback entity. It can be OOB, or CUSTOM.\n\nAllowed values for this property are: "OOB", "CUSTOM", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + is_customizable: bool | None = Field(None, alias='isCustomizable', description='Indicates whether the chargeback plan can be customized.') + entity_source: Literal['CHARGEBACK_EXADATA', 'CHARGEBACK_COMPUTE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='entitySource', description='Source of the chargeback plan.\n\nAllowed values for this property are: "CHARGEBACK_EXADATA", "CHARGEBACK_COMPUTE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime = Field(..., alias='timeCreated', description='The date and time the chargeback plan was created, in the format defined by RFC3339.') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='The time chargeback plan was updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Chargeback Plan lifecycle states\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + plan_custom_items: list[CreatePlanCustomItemDetails] | None = Field(None, alias='planCustomItems', description='List of chargeback plan customizations.') + + +class ChargebackPlanCollection(OpsiBaseModel): + """A collection of Ops Insights chargeback plan objects.""" + + items: list[ChargebackPlanSummary] = Field(..., alias='items', description='A list of ChargebackPlanSummary objects.') + + +class ChargebackPlanDetails(OpsiBaseModel): + """Object containing chargeback plan details.""" + + plan_id: str | None = Field(None, alias='planId', description='OCID of OPSI Chargeback plan resource.') + plan_type: str | None = Field(None, alias='planType', description='Chargeback Plan type of the chargeback entity. For an Exadata it can be WEIGHTED_ALLOCATION, EQUAL_ALLOCATION, UNUSED_ALLOCATION.') + time_enabled: datetime | None = Field(None, alias='timeEnabled', description='The date and time the chargeback plan was enabled on the resource, in the format defined by RFC3339.') + + +class ChargebackPlanReport(OpsiBaseModel): + """A chargeback plan report that allows Ops Insights services to showcase chargeback costs.""" + + report_id: str = Field(..., alias='reportId', description='OCID of the Chargeback plan report.') + report_name: str = Field(..., alias='reportName', description='The chargeback plan report name.') + resource_type: Literal['EXADATA_INSIGHT', 'DATABASE_INSIGHT', 'HOST_INSIGHT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceType', description='Defines the type of resource (example: EXADATA, HOST)\n\nAllowed values for this property are: "EXADATA_INSIGHT", "DATABASE_INSIGHT", "HOST_INSIGHT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + resource_id: str = Field(..., alias='resourceId', description='OCID of the Chargeback plan report.') + time_created: datetime = Field(..., alias='timeCreated', description='The date and time the chargeback plan was created, in the format defined by RFC3339.') + time_updated: datetime = Field(..., alias='timeUpdated', description='The time chargeback plan was updated. An RFC3339 formatted datetime string') + report_properties: ReportPropertyDetails = Field(..., alias='reportProperties', description='The report_properties field of ChargebackPlanReport.') + + +class ChargebackPlanReportCollection(OpsiBaseModel): + """A collection of chargeback plan reports objects.""" + + items: list[ChargebackPlanReportSummary] = Field(..., alias='items', description='A list of ChargebackPlanReportSummary objects.') + + +class ChargebackPlanReportSummary(OpsiBaseModel): + """Summary of a Ops Insights chargeback plan report.""" + + report_id: str = Field(..., alias='reportId', description='OCID of the Chargeback plan report.') + report_name: str = Field(..., alias='reportName', description='The chargeback plan report name.') + resource_type: Literal['EXADATA_INSIGHT', 'DATABASE_INSIGHT', 'HOST_INSIGHT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceType', description='Defines the type of resource (example: EXADATA, HOST)\n\nAllowed values for this property are: "EXADATA_INSIGHT", "DATABASE_INSIGHT", "HOST_INSIGHT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + resource_id: str = Field(..., alias='resourceId', description='OCID of the Chargeback plan report.') + time_created: datetime = Field(..., alias='timeCreated', description='The date and time the chargeback plan was created, in the format defined by RFC3339.') + time_updated: datetime = Field(..., alias='timeUpdated', description='The time chargeback plan was updated. An RFC3339 formatted datetime string') + report_properties: ReportPropertyDetails = Field(..., alias='reportProperties', description='The report_properties field of ChargebackPlanReportSummary.') + + +class ChargebackPlanSummary(OpsiBaseModel): + """Summary of a Ops Insights chargeback plan.""" + + id: str = Field(..., alias='id', description='OCID of OPSI Chargeback plan resource.') + compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') + plan_name: str = Field(..., alias='planName', description='Name for the OPSI Chargeback plan.') + plan_description: str | None = Field(None, alias='planDescription', description='Description of OPSI Chargeback Plan.') + plan_type: str = Field(..., alias='planType', description='Chargeback Plan type of the chargeback entity. For an Exadata it can be WEIGHTED_ALLOCATION, EQUAL_ALLOCATION, UNUSED_ALLOCATION.') + plan_category: Literal['OOB', 'CUSTOM', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='planCategory', description='Chargeback Plan category of the chargeback entity. It can be OOB, or CUSTOM.\n\nAllowed values for this property are: "OOB", "CUSTOM", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + is_customizable: bool | None = Field(None, alias='isCustomizable', description='Indicates whether the chargeback plan can be customized.') + entity_source: Literal['CHARGEBACK_EXADATA', 'CHARGEBACK_COMPUTE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Source of the chargeback plan.\n\nAllowed values for this property are: "CHARGEBACK_EXADATA", "CHARGEBACK_COMPUTE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime = Field(..., alias='timeCreated', description='The date and time the chargeback plan was created, in the format defined by RFC3339.') + time_updated: datetime = Field(..., alias='timeUpdated', description='The time chargeback plan was updated. An RFC3339 formatted datetime string') + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Chargeback Plan lifecycle states\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + plan_custom_items: list[CreatePlanCustomItemDetails] = Field(..., alias='planCustomItems', description='List of chargeback plan customizations.') + + +class CloudImportableComputeEntitySummary(OpsiBaseModel): + """A compute host entity that can be imported into Operations Insights.""" + + entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this ImportableComputeEntitySummary.\nSource of the importable agent entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + compute_id: str = Field(..., alias='computeId', description='Gets the compute_id of this ImportableComputeEntitySummary. The OCID of the Compute Instance.') + compute_display_name: str = Field(..., alias='computeDisplayName', description='Gets the compute_display_name of this ImportableComputeEntitySummary. The Display Name of the Compute Instance.') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this ImportableComputeEntitySummary. The OCID of the compartment.') + host_name: str | None = Field(None, alias='hostName', description='The host name. The host name is unique amongst the hosts managed by the same management agent.') + platform_type: Literal['LINUX', 'SOLARIS', 'SUNOS', 'ZLINUX', 'WINDOWS', 'AIX', 'HP_UX', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='platformType', description='Platform type.\nSupported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS].\nSupported platformType(s) for MACS-managed cloud host insight: [LINUX].\nSupported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX].\n\nAllowed values for this property are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class ConfigurationItemAllowedValueDetails(OpsiBaseModel): + """Allowed value details of configuration item, to validate what value can be assigned to a configuration item.""" + + allowed_value_type: Literal['LIMIT', 'PICK', 'FREE_TEXT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='allowedValueType', description='Allowed value type of configuration item.\n\nAllowed values for this property are: "LIMIT", "PICK", "FREE_TEXT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class ConfigurationItemFreeTextAllowedValueDetails(OpsiBaseModel): + """Allowed value details of configuration item for FREE_TEXT type.""" + + allowed_value_type: Literal['LIMIT', 'PICK', 'FREE_TEXT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='allowedValueType', description='Gets the allowed_value_type of this ConfigurationItemAllowedValueDetails.\nAllowed value type of configuration item.\n\nAllowed values for this property are: "LIMIT", "PICK", "FREE_TEXT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class ConfigurationItemLimitAllowedValueDetails(OpsiBaseModel): + """Allowed value details of configuration item for LIMIT type. Value has to be between minValue and maxValue.""" + + allowed_value_type: Literal['LIMIT', 'PICK', 'FREE_TEXT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='allowedValueType', description='Gets the allowed_value_type of this ConfigurationItemAllowedValueDetails.\nAllowed value type of configuration item.\n\nAllowed values for this property are: "LIMIT", "PICK", "FREE_TEXT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + min_value: str | None = Field(None, alias='minValue', description='Minimum value limit for the configuration item.') + max_value: str | None = Field(None, alias='maxValue', description='Maximum value limit for the configuration item.') + + +class ConfigurationItemMetadata(OpsiBaseModel): + """Configuration item metadata.""" + + config_item_type: Literal['BASIC', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='configItemType', description='Type of configuration item.\n\nAllowed values for this property are: "BASIC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class ConfigurationItemPickAllowedValueDetails(OpsiBaseModel): + """Allowed value details of configuration item for PICK type. Value has to be from one of the possibleValues.""" + + allowed_value_type: Literal['LIMIT', 'PICK', 'FREE_TEXT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='allowedValueType', description='Gets the allowed_value_type of this ConfigurationItemAllowedValueDetails.\nAllowed value type of configuration item.\n\nAllowed values for this property are: "LIMIT", "PICK", "FREE_TEXT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + possible_values: list[str] | None = Field(None, alias='possibleValues', description='Allowed values to pick for the configuration item.') + + +class ConfigurationItemSummary(OpsiBaseModel): + """Configuration item summary.""" + + config_item_type: Literal['BASIC', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='configItemType', description='Type of configuration item.\n\nAllowed values for this property are: "BASIC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class ConfigurationItemUnitDetails(OpsiBaseModel): + """Unit details of configuration item.""" + + unit: str | None = Field(None, alias='unit', description='Unit of configuration item.') + display_name: str | None = Field(None, alias='displayName', description='User-friendly display name for the configuration item unit.') + + +class ConfigurationItemsCollection(OpsiBaseModel): + """Collection of configuration item summary objects.""" + + opsi_config_type: Literal['UX_CONFIGURATION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='opsiConfigType', description='OPSI configuration type.\n\nAllowed values for this property are: "UX_CONFIGURATION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + config_items: list[ConfigurationItemSummary] | None = Field(None, alias='configItems', description='Array of configuration item summary objects.') + + +class ConnectionDetails(OpsiBaseModel): + """Connection details to connect to the database. HostName, protocol, and port should be specified.""" + + host_name: str = Field(..., alias='hostName', description='Name of the listener host that will be used to create the connect string to the database.') + protocol: Literal['TCP', 'TCPS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='protocol', description='Protocol used for connection requests.\n\nAllowed values for this property are: "TCP", "TCPS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + port: int = Field(..., alias='port', description='Listener port number used for connection requests.') + service_name: str = Field(..., alias='serviceName', description='Database service name used for connection requests.') + + +class CreateAutonomousDatabaseInsightDetails(OpsiBaseModel): + """The information about database to be analyzed. When isAdvancedFeaturesEnabled is set to false, parameters connectionDetails, credentialDetails and opsiPrivateEndpoint are optional. Otherwise, connectionDetails and crendetialDetails are required to enable full OPSI service features. If the Autonomouse Database is configured with private, restricted or dedicated access, opsiPrivateEndpoint parameter is required.""" + + entity_source: Literal['EM_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Gets the entity_source of this CreateDatabaseInsightDetails.\nSource of the database entity.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this CreateDatabaseInsightDetails.\nCompartment Identifier of database') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CreateDatabaseInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CreateDatabaseInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') + database_resource_type: str = Field(..., alias='databaseResourceType', description='OCI database resource type') + is_advanced_features_enabled: bool = Field(..., alias='isAdvancedFeaturesEnabled', description='Flag is to identify if advanced features for autonomous database is enabled or not') + connection_details: ConnectionDetails | None = Field(None, alias='connectionDetails', description='The connection_details field of CreateAutonomousDatabaseInsightDetails.') + credential_details: CredentialDetails | None = Field(None, alias='credentialDetails', description='The credential_details field of CreateAutonomousDatabaseInsightDetails.') + opsi_private_endpoint_id: str | None = Field(None, alias='opsiPrivateEndpointId', description='The OCID of the OPSI private endpoint.') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + + +class CreateAwrHubDetails(OpsiRequestModel): + """The information about Hub to be analyzed. Input compartmentId MUST be the root compartment.""" + + operations_insights_warehouse_id: str = Field(..., alias='operationsInsightsWarehouseId', description='OPSI Warehouse OCID') + compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') + display_name: str = Field(..., alias='displayName', description='User-friedly name of AWR Hub that does not have to be unique.') + object_storage_bucket_name: str | None = Field(None, alias='objectStorageBucketName', description='Object Storage Bucket Name') + + +class CreateAwrHubSourceDetails(OpsiRequestModel): + """payload to register Awr Hub source.""" + + name: str = Field(..., alias='name', description='The name of the Awr Hub source database.') + awr_hub_id: str = Field(..., alias='awrHubId', description='AWR Hub OCID') + compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') + associated_resource_id: str | None = Field(None, alias='associatedResourceId', description='The OCID of the database id.') + associated_opsi_id: str | None = Field(None, alias='associatedOpsiId', description='The OCID of the database id.') + type: Literal['ADW_S', 'ATP_S', 'ADW_D', 'ATP_D', 'EXTERNAL_PDB', 'EXTERNAL_NONCDB', 'COMANAGED_VM_CDB', 'COMANAGED_VM_PDB', 'COMANAGED_VM_NONCDB', 'COMANAGED_BM_CDB', 'COMANAGED_BM_PDB', 'COMANAGED_BM_NONCDB', 'COMANAGED_EXACS_CDB', 'COMANAGED_EXACS_PDB', 'COMANAGED_EXACS_NONCDB', 'LH_S', 'APEX_S', 'AJD_S', 'AVD_S', 'LH_D', 'APEX_D', 'AJD_D', 'AVD_D', 'UNDEFINED'] = Field(..., alias='type', description='source type of the database\n\nAllowed values for this property are: "ADW_S", "ATP_S", "ADW_D", "ATP_D", "EXTERNAL_PDB", "EXTERNAL_NONCDB", "COMANAGED_VM_CDB", "COMANAGED_VM_PDB", "COMANAGED_VM_NONCDB", "COMANAGED_BM_CDB", "COMANAGED_BM_PDB", "COMANAGED_BM_NONCDB", "COMANAGED_EXACS_CDB", "COMANAGED_EXACS_PDB", "COMANAGED_EXACS_NONCDB", "LH_S", "APEX_S", "AJD_S", "AVD_S", "LH_D", "APEX_D", "AJD_D", "AVD_D", "UNDEFINED"') + + +class CreateBasicConfigurationItemDetails(OpsiBaseModel): + """Basic configuration item details for OPSI configuration creation.""" + + config_item_type: Literal['BASIC'] = Field(..., alias='configItemType', description='Gets the config_item_type of this CreateConfigurationItemDetails.\nType of configuration item.\n\nAllowed values for this property are: "BASIC"') + name: str | None = Field(None, alias='name', description='Name of configuration item.') + value: str | None = Field(None, alias='value', description='Value of configuration item.') + + +class CreateChargebackPlanDetails(OpsiRequestModel): + """The details used to create a new Ops Insights chargeback plan.""" + + entity_source: Literal['CHARGEBACK_EXADATA', 'CHARGEBACK_COMPUTE'] = Field(..., alias='entitySource', description='Source of the chargeback plan.\n\nAllowed values for this property are: "CHARGEBACK_EXADATA", "CHARGEBACK_COMPUTE"') + compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') + plan_name: str = Field(..., alias='planName', description='Name for the OPSI Chargeback plan.') + plan_description: str | None = Field(None, alias='planDescription', description='Description of OPSI Chargeback Plan.') + plan_type: str = Field(..., alias='planType', description='Chargeback Plan type of the chargeback entity. For an Exadata it can be WEIGHTED_ALLOCATION, EQUAL_ALLOCATION, UNUSED_ALLOCATION.') + plan_custom_items: list[CreatePlanCustomItemDetails] | None = Field(None, alias='planCustomItems', description='List of chargeback plan customizations.') + + +class CreateChargebackPlanExadataDetails(OpsiBaseModel): + """The information about the exadata and chargeback plan.""" + + entity_source: Literal['CHARGEBACK_EXADATA', 'CHARGEBACK_COMPUTE'] = Field(..., alias='entitySource', description='Gets the entity_source of this CreateChargebackPlanDetails.\nSource of the chargeback plan.\n\nAllowed values for this property are: "CHARGEBACK_EXADATA", "CHARGEBACK_COMPUTE"') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this CreateChargebackPlanDetails. The OCID of the compartment.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CreateChargebackPlanDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CreateChargebackPlanDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + plan_name: str = Field(..., alias='planName', description='Gets the plan_name of this CreateChargebackPlanDetails.\nName for the OPSI Chargeback plan.') + plan_description: str | None = Field(None, alias='planDescription', description='Gets the plan_description of this CreateChargebackPlanDetails.\nDescription of OPSI Chargeback Plan.') + plan_type: str = Field(..., alias='planType', description='Gets the plan_type of this CreateChargebackPlanDetails.\nChargeback Plan type of the chargeback entity. For an Exadata it can be WEIGHTED_ALLOCATION, EQUAL_ALLOCATION, UNUSED_ALLOCATION.') + plan_custom_items: list[CreatePlanCustomItemDetails] | None = Field(None, alias='planCustomItems', description='Gets the plan_custom_items of this CreateChargebackPlanDetails.\nList of chargeback plan customizations.') + + +class CreateChargebackPlanReportDetails(OpsiRequestModel): + """The details used to create a new Ops Insights chargeback plan report.""" + + report_name: str = Field(..., alias='reportName', description='The chargeback plan report name.') + report_properties: ReportPropertyDetails = Field(..., alias='reportProperties', description='The report_properties field of CreateChargebackPlanReportDetails.') + + +class CreateConfigurationItemDetails(OpsiBaseModel): + """Configuration item details for OPSI configuration creation.""" + + config_item_type: Literal['BASIC'] = Field(..., alias='configItemType', description='Type of configuration item.\n\nAllowed values for this property are: "BASIC"') + + +class CreateDatabaseInsightDetails(OpsiRequestModel): + """The information about database to be analyzed.""" + + entity_source: Literal['EM_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Source of the database entity.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') + compartment_id: str = Field(..., alias='compartmentId', description='Compartment Identifier of database') + + +class CreateEmManagedExternalDatabaseInsightDetails(OpsiBaseModel): + """The information about database to be analyzed.""" + + entity_source: Literal['EM_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Gets the entity_source of this CreateDatabaseInsightDetails.\nSource of the database entity.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this CreateDatabaseInsightDetails.\nCompartment Identifier of database') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CreateDatabaseInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CreateDatabaseInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + enterprise_manager_identifier: str = Field(..., alias='enterpriseManagerIdentifier', description='Enterprise Manager Unique Identifier') + enterprise_manager_bridge_id: str = Field(..., alias='enterpriseManagerBridgeId', description='OPSI Enterprise Manager Bridge OCID') + enterprise_manager_entity_identifier: str = Field(..., alias='enterpriseManagerEntityIdentifier', description='Enterprise Manager Entity Unique Identifier') + exadata_insight_id: str | None = Field(None, alias='exadataInsightId', description='The OCID of the Exadata insight.') + + +class CreateEmManagedExternalExadataInsightDetails(OpsiBaseModel): + """The information about the Exadata system to be analyzed. If memberEntityDetails is not specified, the the Enterprise Manager entity (e.g. databases and hosts) associated with an Exadata system will be placed in the same compartment as the Exadata system.""" + + entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA'] = Field(..., alias='entitySource', description='Gets the entity_source of this CreateExadataInsightDetails.\nSource of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA"') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this CreateExadataInsightDetails.\nCompartment Identifier of Exadata insight') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CreateExadataInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CreateExadataInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + enterprise_manager_identifier: str = Field(..., alias='enterpriseManagerIdentifier', description='Enterprise Manager Unique Identifier') + enterprise_manager_bridge_id: str = Field(..., alias='enterpriseManagerBridgeId', description='OPSI Enterprise Manager Bridge OCID') + enterprise_manager_entity_identifier: str = Field(..., alias='enterpriseManagerEntityIdentifier', description='Enterprise Manager Entity Unique Identifier') + member_entity_details: list[CreateEmManagedExternalExadataMemberEntityDetails] | None = Field(None, alias='memberEntityDetails', description='The member_entity_details field of CreateEmManagedExternalExadataInsightDetails.') + is_auto_sync_enabled: bool | None = Field(None, alias='isAutoSyncEnabled', description='Set to true to enable automatic enablement and disablement of related targets from Enterprise Manager. New resources (e.g. Database Insights) will be placed in the same compartment as the related Exadata Insight.') + + +class CreateEmManagedExternalExadataMemberEntityDetails(OpsiBaseModel): + """Compartment OCID of the Enterprise Manager member entity (e.g. databases and hosts) associated with an Exadata system.""" + + enterprise_manager_entity_identifier: str = Field(..., alias='enterpriseManagerEntityIdentifier', description='Enterprise Manager Entity Unique Identifier') + compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') + + +class CreateEmManagedExternalHostInsightDetails(OpsiBaseModel): + """The information about the EM-managed external host to be analyzed.""" + + entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST'] = Field(..., alias='entitySource', description='Gets the entity_source of this CreateHostInsightDetails.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST"') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this CreateHostInsightDetails.\nCompartment Identifier of host') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CreateHostInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CreateHostInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + enterprise_manager_identifier: str = Field(..., alias='enterpriseManagerIdentifier', description='Enterprise Manager Unique Identifier') + enterprise_manager_bridge_id: str = Field(..., alias='enterpriseManagerBridgeId', description='OPSI Enterprise Manager Bridge OCID') + enterprise_manager_entity_identifier: str = Field(..., alias='enterpriseManagerEntityIdentifier', description='Enterprise Manager Entity Unique Identifier') + exadata_insight_id: str | None = Field(None, alias='exadataInsightId', description='The OCID of the Exadata insight.') + + +class CreateEnterpriseManagerBridgeDetails(OpsiRequestModel): + """The information about a Enterprise Manager bridge resource to be created.""" + + compartment_id: str = Field(..., alias='compartmentId', description='Compartment identifier of the Enterprise Manager bridge') + display_name: str = Field(..., alias='displayName', description='User-friedly name of Enterprise Manager Bridge that does not have to be unique.') + description: str | None = Field(None, alias='description', description='Description of Enterprise Manager Bridge') + object_storage_bucket_name: str = Field(..., alias='objectStorageBucketName', description='Object Storage Bucket Name') + + +class CreateExadataInsightDetails(OpsiRequestModel): + """The information about the Exadata system to be analyzed.""" + + entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA'] = Field(..., alias='entitySource', description='Source of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA"') + compartment_id: str = Field(..., alias='compartmentId', description='Compartment Identifier of Exadata insight') + + +class CreateExternalMysqlDatabaseInsightDetails(OpsiBaseModel): + """MySQL support within the OCI Ops Insights service has been deprecated as of January 29, 2026. The information about database to be analyzed.""" + + entity_source: Literal['EM_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Gets the entity_source of this CreateDatabaseInsightDetails.\nSource of the database entity.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this CreateDatabaseInsightDetails.\nCompartment Identifier of database') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CreateDatabaseInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CreateDatabaseInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') + database_connector_id: str = Field(..., alias='databaseConnectorId', description='The DBM owned database connector OCID mapping to the database credentials and connection details.') + + +class CreateHostInsightDetails(OpsiRequestModel): + """The information about the host to be analyzed.""" + + entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST'] = Field(..., alias='entitySource', description='Source of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST"') + compartment_id: str = Field(..., alias='compartmentId', description='Compartment Identifier of host') + + +class CreateMacsManagedAutonomousDatabaseInsightDetails(OpsiBaseModel): + """The information about database to be analyzed.""" + + entity_source: Literal['EM_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Gets the entity_source of this CreateDatabaseInsightDetails.\nSource of the database entity.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this CreateDatabaseInsightDetails.\nCompartment Identifier of database') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CreateDatabaseInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CreateDatabaseInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') + management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') + connection_details: ConnectionDetails = Field(..., alias='connectionDetails', description='The connection_details field of CreateMacsManagedAutonomousDatabaseInsightDetails.') + connection_credential_details: CredentialDetails = Field(..., alias='connectionCredentialDetails', description='The connection_credential_details field of CreateMacsManagedAutonomousDatabaseInsightDetails.') + database_resource_type: str = Field(..., alias='databaseResourceType', description='OCI database resource type') + deployment_type: Literal['EXACC'] = Field(..., alias='deploymentType', description='Database Deployment Type\n\nAllowed values for this property are: "EXACC"') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + + +class CreateMacsManagedCloudDatabaseInsightDetails(OpsiBaseModel): + """The information about database to be analyzed.""" + + entity_source: Literal['EM_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Gets the entity_source of this CreateDatabaseInsightDetails.\nSource of the database entity.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this CreateDatabaseInsightDetails.\nCompartment Identifier of database') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CreateDatabaseInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CreateDatabaseInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') + management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') + connection_details: ConnectionDetails = Field(..., alias='connectionDetails', description='The connection_details field of CreateMacsManagedCloudDatabaseInsightDetails.') + connection_credential_details: CredentialDetails = Field(..., alias='connectionCredentialDetails', description='The connection_credential_details field of CreateMacsManagedCloudDatabaseInsightDetails.') + database_resource_type: str = Field(..., alias='databaseResourceType', description='OCI database resource type') + deployment_type: Literal['VIRTUAL_MACHINE', 'BARE_METAL', 'EXACC', 'EXACS'] = Field(..., alias='deploymentType', description='Database Deployment Type (EXACS will be supported in the future)\n\nAllowed values for this property are: "VIRTUAL_MACHINE", "BARE_METAL", "EXACC", "EXACS"') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + + +class CreateMacsManagedCloudExadataClusterDetails(OpsiBaseModel): + """The information of the VM Cluster which contains databases.""" + + vm_cluster_type: Literal['vmCluster', 'autonomousVmCluster'] | None = Field(None, alias='vmClusterType', description='Exadata VMCluster type\n\nAllowed values for this property are: "vmCluster", "autonomousVmCluster"') + vmcluster_id: str = Field(..., alias='vmclusterId', description='The OCID of the VM Cluster.') + compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') + + +class CreateMacsManagedCloudExadataInsightDetails(OpsiBaseModel): + """The information about the Exadata system to be analyzed.""" + + entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA'] = Field(..., alias='entitySource', description='Gets the entity_source of this CreateExadataInsightDetails.\nSource of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA"') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this CreateExadataInsightDetails.\nCompartment Identifier of Exadata insight') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CreateExadataInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CreateExadataInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + exadata_infra_id: str = Field(..., alias='exadataInfraId', description='The OCID of the Exadata Infrastructure.') + member_vm_cluster_details: list[CreateMacsManagedCloudExadataVmclusterDetails] | None = Field(None, alias='memberVmClusterDetails', description='The member_vm_cluster_details field of CreateMacsManagedCloudExadataInsightDetails.') + + +class CreateMacsManagedCloudExadataVmclusterDetails(OpsiBaseModel): + """The information of the VM Cluster which contains databases.""" + + vm_cluster_type: Literal['vmCluster', 'autonomousVmCluster'] | None = Field(None, alias='vmClusterType', description='Gets the vm_cluster_type of this CreateMacsManagedCloudExadataClusterDetails.\nExadata VMCluster type\n\nAllowed values for this property are: "vmCluster", "autonomousVmCluster"') + vmcluster_id: str = Field(..., alias='vmclusterId', description='Gets the vmcluster_id of this CreateMacsManagedCloudExadataClusterDetails. The OCID of the VM Cluster.') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this CreateMacsManagedCloudExadataClusterDetails. The OCID of the compartment.') + member_database_details: list[CreateMacsManagedCloudDatabaseInsightDetails] | None = Field(None, alias='memberDatabaseDetails', description='The databases that belong to the VM Cluster') + member_autonomous_details: list[CreateMacsManagedAutonomousDatabaseInsightDetails] | None = Field(None, alias='memberAutonomousDetails', description='The autonomous databases that belong to the Autonmous VM Cluster') + + +class CreateMacsManagedCloudHostInsightDetails(OpsiBaseModel): + """The information about the Compute Instance host to be analyzed.""" + + entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST'] = Field(..., alias='entitySource', description='Gets the entity_source of this CreateHostInsightDetails.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST"') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this CreateHostInsightDetails.\nCompartment Identifier of host') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CreateHostInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CreateHostInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + compute_id: str = Field(..., alias='computeId', description='The OCID of the Compute Instance.') + + +class CreateMacsManagedExternalHostInsightDetails(OpsiBaseModel): + """The information about the MACS-managed external host to be analyzed.""" + + entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST'] = Field(..., alias='entitySource', description='Gets the entity_source of this CreateHostInsightDetails.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST"') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this CreateHostInsightDetails.\nCompartment Identifier of host') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CreateHostInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CreateHostInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') + + +class CreateMdsMySqlDatabaseInsightDetails(OpsiBaseModel): + """MySQL support within the OCI Ops Insights service has been deprecated as of January 29, 2026. The information about database to be analyzed.""" + + entity_source: Literal['EM_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Gets the entity_source of this CreateDatabaseInsightDetails.\nSource of the database entity.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this CreateDatabaseInsightDetails.\nCompartment Identifier of database') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CreateDatabaseInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CreateDatabaseInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') + + +class CreateNewsReportDetails(OpsiRequestModel): + """The information about the news report to be created.""" + + name: str = Field(..., alias='name', description='The news report name.') + news_frequency: Literal['WEEKLY', 'DAILY', 'HOURLY'] = Field(..., alias='newsFrequency', description='News report frequency.\n\nAllowed values for this property are: "WEEKLY", "DAILY", "HOURLY"') + description: str = Field(..., alias='description', description='The description of the news report.') + ons_topic_id: str = Field(..., alias='onsTopicId', description='The OCID of the ONS topic.') + compartment_id: str = Field(..., alias='compartmentId', description='Compartment Identifier where the news report will be created.') + content_types: NewsContentTypes = Field(..., alias='contentTypes', description='The content_types field of CreateNewsReportDetails.') + locale: Literal['EN'] = Field(..., alias='locale', description='Language of the news report.\n\nAllowed values for this property are: "EN"') + status: Literal['DISABLED', 'ENABLED', 'TERMINATED'] | None = Field(None, alias='status', description='Defines if the news report will be enabled or disabled.\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED"') + day_of_week: Literal['MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SUNDAY'] | None = Field(None, alias='dayOfWeek', description='Day of the week in which the news report will be sent if the frequency is set to WEEKLY.\n\nAllowed values for this property are: "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"') + are_child_compartments_included: bool | None = Field(None, alias='areChildCompartmentsIncluded', description='A flag to consider the resources within a given compartment and all sub-compartments.') + + +class CreateOperationsInsightsPrivateEndpointDetails(OpsiRequestModel): + """The details used to create a new Operation Insights private endpoint.""" + + display_name: str = Field(..., alias='displayName', description='The display name for the private endpoint. It is changeable.') + compartment_id: str = Field(..., alias='compartmentId', description='The compartment OCID of the Private service accessed database.') + vcn_id: str = Field(..., alias='vcnId', description='The VCN OCID of the Private service accessed database.') + subnet_id: str = Field(..., alias='subnetId', description='The Subnet OCID of the Private service accessed database.') + is_used_for_rac_dbs: bool = Field(..., alias='isUsedForRacDbs', description='This flag was previously used to create a private endpoint with scan proxy. Setting this to true will now create a private endpoint with a\nDNS proxy causing `isProxyEnabled` flag to be true; this is used exclusively for full feature support for dedicated Autonomous Databases.') + description: str | None = Field(None, alias='description', description='The description of the private endpoint.') + nsg_ids: list[str] | None = Field(None, alias='nsgIds', description='The OCID of the network security groups that the private endpoint belongs to.') + + +class CreateOperationsInsightsWarehouseDetails(OpsiRequestModel): + """The information about a Operations Insights Warehouse resource to be created. Input compartmentId MUST be the root compartment.""" + + compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') + display_name: str = Field(..., alias='displayName', description='User-friedly name of Ops Insights Warehouse that does not have to be unique.') + cpu_allocated: float = Field(..., alias='cpuAllocated', description='Number of CPUs allocated to OPSI Warehouse ADW.') + compute_model: str | None = Field(None, alias='computeModel', description='The compute model for the OPSI warehouse ADW (OCPU or ECPU)') + storage_allocated_in_gbs: float | None = Field(None, alias='storageAllocatedInGBs', description='Storage allocated to OPSI Warehouse ADW.') + + +class CreateOperationsInsightsWarehouseUserDetails(OpsiRequestModel): + """The information about a Operations Insights Warehouse User to be created. Input compartmentId MUST be the root compartment.""" + + operations_insights_warehouse_id: str = Field(..., alias='operationsInsightsWarehouseId', description='OPSI Warehouse OCID') + compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') + name: str = Field(..., alias='name', description='Username for schema which would have access to AWR Data, Enterprise Manager Data and Ops Insights OPSI Hub.') + connection_password: str = Field(..., alias='connectionPassword', description='User provided connection password for the AWR Data, Enterprise Manager Data and Ops Insights OPSI Hub.') + is_awr_data_access: bool = Field(..., alias='isAwrDataAccess', description='Indicate whether user has access to AWR data.') + is_em_data_access: bool | None = Field(None, alias='isEmDataAccess', description='Indicate whether user has access to EM data.') + is_opsi_data_access: bool | None = Field(None, alias='isOpsiDataAccess', description='Indicate whether user has access to OPSI data.') + + +class CreateOpsiConfigurationDetails(OpsiRequestModel): + """Information about OPSI configuration to be created.""" + + compartment_id: str | None = Field(None, alias='compartmentId', description='The OCID of the compartment.') + opsi_config_type: Literal['UX_CONFIGURATION'] = Field(..., alias='opsiConfigType', description='OPSI configuration type.\n\nAllowed values for this property are: "UX_CONFIGURATION"') + display_name: str | None = Field(None, alias='displayName', description='User-friendly display name for the OPSI configuration. The name does not have to be unique.') + description: str | None = Field(None, alias='description', description='Description of OPSI configuration.') + config_items: list[CreateConfigurationItemDetails] | None = Field(None, alias='configItems', description='Array of configuration items with custom values. All and only configuration items requiring custom values should be part of this array.') + + +class CreateOpsiUxConfigurationDetails(OpsiBaseModel): + """Information about OPSI UX configuration to be created.""" + + compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this CreateOpsiConfigurationDetails. The OCID of the compartment.') + opsi_config_type: Literal['UX_CONFIGURATION'] = Field(..., alias='opsiConfigType', description='Gets the opsi_config_type of this CreateOpsiConfigurationDetails.\nOPSI configuration type.\n\nAllowed values for this property are: "UX_CONFIGURATION"') + display_name: str | None = Field(None, alias='displayName', description='Gets the display_name of this CreateOpsiConfigurationDetails.\nUser-friendly display name for the OPSI configuration. The name does not have to be unique.') + description: str | None = Field(None, alias='description', description='Gets the description of this CreateOpsiConfigurationDetails.\nDescription of OPSI configuration.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CreateOpsiConfigurationDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CreateOpsiConfigurationDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CreateOpsiConfigurationDetails.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + config_items: list[CreateConfigurationItemDetails] | None = Field(None, alias='configItems', description='Gets the config_items of this CreateOpsiConfigurationDetails.\nArray of configuration items with custom values. All and only configuration items requiring custom values should be part of this array.') + + +class CreatePeComanagedDatabaseInsightDetails(OpsiBaseModel): + """The information about database to be analyzed. Either an opsiPrivateEndpointId or dbmPrivateEndpointId must be specified. If the dbmPrivateEndpointId is specified, a new Operations Insights private endpoint will be created.""" + + entity_source: Literal['EM_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Gets the entity_source of this CreateDatabaseInsightDetails.\nSource of the database entity.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this CreateDatabaseInsightDetails.\nCompartment Identifier of database') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CreateDatabaseInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CreateDatabaseInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') + database_resource_type: str = Field(..., alias='databaseResourceType', description='OCI database resource type') + opsi_private_endpoint_id: str | None = Field(None, alias='opsiPrivateEndpointId', description='The OCID of the OPSI private endpoint.') + dbm_private_endpoint_id: str | None = Field(None, alias='dbmPrivateEndpointId', description='The OCID of the Database Management private endpoint.') + service_name: str = Field(..., alias='serviceName', description='Database service name used for connection requests.') + credential_details: CredentialDetails = Field(..., alias='credentialDetails', description='The credential_details field of CreatePeComanagedDatabaseInsightDetails.') + connection_details: PeComanagedDatabaseConnectionDetails | None = Field(None, alias='connectionDetails', description='The connection_details field of CreatePeComanagedDatabaseInsightDetails.') + deployment_type: Literal['VIRTUAL_MACHINE', 'BARE_METAL', 'EXACS'] = Field(..., alias='deploymentType', description='Database Deployment Type\n\nAllowed values for this property are: "VIRTUAL_MACHINE", "BARE_METAL", "EXACS"') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + + +class CreatePeComanagedExadataInsightDetails(OpsiBaseModel): + """The information about the Exadata system to be analyzed.""" + + entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA'] = Field(..., alias='entitySource', description='Gets the entity_source of this CreateExadataInsightDetails.\nSource of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA"') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this CreateExadataInsightDetails.\nCompartment Identifier of Exadata insight') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CreateExadataInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CreateExadataInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + exadata_infra_id: str = Field(..., alias='exadataInfraId', description='The OCID of the Exadata Infrastructure.') + member_vm_cluster_details: list[CreatePeComanagedExadataVmclusterDetails] | None = Field(None, alias='memberVmClusterDetails', description='The member_vm_cluster_details field of CreatePeComanagedExadataInsightDetails.') + + +class CreatePeComanagedExadataVmclusterDetails(OpsiBaseModel): + """The information of the VM Cluster which contains databases. Either an opsiPrivateEndpointId or dbmPrivateEndpointId must be specified. If the dbmPrivateEndpointId is specified, a new Operations Insights private endpoint will be created.""" + + vmcluster_id: str = Field(..., alias='vmclusterId', description='The OCID of the VM Cluster.') + opsi_private_endpoint_id: str | None = Field(None, alias='opsiPrivateEndpointId', description='The OCID of the OPSI private endpoint.') + dbm_private_endpoint_id: str | None = Field(None, alias='dbmPrivateEndpointId', description='The OCID of the Database Management private endpoint.') + member_database_details: list[CreatePeComanagedDatabaseInsightDetails] | None = Field(None, alias='memberDatabaseDetails', description='The databases that belong to the VM Cluster') + vm_cluster_type: Literal['vmCluster', 'autonomousVmCluster'] | None = Field(None, alias='vmClusterType', description='Exadata VMCluster type\n\nAllowed values for this property are: "vmCluster", "autonomousVmCluster"') + member_autonomous_details: list[CreateAutonomousDatabaseInsightDetails] | None = Field(None, alias='memberAutonomousDetails', description='The autonomous databases that belong to the Autonomous VM Cluster') + compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') + + +class CreatePlanCustomItemDetails(OpsiBaseModel): + """Custom configuration item details for a chargeback plan. Example items for Exadata Insights Chargeback are statistic(default value AVG), percentile, infrastructureCost, infrastructurePlanType, additionalServerCost and additionalServerPlanType.""" + + name: str | None = Field(None, alias='name', description='Name of chargeback plan customization item. Example items for Exadata Insights Chargeback are statistic, percentile, infrastructureCost, additionalServerCost etc.') + value: str | None = Field(None, alias='value', description='Value of chargeback plan customization item.') + is_customizable: bool | None = Field(None, alias='isCustomizable', description='Indicates whether the chargeback plan customization item can be customized.') + + +class CredentialByIam(OpsiBaseModel): + """IAM Credential Details to connect to the database.""" + + credential_source_name: str | None = Field(None, alias='credentialSourceName', description='Gets the credential_source_name of this CredentialDetails.\nCredential source name that had been added in Management Agent wallet. This value is only required when Credential set by CREDENTIALS_BY_SOURCE and is optional properties for ther others.') + credential_type: Literal['CREDENTIALS_BY_SOURCE', 'CREDENTIALS_BY_VAULT', 'CREDENTIALS_BY_IAM', 'CREDENTIALS_BY_NAMED_CREDS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='credentialType', description='Gets the credential_type of this CredentialDetails.\nCREDENTIALS_BY_SOURCE is supplied via the External Database Service. CREDENTIALS_BY_VAULT is supplied by secret service to connection PE_COMANAGED_DATABASE and ADB as well. CREDENTIALS_BY_IAM is used db-token to connect only for Autonomous Database.\n\nAllowed values for this property are: "CREDENTIALS_BY_SOURCE", "CREDENTIALS_BY_VAULT", "CREDENTIALS_BY_IAM", "CREDENTIALS_BY_NAMED_CREDS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class CredentialByNamedCredentials(OpsiBaseModel): + """Credentials by named credentials stored in management agent to connect database.""" + + credential_source_name: str | None = Field(None, alias='credentialSourceName', description='Gets the credential_source_name of this CredentialDetails.\nCredential source name that had been added in Management Agent wallet. This value is only required when Credential set by CREDENTIALS_BY_SOURCE and is optional properties for ther others.') + credential_type: Literal['CREDENTIALS_BY_SOURCE', 'CREDENTIALS_BY_VAULT', 'CREDENTIALS_BY_IAM', 'CREDENTIALS_BY_NAMED_CREDS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='credentialType', description='Gets the credential_type of this CredentialDetails.\nCREDENTIALS_BY_SOURCE is supplied via the External Database Service. CREDENTIALS_BY_VAULT is supplied by secret service to connection PE_COMANAGED_DATABASE and ADB as well. CREDENTIALS_BY_IAM is used db-token to connect only for Autonomous Database.\n\nAllowed values for this property are: "CREDENTIALS_BY_SOURCE", "CREDENTIALS_BY_VAULT", "CREDENTIALS_BY_IAM", "CREDENTIALS_BY_NAMED_CREDS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + named_credential_id: str | None = Field(None, alias='namedCredentialId', description='The credential OCID stored in management agent.') + + +class CredentialByVault(OpsiBaseModel): + """Vault Credential Details to connect to the database.""" + + credential_source_name: str | None = Field(None, alias='credentialSourceName', description='Gets the credential_source_name of this CredentialDetails.\nCredential source name that had been added in Management Agent wallet. This value is only required when Credential set by CREDENTIALS_BY_SOURCE and is optional properties for ther others.') + credential_type: Literal['CREDENTIALS_BY_SOURCE', 'CREDENTIALS_BY_VAULT', 'CREDENTIALS_BY_IAM', 'CREDENTIALS_BY_NAMED_CREDS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='credentialType', description='Gets the credential_type of this CredentialDetails.\nCREDENTIALS_BY_SOURCE is supplied via the External Database Service. CREDENTIALS_BY_VAULT is supplied by secret service to connection PE_COMANAGED_DATABASE and ADB as well. CREDENTIALS_BY_IAM is used db-token to connect only for Autonomous Database.\n\nAllowed values for this property are: "CREDENTIALS_BY_SOURCE", "CREDENTIALS_BY_VAULT", "CREDENTIALS_BY_IAM", "CREDENTIALS_BY_NAMED_CREDS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + user_name: str | None = Field(None, alias='userName', description='database user name.') + password_secret_id: str | None = Field(None, alias='passwordSecretId', description='The secret OCID mapping to the database credentials.') + wallet_secret_id: str | None = Field(None, alias='walletSecretId', description='The OCID of the Secret where the database keystore contents are stored. This is used for TCPS support in BM/VM/ExaCS cases.') + role: Literal['NORMAL', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='role', description='database user role.\n\nAllowed values for this property are: "NORMAL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class CredentialDetails(OpsiBaseModel): + """User credential details to connect to the database.""" + + credential_source_name: str | None = Field(None, alias='credentialSourceName', description='Credential source name that had been added in Management Agent wallet. This value is only required when Credential set by CREDENTIALS_BY_SOURCE and is optional properties for ther others.') + credential_type: Literal['CREDENTIALS_BY_SOURCE', 'CREDENTIALS_BY_VAULT', 'CREDENTIALS_BY_IAM', 'CREDENTIALS_BY_NAMED_CREDS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='credentialType', description='CREDENTIALS_BY_SOURCE is supplied via the External Database Service. CREDENTIALS_BY_VAULT is supplied by secret service to connection PE_COMANAGED_DATABASE and ADB as well. CREDENTIALS_BY_IAM is used db-token to connect only for Autonomous Database.\n\nAllowed values for this property are: "CREDENTIALS_BY_SOURCE", "CREDENTIALS_BY_VAULT", "CREDENTIALS_BY_IAM", "CREDENTIALS_BY_NAMED_CREDS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class CredentialsBySource(OpsiBaseModel): + """Credential Source to connect to the database.""" + + credential_source_name: str | None = Field(None, alias='credentialSourceName', description='Gets the credential_source_name of this CredentialDetails.\nCredential source name that had been added in Management Agent wallet. This value is only required when Credential set by CREDENTIALS_BY_SOURCE and is optional properties for ther others.') + credential_type: Literal['CREDENTIALS_BY_SOURCE', 'CREDENTIALS_BY_VAULT', 'CREDENTIALS_BY_IAM', 'CREDENTIALS_BY_NAMED_CREDS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='credentialType', description='Gets the credential_type of this CredentialDetails.\nCREDENTIALS_BY_SOURCE is supplied via the External Database Service. CREDENTIALS_BY_VAULT is supplied by secret service to connection PE_COMANAGED_DATABASE and ADB as well. CREDENTIALS_BY_IAM is used db-token to connect only for Autonomous Database.\n\nAllowed values for this property are: "CREDENTIALS_BY_SOURCE", "CREDENTIALS_BY_VAULT", "CREDENTIALS_BY_IAM", "CREDENTIALS_BY_NAMED_CREDS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class DBConnectionStatus(OpsiBaseModel): + """Database connection status.""" + + metric_name: Literal['DB_EXTERNAL_PROPERTIES', 'DB_EXTERNAL_INSTANCE', 'DB_OS_CONFIG_INSTANCE', 'DB_PARAMETERS', 'DB_CONNECTION_STATUS', 'HOST_RESOURCE_ALLOCATION', 'ASM_ENTITY', 'EXADATA_CELL_CONFIG'] = Field(..., alias='metricName', description='Gets the metric_name of this DatabaseConfigurationMetricGroup.\nName of the metric group.\n\nAllowed values for this property are: "DB_EXTERNAL_PROPERTIES", "DB_EXTERNAL_INSTANCE", "DB_OS_CONFIG_INSTANCE", "DB_PARAMETERS", "DB_CONNECTION_STATUS", "HOST_RESOURCE_ALLOCATION", "ASM_ENTITY", "EXADATA_CELL_CONFIG"') + time_collected: datetime | None = Field(None, alias='timeCollected', description='Gets the time_collected of this DatabaseConfigurationMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') + + +class DBExternalInstance(OpsiBaseModel): + """Configuration parameters defined for external databases instance level.""" + + metric_name: Literal['DB_EXTERNAL_PROPERTIES', 'DB_EXTERNAL_INSTANCE', 'DB_OS_CONFIG_INSTANCE', 'DB_PARAMETERS', 'DB_CONNECTION_STATUS', 'HOST_RESOURCE_ALLOCATION', 'ASM_ENTITY', 'EXADATA_CELL_CONFIG'] = Field(..., alias='metricName', description='Gets the metric_name of this DatabaseConfigurationMetricGroup.\nName of the metric group.\n\nAllowed values for this property are: "DB_EXTERNAL_PROPERTIES", "DB_EXTERNAL_INSTANCE", "DB_OS_CONFIG_INSTANCE", "DB_PARAMETERS", "DB_CONNECTION_STATUS", "HOST_RESOURCE_ALLOCATION", "ASM_ENTITY", "EXADATA_CELL_CONFIG"') + time_collected: datetime | None = Field(None, alias='timeCollected', description='Gets the time_collected of this DatabaseConfigurationMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') + instance_name: str = Field(..., alias='instanceName', description='Name of the database instance.') + host_name: str = Field(..., alias='hostName', description='Host name of the database instance.') + cpu_count: int | None = Field(None, alias='cpuCount', description='Total number of CPUs allocated for the host.', ge=0) + host_memory_capacity: float | None = Field(None, alias='hostMemoryCapacity', description='Total amount of usable Physical RAM Memory available in gigabytes.') + version: str | None = Field(None, alias='version', description='Database version.') + parallel: str | None = Field(None, alias='parallel', description='Indicates whether the instance is mounted in cluster database mode (YES) or not (NO).') + instance_role: str | None = Field(None, alias='instanceRole', description='Role (permissions) of the database instance.') + logins: str | None = Field(None, alias='logins', description='Indicates if logins are allowed or restricted.') + database_status: str | None = Field(None, alias='databaseStatus', description='Status of the database.') + status: str | None = Field(None, alias='status', description='Status of the instance.') + edition: str | None = Field(None, alias='edition', description='The edition of the database.') + startup_time: datetime | None = Field(None, alias='startupTime', description='Start up time of the database instance.') + + +class DBExternalProperties(OpsiBaseModel): + """Configuration parameters defined for external databases.""" + + metric_name: Literal['DB_EXTERNAL_PROPERTIES', 'DB_EXTERNAL_INSTANCE', 'DB_OS_CONFIG_INSTANCE', 'DB_PARAMETERS', 'DB_CONNECTION_STATUS', 'HOST_RESOURCE_ALLOCATION', 'ASM_ENTITY', 'EXADATA_CELL_CONFIG'] = Field(..., alias='metricName', description='Gets the metric_name of this DatabaseConfigurationMetricGroup.\nName of the metric group.\n\nAllowed values for this property are: "DB_EXTERNAL_PROPERTIES", "DB_EXTERNAL_INSTANCE", "DB_OS_CONFIG_INSTANCE", "DB_PARAMETERS", "DB_CONNECTION_STATUS", "HOST_RESOURCE_ALLOCATION", "ASM_ENTITY", "EXADATA_CELL_CONFIG"') + time_collected: datetime | None = Field(None, alias='timeCollected', description='Gets the time_collected of this DatabaseConfigurationMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') + name: str | None = Field(None, alias='name', description='Name of the database.') + log_mode: str | None = Field(None, alias='logMode', description='Archive log mode.') + cdb: str | None = Field(None, alias='cdb', description="Indicates if it is a CDB or not. This would be 'yes' or 'no'.") + open_mode: str | None = Field(None, alias='openMode', description='Open mode information.') + database_role: str | None = Field(None, alias='databaseRole', description='Current role of the database.') + guard_status: str | None = Field(None, alias='guardStatus', description='Data protection policy.') + platform_name: str | None = Field(None, alias='platformName', description='Platform name of the database, OS with architecture.') + control_file_type: str | None = Field(None, alias='controlFileType', description='Type of control file.') + switchover_status: str | None = Field(None, alias='switchoverStatus', description='Indicates whether switchover is allowed.') + created: datetime | None = Field(None, alias='created', description='Creation time.') + + +class DBOSConfigInstance(OpsiBaseModel): + """Configuration parameters defined for external databases instance level.""" + + metric_name: Literal['DB_EXTERNAL_PROPERTIES', 'DB_EXTERNAL_INSTANCE', 'DB_OS_CONFIG_INSTANCE', 'DB_PARAMETERS', 'DB_CONNECTION_STATUS', 'HOST_RESOURCE_ALLOCATION', 'ASM_ENTITY', 'EXADATA_CELL_CONFIG'] = Field(..., alias='metricName', description='Gets the metric_name of this DatabaseConfigurationMetricGroup.\nName of the metric group.\n\nAllowed values for this property are: "DB_EXTERNAL_PROPERTIES", "DB_EXTERNAL_INSTANCE", "DB_OS_CONFIG_INSTANCE", "DB_PARAMETERS", "DB_CONNECTION_STATUS", "HOST_RESOURCE_ALLOCATION", "ASM_ENTITY", "EXADATA_CELL_CONFIG"') + time_collected: datetime | None = Field(None, alias='timeCollected', description='Gets the time_collected of this DatabaseConfigurationMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') + instance_name: str = Field(..., alias='instanceName', description='Name of the database instance.') + host_name: str = Field(..., alias='hostName', description='Host name of the database instance.') + num_cp_us: int | None = Field(None, alias='numCPUs', description='Total number of CPUs available.') + num_cpu_cores: int | None = Field(None, alias='numCPUCores', description='Number of CPU cores available (includes subcores of multicore CPUs as well as single-core CPUs).') + num_cpu_sockets: int | None = Field(None, alias='numCPUSockets', description='Number of CPU Sockets available.') + physical_memory_bytes: float | None = Field(None, alias='physicalMemoryBytes', description='Total number of bytes of physical memory.') + + +class DBParameters(OpsiBaseModel): + """Initialization parameters for a database.""" + + metric_name: Literal['DB_EXTERNAL_PROPERTIES', 'DB_EXTERNAL_INSTANCE', 'DB_OS_CONFIG_INSTANCE', 'DB_PARAMETERS', 'DB_CONNECTION_STATUS', 'HOST_RESOURCE_ALLOCATION', 'ASM_ENTITY', 'EXADATA_CELL_CONFIG'] = Field(..., alias='metricName', description='Gets the metric_name of this DatabaseConfigurationMetricGroup.\nName of the metric group.\n\nAllowed values for this property are: "DB_EXTERNAL_PROPERTIES", "DB_EXTERNAL_INSTANCE", "DB_OS_CONFIG_INSTANCE", "DB_PARAMETERS", "DB_CONNECTION_STATUS", "HOST_RESOURCE_ALLOCATION", "ASM_ENTITY", "EXADATA_CELL_CONFIG"') + time_collected: datetime | None = Field(None, alias='timeCollected', description='Gets the time_collected of this DatabaseConfigurationMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') + instance_number: int = Field(..., alias='instanceNumber', description='Database instance number.') + parameter_name: str = Field(..., alias='parameterName', description='Database parameter name.') + parameter_value: str = Field(..., alias='parameterValue', description='Database parameter value.') + snapshot_id: int | None = Field(None, alias='snapshotId', description='AWR snapshot id for the parameter value') + is_changed: str | None = Field(None, alias='isChanged', description="Indicates whether the parameter's value changed in given snapshot or not.") + is_default: str | None = Field(None, alias='isDefault', description='Indicates whether this value is the default value or not.') + + +class DataObjectBindParameter(OpsiBaseModel): + """Details for a bind parameter used in data object query.""" + + name: str = Field(..., alias='name', description='Name of the bind parameter.') + value: Any = Field(..., alias='value', description='Value for the bind parameter.') + data_type: str = Field(..., alias='dataType', description='Data type of the bind parameter.') + + +class DataObjectColumnMetadata(OpsiBaseModel): + """Metadata of a column in a data object resultset.""" + + name: str = Field(..., alias='name', description='Name of the column.') + category: Literal['DIMENSION', 'METRIC', 'TIME_DIMENSION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='category', description='Category of the column.\n\nAllowed values for this property are: "DIMENSION", "METRIC", "TIME_DIMENSION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + data_type: Literal['NUMBER', 'OTHER', 'TIMESTAMP', 'VARCHAR2'] | None = Field(None, alias='dataType', description='Type of a data object column.') + data_type_name: Literal['NUMBER', 'TIMESTAMP', 'VARCHAR2', 'OTHER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='dataTypeName', description='Type name of a data object column.\n\nAllowed values for this property are: "NUMBER", "TIMESTAMP", "VARCHAR2", "OTHER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + display_name: str | None = Field(None, alias='displayName', description='Display name of the column.') + description: str | None = Field(None, alias='description', description='Description of the column.') + group_name: str | None = Field(None, alias='groupName', description='Group name of the column.') + unit_details: DataObjectColumnUnit | None = Field(None, alias='unitDetails', description='The unit_details field of DataObjectColumnMetadata.') + + +class DataObjectColumnUnit(OpsiBaseModel): + """Unit details of a data object column.""" + + unit_category: Literal['DATA_SIZE', 'TIME', 'POWER', 'TEMPERATURE', 'CORE', 'RATE', 'FREQUENCY', 'OTHER_STANDARD', 'CUSTOM', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='unitCategory', description='Category of the column\'s unit.\n\nAllowed values for this property are: "DATA_SIZE", "TIME", "POWER", "TEMPERATURE", "CORE", "RATE", "FREQUENCY", "OTHER_STANDARD", "CUSTOM", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + display_name: str | None = Field(None, alias='displayName', description="Display name of the column's unit.") + + +class DataObjectCoreColumnUnit(OpsiBaseModel): + """Unit details of a data object column of CORE unit category.""" + + unit_category: Literal['DATA_SIZE', 'TIME', 'POWER', 'TEMPERATURE', 'CORE', 'RATE', 'FREQUENCY', 'OTHER_STANDARD', 'CUSTOM', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='unitCategory', description='Gets the unit_category of this DataObjectColumnUnit.\nCategory of the column\'s unit.\n\nAllowed values for this property are: "DATA_SIZE", "TIME", "POWER", "TEMPERATURE", "CORE", "RATE", "FREQUENCY", "OTHER_STANDARD", "CUSTOM", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + display_name: str | None = Field(None, alias='displayName', description="Gets the display_name of this DataObjectColumnUnit.\nDisplay name of the column's unit.") + unit: Literal['CORE', 'MILLI_CORE', 'UNKNOWN_ENUM_VALUE', 'CUSTOM', 'DATA_SIZE', 'FREQUENCY', 'OTHER_STANDARD', 'POWER', 'RATE', 'TEMPERATURE', 'TIME'] | None = Field(None, alias='unit', description='Core unit.\n\nAllowed values for this property are: "CORE", "MILLI_CORE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class DataObjectCustomColumnUnit(OpsiBaseModel): + """Unit details of a data object column of CUSTOM unit category.""" + + unit_category: Literal['DATA_SIZE', 'TIME', 'POWER', 'TEMPERATURE', 'CORE', 'RATE', 'FREQUENCY', 'OTHER_STANDARD', 'CUSTOM', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='unitCategory', description='Gets the unit_category of this DataObjectColumnUnit.\nCategory of the column\'s unit.\n\nAllowed values for this property are: "DATA_SIZE", "TIME", "POWER", "TEMPERATURE", "CORE", "RATE", "FREQUENCY", "OTHER_STANDARD", "CUSTOM", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + display_name: str | None = Field(None, alias='displayName', description="Gets the display_name of this DataObjectColumnUnit.\nDisplay name of the column's unit.") + unit: Literal['CORE', 'CUSTOM', 'DATA_SIZE', 'FREQUENCY', 'OTHER_STANDARD', 'POWER', 'RATE', 'TEMPERATURE', 'TIME'] | None = Field(None, alias='unit', description='Custom column unit.') + + +class DataObjectDataSizeColumnUnit(OpsiBaseModel): + """Unit details of a data object column of DATA_SIZE unit category.""" + + unit_category: Literal['DATA_SIZE', 'TIME', 'POWER', 'TEMPERATURE', 'CORE', 'RATE', 'FREQUENCY', 'OTHER_STANDARD', 'CUSTOM', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='unitCategory', description='Gets the unit_category of this DataObjectColumnUnit.\nCategory of the column\'s unit.\n\nAllowed values for this property are: "DATA_SIZE", "TIME", "POWER", "TEMPERATURE", "CORE", "RATE", "FREQUENCY", "OTHER_STANDARD", "CUSTOM", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + display_name: str | None = Field(None, alias='displayName', description="Gets the display_name of this DataObjectColumnUnit.\nDisplay name of the column's unit.") + unit: Literal['CHARACTER', 'BLOCK', 'BIT', 'BYTE', 'KILO_BYTE', 'MEGA_BYTE', 'GIGA_BYTE', 'TERA_BYTE', 'PETA_BYTE', 'EXA_BYTE', 'ZETTA_BYTE', 'YOTTA_BYTE', 'UNKNOWN_ENUM_VALUE', 'CORE', 'CUSTOM', 'DATA_SIZE', 'FREQUENCY', 'OTHER_STANDARD', 'POWER', 'RATE', 'TEMPERATURE', 'TIME'] | None = Field(None, alias='unit', description='Data size unit.\n\nAllowed values for this property are: "CHARACTER", "BLOCK", "BIT", "BYTE", "KILO_BYTE", "MEGA_BYTE", "GIGA_BYTE", "TERA_BYTE", "PETA_BYTE", "EXA_BYTE", "ZETTA_BYTE", "YOTTA_BYTE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class DataObjectFrequencyColumnUnit(OpsiBaseModel): + """Unit details of a data object column of FREQEUENCY unit category.""" + + unit_category: Literal['DATA_SIZE', 'TIME', 'POWER', 'TEMPERATURE', 'CORE', 'RATE', 'FREQUENCY', 'OTHER_STANDARD', 'CUSTOM', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='unitCategory', description='Gets the unit_category of this DataObjectColumnUnit.\nCategory of the column\'s unit.\n\nAllowed values for this property are: "DATA_SIZE", "TIME", "POWER", "TEMPERATURE", "CORE", "RATE", "FREQUENCY", "OTHER_STANDARD", "CUSTOM", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + display_name: str | None = Field(None, alias='displayName', description="Gets the display_name of this DataObjectColumnUnit.\nDisplay name of the column's unit.") + unit: Literal['HERTZ', 'KILO_HERTZ', 'MEGA_HERTZ', 'GIGA_HERTZ', 'TERA_HERTZ', 'UNKNOWN_ENUM_VALUE', 'CORE', 'CUSTOM', 'DATA_SIZE', 'FREQUENCY', 'OTHER_STANDARD', 'POWER', 'RATE', 'TEMPERATURE', 'TIME'] | None = Field(None, alias='unit', description='Frequency unit.\n\nAllowed values for this property are: "HERTZ", "KILO_HERTZ", "MEGA_HERTZ", "GIGA_HERTZ", "TERA_HERTZ", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class DataObjectOtherStandardColumnUnit(OpsiBaseModel): + """Unit details of a data object column of OTHER_STANDARD unit category.""" + + unit_category: Literal['DATA_SIZE', 'TIME', 'POWER', 'TEMPERATURE', 'CORE', 'RATE', 'FREQUENCY', 'OTHER_STANDARD', 'CUSTOM', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='unitCategory', description='Gets the unit_category of this DataObjectColumnUnit.\nCategory of the column\'s unit.\n\nAllowed values for this property are: "DATA_SIZE", "TIME", "POWER", "TEMPERATURE", "CORE", "RATE", "FREQUENCY", "OTHER_STANDARD", "CUSTOM", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + display_name: str | None = Field(None, alias='displayName', description="Gets the display_name of this DataObjectColumnUnit.\nDisplay name of the column's unit.") + unit: Literal['PERCENTAGE', 'COUNT', 'IO', 'BOOLEAN', 'OPERATION', 'TRANSACTION', 'CONNECTION', 'ACCESS', 'REQUEST', 'MESSAGE', 'EXECUTION', 'LOGONS', 'THREAD', 'ERROR', 'UNKNOWN_ENUM_VALUE', 'CORE', 'CUSTOM', 'DATA_SIZE', 'FREQUENCY', 'OTHER_STANDARD', 'POWER', 'RATE', 'TEMPERATURE', 'TIME'] | None = Field(None, alias='unit', description='Other standard column unit.\n\nAllowed values for this property are: "PERCENTAGE", "COUNT", "IO", "BOOLEAN", "OPERATION", "TRANSACTION", "CONNECTION", "ACCESS", "REQUEST", "MESSAGE", "EXECUTION", "LOGONS", "THREAD", "ERROR", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class DataObjectPowerColumnUnit(OpsiBaseModel): + """Unit details of a data object column of POWER unit category.""" + + unit_category: Literal['DATA_SIZE', 'TIME', 'POWER', 'TEMPERATURE', 'CORE', 'RATE', 'FREQUENCY', 'OTHER_STANDARD', 'CUSTOM', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='unitCategory', description='Gets the unit_category of this DataObjectColumnUnit.\nCategory of the column\'s unit.\n\nAllowed values for this property are: "DATA_SIZE", "TIME", "POWER", "TEMPERATURE", "CORE", "RATE", "FREQUENCY", "OTHER_STANDARD", "CUSTOM", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + display_name: str | None = Field(None, alias='displayName', description="Gets the display_name of this DataObjectColumnUnit.\nDisplay name of the column's unit.") + unit: Literal['AMP', 'WATT', 'KILO_WATT', 'MEGA_WATT', 'GIGA_WATT', 'UNKNOWN_ENUM_VALUE', 'CORE', 'CUSTOM', 'DATA_SIZE', 'FREQUENCY', 'OTHER_STANDARD', 'POWER', 'RATE', 'TEMPERATURE', 'TIME'] | None = Field(None, alias='unit', description='Power unit.\n\nAllowed values for this property are: "AMP", "WATT", "KILO_WATT", "MEGA_WATT", "GIGA_WATT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class DataObjectQuery(OpsiBaseModel): + """Information required to form and execute query on a data object.""" + + query_type: Literal['TEMPLATIZED_QUERY', 'STANDARD_QUERY'] = Field(..., alias='queryType', description='Type of Query\n\nAllowed values for this property are: "TEMPLATIZED_QUERY", "STANDARD_QUERY"') + bind_params: list[DataObjectBindParameter] | None = Field(None, alias='bindParams', description='List of bind parameters to be applied in the query.') + query_execution_timeout_in_seconds: float | None = Field(None, alias='queryExecutionTimeoutInSeconds', description='Timeout (in seconds) to be set for the data object query execution.') + + +class DataObjectQueryTimeFilters(OpsiBaseModel): + """Time filters to be applied in the data object query.""" + + time_period: str | None = Field(None, alias='timePeriod', description='Specify time period in ISO 8601 format with respect to current time.\nDefault is last 30 days represented by P30D.\nIf timePeriod is specified, then timeStart and timeEnd will be ignored.\nExamples: P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months).') + time_start: datetime | None = Field(None, alias='timeStart', description='Start time in UTC in RFC3339 formatted datetime string. Example: 2021-10-30T00:00:00.000Z.\ntimeStart and timeEnd are used together. If timePeriod is specified, this parameter is ignored.') + time_end: datetime | None = Field(None, alias='timeEnd', description='End time in UTC in RFC3339 formatted datetime string. Example: 2021-10-30T00:00:00.000Z.\ntimeStart and timeEnd are used together. If timePeriod is specified, this parameter is ignored.\nIf timeEnd is not specified, current time is used as timeEnd.') + + +class DataObjectRateColumnUnit(OpsiBaseModel): + """Unit details of a data object column of RATE unit category.""" + + unit_category: Literal['DATA_SIZE', 'TIME', 'POWER', 'TEMPERATURE', 'CORE', 'RATE', 'FREQUENCY', 'OTHER_STANDARD', 'CUSTOM', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='unitCategory', description='Gets the unit_category of this DataObjectColumnUnit.\nCategory of the column\'s unit.\n\nAllowed values for this property are: "DATA_SIZE", "TIME", "POWER", "TEMPERATURE", "CORE", "RATE", "FREQUENCY", "OTHER_STANDARD", "CUSTOM", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + display_name: str | None = Field(None, alias='displayName', description="Gets the display_name of this DataObjectColumnUnit.\nDisplay name of the column's unit.") + numerator: DataObjectColumnUnit | None = Field(None, alias='numerator', description='The numerator field of DataObjectRateColumnUnit.') + denominator: DataObjectColumnUnit | None = Field(None, alias='denominator', description='The denominator field of DataObjectRateColumnUnit.') + + +class DataObjectStandardQuery(OpsiBaseModel): + """Information required to execute query on data objects. Query is given in standard SQL syntax providing flexibility to form complex queries such as queries with joins and nested queries.""" + + query_type: Literal['TEMPLATIZED_QUERY', 'STANDARD_QUERY'] = Field(..., alias='queryType', description='Gets the query_type of this DataObjectQuery.\nType of Query\n\nAllowed values for this property are: "TEMPLATIZED_QUERY", "STANDARD_QUERY"') + bind_params: list[DataObjectBindParameter] | None = Field(None, alias='bindParams', description='Gets the bind_params of this DataObjectQuery.\nList of bind parameters to be applied in the query.') + query_execution_timeout_in_seconds: float | None = Field(None, alias='queryExecutionTimeoutInSeconds', description='Gets the query_execution_timeout_in_seconds of this DataObjectQuery.\nTimeout (in seconds) to be set for the data object query execution.') + statement: str | None = Field(None, alias='statement', description='SQL query statement with standard Oracle supported SQL syntax.\n- When Warehouse (e.g: Awr hub) data objects are queried, use the actual names of underlying data objects (e.g: tables, views) in the query.\nThe same query that works through JDBC connection with the OperationsInsightsWarehouseUsers credentials will work here and vice-versa.\nSCHEMA.VIEW syntax can also be used here.\n- When OPSI data objects are queried, use name of the respective OPSI data object, just like how views are used in a query.\nIdentifier of the OPSI data object cannot be used in the query.') + time_filters: DataObjectQueryTimeFilters | None = Field(None, alias='timeFilters', description='The time_filters field of DataObjectStandardQuery.') + + +class DataObjectTemperatureColumnUnit(OpsiBaseModel): + """Unit details of a data object column of TEMPERATURE unit category.""" + + unit_category: Literal['DATA_SIZE', 'TIME', 'POWER', 'TEMPERATURE', 'CORE', 'RATE', 'FREQUENCY', 'OTHER_STANDARD', 'CUSTOM', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='unitCategory', description='Gets the unit_category of this DataObjectColumnUnit.\nCategory of the column\'s unit.\n\nAllowed values for this property are: "DATA_SIZE", "TIME", "POWER", "TEMPERATURE", "CORE", "RATE", "FREQUENCY", "OTHER_STANDARD", "CUSTOM", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + display_name: str | None = Field(None, alias='displayName', description="Gets the display_name of this DataObjectColumnUnit.\nDisplay name of the column's unit.") + unit: Literal['CELSIUS', 'FAHRENHEIT', 'UNKNOWN_ENUM_VALUE', 'CORE', 'CUSTOM', 'DATA_SIZE', 'FREQUENCY', 'OTHER_STANDARD', 'POWER', 'RATE', 'TEMPERATURE', 'TIME'] | None = Field(None, alias='unit', description='Temparature unit.\n\nAllowed values for this property are: "CELSIUS", "FAHRENHEIT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class DataObjectTemplatizedQuery(OpsiBaseModel): + """Information required in a structured template to form and execute query on a data object.""" + + query_type: Literal['TEMPLATIZED_QUERY', 'STANDARD_QUERY'] = Field(..., alias='queryType', description='Gets the query_type of this DataObjectQuery.\nType of Query\n\nAllowed values for this property are: "TEMPLATIZED_QUERY", "STANDARD_QUERY"') + bind_params: list[DataObjectBindParameter] | None = Field(None, alias='bindParams', description='Gets the bind_params of this DataObjectQuery.\nList of bind parameters to be applied in the query.') + query_execution_timeout_in_seconds: float | None = Field(None, alias='queryExecutionTimeoutInSeconds', description='Gets the query_execution_timeout_in_seconds of this DataObjectQuery.\nTimeout (in seconds) to be set for the data object query execution.') + select_list: list[str] | None = Field(None, alias='selectList', description='List of items to be added into the SELECT clause of the query; items will be added with comma separation.') + from_clause: str | None = Field(None, alias='fromClause', description='Unique data object name that will be added into the FROM clause of the query, just like a view name in FROM clause.\n- Use actual name of the data objects (e.g: tables, views) in case of Warehouse (e.g: Awr hub) data objects query. SCHEMA.VIEW name syntax can also be used here.\ne.g: SYS.DBA_HIST_SNAPSHOT or DBA_HIST_SNAPSHOT\n- Use name of the data object (e.g: SQL_STATS_DO) in case of OPSI data objects. Identifier of the OPSI data object cannot be used here.') + where_conditions_list: list[str] | None = Field(None, alias='whereConditionsList', description='List of items to be added into the WHERE clause of the query; items will be added with AND separation.\nItem can contain a single condition or multiple conditions.\nSingle condition e.g: "optimizer_mode=\'mode1\'"\nMultiple conditions e.g: (module=\'module1\' OR module=\'module2\')') + group_by_list: list[str] | None = Field(None, alias='groupByList', description='List of items to be added into the GROUP BY clause of the query; items will be added with comma separation.') + having_conditions_list: list[str] | None = Field(None, alias='havingConditionsList', description='List of items to be added into the HAVING clause of the query; items will be added with AND separation.') + order_by_list: list[str] | None = Field(None, alias='orderByList', description='List of items to be added into the ORDER BY clause of the query; items will be added with comma separation.') + time_filters: DataObjectQueryTimeFilters | None = Field(None, alias='timeFilters', description='The time_filters field of DataObjectTemplatizedQuery.') + + +class DataObjectTimeColumnUnit(OpsiBaseModel): + """Unit details of a data object column of TIME unit category.""" + + unit_category: Literal['DATA_SIZE', 'TIME', 'POWER', 'TEMPERATURE', 'CORE', 'RATE', 'FREQUENCY', 'OTHER_STANDARD', 'CUSTOM', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='unitCategory', description='Gets the unit_category of this DataObjectColumnUnit.\nCategory of the column\'s unit.\n\nAllowed values for this property are: "DATA_SIZE", "TIME", "POWER", "TEMPERATURE", "CORE", "RATE", "FREQUENCY", "OTHER_STANDARD", "CUSTOM", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + display_name: str | None = Field(None, alias='displayName', description="Gets the display_name of this DataObjectColumnUnit.\nDisplay name of the column's unit.") + unit: Literal['NANO_SECOND', 'MICRO_SECOND', 'MILLI_SECOND', 'CENTI_SECOND', 'SECOND', 'HOUR', 'DAY', 'WEEK', 'MONTH', 'YEAR', 'MINUTE', 'UNKNOWN_ENUM_VALUE', 'CORE', 'CUSTOM', 'DATA_SIZE', 'FREQUENCY', 'OTHER_STANDARD', 'POWER', 'RATE', 'TEMPERATURE', 'TIME'] | None = Field(None, alias='unit', description='Time unit.\n\nAllowed values for this property are: "NANO_SECOND", "MICRO_SECOND", "MILLI_SECOND", "CENTI_SECOND", "SECOND", "HOUR", "DAY", "WEEK", "MONTH", "YEAR", "MINUTE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class DatabaseConfigurationCollection(OpsiBaseModel): + """Collection of database insight configuration summary objects.""" + + items: list[DatabaseConfigurationSummary] = Field(..., alias='items', description='Array of database insight configurations summary objects.') + + +class DatabaseConfigurationMetricGroup(OpsiBaseModel): + """Supported configuration metric groups for database capacity planning service.""" + + metric_name: Literal['DB_EXTERNAL_PROPERTIES', 'DB_EXTERNAL_INSTANCE', 'DB_OS_CONFIG_INSTANCE', 'DB_PARAMETERS', 'DB_CONNECTION_STATUS', 'HOST_RESOURCE_ALLOCATION', 'ASM_ENTITY', 'EXADATA_CELL_CONFIG'] = Field(..., alias='metricName', description='Name of the metric group.\n\nAllowed values for this property are: "DB_EXTERNAL_PROPERTIES", "DB_EXTERNAL_INSTANCE", "DB_OS_CONFIG_INSTANCE", "DB_PARAMETERS", "DB_CONNECTION_STATUS", "HOST_RESOURCE_ALLOCATION", "ASM_ENTITY", "EXADATA_CELL_CONFIG"') + time_collected: datetime | None = Field(None, alias='timeCollected', description='Collection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') + + +class DatabaseConfigurationSummary(OpsiBaseModel): + """Summary of a database configuration for a resource.""" + + database_insight_id: str = Field(..., alias='databaseInsightId', description='The OCID of the database insight resource.') + entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Source of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') + database_name: str = Field(..., alias='databaseName', description='The database name. The database name is unique within the tenancy.') + database_display_name: str = Field(..., alias='databaseDisplayName', description='The user-friendly name for the database. The name does not have to be unique.') + database_type: str = Field(..., alias='databaseType', description='Ops Insights internal representation of the database type.') + database_version: str = Field(..., alias='databaseVersion', description='The version of the database.') + is_advanced_features_enabled: bool = Field(..., alias='isAdvancedFeaturesEnabled', description='Flag is to identify if advanced features for autonomous database is enabled or not') + cdb_name: str = Field(..., alias='cdbName', description='Name of the CDB.Only applies to PDB.') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + processor_count: int | None = Field(None, alias='processorCount', description='Processor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) + + +class DatabaseDetails(OpsiBaseModel): + """Partial information about the database which includes id, name, type.""" + + id: str = Field(..., alias='id', description='The OCID of the database insight resource.') + database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') + compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') + database_name: str = Field(..., alias='databaseName', description='The database name. The database name is unique within the tenancy.') + database_display_name: str | None = Field(None, alias='databaseDisplayName', description='The user-friendly name for the database. The name does not have to be unique.') + database_type: str = Field(..., alias='databaseType', description='Ops Insights internal representation of the database type.') + database_version: str | None = Field(None, alias='databaseVersion', description='The version of the database.') + instances: list[HostInstanceMap] | None = Field(None, alias='instances', description='Array of hostname and instance name.') + cdb_name: str | None = Field(None, alias='cdbName', description='Name of the CDB.Only applies to PDB.') + + +class DatabaseInsight(OpsiBaseModel): + """Database insight resource.""" + + entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Source of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + id: str = Field(..., alias='id', description='Database insight identifier') + compartment_id: str = Field(..., alias='compartmentId', description='Compartment identifier of the database') + status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Indicates the status of a database insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_type: str | None = Field(None, alias='databaseType', description='Ops Insights internal representation of the database type.') + database_version: str | None = Field(None, alias='databaseVersion', description='The version of the database.') + processor_count: int | None = Field(None, alias='processorCount', description='Processor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + time_created: datetime = Field(..., alias='timeCreated', description='The time the the database insight was first enabled. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='The time the database insight was updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='The current state of the database.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + database_connection_status_details: str | None = Field(None, alias='databaseConnectionStatusDetails', description='A message describing the status of the database connection of this resource. For example, it can be used to provide actionable information about the permission and content validity of the database connection.') + + +class DatabaseInsightSummary(OpsiBaseModel): + """Summary of a database insight resource.""" + + id: str = Field(..., alias='id', description='The OCID of the database insight resource.') + database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') + compartment_id: str | None = Field(None, alias='compartmentId', description='The OCID of the compartment.') + database_name: str | None = Field(None, alias='databaseName', description='The database name. The database name is unique within the tenancy.') + database_display_name: str | None = Field(None, alias='databaseDisplayName', description='The user-friendly name for the database. The name does not have to be unique.') + database_type: str | None = Field(None, alias='databaseType', description='Ops Insights internal representation of the database type.') + database_version: str | None = Field(None, alias='databaseVersion', description='The version of the database.') + database_host_names: list[str] | None = Field(None, alias='databaseHostNames', description='The hostnames for the database.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Source of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + processor_count: int | None = Field(None, alias='processorCount', description='Processor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) + status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='status', description='Indicates the status of a database insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime | None = Field(None, alias='timeCreated', description='The time the the database insight was first enabled. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='The time the database insight was updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='The current state of the database.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + database_connection_status_details: str | None = Field(None, alias='databaseConnectionStatusDetails', description='A message describing the status of the database connection of this resource. For example, it can be used to provide actionable information about the permission and content validity of the database connection.') + + +class DatabaseInsights(OpsiBaseModel): + """Logical grouping used for Operations Insights database-targeted operations.""" + + database_insights: Any | None = Field(None, alias='databaseInsights', description='Database Insights Object.') + + +class DatabaseInsightsCollection(OpsiBaseModel): + """Collection of database insight summary objects.""" + + items: list[DatabaseInsightSummary] = Field(..., alias='items', description='Array of database insight summary objects.') + + +class DatabaseInsightsDataObject(OpsiBaseModel): + """Database insights data object.""" + + identifier: str = Field(..., alias='identifier', description='Gets the identifier of this OpsiDataObject.\nUnique identifier of OPSI data object.') + data_object_type: Literal['DATABASE_INSIGHTS_DATA_OBJECT', 'HOST_INSIGHTS_DATA_OBJECT', 'EXADATA_INSIGHTS_DATA_OBJECT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dataObjectType', description='Gets the data_object_type of this OpsiDataObject.\nType of OPSI data object.\n\nAllowed values for this property are: "DATABASE_INSIGHTS_DATA_OBJECT", "HOST_INSIGHTS_DATA_OBJECT", "EXADATA_INSIGHTS_DATA_OBJECT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + display_name: str = Field(..., alias='displayName', description='Gets the display_name of this OpsiDataObject.\nUser-friendly name of OPSI data object.') + description: str | None = Field(None, alias='description', description='Gets the description of this OpsiDataObject.\nDescription of OPSI data object.') + name: str | None = Field(None, alias='name', description='Gets the name of this OpsiDataObject.\nName of the data object, which can be used in data object queries just like how view names are used in a query.') + group_names: list[str] | None = Field(None, alias='groupNames', description='Gets the group_names of this OpsiDataObject.\nNames of all the groups to which the data object belongs to.') + supported_query_time_period: str | None = Field(None, alias='supportedQueryTimePeriod', description='Gets the supported_query_time_period of this OpsiDataObject.\nTime period supported by the data object for quering data.\nTime period is in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D.\nExamples: P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months).') + columns_metadata: list[DataObjectColumnMetadata] = Field(..., alias='columnsMetadata', description='Gets the columns_metadata of this OpsiDataObject.\nMetadata of columns in a data object.') + supported_query_params: list[OpsiDataObjectSupportedQueryParam] | None = Field(None, alias='supportedQueryParams', description='Gets the supported_query_params of this OpsiDataObject.\nSupported query parameters by this OPSI data object that can be configured while a data object query involving this data object is executed.') + + +class DatabaseInsightsDataObjectSummary(OpsiBaseModel): + """Summary of a database insights data object.""" + + identifier: str = Field(..., alias='identifier', description='Gets the identifier of this OpsiDataObjectSummary.\nUnique identifier of OPSI data object.') + data_object_type: Literal['DATABASE_INSIGHTS_DATA_OBJECT', 'HOST_INSIGHTS_DATA_OBJECT', 'EXADATA_INSIGHTS_DATA_OBJECT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dataObjectType', description='Gets the data_object_type of this OpsiDataObjectSummary.\nType of OPSI data object.\n\nAllowed values for this property are: "DATABASE_INSIGHTS_DATA_OBJECT", "HOST_INSIGHTS_DATA_OBJECT", "EXADATA_INSIGHTS_DATA_OBJECT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + display_name: str = Field(..., alias='displayName', description='Gets the display_name of this OpsiDataObjectSummary.\nUser-friendly name of OPSI data object.') + description: str | None = Field(None, alias='description', description='Gets the description of this OpsiDataObjectSummary.\nDescription of OPSI data object.') + name: str | None = Field(None, alias='name', description='Gets the name of this OpsiDataObjectSummary.\nName of the data object, which can be used in data object queries just like how view names are used in a query.') + group_names: list[str] | None = Field(None, alias='groupNames', description='Gets the group_names of this OpsiDataObjectSummary.\nNames of all the groups to which the data object belongs to.') + + +class DatabaseParameterTypeDetails(OpsiBaseModel): + """Database parameter details.""" + + type: Literal['SCHEMA_OBJECT', 'SQL', 'DATABASE_PARAMETER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='type', description='Gets the type of this RelatedObjectTypeDetails.\nType of related object\n\nAllowed values for this property are: "SCHEMA_OBJECT", "SQL", "DATABASE_PARAMETER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + name: str = Field(..., alias='name', description='Name of database parameter') + + +class DiskGroupDetails(OpsiBaseModel): + """Information about a diskgroup which includes diskgroup name and ASM name.""" + + diskgroup_name: str = Field(..., alias='diskgroupName', description='The diskgroup name.') + asm_name: str = Field(..., alias='asmName', description='The ASM name.') + + +class DiskStatistics(OpsiBaseModel): + """Aggregated data per disk.""" + + disk_name: str = Field(..., alias='diskName', description='Name of the disk.') + disk_unallocated_in_gbs: float = Field(..., alias='diskUnallocatedInGBs', description='Value for unallocated space in a disk.') + disk_usage_in_gbs: float = Field(..., alias='diskUsageInGBs', description='Disk usage.') + disk_size_in_gbs: float = Field(..., alias='diskSizeInGBs', description='Size of the disk.') + + +class DownloadOperationsInsightsWarehouseWalletDetails(OpsiRequestModel): + """Download Wallet details.""" + + operations_insights_warehouse_wallet_password: str = Field(..., alias='operationsInsightsWarehouseWalletPassword', description='User provided ADW wallet password for the Ops Insights Warehouse.') + + +class EmManagedExternalDatabaseConfigurationSummary(OpsiBaseModel): + """Configuration summary of a EM Managed External database.""" + + database_insight_id: str = Field(..., alias='databaseInsightId', description='Gets the database_insight_id of this DatabaseConfigurationSummary. The OCID of the database insight resource.') + entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseConfigurationSummary.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this DatabaseConfigurationSummary. The OCID of the compartment.') + database_name: str = Field(..., alias='databaseName', description='Gets the database_name of this DatabaseConfigurationSummary.\nThe database name. The database name is unique within the tenancy.') + database_display_name: str = Field(..., alias='databaseDisplayName', description='Gets the database_display_name of this DatabaseConfigurationSummary.\nThe user-friendly name for the database. The name does not have to be unique.') + database_type: str = Field(..., alias='databaseType', description='Gets the database_type of this DatabaseConfigurationSummary.\nOps Insights internal representation of the database type.') + database_version: str = Field(..., alias='databaseVersion', description='Gets the database_version of this DatabaseConfigurationSummary.\nThe version of the database.') + is_advanced_features_enabled: bool = Field(..., alias='isAdvancedFeaturesEnabled', description='Gets the is_advanced_features_enabled of this DatabaseConfigurationSummary.\nFlag is to identify if advanced features for autonomous database is enabled or not') + cdb_name: str = Field(..., alias='cdbName', description='Gets the cdb_name of this DatabaseConfigurationSummary.\nName of the CDB.Only applies to PDB.') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this DatabaseConfigurationSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this DatabaseConfigurationSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseConfigurationSummary.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) + enterprise_manager_identifier: str = Field(..., alias='enterpriseManagerIdentifier', description='Enterprise Manager Unique Identifier') + enterprise_manager_bridge_id: str = Field(..., alias='enterpriseManagerBridgeId', description='OPSI Enterprise Manager Bridge OCID') + instances: list[HostInstanceMap] = Field(..., alias='instances', description='Array of hostname and instance name.') + exadata_details: ExadataDetails = Field(..., alias='exadataDetails', description='The exadata_details field of EmManagedExternalDatabaseConfigurationSummary.') + enterprise_manager_entity_identifier: str = Field(..., alias='enterpriseManagerEntityIdentifier', description='Enterprise Manager Entity Unique Identifier') + enterprise_manager_console_url: str = Field(..., alias='enterpriseManagerConsoleUrl', description='Enterprise Manager Console Url') + enterprise_manager_oms_ver: str = Field(..., alias='enterpriseManagerOmsVer', description='Enterprise Manager OMS Version') + enterprise_manager_entity_type: str = Field(..., alias='enterpriseManagerEntityType', description='Enterprise Manager Entity Type') + + +class EmManagedExternalDatabaseInsight(OpsiBaseModel): + """Database insight resource.""" + + entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseInsight.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + id: str = Field(..., alias='id', description='Gets the id of this DatabaseInsight.\nDatabase insight identifier') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this DatabaseInsight.\nCompartment identifier of the database') + status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Gets the status of this DatabaseInsight.\nIndicates the status of a database insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_type: str | None = Field(None, alias='databaseType', description='Gets the database_type of this DatabaseInsight.\nOps Insights internal representation of the database type.') + database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this DatabaseInsight.\nThe version of the database.') + processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseInsight.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this DatabaseInsight.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this DatabaseInsight.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this DatabaseInsight.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + time_created: datetime = Field(..., alias='timeCreated', description='Gets the time_created of this DatabaseInsight.\nThe time the the database insight was first enabled. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DatabaseInsight.\nThe time the database insight was updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Gets the lifecycle_state of this DatabaseInsight.\nThe current state of the database.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DatabaseInsight.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + database_connection_status_details: str | None = Field(None, alias='databaseConnectionStatusDetails', description='Gets the database_connection_status_details of this DatabaseInsight.\nA message describing the status of the database connection of this resource. For example, it can be used to provide actionable information about the permission and content validity of the database connection.') + enterprise_manager_identifier: str = Field(..., alias='enterpriseManagerIdentifier', description='Enterprise Manager Unique Identifier') + enterprise_manager_entity_name: str = Field(..., alias='enterpriseManagerEntityName', description='Enterprise Manager Entity Name') + enterprise_manager_entity_type: str = Field(..., alias='enterpriseManagerEntityType', description='Enterprise Manager Entity Type') + enterprise_manager_entity_identifier: str = Field(..., alias='enterpriseManagerEntityIdentifier', description='Enterprise Manager Entity Unique Identifier') + enterprise_manager_entity_display_name: str | None = Field(None, alias='enterpriseManagerEntityDisplayName', description='Enterprise Manager Entity Display Name') + enterprise_manager_bridge_id: str = Field(..., alias='enterpriseManagerBridgeId', description='OPSI Enterprise Manager Bridge OCID') + exadata_insight_id: str | None = Field(None, alias='exadataInsightId', description='The OCID of the Exadata insight.') + + +class EmManagedExternalDatabaseInsightSummary(OpsiBaseModel): + """Summary of a database insight resource.""" + + id: str = Field(..., alias='id', description='Gets the id of this DatabaseInsightSummary. The OCID of the database insight resource.') + database_id: str = Field(..., alias='databaseId', description='Gets the database_id of this DatabaseInsightSummary. The OCID of the database.') + compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this DatabaseInsightSummary. The OCID of the compartment.') + database_name: str | None = Field(None, alias='databaseName', description='Gets the database_name of this DatabaseInsightSummary.\nThe database name. The database name is unique within the tenancy.') + database_display_name: str | None = Field(None, alias='databaseDisplayName', description='Gets the database_display_name of this DatabaseInsightSummary.\nThe user-friendly name for the database. The name does not have to be unique.') + database_type: str | None = Field(None, alias='databaseType', description='Gets the database_type of this DatabaseInsightSummary.\nOps Insights internal representation of the database type.') + database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this DatabaseInsightSummary.\nThe version of the database.') + database_host_names: list[str] | None = Field(None, alias='databaseHostNames', description='Gets the database_host_names of this DatabaseInsightSummary.\nThe hostnames for the database.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this DatabaseInsightSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this DatabaseInsightSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this DatabaseInsightSummary.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseInsightSummary.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseInsightSummary.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) + status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='status', description='Gets the status of this DatabaseInsightSummary.\nIndicates the status of a database insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DatabaseInsightSummary.\nThe time the the database insight was first enabled. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DatabaseInsightSummary.\nThe time the database insight was updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DatabaseInsightSummary.\nThe current state of the database.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DatabaseInsightSummary.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + database_connection_status_details: str | None = Field(None, alias='databaseConnectionStatusDetails', description='Gets the database_connection_status_details of this DatabaseInsightSummary.\nA message describing the status of the database connection of this resource. For example, it can be used to provide actionable information about the permission and content validity of the database connection.') + enterprise_manager_identifier: str = Field(..., alias='enterpriseManagerIdentifier', description='Enterprise Manager Unique Identifier') + enterprise_manager_entity_name: str = Field(..., alias='enterpriseManagerEntityName', description='Enterprise Manager Entity Name') + enterprise_manager_entity_type: str = Field(..., alias='enterpriseManagerEntityType', description='Enterprise Manager Entity Type') + enterprise_manager_entity_identifier: str = Field(..., alias='enterpriseManagerEntityIdentifier', description='Enterprise Manager Entity Unique Identifier') + enterprise_manager_entity_display_name: str | None = Field(None, alias='enterpriseManagerEntityDisplayName', description='Enterprise Manager Entity Display Name') + enterprise_manager_bridge_id: str = Field(..., alias='enterpriseManagerBridgeId', description='OPSI Enterprise Manager Bridge OCID') + exadata_insight_id: str | None = Field(None, alias='exadataInsightId', description='The OCID of the Exadata insight.') + + +class EmManagedExternalExadataInsight(OpsiBaseModel): + """EM-managed Exadata insight resource.""" + + entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this ExadataInsight.\nSource of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + id: str = Field(..., alias='id', description='Gets the id of this ExadataInsight.\nExadata insight identifier') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this ExadataInsight.\nCompartment identifier of the Exadata insight resource') + exadata_name: str = Field(..., alias='exadataName', description='Gets the exadata_name of this ExadataInsight.\nThe Exadata system name. If the Exadata systems managed by Enterprise Manager, the name is unique amongst the Exadata systems managed by the same Enterprise Manager.') + exadata_display_name: str | None = Field(None, alias='exadataDisplayName', description='Gets the exadata_display_name of this ExadataInsight.\nThe user-friendly name for the Exadata system. The name does not have to be unique.') + exadata_type: Literal['DBMACHINE', 'EXACS', 'EXACC', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='exadataType', description='Gets the exadata_type of this ExadataInsight.\nOperations Insights internal representation of the the Exadata system type.\n\nAllowed values for this property are: "DBMACHINE", "EXACS", "EXACC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + exadata_rack_type: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'FLEX', 'BASE', 'ELASTIC', 'ELASTIC_BASE', 'ELASTIC_LARGE', 'ELASTIC_EXTRA_LARGE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='exadataRackType', description='Gets the exadata_rack_type of this ExadataInsight.\nExadata rack type.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", "FLEX", "BASE", "ELASTIC", "ELASTIC_BASE", "ELASTIC_LARGE", "ELASTIC_EXTRA_LARGE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + is_virtualized_exadata: bool | None = Field(None, alias='isVirtualizedExadata', description='Gets the is_virtualized_exadata of this ExadataInsight.\ntrue if virtualization is used in the Exadata system') + status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Gets the status of this ExadataInsight.\nIndicates the status of an Exadata insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + chargeback_plan_details: ChargebackPlanDetails | None = Field(None, alias='chargebackPlanDetails', description='Gets the chargeback_plan_details of this ExadataInsight.') + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this ExadataInsight.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this ExadataInsight.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExadataInsight.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + time_created: datetime = Field(..., alias='timeCreated', description='Gets the time_created of this ExadataInsight.\nThe time the the Exadata insight was first enabled. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this ExadataInsight.\nThe time the Exadata insight was updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Gets the lifecycle_state of this ExadataInsight.\nThe current state of the Exadata insight.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExadataInsight.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + status_details: str | None = Field(None, alias='statusDetails', description='Gets the status_details of this ExadataInsight.\nA message describing the status of the Exadata Resource. For example, it can be used to provide actionable information about the policies needed to access the Exadata Resource.') + enterprise_manager_identifier: str = Field(..., alias='enterpriseManagerIdentifier', description='Enterprise Manager Unique Identifier') + enterprise_manager_entity_name: str = Field(..., alias='enterpriseManagerEntityName', description='Enterprise Manager Entity Name') + enterprise_manager_entity_type: str = Field(..., alias='enterpriseManagerEntityType', description='Enterprise Manager Entity Type') + enterprise_manager_entity_identifier: str = Field(..., alias='enterpriseManagerEntityIdentifier', description='Enterprise Manager Entity Unique Identifier') + enterprise_manager_entity_display_name: str | None = Field(None, alias='enterpriseManagerEntityDisplayName', description='Enterprise Manager Entity Display Name') + enterprise_manager_bridge_id: str = Field(..., alias='enterpriseManagerBridgeId', description='OPSI Enterprise Manager Bridge OCID') + is_auto_sync_enabled: bool | None = Field(None, alias='isAutoSyncEnabled', description='Set to true to enable automatic enablement and disablement of related targets from Enterprise Manager. New resources (e.g. Database Insights) will be placed in the same compartment as the related Exadata Insight.') + + +class EmManagedExternalExadataInsightSummary(OpsiBaseModel): + """Summary of an Exadata insight resource.""" + + entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this ExadataInsightSummary.\nSource of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + id: str = Field(..., alias='id', description='Gets the id of this ExadataInsightSummary. The OCID of the Exadata insight resource.') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this ExadataInsightSummary. The OCID of the compartment.') + exadata_name: str = Field(..., alias='exadataName', description='Gets the exadata_name of this ExadataInsightSummary.\nThe Exadata system name. If the Exadata systems managed by Enterprise Manager, the name is unique amongst the Exadata systems managed by the same Enterprise Manager.') + exadata_display_name: str | None = Field(None, alias='exadataDisplayName', description='Gets the exadata_display_name of this ExadataInsightSummary.\nThe user-friendly name for the Exadata system. The name does not have to be unique.') + exadata_type: Literal['DBMACHINE', 'EXACS', 'EXACC', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='exadataType', description='Gets the exadata_type of this ExadataInsightSummary.\nOperations Insights internal representation of the the Exadata system type.\n\nAllowed values for this property are: "DBMACHINE", "EXACS", "EXACC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + exadata_rack_type: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'FLEX', 'BASE', 'ELASTIC', 'ELASTIC_BASE', 'ELASTIC_LARGE', 'ELASTIC_EXTRA_LARGE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='exadataRackType', description='Gets the exadata_rack_type of this ExadataInsightSummary.\nOperations Insights internal representation of the the Exadata system rack type.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", "FLEX", "BASE", "ELASTIC", "ELASTIC_BASE", "ELASTIC_LARGE", "ELASTIC_EXTRA_LARGE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this ExadataInsightSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this ExadataInsightSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExadataInsightSummary.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Gets the status of this ExadataInsightSummary.\nIndicates the status of an Exadata insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + chargeback_plan_details: ChargebackPlanDetails | None = Field(None, alias='chargebackPlanDetails', description='Gets the chargeback_plan_details of this ExadataInsightSummary.') + time_created: datetime = Field(..., alias='timeCreated', description='Gets the time_created of this ExadataInsightSummary.\nThe time the the Exadata insight was first enabled. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this ExadataInsightSummary.\nThe time the Exadata insight was updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Gets the lifecycle_state of this ExadataInsightSummary.\nThe current state of the Exadata insight.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExadataInsightSummary.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + status_details: str | None = Field(None, alias='statusDetails', description='Gets the status_details of this ExadataInsightSummary.\nA message describing the status of the Exadata Resource. For example, it can be used to provide actionable information about the policies needed to access the Exadata Resource.') + enterprise_manager_identifier: str = Field(..., alias='enterpriseManagerIdentifier', description='Enterprise Manager Unique Identifier') + enterprise_manager_entity_name: str = Field(..., alias='enterpriseManagerEntityName', description='Enterprise Manager Entity Name') + enterprise_manager_entity_type: str = Field(..., alias='enterpriseManagerEntityType', description='Enterprise Manager Entity Type') + enterprise_manager_entity_identifier: str = Field(..., alias='enterpriseManagerEntityIdentifier', description='Enterprise Manager Entity Unique Identifier') + enterprise_manager_entity_display_name: str | None = Field(None, alias='enterpriseManagerEntityDisplayName', description='Enterprise Manager Entity Display Name') + enterprise_manager_bridge_id: str = Field(..., alias='enterpriseManagerBridgeId', description='OPSI Enterprise Manager Bridge OCID') + + +class EmManagedExternalHostConfigurationSummary(OpsiBaseModel): + """Configuration summary of a EM Managed External host.""" + + host_insight_id: str = Field(..., alias='hostInsightId', description='Gets the host_insight_id of this HostConfigurationSummary. The OCID of the host insight resource.') + entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this HostConfigurationSummary.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this HostConfigurationSummary. The OCID of the compartment.') + host_name: str = Field(..., alias='hostName', description='Gets the host_name of this HostConfigurationSummary.\nThe host name. The host name is unique amongst the hosts managed by the same management agent.') + platform_type: Literal['LINUX', 'SOLARIS', 'SUNOS', 'ZLINUX', 'WINDOWS', 'AIX', 'HP_UX', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='platformType', description='Gets the platform_type of this HostConfigurationSummary.\nPlatform type.\nSupported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS].\nSupported platformType(s) for MACS-managed cloud host insight: [LINUX].\nSupported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX].\n\nAllowed values for this property are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + platform_version: str = Field(..., alias='platformVersion', description='Gets the platform_version of this HostConfigurationSummary.\nPlatform version.') + platform_vendor: str = Field(..., alias='platformVendor', description='Gets the platform_vendor of this HostConfigurationSummary.\nPlatform vendor.') + total_cpus: int = Field(..., alias='totalCpus', description='Gets the total_cpus of this HostConfigurationSummary.\nTotal CPU on this host.') + total_memory_in_gbs: float = Field(..., alias='totalMemoryInGBs', description='Gets the total_memory_in_gbs of this HostConfigurationSummary.\nTotal amount of usable physical memory in gibabytes') + cpu_architecture: str = Field(..., alias='cpuArchitecture', description='Gets the cpu_architecture of this HostConfigurationSummary.\nCPU architechure') + cpu_cache_in_mbs: float = Field(..., alias='cpuCacheInMBs', description='Gets the cpu_cache_in_mbs of this HostConfigurationSummary.\nSize of cache memory in megabytes.') + cpu_vendor: str = Field(..., alias='cpuVendor', description='Gets the cpu_vendor of this HostConfigurationSummary.\nName of the CPU vendor.') + cpu_frequency_in_mhz: float = Field(..., alias='cpuFrequencyInMhz', description='Gets the cpu_frequency_in_mhz of this HostConfigurationSummary.\nClock frequency of the processor in megahertz.') + cpu_implementation: str = Field(..., alias='cpuImplementation', description='Gets the cpu_implementation of this HostConfigurationSummary.\nModel name of processor.') + cores_per_socket: int = Field(..., alias='coresPerSocket', description='Gets the cores_per_socket of this HostConfigurationSummary.\nNumber of cores per socket.') + total_sockets: int = Field(..., alias='totalSockets', description='Gets the total_sockets of this HostConfigurationSummary.\nNumber of total sockets.') + threads_per_socket: int = Field(..., alias='threadsPerSocket', description='Gets the threads_per_socket of this HostConfigurationSummary.\nNumber of threads per socket.') + is_hyper_threading_enabled: bool = Field(..., alias='isHyperThreadingEnabled', description='Gets the is_hyper_threading_enabled of this HostConfigurationSummary.\nIndicates if hyper-threading is enabled or not') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this HostConfigurationSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this HostConfigurationSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + enterprise_manager_identifier: str = Field(..., alias='enterpriseManagerIdentifier', description='Enterprise Manager Unique Identifier') + enterprise_manager_bridge_id: str = Field(..., alias='enterpriseManagerBridgeId', description='OPSI Enterprise Manager Bridge OCID') + exadata_details: ExadataDetails = Field(..., alias='exadataDetails', description='The exadata_details field of EmManagedExternalHostConfigurationSummary.') + enterprise_manager_entity_identifier: str = Field(..., alias='enterpriseManagerEntityIdentifier', description='Enterprise Manager Entity Unique Identifier') + enterprise_manager_console_url: str = Field(..., alias='enterpriseManagerConsoleUrl', description='Enterprise Manager Console Url') + enterprise_manager_oms_ver: str = Field(..., alias='enterpriseManagerOmsVer', description='Enterprise Manager OMS Version') + enterprise_manager_entity_type: str = Field(..., alias='enterpriseManagerEntityType', description='Enterprise Manager Entity Type') + + +class EmManagedExternalHostInsight(OpsiBaseModel): + """EM-managed external host insight resource.""" + + entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this HostInsight.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + id: str = Field(..., alias='id', description='Gets the id of this HostInsight. The OCID of the host insight resource.') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this HostInsight. The OCID of the compartment.') + host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this HostInsight.\nThe host name. The host name is unique amongst the hosts managed by the same management agent.') + host_display_name: str | None = Field(None, alias='hostDisplayName', description='Gets the host_display_name of this HostInsight.\nThe user-friendly name for the host. The name does not have to be unique.') + host_type: str | None = Field(None, alias='hostType', description='Gets the host_type of this HostInsight.\nOps Insights internal representation of the host type. Possible value is EXTERNAL-HOST.') + processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this HostInsight.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this HostInsight.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this HostInsight.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this HostInsight.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Gets the status of this HostInsight.\nIndicates the status of a host insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime = Field(..., alias='timeCreated', description='Gets the time_created of this HostInsight.\nThe time the the host insight was first enabled. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this HostInsight.\nThe time the host insight was updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Gets the lifecycle_state of this HostInsight.\nThe current state of the host.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this HostInsight.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + enterprise_manager_identifier: str = Field(..., alias='enterpriseManagerIdentifier', description='Enterprise Manager Unique Identifier') + enterprise_manager_entity_name: str = Field(..., alias='enterpriseManagerEntityName', description='Enterprise Manager Entity Name') + enterprise_manager_entity_type: str = Field(..., alias='enterpriseManagerEntityType', description='Enterprise Manager Entity Type') + enterprise_manager_entity_identifier: str = Field(..., alias='enterpriseManagerEntityIdentifier', description='Enterprise Manager Entity Unique Identifier') + enterprise_manager_entity_display_name: str | None = Field(None, alias='enterpriseManagerEntityDisplayName', description='Enterprise Manager Entity Display Name') + enterprise_manager_bridge_id: str = Field(..., alias='enterpriseManagerBridgeId', description='OPSI Enterprise Manager Bridge OCID') + platform_type: Literal['LINUX', 'SOLARIS', 'SUNOS', 'ZLINUX', 'WINDOWS', 'AIX', 'HP_UX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='platformType', description='Platform type.\nSupported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS].\nSupported platformType(s) for MACS-managed cloud host insight: [LINUX].\nSupported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX].\n\nAllowed values for this property are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + platform_name: str | None = Field(None, alias='platformName', description='Platform name.') + platform_version: str | None = Field(None, alias='platformVersion', description='Platform version.') + exadata_insight_id: str | None = Field(None, alias='exadataInsightId', description='The OCID of the Exadata insight.') + + +class EmManagedExternalHostInsightSummary(OpsiBaseModel): + """Summary of an EM-managed external host insight resource.""" + + entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this HostInsightSummary.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + id: str = Field(..., alias='id', description='Gets the id of this HostInsightSummary. The OCID of the host insight resource.') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this HostInsightSummary. The OCID of the compartment.') + host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this HostInsightSummary.\nThe host name. The host name is unique amongst the hosts managed by the same management agent.') + host_display_name: str | None = Field(None, alias='hostDisplayName', description='Gets the host_display_name of this HostInsightSummary.\nThe user-friendly name for the host. The name does not have to be unique.') + host_type: str | None = Field(None, alias='hostType', description='Gets the host_type of this HostInsightSummary.\nOps Insights internal representation of the host type. Possible value is EXTERNAL-HOST.') + processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this HostInsightSummary.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this HostInsightSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this HostInsightSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this HostInsightSummary.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + opsi_private_endpoint_id: str | None = Field(None, alias='opsiPrivateEndpointId', description='Gets the opsi_private_endpoint_id of this HostInsightSummary. The OCID of the OPSI private endpoint.') + status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='status', description='Gets the status of this HostInsightSummary.\nIndicates the status of a host insight in Ops Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this HostInsightSummary.\nThe time the the host insight was first enabled. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this HostInsightSummary.\nThe time the host insight was updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this HostInsightSummary.\nThe current state of the host.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this HostInsightSummary.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + enterprise_manager_identifier: str = Field(..., alias='enterpriseManagerIdentifier', description='Enterprise Manager Unique Identifier') + enterprise_manager_entity_name: str = Field(..., alias='enterpriseManagerEntityName', description='Enterprise Manager Entity Name') + enterprise_manager_entity_type: str = Field(..., alias='enterpriseManagerEntityType', description='Enterprise Manager Entity Type') + enterprise_manager_entity_identifier: str = Field(..., alias='enterpriseManagerEntityIdentifier', description='Enterprise Manager Entity Unique Identifier') + enterprise_manager_entity_display_name: str | None = Field(None, alias='enterpriseManagerEntityDisplayName', description='Enterprise Manager Entity Display Name') + enterprise_manager_bridge_id: str = Field(..., alias='enterpriseManagerBridgeId', description='OPSI Enterprise Manager Bridge OCID') + platform_type: Literal['LINUX', 'SOLARIS', 'SUNOS', 'ZLINUX', 'WINDOWS', 'AIX', 'HP_UX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='platformType', description='Platform type.\nSupported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS].\nSupported platformType(s) for MACS-managed cloud host insight: [LINUX].\nSupported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX].\n\nAllowed values for this property are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + exadata_insight_id: str | None = Field(None, alias='exadataInsightId', description='The OCID of the Exadata insight.') + + +class EnableAutonomousDatabaseInsightAdvancedFeaturesDetails(OpsiRequestModel): + """The advanced feature details for autonomous database to be enabled.""" + + opsi_private_endpoint_id: str | None = Field(None, alias='opsiPrivateEndpointId', description='The OCID of the OPSI private endpoint.') + connection_details: ConnectionDetails = Field(..., alias='connectionDetails', description='The connection_details field of EnableAutonomousDatabaseInsightAdvancedFeaturesDetails.') + credential_details: CredentialDetails = Field(..., alias='credentialDetails', description='The credential_details field of EnableAutonomousDatabaseInsightAdvancedFeaturesDetails.') + + +class EnableAutonomousDatabaseInsightDetails(OpsiBaseModel): + """The information about database to be analyzed. When isAdvancedFeaturesEnabled is set to false, parameters connectionDetails, credentialDetails and opsiPrivateEndpoint are optional. Otherwise, connectionDetails and crendetialDetails are required to enable full OPSI service features. If the Autonomouse Database is configured with private, restricted or dedicated access, opsiPrivateEndpoint parameter is required.""" + + entity_source: Literal['EM_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Gets the entity_source of this EnableDatabaseInsightDetails.\nSource of the database entity.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') + database_resource_type: str | None = Field(None, alias='databaseResourceType', description='OCI database resource type') + is_advanced_features_enabled: bool = Field(..., alias='isAdvancedFeaturesEnabled', description='Flag is to identify if advanced features for autonomous database is enabled or not') + connection_details: ConnectionDetails | None = Field(None, alias='connectionDetails', description='The connection_details field of EnableAutonomousDatabaseInsightDetails.') + credential_details: CredentialDetails | None = Field(None, alias='credentialDetails', description='The credential_details field of EnableAutonomousDatabaseInsightDetails.') + opsi_private_endpoint_id: str | None = Field(None, alias='opsiPrivateEndpointId', description='The OCID of the OPSI private endpoint.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + + +class EnableDatabaseInsightDetails(OpsiRequestModel): + """The information about database to be analyzed.""" + + entity_source: Literal['EM_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Source of the database entity.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') + + +class EnableEmManagedExternalDatabaseInsightDetails(OpsiBaseModel): + """The information about database to be analyzed.""" + + entity_source: Literal['EM_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Gets the entity_source of this EnableDatabaseInsightDetails.\nSource of the database entity.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') + + +class EnableEmManagedExternalExadataInsightDetails(OpsiBaseModel): + """The information about the Exadata system to be analyzed.""" + + entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA'] = Field(..., alias='entitySource', description='Gets the entity_source of this EnableExadataInsightDetails.\nSource of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA"') + + +class EnableEmManagedExternalHostInsightDetails(OpsiBaseModel): + """The information about the EM-managed external host to be analyzed.""" + + entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST'] = Field(..., alias='entitySource', description='Gets the entity_source of this EnableHostInsightDetails.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST"') + + +class EnableExadataInsightDetails(OpsiRequestModel): + """The information about the Exadata system to be analyzed.""" + + entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA'] = Field(..., alias='entitySource', description='Source of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA"') + + +class EnableExternalMysqlDatabaseInsightDetails(OpsiBaseModel): + """MySQL support within the OCI Ops Insights service has been deprecated as of January 29, 2026. The information about database to be analyzed.""" + + entity_source: Literal['EM_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Gets the entity_source of this EnableDatabaseInsightDetails.\nSource of the database entity.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') + database_connector_id: str = Field(..., alias='databaseConnectorId', description='The DBM owned database connector OCID mapping to the database credentials and connection details.') + + +class EnableHostInsightDetails(OpsiRequestModel): + """The information about the host to be analyzed.""" + + entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST'] = Field(..., alias='entitySource', description='Source of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST"') + + +class EnableMacsManagedAutonomousDatabaseInsightDetails(OpsiBaseModel): + """The information about database to be analyzed.""" + + entity_source: Literal['EM_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Gets the entity_source of this EnableDatabaseInsightDetails.\nSource of the database entity.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') + compartment_id: str = Field(..., alias='compartmentId', description='The compartment OCID of the Autonomous Database.') + management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') + connection_details: ConnectionDetails = Field(..., alias='connectionDetails', description='The connection_details field of EnableMacsManagedAutonomousDatabaseInsightDetails.') + connection_credential_details: CredentialDetails = Field(..., alias='connectionCredentialDetails', description='The connection_credential_details field of EnableMacsManagedAutonomousDatabaseInsightDetails.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + + +class EnableMacsManagedCloudDatabaseInsightDetails(OpsiBaseModel): + """The information about database to be analyzed.""" + + entity_source: Literal['EM_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Gets the entity_source of this EnableDatabaseInsightDetails.\nSource of the database entity.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') + compartment_id: str = Field(..., alias='compartmentId', description='The compartment OCID of the External Database.') + management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') + connection_details: ConnectionDetails = Field(..., alias='connectionDetails', description='The connection_details field of EnableMacsManagedCloudDatabaseInsightDetails.') + connection_credential_details: CredentialDetails = Field(..., alias='connectionCredentialDetails', description='The connection_credential_details field of EnableMacsManagedCloudDatabaseInsightDetails.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + + +class EnableMacsManagedCloudExadataInsightDetails(OpsiBaseModel): + """The information about the Exadata system to be analyzed. (ExaCC).""" + + entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA'] = Field(..., alias='entitySource', description='Gets the entity_source of this EnableExadataInsightDetails.\nSource of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA"') + + +class EnableMacsManagedCloudHostInsightDetails(OpsiBaseModel): + """The information about the MACS-managed external host to be analyzed.""" + + entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST'] = Field(..., alias='entitySource', description='Gets the entity_source of this EnableHostInsightDetails.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST"') + + +class EnableMacsManagedExternalHostInsightDetails(OpsiBaseModel): + """The information about the MACS-managed external host to be analyzed.""" + + entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST'] = Field(..., alias='entitySource', description='Gets the entity_source of this EnableHostInsightDetails.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST"') + + +class EnableMdsMySqlDatabaseInsightDetails(OpsiBaseModel): + """MySQL support within the OCI Ops Insights service has been deprecated as of January 29, 2026. The information about database to be analyzed.""" + + entity_source: Literal['EM_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Gets the entity_source of this EnableDatabaseInsightDetails.\nSource of the database entity.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') + + +class EnablePeComanagedDatabaseInsightDetails(OpsiBaseModel): + """The information about database to be analyzed.""" + + entity_source: Literal['EM_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Gets the entity_source of this EnableDatabaseInsightDetails.\nSource of the database entity.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') + compartment_id: str = Field(..., alias='compartmentId', description='The compartment OCID of the Private service accessed database.') + opsi_private_endpoint_id: str = Field(..., alias='opsiPrivateEndpointId', description='The OCID of the OPSI private endpoint.') + service_name: str = Field(..., alias='serviceName', description='Database service name used for connection requests.') + credential_details: CredentialDetails = Field(..., alias='credentialDetails', description='The credential_details field of EnablePeComanagedDatabaseInsightDetails.') + connection_details: PeComanagedDatabaseConnectionDetails | None = Field(None, alias='connectionDetails', description='The connection_details field of EnablePeComanagedDatabaseInsightDetails.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + + +class EnablePeComanagedExadataInsightDetails(OpsiBaseModel): + """The information about the Exadata system to be analyzed. (ExaCS).""" + + entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA'] = Field(..., alias='entitySource', description='Gets the entity_source of this EnableExadataInsightDetails.\nSource of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA"') + + +class EnablePlanExadataInsightDetails(OpsiRequestModel): + """The information about the chargeback plan to be enabled.""" + + plan_id: str = Field(..., alias='planId', description='OCID of OPSI Chargeback plan resource.') + + +class EnterpriseManagerBridge(OpsiBaseModel): + """Enterprise Manager bridge resource.""" + + id: str = Field(..., alias='id', description='Enterprise Manager bridge identifier') + compartment_id: str = Field(..., alias='compartmentId', description='Compartment identifier of the Enterprise Manager bridge') + display_name: str = Field(..., alias='displayName', description='User-friedly name of Enterprise Manager Bridge that does not have to be unique.') + description: str | None = Field(None, alias='description', description='Description of Enterprise Manager Bridge') + object_storage_namespace_name: str = Field(..., alias='objectStorageNamespaceName', description='Object Storage Namespace Name') + object_storage_bucket_name: str = Field(..., alias='objectStorageBucketName', description='Object Storage Bucket Name') + object_storage_bucket_status_details: str | None = Field(None, alias='objectStorageBucketStatusDetails', description='A message describing status of the object storage bucket of this resource. For example, it can be used to provide actionable information about the permission and content validity of the bucket.') + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + time_created: datetime = Field(..., alias='timeCreated', description='The time the the Enterprise Manager bridge was first created. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='The time the Enterprise Manager bridge was updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='The current state of the Enterprise Manager bridge.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + + +class EnterpriseManagerBridgeCollection(OpsiBaseModel): + """Collection of Enterprose Manager bridge summary objects.""" + + items: list[EnterpriseManagerBridgeSummary] = Field(..., alias='items', description='Array of Enterprose Manager bridge summary objects.') + + +class EnterpriseManagerBridgeSummary(OpsiBaseModel): + """Summary of a Enterprise Manager bridge resource.""" + + id: str = Field(..., alias='id', description='Enterprise Manager bridge identifier') + compartment_id: str = Field(..., alias='compartmentId', description='Compartment identifier of the Enterprise Manager bridge') + display_name: str = Field(..., alias='displayName', description='User-friedly name of Enterprise Manager Bridge that does not have to be unique.') + object_storage_namespace_name: str = Field(..., alias='objectStorageNamespaceName', description='Object Storage Namespace Name') + object_storage_bucket_name: str = Field(..., alias='objectStorageBucketName', description='Object Storage Bucket Name') + object_storage_bucket_status_details: str | None = Field(None, alias='objectStorageBucketStatusDetails', description='A message describing status of the object storage bucket of this resource. For example, it can be used to provide actionable information about the permission and content validity of the bucket.') + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + time_created: datetime = Field(..., alias='timeCreated', description='The time the the Enterprise Manager bridge was first created. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='The time the Enterprise Manager bridge was updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='The current state of the Enterprise Manager bridge.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + + +class EnterpriseManagerBridges(OpsiBaseModel): + """Logical grouping used for Ops Insights Enterprise Manager Bridge operations.""" + + enterprise_manager_bridges: Any | None = Field(None, alias='enterpriseManagerBridges', description='Enterprise Manager Bridge Object.') + + +class ExadataAsmEntity(OpsiBaseModel): + """ASM entitie for an exadata.""" + + metric_name: Literal['DB_EXTERNAL_PROPERTIES', 'DB_EXTERNAL_INSTANCE', 'DB_OS_CONFIG_INSTANCE', 'DB_PARAMETERS', 'DB_CONNECTION_STATUS', 'HOST_RESOURCE_ALLOCATION', 'ASM_ENTITY', 'EXADATA_CELL_CONFIG'] = Field(..., alias='metricName', description='Gets the metric_name of this DatabaseConfigurationMetricGroup.\nName of the metric group.\n\nAllowed values for this property are: "DB_EXTERNAL_PROPERTIES", "DB_EXTERNAL_INSTANCE", "DB_OS_CONFIG_INSTANCE", "DB_PARAMETERS", "DB_CONNECTION_STATUS", "HOST_RESOURCE_ALLOCATION", "ASM_ENTITY", "EXADATA_CELL_CONFIG"') + time_collected: datetime | None = Field(None, alias='timeCollected', description='Gets the time_collected of this DatabaseConfigurationMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') + instance_name: str | None = Field(None, alias='instanceName', description='Instance name of ASM') + cluster_name: str | None = Field(None, alias='clusterName', description='Cluster name of ASM') + software_version: str | None = Field(None, alias='softwareVersion', description='Software version') + + +class ExadataCellConfig(OpsiBaseModel): + """Storage server configuration.""" + + metric_name: Literal['DB_EXTERNAL_PROPERTIES', 'DB_EXTERNAL_INSTANCE', 'DB_OS_CONFIG_INSTANCE', 'DB_PARAMETERS', 'DB_CONNECTION_STATUS', 'HOST_RESOURCE_ALLOCATION', 'ASM_ENTITY', 'EXADATA_CELL_CONFIG'] = Field(..., alias='metricName', description='Gets the metric_name of this DatabaseConfigurationMetricGroup.\nName of the metric group.\n\nAllowed values for this property are: "DB_EXTERNAL_PROPERTIES", "DB_EXTERNAL_INSTANCE", "DB_OS_CONFIG_INSTANCE", "DB_PARAMETERS", "DB_CONNECTION_STATUS", "HOST_RESOURCE_ALLOCATION", "ASM_ENTITY", "EXADATA_CELL_CONFIG"') + time_collected: datetime | None = Field(None, alias='timeCollected', description='Gets the time_collected of this DatabaseConfigurationMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') + cell_name: str | None = Field(None, alias='cellName', description='Cell name') + cell_hash: str | None = Field(None, alias='cellHash', description='Cell hash') + cell_properties: str | None = Field(None, alias='cellProperties', description='Cell properties') + cell_configs: str | None = Field(None, alias='cellConfigs', description='Cell configs') + disk_counts: str | None = Field(None, alias='diskCounts', description='Cell disk counts') + + +class ExadataConfigurationCollection(OpsiBaseModel): + """Collection of exadata insight configuration summary objects.""" + + items: list[ExadataConfigurationSummary] = Field(..., alias='items', description='Array of exadata insight configurations summary objects.') + + +class ExadataConfigurationSummary(OpsiBaseModel): + """Summary of a exadata configuration for a resource.""" + + exadata_insight_id: str = Field(..., alias='exadataInsightId', description='The OCID of the Exadata insight.') + entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Source of the exadata entity.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') + exadata_name: str = Field(..., alias='exadataName', description='The Exadata system name. If the Exadata systems managed by Enterprise Manager, the name is unique amongst the Exadata systems managed by the same Enterprise Manager.') + exadata_display_name: str = Field(..., alias='exadataDisplayName', description='The user-friendly name for the Exadata system. The name does not have to be unique.') + exadata_type: Literal['DBMACHINE', 'EXACS', 'EXACC', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataType', description='Operations Insights internal representation of the the Exadata system type.\n\nAllowed values for this property are: "DBMACHINE", "EXACS", "EXACC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + exadata_rack_type: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'FLEX', 'BASE', 'ELASTIC', 'ELASTIC_BASE', 'ELASTIC_LARGE', 'ELASTIC_EXTRA_LARGE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataRackType', description='Exadata rack type.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", "FLEX", "BASE", "ELASTIC", "ELASTIC_BASE", "ELASTIC_LARGE", "ELASTIC_EXTRA_LARGE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + vmcluster_details: list[VmClusterSummary] | None = Field(None, alias='vmclusterDetails', description='Array of objects containing VM cluster information.') + exadata_shape: str = Field(..., alias='exadataShape', description='The shape of the Exadata Infrastructure.') + chargeback_plan_details: ChargebackPlanDetails = Field(..., alias='chargebackPlanDetails', description='The chargeback_plan_details field of ExadataConfigurationSummary.') + + +class ExadataDatabaseMachineConfigurationSummary(OpsiBaseModel): + """Configuration summary of a database machine.""" + + exadata_insight_id: str = Field(..., alias='exadataInsightId', description='Gets the exadata_insight_id of this ExadataConfigurationSummary. The OCID of the Exadata insight.') + entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this ExadataConfigurationSummary.\nSource of the exadata entity.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this ExadataConfigurationSummary. The OCID of the compartment.') + exadata_name: str = Field(..., alias='exadataName', description='Gets the exadata_name of this ExadataConfigurationSummary.\nThe Exadata system name. If the Exadata systems managed by Enterprise Manager, the name is unique amongst the Exadata systems managed by the same Enterprise Manager.') + exadata_display_name: str = Field(..., alias='exadataDisplayName', description='Gets the exadata_display_name of this ExadataConfigurationSummary.\nThe user-friendly name for the Exadata system. The name does not have to be unique.') + exadata_type: Literal['DBMACHINE', 'EXACS', 'EXACC', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataType', description='Gets the exadata_type of this ExadataConfigurationSummary.\nOperations Insights internal representation of the the Exadata system type.\n\nAllowed values for this property are: "DBMACHINE", "EXACS", "EXACC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + exadata_rack_type: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'FLEX', 'BASE', 'ELASTIC', 'ELASTIC_BASE', 'ELASTIC_LARGE', 'ELASTIC_EXTRA_LARGE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataRackType', description='Gets the exadata_rack_type of this ExadataConfigurationSummary.\nExadata rack type.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", "FLEX", "BASE", "ELASTIC", "ELASTIC_BASE", "ELASTIC_LARGE", "ELASTIC_EXTRA_LARGE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this ExadataConfigurationSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this ExadataConfigurationSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + vmcluster_details: list[VmClusterSummary] | None = Field(None, alias='vmclusterDetails', description='Gets the vmcluster_details of this ExadataConfigurationSummary.\nArray of objects containing VM cluster information.') + exadata_shape: str = Field(..., alias='exadataShape', description='Gets the exadata_shape of this ExadataConfigurationSummary.\nThe shape of the Exadata Infrastructure.') + chargeback_plan_details: ChargebackPlanDetails = Field(..., alias='chargebackPlanDetails', description='Gets the chargeback_plan_details of this ExadataConfigurationSummary.') + enterprise_manager_identifier: str = Field(..., alias='enterpriseManagerIdentifier', description='Enterprise Manager Unique Identifier') + enterprise_manager_bridge_id: str = Field(..., alias='enterpriseManagerBridgeId', description='OPSI Enterprise Manager Bridge OCID') + enterprise_manager_entity_identifier: str = Field(..., alias='enterpriseManagerEntityIdentifier', description='Enterprise Manager Entity Unique Identifier') + enterprise_manager_console_url: str = Field(..., alias='enterpriseManagerConsoleUrl', description='Enterprise Manager Console Url') + enterprise_manager_oms_ver: str = Field(..., alias='enterpriseManagerOmsVer', description='Enterprise Manager OMS Version') + enterprise_manager_entity_type: str = Field(..., alias='enterpriseManagerEntityType', description='Enterprise Manager Entity Type') + parent_id: str | None = Field(None, alias='parentId', description='The OCID of the database.') + region: str | None = Field(None, alias='region', description='The region the resource resides in.') + + +class ExadataDatabaseStatisticsSummary(OpsiBaseModel): + """Database details and statistics.""" + + exadata_resource_type: Literal['DATABASE', 'HOST', 'STORAGE_SERVER', 'DISKGROUP', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataResourceType', description='Gets the exadata_resource_type of this ExadataInsightResourceStatisticsAggregation.\nDefines the resource type for an exadata (example: DATABASE, STORAGE_SERVER, HOST, DISKGROUP)\n\nAllowed values for this property are: "DATABASE", "HOST", "STORAGE_SERVER", "DISKGROUP", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + resource_details: DatabaseDetails = Field(..., alias='resourceDetails', description='The resource_details field of ExadataDatabaseStatisticsSummary.') + current_statistics: ExadataInsightResourceStatistics = Field(..., alias='currentStatistics', description='The current_statistics field of ExadataDatabaseStatisticsSummary.') + + +class ExadataDetails(OpsiBaseModel): + """Partial information about the exadata which includes id, name and vmclusterNames.""" + + id: str = Field(..., alias='id', description='The OCID of exadata insight resource.') + name: str = Field(..., alias='name', description='Name of exadata insight resource.') + vmcluster_names: list[str] | None = Field(None, alias='vmclusterNames', description='Array of vm cluster names. Applicable for ExaCC and ExaCS.') + + +class ExadataDiskgroupStatisticsSummary(OpsiBaseModel): + """Diskgroup details and statistics.""" + + exadata_resource_type: Literal['DATABASE', 'HOST', 'STORAGE_SERVER', 'DISKGROUP', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataResourceType', description='Gets the exadata_resource_type of this ExadataInsightResourceStatisticsAggregation.\nDefines the resource type for an exadata (example: DATABASE, STORAGE_SERVER, HOST, DISKGROUP)\n\nAllowed values for this property are: "DATABASE", "HOST", "STORAGE_SERVER", "DISKGROUP", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + resource_details: DiskGroupDetails = Field(..., alias='resourceDetails', description='The resource_details field of ExadataDiskgroupStatisticsSummary.') + current_statistics: ExadataInsightResourceStatistics = Field(..., alias='currentStatistics', description='The current_statistics field of ExadataDiskgroupStatisticsSummary.') + + +class ExadataExaccConfigurationSummary(OpsiBaseModel): + """Configuration summary of a macs managed Exacc exadata machine.""" + + exadata_insight_id: str = Field(..., alias='exadataInsightId', description='Gets the exadata_insight_id of this ExadataConfigurationSummary. The OCID of the Exadata insight.') + entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this ExadataConfigurationSummary.\nSource of the exadata entity.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this ExadataConfigurationSummary. The OCID of the compartment.') + exadata_name: str = Field(..., alias='exadataName', description='Gets the exadata_name of this ExadataConfigurationSummary.\nThe Exadata system name. If the Exadata systems managed by Enterprise Manager, the name is unique amongst the Exadata systems managed by the same Enterprise Manager.') + exadata_display_name: str = Field(..., alias='exadataDisplayName', description='Gets the exadata_display_name of this ExadataConfigurationSummary.\nThe user-friendly name for the Exadata system. The name does not have to be unique.') + exadata_type: Literal['DBMACHINE', 'EXACS', 'EXACC', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataType', description='Gets the exadata_type of this ExadataConfigurationSummary.\nOperations Insights internal representation of the the Exadata system type.\n\nAllowed values for this property are: "DBMACHINE", "EXACS", "EXACC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + exadata_rack_type: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'FLEX', 'BASE', 'ELASTIC', 'ELASTIC_BASE', 'ELASTIC_LARGE', 'ELASTIC_EXTRA_LARGE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataRackType', description='Gets the exadata_rack_type of this ExadataConfigurationSummary.\nExadata rack type.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", "FLEX", "BASE", "ELASTIC", "ELASTIC_BASE", "ELASTIC_LARGE", "ELASTIC_EXTRA_LARGE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this ExadataConfigurationSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this ExadataConfigurationSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + vmcluster_details: list[VmClusterSummary] | None = Field(None, alias='vmclusterDetails', description='Gets the vmcluster_details of this ExadataConfigurationSummary.\nArray of objects containing VM cluster information.') + exadata_shape: str = Field(..., alias='exadataShape', description='Gets the exadata_shape of this ExadataConfigurationSummary.\nThe shape of the Exadata Infrastructure.') + chargeback_plan_details: ChargebackPlanDetails = Field(..., alias='chargebackPlanDetails', description='Gets the chargeback_plan_details of this ExadataConfigurationSummary.') + management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') + parent_id: str = Field(..., alias='parentId', description='The OCID of the database.') + + +class ExadataExacsConfigurationSummary(OpsiBaseModel): + """Configuration summary of a Exacs exadata machine.""" + + exadata_insight_id: str = Field(..., alias='exadataInsightId', description='Gets the exadata_insight_id of this ExadataConfigurationSummary. The OCID of the Exadata insight.') + entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this ExadataConfigurationSummary.\nSource of the exadata entity.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this ExadataConfigurationSummary. The OCID of the compartment.') + exadata_name: str = Field(..., alias='exadataName', description='Gets the exadata_name of this ExadataConfigurationSummary.\nThe Exadata system name. If the Exadata systems managed by Enterprise Manager, the name is unique amongst the Exadata systems managed by the same Enterprise Manager.') + exadata_display_name: str = Field(..., alias='exadataDisplayName', description='Gets the exadata_display_name of this ExadataConfigurationSummary.\nThe user-friendly name for the Exadata system. The name does not have to be unique.') + exadata_type: Literal['DBMACHINE', 'EXACS', 'EXACC', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataType', description='Gets the exadata_type of this ExadataConfigurationSummary.\nOperations Insights internal representation of the the Exadata system type.\n\nAllowed values for this property are: "DBMACHINE", "EXACS", "EXACC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + exadata_rack_type: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'FLEX', 'BASE', 'ELASTIC', 'ELASTIC_BASE', 'ELASTIC_LARGE', 'ELASTIC_EXTRA_LARGE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataRackType', description='Gets the exadata_rack_type of this ExadataConfigurationSummary.\nExadata rack type.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", "FLEX", "BASE", "ELASTIC", "ELASTIC_BASE", "ELASTIC_LARGE", "ELASTIC_EXTRA_LARGE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this ExadataConfigurationSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this ExadataConfigurationSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + vmcluster_details: list[VmClusterSummary] | None = Field(None, alias='vmclusterDetails', description='Gets the vmcluster_details of this ExadataConfigurationSummary.\nArray of objects containing VM cluster information.') + exadata_shape: str = Field(..., alias='exadataShape', description='Gets the exadata_shape of this ExadataConfigurationSummary.\nThe shape of the Exadata Infrastructure.') + chargeback_plan_details: ChargebackPlanDetails = Field(..., alias='chargebackPlanDetails', description='Gets the chargeback_plan_details of this ExadataConfigurationSummary.') + opsi_private_endpoint_id: str = Field(..., alias='opsiPrivateEndpointId', description='The OCID of the OPSI private endpoint.') + parent_id: str = Field(..., alias='parentId', description='The OCID of the database.') + + +class ExadataHostStatisticsSummary(OpsiBaseModel): + """Host details and statistics.""" + + exadata_resource_type: Literal['DATABASE', 'HOST', 'STORAGE_SERVER', 'DISKGROUP', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataResourceType', description='Gets the exadata_resource_type of this ExadataInsightResourceStatisticsAggregation.\nDefines the resource type for an exadata (example: DATABASE, STORAGE_SERVER, HOST, DISKGROUP)\n\nAllowed values for this property are: "DATABASE", "HOST", "STORAGE_SERVER", "DISKGROUP", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + resource_details: HostDetails = Field(..., alias='resourceDetails', description='The resource_details field of ExadataHostStatisticsSummary.') + current_statistics: ExadataInsightResourceStatistics = Field(..., alias='currentStatistics', description='The current_statistics field of ExadataHostStatisticsSummary.') + + +class ExadataInsight(OpsiBaseModel): + """Exadata insight resource.""" + + entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Source of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + id: str = Field(..., alias='id', description='Exadata insight identifier') + compartment_id: str = Field(..., alias='compartmentId', description='Compartment identifier of the Exadata insight resource') + exadata_name: str = Field(..., alias='exadataName', description='The Exadata system name. If the Exadata systems managed by Enterprise Manager, the name is unique amongst the Exadata systems managed by the same Enterprise Manager.') + exadata_display_name: str | None = Field(None, alias='exadataDisplayName', description='The user-friendly name for the Exadata system. The name does not have to be unique.') + exadata_type: Literal['DBMACHINE', 'EXACS', 'EXACC', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='exadataType', description='Operations Insights internal representation of the the Exadata system type.\n\nAllowed values for this property are: "DBMACHINE", "EXACS", "EXACC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + exadata_rack_type: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'FLEX', 'BASE', 'ELASTIC', 'ELASTIC_BASE', 'ELASTIC_LARGE', 'ELASTIC_EXTRA_LARGE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='exadataRackType', description='Exadata rack type.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", "FLEX", "BASE", "ELASTIC", "ELASTIC_BASE", "ELASTIC_LARGE", "ELASTIC_EXTRA_LARGE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + is_virtualized_exadata: bool | None = Field(None, alias='isVirtualizedExadata', description='true if virtualization is used in the Exadata system') + status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Indicates the status of an Exadata insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + chargeback_plan_details: ChargebackPlanDetails | None = Field(None, alias='chargebackPlanDetails', description='The chargeback_plan_details field of ExadataInsight.') + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + time_created: datetime = Field(..., alias='timeCreated', description='The time the the Exadata insight was first enabled. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='The time the Exadata insight was updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='The current state of the Exadata insight.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + status_details: str | None = Field(None, alias='statusDetails', description='A message describing the status of the Exadata Resource. For example, it can be used to provide actionable information about the policies needed to access the Exadata Resource.') + + +class ExadataInsightResourceCapacityTrendAggregation(OpsiBaseModel): + """Resource Capacity samples.""" + + end_timestamp: datetime = Field(..., alias='endTimestamp', description='The timestamp in which the current sampling period ends in RFC 3339 format.') + capacity: float = Field(..., alias='capacity', description='The maximum allocated amount of the resource metric type (CPU, STORAGE) for a set of databases.') + total_host_capacity: float | None = Field(None, alias='totalHostCapacity', description='The maximum host CPUs (cores x threads/core) on the underlying infrastructure. This only applies to CPU and does not not apply for Autonomous Databases.') + + +class ExadataInsightResourceCapacityTrendSummary(OpsiBaseModel): + """List of resource id, name, capacity time series data.""" + + id: str = Field(..., alias='id', description='The OCID of the database insight resource.') + name: str = Field(..., alias='name', description='The name of the resource.') + capacity_data: list[ExadataInsightResourceCapacityTrendAggregation] = Field(..., alias='capacityData', description='Time series data for capacity') + + +class ExadataInsightResourceForecastTrendSummary(OpsiBaseModel): + """List of resource id, name, capacity insight value, pattern, historical usage and projected data.""" + + id: str = Field(..., alias='id', description='The OCID of the database insight resource.') + name: str = Field(..., alias='name', description='The name of the resource.') + days_to_reach_capacity: int = Field(..., alias='daysToReachCapacity', description='Days to reach capacity for a storage server') + selected_forecast_algorithm: str | None = Field(None, alias='selectedForecastAlgorithm', description='Auto-ML algorithm leveraged for the forecast. Only applicable for Auto-ML forecast.') + pattern: Literal['LINEAR', 'MONTHLY_SEASONS', 'MONTHLY_AND_YEARLY_SEASONS', 'WEEKLY_SEASONS', 'WEEKLY_AND_MONTHLY_SEASONS', 'WEEKLY_MONTHLY_AND_YEARLY_SEASONS', 'WEEKLY_AND_YEARLY_SEASONS', 'YEARLY_SEASONS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='pattern', description='Time series patterns used in the forecasting.\n\nAllowed values for this property are: "LINEAR", "MONTHLY_SEASONS", "MONTHLY_AND_YEARLY_SEASONS", "WEEKLY_SEASONS", "WEEKLY_AND_MONTHLY_SEASONS", "WEEKLY_MONTHLY_AND_YEARLY_SEASONS", "WEEKLY_AND_YEARLY_SEASONS", "YEARLY_SEASONS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + historical_data: list[HistoricalDataItem] = Field(..., alias='historicalData', description='Time series data used for the forecast analysis.') + projected_data: list[ProjectedDataItem] = Field(..., alias='projectedData', description='Time series data result of the forecasting analysis.') + + +class ExadataInsightResourceInsightUtilizationItem(OpsiBaseModel): + """Object containing current utilization, projected utilization, id and daysToReach high and low utilization value.""" + + exadata_insight_id: str = Field(..., alias='exadataInsightId', description='The OCID of the Exadata insight.') + exadata_display_name: str | None = Field(None, alias='exadataDisplayName', description='The user-friendly name for the Exadata system. The name does not have to be unique.') + current_utilization: float = Field(..., alias='currentUtilization', description='Current utilization') + projected_utilization: float = Field(..., alias='projectedUtilization', description='Projected utilization') + days_to_reach_high_utilization: int = Field(..., alias='daysToReachHighUtilization', description='Days to reach projected high utilization') + days_to_reach_low_utilization: int = Field(..., alias='daysToReachLowUtilization', description='Days to reach projected low utilization') + + +class ExadataInsightResourceStatistics(OpsiBaseModel): + """Contains resource statistics with usage unit.""" + + usage: float = Field(..., alias='usage', description='Total amount used of the resource metric type (CPU, STORAGE).') + capacity: float = Field(..., alias='capacity', description='The maximum allocated amount of the resource metric type (CPU, STORAGE) for a set of databases.') + total_host_capacity: float | None = Field(None, alias='totalHostCapacity', description='The maximum host CPUs (cores x threads/core) on the underlying infrastructure. This only applies to CPU and does not not apply for Autonomous Databases.') + utilization_percent: float = Field(..., alias='utilizationPercent', description='Resource utilization in percentage') + usage_change_percent: float = Field(..., alias='usageChangePercent', description='Change in resource utilization in percentage') + instance_metrics: list[InstanceMetrics] | None = Field(None, alias='instanceMetrics', description='Array of instance metrics') + + +class ExadataInsightResourceStatisticsAggregation(OpsiBaseModel): + """Contains resource details and current statistics.""" + + exadata_resource_type: Literal['DATABASE', 'HOST', 'STORAGE_SERVER', 'DISKGROUP', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataResourceType', description='Defines the resource type for an exadata (example: DATABASE, STORAGE_SERVER, HOST, DISKGROUP)\n\nAllowed values for this property are: "DATABASE", "HOST", "STORAGE_SERVER", "DISKGROUP", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class ExadataInsightSummary(OpsiBaseModel): + """Summary of an Exadata insight resource.""" + + entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Source of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + id: str = Field(..., alias='id', description='The OCID of the Exadata insight resource.') + compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') + exadata_name: str = Field(..., alias='exadataName', description='The Exadata system name. If the Exadata systems managed by Enterprise Manager, the name is unique amongst the Exadata systems managed by the same Enterprise Manager.') + exadata_display_name: str | None = Field(None, alias='exadataDisplayName', description='The user-friendly name for the Exadata system. The name does not have to be unique.') + exadata_type: Literal['DBMACHINE', 'EXACS', 'EXACC', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='exadataType', description='Operations Insights internal representation of the the Exadata system type.\n\nAllowed values for this property are: "DBMACHINE", "EXACS", "EXACC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + exadata_rack_type: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'FLEX', 'BASE', 'ELASTIC', 'ELASTIC_BASE', 'ELASTIC_LARGE', 'ELASTIC_EXTRA_LARGE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='exadataRackType', description='Operations Insights internal representation of the the Exadata system rack type.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", "FLEX", "BASE", "ELASTIC", "ELASTIC_BASE", "ELASTIC_LARGE", "ELASTIC_EXTRA_LARGE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Indicates the status of an Exadata insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + chargeback_plan_details: ChargebackPlanDetails | None = Field(None, alias='chargebackPlanDetails', description='The chargeback_plan_details field of ExadataInsightSummary.') + time_created: datetime = Field(..., alias='timeCreated', description='The time the the Exadata insight was first enabled. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='The time the Exadata insight was updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='The current state of the Exadata insight.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + status_details: str | None = Field(None, alias='statusDetails', description='A message describing the status of the Exadata Resource. For example, it can be used to provide actionable information about the policies needed to access the Exadata Resource.') + + +class ExadataInsightSummaryCollection(OpsiBaseModel): + """Collection of Exadata insight summary objects.""" + + items: list[ExadataInsightSummary] = Field(..., alias='items', description='Array of Exadata insight summary objects.') + + +class ExadataInsights(OpsiBaseModel): + """Logical grouping used for Operations Insights Exadata related operations.""" + + exadata_insights: Any | None = Field(None, alias='exadataInsights', description='Exadata Insights Object.') + + +class ExadataInsightsDataObject(OpsiBaseModel): + """Exadata insights data object.""" + + identifier: str = Field(..., alias='identifier', description='Gets the identifier of this OpsiDataObject.\nUnique identifier of OPSI data object.') + data_object_type: Literal['DATABASE_INSIGHTS_DATA_OBJECT', 'HOST_INSIGHTS_DATA_OBJECT', 'EXADATA_INSIGHTS_DATA_OBJECT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dataObjectType', description='Gets the data_object_type of this OpsiDataObject.\nType of OPSI data object.\n\nAllowed values for this property are: "DATABASE_INSIGHTS_DATA_OBJECT", "HOST_INSIGHTS_DATA_OBJECT", "EXADATA_INSIGHTS_DATA_OBJECT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + display_name: str = Field(..., alias='displayName', description='Gets the display_name of this OpsiDataObject.\nUser-friendly name of OPSI data object.') + description: str | None = Field(None, alias='description', description='Gets the description of this OpsiDataObject.\nDescription of OPSI data object.') + name: str | None = Field(None, alias='name', description='Gets the name of this OpsiDataObject.\nName of the data object, which can be used in data object queries just like how view names are used in a query.') + group_names: list[str] | None = Field(None, alias='groupNames', description='Gets the group_names of this OpsiDataObject.\nNames of all the groups to which the data object belongs to.') + supported_query_time_period: str | None = Field(None, alias='supportedQueryTimePeriod', description='Gets the supported_query_time_period of this OpsiDataObject.\nTime period supported by the data object for quering data.\nTime period is in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D.\nExamples: P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months).') + columns_metadata: list[DataObjectColumnMetadata] = Field(..., alias='columnsMetadata', description='Gets the columns_metadata of this OpsiDataObject.\nMetadata of columns in a data object.') + supported_query_params: list[OpsiDataObjectSupportedQueryParam] | None = Field(None, alias='supportedQueryParams', description='Gets the supported_query_params of this OpsiDataObject.\nSupported query parameters by this OPSI data object that can be configured while a data object query involving this data object is executed.') + + +class ExadataInsightsDataObjectSummary(OpsiBaseModel): + """Summary of an exadata insights data object.""" + + identifier: str = Field(..., alias='identifier', description='Gets the identifier of this OpsiDataObjectSummary.\nUnique identifier of OPSI data object.') + data_object_type: Literal['DATABASE_INSIGHTS_DATA_OBJECT', 'HOST_INSIGHTS_DATA_OBJECT', 'EXADATA_INSIGHTS_DATA_OBJECT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dataObjectType', description='Gets the data_object_type of this OpsiDataObjectSummary.\nType of OPSI data object.\n\nAllowed values for this property are: "DATABASE_INSIGHTS_DATA_OBJECT", "HOST_INSIGHTS_DATA_OBJECT", "EXADATA_INSIGHTS_DATA_OBJECT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + display_name: str = Field(..., alias='displayName', description='Gets the display_name of this OpsiDataObjectSummary.\nUser-friendly name of OPSI data object.') + description: str | None = Field(None, alias='description', description='Gets the description of this OpsiDataObjectSummary.\nDescription of OPSI data object.') + name: str | None = Field(None, alias='name', description='Gets the name of this OpsiDataObjectSummary.\nName of the data object, which can be used in data object queries just like how view names are used in a query.') + group_names: list[str] | None = Field(None, alias='groupNames', description='Gets the group_names of this OpsiDataObjectSummary.\nNames of all the groups to which the data object belongs to.') + + +class ExadataMemberCollection(OpsiBaseModel): + """Partial definition of the exadata insight resource.""" + + exadata_insight_id: str = Field(..., alias='exadataInsightId', description='The OCID of the Exadata insight.') + exadata_name: str = Field(..., alias='exadataName', description='The Exadata system name. If the Exadata systems managed by Enterprise Manager, the name is unique amongst the Exadata systems managed by the same Enterprise Manager.') + exadata_display_name: str = Field(..., alias='exadataDisplayName', description='The user-friendly name for the Exadata system. The name does not have to be unique.') + exadata_type: Literal['DBMACHINE', 'EXACS', 'EXACC', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataType', description='Operations Insights internal representation of the the Exadata system type.\n\nAllowed values for this property are: "DBMACHINE", "EXACS", "EXACC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + exadata_rack_type: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'FLEX', 'BASE', 'ELASTIC', 'ELASTIC_BASE', 'ELASTIC_LARGE', 'ELASTIC_EXTRA_LARGE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataRackType', description='Exadata rack type.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", "FLEX", "BASE", "ELASTIC", "ELASTIC_BASE", "ELASTIC_LARGE", "ELASTIC_EXTRA_LARGE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + items: list[ExadataMemberSummary] = Field(..., alias='items', description='Collection of Exadata members') + + +class ExadataMemberSummary(OpsiBaseModel): + """Lists name, display name and type of exadata member.""" + + name: str = Field(..., alias='name', description='Name of exadata member target') + display_name: str = Field(..., alias='displayName', description='Display Name of exadata member target') + entity_type: Literal['DATABASE', 'ILOM_SERVER', 'PDU', 'STORAGE_SERVER', 'CLUSTER_ASM', 'INFINIBAND_SWITCH', 'ETHERNET_SWITCH', 'HOST', 'VM_CLUSTER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entityType', description='Entity type of exadata member target\n\nAllowed values for this property are: "DATABASE", "ILOM_SERVER", "PDU", "STORAGE_SERVER", "CLUSTER_ASM", "INFINIBAND_SWITCH", "ETHERNET_SWITCH", "HOST", "VM_CLUSTER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class ExadataStorageServerStatisticsSummary(OpsiBaseModel): + """Storage server details and statistics.""" + + exadata_resource_type: Literal['DATABASE', 'HOST', 'STORAGE_SERVER', 'DISKGROUP', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataResourceType', description='Gets the exadata_resource_type of this ExadataInsightResourceStatisticsAggregation.\nDefines the resource type for an exadata (example: DATABASE, STORAGE_SERVER, HOST, DISKGROUP)\n\nAllowed values for this property are: "DATABASE", "HOST", "STORAGE_SERVER", "DISKGROUP", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + resource_details: StorageServerDetails = Field(..., alias='resourceDetails', description='The resource_details field of ExadataStorageServerStatisticsSummary.') + current_statistics: ExadataInsightResourceStatistics = Field(..., alias='currentStatistics', description='The current_statistics field of ExadataStorageServerStatisticsSummary.') + + +class ExternalMysqlDatabaseConfigurationSummary(OpsiBaseModel): + """Configuration Summary of a External MySQL database.""" + + database_insight_id: str = Field(..., alias='databaseInsightId', description='Gets the database_insight_id of this DatabaseConfigurationSummary. The OCID of the database insight resource.') + entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseConfigurationSummary.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this DatabaseConfigurationSummary. The OCID of the compartment.') + database_name: str = Field(..., alias='databaseName', description='Gets the database_name of this DatabaseConfigurationSummary.\nThe database name. The database name is unique within the tenancy.') + database_display_name: str = Field(..., alias='databaseDisplayName', description='Gets the database_display_name of this DatabaseConfigurationSummary.\nThe user-friendly name for the database. The name does not have to be unique.') + database_type: str = Field(..., alias='databaseType', description='Gets the database_type of this DatabaseConfigurationSummary.\nOps Insights internal representation of the database type.') + database_version: str = Field(..., alias='databaseVersion', description='Gets the database_version of this DatabaseConfigurationSummary.\nThe version of the database.') + is_advanced_features_enabled: bool = Field(..., alias='isAdvancedFeaturesEnabled', description='Gets the is_advanced_features_enabled of this DatabaseConfigurationSummary.\nFlag is to identify if advanced features for autonomous database is enabled or not') + cdb_name: str = Field(..., alias='cdbName', description='Gets the cdb_name of this DatabaseConfigurationSummary.\nName of the CDB.Only applies to PDB.') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this DatabaseConfigurationSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this DatabaseConfigurationSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseConfigurationSummary.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) + database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') + agent_id: str = Field(..., alias='agentId', description='The OCID of the Management Agent.') + database_connector_id: str = Field(..., alias='databaseConnectorId', description='The DBM owned database connector OCID mapping to the database credentials and connection details.') + + +class ExternalMysqlDatabaseInsight(OpsiBaseModel): + """MySQL support within the OCI Ops Insights service has been deprecated as of January 29, 2026. Database insight resource.""" + + entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseInsight.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + id: str = Field(..., alias='id', description='Gets the id of this DatabaseInsight.\nDatabase insight identifier') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this DatabaseInsight.\nCompartment identifier of the database') + status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Gets the status of this DatabaseInsight.\nIndicates the status of a database insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_type: str | None = Field(None, alias='databaseType', description='Gets the database_type of this DatabaseInsight.\nOps Insights internal representation of the database type.') + database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this DatabaseInsight.\nThe version of the database.') + processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseInsight.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this DatabaseInsight.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this DatabaseInsight.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this DatabaseInsight.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + time_created: datetime = Field(..., alias='timeCreated', description='Gets the time_created of this DatabaseInsight.\nThe time the the database insight was first enabled. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DatabaseInsight.\nThe time the database insight was updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Gets the lifecycle_state of this DatabaseInsight.\nThe current state of the database.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DatabaseInsight.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + database_connection_status_details: str | None = Field(None, alias='databaseConnectionStatusDetails', description='Gets the database_connection_status_details of this DatabaseInsight.\nA message describing the status of the database connection of this resource. For example, it can be used to provide actionable information about the permission and content validity of the database connection.') + database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') + database_name: str = Field(..., alias='databaseName', description='Name of database') + database_display_name: str | None = Field(None, alias='databaseDisplayName', description='Display name of database') + + +class ExternalMysqlDatabaseInsightSummary(OpsiBaseModel): + """MySQL support within the OCI Ops Insights service has been deprecated as of January 29, 2026. Summary of a database insight resource.""" + + id: str = Field(..., alias='id', description='Gets the id of this DatabaseInsightSummary. The OCID of the database insight resource.') + database_id: str = Field(..., alias='databaseId', description='Gets the database_id of this DatabaseInsightSummary. The OCID of the database.') + compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this DatabaseInsightSummary. The OCID of the compartment.') + database_name: str | None = Field(None, alias='databaseName', description='Gets the database_name of this DatabaseInsightSummary.\nThe database name. The database name is unique within the tenancy.') + database_display_name: str | None = Field(None, alias='databaseDisplayName', description='Gets the database_display_name of this DatabaseInsightSummary.\nThe user-friendly name for the database. The name does not have to be unique.') + database_type: str | None = Field(None, alias='databaseType', description='Gets the database_type of this DatabaseInsightSummary.\nOps Insights internal representation of the database type.') + database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this DatabaseInsightSummary.\nThe version of the database.') + database_host_names: list[str] | None = Field(None, alias='databaseHostNames', description='Gets the database_host_names of this DatabaseInsightSummary.\nThe hostnames for the database.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this DatabaseInsightSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this DatabaseInsightSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this DatabaseInsightSummary.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseInsightSummary.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseInsightSummary.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) + status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='status', description='Gets the status of this DatabaseInsightSummary.\nIndicates the status of a database insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DatabaseInsightSummary.\nThe time the the database insight was first enabled. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DatabaseInsightSummary.\nThe time the database insight was updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DatabaseInsightSummary.\nThe current state of the database.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DatabaseInsightSummary.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + database_connection_status_details: str | None = Field(None, alias='databaseConnectionStatusDetails', description='Gets the database_connection_status_details of this DatabaseInsightSummary.\nA message describing the status of the database connection of this resource. For example, it can be used to provide actionable information about the permission and content validity of the database connection.') + agent_id: str = Field(..., alias='agentId', description='The OCID of the Management Agent.') + database_resource_type: str | None = Field(None, alias='databaseResourceType', description='OCI database resource type') + database_connector_id: str | None = Field(None, alias='databaseConnectorId', description='The DBM owned database connector OCID mapping to the database credentials and connection details.') + + +class HistoricalDataItem(OpsiBaseModel): + """The historical timestamp and the corresponding resource value.""" + + end_timestamp: datetime = Field(..., alias='endTimestamp', description='The timestamp in which the current sampling period ends in RFC 3339 format.') + usage: float = Field(..., alias='usage', description='Total amount used of the resource metric type (CPU, STORAGE).') + + +class HostAllocation(OpsiBaseModel): + """Resource Allocation metric for the host.""" + + metric_name: Literal['DB_EXTERNAL_PROPERTIES', 'DB_EXTERNAL_INSTANCE', 'DB_OS_CONFIG_INSTANCE', 'DB_PARAMETERS', 'DB_CONNECTION_STATUS', 'HOST_RESOURCE_ALLOCATION', 'ASM_ENTITY', 'EXADATA_CELL_CONFIG'] = Field(..., alias='metricName', description='Gets the metric_name of this DatabaseConfigurationMetricGroup.\nName of the metric group.\n\nAllowed values for this property are: "DB_EXTERNAL_PROPERTIES", "DB_EXTERNAL_INSTANCE", "DB_OS_CONFIG_INSTANCE", "DB_PARAMETERS", "DB_CONNECTION_STATUS", "HOST_RESOURCE_ALLOCATION", "ASM_ENTITY", "EXADATA_CELL_CONFIG"') + time_collected: datetime | None = Field(None, alias='timeCollected', description='Gets the time_collected of this DatabaseConfigurationMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') + resource_name: str | None = Field(None, alias='resourceName', description='Name of the host resource') + resource_value: int | None = Field(None, alias='resourceValue', description='Value of the host resource') + + +class HostConfigurationCollection(OpsiBaseModel): + """Collection of host insight configuration summary objects.""" + + items: list[HostConfigurationSummary] = Field(..., alias='items', description='Array of host insight configurations summary objects.') + + +class HostConfigurationMetricGroup(OpsiBaseModel): + """Base Metric Group for Host configuration metrics.""" + + metric_name: Literal['HOST_PRODUCT', 'HOST_RESOURCE_ALLOCATION', 'HOST_MEMORY_CONFIGURATION', 'HOST_HARDWARE_CONFIGURATION', 'HOST_CPU_HARDWARE_CONFIGURATION', 'HOST_NETWORK_CONFIGURATION', 'HOST_ENTITES', 'HOST_FILESYSTEM_CONFIGURATION', 'HOST_GPU_CONFIGURATION', 'HOST_CONTAINERS'] = Field(..., alias='metricName', description='Name of the metric group\n\nAllowed values for this property are: "HOST_PRODUCT", "HOST_RESOURCE_ALLOCATION", "HOST_MEMORY_CONFIGURATION", "HOST_HARDWARE_CONFIGURATION", "HOST_CPU_HARDWARE_CONFIGURATION", "HOST_NETWORK_CONFIGURATION", "HOST_ENTITES", "HOST_FILESYSTEM_CONFIGURATION", "HOST_GPU_CONFIGURATION", "HOST_CONTAINERS"') + time_collected: datetime = Field(..., alias='timeCollected', description='Collection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') + + +class HostConfigurationSummary(OpsiBaseModel): + """Summary of a host configuration for a resource.""" + + host_insight_id: str = Field(..., alias='hostInsightId', description='The OCID of the host insight resource.') + entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Source of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') + host_name: str | None = Field(None, alias='hostName', description='The host name. The host name is unique amongst the hosts managed by the same management agent.') + platform_type: Literal['LINUX', 'SOLARIS', 'SUNOS', 'ZLINUX', 'WINDOWS', 'AIX', 'HP_UX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='platformType', description='Platform type.\nSupported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS].\nSupported platformType(s) for MACS-managed cloud host insight: [LINUX].\nSupported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX].\n\nAllowed values for this property are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + platform_version: str | None = Field(None, alias='platformVersion', description='Platform version.') + platform_vendor: str | None = Field(None, alias='platformVendor', description='Platform vendor.') + total_cpus: int = Field(..., alias='totalCpus', description='Total CPU on this host.') + total_memory_in_gbs: float = Field(..., alias='totalMemoryInGBs', description='Total amount of usable physical memory in gibabytes') + cpu_architecture: str | None = Field(None, alias='cpuArchitecture', description='CPU architechure') + cpu_cache_in_mbs: float = Field(..., alias='cpuCacheInMBs', description='Size of cache memory in megabytes.') + cpu_vendor: str | None = Field(None, alias='cpuVendor', description='Name of the CPU vendor.') + cpu_frequency_in_mhz: float = Field(..., alias='cpuFrequencyInMhz', description='Clock frequency of the processor in megahertz.') + cpu_implementation: str | None = Field(None, alias='cpuImplementation', description='Model name of processor.') + cores_per_socket: int = Field(..., alias='coresPerSocket', description='Number of cores per socket.') + total_sockets: int = Field(..., alias='totalSockets', description='Number of total sockets.') + threads_per_socket: int = Field(..., alias='threadsPerSocket', description='Number of threads per socket.') + is_hyper_threading_enabled: bool = Field(..., alias='isHyperThreadingEnabled', description='Indicates if hyper-threading is enabled or not') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + + +class HostContainers(OpsiBaseModel): + """Host Containers details.""" + + metric_name: Literal['HOST_PRODUCT', 'HOST_RESOURCE_ALLOCATION', 'HOST_MEMORY_CONFIGURATION', 'HOST_HARDWARE_CONFIGURATION', 'HOST_CPU_HARDWARE_CONFIGURATION', 'HOST_NETWORK_CONFIGURATION', 'HOST_ENTITES', 'HOST_FILESYSTEM_CONFIGURATION', 'HOST_GPU_CONFIGURATION', 'HOST_CONTAINERS'] = Field(..., alias='metricName', description='Gets the metric_name of this HostConfigurationMetricGroup.\nName of the metric group\n\nAllowed values for this property are: "HOST_PRODUCT", "HOST_RESOURCE_ALLOCATION", "HOST_MEMORY_CONFIGURATION", "HOST_HARDWARE_CONFIGURATION", "HOST_CPU_HARDWARE_CONFIGURATION", "HOST_NETWORK_CONFIGURATION", "HOST_ENTITES", "HOST_FILESYSTEM_CONFIGURATION", "HOST_GPU_CONFIGURATION", "HOST_CONTAINERS"') + time_collected: datetime = Field(..., alias='timeCollected', description='Gets the time_collected of this HostConfigurationMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') + container_id: str | None = Field(None, alias='containerId', description='Container Id (full)') + container_name: str | None = Field(None, alias='containerName', description='Container Name') + container_image: str | None = Field(None, alias='containerImage', description='Container Image') + container_image_tag: str | None = Field(None, alias='containerImageTag', description='Container Image Tag (version)') + container_image_digest: str | None = Field(None, alias='containerImageDigest', description='Container Image Digest') + container_ports: str | None = Field(None, alias='containerPorts', description='Container open ports') + + +class HostCpuHardwareConfiguration(OpsiBaseModel): + """CPU Hardware Configuration metric for the host.""" + + metric_name: Literal['HOST_PRODUCT', 'HOST_RESOURCE_ALLOCATION', 'HOST_MEMORY_CONFIGURATION', 'HOST_HARDWARE_CONFIGURATION', 'HOST_CPU_HARDWARE_CONFIGURATION', 'HOST_NETWORK_CONFIGURATION', 'HOST_ENTITES', 'HOST_FILESYSTEM_CONFIGURATION', 'HOST_GPU_CONFIGURATION', 'HOST_CONTAINERS'] = Field(..., alias='metricName', description='Gets the metric_name of this HostConfigurationMetricGroup.\nName of the metric group\n\nAllowed values for this property are: "HOST_PRODUCT", "HOST_RESOURCE_ALLOCATION", "HOST_MEMORY_CONFIGURATION", "HOST_HARDWARE_CONFIGURATION", "HOST_CPU_HARDWARE_CONFIGURATION", "HOST_NETWORK_CONFIGURATION", "HOST_ENTITES", "HOST_FILESYSTEM_CONFIGURATION", "HOST_GPU_CONFIGURATION", "HOST_CONTAINERS"') + time_collected: datetime = Field(..., alias='timeCollected', description='Gets the time_collected of this HostConfigurationMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') + total_sockets: int | None = Field(None, alias='totalSockets', description='Total number of CPU Sockets') + vendor_name: str | None = Field(None, alias='vendorName', description='Name of the CPU vendor') + frequency_in_mhz: float | None = Field(None, alias='frequencyInMhz', description='Clock frequency of the processor in megahertz') + cache_in_mb: float | None = Field(None, alias='cacheInMB', description='Size of cache memory in megabytes') + cpu_implementation: str | None = Field(None, alias='cpuImplementation', description='Model name of processor') + model: str | None = Field(None, alias='model', description='CPU model') + cpu_family: str | None = Field(None, alias='cpuFamily', description='Type of processor in the system') + cores_per_socket: int | None = Field(None, alias='coresPerSocket', description='Number of cores per socket') + threads_per_socket: int | None = Field(None, alias='threadsPerSocket', description='Number of threads per socket') + hyper_threading_enabled: str | None = Field(None, alias='hyperThreadingEnabled', description='Indicates if hyper-threading is enabled or not') + + +class HostCpuRecommendations(OpsiBaseModel): + """Contains CPU recommendation.""" + + metric_recommendation_name: Literal['HOST_CPU_RECOMMENDATIONS', 'HOST_MEMORY_RECOMMENDATIONS', 'HOST_NETWORK_RECOMMENDATIONS', 'HOST_STORAGE_RECOMMENDATIONS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='metricRecommendationName', description='Gets the metric_recommendation_name of this HostInsightHostRecommendations.\nName of recommendations depending of resource metric received.\n\nAllowed values for this property are: "HOST_CPU_RECOMMENDATIONS", "HOST_MEMORY_RECOMMENDATIONS", "HOST_NETWORK_RECOMMENDATIONS", "HOST_STORAGE_RECOMMENDATIONS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + burstable: Literal['BASELINE_1_8', 'BASELINE_1_2', 'NO_RECOMMENDATION', 'DISABLE_BURSTABLE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='burstable', description='Show if OPSI recommends to convert an instance to a burstable instance and show recommended cpu baseline if positive recommendation.\n\nAllowed values for this property are: "BASELINE_1_8", "BASELINE_1_2", "NO_RECOMMENDATION", "DISABLE_BURSTABLE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + shape: str | None = Field(None, alias='shape', description='Show if OPSI recommends to change the shape of an instance and show recommended shape based on CPU utilization.') + unused_instance: Literal['IN_USE', 'NOT_IN_USE', 'IS_NOT_DETERMINED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='unusedInstance', description='Identify unused instances based on cpu, memory and network metrics.\n\nAllowed values for this property are: "IN_USE", "NOT_IN_USE", "IS_NOT_DETERMINED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + is_abandoned_instance: bool | None = Field(None, alias='isAbandonedInstance', description='Identify if an instance is abandoned.') + + +class HostCpuStatistics(OpsiBaseModel): + """Contains CPU statistics.""" + + usage: float = Field(..., alias='usage', description='Gets the usage of this HostResourceStatistics.\nTotal amount used of the resource metric type (CPU, STORAGE).') + capacity: float = Field(..., alias='capacity', description='Gets the capacity of this HostResourceStatistics.\nThe maximum allocated amount of the resource metric type (CPU, STORAGE) for a set of databases.') + utilization_percent: float = Field(..., alias='utilizationPercent', description='Gets the utilization_percent of this HostResourceStatistics.\nResource utilization in percentage.') + usage_change_percent: float = Field(..., alias='usageChangePercent', description='Gets the usage_change_percent of this HostResourceStatistics.\nChange in resource utilization in percentage') + resource_name: Literal['HOST_CPU_STATISTICS', 'HOST_MEMORY_STATISTICS', 'HOST_STORAGE_STATISTICS', 'HOST_NETWORK_STATISTICS', 'HOST_IO_STATISTICS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceName', description='Gets the resource_name of this HostResourceStatistics.\nName of resource for host\n\nAllowed values for this property are: "HOST_CPU_STATISTICS", "HOST_MEMORY_STATISTICS", "HOST_STORAGE_STATISTICS", "HOST_NETWORK_STATISTICS", "HOST_IO_STATISTICS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + cpu_baseline: float | None = Field(None, alias='cpuBaseline', description='The baseline utilization is a fraction of each CPU core expressed in percentages, either 12.5% or 50%. The baseline provides the minimum CPUs that can be used constantly.') + load: SummaryStatistics | None = Field(None, alias='load', description='The load field of HostCpuStatistics.') + + +class HostCpuUsage(OpsiBaseModel): + """CPU Usage metric for the host.""" + + metric_name: Literal['HOST_CPU_USAGE', 'HOST_MEMORY_USAGE', 'HOST_NETWORK_ACTIVITY_SUMMARY', 'HOST_TOP_PROCESSES', 'HOST_FILESYSTEM_USAGE', 'HOST_GPU_USAGE', 'HOST_GPU_PROCESSES', 'HOST_IO_USAGE'] = Field(..., alias='metricName', description='Gets the metric_name of this HostPerformanceMetricGroup.\nName of the metric group\n\nAllowed values for this property are: "HOST_CPU_USAGE", "HOST_MEMORY_USAGE", "HOST_NETWORK_ACTIVITY_SUMMARY", "HOST_TOP_PROCESSES", "HOST_FILESYSTEM_USAGE", "HOST_GPU_USAGE", "HOST_GPU_PROCESSES", "HOST_IO_USAGE"') + time_collected: datetime = Field(..., alias='timeCollected', description='Gets the time_collected of this HostPerformanceMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') + cpu_user_mode_in_percent: float | None = Field(None, alias='cpuUserModeInPercent', description='Percentage of CPU time spent in user mode') + cpu_system_mode_in_percent: float | None = Field(None, alias='cpuSystemModeInPercent', description='Percentage of CPU time spent in system mode') + cpu_usage_in_sec: float | None = Field(None, alias='cpuUsageInSec', description='Amount of CPU Time spent in seconds') + cpu_utilization_in_percent: float | None = Field(None, alias='cpuUtilizationInPercent', description='Amount of CPU Time spent in percentage') + cpu_stolen_in_percent: float | None = Field(None, alias='cpuStolenInPercent', description='Amount of CPU time stolen in percentage') + cpu_idle_in_percent: float | None = Field(None, alias='cpuIdleInPercent', description='Amount of CPU idle time in percentage') + cpu_load1min: float | None = Field(None, alias='cpuLoad1min', description='Load average in the last 1 minute') + cpu_load5min: float | None = Field(None, alias='cpuLoad5min', description='Load average in the last 5 minutes') + cpu_load15min: float | None = Field(None, alias='cpuLoad15min', description='Load average in the last 15 minutes') + + +class HostDetails(OpsiBaseModel): + """Partial information about a host which includes id, name, type.""" + + id: str = Field(..., alias='id', description='The OCID of the host.') + compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') + host_name: str | None = Field(None, alias='hostName', description='The host name. The host name is unique amongst the hosts managed by the same management agent.') + host_display_name: str | None = Field(None, alias='hostDisplayName', description='The user-friendly name for the host. The name does not have to be unique.') + platform_type: Literal['LINUX', 'SOLARIS', 'SUNOS', 'ZLINUX', 'WINDOWS', 'AIX', 'HP_UX', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='platformType', description='Platform type.\nSupported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS].\nSupported platformType(s) for MACS-managed cloud host insight: [LINUX].\nSupported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX].\n\nAllowed values for this property are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + agent_identifier: str = Field(..., alias='agentIdentifier', description='The identifier of the agent.') + + +class HostEntities(OpsiBaseModel): + """Database entities running on the host.""" + + metric_name: Literal['HOST_PRODUCT', 'HOST_RESOURCE_ALLOCATION', 'HOST_MEMORY_CONFIGURATION', 'HOST_HARDWARE_CONFIGURATION', 'HOST_CPU_HARDWARE_CONFIGURATION', 'HOST_NETWORK_CONFIGURATION', 'HOST_ENTITES', 'HOST_FILESYSTEM_CONFIGURATION', 'HOST_GPU_CONFIGURATION', 'HOST_CONTAINERS'] = Field(..., alias='metricName', description='Gets the metric_name of this HostConfigurationMetricGroup.\nName of the metric group\n\nAllowed values for this property are: "HOST_PRODUCT", "HOST_RESOURCE_ALLOCATION", "HOST_MEMORY_CONFIGURATION", "HOST_HARDWARE_CONFIGURATION", "HOST_CPU_HARDWARE_CONFIGURATION", "HOST_NETWORK_CONFIGURATION", "HOST_ENTITES", "HOST_FILESYSTEM_CONFIGURATION", "HOST_GPU_CONFIGURATION", "HOST_CONTAINERS"') + time_collected: datetime = Field(..., alias='timeCollected', description='Gets the time_collected of this HostConfigurationMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') + entity_name: str = Field(..., alias='entityName', description='Name of the database entity') + entity_type: str = Field(..., alias='entityType', description='Type of the database entity') + + +class HostFilesystemConfiguration(OpsiBaseModel): + """Filesystem Configuration metric for the host.""" + + metric_name: Literal['HOST_PRODUCT', 'HOST_RESOURCE_ALLOCATION', 'HOST_MEMORY_CONFIGURATION', 'HOST_HARDWARE_CONFIGURATION', 'HOST_CPU_HARDWARE_CONFIGURATION', 'HOST_NETWORK_CONFIGURATION', 'HOST_ENTITES', 'HOST_FILESYSTEM_CONFIGURATION', 'HOST_GPU_CONFIGURATION', 'HOST_CONTAINERS'] = Field(..., alias='metricName', description='Gets the metric_name of this HostConfigurationMetricGroup.\nName of the metric group\n\nAllowed values for this property are: "HOST_PRODUCT", "HOST_RESOURCE_ALLOCATION", "HOST_MEMORY_CONFIGURATION", "HOST_HARDWARE_CONFIGURATION", "HOST_CPU_HARDWARE_CONFIGURATION", "HOST_NETWORK_CONFIGURATION", "HOST_ENTITES", "HOST_FILESYSTEM_CONFIGURATION", "HOST_GPU_CONFIGURATION", "HOST_CONTAINERS"') + time_collected: datetime = Field(..., alias='timeCollected', description='Gets the time_collected of this HostConfigurationMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') + file_system_name: str = Field(..., alias='fileSystemName', description='Name of filesystem') + mount_point: str = Field(..., alias='mountPoint', description='Mount points are specialized NTFS filesystem objects') + file_system_size_in_gb: float = Field(..., alias='fileSystemSizeInGB', description='Size of filesystem') + + +class HostFilesystemUsage(OpsiBaseModel): + """Filesystem Usage metric for the host.""" + + metric_name: Literal['HOST_CPU_USAGE', 'HOST_MEMORY_USAGE', 'HOST_NETWORK_ACTIVITY_SUMMARY', 'HOST_TOP_PROCESSES', 'HOST_FILESYSTEM_USAGE', 'HOST_GPU_USAGE', 'HOST_GPU_PROCESSES', 'HOST_IO_USAGE'] = Field(..., alias='metricName', description='Gets the metric_name of this HostPerformanceMetricGroup.\nName of the metric group\n\nAllowed values for this property are: "HOST_CPU_USAGE", "HOST_MEMORY_USAGE", "HOST_NETWORK_ACTIVITY_SUMMARY", "HOST_TOP_PROCESSES", "HOST_FILESYSTEM_USAGE", "HOST_GPU_USAGE", "HOST_GPU_PROCESSES", "HOST_IO_USAGE"') + time_collected: datetime = Field(..., alias='timeCollected', description='Gets the time_collected of this HostPerformanceMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') + mount_point: str | None = Field(None, alias='mountPoint', description='Mount points are specialized NTFS filesystem objects') + file_system_usage_in_gb: float | None = Field(None, alias='fileSystemUsageInGB', description='The file_system_usage_in_gb field of HostFilesystemUsage.') + file_system_avail_in_percent: float | None = Field(None, alias='fileSystemAvailInPercent', description='The file_system_avail_in_percent field of HostFilesystemUsage.') + file_system_avail_in_gbs: float | None = Field(None, alias='fileSystemAvailInGBs', description='The file_system_avail_in_gbs field of HostFilesystemUsage.') + + +class HostGpuConfiguration(OpsiBaseModel): + """GPU configuration metrics.""" + + metric_name: Literal['HOST_PRODUCT', 'HOST_RESOURCE_ALLOCATION', 'HOST_MEMORY_CONFIGURATION', 'HOST_HARDWARE_CONFIGURATION', 'HOST_CPU_HARDWARE_CONFIGURATION', 'HOST_NETWORK_CONFIGURATION', 'HOST_ENTITES', 'HOST_FILESYSTEM_CONFIGURATION', 'HOST_GPU_CONFIGURATION', 'HOST_CONTAINERS'] = Field(..., alias='metricName', description='Gets the metric_name of this HostConfigurationMetricGroup.\nName of the metric group\n\nAllowed values for this property are: "HOST_PRODUCT", "HOST_RESOURCE_ALLOCATION", "HOST_MEMORY_CONFIGURATION", "HOST_HARDWARE_CONFIGURATION", "HOST_CPU_HARDWARE_CONFIGURATION", "HOST_NETWORK_CONFIGURATION", "HOST_ENTITES", "HOST_FILESYSTEM_CONFIGURATION", "HOST_GPU_CONFIGURATION", "HOST_CONTAINERS"') + time_collected: datetime = Field(..., alias='timeCollected', description='Gets the time_collected of this HostConfigurationMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') + gpu_id: int = Field(..., alias='gpuId', description='GPU Identifier') + product_name: str = Field(..., alias='productName', description='GPU Product Name') + vendor: str = Field(..., alias='vendor', description='GPU Vendor') + bus_id: str = Field(..., alias='busId', description='Bus Identifier') + bus_width: int = Field(..., alias='busWidth', description='Bus Width') + gpu_capabilities: str | None = Field(None, alias='gpuCapabilities', description='GPU Capabilities') + total_power: float = Field(..., alias='totalPower', description='Power Capacity') + total_memory: float = Field(..., alias='totalMemory', description='Total Memory Allocated to GPU') + total_video_clock_speed: float = Field(..., alias='totalVideoClockSpeed', description='Max Video Clock Speed') + total_sm_clock_speed: float = Field(..., alias='totalSmClockSpeed', description='Max SM (Streaming Multiprocessor) Clock Speed') + total_graphics_clock_speed: float = Field(..., alias='totalGraphicsClockSpeed', description='Max Graphics Clock Speed') + total_memory_clock_speed: float = Field(..., alias='totalMemoryClockSpeed', description='Max Memory Clock Speed') + cuda_version: str = Field(..., alias='cudaVersion', description='CUDA library version') + driver_version: str = Field(..., alias='driverVersion', description='GPU Driver version') + + +class HostGpuProcesses(OpsiBaseModel): + """GPU processes metrics, processes using GPUs.""" + + metric_name: Literal['HOST_CPU_USAGE', 'HOST_MEMORY_USAGE', 'HOST_NETWORK_ACTIVITY_SUMMARY', 'HOST_TOP_PROCESSES', 'HOST_FILESYSTEM_USAGE', 'HOST_GPU_USAGE', 'HOST_GPU_PROCESSES', 'HOST_IO_USAGE'] = Field(..., alias='metricName', description='Gets the metric_name of this HostPerformanceMetricGroup.\nName of the metric group\n\nAllowed values for this property are: "HOST_CPU_USAGE", "HOST_MEMORY_USAGE", "HOST_NETWORK_ACTIVITY_SUMMARY", "HOST_TOP_PROCESSES", "HOST_FILESYSTEM_USAGE", "HOST_GPU_USAGE", "HOST_GPU_PROCESSES", "HOST_IO_USAGE"') + time_collected: datetime = Field(..., alias='timeCollected', description='Gets the time_collected of this HostPerformanceMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') + gpu_id: int | None = Field(None, alias='gpuId', description='GPU Identifier') + pid: int | None = Field(None, alias='pid', description='Process Identifier') + process_name: str | None = Field(None, alias='processName', description='Process Name (process using GPU)') + elapsed_time: float | None = Field(None, alias='elapsedTime', description='Process elapsed time') + gpu_memory_usage: float | None = Field(None, alias='gpuMemoryUsage', description='Memory Used by Process in MBs') + + +class HostGpuUsage(OpsiBaseModel): + """GPU performance metrics.""" + + metric_name: Literal['HOST_CPU_USAGE', 'HOST_MEMORY_USAGE', 'HOST_NETWORK_ACTIVITY_SUMMARY', 'HOST_TOP_PROCESSES', 'HOST_FILESYSTEM_USAGE', 'HOST_GPU_USAGE', 'HOST_GPU_PROCESSES', 'HOST_IO_USAGE'] = Field(..., alias='metricName', description='Gets the metric_name of this HostPerformanceMetricGroup.\nName of the metric group\n\nAllowed values for this property are: "HOST_CPU_USAGE", "HOST_MEMORY_USAGE", "HOST_NETWORK_ACTIVITY_SUMMARY", "HOST_TOP_PROCESSES", "HOST_FILESYSTEM_USAGE", "HOST_GPU_USAGE", "HOST_GPU_PROCESSES", "HOST_IO_USAGE"') + time_collected: datetime = Field(..., alias='timeCollected', description='Gets the time_collected of this HostPerformanceMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') + gpu_id: int | None = Field(None, alias='gpuId', description='GPU Identifier') + utilization: float | None = Field(None, alias='utilization', description='GPU Utilization Percent') + memory_utilization: float | None = Field(None, alias='memoryUtilization', description='GPU Memory Utilization Percent') + power_draw: float | None = Field(None, alias='powerDraw', description='GPU Power Draw in Watts') + temperature: float | None = Field(None, alias='temperature', description='GPU Temperature in Celsius') + fan_utilization: float | None = Field(None, alias='fanUtilization', description='GPU Fan Utilization') + clock_speed_graphics: float | None = Field(None, alias='clockSpeedGraphics', description='GPU Graphics (Shader) Clock Speed') + clock_speed_sm: float | None = Field(None, alias='clockSpeedSm', description='GPU SM (Streaming Multiprocessor) Clock Speed') + clock_speed_video: float | None = Field(None, alias='clockSpeedVideo', description='GPU Video Clock Speed') + clock_speed_memory: float | None = Field(None, alias='clockSpeedMemory', description='GPU Memory Clock Speed') + performance_state: float | None = Field(None, alias='performanceState', description='GPU Performance State') + ecc_single_bit_errors: int | None = Field(None, alias='eccSingleBitErrors', description='GPU ECC Single Bit Errors') + ecc_double_bit_errors: int | None = Field(None, alias='eccDoubleBitErrors', description='GPU ECC Double Bit Errors') + clock_event_idle: int | None = Field(None, alias='clockEventIdle', description='Nothing running on CPU, clocks are idle') + clock_event_hw_thermal_slow_down: int | None = Field(None, alias='clockEventHwThermalSlowDown', description='HW Thermal Slowdown (reducing the core clocks by a factor of 2 or more) is engaged. Temp too high') + clock_event_sw_power_cap: int | None = Field(None, alias='clockEventSwPowerCap', description='SW Power Scaling algorithm is reducing the clocks below requested clocks because the GPU is consuming too much power') + clock_event_app_clock_setting: int | None = Field(None, alias='clockEventAppClockSetting', description='GPU clocks are limited by applications clocks setting') + clock_event_hw_power_break: int | None = Field(None, alias='clockEventHwPowerBreak', description='HW Power Brake Slowdown (reducing the core clocks by a factor of 2 or more) is engaged') + clock_event_sw_thermal_slowdown: int | None = Field(None, alias='clockEventSwThermalSlowdown', description='SW Thermal capping algorithm is reducing clocks below requested clocks because GPU temperature is higher than Max Operating Temp') + clock_event_sync_boost: int | None = Field(None, alias='clockEventSyncBoost', description='HW Power Brake Slowdown (reducing the core clocks by a factor of 2 or more) is engaged') + + +class HostHardwareConfiguration(OpsiBaseModel): + """Hardware Configuration metric for the host.""" + + metric_name: Literal['HOST_PRODUCT', 'HOST_RESOURCE_ALLOCATION', 'HOST_MEMORY_CONFIGURATION', 'HOST_HARDWARE_CONFIGURATION', 'HOST_CPU_HARDWARE_CONFIGURATION', 'HOST_NETWORK_CONFIGURATION', 'HOST_ENTITES', 'HOST_FILESYSTEM_CONFIGURATION', 'HOST_GPU_CONFIGURATION', 'HOST_CONTAINERS'] = Field(..., alias='metricName', description='Gets the metric_name of this HostConfigurationMetricGroup.\nName of the metric group\n\nAllowed values for this property are: "HOST_PRODUCT", "HOST_RESOURCE_ALLOCATION", "HOST_MEMORY_CONFIGURATION", "HOST_HARDWARE_CONFIGURATION", "HOST_CPU_HARDWARE_CONFIGURATION", "HOST_NETWORK_CONFIGURATION", "HOST_ENTITES", "HOST_FILESYSTEM_CONFIGURATION", "HOST_GPU_CONFIGURATION", "HOST_CONTAINERS"') + time_collected: datetime = Field(..., alias='timeCollected', description='Gets the time_collected of this HostConfigurationMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') + cpu_architecture: str = Field(..., alias='cpuArchitecture', description='Processor architecture used by the platform') + + +class HostImportableAgentEntitySummary(OpsiBaseModel): + """An agent host entity that can be imported into Operations Insights.""" + + entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this ImportableAgentEntitySummary.\nSource of the importable agent entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + management_agent_id: str = Field(..., alias='managementAgentId', description='Gets the management_agent_id of this ImportableAgentEntitySummary. The OCID of the Management Agent.') + management_agent_display_name: str = Field(..., alias='managementAgentDisplayName', description='Gets the management_agent_display_name of this ImportableAgentEntitySummary. The Display Name of the Management Agent.') + host_name: str | None = Field(None, alias='hostName', description='The host name. The host name is unique amongst the hosts managed by the same management agent.') + platform_type: Literal['LINUX', 'SOLARIS', 'SUNOS', 'ZLINUX', 'WINDOWS', 'AIX', 'HP_UX', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='platformType', description='Platform type.\nSupported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS].\nSupported platformType(s) for MACS-managed cloud host insight: [LINUX].\nSupported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX].\n\nAllowed values for this property are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class HostInsight(OpsiBaseModel): + """Host insight resource.""" + + entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Source of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + id: str = Field(..., alias='id', description='The OCID of the host insight resource.') + compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') + host_name: str | None = Field(None, alias='hostName', description='The host name. The host name is unique amongst the hosts managed by the same management agent.') + host_display_name: str | None = Field(None, alias='hostDisplayName', description='The user-friendly name for the host. The name does not have to be unique.') + host_type: str | None = Field(None, alias='hostType', description='Ops Insights internal representation of the host type. Possible value is EXTERNAL-HOST.') + processor_count: int | None = Field(None, alias='processorCount', description='Processor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Indicates the status of a host insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime = Field(..., alias='timeCreated', description='The time the the host insight was first enabled. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='The time the host insight was updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='The current state of the host.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + + +class HostInsightHostRecommendations(OpsiBaseModel): + """Contains recommendations depending of resource metric received.""" + + metric_recommendation_name: Literal['HOST_CPU_RECOMMENDATIONS', 'HOST_MEMORY_RECOMMENDATIONS', 'HOST_NETWORK_RECOMMENDATIONS', 'HOST_STORAGE_RECOMMENDATIONS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='metricRecommendationName', description='Name of recommendations depending of resource metric received.\n\nAllowed values for this property are: "HOST_CPU_RECOMMENDATIONS", "HOST_MEMORY_RECOMMENDATIONS", "HOST_NETWORK_RECOMMENDATIONS", "HOST_STORAGE_RECOMMENDATIONS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class HostInsightResourceStatisticsAggregation(OpsiBaseModel): + """Contains host details and resource statistics.""" + + host_details: HostDetails = Field(..., alias='hostDetails', description='The host_details field of HostInsightResourceStatisticsAggregation.') + current_statistics: HostResourceStatistics = Field(..., alias='currentStatistics', description='The current_statistics field of HostInsightResourceStatisticsAggregation.') + + +class HostInsightSummary(OpsiBaseModel): + """Summary of a host insight resource.""" + + entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Source of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + id: str = Field(..., alias='id', description='The OCID of the host insight resource.') + compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') + host_name: str | None = Field(None, alias='hostName', description='The host name. The host name is unique amongst the hosts managed by the same management agent.') + host_display_name: str | None = Field(None, alias='hostDisplayName', description='The user-friendly name for the host. The name does not have to be unique.') + host_type: str | None = Field(None, alias='hostType', description='Ops Insights internal representation of the host type. Possible value is EXTERNAL-HOST.') + processor_count: int | None = Field(None, alias='processorCount', description='Processor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + opsi_private_endpoint_id: str | None = Field(None, alias='opsiPrivateEndpointId', description='The OCID of the OPSI private endpoint.') + status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='status', description='Indicates the status of a host insight in Ops Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime | None = Field(None, alias='timeCreated', description='The time the the host insight was first enabled. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='The time the host insight was updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='The current state of the host.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + + +class HostInsightSummaryCollection(OpsiBaseModel): + """Collection of host insight summary objects.""" + + items: list[HostInsightSummary] = Field(..., alias='items', description='Array of host insight summary objects.') + + +class HostInsights(OpsiBaseModel): + """Logical grouping used for Operations Insights host related operations.""" + + host_insights: Any | None = Field(None, alias='hostInsights', description='Host Insights Object.') + + +class HostInsightsDataObject(OpsiBaseModel): + """Host insights data object.""" + + identifier: str = Field(..., alias='identifier', description='Gets the identifier of this OpsiDataObject.\nUnique identifier of OPSI data object.') + data_object_type: Literal['DATABASE_INSIGHTS_DATA_OBJECT', 'HOST_INSIGHTS_DATA_OBJECT', 'EXADATA_INSIGHTS_DATA_OBJECT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dataObjectType', description='Gets the data_object_type of this OpsiDataObject.\nType of OPSI data object.\n\nAllowed values for this property are: "DATABASE_INSIGHTS_DATA_OBJECT", "HOST_INSIGHTS_DATA_OBJECT", "EXADATA_INSIGHTS_DATA_OBJECT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + display_name: str = Field(..., alias='displayName', description='Gets the display_name of this OpsiDataObject.\nUser-friendly name of OPSI data object.') + description: str | None = Field(None, alias='description', description='Gets the description of this OpsiDataObject.\nDescription of OPSI data object.') + name: str | None = Field(None, alias='name', description='Gets the name of this OpsiDataObject.\nName of the data object, which can be used in data object queries just like how view names are used in a query.') + group_names: list[str] | None = Field(None, alias='groupNames', description='Gets the group_names of this OpsiDataObject.\nNames of all the groups to which the data object belongs to.') + supported_query_time_period: str | None = Field(None, alias='supportedQueryTimePeriod', description='Gets the supported_query_time_period of this OpsiDataObject.\nTime period supported by the data object for quering data.\nTime period is in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D.\nExamples: P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months).') + columns_metadata: list[DataObjectColumnMetadata] = Field(..., alias='columnsMetadata', description='Gets the columns_metadata of this OpsiDataObject.\nMetadata of columns in a data object.') + supported_query_params: list[OpsiDataObjectSupportedQueryParam] | None = Field(None, alias='supportedQueryParams', description='Gets the supported_query_params of this OpsiDataObject.\nSupported query parameters by this OPSI data object that can be configured while a data object query involving this data object is executed.') + + +class HostInsightsDataObjectSummary(OpsiBaseModel): + """Summary of a host insights data object.""" + + identifier: str = Field(..., alias='identifier', description='Gets the identifier of this OpsiDataObjectSummary.\nUnique identifier of OPSI data object.') + data_object_type: Literal['DATABASE_INSIGHTS_DATA_OBJECT', 'HOST_INSIGHTS_DATA_OBJECT', 'EXADATA_INSIGHTS_DATA_OBJECT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dataObjectType', description='Gets the data_object_type of this OpsiDataObjectSummary.\nType of OPSI data object.\n\nAllowed values for this property are: "DATABASE_INSIGHTS_DATA_OBJECT", "HOST_INSIGHTS_DATA_OBJECT", "EXADATA_INSIGHTS_DATA_OBJECT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + display_name: str = Field(..., alias='displayName', description='Gets the display_name of this OpsiDataObjectSummary.\nUser-friendly name of OPSI data object.') + description: str | None = Field(None, alias='description', description='Gets the description of this OpsiDataObjectSummary.\nDescription of OPSI data object.') + name: str | None = Field(None, alias='name', description='Gets the name of this OpsiDataObjectSummary.\nName of the data object, which can be used in data object queries just like how view names are used in a query.') + group_names: list[str] | None = Field(None, alias='groupNames', description='Gets the group_names of this OpsiDataObjectSummary.\nNames of all the groups to which the data object belongs to.') + + +class HostInstanceMap(OpsiBaseModel): + """Object containing hostname and instance name mapping.""" + + host_name: str = Field(..., alias='hostName', description='The hostname of the database insight resource.') + instance_name: str = Field(..., alias='instanceName', description='The instance name of the database insight resource.') + + +class HostIoStatistics(OpsiBaseModel): + """Contains io statistics.""" + + usage: float = Field(..., alias='usage', description='Gets the usage of this HostResourceStatistics.\nTotal amount used of the resource metric type (CPU, STORAGE).') + capacity: float = Field(..., alias='capacity', description='Gets the capacity of this HostResourceStatistics.\nThe maximum allocated amount of the resource metric type (CPU, STORAGE) for a set of databases.') + utilization_percent: float = Field(..., alias='utilizationPercent', description='Gets the utilization_percent of this HostResourceStatistics.\nResource utilization in percentage.') + usage_change_percent: float = Field(..., alias='usageChangePercent', description='Gets the usage_change_percent of this HostResourceStatistics.\nChange in resource utilization in percentage') + resource_name: Literal['HOST_CPU_STATISTICS', 'HOST_MEMORY_STATISTICS', 'HOST_STORAGE_STATISTICS', 'HOST_NETWORK_STATISTICS', 'HOST_IO_STATISTICS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceName', description='Gets the resource_name of this HostResourceStatistics.\nName of resource for host\n\nAllowed values for this property are: "HOST_CPU_STATISTICS", "HOST_MEMORY_STATISTICS", "HOST_STORAGE_STATISTICS", "HOST_NETWORK_STATISTICS", "HOST_IO_STATISTICS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + disk_read_in_mbs: float | None = Field(None, alias='diskReadInMBs', description='The disk_read_in_mbs field of HostIoStatistics.') + disk_write_in_mbs: float | None = Field(None, alias='diskWriteInMBs', description='The disk_write_in_mbs field of HostIoStatistics.') + disk_iops: float | None = Field(None, alias='diskIops', description='The disk_iops field of HostIoStatistics.') + + +class HostIoUsage(OpsiBaseModel): + """Host IO Performance Metrics.""" + + metric_name: Literal['HOST_CPU_USAGE', 'HOST_MEMORY_USAGE', 'HOST_NETWORK_ACTIVITY_SUMMARY', 'HOST_TOP_PROCESSES', 'HOST_FILESYSTEM_USAGE', 'HOST_GPU_USAGE', 'HOST_GPU_PROCESSES', 'HOST_IO_USAGE'] = Field(..., alias='metricName', description='Gets the metric_name of this HostPerformanceMetricGroup.\nName of the metric group\n\nAllowed values for this property are: "HOST_CPU_USAGE", "HOST_MEMORY_USAGE", "HOST_NETWORK_ACTIVITY_SUMMARY", "HOST_TOP_PROCESSES", "HOST_FILESYSTEM_USAGE", "HOST_GPU_USAGE", "HOST_GPU_PROCESSES", "HOST_IO_USAGE"') + time_collected: datetime = Field(..., alias='timeCollected', description='Gets the time_collected of this HostPerformanceMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') + mount_point: str | None = Field(None, alias='mountPoint', description='Mount point') + disk_bytes_read: float | None = Field(None, alias='diskBytesRead', description='Bytes Read') + disk_bytes_written: float | None = Field(None, alias='diskBytesWritten', description='Bytes Written') + disk_iops_read: float | None = Field(None, alias='diskIopsRead', description='Read transactions per second') + disk_iops_written: float | None = Field(None, alias='diskIopsWritten', description='Write transactions per second') + disk_iops: float | None = Field(None, alias='diskIops', description='IO Transactions per second') + + +class HostMemoryConfiguration(OpsiBaseModel): + """Memory Configuration metric for the host.""" + + metric_name: Literal['HOST_PRODUCT', 'HOST_RESOURCE_ALLOCATION', 'HOST_MEMORY_CONFIGURATION', 'HOST_HARDWARE_CONFIGURATION', 'HOST_CPU_HARDWARE_CONFIGURATION', 'HOST_NETWORK_CONFIGURATION', 'HOST_ENTITES', 'HOST_FILESYSTEM_CONFIGURATION', 'HOST_GPU_CONFIGURATION', 'HOST_CONTAINERS'] = Field(..., alias='metricName', description='Gets the metric_name of this HostConfigurationMetricGroup.\nName of the metric group\n\nAllowed values for this property are: "HOST_PRODUCT", "HOST_RESOURCE_ALLOCATION", "HOST_MEMORY_CONFIGURATION", "HOST_HARDWARE_CONFIGURATION", "HOST_CPU_HARDWARE_CONFIGURATION", "HOST_NETWORK_CONFIGURATION", "HOST_ENTITES", "HOST_FILESYSTEM_CONFIGURATION", "HOST_GPU_CONFIGURATION", "HOST_CONTAINERS"') + time_collected: datetime = Field(..., alias='timeCollected', description='Gets the time_collected of this HostConfigurationMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') + page_size_in_kb: float | None = Field(None, alias='pageSizeInKB', description='Page size in kilobytes') + page_tables_in_kb: float | None = Field(None, alias='pageTablesInKB', description='Amount of memory used for page tables in kilobytes') + swap_total_in_kb: float | None = Field(None, alias='swapTotalInKB', description='Amount of total swap space in kilobytes') + huge_page_size_in_kb: float | None = Field(None, alias='hugePageSizeInKB', description='Size of huge pages in kilobytes') + huge_pages_total: int | None = Field(None, alias='hugePagesTotal', description='Total number of huge pages') + + +class HostMemoryRecommendations(OpsiBaseModel): + """Contains memory recommendation.""" + + metric_recommendation_name: Literal['HOST_CPU_RECOMMENDATIONS', 'HOST_MEMORY_RECOMMENDATIONS', 'HOST_NETWORK_RECOMMENDATIONS', 'HOST_STORAGE_RECOMMENDATIONS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='metricRecommendationName', description='Gets the metric_recommendation_name of this HostInsightHostRecommendations.\nName of recommendations depending of resource metric received.\n\nAllowed values for this property are: "HOST_CPU_RECOMMENDATIONS", "HOST_MEMORY_RECOMMENDATIONS", "HOST_NETWORK_RECOMMENDATIONS", "HOST_STORAGE_RECOMMENDATIONS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + unused_instance: Literal['IN_USE', 'NOT_IN_USE', 'IS_NOT_DETERMINED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='unusedInstance', description='Identify unused instances based on cpu, memory and network metrics.\n\nAllowed values for this property are: "IN_USE", "NOT_IN_USE", "IS_NOT_DETERMINED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + is_abandoned_instance: bool | None = Field(None, alias='isAbandonedInstance', description='Identify if an instance is abandoned.') + memory_optimization: str | None = Field(None, alias='memoryOptimization', description='Show if OPSI recommends to change memory capacity based on Memory utilization and current shape.') + + +class HostMemoryStatistics(OpsiBaseModel): + """Contains memory statistics.""" + + usage: float = Field(..., alias='usage', description='Gets the usage of this HostResourceStatistics.\nTotal amount used of the resource metric type (CPU, STORAGE).') + capacity: float = Field(..., alias='capacity', description='Gets the capacity of this HostResourceStatistics.\nThe maximum allocated amount of the resource metric type (CPU, STORAGE) for a set of databases.') + utilization_percent: float = Field(..., alias='utilizationPercent', description='Gets the utilization_percent of this HostResourceStatistics.\nResource utilization in percentage.') + usage_change_percent: float = Field(..., alias='usageChangePercent', description='Gets the usage_change_percent of this HostResourceStatistics.\nChange in resource utilization in percentage') + resource_name: Literal['HOST_CPU_STATISTICS', 'HOST_MEMORY_STATISTICS', 'HOST_STORAGE_STATISTICS', 'HOST_NETWORK_STATISTICS', 'HOST_IO_STATISTICS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceName', description='Gets the resource_name of this HostResourceStatistics.\nName of resource for host\n\nAllowed values for this property are: "HOST_CPU_STATISTICS", "HOST_MEMORY_STATISTICS", "HOST_STORAGE_STATISTICS", "HOST_NETWORK_STATISTICS", "HOST_IO_STATISTICS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + free_memory: float | None = Field(None, alias='freeMemory', description='The free_memory field of HostMemoryStatistics.') + available_memory: float | None = Field(None, alias='availableMemory', description='The available_memory field of HostMemoryStatistics.') + huge_pages_total: int | None = Field(None, alias='hugePagesTotal', description='Total number of huge pages.') + huge_page_size_in_mb: float | None = Field(None, alias='hugePageSizeInMB', description='Size of huge pages in megabytes.') + huge_pages_free: int | None = Field(None, alias='hugePagesFree', description='Total number of available huge pages.') + huge_pages_reserved: int | None = Field(None, alias='hugePagesReserved', description='Total number of huge pages which are used or reserved.') + load: SummaryStatistics | None = Field(None, alias='load', description='The load field of HostMemoryStatistics.') + + +class HostMemoryUsage(OpsiBaseModel): + """Memory usage metric for the host.""" + + metric_name: Literal['HOST_CPU_USAGE', 'HOST_MEMORY_USAGE', 'HOST_NETWORK_ACTIVITY_SUMMARY', 'HOST_TOP_PROCESSES', 'HOST_FILESYSTEM_USAGE', 'HOST_GPU_USAGE', 'HOST_GPU_PROCESSES', 'HOST_IO_USAGE'] = Field(..., alias='metricName', description='Gets the metric_name of this HostPerformanceMetricGroup.\nName of the metric group\n\nAllowed values for this property are: "HOST_CPU_USAGE", "HOST_MEMORY_USAGE", "HOST_NETWORK_ACTIVITY_SUMMARY", "HOST_TOP_PROCESSES", "HOST_FILESYSTEM_USAGE", "HOST_GPU_USAGE", "HOST_GPU_PROCESSES", "HOST_IO_USAGE"') + time_collected: datetime = Field(..., alias='timeCollected', description='Gets the time_collected of this HostPerformanceMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') + memory_used_in_gb: float | None = Field(None, alias='memoryUsedInGB', description='Amount of physical memory used in gigabytes') + memory_utilization_in_percent: float | None = Field(None, alias='memoryUtilizationInPercent', description='Amount of physical memory used in percentage') + memory_load_in_gb: float | None = Field(None, alias='memoryLoadInGB', description='Load on memory in gigabytes') + real_memory_in_kb: float | None = Field(None, alias='realMemoryInKB', description='Amount of usable physical memory in kilobytes') + free_memory_in_kb: float | None = Field(None, alias='freeMemoryInKB', description='Amount of available physical memory in kilobytes') + logical_memory_used_in_gb: float | None = Field(None, alias='logicalMemoryUsedInGB', description='Memory used excluding buffers and cache in gigabytes') + logical_memory_utilization_in_percent: float | None = Field(None, alias='logicalMemoryUtilizationInPercent', description='Amount of logical memory used in percentage') + free_logical_memory_in_kb: float | None = Field(None, alias='freeLogicalMemoryInKB', description='Amount of avaiable virtual memory in kilobytes') + major_page_faults: int | None = Field(None, alias='majorPageFaults', description='Number of major page faults') + swap_free_in_kb: float | None = Field(None, alias='swapFreeInKB', description='Amount of available swap space in kilobytes') + anon_huge_pages_in_kb: float | None = Field(None, alias='anonHugePagesInKB', description='Amount of memory used for anon huge pages in kilobytes') + huge_pages_free: int | None = Field(None, alias='hugePagesFree', description='Number of available huge pages') + huge_pages_reserved: int | None = Field(None, alias='hugePagesReserved', description='Number of reserved huge pages') + huge_pages_surplus: int | None = Field(None, alias='hugePagesSurplus', description='Number of surplus huge pages') + + +class HostNetworkActivitySummary(OpsiBaseModel): + """Network Activity Summary metric for the host.""" + + metric_name: Literal['HOST_CPU_USAGE', 'HOST_MEMORY_USAGE', 'HOST_NETWORK_ACTIVITY_SUMMARY', 'HOST_TOP_PROCESSES', 'HOST_FILESYSTEM_USAGE', 'HOST_GPU_USAGE', 'HOST_GPU_PROCESSES', 'HOST_IO_USAGE'] = Field(..., alias='metricName', description='Gets the metric_name of this HostPerformanceMetricGroup.\nName of the metric group\n\nAllowed values for this property are: "HOST_CPU_USAGE", "HOST_MEMORY_USAGE", "HOST_NETWORK_ACTIVITY_SUMMARY", "HOST_TOP_PROCESSES", "HOST_FILESYSTEM_USAGE", "HOST_GPU_USAGE", "HOST_GPU_PROCESSES", "HOST_IO_USAGE"') + time_collected: datetime = Field(..., alias='timeCollected', description='Gets the time_collected of this HostPerformanceMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') + interface_name: str | None = Field(None, alias='interfaceName', description='Name of the network interface') + all_network_read_in_mbps: float | None = Field(None, alias='allNetworkReadInMbps', description='All network interfaces read rate in Mbps') + all_network_write_in_mbps: float | None = Field(None, alias='allNetworkWriteInMbps', description='All network interfaces write rate in Mbps') + all_network_io_in_mbps: float | None = Field(None, alias='allNetworkIoInMbps', description='All network interfaces IO rate in Mbps') + + +class HostNetworkConfiguration(OpsiBaseModel): + """Network Configuration metric for the host.""" + + metric_name: Literal['HOST_PRODUCT', 'HOST_RESOURCE_ALLOCATION', 'HOST_MEMORY_CONFIGURATION', 'HOST_HARDWARE_CONFIGURATION', 'HOST_CPU_HARDWARE_CONFIGURATION', 'HOST_NETWORK_CONFIGURATION', 'HOST_ENTITES', 'HOST_FILESYSTEM_CONFIGURATION', 'HOST_GPU_CONFIGURATION', 'HOST_CONTAINERS'] = Field(..., alias='metricName', description='Gets the metric_name of this HostConfigurationMetricGroup.\nName of the metric group\n\nAllowed values for this property are: "HOST_PRODUCT", "HOST_RESOURCE_ALLOCATION", "HOST_MEMORY_CONFIGURATION", "HOST_HARDWARE_CONFIGURATION", "HOST_CPU_HARDWARE_CONFIGURATION", "HOST_NETWORK_CONFIGURATION", "HOST_ENTITES", "HOST_FILESYSTEM_CONFIGURATION", "HOST_GPU_CONFIGURATION", "HOST_CONTAINERS"') + time_collected: datetime = Field(..., alias='timeCollected', description='Gets the time_collected of this HostConfigurationMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') + interface_name: str = Field(..., alias='interfaceName', description='Name of the network interface') + ip_address: str = Field(..., alias='ipAddress', description='IP address (IPv4 or IPv6) of the network interface') + mac_address: str | None = Field(None, alias='macAddress', description='MAC address of the network interface. MAC address is a 12-digit hexadecimal number separated by colons or dashes or dots. Following formats are accepted: MM:MM:MM:SS:SS:SS, MM-MM-MM-SS-SS-SS, MM.MM.MM.SS.SS.SS, MMM:MMM:SSS:SSS, MMM-MMM-SSS-SSS, MMM.MMM.SSS.SSS, MMMM:MMSS:SSSS, MMMM-MMSS-SSSS, MMMM.MMSS.SSSS') + + +class HostNetworkRecommendations(OpsiBaseModel): + """Contains network recommendation.""" + + metric_recommendation_name: Literal['HOST_CPU_RECOMMENDATIONS', 'HOST_MEMORY_RECOMMENDATIONS', 'HOST_NETWORK_RECOMMENDATIONS', 'HOST_STORAGE_RECOMMENDATIONS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='metricRecommendationName', description='Gets the metric_recommendation_name of this HostInsightHostRecommendations.\nName of recommendations depending of resource metric received.\n\nAllowed values for this property are: "HOST_CPU_RECOMMENDATIONS", "HOST_MEMORY_RECOMMENDATIONS", "HOST_NETWORK_RECOMMENDATIONS", "HOST_STORAGE_RECOMMENDATIONS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + unused_instance: Literal['IN_USE', 'NOT_IN_USE', 'IS_NOT_DETERMINED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='unusedInstance', description='Identify unused instances based on cpu, memory and network metrics.\n\nAllowed values for this property are: "IN_USE", "NOT_IN_USE", "IS_NOT_DETERMINED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + is_abandoned_instance: bool | None = Field(None, alias='isAbandonedInstance', description='Identify if an instance is abandoned.') + + +class HostNetworkStatistics(OpsiBaseModel): + """Contains network statistics.""" + + usage: float = Field(..., alias='usage', description='Gets the usage of this HostResourceStatistics.\nTotal amount used of the resource metric type (CPU, STORAGE).') + capacity: float = Field(..., alias='capacity', description='Gets the capacity of this HostResourceStatistics.\nThe maximum allocated amount of the resource metric type (CPU, STORAGE) for a set of databases.') + utilization_percent: float = Field(..., alias='utilizationPercent', description='Gets the utilization_percent of this HostResourceStatistics.\nResource utilization in percentage.') + usage_change_percent: float = Field(..., alias='usageChangePercent', description='Gets the usage_change_percent of this HostResourceStatistics.\nChange in resource utilization in percentage') + resource_name: Literal['HOST_CPU_STATISTICS', 'HOST_MEMORY_STATISTICS', 'HOST_STORAGE_STATISTICS', 'HOST_NETWORK_STATISTICS', 'HOST_IO_STATISTICS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceName', description='Gets the resource_name of this HostResourceStatistics.\nName of resource for host\n\nAllowed values for this property are: "HOST_CPU_STATISTICS", "HOST_MEMORY_STATISTICS", "HOST_STORAGE_STATISTICS", "HOST_NETWORK_STATISTICS", "HOST_IO_STATISTICS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + network_read_in_mbs: float | None = Field(None, alias='networkReadInMBs', description='The network_read_in_mbs field of HostNetworkStatistics.') + network_write_in_mbs: float | None = Field(None, alias='networkWriteInMBs', description='The network_write_in_mbs field of HostNetworkStatistics.') + + +class HostPerformanceMetricGroup(OpsiBaseModel): + """Base Metric Group for Host performance metrics.""" + + metric_name: Literal['HOST_CPU_USAGE', 'HOST_MEMORY_USAGE', 'HOST_NETWORK_ACTIVITY_SUMMARY', 'HOST_TOP_PROCESSES', 'HOST_FILESYSTEM_USAGE', 'HOST_GPU_USAGE', 'HOST_GPU_PROCESSES', 'HOST_IO_USAGE'] = Field(..., alias='metricName', description='Name of the metric group\n\nAllowed values for this property are: "HOST_CPU_USAGE", "HOST_MEMORY_USAGE", "HOST_NETWORK_ACTIVITY_SUMMARY", "HOST_TOP_PROCESSES", "HOST_FILESYSTEM_USAGE", "HOST_GPU_USAGE", "HOST_GPU_PROCESSES", "HOST_IO_USAGE"') + time_collected: datetime = Field(..., alias='timeCollected', description='Collection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') + + +class HostProduct(OpsiBaseModel): + """Product metric for the host.""" + + metric_name: Literal['HOST_PRODUCT', 'HOST_RESOURCE_ALLOCATION', 'HOST_MEMORY_CONFIGURATION', 'HOST_HARDWARE_CONFIGURATION', 'HOST_CPU_HARDWARE_CONFIGURATION', 'HOST_NETWORK_CONFIGURATION', 'HOST_ENTITES', 'HOST_FILESYSTEM_CONFIGURATION', 'HOST_GPU_CONFIGURATION', 'HOST_CONTAINERS'] = Field(..., alias='metricName', description='Gets the metric_name of this HostConfigurationMetricGroup.\nName of the metric group\n\nAllowed values for this property are: "HOST_PRODUCT", "HOST_RESOURCE_ALLOCATION", "HOST_MEMORY_CONFIGURATION", "HOST_HARDWARE_CONFIGURATION", "HOST_CPU_HARDWARE_CONFIGURATION", "HOST_NETWORK_CONFIGURATION", "HOST_ENTITES", "HOST_FILESYSTEM_CONFIGURATION", "HOST_GPU_CONFIGURATION", "HOST_CONTAINERS"') + time_collected: datetime = Field(..., alias='timeCollected', description='Gets the time_collected of this HostConfigurationMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') + vendor: str | None = Field(None, alias='vendor', description='Vendor of the product') + name: str | None = Field(None, alias='name', description='Name of the product') + version: str | None = Field(None, alias='version', description='Version of the product') + + +class HostResourceAllocation(OpsiBaseModel): + """Resource Allocation metric for the host.""" + + metric_name: Literal['HOST_PRODUCT', 'HOST_RESOURCE_ALLOCATION', 'HOST_MEMORY_CONFIGURATION', 'HOST_HARDWARE_CONFIGURATION', 'HOST_CPU_HARDWARE_CONFIGURATION', 'HOST_NETWORK_CONFIGURATION', 'HOST_ENTITES', 'HOST_FILESYSTEM_CONFIGURATION', 'HOST_GPU_CONFIGURATION', 'HOST_CONTAINERS'] = Field(..., alias='metricName', description='Gets the metric_name of this HostConfigurationMetricGroup.\nName of the metric group\n\nAllowed values for this property are: "HOST_PRODUCT", "HOST_RESOURCE_ALLOCATION", "HOST_MEMORY_CONFIGURATION", "HOST_HARDWARE_CONFIGURATION", "HOST_CPU_HARDWARE_CONFIGURATION", "HOST_NETWORK_CONFIGURATION", "HOST_ENTITES", "HOST_FILESYSTEM_CONFIGURATION", "HOST_GPU_CONFIGURATION", "HOST_CONTAINERS"') + time_collected: datetime = Field(..., alias='timeCollected', description='Gets the time_collected of this HostConfigurationMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') + total_cpus: int | None = Field(None, alias='totalCpus', description='Total number of CPUs available') + total_memory_in_gb: float | None = Field(None, alias='totalMemoryInGB', description='Total amount of usable physical memory in gibabytes') + + +class HostResourceCapacityTrendAggregation(OpsiBaseModel): + """Host Resource Capacity samples.""" + + end_timestamp: datetime = Field(..., alias='endTimestamp', description='The timestamp in which the current sampling period ends in RFC 3339 format.') + capacity: float = Field(..., alias='capacity', description='The maximum allocated amount of the resource metric type (CPU, STORAGE) for a set of databases.') + + +class HostResourceStatistics(OpsiBaseModel): + """Contains host resource base statistics.""" + + usage: float = Field(..., alias='usage', description='Total amount used of the resource metric type (CPU, STORAGE).') + capacity: float = Field(..., alias='capacity', description='The maximum allocated amount of the resource metric type (CPU, STORAGE) for a set of databases.') + utilization_percent: float = Field(..., alias='utilizationPercent', description='Resource utilization in percentage.') + usage_change_percent: float = Field(..., alias='usageChangePercent', description='Change in resource utilization in percentage') + resource_name: Literal['HOST_CPU_STATISTICS', 'HOST_MEMORY_STATISTICS', 'HOST_STORAGE_STATISTICS', 'HOST_NETWORK_STATISTICS', 'HOST_IO_STATISTICS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceName', description='Name of resource for host\n\nAllowed values for this property are: "HOST_CPU_STATISTICS", "HOST_MEMORY_STATISTICS", "HOST_STORAGE_STATISTICS", "HOST_NETWORK_STATISTICS", "HOST_IO_STATISTICS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class HostStorageRecommendations(OpsiBaseModel): + """Contains storage recommendation.""" + + metric_recommendation_name: Literal['HOST_CPU_RECOMMENDATIONS', 'HOST_MEMORY_RECOMMENDATIONS', 'HOST_NETWORK_RECOMMENDATIONS', 'HOST_STORAGE_RECOMMENDATIONS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='metricRecommendationName', description='Gets the metric_recommendation_name of this HostInsightHostRecommendations.\nName of recommendations depending of resource metric received.\n\nAllowed values for this property are: "HOST_CPU_RECOMMENDATIONS", "HOST_MEMORY_RECOMMENDATIONS", "HOST_NETWORK_RECOMMENDATIONS", "HOST_STORAGE_RECOMMENDATIONS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + unused_instance: Literal['IN_USE', 'NOT_IN_USE', 'IS_NOT_DETERMINED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='unusedInstance', description='Identify unused instances based on cpu, memory and network metrics.\n\nAllowed values for this property are: "IN_USE", "NOT_IN_USE", "IS_NOT_DETERMINED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + is_abandoned_instance: bool | None = Field(None, alias='isAbandonedInstance', description='Identify if an instance is abandoned.') + + +class HostStorageStatistics(OpsiBaseModel): + """Contains storage statistics.""" + + usage: float = Field(..., alias='usage', description='Gets the usage of this HostResourceStatistics.\nTotal amount used of the resource metric type (CPU, STORAGE).') + capacity: float = Field(..., alias='capacity', description='Gets the capacity of this HostResourceStatistics.\nThe maximum allocated amount of the resource metric type (CPU, STORAGE) for a set of databases.') + utilization_percent: float = Field(..., alias='utilizationPercent', description='Gets the utilization_percent of this HostResourceStatistics.\nResource utilization in percentage.') + usage_change_percent: float = Field(..., alias='usageChangePercent', description='Gets the usage_change_percent of this HostResourceStatistics.\nChange in resource utilization in percentage') + resource_name: Literal['HOST_CPU_STATISTICS', 'HOST_MEMORY_STATISTICS', 'HOST_STORAGE_STATISTICS', 'HOST_NETWORK_STATISTICS', 'HOST_IO_STATISTICS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceName', description='Gets the resource_name of this HostResourceStatistics.\nName of resource for host\n\nAllowed values for this property are: "HOST_CPU_STATISTICS", "HOST_MEMORY_STATISTICS", "HOST_STORAGE_STATISTICS", "HOST_NETWORK_STATISTICS", "HOST_IO_STATISTICS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + filesystem_available_in_percent: float | None = Field(None, alias='filesystemAvailableInPercent', description='The filesystem_available_in_percent field of HostStorageStatistics.') + + +class HostTopProcesses(OpsiBaseModel): + """Top Processes metric for the host.""" + + metric_name: Literal['HOST_CPU_USAGE', 'HOST_MEMORY_USAGE', 'HOST_NETWORK_ACTIVITY_SUMMARY', 'HOST_TOP_PROCESSES', 'HOST_FILESYSTEM_USAGE', 'HOST_GPU_USAGE', 'HOST_GPU_PROCESSES', 'HOST_IO_USAGE'] = Field(..., alias='metricName', description='Gets the metric_name of this HostPerformanceMetricGroup.\nName of the metric group\n\nAllowed values for this property are: "HOST_CPU_USAGE", "HOST_MEMORY_USAGE", "HOST_NETWORK_ACTIVITY_SUMMARY", "HOST_TOP_PROCESSES", "HOST_FILESYSTEM_USAGE", "HOST_GPU_USAGE", "HOST_GPU_PROCESSES", "HOST_IO_USAGE"') + time_collected: datetime = Field(..., alias='timeCollected', description='Gets the time_collected of this HostPerformanceMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') + pid: float | None = Field(None, alias='pid', description='process id') + user_name: str | None = Field(None, alias='userName', description='User that started the process') + memory_utilization_percent: float | None = Field(None, alias='memoryUtilizationPercent', description='Memory utilization percentage') + cpu_utilization_percent: float | None = Field(None, alias='cpuUtilizationPercent', description='CPU utilization percentage') + cpu_usage_in_seconds: float | None = Field(None, alias='cpuUsageInSeconds', description='CPU usage in seconds') + command: str | None = Field(None, alias='command', description='Command line executed for the process') + virtual_memory_in_mbs: float | None = Field(None, alias='virtualMemoryInMBs', description='Virtual memory in megabytes') + physical_memory_in_mbs: float | None = Field(None, alias='physicalMemoryInMBs', description='Physical memory in megabytes') + start_time: datetime | None = Field(None, alias='startTime', description='Process Start Time\nExample: `"2020-03-31T00:00:00.000Z"`') + total_processes: float | None = Field(None, alias='totalProcesses', description='Number of processes running at the time of collection') + container_id: str | None = Field(None, alias='containerId', description='Container id if this process corresponds to a running container in the host') + disk_bytes_read: float | None = Field(None, alias='diskBytesRead', description='Bytes Read') + disk_bytes_written: float | None = Field(None, alias='diskBytesWritten', description='Bytes Written') + disk_iops_read: float | None = Field(None, alias='diskIopsRead', description='Read transactions per second') + disk_iops_written: float | None = Field(None, alias='diskIopsWritten', description='Write transactions per second') + disk_iops: float | None = Field(None, alias='diskIops', description='IO Transactions per second') + + +class HostedEntityCollection(OpsiBaseModel): + """Returns a list of hosted entities for the specific host.""" + + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + items: list[HostedEntitySummary] = Field(..., alias='items', description='List of hosted entities details.') + + +class HostedEntitySummary(OpsiBaseModel): + """Information about a hosted entity which includes identifier, name, and type.""" + + entity_identifier: str = Field(..., alias='entityIdentifier', description='The identifier of the entity.') + entity_name: str = Field(..., alias='entityName', description='The entity name.') + entity_type: str = Field(..., alias='entityType', description='The entity type.') + + +class ImportableAgentEntitySummary(OpsiBaseModel): + """An agent entity that can be imported into Operations Insights.""" + + entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Source of the importable agent entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') + management_agent_display_name: str = Field(..., alias='managementAgentDisplayName', description='The Display Name of the Management Agent.') + + +class ImportableAgentEntitySummaryCollection(OpsiBaseModel): + """Collection of importable agent entity objects.""" + + items: list[ImportableAgentEntitySummary] = Field(..., alias='items', description='Array of importable agent entity objects.') + + +class ImportableComputeEntitySummary(OpsiBaseModel): + """A compute entity that can be imported into Operations Insights.""" + + entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Source of the importable agent entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + compute_id: str = Field(..., alias='computeId', description='The OCID of the Compute Instance.') + compute_display_name: str = Field(..., alias='computeDisplayName', description='The Display Name of the Compute Instance.') + compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') + + +class ImportableComputeEntitySummaryCollection(OpsiBaseModel): + """Collection of importable compute entity objects.""" + + items: list[ImportableComputeEntitySummary] = Field(..., alias='items', description='Array of importable compute entity objects.') + + +class ImportableEnterpriseManagerEntity(OpsiBaseModel): + """An Enterprise Manager entity that can be imported into Operations Insights.""" + + enterprise_manager_identifier: str = Field(..., alias='enterpriseManagerIdentifier', description='Enterprise Manager Unique Identifier') + enterprise_manager_entity_name: str = Field(..., alias='enterpriseManagerEntityName', description='Enterprise Manager Entity Name') + enterprise_manager_entity_type: str = Field(..., alias='enterpriseManagerEntityType', description='Enterprise Manager Entity Type') + enterprise_manager_entity_identifier: str = Field(..., alias='enterpriseManagerEntityIdentifier', description='Enterprise Manager Entity Unique Identifier') + opsi_entity_type: str | None = Field(None, alias='opsiEntityType', description='Ops Insights internal representation of the resource type.') + + +class ImportableEnterpriseManagerEntityCollection(OpsiBaseModel): + """Collection of importable Enterprise Manager entity objects.""" + + items: list[ImportableEnterpriseManagerEntity] = Field(..., alias='items', description='Array of importable Enterprise Manager entity objects.') + + +class IndividualOpsiDataObjectDetailsInQuery(OpsiBaseModel): + """Details applicable for an individual OPSI data object used in a data object query.""" + + data_object_details_target: Literal['INDIVIDUAL_OPSIDATAOBJECT', 'OPSIDATAOBJECTTYPE_OPSIDATAOBJECTS'] = Field(..., alias='dataObjectDetailsTarget', description='Gets the data_object_details_target of this OpsiDataObjectDetailsInQuery.\nData objects to which this OpsiDataObjectDetailsInQuery is applicable.\n\nAllowed values for this property are: "INDIVIDUAL_OPSIDATAOBJECT", "OPSIDATAOBJECTTYPE_OPSIDATAOBJECTS"') + query_params: list[OpsiDataObjectQueryParam] | None = Field(None, alias='queryParams', description='Gets the _query_params of this OpsiDataObjectDetailsInQuery.\nAn array of query parameters to be applied, for the OPSI data objects targetted by dataObjectDetailsTarget, before executing the query.\nRefer to supportedQueryParams of OpsiDataObject for the supported query parameters.') + data_object_identifier: str = Field(..., alias='dataObjectIdentifier', description='Unique OPSI data object identifier.') + + +class IngestAddmReportsDetails(OpsiRequestModel): + """Collection of Addm reports.""" + + items: list[AddmReport] = Field(..., alias='items', description='List of Addm reports') + + +class IngestAddmReportsResponseDetails(OpsiBaseModel): + """The response object returned from IngestAddmReports operation.""" + + message: str = Field(..., alias='message', description='Success message returned as a result of the upload.') + + +class IngestDatabaseConfigurationDetails(OpsiRequestModel): + """Database Configuration Metrics details.""" + + items: list[DatabaseConfigurationMetricGroup] = Field(..., alias='items', description='Array of one or more database configuration metrics objects.') + + +class IngestDatabaseConfigurationResponseDetails(OpsiBaseModel): + """The response object returned from IngestDatabaseConfiguration operation.""" + + message: str = Field(..., alias='message', description='Success message returned as a result of the upload.') + + +class IngestHostConfigurationDetails(OpsiRequestModel): + """Contains the data to ingest for one or more host configuration metrics.""" + + items: list[HostConfigurationMetricGroup] = Field(..., alias='items', description='Collection of one or more host configuration metric data points') + + +class IngestHostConfigurationResponseDetails(OpsiBaseModel): + """The response object returned from IngestHostConfiguration operation.""" + + message: str = Field(..., alias='message', description='Success message returned as a result of the upload.') + + +class IngestHostMetricsDetails(OpsiRequestModel): + """Contains the data to ingest for one or more host performance metrics.""" + + items: list[HostPerformanceMetricGroup] = Field(..., alias='items', description='Collection of one or more host performance metric data points') + + +class IngestHostMetricsResponseDetails(OpsiBaseModel): + """The response object returned from IngestHostMetrics operation.""" + + message: str = Field(..., alias='message', description='Success message returned as a result of the upload.') + + +class IngestMySqlSqlStatsDetails(OpsiRequestModel): + """Collection of MySql SQL Stats Metric Entries.""" + + items: list[MySqlSqlStats] | None = Field(None, alias='items', description='List of MySql SQL Stats Metric Entries.') + + +class IngestMySqlSqlStatsResponseDetails(OpsiBaseModel): + """The response object returned from IngestMySqlSqlStats operation.""" + + message: str = Field(..., alias='message', description='Success message returned as a result of the upload.') + + +class IngestMySqlSqlTextDetails(OpsiRequestModel): + """Collection of SQL Text Entries.""" + + items: list[MySqlSqlText] | None = Field(None, alias='items', description='List of SQL Text Entries.') + + +class IngestMySqlSqlTextResponseDetails(OpsiBaseModel): + """The response object returned from IngestMySqlSqlTextDetails operation.""" + + message: str = Field(..., alias='message', description='Success message returned as a result of the upload.') + + +class IngestSqlBucketDetails(OpsiRequestModel): + """Collection of SQL Bucket Metric Entries.""" + + items: list[SqlBucket] | None = Field(None, alias='items', description='List of SQL Bucket Metric Entries.') + + +class IngestSqlBucketResponseDetails(OpsiBaseModel): + """The response object returned from IngestSqlBucketDetails operation.""" + + message: str = Field(..., alias='message', description='Success message returned as a result of the upload.') + + +class IngestSqlPlanLinesDetails(OpsiRequestModel): + """Collection of SQL Plan Line Entries.""" + + items: list[SqlPlanLine] | None = Field(None, alias='items', description='List of SQL Plan Line Entries.') + + +class IngestSqlPlanLinesResponseDetails(OpsiBaseModel): + """The response object returned from IngestSqlPlanLines operation.""" + + message: str = Field(..., alias='message', description='Success message returned as a result of the upload.') + + +class IngestSqlStatsDetails(OpsiRequestModel): + """Collection of SQL Stats Metric Entries.""" + + items: list[SqlStats] | None = Field(None, alias='items', description='List of SQL Stats Metric Entries.') + + +class IngestSqlStatsResponseDetails(OpsiBaseModel): + """The response object returned from IngestSqlStats operation.""" + + message: str = Field(..., alias='message', description='Success message returned as a result of the upload.') + + +class IngestSqlTextDetails(OpsiRequestModel): + """Collection of SQL Text Entries.""" + + items: list[SqlText] | None = Field(None, alias='items', description='List of SQL Text Entries.') + + +class IngestSqlTextResponseDetails(OpsiBaseModel): + """The response object returned from IngestSqlTextDetails operation.""" + + message: str = Field(..., alias='message', description='Success message returned as a result of the upload.') + + +class InstanceMetrics(OpsiBaseModel): + """Object containing instance metrics.""" + + host_name: str | None = Field(None, alias='hostName', description='The hostname of the database insight resource.') + instance_name: str | None = Field(None, alias='instanceName', description='The instance name of the database insight resource.') + usage: float | None = Field(None, alias='usage', description='Total amount used of the resource metric type (CPU, STORAGE).') + capacity: float | None = Field(None, alias='capacity', description='The maximum allocated amount of the resource metric type (CPU, STORAGE) for a set of databases.') + total_host_capacity: float | None = Field(None, alias='totalHostCapacity', description='The maximum host CPUs (cores x threads/core) on the underlying infrastructure. This only applies to CPU and does not not apply for Autonomous Databases.') + utilization_percent: float | None = Field(None, alias='utilizationPercent', description='Resource utilization in percentage') + usage_change_percent: float | None = Field(None, alias='usageChangePercent', description='Change in resource utilization in percentage') + + +class IoUsageTrend(OpsiBaseModel): + """Usage data for IO interface per usage unit.""" + + end_timestamp: datetime = Field(..., alias='endTimestamp', description='The timestamp in which the current sampling period ends in RFC 3339 format.') + disk_bytes_read_in_mbs: float = Field(..., alias='diskBytesReadInMBs', description='MBs Read.') + disk_bytes_written_in_mbs: float = Field(..., alias='diskBytesWrittenInMBs', description='MBs Written.') + disk_iops_read: float = Field(..., alias='diskIopsRead', description='Read IO operations per second.') + disk_iops_written: float = Field(..., alias='diskIopsWritten', description='Write IO operations per second.') + disk_iops: float = Field(..., alias='diskIops', description='IO operations per second.') + + +class IoUsageTrendAggregation(OpsiBaseModel): + """Usage data per io interface.""" + + mount_point: str = Field(..., alias='mountPoint', description='Mount point is specialized NTFS filesystem object.') + usage_data: list[IoUsageTrend] = Field(..., alias='usageData', description='List of usage data samples for a IO interface.') + + +class ListObjects(OpsiBaseModel): + """List of the objects.""" + + prefixes: list[str] | None = Field(None, alias='prefixes', description='Array comprising of all the prefixes.') + next_start_with: str | None = Field(None, alias='nextStartWith', description='Object names returned by a list query must be greater or equal to this parameter.') + objects: list[ObjectSummary] = Field(..., alias='objects', description='List of the object summary data.') + + +class MacsManagedAutonomousDatabaseConfigurationSummary(OpsiBaseModel): + """Configuration Summary of a Macs Managed Cloud Autonomous database.""" + + database_insight_id: str = Field(..., alias='databaseInsightId', description='Gets the database_insight_id of this DatabaseConfigurationSummary. The OCID of the database insight resource.') + entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseConfigurationSummary.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this DatabaseConfigurationSummary. The OCID of the compartment.') + database_name: str = Field(..., alias='databaseName', description='Gets the database_name of this DatabaseConfigurationSummary.\nThe database name. The database name is unique within the tenancy.') + database_display_name: str = Field(..., alias='databaseDisplayName', description='Gets the database_display_name of this DatabaseConfigurationSummary.\nThe user-friendly name for the database. The name does not have to be unique.') + database_type: str = Field(..., alias='databaseType', description='Gets the database_type of this DatabaseConfigurationSummary.\nOps Insights internal representation of the database type.') + database_version: str = Field(..., alias='databaseVersion', description='Gets the database_version of this DatabaseConfigurationSummary.\nThe version of the database.') + is_advanced_features_enabled: bool = Field(..., alias='isAdvancedFeaturesEnabled', description='Gets the is_advanced_features_enabled of this DatabaseConfigurationSummary.\nFlag is to identify if advanced features for autonomous database is enabled or not') + cdb_name: str = Field(..., alias='cdbName', description='Gets the cdb_name of this DatabaseConfigurationSummary.\nName of the CDB.Only applies to PDB.') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this DatabaseConfigurationSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this DatabaseConfigurationSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseConfigurationSummary.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) + database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') + management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') + parent_id: str = Field(..., alias='parentId', description='The OCID of the database.') + exadata_details: ExadataDetails = Field(..., alias='exadataDetails', description='The exadata_details field of MacsManagedAutonomousDatabaseConfigurationSummary.') + + +class MacsManagedAutonomousDatabaseInsight(OpsiBaseModel): + """Database insight resource.""" + + entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseInsight.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + id: str = Field(..., alias='id', description='Gets the id of this DatabaseInsight.\nDatabase insight identifier') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this DatabaseInsight.\nCompartment identifier of the database') + status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Gets the status of this DatabaseInsight.\nIndicates the status of a database insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_type: str | None = Field(None, alias='databaseType', description='Gets the database_type of this DatabaseInsight.\nOps Insights internal representation of the database type.') + database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this DatabaseInsight.\nThe version of the database.') + processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseInsight.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this DatabaseInsight.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this DatabaseInsight.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this DatabaseInsight.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + time_created: datetime = Field(..., alias='timeCreated', description='Gets the time_created of this DatabaseInsight.\nThe time the the database insight was first enabled. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DatabaseInsight.\nThe time the database insight was updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Gets the lifecycle_state of this DatabaseInsight.\nThe current state of the database.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DatabaseInsight.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + database_connection_status_details: str | None = Field(None, alias='databaseConnectionStatusDetails', description='Gets the database_connection_status_details of this DatabaseInsight.\nA message describing the status of the database connection of this resource. For example, it can be used to provide actionable information about the permission and content validity of the database connection.') + management_agent_id: str | None = Field(None, alias='managementAgentId', description='The OCID of the Management Agent.') + connection_details: ConnectionDetails | None = Field(None, alias='connectionDetails', description='The connection_details field of MacsManagedAutonomousDatabaseInsight.') + connection_credential_details: CredentialDetails | None = Field(None, alias='connectionCredentialDetails', description='The connection_credential_details field of MacsManagedAutonomousDatabaseInsight.') + database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') + database_name: str = Field(..., alias='databaseName', description='Name of database') + database_display_name: str | None = Field(None, alias='databaseDisplayName', description='Display name of database') + database_resource_type: str = Field(..., alias='databaseResourceType', description='OCI database resource type') + db_additional_details: Any | None = Field(None, alias='dbAdditionalDetails', description='Additional details of a database in JSON format. For autonomous databases, this is the AutonomousDatabase object serialized as a JSON string as defined in For EM, pass in null or an empty string. Note that this string needs to be escaped when specified in the curl command.') + parent_id: str | None = Field(None, alias='parentId', description='The OCID of the VM Cluster or DB System ID, depending on which configuration the resource belongs to.') + root_id: str | None = Field(None, alias='rootId', description='The OCID of the Exadata Infrastructure.') + + +class MacsManagedAutonomousDatabaseInsightSummary(OpsiBaseModel): + """Summary of a database insight resource.""" + + id: str = Field(..., alias='id', description='Gets the id of this DatabaseInsightSummary. The OCID of the database insight resource.') + database_id: str = Field(..., alias='databaseId', description='Gets the database_id of this DatabaseInsightSummary. The OCID of the database.') + compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this DatabaseInsightSummary. The OCID of the compartment.') + database_name: str | None = Field(None, alias='databaseName', description='Gets the database_name of this DatabaseInsightSummary.\nThe database name. The database name is unique within the tenancy.') + database_display_name: str | None = Field(None, alias='databaseDisplayName', description='Gets the database_display_name of this DatabaseInsightSummary.\nThe user-friendly name for the database. The name does not have to be unique.') + database_type: str | None = Field(None, alias='databaseType', description='Gets the database_type of this DatabaseInsightSummary.\nOps Insights internal representation of the database type.') + database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this DatabaseInsightSummary.\nThe version of the database.') + database_host_names: list[str] | None = Field(None, alias='databaseHostNames', description='Gets the database_host_names of this DatabaseInsightSummary.\nThe hostnames for the database.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this DatabaseInsightSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this DatabaseInsightSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this DatabaseInsightSummary.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseInsightSummary.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseInsightSummary.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) + status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='status', description='Gets the status of this DatabaseInsightSummary.\nIndicates the status of a database insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DatabaseInsightSummary.\nThe time the the database insight was first enabled. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DatabaseInsightSummary.\nThe time the database insight was updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DatabaseInsightSummary.\nThe current state of the database.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DatabaseInsightSummary.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + database_connection_status_details: str | None = Field(None, alias='databaseConnectionStatusDetails', description='Gets the database_connection_status_details of this DatabaseInsightSummary.\nA message describing the status of the database connection of this resource. For example, it can be used to provide actionable information about the permission and content validity of the database connection.') + database_resource_type: str | None = Field(None, alias='databaseResourceType', description='OCI database resource type') + management_agent_id: str | None = Field(None, alias='managementAgentId', description='The OCID of the Management Agent.') + parent_id: str | None = Field(None, alias='parentId', description='The OCID of the VM Cluster or DB System ID, depending on which configuration the resource belongs to.') + root_id: str | None = Field(None, alias='rootId', description='The OCID of the root resource for a composite target. e.g. for ExaCS members the rootId will be the OCID of the Exadata Infrastructure resource.') + + +class MacsManagedCloudDatabaseConfigurationSummary(OpsiBaseModel): + """Configuration Summary of a Macs Managed Cloud database.""" + + database_insight_id: str = Field(..., alias='databaseInsightId', description='Gets the database_insight_id of this DatabaseConfigurationSummary. The OCID of the database insight resource.') + entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseConfigurationSummary.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this DatabaseConfigurationSummary. The OCID of the compartment.') + database_name: str = Field(..., alias='databaseName', description='Gets the database_name of this DatabaseConfigurationSummary.\nThe database name. The database name is unique within the tenancy.') + database_display_name: str = Field(..., alias='databaseDisplayName', description='Gets the database_display_name of this DatabaseConfigurationSummary.\nThe user-friendly name for the database. The name does not have to be unique.') + database_type: str = Field(..., alias='databaseType', description='Gets the database_type of this DatabaseConfigurationSummary.\nOps Insights internal representation of the database type.') + database_version: str = Field(..., alias='databaseVersion', description='Gets the database_version of this DatabaseConfigurationSummary.\nThe version of the database.') + is_advanced_features_enabled: bool = Field(..., alias='isAdvancedFeaturesEnabled', description='Gets the is_advanced_features_enabled of this DatabaseConfigurationSummary.\nFlag is to identify if advanced features for autonomous database is enabled or not') + cdb_name: str = Field(..., alias='cdbName', description='Gets the cdb_name of this DatabaseConfigurationSummary.\nName of the CDB.Only applies to PDB.') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this DatabaseConfigurationSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this DatabaseConfigurationSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseConfigurationSummary.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) + database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') + management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') + parent_id: str = Field(..., alias='parentId', description='The OCID of the database.') + exadata_details: ExadataDetails = Field(..., alias='exadataDetails', description='The exadata_details field of MacsManagedCloudDatabaseConfigurationSummary.') + + +class MacsManagedCloudDatabaseHostInsight(OpsiBaseModel): + """Cloud MACS-managed database host insight resource.""" + + entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this HostInsight.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + id: str = Field(..., alias='id', description='Gets the id of this HostInsight. The OCID of the host insight resource.') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this HostInsight. The OCID of the compartment.') + host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this HostInsight.\nThe host name. The host name is unique amongst the hosts managed by the same management agent.') + host_display_name: str | None = Field(None, alias='hostDisplayName', description='Gets the host_display_name of this HostInsight.\nThe user-friendly name for the host. The name does not have to be unique.') + host_type: str | None = Field(None, alias='hostType', description='Gets the host_type of this HostInsight.\nOps Insights internal representation of the host type. Possible value is EXTERNAL-HOST.') + processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this HostInsight.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this HostInsight.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this HostInsight.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this HostInsight.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Gets the status of this HostInsight.\nIndicates the status of a host insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime = Field(..., alias='timeCreated', description='Gets the time_created of this HostInsight.\nThe time the the host insight was first enabled. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this HostInsight.\nThe time the host insight was updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Gets the lifecycle_state of this HostInsight.\nThe current state of the host.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this HostInsight.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') + platform_name: str | None = Field(None, alias='platformName', description='Platform name.') + platform_type: Literal['LINUX', 'SOLARIS', 'SUNOS', 'ZLINUX', 'WINDOWS', 'AIX', 'HP_UX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='platformType', description='Platform type.\nSupported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS].\nSupported platformType(s) for MACS-managed cloud host insight: [LINUX].\nSupported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX].\n\nAllowed values for this property are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + platform_version: str | None = Field(None, alias='platformVersion', description='Platform version.') + parent_id: str | None = Field(None, alias='parentId', description='The OCID of the VM Cluster or DB System ID, depending on which configuration the resource belongs to.') + root_id: str | None = Field(None, alias='rootId', description='The OCID of the Exadata Infrastructure.') + + +class MacsManagedCloudDatabaseHostInsightSummary(OpsiBaseModel): + """Summary of a Cloud MACS-managed database host insight resource.""" + + entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this HostInsightSummary.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + id: str = Field(..., alias='id', description='Gets the id of this HostInsightSummary. The OCID of the host insight resource.') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this HostInsightSummary. The OCID of the compartment.') + host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this HostInsightSummary.\nThe host name. The host name is unique amongst the hosts managed by the same management agent.') + host_display_name: str | None = Field(None, alias='hostDisplayName', description='Gets the host_display_name of this HostInsightSummary.\nThe user-friendly name for the host. The name does not have to be unique.') + host_type: str | None = Field(None, alias='hostType', description='Gets the host_type of this HostInsightSummary.\nOps Insights internal representation of the host type. Possible value is EXTERNAL-HOST.') + processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this HostInsightSummary.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this HostInsightSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this HostInsightSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this HostInsightSummary.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + opsi_private_endpoint_id: str | None = Field(None, alias='opsiPrivateEndpointId', description='Gets the opsi_private_endpoint_id of this HostInsightSummary. The OCID of the OPSI private endpoint.') + status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='status', description='Gets the status of this HostInsightSummary.\nIndicates the status of a host insight in Ops Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this HostInsightSummary.\nThe time the the host insight was first enabled. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this HostInsightSummary.\nThe time the host insight was updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this HostInsightSummary.\nThe current state of the host.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this HostInsightSummary.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') + parent_id: str | None = Field(None, alias='parentId', description='The OCID of the VM Cluster or DB System ID, depending on which configuration the resource belongs to.') + root_id: str | None = Field(None, alias='rootId', description='The OCID of the Exadata Infrastructure.') + platform_type: Literal['LINUX', 'SOLARIS', 'SUNOS', 'ZLINUX', 'WINDOWS', 'AIX', 'HP_UX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='platformType', description='Platform type.\nSupported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS].\nSupported platformType(s) for MACS-managed cloud host insight: [LINUX].\nSupported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX].\n\nAllowed values for this property are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class MacsManagedCloudDatabaseInsight(OpsiBaseModel): + """Database insight resource.""" + + entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseInsight.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + id: str = Field(..., alias='id', description='Gets the id of this DatabaseInsight.\nDatabase insight identifier') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this DatabaseInsight.\nCompartment identifier of the database') + status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Gets the status of this DatabaseInsight.\nIndicates the status of a database insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_type: str | None = Field(None, alias='databaseType', description='Gets the database_type of this DatabaseInsight.\nOps Insights internal representation of the database type.') + database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this DatabaseInsight.\nThe version of the database.') + processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseInsight.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this DatabaseInsight.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this DatabaseInsight.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this DatabaseInsight.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + time_created: datetime = Field(..., alias='timeCreated', description='Gets the time_created of this DatabaseInsight.\nThe time the the database insight was first enabled. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DatabaseInsight.\nThe time the database insight was updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Gets the lifecycle_state of this DatabaseInsight.\nThe current state of the database.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DatabaseInsight.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + database_connection_status_details: str | None = Field(None, alias='databaseConnectionStatusDetails', description='Gets the database_connection_status_details of this DatabaseInsight.\nA message describing the status of the database connection of this resource. For example, it can be used to provide actionable information about the permission and content validity of the database connection.') + management_agent_id: str | None = Field(None, alias='managementAgentId', description='The OCID of the Management Agent.') + connection_details: ConnectionDetails | None = Field(None, alias='connectionDetails', description='The connection_details field of MacsManagedCloudDatabaseInsight.') + connection_credential_details: CredentialDetails | None = Field(None, alias='connectionCredentialDetails', description='The connection_credential_details field of MacsManagedCloudDatabaseInsight.') + database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') + database_name: str = Field(..., alias='databaseName', description='Name of database') + database_display_name: str | None = Field(None, alias='databaseDisplayName', description='Display name of database') + database_resource_type: str = Field(..., alias='databaseResourceType', description='OCI database resource type') + db_additional_details: Any | None = Field(None, alias='dbAdditionalDetails', description='Additional details of a database in JSON format. For autonomous databases, this is the AutonomousDatabase object serialized as a JSON string as defined in For EM, pass in null or an empty string. Note that this string needs to be escaped when specified in the curl command.') + parent_id: str | None = Field(None, alias='parentId', description='The OCID of the VM Cluster or DB System ID, depending on which configuration the resource belongs to.') + root_id: str | None = Field(None, alias='rootId', description='The OCID of the Exadata Infrastructure.') + + +class MacsManagedCloudDatabaseInsightSummary(OpsiBaseModel): + """Summary of a database insight resource.""" + + id: str = Field(..., alias='id', description='Gets the id of this DatabaseInsightSummary. The OCID of the database insight resource.') + database_id: str = Field(..., alias='databaseId', description='Gets the database_id of this DatabaseInsightSummary. The OCID of the database.') + compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this DatabaseInsightSummary. The OCID of the compartment.') + database_name: str | None = Field(None, alias='databaseName', description='Gets the database_name of this DatabaseInsightSummary.\nThe database name. The database name is unique within the tenancy.') + database_display_name: str | None = Field(None, alias='databaseDisplayName', description='Gets the database_display_name of this DatabaseInsightSummary.\nThe user-friendly name for the database. The name does not have to be unique.') + database_type: str | None = Field(None, alias='databaseType', description='Gets the database_type of this DatabaseInsightSummary.\nOps Insights internal representation of the database type.') + database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this DatabaseInsightSummary.\nThe version of the database.') + database_host_names: list[str] | None = Field(None, alias='databaseHostNames', description='Gets the database_host_names of this DatabaseInsightSummary.\nThe hostnames for the database.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this DatabaseInsightSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this DatabaseInsightSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this DatabaseInsightSummary.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseInsightSummary.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseInsightSummary.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) + status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='status', description='Gets the status of this DatabaseInsightSummary.\nIndicates the status of a database insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DatabaseInsightSummary.\nThe time the the database insight was first enabled. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DatabaseInsightSummary.\nThe time the database insight was updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DatabaseInsightSummary.\nThe current state of the database.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DatabaseInsightSummary.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + database_connection_status_details: str | None = Field(None, alias='databaseConnectionStatusDetails', description='Gets the database_connection_status_details of this DatabaseInsightSummary.\nA message describing the status of the database connection of this resource. For example, it can be used to provide actionable information about the permission and content validity of the database connection.') + database_resource_type: str | None = Field(None, alias='databaseResourceType', description='OCI database resource type') + management_agent_id: str | None = Field(None, alias='managementAgentId', description='The OCID of the Management Agent.') + parent_id: str | None = Field(None, alias='parentId', description='The OCID of the VM Cluster or DB System ID, depending on which configuration the resource belongs to.') + root_id: str | None = Field(None, alias='rootId', description='The OCID of the root resource for a composite target. e.g. for ExaCS members the rootId will be the OCID of the Exadata Infrastructure resource.') + + +class MacsManagedCloudDbHostConfigurationSummary(OpsiBaseModel): + """Configuration Summary of Cloud MACS-managed database host insight resource.""" + + host_insight_id: str = Field(..., alias='hostInsightId', description='Gets the host_insight_id of this HostConfigurationSummary. The OCID of the host insight resource.') + entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this HostConfigurationSummary.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this HostConfigurationSummary. The OCID of the compartment.') + host_name: str = Field(..., alias='hostName', description='Gets the host_name of this HostConfigurationSummary.\nThe host name. The host name is unique amongst the hosts managed by the same management agent.') + platform_type: Literal['LINUX', 'SOLARIS', 'SUNOS', 'ZLINUX', 'WINDOWS', 'AIX', 'HP_UX', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='platformType', description='Gets the platform_type of this HostConfigurationSummary.\nPlatform type.\nSupported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS].\nSupported platformType(s) for MACS-managed cloud host insight: [LINUX].\nSupported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX].\n\nAllowed values for this property are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + platform_version: str = Field(..., alias='platformVersion', description='Gets the platform_version of this HostConfigurationSummary.\nPlatform version.') + platform_vendor: str = Field(..., alias='platformVendor', description='Gets the platform_vendor of this HostConfigurationSummary.\nPlatform vendor.') + total_cpus: int = Field(..., alias='totalCpus', description='Gets the total_cpus of this HostConfigurationSummary.\nTotal CPU on this host.') + total_memory_in_gbs: float = Field(..., alias='totalMemoryInGBs', description='Gets the total_memory_in_gbs of this HostConfigurationSummary.\nTotal amount of usable physical memory in gibabytes') + cpu_architecture: str = Field(..., alias='cpuArchitecture', description='Gets the cpu_architecture of this HostConfigurationSummary.\nCPU architechure') + cpu_cache_in_mbs: float = Field(..., alias='cpuCacheInMBs', description='Gets the cpu_cache_in_mbs of this HostConfigurationSummary.\nSize of cache memory in megabytes.') + cpu_vendor: str = Field(..., alias='cpuVendor', description='Gets the cpu_vendor of this HostConfigurationSummary.\nName of the CPU vendor.') + cpu_frequency_in_mhz: float = Field(..., alias='cpuFrequencyInMhz', description='Gets the cpu_frequency_in_mhz of this HostConfigurationSummary.\nClock frequency of the processor in megahertz.') + cpu_implementation: str = Field(..., alias='cpuImplementation', description='Gets the cpu_implementation of this HostConfigurationSummary.\nModel name of processor.') + cores_per_socket: int = Field(..., alias='coresPerSocket', description='Gets the cores_per_socket of this HostConfigurationSummary.\nNumber of cores per socket.') + total_sockets: int = Field(..., alias='totalSockets', description='Gets the total_sockets of this HostConfigurationSummary.\nNumber of total sockets.') + threads_per_socket: int = Field(..., alias='threadsPerSocket', description='Gets the threads_per_socket of this HostConfigurationSummary.\nNumber of threads per socket.') + is_hyper_threading_enabled: bool = Field(..., alias='isHyperThreadingEnabled', description='Gets the is_hyper_threading_enabled of this HostConfigurationSummary.\nIndicates if hyper-threading is enabled or not') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this HostConfigurationSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this HostConfigurationSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') + parent_id: str = Field(..., alias='parentId', description='The OCID of the database.') + exadata_details: ExadataDetails = Field(..., alias='exadataDetails', description='The exadata_details field of MacsManagedCloudDbHostConfigurationSummary.') + + +class MacsManagedCloudExadataInsight(OpsiBaseModel): + """Cloud MACS-managed Exadata insight resource (ExaCC) (ExaCS will be supported in the future).""" + + entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this ExadataInsight.\nSource of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + id: str = Field(..., alias='id', description='Gets the id of this ExadataInsight.\nExadata insight identifier') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this ExadataInsight.\nCompartment identifier of the Exadata insight resource') + exadata_name: str = Field(..., alias='exadataName', description='Gets the exadata_name of this ExadataInsight.\nThe Exadata system name. If the Exadata systems managed by Enterprise Manager, the name is unique amongst the Exadata systems managed by the same Enterprise Manager.') + exadata_display_name: str | None = Field(None, alias='exadataDisplayName', description='Gets the exadata_display_name of this ExadataInsight.\nThe user-friendly name for the Exadata system. The name does not have to be unique.') + exadata_type: Literal['DBMACHINE', 'EXACS', 'EXACC', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='exadataType', description='Gets the exadata_type of this ExadataInsight.\nOperations Insights internal representation of the the Exadata system type.\n\nAllowed values for this property are: "DBMACHINE", "EXACS", "EXACC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + exadata_rack_type: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'FLEX', 'BASE', 'ELASTIC', 'ELASTIC_BASE', 'ELASTIC_LARGE', 'ELASTIC_EXTRA_LARGE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='exadataRackType', description='Gets the exadata_rack_type of this ExadataInsight.\nExadata rack type.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", "FLEX", "BASE", "ELASTIC", "ELASTIC_BASE", "ELASTIC_LARGE", "ELASTIC_EXTRA_LARGE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + is_virtualized_exadata: bool | None = Field(None, alias='isVirtualizedExadata', description='Gets the is_virtualized_exadata of this ExadataInsight.\ntrue if virtualization is used in the Exadata system') + status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Gets the status of this ExadataInsight.\nIndicates the status of an Exadata insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + chargeback_plan_details: ChargebackPlanDetails | None = Field(None, alias='chargebackPlanDetails', description='Gets the chargeback_plan_details of this ExadataInsight.') + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this ExadataInsight.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this ExadataInsight.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExadataInsight.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + time_created: datetime = Field(..., alias='timeCreated', description='Gets the time_created of this ExadataInsight.\nThe time the the Exadata insight was first enabled. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this ExadataInsight.\nThe time the Exadata insight was updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Gets the lifecycle_state of this ExadataInsight.\nThe current state of the Exadata insight.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExadataInsight.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + status_details: str | None = Field(None, alias='statusDetails', description='Gets the status_details of this ExadataInsight.\nA message describing the status of the Exadata Resource. For example, it can be used to provide actionable information about the policies needed to access the Exadata Resource.') + exadata_infra_id: str = Field(..., alias='exadataInfraId', description='The OCID of the Exadata Infrastructure.') + exadata_infra_resource_type: Literal['cloudExadataInfrastructure', 'exadataInfrastructure', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataInfraResourceType', description='OCI exadata infrastructure resource type\n\nAllowed values for this property are: "cloudExadataInfrastructure", "exadataInfrastructure", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + exadata_shape: str = Field(..., alias='exadataShape', description='The shape of the Exadata Infrastructure.') + + +class MacsManagedCloudExadataInsightSummary(OpsiBaseModel): + """Summary of a Cloud MACS-managed Exadata insight resource (ExaCC).""" + + entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this ExadataInsightSummary.\nSource of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + id: str = Field(..., alias='id', description='Gets the id of this ExadataInsightSummary. The OCID of the Exadata insight resource.') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this ExadataInsightSummary. The OCID of the compartment.') + exadata_name: str = Field(..., alias='exadataName', description='Gets the exadata_name of this ExadataInsightSummary.\nThe Exadata system name. If the Exadata systems managed by Enterprise Manager, the name is unique amongst the Exadata systems managed by the same Enterprise Manager.') + exadata_display_name: str | None = Field(None, alias='exadataDisplayName', description='Gets the exadata_display_name of this ExadataInsightSummary.\nThe user-friendly name for the Exadata system. The name does not have to be unique.') + exadata_type: Literal['DBMACHINE', 'EXACS', 'EXACC', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='exadataType', description='Gets the exadata_type of this ExadataInsightSummary.\nOperations Insights internal representation of the the Exadata system type.\n\nAllowed values for this property are: "DBMACHINE", "EXACS", "EXACC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + exadata_rack_type: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'FLEX', 'BASE', 'ELASTIC', 'ELASTIC_BASE', 'ELASTIC_LARGE', 'ELASTIC_EXTRA_LARGE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='exadataRackType', description='Gets the exadata_rack_type of this ExadataInsightSummary.\nOperations Insights internal representation of the the Exadata system rack type.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", "FLEX", "BASE", "ELASTIC", "ELASTIC_BASE", "ELASTIC_LARGE", "ELASTIC_EXTRA_LARGE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this ExadataInsightSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this ExadataInsightSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExadataInsightSummary.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Gets the status of this ExadataInsightSummary.\nIndicates the status of an Exadata insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + chargeback_plan_details: ChargebackPlanDetails | None = Field(None, alias='chargebackPlanDetails', description='Gets the chargeback_plan_details of this ExadataInsightSummary.') + time_created: datetime = Field(..., alias='timeCreated', description='Gets the time_created of this ExadataInsightSummary.\nThe time the the Exadata insight was first enabled. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this ExadataInsightSummary.\nThe time the Exadata insight was updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Gets the lifecycle_state of this ExadataInsightSummary.\nThe current state of the Exadata insight.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExadataInsightSummary.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + status_details: str | None = Field(None, alias='statusDetails', description='Gets the status_details of this ExadataInsightSummary.\nA message describing the status of the Exadata Resource. For example, it can be used to provide actionable information about the policies needed to access the Exadata Resource.') + exadata_infra_id: str = Field(..., alias='exadataInfraId', description='The OCID of the Exadata Infrastructure.') + exadata_infra_resource_type: Literal['cloudExadataInfrastructure', 'exadataInfrastructure', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataInfraResourceType', description='OCI exadata infrastructure resource type\n\nAllowed values for this property are: "cloudExadataInfrastructure", "exadataInfrastructure", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + exadata_shape: str = Field(..., alias='exadataShape', description='The shape of the Exadata Infrastructure.') + + +class MacsManagedCloudHostConfigurationSummary(OpsiBaseModel): + """Configuration Summary of a Macs Managed Cloud host.""" + + host_insight_id: str = Field(..., alias='hostInsightId', description='Gets the host_insight_id of this HostConfigurationSummary. The OCID of the host insight resource.') + entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this HostConfigurationSummary.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this HostConfigurationSummary. The OCID of the compartment.') + host_name: str = Field(..., alias='hostName', description='Gets the host_name of this HostConfigurationSummary.\nThe host name. The host name is unique amongst the hosts managed by the same management agent.') + platform_type: Literal['LINUX', 'SOLARIS', 'SUNOS', 'ZLINUX', 'WINDOWS', 'AIX', 'HP_UX', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='platformType', description='Gets the platform_type of this HostConfigurationSummary.\nPlatform type.\nSupported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS].\nSupported platformType(s) for MACS-managed cloud host insight: [LINUX].\nSupported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX].\n\nAllowed values for this property are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + platform_version: str = Field(..., alias='platformVersion', description='Gets the platform_version of this HostConfigurationSummary.\nPlatform version.') + platform_vendor: str = Field(..., alias='platformVendor', description='Gets the platform_vendor of this HostConfigurationSummary.\nPlatform vendor.') + total_cpus: int = Field(..., alias='totalCpus', description='Gets the total_cpus of this HostConfigurationSummary.\nTotal CPU on this host.') + total_memory_in_gbs: float = Field(..., alias='totalMemoryInGBs', description='Gets the total_memory_in_gbs of this HostConfigurationSummary.\nTotal amount of usable physical memory in gibabytes') + cpu_architecture: str = Field(..., alias='cpuArchitecture', description='Gets the cpu_architecture of this HostConfigurationSummary.\nCPU architechure') + cpu_cache_in_mbs: float = Field(..., alias='cpuCacheInMBs', description='Gets the cpu_cache_in_mbs of this HostConfigurationSummary.\nSize of cache memory in megabytes.') + cpu_vendor: str = Field(..., alias='cpuVendor', description='Gets the cpu_vendor of this HostConfigurationSummary.\nName of the CPU vendor.') + cpu_frequency_in_mhz: float = Field(..., alias='cpuFrequencyInMhz', description='Gets the cpu_frequency_in_mhz of this HostConfigurationSummary.\nClock frequency of the processor in megahertz.') + cpu_implementation: str = Field(..., alias='cpuImplementation', description='Gets the cpu_implementation of this HostConfigurationSummary.\nModel name of processor.') + cores_per_socket: int = Field(..., alias='coresPerSocket', description='Gets the cores_per_socket of this HostConfigurationSummary.\nNumber of cores per socket.') + total_sockets: int = Field(..., alias='totalSockets', description='Gets the total_sockets of this HostConfigurationSummary.\nNumber of total sockets.') + threads_per_socket: int = Field(..., alias='threadsPerSocket', description='Gets the threads_per_socket of this HostConfigurationSummary.\nNumber of threads per socket.') + is_hyper_threading_enabled: bool = Field(..., alias='isHyperThreadingEnabled', description='Gets the is_hyper_threading_enabled of this HostConfigurationSummary.\nIndicates if hyper-threading is enabled or not') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this HostConfigurationSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this HostConfigurationSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + compute_id: str = Field(..., alias='computeId', description='The OCID of the Compute Instance.') + management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') + connector_id: str | None = Field(None, alias='connectorId', description='The OCID of External Database Connector.') + + +class MacsManagedCloudHostInsight(OpsiBaseModel): + """MACS-managed OCI Compute host insight resource.""" + + entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this HostInsight.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + id: str = Field(..., alias='id', description='Gets the id of this HostInsight. The OCID of the host insight resource.') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this HostInsight. The OCID of the compartment.') + host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this HostInsight.\nThe host name. The host name is unique amongst the hosts managed by the same management agent.') + host_display_name: str | None = Field(None, alias='hostDisplayName', description='Gets the host_display_name of this HostInsight.\nThe user-friendly name for the host. The name does not have to be unique.') + host_type: str | None = Field(None, alias='hostType', description='Gets the host_type of this HostInsight.\nOps Insights internal representation of the host type. Possible value is EXTERNAL-HOST.') + processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this HostInsight.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this HostInsight.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this HostInsight.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this HostInsight.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Gets the status of this HostInsight.\nIndicates the status of a host insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime = Field(..., alias='timeCreated', description='Gets the time_created of this HostInsight.\nThe time the the host insight was first enabled. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this HostInsight.\nThe time the host insight was updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Gets the lifecycle_state of this HostInsight.\nThe current state of the host.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this HostInsight.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + compute_id: str = Field(..., alias='computeId', description='The OCID of the Compute Instance.') + management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') + platform_name: str | None = Field(None, alias='platformName', description='Platform name.') + platform_type: Literal['LINUX', 'SOLARIS', 'SUNOS', 'ZLINUX', 'WINDOWS', 'AIX', 'HP_UX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='platformType', description='Platform type.\nSupported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS].\nSupported platformType(s) for MACS-managed cloud host insight: [LINUX].\nSupported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX].\n\nAllowed values for this property are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + platform_version: str | None = Field(None, alias='platformVersion', description='Platform version.') + + +class MacsManagedCloudHostInsightSummary(OpsiBaseModel): + """Summary of a MACS-managed cloud host insight resource.""" + + entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this HostInsightSummary.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + id: str = Field(..., alias='id', description='Gets the id of this HostInsightSummary. The OCID of the host insight resource.') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this HostInsightSummary. The OCID of the compartment.') + host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this HostInsightSummary.\nThe host name. The host name is unique amongst the hosts managed by the same management agent.') + host_display_name: str | None = Field(None, alias='hostDisplayName', description='Gets the host_display_name of this HostInsightSummary.\nThe user-friendly name for the host. The name does not have to be unique.') + host_type: str | None = Field(None, alias='hostType', description='Gets the host_type of this HostInsightSummary.\nOps Insights internal representation of the host type. Possible value is EXTERNAL-HOST.') + processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this HostInsightSummary.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this HostInsightSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this HostInsightSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this HostInsightSummary.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + opsi_private_endpoint_id: str | None = Field(None, alias='opsiPrivateEndpointId', description='Gets the opsi_private_endpoint_id of this HostInsightSummary. The OCID of the OPSI private endpoint.') + status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='status', description='Gets the status of this HostInsightSummary.\nIndicates the status of a host insight in Ops Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this HostInsightSummary.\nThe time the the host insight was first enabled. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this HostInsightSummary.\nThe time the host insight was updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this HostInsightSummary.\nThe current state of the host.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this HostInsightSummary.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + compute_id: str = Field(..., alias='computeId', description='The OCID of the Compute Instance.') + management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') + platform_type: Literal['LINUX', 'SOLARIS', 'SUNOS', 'ZLINUX', 'WINDOWS', 'AIX', 'HP_UX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='platformType', description='Platform type.\nSupported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS].\nSupported platformType(s) for MACS-managed cloud host insight: [LINUX].\nSupported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX].\n\nAllowed values for this property are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class MacsManagedExternalDatabaseConfigurationSummary(OpsiBaseModel): + """Configuration Summary of a Macs Managed External database.""" + + database_insight_id: str = Field(..., alias='databaseInsightId', description='Gets the database_insight_id of this DatabaseConfigurationSummary. The OCID of the database insight resource.') + entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseConfigurationSummary.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this DatabaseConfigurationSummary. The OCID of the compartment.') + database_name: str = Field(..., alias='databaseName', description='Gets the database_name of this DatabaseConfigurationSummary.\nThe database name. The database name is unique within the tenancy.') + database_display_name: str = Field(..., alias='databaseDisplayName', description='Gets the database_display_name of this DatabaseConfigurationSummary.\nThe user-friendly name for the database. The name does not have to be unique.') + database_type: str = Field(..., alias='databaseType', description='Gets the database_type of this DatabaseConfigurationSummary.\nOps Insights internal representation of the database type.') + database_version: str = Field(..., alias='databaseVersion', description='Gets the database_version of this DatabaseConfigurationSummary.\nThe version of the database.') + is_advanced_features_enabled: bool = Field(..., alias='isAdvancedFeaturesEnabled', description='Gets the is_advanced_features_enabled of this DatabaseConfigurationSummary.\nFlag is to identify if advanced features for autonomous database is enabled or not') + cdb_name: str = Field(..., alias='cdbName', description='Gets the cdb_name of this DatabaseConfigurationSummary.\nName of the CDB.Only applies to PDB.') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this DatabaseConfigurationSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this DatabaseConfigurationSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseConfigurationSummary.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) + database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') + management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') + connector_id: str = Field(..., alias='connectorId', description='The OCID of External Database Connector.') + instances: list[HostInstanceMap] = Field(..., alias='instances', description='Array of hostname and instance name.') + + +class MacsManagedExternalDatabaseInsight(OpsiBaseModel): + """Database insight resource.""" + + entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseInsight.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + id: str = Field(..., alias='id', description='Gets the id of this DatabaseInsight.\nDatabase insight identifier') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this DatabaseInsight.\nCompartment identifier of the database') + status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Gets the status of this DatabaseInsight.\nIndicates the status of a database insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_type: str | None = Field(None, alias='databaseType', description='Gets the database_type of this DatabaseInsight.\nOps Insights internal representation of the database type.') + database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this DatabaseInsight.\nThe version of the database.') + processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseInsight.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this DatabaseInsight.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this DatabaseInsight.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this DatabaseInsight.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + time_created: datetime = Field(..., alias='timeCreated', description='Gets the time_created of this DatabaseInsight.\nThe time the the database insight was first enabled. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DatabaseInsight.\nThe time the database insight was updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Gets the lifecycle_state of this DatabaseInsight.\nThe current state of the database.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DatabaseInsight.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + database_connection_status_details: str | None = Field(None, alias='databaseConnectionStatusDetails', description='Gets the database_connection_status_details of this DatabaseInsight.\nA message describing the status of the database connection of this resource. For example, it can be used to provide actionable information about the permission and content validity of the database connection.') + management_agent_id: str | None = Field(None, alias='managementAgentId', description='The OCID of the Management Agent.') + connector_id: str | None = Field(None, alias='connectorId', description='The OCID of External Database Connector.') + connection_details: ConnectionDetails | None = Field(None, alias='connectionDetails', description='The connection_details field of MacsManagedExternalDatabaseInsight.') + connection_credential_details: CredentialDetails | None = Field(None, alias='connectionCredentialDetails', description='The connection_credential_details field of MacsManagedExternalDatabaseInsight.') + database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') + database_name: str = Field(..., alias='databaseName', description='Name of database') + database_display_name: str | None = Field(None, alias='databaseDisplayName', description='Display name of database') + database_resource_type: str = Field(..., alias='databaseResourceType', description='OCI database resource type') + db_additional_details: Any | None = Field(None, alias='dbAdditionalDetails', description='Additional details of a database in JSON format. For autonomous databases, this is the AutonomousDatabase object serialized as a JSON string as defined in For EM, pass in null or an empty string. Note that this string needs to be escaped when specified in the curl command.') + + +class MacsManagedExternalDatabaseInsightSummary(OpsiBaseModel): + """Summary of a database insight resource.""" + + id: str = Field(..., alias='id', description='Gets the id of this DatabaseInsightSummary. The OCID of the database insight resource.') + database_id: str = Field(..., alias='databaseId', description='Gets the database_id of this DatabaseInsightSummary. The OCID of the database.') + compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this DatabaseInsightSummary. The OCID of the compartment.') + database_name: str | None = Field(None, alias='databaseName', description='Gets the database_name of this DatabaseInsightSummary.\nThe database name. The database name is unique within the tenancy.') + database_display_name: str | None = Field(None, alias='databaseDisplayName', description='Gets the database_display_name of this DatabaseInsightSummary.\nThe user-friendly name for the database. The name does not have to be unique.') + database_type: str | None = Field(None, alias='databaseType', description='Gets the database_type of this DatabaseInsightSummary.\nOps Insights internal representation of the database type.') + database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this DatabaseInsightSummary.\nThe version of the database.') + database_host_names: list[str] | None = Field(None, alias='databaseHostNames', description='Gets the database_host_names of this DatabaseInsightSummary.\nThe hostnames for the database.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this DatabaseInsightSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this DatabaseInsightSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this DatabaseInsightSummary.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseInsightSummary.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseInsightSummary.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) + status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='status', description='Gets the status of this DatabaseInsightSummary.\nIndicates the status of a database insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DatabaseInsightSummary.\nThe time the the database insight was first enabled. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DatabaseInsightSummary.\nThe time the database insight was updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DatabaseInsightSummary.\nThe current state of the database.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DatabaseInsightSummary.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + database_connection_status_details: str | None = Field(None, alias='databaseConnectionStatusDetails', description='Gets the database_connection_status_details of this DatabaseInsightSummary.\nA message describing the status of the database connection of this resource. For example, it can be used to provide actionable information about the permission and content validity of the database connection.') + database_resource_type: str | None = Field(None, alias='databaseResourceType', description='OCI database resource type') + management_agent_id: str | None = Field(None, alias='managementAgentId', description='The OCID of the Management Agent.') + connector_id: str | None = Field(None, alias='connectorId', description='The OCID of External Database Connector.') + + +class MacsManagedExternalHostConfigurationSummary(OpsiBaseModel): + """Configuration Summary of a Macs Managed External host.""" + + host_insight_id: str = Field(..., alias='hostInsightId', description='Gets the host_insight_id of this HostConfigurationSummary. The OCID of the host insight resource.') + entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this HostConfigurationSummary.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this HostConfigurationSummary. The OCID of the compartment.') + host_name: str = Field(..., alias='hostName', description='Gets the host_name of this HostConfigurationSummary.\nThe host name. The host name is unique amongst the hosts managed by the same management agent.') + platform_type: Literal['LINUX', 'SOLARIS', 'SUNOS', 'ZLINUX', 'WINDOWS', 'AIX', 'HP_UX', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='platformType', description='Gets the platform_type of this HostConfigurationSummary.\nPlatform type.\nSupported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS].\nSupported platformType(s) for MACS-managed cloud host insight: [LINUX].\nSupported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX].\n\nAllowed values for this property are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + platform_version: str = Field(..., alias='platformVersion', description='Gets the platform_version of this HostConfigurationSummary.\nPlatform version.') + platform_vendor: str = Field(..., alias='platformVendor', description='Gets the platform_vendor of this HostConfigurationSummary.\nPlatform vendor.') + total_cpus: int = Field(..., alias='totalCpus', description='Gets the total_cpus of this HostConfigurationSummary.\nTotal CPU on this host.') + total_memory_in_gbs: float = Field(..., alias='totalMemoryInGBs', description='Gets the total_memory_in_gbs of this HostConfigurationSummary.\nTotal amount of usable physical memory in gibabytes') + cpu_architecture: str = Field(..., alias='cpuArchitecture', description='Gets the cpu_architecture of this HostConfigurationSummary.\nCPU architechure') + cpu_cache_in_mbs: float = Field(..., alias='cpuCacheInMBs', description='Gets the cpu_cache_in_mbs of this HostConfigurationSummary.\nSize of cache memory in megabytes.') + cpu_vendor: str = Field(..., alias='cpuVendor', description='Gets the cpu_vendor of this HostConfigurationSummary.\nName of the CPU vendor.') + cpu_frequency_in_mhz: float = Field(..., alias='cpuFrequencyInMhz', description='Gets the cpu_frequency_in_mhz of this HostConfigurationSummary.\nClock frequency of the processor in megahertz.') + cpu_implementation: str = Field(..., alias='cpuImplementation', description='Gets the cpu_implementation of this HostConfigurationSummary.\nModel name of processor.') + cores_per_socket: int = Field(..., alias='coresPerSocket', description='Gets the cores_per_socket of this HostConfigurationSummary.\nNumber of cores per socket.') + total_sockets: int = Field(..., alias='totalSockets', description='Gets the total_sockets of this HostConfigurationSummary.\nNumber of total sockets.') + threads_per_socket: int = Field(..., alias='threadsPerSocket', description='Gets the threads_per_socket of this HostConfigurationSummary.\nNumber of threads per socket.') + is_hyper_threading_enabled: bool = Field(..., alias='isHyperThreadingEnabled', description='Gets the is_hyper_threading_enabled of this HostConfigurationSummary.\nIndicates if hyper-threading is enabled or not') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this HostConfigurationSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this HostConfigurationSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') + connector_id: str | None = Field(None, alias='connectorId', description='The OCID of External Database Connector.') + + +class MacsManagedExternalHostInsight(OpsiBaseModel): + """MACS-managed external host insight resource.""" + + entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this HostInsight.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + id: str = Field(..., alias='id', description='Gets the id of this HostInsight. The OCID of the host insight resource.') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this HostInsight. The OCID of the compartment.') + host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this HostInsight.\nThe host name. The host name is unique amongst the hosts managed by the same management agent.') + host_display_name: str | None = Field(None, alias='hostDisplayName', description='Gets the host_display_name of this HostInsight.\nThe user-friendly name for the host. The name does not have to be unique.') + host_type: str | None = Field(None, alias='hostType', description='Gets the host_type of this HostInsight.\nOps Insights internal representation of the host type. Possible value is EXTERNAL-HOST.') + processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this HostInsight.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this HostInsight.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this HostInsight.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this HostInsight.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Gets the status of this HostInsight.\nIndicates the status of a host insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime = Field(..., alias='timeCreated', description='Gets the time_created of this HostInsight.\nThe time the the host insight was first enabled. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this HostInsight.\nThe time the host insight was updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Gets the lifecycle_state of this HostInsight.\nThe current state of the host.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this HostInsight.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') + platform_name: str | None = Field(None, alias='platformName', description='Platform name.') + platform_type: Literal['LINUX', 'SOLARIS', 'SUNOS', 'ZLINUX', 'WINDOWS', 'AIX', 'HP_UX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='platformType', description='Platform type.\nSupported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS].\nSupported platformType(s) for MACS-managed cloud host insight: [LINUX].\nSupported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX].\n\nAllowed values for this property are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + platform_version: str | None = Field(None, alias='platformVersion', description='Platform version.') + + +class MacsManagedExternalHostInsightSummary(OpsiBaseModel): + """Summary of a MACS-managed external host insight resource.""" + + entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this HostInsightSummary.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + id: str = Field(..., alias='id', description='Gets the id of this HostInsightSummary. The OCID of the host insight resource.') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this HostInsightSummary. The OCID of the compartment.') + host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this HostInsightSummary.\nThe host name. The host name is unique amongst the hosts managed by the same management agent.') + host_display_name: str | None = Field(None, alias='hostDisplayName', description='Gets the host_display_name of this HostInsightSummary.\nThe user-friendly name for the host. The name does not have to be unique.') + host_type: str | None = Field(None, alias='hostType', description='Gets the host_type of this HostInsightSummary.\nOps Insights internal representation of the host type. Possible value is EXTERNAL-HOST.') + processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this HostInsightSummary.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this HostInsightSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this HostInsightSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this HostInsightSummary.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + opsi_private_endpoint_id: str | None = Field(None, alias='opsiPrivateEndpointId', description='Gets the opsi_private_endpoint_id of this HostInsightSummary. The OCID of the OPSI private endpoint.') + status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='status', description='Gets the status of this HostInsightSummary.\nIndicates the status of a host insight in Ops Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this HostInsightSummary.\nThe time the the host insight was first enabled. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this HostInsightSummary.\nThe time the host insight was updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this HostInsightSummary.\nThe current state of the host.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this HostInsightSummary.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') + platform_type: Literal['LINUX', 'SOLARIS', 'SUNOS', 'ZLINUX', 'WINDOWS', 'AIX', 'HP_UX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='platformType', description='Platform type.\nSupported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS].\nSupported platformType(s) for MACS-managed cloud host insight: [LINUX].\nSupported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX].\n\nAllowed values for this property are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class MdsMySqlDatabaseInsight(OpsiBaseModel): + """MySQL support within the OCI Ops Insights service has been deprecated as of January 29, 2026. Database insight resource.""" + + entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseInsight.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + id: str = Field(..., alias='id', description='Gets the id of this DatabaseInsight.\nDatabase insight identifier') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this DatabaseInsight.\nCompartment identifier of the database') + status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Gets the status of this DatabaseInsight.\nIndicates the status of a database insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_type: str | None = Field(None, alias='databaseType', description='Gets the database_type of this DatabaseInsight.\nOps Insights internal representation of the database type.') + database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this DatabaseInsight.\nThe version of the database.') + processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseInsight.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this DatabaseInsight.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this DatabaseInsight.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this DatabaseInsight.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + time_created: datetime = Field(..., alias='timeCreated', description='Gets the time_created of this DatabaseInsight.\nThe time the the database insight was first enabled. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DatabaseInsight.\nThe time the database insight was updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Gets the lifecycle_state of this DatabaseInsight.\nThe current state of the database.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DatabaseInsight.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + database_connection_status_details: str | None = Field(None, alias='databaseConnectionStatusDetails', description='Gets the database_connection_status_details of this DatabaseInsight.\nA message describing the status of the database connection of this resource. For example, it can be used to provide actionable information about the permission and content validity of the database connection.') + database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') + database_name: str = Field(..., alias='databaseName', description='Name of database') + database_display_name: str | None = Field(None, alias='databaseDisplayName', description='Display name of database') + database_resource_type: str = Field(..., alias='databaseResourceType', description='OCI database resource type') + is_highly_available: bool | None = Field(None, alias='isHighlyAvailable', description='Specifies if MYSQL DB System is highly available.') + is_heat_wave_cluster_attached: bool | None = Field(None, alias='isHeatWaveClusterAttached', description='Specifies if MYSQL DB System has heatwave cluster attached.') + db_additional_details: Any | None = Field(None, alias='dbAdditionalDetails', description='Additional details of a db system in JSON format. For MySQL DB System, this is the DbSystem object serialized as a JSON string as defined in.') + + +class MdsMySqlDatabaseInsightSummary(OpsiBaseModel): + """MySQL support within the OCI Ops Insights service has been deprecated as of January 29, 2026. Summary of a database insight resource.""" + + id: str = Field(..., alias='id', description='Gets the id of this DatabaseInsightSummary. The OCID of the database insight resource.') + database_id: str = Field(..., alias='databaseId', description='Gets the database_id of this DatabaseInsightSummary. The OCID of the database.') + compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this DatabaseInsightSummary. The OCID of the compartment.') + database_name: str | None = Field(None, alias='databaseName', description='Gets the database_name of this DatabaseInsightSummary.\nThe database name. The database name is unique within the tenancy.') + database_display_name: str | None = Field(None, alias='databaseDisplayName', description='Gets the database_display_name of this DatabaseInsightSummary.\nThe user-friendly name for the database. The name does not have to be unique.') + database_type: str | None = Field(None, alias='databaseType', description='Gets the database_type of this DatabaseInsightSummary.\nOps Insights internal representation of the database type.') + database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this DatabaseInsightSummary.\nThe version of the database.') + database_host_names: list[str] | None = Field(None, alias='databaseHostNames', description='Gets the database_host_names of this DatabaseInsightSummary.\nThe hostnames for the database.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this DatabaseInsightSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this DatabaseInsightSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this DatabaseInsightSummary.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseInsightSummary.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseInsightSummary.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) + status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='status', description='Gets the status of this DatabaseInsightSummary.\nIndicates the status of a database insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DatabaseInsightSummary.\nThe time the the database insight was first enabled. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DatabaseInsightSummary.\nThe time the database insight was updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DatabaseInsightSummary.\nThe current state of the database.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DatabaseInsightSummary.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + database_connection_status_details: str | None = Field(None, alias='databaseConnectionStatusDetails', description='Gets the database_connection_status_details of this DatabaseInsightSummary.\nA message describing the status of the database connection of this resource. For example, it can be used to provide actionable information about the permission and content validity of the database connection.') + database_resource_type: str | None = Field(None, alias='databaseResourceType', description='OCI database resource type') + + +class MdsMysqlDatabaseConfigurationSummary(OpsiBaseModel): + """Configuration Summary of a MDS MYSQL database.""" + + database_insight_id: str = Field(..., alias='databaseInsightId', description='Gets the database_insight_id of this DatabaseConfigurationSummary. The OCID of the database insight resource.') + entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseConfigurationSummary.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this DatabaseConfigurationSummary. The OCID of the compartment.') + database_name: str = Field(..., alias='databaseName', description='Gets the database_name of this DatabaseConfigurationSummary.\nThe database name. The database name is unique within the tenancy.') + database_display_name: str = Field(..., alias='databaseDisplayName', description='Gets the database_display_name of this DatabaseConfigurationSummary.\nThe user-friendly name for the database. The name does not have to be unique.') + database_type: str = Field(..., alias='databaseType', description='Gets the database_type of this DatabaseConfigurationSummary.\nOps Insights internal representation of the database type.') + database_version: str = Field(..., alias='databaseVersion', description='Gets the database_version of this DatabaseConfigurationSummary.\nThe version of the database.') + is_advanced_features_enabled: bool = Field(..., alias='isAdvancedFeaturesEnabled', description='Gets the is_advanced_features_enabled of this DatabaseConfigurationSummary.\nFlag is to identify if advanced features for autonomous database is enabled or not') + cdb_name: str = Field(..., alias='cdbName', description='Gets the cdb_name of this DatabaseConfigurationSummary.\nName of the CDB.Only applies to PDB.') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this DatabaseConfigurationSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this DatabaseConfigurationSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseConfigurationSummary.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) + database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') + is_heat_wave_cluster_attached: bool = Field(..., alias='isHeatWaveClusterAttached', description='Specifies if MYSQL DB System has heatwave cluster attached.') + is_highly_available: bool = Field(..., alias='isHighlyAvailable', description='Specifies if MYSQL DB System is highly available.') + shape_name: str = Field(..., alias='shapeName', description='The shape of the primary instances of MYSQL DB system. The shape determines resources allocated to a DB System - CPU cores\nand memory for VM shapes; CPU cores, memory and storage for non-VM shapes.') + + +class MySqlSqlStats(OpsiBaseModel): + """MySql Sql Stats type object.""" + + digest: str = Field(..., alias='digest', description='Unique SQL ID Digest for a MySql Statement.\nExample: `"c20fcea11911be36651b7ca7bd3712d4ed9ac1134cee9c6620039e1fb13b5eff"`') + time_collected: datetime = Field(..., alias='timeCollected', description='Collection timestamp.\nExample: `"2020-03-31T00:00:00.000Z"`') + command_type: str | None = Field(None, alias='commandType', description='Type of statement such as select, update or delete.') + total_rows: int | None = Field(None, alias='totalRows', description='Total number of SQL statements used in collection ranking calculation.') + perf_schema_used_percent: int | None = Field(None, alias='perfSchemaUsedPercent', description='Percent of SQL statements in the perf schema table relative to max or overflow count set in @@GLOBAL.performance_schema_digests_size.') + schema_name: str | None = Field(None, alias='schemaName', description='Name of Database Schema.\nExample: `"performance_schema"`') + exec_count: int | None = Field(None, alias='execCount', description='The total number of times the statement has executed.', ge=0) + total_latency_in_ps: int | None = Field(None, alias='totalLatencyInPs', description='The total wait time (in picoseconds) of timed occurrences of the statement.') + lock_latency_in_ps: int | None = Field(None, alias='lockLatencyInPs', description='The total time waiting (in picoseconds) for locks by timed occurrences of the statement.') + err_count: int | None = Field(None, alias='errCount', description='The total number of errors produced by occurrences of the statement.', ge=0) + warn_count: int | None = Field(None, alias='warnCount', description='The total number of warnings produced by occurrences of the statement.', ge=0) + rows_affected: int | None = Field(None, alias='rowsAffected', description='The total number of rows affected by occurrences of the statement.') + rows_sent: int | None = Field(None, alias='rowsSent', description='The total number of rows returned by occurrences of the statement.') + rows_examined: int | None = Field(None, alias='rowsExamined', description='The total number of rows read from storage engines by occurrences of the statement.') + tmp_disk_tables: int | None = Field(None, alias='tmpDiskTables', description='The total number of internal on-disk temporary tables created by occurrences of the statement.') + tmp_tables: int | None = Field(None, alias='tmpTables', description='The total number of internal in-memory temporary tables created by occurrences of the statement Count') + select_full_join: int | None = Field(None, alias='selectFullJoin', description='The total number of joins that perform table scans because they do not use indexes by occurrences of the statement. If this value is not 0') + select_full_range_join: int | None = Field(None, alias='selectFullRangeJoin', description='The total number of joins that used a range search on a reference table by occurrences of the statement') + select_range: int | None = Field(None, alias='selectRange', description='The total number of joins that used ranges on the first table by occurrences of the statement. This is normally not a critical issue even if the value is quite large. Count') + select_range_check: int | None = Field(None, alias='selectRangeCheck', description='The total number of joins without keys that check for key usage after each row by occurrences of the statement. If this is not 0') + select_scan: int | None = Field(None, alias='selectScan', description='The total number of joins that did a full scan of the first table by occurrences of the statement Count') + sort_merge_passes: int | None = Field(None, alias='sortMergePasses', description='The total number of sort merge passes by occurrences of the statement.') + sort_range: int | None = Field(None, alias='sortRange', description='The total number of sorts that were done using ranges by occurrences of the statement.') + rows_sorted: int | None = Field(None, alias='rowsSorted', description='The total number of rows sorted by occurrences of the statement.') + sort_scan: int | None = Field(None, alias='sortScan', description='The total number of sorts that were done by scanning the table by occurrences of the statement.') + no_index_used_count: int | None = Field(None, alias='noIndexUsedCount', description='The number of occurences of the statement which performed a table scan without using an index Count', ge=0) + no_good_index_used_count: int | None = Field(None, alias='noGoodIndexUsedCount', description='The number of occurences of the statement where the server found no good index to use Count', ge=0) + cpu_latency_in_ps: int | None = Field(None, alias='cpuLatencyInPs', description='The total time spent on CPU (in picoseconds) for the current thread.') + max_controlled_memory_in_bytes: int | None = Field(None, alias='maxControlledMemoryInBytes', description='The maximum amount of controlled memory (in bytes) used by the statement.') + max_total_memory_in_bytes: int | None = Field(None, alias='maxTotalMemoryInBytes', description='The maximum amount of memory (in bytes) used by the statement.') + exec_count_secondary: int | None = Field(None, alias='execCountSecondary', description='The total number of times a query was processed on the secondary engine (HEATWAVE) for occurrences of this statement Count.') + time_first_seen: datetime | None = Field(None, alias='timeFirstSeen', description='The time at which statement was first seen.\nExample: `"2023-01-16 08:04:31.533577"`') + time_last_seen: datetime | None = Field(None, alias='timeLastSeen', description='The time at which statement was most recently seen for all occurrences of the statement.\nExample: `"2023-01-30 02:17:08.067961"`') + + +class MySqlSqlText(OpsiBaseModel): + """MySql SQL Text type object.""" + + schema_name: str | None = Field(None, alias='schemaName', description='Name of Database Schema.\nExample: `"performance_schema"`') + digest: str = Field(..., alias='digest', description='digest\nExample: `"323k3k99ua09a90adf"`') + time_collected: datetime = Field(..., alias='timeCollected', description='Collection timestamp.\nExample: `"2020-05-06T00:00:00.000Z"`') + command_type: str | None = Field(None, alias='commandType', description='SQL event name\nExample: `"SELECT"`') + digest_text: str = Field(..., alias='digestText', description='The normalized statement string.\nExample: `"SELECT username,profile,default_tablespace,temporary_tablespace FROM dba_users"`') + + +class NetworkUsageTrend(OpsiBaseModel): + """Usage data samples.""" + + end_timestamp: datetime = Field(..., alias='endTimestamp', description='The timestamp in which the current sampling period ends in RFC 3339 format.') + all_network_read_in_mbps: float = Field(..., alias='allNetworkReadInMbps', description='Network read in Mbps.') + all_network_write_in_mbps: float = Field(..., alias='allNetworkWriteInMbps', description='Network write in Mbps.') + all_network_io_in_mbps: float = Field(..., alias='allNetworkIoInMbps', description='Network input/output in Mbps.') + + +class NetworkUsageTrendAggregation(OpsiBaseModel): + """Usage data per network interface.""" + + interface_name: str = Field(..., alias='interfaceName', description='Name of interface.') + ip_address: str = Field(..., alias='ipAddress', description='Address that is connected to a computer network that uses the Internet Protocol for communication.') + mac_address: str = Field(..., alias='macAddress', description='Unique identifier assigned to a network interface.') + usage_data: list[NetworkUsageTrend] = Field(..., alias='usageData', description='List of usage data samples for a network interface.') + + +class NewsContentTypes(OpsiBaseModel): + """Content types that the news report can handle.""" + + capacity_planning_resources: list[Any] | None = Field(None, alias='capacityPlanningResources', description='Supported resources for capacity planning content type.') + sql_insights_fleet_analysis_resources: list[Any] | None = Field(None, alias='sqlInsightsFleetAnalysisResources', description='Supported resources for SQL insights - fleet analysis content type.') + sql_insights_plan_changes_resources: list[Any] | None = Field(None, alias='sqlInsightsPlanChangesResources', description='Supported resources for SQL insights - plan changes content type.') + sql_insights_top_databases_resources: list[Any] | None = Field(None, alias='sqlInsightsTopDatabasesResources', description='Supported resources for SQL insights - top databases content type.') + sql_insights_top_sql_by_insights_resources: list[Any] | None = Field(None, alias='sqlInsightsTopSqlByInsightsResources', description='Supported resources for SQL insights - top SQL by insights content type.') + sql_insights_top_sql_resources: list[Any] | None = Field(None, alias='sqlInsightsTopSqlResources', description='Supported resources for SQL insights - top SQL content type.') + sql_insights_performance_degradation_resources: list[Any] | None = Field(None, alias='sqlInsightsPerformanceDegradationResources', description='Supported resources for SQL insights - performance degradation content type.') + actionable_insights_resources: list[Any] | None = Field(None, alias='actionableInsightsResources', description='Supported resources for actionable insights content type.') + + +class NewsReport(OpsiBaseModel): + """News report resource.""" + + news_frequency: Literal['WEEKLY', 'DAILY', 'HOURLY', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='newsFrequency', description='News report frequency.\n\nAllowed values for this property are: "WEEKLY", "DAILY", "HOURLY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + content_types: NewsContentTypes = Field(..., alias='contentTypes', description='The content_types field of NewsReport.') + locale: Literal['EN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='locale', description='Language of the news report.\n\nAllowed values for this property are: "EN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + id: str = Field(..., alias='id', description='The OCID of the news report resource.') + description: str | None = Field(None, alias='description', description='The description of the news report.') + compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') + name: str | None = Field(None, alias='name', description='The news report name.') + ons_topic_id: str = Field(..., alias='onsTopicId', description='The OCID of the ONS topic.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='status', description='Indicates the status of a news report in Ops Insights.\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime | None = Field(None, alias='timeCreated', description='The time the the news report was first enabled. An RFC3339 formatted datetime string.') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='The time the news report was updated. An RFC3339 formatted datetime string.') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='The current state of the news report.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + day_of_week: Literal['MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SUNDAY', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='dayOfWeek', description='Day of the week in which the news report will be sent if the frequency is set to WEEKLY.\n\nAllowed values for this property are: "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + are_child_compartments_included: bool | None = Field(None, alias='areChildCompartmentsIncluded', description='A flag to consider the resources within a given compartment and all sub-compartments.') + tag_filters: list[str] | None = Field(None, alias='tagFilters', description="List of tag filters; each filter composed by a namespace, key, and value.\nExample for defined tags - '.='.\nExample for freeform tags - '='.") + match_rule: Literal['MATCH_ANY', 'MATCH_ALL', 'MATCH_NONE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='matchRule', description='Match rule used for tag filters.\n\nAllowed values for this property are: "MATCH_ANY", "MATCH_ALL", "MATCH_NONE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class NewsReportCollection(OpsiBaseModel): + """Collection of news reports summary objects.""" + + items: list[NewsReportSummary] = Field(..., alias='items', description='Array of news reports summary objects.') + + +class NewsReportSummary(OpsiBaseModel): + """Summary of a news report resource.""" + + news_frequency: Literal['WEEKLY', 'DAILY', 'HOURLY', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='newsFrequency', description='News report frequency.\n\nAllowed values for this property are: "WEEKLY", "DAILY", "HOURLY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + content_types: NewsContentTypes = Field(..., alias='contentTypes', description='The content_types field of NewsReportSummary.') + locale: Literal['EN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='locale', description='Language of the news report.\n\nAllowed values for this property are: "EN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + id: str = Field(..., alias='id', description='The OCID of the news report resource.') + description: str | None = Field(None, alias='description', description='The description of the news report.') + compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') + name: str | None = Field(None, alias='name', description='The news report name.') + ons_topic_id: str | None = Field(None, alias='onsTopicId', description='The OCID of the ONS topic.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='status', description='Indicates the status of a news report in Ops Insights.\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime | None = Field(None, alias='timeCreated', description='The time the the news report was first enabled. An RFC3339 formatted datetime string.') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='The time the news report was updated. An RFC3339 formatted datetime string.') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='The current state of the news report.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + day_of_week: Literal['MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SUNDAY', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='dayOfWeek', description='Day of the week in which the news report will be sent if the frequency is set to WEEKLY.\n\nAllowed values for this property are: "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + are_child_compartments_included: bool | None = Field(None, alias='areChildCompartmentsIncluded', description='A flag to consider the resources within a given compartment and all sub-compartments.') + tag_filters: list[str] | None = Field(None, alias='tagFilters', description="List of tag filters; each filter composed by a namespace, key, and value.\nExample for defined tags - '.='.\nExample for freeform tags - '='.") + match_rule: Literal['MATCH_ANY', 'MATCH_ALL', 'MATCH_NONE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='matchRule', description='Match rule used for tag filters.\n\nAllowed values for this property are: "MATCH_ANY", "MATCH_ALL", "MATCH_NONE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class NewsReports(OpsiBaseModel): + """Logical grouping used for Operations Insights news reports related operations.""" + + news_reports: Any | None = Field(None, alias='newsReports', description='News report object.') + + +class ObjectSummary(OpsiBaseModel): + """Summary resource object.""" + + name: str | None = Field(None, alias='name', description='The name of the Awr Hub object.') + size: int | None = Field(None, alias='size', description='Size of the Awr Hub object in bytes.') + md5: str | None = Field(None, alias='md5', description='Base64-encoded MD5 hash of the Awr Hub object data.') + time_created: datetime | None = Field(None, alias='timeCreated', description='The time at which the resource was first created. An RFC3339 formatted datetime string') + etag: str | None = Field(None, alias='etag', description='For optimistic concurrency control. See `if-match`.') + storage_tier: Literal['STANDARD', 'INFREQUENTACCESS', 'ARCHIVE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='storageTier', description='The object\'s storage tier.\n\nAllowed values for this property are: "STANDARD", "INFREQUENTACCESS", "ARCHIVE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + archival_state: Literal['ARCHIVED', 'RESTORING', 'RESTORED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='archivalState', description='Archival state of an object for those in the archival tier.\n\nAllowed values for this property are: "ARCHIVED", "RESTORING", "RESTORED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_modified: datetime | None = Field(None, alias='timeModified', description='The date and time the Awr Hub object was modified') + + +class OperationsInsightsPrivateEndpoint(OpsiBaseModel): + """A private endpoint that allows Operation Insights services to connect to databases in a customer's virtual cloud network (VCN).""" + + id: str = Field(..., alias='id', description='The OCID of the Private service accessed database.') + display_name: str = Field(..., alias='displayName', description='The display name of the private endpoint.') + compartment_id: str = Field(..., alias='compartmentId', description='The compartment OCID of the Private service accessed database.') + vcn_id: str = Field(..., alias='vcnId', description='The OCID of the VCN.') + subnet_id: str = Field(..., alias='subnetId', description='The OCID of the subnet.') + private_ip: str | None = Field(None, alias='privateIp', description='The private IP addresses assigned to the private endpoint. All IP addresses will be concatenated if it is RAC DBs.') + description: str | None = Field(None, alias='description', description='The description of the private endpoint.') + time_created: datetime | None = Field(None, alias='timeCreated', description='The date and time the private endpoint was created, in the format defined by RFC3339.') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='The current state of the private endpoint.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + private_endpoint_status_details: str | None = Field(None, alias='privateEndpointStatusDetails', description='A message describing the status of the private endpoint connection of this resource. For example, it can be used to provide actionable information about the validity of the private endpoint connection.') + is_used_for_rac_dbs: bool | None = Field(None, alias='isUsedForRacDbs', description='The flag is to identify if private endpoint is used for rac database or not. This flag is deprecated and no longer is used.') + nsg_ids: list[str] | None = Field(None, alias='nsgIds', description='The OCIDs of the network security groups that the private endpoint belongs to.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + + +class OperationsInsightsPrivateEndpointCollection(OpsiBaseModel): + """A collection of Operation Insights private endpoint objects.""" + + items: list[OperationsInsightsPrivateEndpointSummary] = Field(..., alias='items', description='A list of OperationsInsightsPrivateEndpointSummary objects.') + + +class OperationsInsightsPrivateEndpointSummary(OpsiBaseModel): + """Summary of a Operation Insights private endpoint.""" + + id: str = Field(..., alias='id', description='The OCID of the Private service accessed database.') + display_name: str = Field(..., alias='displayName', description='The display name of the private endpoint.') + compartment_id: str = Field(..., alias='compartmentId', description='The compartment OCID of the Private service accessed database.') + vcn_id: str = Field(..., alias='vcnId', description='The OCID of the VCN.') + subnet_id: str = Field(..., alias='subnetId', description='The OCID of the subnet.') + is_used_for_rac_dbs: bool | None = Field(None, alias='isUsedForRacDbs', description='The flag to identify if private endpoint is used for rac database or not. This flag is deprecated and no longer is used.') + description: str | None = Field(None, alias='description', description='The description of the private endpoint.') + time_created: datetime = Field(..., alias='timeCreated', description='The date and time the private endpoint was created, in the format defined by RFC3339.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Private endpoint lifecycle states\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + private_endpoint_status_details: str | None = Field(None, alias='privateEndpointStatusDetails', description='A message describing the status of the private endpoint connection of this resource. For example, it can be used to provide actionable information about the validity of the private endpoint connection.') + + +class OperationsInsightsWarehouse(OpsiBaseModel): + """OPSI warehouse resource.""" + + id: str = Field(..., alias='id', description='OPSI Warehouse OCID') + compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') + display_name: str = Field(..., alias='displayName', description='User-friedly name of Ops Insights Warehouse that does not have to be unique.') + cpu_allocated: float = Field(..., alias='cpuAllocated', description='Number of CPUs allocated to OPSI Warehouse ADW.') + compute_model: Literal['OCPU', 'ECPU', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='computeModel', description='The compute model for the OPSI warehouse ADW (OCPU or ECPU)\n\nAllowed values for this property are: "OCPU", "ECPU", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + cpu_used: float | None = Field(None, alias='cpuUsed', description='Number of OCPUs used by OPSI Warehouse ADW. Can be fractional.') + storage_allocated_in_gbs: float | None = Field(None, alias='storageAllocatedInGBs', description='Storage allocated to OPSI Warehouse ADW.') + storage_used_in_gbs: float | None = Field(None, alias='storageUsedInGBs', description='Storage by OPSI Warehouse ADW in GB.') + dynamic_group_id: str | None = Field(None, alias='dynamicGroupId', description='OCID of the dynamic group created for the warehouse') + operations_insights_tenancy_id: str | None = Field(None, alias='operationsInsightsTenancyId', description='Tenancy Identifier of Ops Insights service') + time_last_wallet_rotated: datetime | None = Field(None, alias='timeLastWalletRotated', description='The time at which the ADW wallet was last rotated for the Ops Insights Warehouse. An RFC3339 formatted datetime string') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + time_created: datetime = Field(..., alias='timeCreated', description='The time at which the resource was first created. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='The time at which the resource was last updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Possible lifecycle states\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + + +class OperationsInsightsWarehouseSummary(OpsiBaseModel): + """Summary of a Operations Insights Warehouse resource.""" + + id: str = Field(..., alias='id', description='OPSI Warehouse OCID') + compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') + display_name: str = Field(..., alias='displayName', description='User-friedly name of Ops Insights Warehouse that does not have to be unique.') + cpu_allocated: float = Field(..., alias='cpuAllocated', description='Number of CPUs allocated to OPSI Warehouse ADW.') + compute_model: str | None = Field(None, alias='computeModel', description='The compute model for the OPSI warehouse ADW (OCPU or ECPU)') + cpu_used: float | None = Field(None, alias='cpuUsed', description='Number of OCPUs used by OPSI Warehouse ADW. Can be fractional.') + storage_allocated_in_gbs: float | None = Field(None, alias='storageAllocatedInGBs', description='Storage allocated to OPSI Warehouse ADW.') + storage_used_in_gbs: float | None = Field(None, alias='storageUsedInGBs', description='Storage by OPSI Warehouse ADW in GB.') + dynamic_group_id: str | None = Field(None, alias='dynamicGroupId', description='OCID of the dynamic group created for the warehouse') + operations_insights_tenancy_id: str | None = Field(None, alias='operationsInsightsTenancyId', description='Tenancy Identifier of Ops Insights service') + time_last_wallet_rotated: datetime | None = Field(None, alias='timeLastWalletRotated', description='The time at which the ADW wallet was last rotated for the Ops Insights Warehouse. An RFC3339 formatted datetime string') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + time_created: datetime = Field(..., alias='timeCreated', description='The time at which the resource was first created. An RFC3339 formatted datetime string') + time_updated: datetime = Field(..., alias='timeUpdated', description='The time at which the resource was last updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Possible lifecycle states\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + + +class OperationsInsightsWarehouseSummaryCollection(OpsiBaseModel): + """Collection of Operations Insights Warehouse summary objects.""" + + items: list[OperationsInsightsWarehouseSummary] = Field(..., alias='items', description='Array of Operations Insights Warehouse summary objects.') + + +class OperationsInsightsWarehouseUser(OpsiBaseModel): + """OPSI warehouse User.""" + + operations_insights_warehouse_id: str = Field(..., alias='operationsInsightsWarehouseId', description='OPSI Warehouse OCID') + id: str = Field(..., alias='id', description='Hub User OCID') + compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') + name: str = Field(..., alias='name', description='Username for schema which would have access to AWR Data, Enterprise Manager Data and Ops Insights OPSI Hub.') + connection_password: str | None = Field(None, alias='connectionPassword', description='User provided connection password for the AWR Data, Enterprise Manager Data and Ops Insights OPSI Hub.') + is_awr_data_access: bool = Field(..., alias='isAwrDataAccess', description='Indicate whether user has access to AWR data.') + is_em_data_access: bool | None = Field(None, alias='isEmDataAccess', description='Indicate whether user has access to EM data.') + is_opsi_data_access: bool | None = Field(None, alias='isOpsiDataAccess', description='Indicate whether user has access to OPSI data.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + time_created: datetime = Field(..., alias='timeCreated', description='The time at which the resource was first created. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='The time at which the resource was last updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Possible lifecycle states\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + + +class OperationsInsightsWarehouseUserSummary(OpsiBaseModel): + """Summary of a Operations Insights Warehouse User.""" + + operations_insights_warehouse_id: str = Field(..., alias='operationsInsightsWarehouseId', description='OPSI Warehouse OCID') + id: str = Field(..., alias='id', description='Hub User OCID') + compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') + name: str = Field(..., alias='name', description='Username for schema which would have access to AWR Data, Enterprise Manager Data and Ops Insights OPSI Hub.') + connection_password: str | None = Field(None, alias='connectionPassword', description='User provided connection password for the AWR Data, Enterprise Manager Data and Ops Insights OPSI Hub.') + is_awr_data_access: bool = Field(..., alias='isAwrDataAccess', description='Indicate whether user has access to AWR data.') + is_em_data_access: bool | None = Field(None, alias='isEmDataAccess', description='Indicate whether user has access to EM data.') + is_opsi_data_access: bool | None = Field(None, alias='isOpsiDataAccess', description='Indicate whether user has access to OPSI data.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + time_created: datetime = Field(..., alias='timeCreated', description='The time at which the resource was first created. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='The time at which the resource was last updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Possible lifecycle states\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + + +class OperationsInsightsWarehouseUserSummaryCollection(OpsiBaseModel): + """Collection of Operations Insights Warehouse User summary objects.""" + + items: list[OperationsInsightsWarehouseUserSummary] = Field(..., alias='items', description='Array of Operations Insights Warehouse user summary objects.') + + +class OperationsInsightsWarehouseUsers(OpsiBaseModel): + """Logical grouping used for Operations Insights Warehouse User operations.""" + + operations_insights_warehouse_users: Any | None = Field(None, alias='operationsInsightsWarehouseUsers', description='Operations Insights Warehouse User Object.') + + +class OperationsInsightsWarehouses(OpsiBaseModel): + """Logical grouping used for Ops Insights Warehouse operations.""" + + operations_insights_warehouses: Any | None = Field(None, alias='operationsInsightsWarehouses', description='Ops Insights Warehouse Object.') + + +class OpsiConfiguration(OpsiBaseModel): + """OPSI configuration.""" + + id: str | None = Field(None, alias='id', description='OCID of OPSI configuration resource.') + compartment_id: str | None = Field(None, alias='compartmentId', description='The OCID of the compartment.') + opsi_config_type: Literal['UX_CONFIGURATION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='opsiConfigType', description='OPSI configuration type.\n\nAllowed values for this property are: "UX_CONFIGURATION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + display_name: str | None = Field(None, alias='displayName', description='User-friendly display name for the OPSI configuration. The name does not have to be unique.') + description: str | None = Field(None, alias='description', description='Description of OPSI configuration.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + time_created: datetime | None = Field(None, alias='timeCreated', description='The time at which the resource was first created. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='The time at which the resource was last updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='OPSI configuration resource lifecycle state.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + config_items: list[OpsiConfigurationConfigurationItemSummary] | None = Field(None, alias='configItems', description='Array of configuration item summary objects.') + + +class OpsiConfigurationBasicConfigurationItemSummary(OpsiBaseModel): + """Basic configuration item summary. Value and defaultValue fields will contain the custom value stored in the resource and default value from Ops Insights respectively.""" + + config_item_type: Literal['BASIC', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='configItemType', description='Gets the config_item_type of this OpsiConfigurationConfigurationItemSummary.\nType of configuration item.\n\nAllowed values for this property are: "BASIC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + name: str | None = Field(None, alias='name', description='Name of configuration item.') + value: str | None = Field(None, alias='value', description='Value of configuration item.') + default_value: str | None = Field(None, alias='defaultValue', description='Value of configuration item.') + applicable_contexts: list[str] | None = Field(None, alias='applicableContexts', description='List of contexts in Operations Insights where this configuration item is applicable.') + metadata: ConfigurationItemMetadata | None = Field(None, alias='metadata', description='The metadata field of OpsiConfigurationBasicConfigurationItemSummary.') + + +class OpsiConfigurationConfigurationItemSummary(OpsiBaseModel): + """Configuration item summary.""" + + config_item_type: Literal['BASIC', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='configItemType', description='Type of configuration item.\n\nAllowed values for this property are: "BASIC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class OpsiConfigurationSummary(OpsiBaseModel): + """OPSI configuration summary.""" + + id: str | None = Field(None, alias='id', description='OCID of OPSI configuration resource.') + compartment_id: str | None = Field(None, alias='compartmentId', description='The OCID of the compartment.') + opsi_config_type: Literal['UX_CONFIGURATION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='opsiConfigType', description='OPSI configuration type.\n\nAllowed values for this property are: "UX_CONFIGURATION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + display_name: str | None = Field(None, alias='displayName', description='User-friendly display name for the OPSI configuration. The name does not have to be unique.') + description: str | None = Field(None, alias='description', description='Description of OPSI configuration.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + time_created: datetime | None = Field(None, alias='timeCreated', description='The time at which the resource was first created. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='The time at which the resource was last updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='OPSI configuration resource lifecycle state.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + + +class OpsiConfigurations(OpsiBaseModel): + """An OPSI configuration resource is a container for storing custom values for customizable configuration items exposed by Operations Insights.""" + + opsi_configurations: Any | None = Field(None, alias='opsiConfigurations', description='OPSI Configuration Object.') + + +class OpsiConfigurationsCollection(OpsiBaseModel): + """Collection of OPSI configuration summary objects.""" + + items: list[OpsiConfigurationSummary] = Field(..., alias='items', description='Array of OPSI configuration summary objects.') + + +class OpsiDataObject(OpsiBaseModel): + """OPSI data object.""" + + identifier: str = Field(..., alias='identifier', description='Unique identifier of OPSI data object.') + data_object_type: Literal['DATABASE_INSIGHTS_DATA_OBJECT', 'HOST_INSIGHTS_DATA_OBJECT', 'EXADATA_INSIGHTS_DATA_OBJECT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dataObjectType', description='Type of OPSI data object.\n\nAllowed values for this property are: "DATABASE_INSIGHTS_DATA_OBJECT", "HOST_INSIGHTS_DATA_OBJECT", "EXADATA_INSIGHTS_DATA_OBJECT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + display_name: str = Field(..., alias='displayName', description='User-friendly name of OPSI data object.') + description: str | None = Field(None, alias='description', description='Description of OPSI data object.') + name: str | None = Field(None, alias='name', description='Name of the data object, which can be used in data object queries just like how view names are used in a query.') + group_names: list[str] | None = Field(None, alias='groupNames', description='Names of all the groups to which the data object belongs to.') + supported_query_time_period: str | None = Field(None, alias='supportedQueryTimePeriod', description='Time period supported by the data object for quering data.\nTime period is in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D.\nExamples: P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months).') + columns_metadata: list[DataObjectColumnMetadata] = Field(..., alias='columnsMetadata', description='Metadata of columns in a data object.') + supported_query_params: list[OpsiDataObjectSupportedQueryParam] | None = Field(None, alias='supportedQueryParams', description='Supported query parameters by this OPSI data object that can be configured while a data object query involving this data object is executed.') + + +class OpsiDataObjectDetailsInQuery(OpsiBaseModel): + """Details for OPSI data object used in a data object query.""" + + data_object_details_target: Literal['INDIVIDUAL_OPSIDATAOBJECT', 'OPSIDATAOBJECTTYPE_OPSIDATAOBJECTS'] = Field(..., alias='dataObjectDetailsTarget', description='Data objects to which this OpsiDataObjectDetailsInQuery is applicable.\n\nAllowed values for this property are: "INDIVIDUAL_OPSIDATAOBJECT", "OPSIDATAOBJECTTYPE_OPSIDATAOBJECTS"') + query_params: list[OpsiDataObjectQueryParam] | None = Field(None, alias='queryParams', description='An array of query parameters to be applied, for the OPSI data objects targetted by dataObjectDetailsTarget, before executing the query.\nRefer to supportedQueryParams of OpsiDataObject for the supported query parameters.') + + +class OpsiDataObjectQueryParam(OpsiBaseModel): + """Details for a query parameter to be applied on an OPSI data object, when a data object query is executed.""" + + name: str = Field(..., alias='name', description='Name of the query parameter.') + value: Any = Field(..., alias='value', description='Value for the query parameter.') + + +class OpsiDataObjectSummary(OpsiBaseModel): + """Summary of an OPSI data object.""" + + identifier: str = Field(..., alias='identifier', description='Unique identifier of OPSI data object.') + data_object_type: Literal['DATABASE_INSIGHTS_DATA_OBJECT', 'HOST_INSIGHTS_DATA_OBJECT', 'EXADATA_INSIGHTS_DATA_OBJECT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dataObjectType', description='Type of OPSI data object.\n\nAllowed values for this property are: "DATABASE_INSIGHTS_DATA_OBJECT", "HOST_INSIGHTS_DATA_OBJECT", "EXADATA_INSIGHTS_DATA_OBJECT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + display_name: str = Field(..., alias='displayName', description='User-friendly name of OPSI data object.') + description: str | None = Field(None, alias='description', description='Description of OPSI data object.') + name: str | None = Field(None, alias='name', description='Name of the data object, which can be used in data object queries just like how view names are used in a query.') + group_names: list[str] | None = Field(None, alias='groupNames', description='Names of all the groups to which the data object belongs to.') + + +class OpsiDataObjectSupportedQueryParam(OpsiBaseModel): + """Details of query parameter supported by an OPSI data object.""" + + name: str = Field(..., alias='name', description='Name of the query parameter.') + description: str | None = Field(None, alias='description', description='Description of the query parameter.') + data_type: str | None = Field(None, alias='dataType', description='Data type of the for the query parameter.') + + +class OpsiDataObjectTypeOpsiDataObjectDetailsInQuery(OpsiBaseModel): + """Details applicable for all OPSI data objects of a specific OpsiDataObjectType used in a data object query.""" + + data_object_details_target: Literal['INDIVIDUAL_OPSIDATAOBJECT', 'OPSIDATAOBJECTTYPE_OPSIDATAOBJECTS'] = Field(..., alias='dataObjectDetailsTarget', description='Gets the data_object_details_target of this OpsiDataObjectDetailsInQuery.\nData objects to which this OpsiDataObjectDetailsInQuery is applicable.\n\nAllowed values for this property are: "INDIVIDUAL_OPSIDATAOBJECT", "OPSIDATAOBJECTTYPE_OPSIDATAOBJECTS"') + query_params: list[OpsiDataObjectQueryParam] | None = Field(None, alias='queryParams', description='Gets the _query_params of this OpsiDataObjectDetailsInQuery.\nAn array of query parameters to be applied, for the OPSI data objects targetted by dataObjectDetailsTarget, before executing the query.\nRefer to supportedQueryParams of OpsiDataObject for the supported query parameters.') + data_object_type: Literal['DATABASE_INSIGHTS_DATA_OBJECT', 'HOST_INSIGHTS_DATA_OBJECT', 'EXADATA_INSIGHTS_DATA_OBJECT'] = Field(..., alias='dataObjectType', description='Type of OPSI data object.\n\nAllowed values for this property are: "DATABASE_INSIGHTS_DATA_OBJECT", "HOST_INSIGHTS_DATA_OBJECT", "EXADATA_INSIGHTS_DATA_OBJECT"') + + +class OpsiDataObjects(OpsiBaseModel): + """Logical grouping used for OPSI data object targeted operations.""" + + opsi_data_objects: Any | None = Field(None, alias='opsiDataObjects', description='OPSI Data Object.') + + +class OpsiDataObjectsCollection(OpsiBaseModel): + """Collection of OPSI data object summary objects.""" + + items: list[OpsiDataObjectSummary] = Field(..., alias='items', description='Array of OPSI data object summary objects.') + + +class OpsiDataStores(OpsiBaseModel): + """Logical grouping used for Ops Insights Data Store operations.""" + + opsi_data_stores: Any | None = Field(None, alias='opsiDataStores', description='OPSI Data Store Object.') + + +class OpsiUxConfiguration(OpsiBaseModel): + """OPSI UX configuration.""" + + id: str | None = Field(None, alias='id', description='Gets the id of this OpsiConfiguration. OCID of OPSI configuration resource.') + compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this OpsiConfiguration. The OCID of the compartment.') + opsi_config_type: Literal['UX_CONFIGURATION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='opsiConfigType', description='Gets the opsi_config_type of this OpsiConfiguration.\nOPSI configuration type.\n\nAllowed values for this property are: "UX_CONFIGURATION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + display_name: str | None = Field(None, alias='displayName', description='Gets the display_name of this OpsiConfiguration.\nUser-friendly display name for the OPSI configuration. The name does not have to be unique.') + description: str | None = Field(None, alias='description', description='Gets the description of this OpsiConfiguration.\nDescription of OPSI configuration.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this OpsiConfiguration.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this OpsiConfiguration.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this OpsiConfiguration.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this OpsiConfiguration.\nThe time at which the resource was first created. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this OpsiConfiguration.\nThe time at which the resource was last updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this OpsiConfiguration.\nOPSI configuration resource lifecycle state.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this OpsiConfiguration.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + config_items: list[OpsiConfigurationConfigurationItemSummary] | None = Field(None, alias='configItems', description='Gets the config_items of this OpsiConfiguration.\nArray of configuration item summary objects.') + + +class OpsiUxConfigurationSummary(OpsiBaseModel): + """OPSI UX configuration summary.""" + + id: str | None = Field(None, alias='id', description='Gets the id of this OpsiConfigurationSummary. OCID of OPSI configuration resource.') + compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this OpsiConfigurationSummary. The OCID of the compartment.') + opsi_config_type: Literal['UX_CONFIGURATION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='opsiConfigType', description='Gets the opsi_config_type of this OpsiConfigurationSummary.\nOPSI configuration type.\n\nAllowed values for this property are: "UX_CONFIGURATION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + display_name: str | None = Field(None, alias='displayName', description='Gets the display_name of this OpsiConfigurationSummary.\nUser-friendly display name for the OPSI configuration. The name does not have to be unique.') + description: str | None = Field(None, alias='description', description='Gets the description of this OpsiConfigurationSummary.\nDescription of OPSI configuration.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this OpsiConfigurationSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this OpsiConfigurationSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this OpsiConfigurationSummary.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this OpsiConfigurationSummary.\nThe time at which the resource was first created. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this OpsiConfigurationSummary.\nThe time at which the resource was last updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this OpsiConfigurationSummary.\nOPSI configuration resource lifecycle state.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this OpsiConfigurationSummary.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + + +class OpsiWarehouseDataObjects(OpsiBaseModel): + """Logical grouping used for Operations Insights Warehouse data objects operations.""" + + opsi_warehouse_data_objects: Any | None = Field(None, alias='opsiWarehouseDataObjects', description='Operations Insights Warehouse Data Object.') + + +class PeComanagedDatabaseConnectionDetails(OpsiBaseModel): + """Connection details of the private endpoints.""" + + hosts: list[PeComanagedDatabaseHostDetails] = Field(..., alias='hosts', description='List of hosts and port for private endpoint accessed database resource.') + protocol: Literal['TCP', 'TCPS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='protocol', description='Protocol used for connection requests for private endpoint accssed database resource.\n\nAllowed values for this property are: "TCP", "TCPS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + service_name: str | None = Field(None, alias='serviceName', description='Database service name used for connection requests.') + + +class PeComanagedDatabaseHostDetails(OpsiBaseModel): + """Input Host Details used for connection requests for private endpoint accessed db resource.""" + + host_ip: str | None = Field(None, alias='hostIp', description='Host IP used for connection requests for Cloud DB resource.') + port: int | None = Field(None, alias='port', description='Listener port number used for connection requests for rivate endpoint accessed db resource.') + + +class PeComanagedDatabaseInsight(OpsiBaseModel): + """Database insight resource.""" + + entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseInsight.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + id: str = Field(..., alias='id', description='Gets the id of this DatabaseInsight.\nDatabase insight identifier') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this DatabaseInsight.\nCompartment identifier of the database') + status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Gets the status of this DatabaseInsight.\nIndicates the status of a database insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + database_type: str | None = Field(None, alias='databaseType', description='Gets the database_type of this DatabaseInsight.\nOps Insights internal representation of the database type.') + database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this DatabaseInsight.\nThe version of the database.') + processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseInsight.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this DatabaseInsight.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this DatabaseInsight.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this DatabaseInsight.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + time_created: datetime = Field(..., alias='timeCreated', description='Gets the time_created of this DatabaseInsight.\nThe time the the database insight was first enabled. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DatabaseInsight.\nThe time the database insight was updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Gets the lifecycle_state of this DatabaseInsight.\nThe current state of the database.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DatabaseInsight.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + database_connection_status_details: str | None = Field(None, alias='databaseConnectionStatusDetails', description='Gets the database_connection_status_details of this DatabaseInsight.\nA message describing the status of the database connection of this resource. For example, it can be used to provide actionable information about the permission and content validity of the database connection.') + opsi_private_endpoint_id: str | None = Field(None, alias='opsiPrivateEndpointId', description='The OCID of the OPSI private endpoint.') + connection_details: PeComanagedDatabaseConnectionDetails | None = Field(None, alias='connectionDetails', description='The connection_details field of PeComanagedDatabaseInsight.') + credential_details: CredentialDetails | None = Field(None, alias='credentialDetails', description='The credential_details field of PeComanagedDatabaseInsight.') + database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') + database_name: str = Field(..., alias='databaseName', description='Name of database') + database_display_name: str | None = Field(None, alias='databaseDisplayName', description='Display name of database') + database_resource_type: str = Field(..., alias='databaseResourceType', description='OCI database resource type') + parent_id: str | None = Field(None, alias='parentId', description='The OCID of the VM Cluster or DB System ID, depending on which configuration the resource belongs to.') + root_id: str | None = Field(None, alias='rootId', description='The OCID of the Exadata Infrastructure.') + + +class PeComanagedDatabaseInsightSummary(OpsiBaseModel): + """Summary of a database insight resource.""" + + id: str = Field(..., alias='id', description='Gets the id of this DatabaseInsightSummary. The OCID of the database insight resource.') + database_id: str = Field(..., alias='databaseId', description='Gets the database_id of this DatabaseInsightSummary. The OCID of the database.') + compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this DatabaseInsightSummary. The OCID of the compartment.') + database_name: str | None = Field(None, alias='databaseName', description='Gets the database_name of this DatabaseInsightSummary.\nThe database name. The database name is unique within the tenancy.') + database_display_name: str | None = Field(None, alias='databaseDisplayName', description='Gets the database_display_name of this DatabaseInsightSummary.\nThe user-friendly name for the database. The name does not have to be unique.') + database_type: str | None = Field(None, alias='databaseType', description='Gets the database_type of this DatabaseInsightSummary.\nOps Insights internal representation of the database type.') + database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this DatabaseInsightSummary.\nThe version of the database.') + database_host_names: list[str] | None = Field(None, alias='databaseHostNames', description='Gets the database_host_names of this DatabaseInsightSummary.\nThe hostnames for the database.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this DatabaseInsightSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this DatabaseInsightSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this DatabaseInsightSummary.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseInsightSummary.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseInsightSummary.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) + status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='status', description='Gets the status of this DatabaseInsightSummary.\nIndicates the status of a database insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DatabaseInsightSummary.\nThe time the the database insight was first enabled. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DatabaseInsightSummary.\nThe time the database insight was updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DatabaseInsightSummary.\nThe current state of the database.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DatabaseInsightSummary.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + database_connection_status_details: str | None = Field(None, alias='databaseConnectionStatusDetails', description='Gets the database_connection_status_details of this DatabaseInsightSummary.\nA message describing the status of the database connection of this resource. For example, it can be used to provide actionable information about the permission and content validity of the database connection.') + database_resource_type: str | None = Field(None, alias='databaseResourceType', description='OCI database resource type') + opsi_private_endpoint_id: str | None = Field(None, alias='opsiPrivateEndpointId', description='The OCID of the OPSI private endpoint.') + parent_id: str | None = Field(None, alias='parentId', description='The OCID of the VM Cluster or DB System ID, depending on which configuration the resource belongs to.') + root_id: str | None = Field(None, alias='rootId', description='The OCID of the root resource for a composite target. e.g. for ExaCS members the rootId will be the OCID of the Exadata Infrastructure resource.') + + +class PeComanagedExadataInsight(OpsiBaseModel): + """Private endpoint managed Exadata insight resource (ExaCS).""" + + entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this ExadataInsight.\nSource of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + id: str = Field(..., alias='id', description='Gets the id of this ExadataInsight.\nExadata insight identifier') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this ExadataInsight.\nCompartment identifier of the Exadata insight resource') + exadata_name: str = Field(..., alias='exadataName', description='Gets the exadata_name of this ExadataInsight.\nThe Exadata system name. If the Exadata systems managed by Enterprise Manager, the name is unique amongst the Exadata systems managed by the same Enterprise Manager.') + exadata_display_name: str | None = Field(None, alias='exadataDisplayName', description='Gets the exadata_display_name of this ExadataInsight.\nThe user-friendly name for the Exadata system. The name does not have to be unique.') + exadata_type: Literal['DBMACHINE', 'EXACS', 'EXACC', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='exadataType', description='Gets the exadata_type of this ExadataInsight.\nOperations Insights internal representation of the the Exadata system type.\n\nAllowed values for this property are: "DBMACHINE", "EXACS", "EXACC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + exadata_rack_type: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'FLEX', 'BASE', 'ELASTIC', 'ELASTIC_BASE', 'ELASTIC_LARGE', 'ELASTIC_EXTRA_LARGE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='exadataRackType', description='Gets the exadata_rack_type of this ExadataInsight.\nExadata rack type.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", "FLEX", "BASE", "ELASTIC", "ELASTIC_BASE", "ELASTIC_LARGE", "ELASTIC_EXTRA_LARGE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + is_virtualized_exadata: bool | None = Field(None, alias='isVirtualizedExadata', description='Gets the is_virtualized_exadata of this ExadataInsight.\ntrue if virtualization is used in the Exadata system') + status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Gets the status of this ExadataInsight.\nIndicates the status of an Exadata insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + chargeback_plan_details: ChargebackPlanDetails | None = Field(None, alias='chargebackPlanDetails', description='Gets the chargeback_plan_details of this ExadataInsight.') + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this ExadataInsight.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this ExadataInsight.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExadataInsight.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + time_created: datetime = Field(..., alias='timeCreated', description='Gets the time_created of this ExadataInsight.\nThe time the the Exadata insight was first enabled. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this ExadataInsight.\nThe time the Exadata insight was updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Gets the lifecycle_state of this ExadataInsight.\nThe current state of the Exadata insight.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExadataInsight.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + status_details: str | None = Field(None, alias='statusDetails', description='Gets the status_details of this ExadataInsight.\nA message describing the status of the Exadata Resource. For example, it can be used to provide actionable information about the policies needed to access the Exadata Resource.') + exadata_infra_id: str = Field(..., alias='exadataInfraId', description='The OCID of the Exadata Infrastructure.') + exadata_infra_resource_type: Literal['cloudExadataInfrastructure', 'exadataInfrastructure', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataInfraResourceType', description='OCI exadata infrastructure resource type\n\nAllowed values for this property are: "cloudExadataInfrastructure", "exadataInfrastructure", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + exadata_shape: str = Field(..., alias='exadataShape', description='The shape of the Exadata Infrastructure.') + + +class PeComanagedExadataInsightSummary(OpsiBaseModel): + """Summary of a Private endpoint managed Exadata insight resource (ExaCS).""" + + entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this ExadataInsightSummary.\nSource of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + id: str = Field(..., alias='id', description='Gets the id of this ExadataInsightSummary. The OCID of the Exadata insight resource.') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this ExadataInsightSummary. The OCID of the compartment.') + exadata_name: str = Field(..., alias='exadataName', description='Gets the exadata_name of this ExadataInsightSummary.\nThe Exadata system name. If the Exadata systems managed by Enterprise Manager, the name is unique amongst the Exadata systems managed by the same Enterprise Manager.') + exadata_display_name: str | None = Field(None, alias='exadataDisplayName', description='Gets the exadata_display_name of this ExadataInsightSummary.\nThe user-friendly name for the Exadata system. The name does not have to be unique.') + exadata_type: Literal['DBMACHINE', 'EXACS', 'EXACC', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='exadataType', description='Gets the exadata_type of this ExadataInsightSummary.\nOperations Insights internal representation of the the Exadata system type.\n\nAllowed values for this property are: "DBMACHINE", "EXACS", "EXACC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + exadata_rack_type: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'FLEX', 'BASE', 'ELASTIC', 'ELASTIC_BASE', 'ELASTIC_LARGE', 'ELASTIC_EXTRA_LARGE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='exadataRackType', description='Gets the exadata_rack_type of this ExadataInsightSummary.\nOperations Insights internal representation of the the Exadata system rack type.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", "FLEX", "BASE", "ELASTIC", "ELASTIC_BASE", "ELASTIC_LARGE", "ELASTIC_EXTRA_LARGE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this ExadataInsightSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this ExadataInsightSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExadataInsightSummary.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Gets the status of this ExadataInsightSummary.\nIndicates the status of an Exadata insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + chargeback_plan_details: ChargebackPlanDetails | None = Field(None, alias='chargebackPlanDetails', description='Gets the chargeback_plan_details of this ExadataInsightSummary.') + time_created: datetime = Field(..., alias='timeCreated', description='Gets the time_created of this ExadataInsightSummary.\nThe time the the Exadata insight was first enabled. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this ExadataInsightSummary.\nThe time the Exadata insight was updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Gets the lifecycle_state of this ExadataInsightSummary.\nThe current state of the Exadata insight.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExadataInsightSummary.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + status_details: str | None = Field(None, alias='statusDetails', description='Gets the status_details of this ExadataInsightSummary.\nA message describing the status of the Exadata Resource. For example, it can be used to provide actionable information about the policies needed to access the Exadata Resource.') + exadata_infra_id: str = Field(..., alias='exadataInfraId', description='The OCID of the Exadata Infrastructure.') + exadata_infra_resource_type: Literal['cloudExadataInfrastructure', 'exadataInfrastructure', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataInfraResourceType', description='OCI exadata infrastructure resource type\n\nAllowed values for this property are: "cloudExadataInfrastructure", "exadataInfrastructure", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + exadata_shape: str = Field(..., alias='exadataShape', description='The shape of the Exadata Infrastructure.') + + +class PeComanagedHostConfigurationSummary(OpsiBaseModel): + """Configuration Summary of a PeComanaged host.""" + + host_insight_id: str = Field(..., alias='hostInsightId', description='Gets the host_insight_id of this HostConfigurationSummary. The OCID of the host insight resource.') + entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this HostConfigurationSummary.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this HostConfigurationSummary. The OCID of the compartment.') + host_name: str = Field(..., alias='hostName', description='Gets the host_name of this HostConfigurationSummary.\nThe host name. The host name is unique amongst the hosts managed by the same management agent.') + platform_type: Literal['LINUX', 'SOLARIS', 'SUNOS', 'ZLINUX', 'WINDOWS', 'AIX', 'HP_UX', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='platformType', description='Gets the platform_type of this HostConfigurationSummary.\nPlatform type.\nSupported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS].\nSupported platformType(s) for MACS-managed cloud host insight: [LINUX].\nSupported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX].\n\nAllowed values for this property are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + platform_version: str = Field(..., alias='platformVersion', description='Gets the platform_version of this HostConfigurationSummary.\nPlatform version.') + platform_vendor: str = Field(..., alias='platformVendor', description='Gets the platform_vendor of this HostConfigurationSummary.\nPlatform vendor.') + total_cpus: int = Field(..., alias='totalCpus', description='Gets the total_cpus of this HostConfigurationSummary.\nTotal CPU on this host.') + total_memory_in_gbs: float = Field(..., alias='totalMemoryInGBs', description='Gets the total_memory_in_gbs of this HostConfigurationSummary.\nTotal amount of usable physical memory in gibabytes') + cpu_architecture: str = Field(..., alias='cpuArchitecture', description='Gets the cpu_architecture of this HostConfigurationSummary.\nCPU architechure') + cpu_cache_in_mbs: float = Field(..., alias='cpuCacheInMBs', description='Gets the cpu_cache_in_mbs of this HostConfigurationSummary.\nSize of cache memory in megabytes.') + cpu_vendor: str = Field(..., alias='cpuVendor', description='Gets the cpu_vendor of this HostConfigurationSummary.\nName of the CPU vendor.') + cpu_frequency_in_mhz: float = Field(..., alias='cpuFrequencyInMhz', description='Gets the cpu_frequency_in_mhz of this HostConfigurationSummary.\nClock frequency of the processor in megahertz.') + cpu_implementation: str = Field(..., alias='cpuImplementation', description='Gets the cpu_implementation of this HostConfigurationSummary.\nModel name of processor.') + cores_per_socket: int = Field(..., alias='coresPerSocket', description='Gets the cores_per_socket of this HostConfigurationSummary.\nNumber of cores per socket.') + total_sockets: int = Field(..., alias='totalSockets', description='Gets the total_sockets of this HostConfigurationSummary.\nNumber of total sockets.') + threads_per_socket: int = Field(..., alias='threadsPerSocket', description='Gets the threads_per_socket of this HostConfigurationSummary.\nNumber of threads per socket.') + is_hyper_threading_enabled: bool = Field(..., alias='isHyperThreadingEnabled', description='Gets the is_hyper_threading_enabled of this HostConfigurationSummary.\nIndicates if hyper-threading is enabled or not') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this HostConfigurationSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this HostConfigurationSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + opsi_private_endpoint_id: str = Field(..., alias='opsiPrivateEndpointId', description='The OCID of the OPSI private endpoint.') + parent_id: str = Field(..., alias='parentId', description='The OCID of the database.') + exadata_details: ExadataDetails = Field(..., alias='exadataDetails', description='The exadata_details field of PeComanagedHostConfigurationSummary.') + + +class PeComanagedHostInsight(OpsiBaseModel): + """Private Endpoint host insight resource.""" + + entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this HostInsight.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + id: str = Field(..., alias='id', description='Gets the id of this HostInsight. The OCID of the host insight resource.') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this HostInsight. The OCID of the compartment.') + host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this HostInsight.\nThe host name. The host name is unique amongst the hosts managed by the same management agent.') + host_display_name: str | None = Field(None, alias='hostDisplayName', description='Gets the host_display_name of this HostInsight.\nThe user-friendly name for the host. The name does not have to be unique.') + host_type: str | None = Field(None, alias='hostType', description='Gets the host_type of this HostInsight.\nOps Insights internal representation of the host type. Possible value is EXTERNAL-HOST.') + processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this HostInsight.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this HostInsight.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this HostInsight.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this HostInsight.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Gets the status of this HostInsight.\nIndicates the status of a host insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime = Field(..., alias='timeCreated', description='Gets the time_created of this HostInsight.\nThe time the the host insight was first enabled. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this HostInsight.\nThe time the host insight was updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Gets the lifecycle_state of this HostInsight.\nThe current state of the host.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this HostInsight.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + opsi_private_endpoint_id: str = Field(..., alias='opsiPrivateEndpointId', description='The OCID of the OPSI private endpoint.') + platform_type: Literal['LINUX', 'SOLARIS', 'SUNOS', 'ZLINUX', 'WINDOWS', 'AIX', 'HP_UX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='platformType', description='Platform type.\nSupported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS].\nSupported platformType(s) for MACS-managed cloud host insight: [LINUX].\nSupported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX].\n\nAllowed values for this property are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + parent_id: str | None = Field(None, alias='parentId', description='The OCID of the VM Cluster or DB System ID, depending on which configuration the resource belongs to.') + root_id: str | None = Field(None, alias='rootId', description='The OCID of the Exadata Infrastructure.') + + +class PeComanagedHostInsightSummary(OpsiBaseModel): + """Summary of a Private Endpoint host insight resource.""" + + entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this HostInsightSummary.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + id: str = Field(..., alias='id', description='Gets the id of this HostInsightSummary. The OCID of the host insight resource.') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this HostInsightSummary. The OCID of the compartment.') + host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this HostInsightSummary.\nThe host name. The host name is unique amongst the hosts managed by the same management agent.') + host_display_name: str | None = Field(None, alias='hostDisplayName', description='Gets the host_display_name of this HostInsightSummary.\nThe user-friendly name for the host. The name does not have to be unique.') + host_type: str | None = Field(None, alias='hostType', description='Gets the host_type of this HostInsightSummary.\nOps Insights internal representation of the host type. Possible value is EXTERNAL-HOST.') + processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this HostInsightSummary.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this HostInsightSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this HostInsightSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this HostInsightSummary.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + opsi_private_endpoint_id: str | None = Field(None, alias='opsiPrivateEndpointId', description='Gets the opsi_private_endpoint_id of this HostInsightSummary. The OCID of the OPSI private endpoint.') + status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='status', description='Gets the status of this HostInsightSummary.\nIndicates the status of a host insight in Ops Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this HostInsightSummary.\nThe time the the host insight was first enabled. An RFC3339 formatted datetime string') + time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this HostInsightSummary.\nThe time the host insight was updated. An RFC3339 formatted datetime string') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this HostInsightSummary.\nThe current state of the host.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this HostInsightSummary.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') + platform_type: Literal['LINUX', 'SOLARIS', 'SUNOS', 'ZLINUX', 'WINDOWS', 'AIX', 'HP_UX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='platformType', description='Platform type.\nSupported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS].\nSupported platformType(s) for MACS-managed cloud host insight: [LINUX].\nSupported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX].\n\nAllowed values for this property are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + parent_id: str | None = Field(None, alias='parentId', description='The OCID of the VM Cluster or DB System ID, depending on which configuration the resource belongs to.') + root_id: str | None = Field(None, alias='rootId', description='The OCID of the Exadata Infrastructure.') + + +class PeComanagedManagedExternalDatabaseConfigurationSummary(OpsiBaseModel): + """Configuration Summary of a Private Endpoint Co-managed External database.""" + + database_insight_id: str = Field(..., alias='databaseInsightId', description='Gets the database_insight_id of this DatabaseConfigurationSummary. The OCID of the database insight resource.') + entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseConfigurationSummary.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this DatabaseConfigurationSummary. The OCID of the compartment.') + database_name: str = Field(..., alias='databaseName', description='Gets the database_name of this DatabaseConfigurationSummary.\nThe database name. The database name is unique within the tenancy.') + database_display_name: str = Field(..., alias='databaseDisplayName', description='Gets the database_display_name of this DatabaseConfigurationSummary.\nThe user-friendly name for the database. The name does not have to be unique.') + database_type: str = Field(..., alias='databaseType', description='Gets the database_type of this DatabaseConfigurationSummary.\nOps Insights internal representation of the database type.') + database_version: str = Field(..., alias='databaseVersion', description='Gets the database_version of this DatabaseConfigurationSummary.\nThe version of the database.') + is_advanced_features_enabled: bool = Field(..., alias='isAdvancedFeaturesEnabled', description='Gets the is_advanced_features_enabled of this DatabaseConfigurationSummary.\nFlag is to identify if advanced features for autonomous database is enabled or not') + cdb_name: str = Field(..., alias='cdbName', description='Gets the cdb_name of this DatabaseConfigurationSummary.\nName of the CDB.Only applies to PDB.') + defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this DatabaseConfigurationSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this DatabaseConfigurationSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseConfigurationSummary.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) + database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') + parent_id: str = Field(..., alias='parentId', description='The OCID of the database.') + opsi_private_endpoint_id: str = Field(..., alias='opsiPrivateEndpointId', description='The OCID of the OPSI private endpoint.') + instances: list[HostInstanceMap] = Field(..., alias='instances', description='Array of hostname and instance name.') + exadata_details: ExadataDetails = Field(..., alias='exadataDetails', description='The exadata_details field of PeComanagedManagedExternalDatabaseConfigurationSummary.') + + +class ProjectedDataItem(OpsiBaseModel): + """The timestamp of the projected event and their corresponding resource value. `highValue` and `lowValue` are the uncertainty bounds of the corresponding value.""" + + end_timestamp: datetime = Field(..., alias='endTimestamp', description='The timestamp in which the current sampling period ends in RFC 3339 format.') + usage: float = Field(..., alias='usage', description='Total amount used of the resource metric type (CPU, STORAGE).') + high_value: float = Field(..., alias='highValue', description='Upper uncertainty bound of the current usage value.') + low_value: float = Field(..., alias='lowValue', description='Lower uncertainty bound of the current usage value.') + + +class QueryDataObjectJsonResultSetRowsCollection(OpsiBaseModel): + """Collection of result set rows from the data object query.""" + + format: Literal['JSON', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='format', description='Gets the format of this QueryDataObjectResultSetRowsCollection.\nFormat type of data object query result set.\n\nAllowed values for this property are: "JSON", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + items: list[Any] = Field(..., alias='items', description='Array of result set rows.') + items_metadata: list[QueryDataObjectResultSetColumnMetadata] = Field(..., alias='itemsMetadata', description='Array of QueryDataObjectResultSetColumnMetadata objects that describe the result set columns.') + query_execution_time_in_seconds: float | None = Field(None, alias='queryExecutionTimeInSeconds', description='Time taken for executing the data object query (in seconds).\nConsider optimizing the query or reducing the target data range, if query execution time is longer.') + + +class QueryDataObjectResultSetColumnMetadata(OpsiBaseModel): + """Metadata of a column in a data object query result set.""" + + name: str = Field(..., alias='name', description='Name of the column in a data object query result set.') + data_type: Literal['NUMBER', 'OTHER', 'TIMESTAMP', 'VARCHAR2'] | None = Field(None, alias='dataType', description='Type of the column in a data object query result.') + data_type_name: Literal['NUMBER', 'TIMESTAMP', 'VARCHAR2', 'OTHER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='dataTypeName', description='Type name of the column in a data object query result set.\n\nAllowed values for this property are: "NUMBER", "TIMESTAMP", "VARCHAR2", "OTHER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class QueryDataObjectResultSetRowsCollection(OpsiBaseModel): + """Collection of result set rows from the data object query.""" + + format: Literal['JSON', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='format', description='Format type of data object query result set.\n\nAllowed values for this property are: "JSON", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class QueryOpsiDataObjectDataDetails(OpsiRequestModel): + """Information required to form and execute query on an OPSI data object.""" + + data_object_identifier: str | None = Field(None, alias='dataObjectIdentifier', description='Unique OPSI data object identifier.') + data_objects: list[OpsiDataObjectDetailsInQuery] | None = Field(None, alias='dataObjects', description='Details of OPSI data objects used in the query.') + query: DataObjectQuery = Field(..., alias='query', description='The query field of QueryOpsiDataObjectDataDetails.') + resource_filters: ResourceFilters | None = Field(None, alias='resourceFilters', description='The resource_filters field of QueryOpsiDataObjectDataDetails.') + + +class QueryWarehouseDataObjectDataDetails(OpsiRequestModel): + """Information required to form and execute Operations Insights Warehouse data objects query.""" + + query: DataObjectQuery = Field(..., alias='query', description='The query field of QueryWarehouseDataObjectDataDetails.') + + +class RelatedObjectTypeDetails(OpsiBaseModel): + """Related object details.""" + + type: Literal['SCHEMA_OBJECT', 'SQL', 'DATABASE_PARAMETER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='type', description='Type of related object\n\nAllowed values for this property are: "SCHEMA_OBJECT", "SQL", "DATABASE_PARAMETER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class ReportGroupingDetails(OpsiBaseModel): + """Report groupings.""" + + key: str = Field(..., alias='key', description='Selected grouping key.') + value: str = Field(..., alias='value', description='Selected grouping value.') + + +class ReportPropertyDetails(OpsiBaseModel): + """Chargeback plan report properties.""" + + analysis_time_interval: str = Field(..., alias='analysisTimeInterval', description='Specify time period in ISO 8601 format with respect to current time.\nIf timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored.\nExamples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).') + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + group_by: Any = Field(..., alias='groupBy', description='Report filters used in grouping') + + +class ResourceCapacityTrendAggregation(OpsiBaseModel): + """Resource Capacity samples.""" + + end_timestamp: datetime = Field(..., alias='endTimestamp', description='The timestamp in which the current sampling period ends in RFC 3339 format.') + capacity: float = Field(..., alias='capacity', description='The maximum allocated amount of the resource metric type (CPU, STORAGE) for a set of databases.') + base_capacity: float = Field(..., alias='baseCapacity', description='The base allocated amount of the resource metric type (CPU, STORAGE) for a set of databases.') + total_host_capacity: float | None = Field(None, alias='totalHostCapacity', description='The maximum host CPUs (cores x threads/core) on the underlying infrastructure. This only applies to CPU and does not not apply for Autonomous Databases.') + + +class ResourceFilters(OpsiBaseModel): + """Information to filter the actual target resources in an operation. e.g: While querying a DATABASE_INSIGHTS_DATA_OBJECT using /opsiDataObjects/actions/queryData API, if resourceFilters is set with valid value for definedTagEquals field, only data of the database insights resources for which the specified freeform tags exist will be considered for the actual query scope.""" + + defined_tag_equals: list[str] | None = Field(None, alias='definedTagEquals', description='A list of tag filters to apply. Only resources with a defined tag matching the value will be considered.\nEach item in the list has the format "{namespace}.{tagName}.{value}". All inputs are case-insensitive.\nMultiple values for the same key (i.e. same namespace and tag name) are interpreted as "OR".\nValues for different keys (i.e. different namespaces, different tag names, or both) are interpreted as "AND".') + freeform_tag_equals: list[str] | None = Field(None, alias='freeformTagEquals', description='A list of tag filters to apply. Only resources with a freeform tag matching the value will be considered.\nThe key for each tag is "{tagName}.{value}". All inputs are case-insensitive.\nMultiple values for the same tag name are interpreted as "OR". Values for different tag names are interpreted as "AND".') + defined_tag_exists: list[str] | None = Field(None, alias='definedTagExists', description='A list of tag existence filters to apply. Only resources for which the specified defined tags exist will be considered.\nEach item in the list has the format "{namespace}.{tagName}.true" (for checking existence of a defined tag)\nor "{namespace}.true". All inputs are case-insensitive.\nCurrently, only existence ("true" at the end) is supported. Absence ("false" at the end) is not supported.\nMultiple values for the same key (i.e. same namespace and tag name) are interpreted as "OR".\nValues for different keys (i.e. different namespaces, different tag names, or both) are interpreted as "AND".') + freeform_tag_exists: list[str] | None = Field(None, alias='freeformTagExists', description='A list of tag existence filters to apply. Only resources for which the specified freeform tags exist will be considered.\nThe key for each tag is "{tagName}.true". All inputs are case-insensitive.\nCurrently, only existence ("true" at the end) is supported. Absence ("false" at the end) is not supported.\nMultiple values for different tag names are interpreted as "AND".') + compartment_id_in_subtree: bool | None = Field(None, alias='compartmentIdInSubtree', description='A flag to consider all resources within a given compartment and all sub-compartments.') + resource_status: list[str] | None = Field(None, alias='resourceStatus', description='Filter resources by status, multiple options could be chosen to show authorized resources even if those are disabled or deleted.\n\nAllowed values for items in this list are: "DISABLED", "ENABLED", "TERMINATED"') + + +class ResourceInsightCurrentUtilization(OpsiBaseModel): + """Current utilization(High/low) for cpu or storage.""" + + low: list[str] | None = Field(None, alias='low', description='List of db ids with low usage') + high: list[str] | None = Field(None, alias='high', description='List of db ids with high usage') + + +class ResourceInsightProjectedUtilization(OpsiBaseModel): + """Projected utilization(High/low) for cpu or storage.""" + + low: list[ResourceInsightProjectedUtilizationItem] = Field(..., alias='low', description='List of db ids with low usage') + high: list[ResourceInsightProjectedUtilizationItem] = Field(..., alias='high', description='List of db ids with high usage') + + +class ResourceInsightProjectedUtilizationItem(OpsiBaseModel): + """Projected utilization object containing dbid and daysToReach value.""" + + id: str = Field(..., alias='id', description='Db id') + days_to_reach: int = Field(..., alias='daysToReach', description='Days to reach projected utilization') + + +class ResourceStatistics(OpsiBaseModel): + """Contains resource statistics with usage unit.""" + + usage: float = Field(..., alias='usage', description='Total amount used of the resource metric type (CPU, STORAGE).') + capacity: float = Field(..., alias='capacity', description='The maximum allocated amount of the resource metric type (CPU, STORAGE) for a set of databases.') + base_capacity: float | None = Field(None, alias='baseCapacity', description='The base allocated amount of the resource metric type (CPU, STORAGE) for a set of databases.') + is_auto_scaling_enabled: bool | None = Field(None, alias='isAutoScalingEnabled', description='Indicates if auto scaling feature is enabled or disabled on a database. It will be false for all metrics other than CPU.') + utilization_percent: float = Field(..., alias='utilizationPercent', description='Resource utilization in percentage') + usage_change_percent: float = Field(..., alias='usageChangePercent', description='Change in resource utilization in percentage') + instance_metrics: list[InstanceMetrics] | None = Field(None, alias='instanceMetrics', description='Array of instance metrics') + total_host_capacity: float | None = Field(None, alias='totalHostCapacity', description='The maximum host CPUs (cores x threads/core) on the underlying infrastructure. This only applies to CPU and does not not apply for Autonomous Databases.') + is_heat_wave_cluster_attached: bool | None = Field(None, alias='isHeatWaveClusterAttached', description='Specifies if MYSQL DB System has heatwave cluster attached.') + is_highly_available: bool | None = Field(None, alias='isHighlyAvailable', description='Specifies if MYSQL DB System is highly available.') + + +class ResourceStatisticsAggregation(OpsiBaseModel): + """Contains database details and resource statistics.""" + + database_details: DatabaseDetails | None = Field(None, alias='databaseDetails', description='The database_details field of ResourceStatisticsAggregation.') + current_statistics: ResourceStatistics | None = Field(None, alias='currentStatistics', description='The current_statistics field of ResourceStatisticsAggregation.') + + +class ResourceUsageSummary(OpsiBaseModel): + """Contains resource usage summary.""" + + exadata_insight_id: str = Field(..., alias='exadataInsightId', description='The OCID of the Exadata insight.') + exadata_display_name: str | None = Field(None, alias='exadataDisplayName', description='The user-friendly name for the Exadata system. The name does not have to be unique.') + usage: float = Field(..., alias='usage', description='Total amount used of the resource metric type (CPU, STORAGE).') + capacity: float = Field(..., alias='capacity', description='The maximum allocated amount of the resource metric type (CPU, STORAGE) for a set of databases.') + utilization_percent: float = Field(..., alias='utilizationPercent', description='Resource utilization in percentage') + usage_change_percent: float = Field(..., alias='usageChangePercent', description='Change in resource utilization in percentage') + total_host_capacity: float | None = Field(None, alias='totalHostCapacity', description='The maximum host CPUs (cores x threads/core) on the underlying infrastructure. This only applies to CPU and does not not apply for Autonomous Databases.') + + +class ResourceUsageTrendAggregation(OpsiBaseModel): + """Aggregate usage samples.""" + + end_timestamp: datetime = Field(..., alias='endTimestamp', description='The timestamp in which the current sampling period ends in RFC 3339 format.') + usage: float = Field(..., alias='usage', description='Total amount used of the resource metric type (CPU, STORAGE).') + capacity: float = Field(..., alias='capacity', description='The maximum allocated amount of the resource metric type (CPU, STORAGE) for a set of databases.') + total_host_capacity: float | None = Field(None, alias='totalHostCapacity', description='The maximum host CPUs (cores x threads/core) on the underlying infrastructure. This only applies to CPU and does not not apply for Autonomous Databases.') + + +class SchemaObjectTypeDetails(OpsiBaseModel): + """Schema object details.""" + + type: Literal['SCHEMA_OBJECT', 'SQL', 'DATABASE_PARAMETER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='type', description='Gets the type of this RelatedObjectTypeDetails.\nType of related object\n\nAllowed values for this property are: "SCHEMA_OBJECT", "SQL", "DATABASE_PARAMETER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + object_id: int = Field(..., alias='objectId', description='Object id (from RDBMS)') + owner: str = Field(..., alias='owner', description='Owner of object') + object_name: str = Field(..., alias='objectName', description='Name of object') + sub_object_name: str | None = Field(None, alias='subObjectName', description='Subobject name; for example, partition name') + object_type: str = Field(..., alias='objectType', description='Type of the object (such as TABLE, INDEX)') + + +class SqlBucket(OpsiBaseModel): + """Sql bucket type object.""" + + version: float | None = Field(None, alias='version', description='Version\nExample: `1`') + database_type: str | None = Field(None, alias='databaseType', description='Ops Insights internal representation of the database type.') + time_collected: datetime = Field(..., alias='timeCollected', description='Collection timestamp\nExample: `"2020-03-31T00:00:00.000Z"`') + sql_identifier: str = Field(..., alias='sqlIdentifier', description='Unique SQL_ID for a SQL Statement.') + plan_hash: int = Field(..., alias='planHash', description='Plan hash value for the SQL Execution Plan') + bucket_id: str = Field(..., alias='bucketId', description='SQL Bucket ID, examples <= 3 secs, 3-10 secs, 10-60 secs, 1-5 min, > 5 min\nExample: `"<= 3 secs"`') + executions_count: int | None = Field(None, alias='executionsCount', description='Total number of executions\nExample: `60`', ge=0) + cpu_time_in_sec: float | None = Field(None, alias='cpuTimeInSec', description='Total CPU time\nExample: `1046`') + io_time_in_sec: float | None = Field(None, alias='ioTimeInSec', description='Total IO time\nExample: `5810`') + other_wait_time_in_sec: float | None = Field(None, alias='otherWaitTimeInSec', description='Total other wait time\nExample: `24061`') + total_time_in_sec: float | None = Field(None, alias='totalTimeInSec', description='Total time\nExample: `30917`') + + +class SqlInsightAggregation(OpsiBaseModel): + """Represents a SQL Insight.""" + + text: str = Field(..., alias='text', description='Insight text.\nFor example `Degrading SQLs`, `Variant SQLs`,\n`Inefficient SQLs`, `Improving SQLs`, `SQLs with Plan Changes`,\n`Degrading SQLs have increasing IO Time above 50%`,\n`Degrading SQLs are variant`,\n`2 of the 2 variant SQLs have plan changes`,\n`Inefficient SQLs have increasing CPU Time above 50%') + values: list[int] = Field(..., alias='values', description='SQL counts for a given insight. For example insight text `2 of 10 SQLs have degrading response time` will have values as [2,10]"') + category: str = Field(..., alias='category', description='Insight category. It would be one of the following\nDEGRADING,\nVARIANT,\nINEFFICIENT,\nCHANGING_PLANS,\nIMPROVING,\nDEGRADING_VARIANT,\nDEGRADING_INEFFICIENT,\nDEGRADING_CHANGING_PLANS,\nDEGRADING_INCREASING_IO,\nDEGRADING_INCREASING_CPU,\nDEGRADING_INCREASING_INEFFICIENT_WAIT,\nDEGRADING_CHANGING_PLANS_AND_INCREASING_IO,\nDEGRADING_CHANGING_PLANS_AND_INCREASING_CPU,\nDEGRADING_CHANGING_PLANS_AND_INCREASING_INEFFICIENT_WAIT,VARIANT_INEFFICIENT,\nVARIANT_CHANGING_PLANS,\nVARIANT_INCREASING_IO,\nVARIANT_INCREASING_CPU,\nVARIANT_INCREASING_INEFFICIENT_WAIT,\nVARIANT_CHANGING_PLANS_AND_INCREASING_IO,\nVARIANT_CHANGING_PLANS_AND_INCREASING_CPU,\nVARIANT_CHANGING_PLANS_AND_INCREASING_INEFFICIENT_WAIT,\nINEFFICIENT_CHANGING_PLANS,\nINEFFICIENT_INCREASING_INEFFICIENT_WAIT,\nINEFFICIENT_CHANGING_PLANS_AND_INCREASING_INEFFICIENT_WAIT') + + +class SqlInsightAggregationCollection(OpsiBaseModel): + """SQL Insights response.""" + + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + inventory: SqlInventory = Field(..., alias='inventory', description='The inventory field of SqlInsightAggregationCollection.') + items: list[SqlInsightAggregation] = Field(..., alias='items', description='List of insights.') + thresholds: SqlInsightThresholds = Field(..., alias='thresholds', description='The thresholds field of SqlInsightAggregationCollection.') + + +class SqlInsightThresholds(OpsiBaseModel): + """Inventory details.""" + + degradation_in_pct: int = Field(..., alias='degradationInPct', description='Degradation Percent Threshold is used to derive degrading SQLs.') + variability: float = Field(..., alias='variability', description='Variability Percent Threshold is used to derive variant SQLs.') + inefficiency_in_pct: int = Field(..., alias='inefficiencyInPct', description='Inefficiency Percent Threshold is used to derive inefficient SQLs.') + increase_in_io_in_pct: int = Field(..., alias='increaseInIOInPct', description='PctIncreaseInIO is used for deriving insights for SQLs which are degrading or\nvariant or inefficient. And these SQLs should also have increasing change in IO Time\nbeyond threshold. Insights are derived using linear regression.') + increase_in_cpu_in_pct: int = Field(..., alias='increaseInCPUInPct', description='PctIncreaseInCPU is used for deriving insights for SQLs which are degrading or\nvariant or inefficient. And these SQLs should also have increasing change in CPU Time\nbeyond threshold. Insights are derived using linear regression.') + increase_in_inefficient_wait_in_pct: int = Field(..., alias='increaseInInefficientWaitInPct', description='PctIncreaseInIO is used for deriving insights for SQLs which are degrading or\nvariant or inefficient. And these SQLs should also have increasing change in\nOther Wait Time beyond threshold. Insights are derived using linear regression.') + improved_in_pct: int = Field(..., alias='improvedInPct', description='Improved Percent Threshold is used to derive improving SQLs.') + + +class SqlInventory(OpsiBaseModel): + """Inventory details.""" + + total_sqls: int = Field(..., alias='totalSqls', description='Total number of sqls. Example `2000`') + total_databases: int = Field(..., alias='totalDatabases', description='Total number of Databases. Example `400`') + sqls_analyzed: int = Field(..., alias='sqlsAnalyzed', description='Total number of sqls analyzed by the query. Example `120`') + + +class SqlPlanCollection(OpsiBaseModel): + """SQL Plans for the particular SQL.""" + + sql_identifier: str = Field(..., alias='sqlIdentifier', description='Unique SQL_ID for a SQL Statement.') + id: str = Field(..., alias='id', description='The OCID of the database insight resource.') + database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') + items: list[SqlPlanSummary] = Field(..., alias='items', description='array of SQL Plans.') + + +class SqlPlanInsightAggregation(OpsiBaseModel): + """SQL execution plan Performance statistics.""" + + plan_hash: int = Field(..., alias='planHash', description='Plan hash value for the SQL Execution Plan') + io_time_in_sec: float = Field(..., alias='ioTimeInSec', description='IO Time in seconds') + cpu_time_in_sec: float = Field(..., alias='cpuTimeInSec', description='CPU Time in seconds') + inefficient_wait_time_in_sec: float = Field(..., alias='inefficientWaitTimeInSec', description='Inefficient Wait Time in seconds') + executions_count: int = Field(..., alias='executionsCount', description='Total number of executions', ge=0) + + +class SqlPlanInsightAggregationCollection(OpsiBaseModel): + """SQL plan insights response.""" + + sql_identifier: str = Field(..., alias='sqlIdentifier', description='Unique SQL_ID for a SQL Statement.') + id: str = Field(..., alias='id', description='The OCID of the database insight resource.') + database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + insights: list[SqlPlanInsights] = Field(..., alias='insights', description='List of SQL plan insights.') + items: list[SqlPlanInsightAggregation] = Field(..., alias='items', description='List of SQL plan statistics.') + + +class SqlPlanInsights(OpsiBaseModel): + """Represents collection of SQL Plan Insights.""" + + text: str = Field(..., alias='text', description='SQL Plan Insight text.\nFor example `Number of Plans Used`, `Most Executed Plan`,\n`Best Performing Plan`, `Worst Performing Plan`,\n`Plan With Most IO`,\n`Plan with Most CPU`') + value: int = Field(..., alias='value', description='SQL execution plan hash value for a given insight. For example `Most Executed Plan` insight will have value as "3975467901"') + category: str = Field(..., alias='category', description='SQL Insight category. For example PLANS_USED, MOST_EXECUTED, BEST_PERFORMER, WORST_PERFORMER, MOST_CPU or MOST_IO.') + + +class SqlPlanLine(OpsiBaseModel): + """SQL Plan Line type object.""" + + version: float | None = Field(None, alias='version', description='Version\nExample: `1`') + sql_identifier: str = Field(..., alias='sqlIdentifier', description='Unique SQL_ID for a SQL Statement.') + plan_hash: int = Field(..., alias='planHash', description='Plan hash value for the SQL Execution Plan') + force_matching_signature: str | None = Field(None, alias='forceMatchingSignature', description='Force matching signature\nExample: `"18067345456756876713"`') + time_generated: datetime | None = Field(None, alias='timeGenerated', description='Generation time stamp\nExample: `"2020-05-05T02:10:00.000Z"`') + time_collected: datetime = Field(..., alias='timeCollected', description='Collection time stamp\nExample: `"2020-05-06T00:00:00.000Z"`') + operation: str = Field(..., alias='operation', description='Operation\nExample: `"SELECT STATEMENT"`') + remark: str | None = Field(None, alias='remark', description='Remark\nExample: `""`') + options: str | None = Field(None, alias='options', description='Options\nExample: `"RANGE SCAN"`') + object_node: str | None = Field(None, alias='objectNode', description='Object Node\nExample: `"Q4000"`') + object_owner: str | None = Field(None, alias='objectOwner', description='Object Owner\nExample: `"TENANT_A#SCHEMA"`') + object_name: str | None = Field(None, alias='objectName', description='Object Name\nExample: `"PLAN_LINES_PK"`') + object_alias: str | None = Field(None, alias='objectAlias', description='Object Alias\nExample: `"PLAN_LINES@SEL$1"`') + object_instance: int | None = Field(None, alias='objectInstance', description='Object Instance\nExample: `37472`') + object_type: str | None = Field(None, alias='objectType', description='Object Type\nExample: `"INDEX (UNIQUE)"`') + optimizer: str | None = Field(None, alias='optimizer', description='Optimizer\nExample: `"CLUSTER"`') + search_columns: int | None = Field(None, alias='searchColumns', description='Search Columns\nExample: `3`') + identifier: int = Field(..., alias='identifier', description='Identifier\nExample: `3`') + parent_identifier: int | None = Field(None, alias='parentIdentifier', description='Parent Identifier\nExample: `2`') + depth: int | None = Field(None, alias='depth', description='Depth\nExample: `3`') + position: int | None = Field(None, alias='position', description='Position\nExample: `1`') + cost: int | None = Field(None, alias='cost', description='Cost\nExample: `1`') + cardinality: int | None = Field(None, alias='cardinality', description='Cardinality\nExample: `1`') + bytes: int | None = Field(None, alias='bytes', description='Bytes\nExample: `150`') + other: str | None = Field(None, alias='other', description='Other\nExample: ``') + other_tag: str | None = Field(None, alias='otherTag', description='Other Tag\nExample: `"PARALLEL_COMBINED_WITH_PARENT"`') + partition_start: str | None = Field(None, alias='partitionStart', description='Partition start\nExample: `1`') + partition_stop: str | None = Field(None, alias='partitionStop', description='Partition stop\nExample: `2`') + partition_identifier: int | None = Field(None, alias='partitionIdentifier', description='Partition identifier\nExample: `8`') + distribution: str | None = Field(None, alias='distribution', description='Distribution\nExample: `"QC (RANDOM)"`') + cpu_cost: int | None = Field(None, alias='cpuCost', description='CPU cost\nExample: `7321`') + io_cost: int | None = Field(None, alias='ioCost', description='IO cost\nExample: `1`') + temp_space: int | None = Field(None, alias='tempSpace', description='Time space\nExample: `15614000`') + access_predicates: str | None = Field(None, alias='accessPredicates', description='Access predicates\nExample: `"\\"RESOURCE_ID\\"=:1 AND \\"QUERY_ID\\"=:2"`') + filter_predicates: str | None = Field(None, alias='filterPredicates', description='Filter predicates\nExample: `"(INTERNAL_FUNCTION(\\"J\\".\\"DATABASE_ROLE\\") OR (\\"J\\".\\"DATABASE_ROLE\\" IS NULL AND SYS_CONTEXT(\'userenv\',\'database_role\')=\'PRIMARY\'))"`') + projection: str | None = Field(None, alias='projection', description='Projection\nExample: `"COUNT(*)[22]"`') + qblock_name: str | None = Field(None, alias='qblockName', description='Qblock Name\nExample: `"SEL$1"`') + elapsed_time_in_sec: float | None = Field(None, alias='elapsedTimeInSec', description='Total elapsed time\nExample: `1.2`') + other_xml: str | None = Field(None, alias='otherXML', description='Other SQL\nExample: `"18.0.0.04838927842709293936483892784"`') + + +class SqlPlanSummary(OpsiBaseModel): + """SQL Plan details.""" + + plan_hash: int = Field(..., alias='planHash', description='Plan hash value for the SQL Execution Plan') + plan_content: str = Field(..., alias='planContent', description='Plan XML Content') + + +class SqlResponseTimeDistributionAggregation(OpsiBaseModel): + """SQL Response time distribution entry.""" + + bucket_id: str = Field(..., alias='bucketId', description='Response time bucket id') + executions_count: int = Field(..., alias='executionsCount', description='Total number of SQL executions', ge=0) + + +class SqlResponseTimeDistributionAggregationCollection(OpsiBaseModel): + """SQL response time distribution over the selected time window.""" + + sql_identifier: str = Field(..., alias='sqlIdentifier', description='Unique SQL_ID for a SQL Statement.') + id: str = Field(..., alias='id', description='The OCID of the database insight resource.') + database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + items: list[SqlResponseTimeDistributionAggregation] = Field(..., alias='items', description='Array of pre defined SQL response time bucket id and SQL executions count.') + + +class SqlSearchCollection(OpsiBaseModel): + """Search SQL response.""" + + sql_identifier: str | None = Field(None, alias='sqlIdentifier', description='Unique SQL_ID for a SQL Statement.') + sql_text: str | None = Field(None, alias='sqlText', description='SQL Statement Text') + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + items: list[SqlSearchSummary] = Field(..., alias='items', description='List of Databases executing the sql.') + + +class SqlSearchSummary(OpsiBaseModel): + """Database summary object resulting from a sql search operation.""" + + id: str = Field(..., alias='id', description='The OCID of the database insight resource.') + database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') + compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') + database_name: str = Field(..., alias='databaseName', description='The database name. The database name is unique within the tenancy.') + database_display_name: str = Field(..., alias='databaseDisplayName', description='The user-friendly name for the database. The name does not have to be unique.') + database_type: str = Field(..., alias='databaseType', description='Ops Insights internal representation of the database type.') + database_version: str = Field(..., alias='databaseVersion', description='The version of the database.') + + +class SqlStatisticAggregation(OpsiBaseModel): + """SQL Statistics.""" + + sql_identifier: str = Field(..., alias='sqlIdentifier', description='Unique SQL_ID for a SQL Statement.') + database_details: DatabaseDetails = Field(..., alias='databaseDetails', description='The database_details field of SqlStatisticAggregation.') + category: list[str] = Field(..., alias='category', description='SQL belongs to one or more categories based on the insights.') + statistics: SqlStatistics | None = Field(None, alias='statistics', description='The statistics field of SqlStatisticAggregation.') + + +class SqlStatisticAggregationCollection(OpsiBaseModel): + """SQL statistics response.""" + + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + items: list[SqlStatisticAggregation] = Field(..., alias='items', description='Array of SQLs along with its statistics statisfying the query criteria.') + + +class SqlStatistics(OpsiBaseModel): + """Performance statistics for the SQL.""" + + database_time_in_sec: float = Field(..., alias='databaseTimeInSec', description='Database Time in seconds') + executions_per_hour: float = Field(..., alias='executionsPerHour', description='Number of executions per hour') + executions_count: int = Field(..., alias='executionsCount', description='Total number of executions', ge=0) + cpu_time_in_sec: float = Field(..., alias='cpuTimeInSec', description='CPU Time in seconds') + io_time_in_sec: float = Field(..., alias='ioTimeInSec', description='I/O Time in seconds') + inefficient_wait_time_in_sec: float = Field(..., alias='inefficientWaitTimeInSec', description='Inefficient Wait Time in seconds') + response_time_in_sec: float = Field(..., alias='responseTimeInSec', description='Response time is the average elaspsed time per execution. It is the ratio of Total Database Time to the number of executions') + plan_count: int = Field(..., alias='planCount', description='Number of SQL execution plans used by the SQL', ge=0) + variability: float = Field(..., alias='variability', description='Variability is the ratio of the standard deviation in response time to the mean of response time of the SQL') + average_active_sessions: float = Field(..., alias='averageActiveSessions', description='Average Active Sessions represent the average active sessions at a point in time. It is the number of sessions that are either working or waiting.') + database_time_pct: float = Field(..., alias='databaseTimePct', description='Percentage of Database Time') + inefficiency_in_pct: float = Field(..., alias='inefficiencyInPct', description='Percentage of Inefficiency. It is calculated by Total Database Time divided by Total Wait Time') + change_in_cpu_time_in_pct: float = Field(..., alias='changeInCpuTimeInPct', description='Percent change in CPU Time based on linear regression') + change_in_io_time_in_pct: float = Field(..., alias='changeInIoTimeInPct', description='Percent change in IO Time based on linear regression') + change_in_inefficient_wait_time_in_pct: float = Field(..., alias='changeInInefficientWaitTimeInPct', description='Percent change in Inefficient Wait Time based on linear regression') + change_in_response_time_in_pct: float = Field(..., alias='changeInResponseTimeInPct', description='Percent change in Response Time based on linear regression') + change_in_average_active_sessions_in_pct: float = Field(..., alias='changeInAverageActiveSessionsInPct', description='Percent change in Average Active Sessions based on linear regression') + change_in_executions_per_hour_in_pct: float = Field(..., alias='changeInExecutionsPerHourInPct', description='Percent change in Executions per hour based on linear regression') + change_in_inefficiency_in_pct: float = Field(..., alias='changeInInefficiencyInPct', description='Percent change in Inefficiency based on linear regression') + + +class SqlStatisticsTimeSeries(OpsiBaseModel): + """SQL performance statistics per database.""" + + name: str = Field(..., alias='name', description='SQL performance statistic name') + values: list[float] = Field(..., alias='values', description='SQL performance statistic value') + + +class SqlStatisticsTimeSeriesAggregation(OpsiBaseModel): + """Database details and SQL performance statistics for a given database.""" + + database_details: DatabaseDetails = Field(..., alias='databaseDetails', description='The database_details field of SqlStatisticsTimeSeriesAggregation.') + statistics: list[SqlStatisticsTimeSeries] = Field(..., alias='statistics', description='SQL performance statistics for a given database') + + +class SqlStatisticsTimeSeriesAggregationCollection(OpsiBaseModel): + """SQL performance statistics over the selected time window.""" + + sql_identifier: str = Field(..., alias='sqlIdentifier', description='Unique SQL_ID for a SQL Statement.') + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + item_duration_in_ms: int = Field(..., alias='itemDurationInMs', description='Time duration in milliseconds between data points (one hour or one day).') + end_timestamps: list[datetime] | None = Field(None, alias='endTimestamps', description='Array comprising of all the sampling period end timestamps in RFC 3339 format.') + items: list[SqlStatisticsTimeSeriesAggregation] = Field(..., alias='items', description='Array of SQL performance statistics across databases.') + + +class SqlStatisticsTimeSeriesByPlanAggregation(OpsiBaseModel): + """SQL performance statistics for a given plan.""" + + plan_hash: int = Field(..., alias='planHash', description='Plan hash value for the SQL Execution Plan') + statistics: list[SqlStatisticsTimeSeries] = Field(..., alias='statistics', description='SQL performance statistics for a given plan') + + +class SqlStatisticsTimeSeriesByPlanAggregationCollection(OpsiBaseModel): + """SQL performance statistics by plan over the selected time window.""" + + sql_identifier: str = Field(..., alias='sqlIdentifier', description='Unique SQL_ID for a SQL Statement.') + id: str = Field(..., alias='id', description='The OCID of the database insight resource.') + database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + item_duration_in_ms: int = Field(..., alias='itemDurationInMs', description='Time duration in milliseconds between data points (one hour or one day).') + end_timestamps: list[datetime] = Field(..., alias='endTimestamps', description='Array comprising of all the sampling period end timestamps in RFC 3339 format.') + items: list[SqlStatisticsTimeSeriesByPlanAggregation] = Field(..., alias='items', description='array of SQL performance statistics by plans') + + +class SqlStats(OpsiBaseModel): + """Sql Stats type object.""" + + sql_identifier: str = Field(..., alias='sqlIdentifier', description='Unique SQL_ID for a SQL Statement.') + plan_hash_value: int = Field(..., alias='planHashValue', description='Plan hash value for the SQL Execution Plan') + time_collected: datetime = Field(..., alias='timeCollected', description='Collection timestamp\nExample: `"2020-03-31T00:00:00.000Z"`') + instance_name: str = Field(..., alias='instanceName', description='Name of Database Instance\nExample: `"DB10902_1"`') + last_active_time: str | None = Field(None, alias='lastActiveTime', description='last_active_time\nExample: `"0000000099CCE300"`') + parse_calls: int | None = Field(None, alias='parseCalls', description='Total integer of parse calls\nExample: `60`') + disk_reads: int | None = Field(None, alias='diskReads', description='Number of disk reads') + direct_reads: int | None = Field(None, alias='directReads', description='Number of direct reads') + direct_writes: int | None = Field(None, alias='directWrites', description='Number of Direct writes') + buffer_gets: int | None = Field(None, alias='bufferGets', description='Number of Buffer Gets') + rows_processed: int | None = Field(None, alias='rowsProcessed', description='Number of row processed') + serializable_aborts: int | None = Field(None, alias='serializableAborts', description='Number of serializable aborts') + fetches: int | None = Field(None, alias='fetches', description='Number of fetches') + executions: int | None = Field(None, alias='executions', description='Number of executions') + avoided_executions: int | None = Field(None, alias='avoidedExecutions', description='Number of executions attempted on this object, but prevented due to the SQL statement being in quarantine') + end_of_fetch_count: int | None = Field(None, alias='endOfFetchCount', description='Number of times this cursor was fully executed since the cursor was brought into the library cache', ge=0) + loads: int | None = Field(None, alias='loads', description='Number of times the object was either loaded or reloaded') + version_count: int | None = Field(None, alias='versionCount', description='Number of cursors present in the cache with this SQL text and plan', ge=0) + invalidations: int | None = Field(None, alias='invalidations', description='Number of times this child cursor has been invalidated') + obsolete_count: int | None = Field(None, alias='obsoleteCount', description='Number of times that a parent cursor became obsolete', ge=0) + px_servers_executions: int | None = Field(None, alias='pxServersExecutions', description='Total number of executions performed by parallel execution servers (0 when the statement has never been executed in parallel)') + cpu_time_in_us: int | None = Field(None, alias='cpuTimeInUs', description='CPU time (in microseconds) used by this cursor for parsing, executing, and fetching') + elapsed_time_in_us: int | None = Field(None, alias='elapsedTimeInUs', description='Elapsed time (in microseconds) used by this cursor for parsing, executing, and fetching.') + avg_hard_parse_time_in_us: int | None = Field(None, alias='avgHardParseTimeInUs', description='Average hard parse time (in microseconds) used by this cursor') + concurrency_wait_time_in_us: int | None = Field(None, alias='concurrencyWaitTimeInUs', description='Concurrency wait time (in microseconds)') + application_wait_time_in_us: int | None = Field(None, alias='applicationWaitTimeInUs', description='Application wait time (in microseconds)') + cluster_wait_time_in_us: int | None = Field(None, alias='clusterWaitTimeInUs', description='Cluster wait time (in microseconds). This value is specific to Oracle RAC') + user_io_wait_time_in_us: int | None = Field(None, alias='userIoWaitTimeInUs', description='User I/O wait time (in microseconds)') + plsql_exec_time_in_us: int | None = Field(None, alias='plsqlExecTimeInUs', description='PL/SQL execution time (in microseconds)') + java_exec_time_in_us: int | None = Field(None, alias='javaExecTimeInUs', description='Java execution time (in microseconds)') + sorts: int | None = Field(None, alias='sorts', description='Number of sorts that were done for the child cursor') + sharable_mem: int | None = Field(None, alias='sharableMem', description='Total shared memory (in bytes) currently occupied by all cursors with this SQL text and plan') + total_sharable_mem: int | None = Field(None, alias='totalSharableMem', description='Total shared memory (in bytes) occupied by all cursors with this SQL text and plan if they were to be fully loaded in the shared pool (that is, cursor size)') + type_check_mem: int | None = Field(None, alias='typeCheckMem', description='Typecheck memory') + io_cell_offload_eligible_bytes: int | None = Field(None, alias='ioCellOffloadEligibleBytes', description='Number of I/O bytes which can be filtered by the Exadata storage system') + io_interconnect_bytes: int | None = Field(None, alias='ioInterconnectBytes', description='Number of I/O bytes exchanged between Oracle Database and the storage system. Typically used for Cache Fusion or parallel queries') + physical_read_requests: int | None = Field(None, alias='physicalReadRequests', description='Number of physical read I/O requests issued by the monitored SQL. The requests may not be disk reads') + physical_read_bytes: int | None = Field(None, alias='physicalReadBytes', description='Number of bytes read from disks by the monitored SQL') + physical_write_requests: int | None = Field(None, alias='physicalWriteRequests', description='Number of physical write I/O requests issued by the monitored SQL') + physical_write_bytes: int | None = Field(None, alias='physicalWriteBytes', description='Number of bytes written to disks by the monitored SQL') + exact_matching_signature: str | None = Field(None, alias='exactMatchingSignature', description='exact_matching_signature\nExample: `"18067345456756876713"`') + force_matching_signature: str | None = Field(None, alias='forceMatchingSignature', description='force_matching_signature\nExample: `"18067345456756876713"`') + io_cell_uncompressed_bytes: int | None = Field(None, alias='ioCellUncompressedBytes', description='Number of uncompressed bytes (that is, size after decompression) that are offloaded to the Exadata cells') + io_cell_offload_returned_bytes: int | None = Field(None, alias='ioCellOffloadReturnedBytes', description='Number of bytes that are returned by Exadata cell through the regular I/O path') + child_number: int | None = Field(None, alias='childNumber', description='Number of this child cursor') + command_type: int | None = Field(None, alias='commandType', description='Oracle command type definition') + users_opening: int | None = Field(None, alias='usersOpening', description='Number of users that have any of the child cursors open') + users_executing: int | None = Field(None, alias='usersExecuting', description='Number of users executing the statement') + optimizer_cost: int | None = Field(None, alias='optimizerCost', description='Cost of this query given by the optimizer') + full_plan_hash_value: str | None = Field(None, alias='fullPlanHashValue', description='Total Number of rows in SQLStats table') + module: str | None = Field(None, alias='module', description='Module name') + service: str | None = Field(None, alias='service', description='Service name') + action: str | None = Field(None, alias='action', description='Contains the name of the action that was executing when the SQL statement was first parsed, which is set by calling DBMS_APPLICATION_INFO.SET_ACTION') + sql_profile: str | None = Field(None, alias='sqlProfile', description='SQL profile used for this statement, if any') + sql_patch: str | None = Field(None, alias='sqlPatch', description='SQL patch used for this statement, if any') + sql_plan_baseline: str | None = Field(None, alias='sqlPlanBaseline', description='SQL plan baseline used for this statement, if any') + delta_execution_count: int | None = Field(None, alias='deltaExecutionCount', description='Number of executions for the cursor since the last AWR snapshot', ge=0) + delta_cpu_time: int | None = Field(None, alias='deltaCpuTime', description='CPU time (in microseconds) for the cursor since the last AWR snapshot') + delta_io_bytes: int | None = Field(None, alias='deltaIoBytes', description='Number of I/O bytes exchanged between the Oracle database and the storage system for the cursor since the last AWR snapshot') + delta_cpu_rank: int | None = Field(None, alias='deltaCpuRank', description='Rank based on CPU Consumption') + delta_execs_rank: int | None = Field(None, alias='deltaExecsRank', description='Rank based on number of execution') + sharable_mem_rank: int | None = Field(None, alias='sharableMemRank', description='Rank based on sharable memory') + delta_io_rank: int | None = Field(None, alias='deltaIoRank', description='Rank based on I/O Consumption') + harmonic_sum: int | None = Field(None, alias='harmonicSum', description='Harmonic sum based on ranking parameters') + wt_harmonic_sum: int | None = Field(None, alias='wtHarmonicSum', description='Weight based harmonic sum of ranking parameters') + total_sql_count: int | None = Field(None, alias='totalSqlCount', description='Total number of rows in SQLStats table', ge=0) + + +class SqlText(OpsiBaseModel): + """SQL Text type object.""" + + version: float | None = Field(None, alias='version', description='Version\nExample: `1`') + sql_identifier: str = Field(..., alias='sqlIdentifier', description='Unique SQL_ID for a SQL Statement.') + time_collected: datetime = Field(..., alias='timeCollected', description='Collection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') + sql_command: str = Field(..., alias='sqlCommand', description='SQL command\nExample: `"SELECT"`') + exact_matching_signature: str | None = Field(None, alias='exactMatchingSignature', description='Exact matching signature\nExample: `"18067345456756876713"`') + force_matching_signature: str | None = Field(None, alias='forceMatchingSignature', description='Force matching signature\nExample: `"18067345456756876713"`') + sql_full_text: str = Field(..., alias='sqlFullText', description='Full SQL Text\nExample: `"SELECT username,profile,default_tablespace,temporary_tablespace FROM dba_users"`\nDisclaimer: SQL text being uploaded explicitly via APIs is not masked. Any sensitive literals contained in the sqlFullText column should be masked prior to ingestion.') + + +class SqlTextCollection(OpsiBaseModel): + """SQL Text for the particular SQL.""" + + items: list[SqlTextSummary] = Field(..., alias='items', description='array of SQL Texts.') + + +class SqlTextSummary(OpsiBaseModel): + """SQL Text details.""" + + sql_identifier: str = Field(..., alias='sqlIdentifier', description='Unique SQL_ID for a SQL Statement.') + id: str = Field(..., alias='id', description='The OCID of the database insight resource.') + database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') + compartment_id: str | None = Field(None, alias='compartmentId', description='The OCID of the compartment.') + sql_text: str = Field(..., alias='sqlText', description='SQL Text') + + +class SqlTypeDetails(OpsiBaseModel): + """SQL details.""" + + type: Literal['SCHEMA_OBJECT', 'SQL', 'DATABASE_PARAMETER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='type', description='Gets the type of this RelatedObjectTypeDetails.\nType of related object\n\nAllowed values for this property are: "SCHEMA_OBJECT", "SQL", "DATABASE_PARAMETER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + sql_id: str = Field(..., alias='sqlId', description='SQL identifier') + sql_text: str = Field(..., alias='sqlText', description='First 3800 characters of the SQL text') + is_sql_text_truncated: bool = Field(..., alias='isSqlTextTruncated', description='SQL identifier') + sql_command: str = Field(..., alias='sqlCommand', description='SQL command name (such as SELECT, INSERT)') + + +class StorageServerDetails(OpsiBaseModel): + """Partial information about a storage server which includes name and displayName.""" + + storage_server_name: str = Field(..., alias='storageServerName', description='The storage server name.') + storage_server_display_name: str = Field(..., alias='storageServerDisplayName', description='The user-friendly name for the storage server. The name does not have to be unique.') + + +class StorageUsageTrend(OpsiBaseModel): + """Usage data samples.""" + + end_timestamp: datetime = Field(..., alias='endTimestamp', description='The timestamp in which the current sampling period ends in RFC 3339 format.') + file_system_usage_in_gbs: float = Field(..., alias='fileSystemUsageInGBs', description='Filesystem usage in GB.') + file_system_avail_in_percent: float = Field(..., alias='fileSystemAvailInPercent', description='Filesystem available in percent.') + + +class StorageUsageTrendAggregation(OpsiBaseModel): + """Usage data per filesystem.""" + + file_system_name: str = Field(..., alias='fileSystemName', description='Name of filesystem.') + mount_point: str = Field(..., alias='mountPoint', description='Mount points are specialized NTFS filesystem objects.') + file_system_size_in_gbs: float = Field(..., alias='fileSystemSizeInGBs', description='Size of filesystem.') + usage_data: list[StorageUsageTrend] = Field(..., alias='usageData', description='List of usage data samples for a filesystem.') + + +class SummarizeAwrSourcesSummariesCollection(OpsiBaseModel): + """Collection of AwrSource summary objects.""" + + items: list[AwrSourceSummary] = Field(..., alias='items', description='Array of AwrSource summary objects.') + + +class SummarizeDatabaseInsightResourceCapacityTrendAggregationCollection(OpsiBaseModel): + """Collection of resource capacity trend.""" + + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + high_utilization_threshold: int = Field(..., alias='highUtilizationThreshold', description='Percent value in which a resource metric is considered highly utilized.') + low_utilization_threshold: int = Field(..., alias='lowUtilizationThreshold', description='Percent value in which a resource metric is considered lowly utilized.') + resource_metric: Literal['CPU', 'STORAGE', 'IO', 'MEMORY', 'MEMORY_PGA', 'MEMORY_SGA', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceMetric', description='Defines the type of resource metric (example: CPU, STORAGE)\n\nAllowed values for this property are: "CPU", "STORAGE", "IO", "MEMORY", "MEMORY_PGA", "MEMORY_SGA", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + usage_unit: Literal['CORES', 'GB', 'MBPS', 'IOPS', 'PERCENT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='usageUnit', description='Displays usage unit ( CORES, GB, PERCENT, MBPS)\n\nAllowed values for this property are: "CORES", "GB", "MBPS", "IOPS", "PERCENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + item_duration_in_ms: int = Field(..., alias='itemDurationInMs', description='Time duration in milliseconds between data points (one hour or one day).') + capacity_data: list[ResourceCapacityTrendAggregation] = Field(..., alias='capacityData', description='Capacity Data with time interval') + + +class SummarizeDatabaseInsightResourceForecastTrendAggregation(OpsiBaseModel): + """Forecast results from the selected time period.""" + + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + high_utilization_threshold: int = Field(..., alias='highUtilizationThreshold', description='Percent value in which a resource metric is considered highly utilized.') + low_utilization_threshold: int = Field(..., alias='lowUtilizationThreshold', description='Percent value in which a resource metric is considered lowly utilized.') + resource_metric: Literal['CPU', 'STORAGE', 'IO', 'MEMORY', 'MEMORY_PGA', 'MEMORY_SGA', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceMetric', description='Defines the type of resource metric (example: CPU, STORAGE)\n\nAllowed values for this property are: "CPU", "STORAGE", "IO", "MEMORY", "MEMORY_PGA", "MEMORY_SGA", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + usage_unit: Literal['CORES', 'GB', 'MBPS', 'IOPS', 'PERCENT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='usageUnit', description='Displays usage unit ( CORES, GB, PERCENT, MBPS)\n\nAllowed values for this property are: "CORES", "GB", "MBPS", "IOPS", "PERCENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + selected_forecast_algorithm: str | None = Field(None, alias='selectedForecastAlgorithm', description='Auto-ML algorithm leveraged for the forecast. Only applicable for Auto-ML forecast.') + pattern: Literal['LINEAR', 'MONTHLY_SEASONS', 'MONTHLY_AND_YEARLY_SEASONS', 'WEEKLY_SEASONS', 'WEEKLY_AND_MONTHLY_SEASONS', 'WEEKLY_MONTHLY_AND_YEARLY_SEASONS', 'WEEKLY_AND_YEARLY_SEASONS', 'YEARLY_SEASONS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='pattern', description='Time series patterns used in the forecasting.\n\nAllowed values for this property are: "LINEAR", "MONTHLY_SEASONS", "MONTHLY_AND_YEARLY_SEASONS", "WEEKLY_SEASONS", "WEEKLY_AND_MONTHLY_SEASONS", "WEEKLY_MONTHLY_AND_YEARLY_SEASONS", "WEEKLY_AND_YEARLY_SEASONS", "YEARLY_SEASONS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + tablespace_name: str = Field(..., alias='tablespaceName', description='The name of tablespace.') + historical_data: list[HistoricalDataItem] = Field(..., alias='historicalData', description='Time series data used for the forecast analysis.') + projected_data: list[ProjectedDataItem] = Field(..., alias='projectedData', description='Time series data result of the forecasting analysis.') + + +class SummarizeDatabaseInsightResourceStatisticsAggregationCollection(OpsiBaseModel): + """Returns list of the Databases with resource statistics like usage, capacity, utilization and usage change percent.""" + + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + high_utilization_threshold: int = Field(..., alias='highUtilizationThreshold', description='Percent value in which a resource metric is considered highly utilized.') + low_utilization_threshold: int = Field(..., alias='lowUtilizationThreshold', description='Percent value in which a resource metric is considered lowly utilized.') + resource_metric: Literal['CPU', 'STORAGE', 'IO', 'MEMORY', 'MEMORY_PGA', 'MEMORY_SGA', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceMetric', description='Defines the type of resource metric (example: CPU, STORAGE)\n\nAllowed values for this property are: "CPU", "STORAGE", "IO", "MEMORY", "MEMORY_PGA", "MEMORY_SGA", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + usage_unit: Literal['CORES', 'GB', 'MBPS', 'IOPS', 'PERCENT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='usageUnit', description='Displays usage unit ( CORES, GB, PERCENT, MBPS)\n\nAllowed values for this property are: "CORES", "GB", "MBPS", "IOPS", "PERCENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + items: list[ResourceStatisticsAggregation] = Field(..., alias='items', description='Collection of Resource Statistics items') + + +class SummarizeDatabaseInsightResourceUsageAggregation(OpsiBaseModel): + """Resource usage summation for the current time period.""" + + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + resource_metric: Literal['CPU', 'STORAGE', 'IO', 'MEMORY', 'MEMORY_PGA', 'MEMORY_SGA', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceMetric', description='Defines the type of resource metric (example: CPU, STORAGE)\n\nAllowed values for this property are: "CPU", "STORAGE", "IO", "MEMORY", "MEMORY_PGA", "MEMORY_SGA", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + usage_unit: Literal['CORES', 'GB', 'MBPS', 'IOPS', 'PERCENT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='usageUnit', description='Displays usage unit ( CORES, GB, PERCENT, MBPS)\n\nAllowed values for this property are: "CORES", "GB", "MBPS", "IOPS", "PERCENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + usage: float = Field(..., alias='usage', description='Total amount used of the resource metric type (CPU, STORAGE).') + capacity: float = Field(..., alias='capacity', description='The maximum allocated amount of the resource metric type (CPU, STORAGE) for a set of databases.') + usage_change_percent: float = Field(..., alias='usageChangePercent', description='Percentage change in resource usage during the current period calculated using linear regression functions') + total_host_capacity: float | None = Field(None, alias='totalHostCapacity', description='The maximum host CPUs (cores x threads/core) on the underlying infrastructure. This only applies to CPU and does not not apply for Autonomous Databases.') + + +class SummarizeDatabaseInsightResourceUsageTrendAggregationCollection(OpsiBaseModel): + """Top level response object.""" + + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + resource_metric: Literal['CPU', 'STORAGE', 'IO', 'MEMORY', 'MEMORY_PGA', 'MEMORY_SGA', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceMetric', description='Defines the type of resource metric (example: CPU, STORAGE)\n\nAllowed values for this property are: "CPU", "STORAGE", "IO", "MEMORY", "MEMORY_PGA", "MEMORY_SGA", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + usage_unit: Literal['CORES', 'GB', 'MBPS', 'IOPS', 'PERCENT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='usageUnit', description='Displays usage unit ( CORES, GB, PERCENT, MBPS)\n\nAllowed values for this property are: "CORES", "GB", "MBPS", "IOPS", "PERCENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + item_duration_in_ms: int = Field(..., alias='itemDurationInMs', description='Time duration in milliseconds between data points (one hour or one day).') + usage_data: list[ResourceUsageTrendAggregation] = Field(..., alias='usageData', description='Usage Data with time stamps') + + +class SummarizeDatabaseInsightResourceUtilizationInsightAggregation(OpsiBaseModel): + """Insights response containing current/projected groups for storage or CPU.""" + + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + high_utilization_threshold: int = Field(..., alias='highUtilizationThreshold', description='Percent value in which a resource metric is considered highly utilized.') + low_utilization_threshold: int = Field(..., alias='lowUtilizationThreshold', description='Percent value in which a resource metric is considered lowly utilized.') + resource_metric: Literal['CPU', 'STORAGE', 'IO', 'MEMORY', 'MEMORY_PGA', 'MEMORY_SGA', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceMetric', description='Defines the type of resource metric (example: CPU, STORAGE)\n\nAllowed values for this property are: "CPU", "STORAGE", "IO", "MEMORY", "MEMORY_PGA", "MEMORY_SGA", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + projected_utilization: ResourceInsightProjectedUtilization = Field(..., alias='projectedUtilization', description='The projected_utilization field of SummarizeDatabaseInsightResourceUtilizationInsightAggregation.') + current_utilization: ResourceInsightCurrentUtilization = Field(..., alias='currentUtilization', description='The current_utilization field of SummarizeDatabaseInsightResourceUtilizationInsightAggregation.') + + +class SummarizeDatabaseInsightTablespaceUsageTrendAggregationCollection(OpsiBaseModel): + """Top level response object.""" + + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + usage_unit: Literal['CORES', 'GB', 'MBPS', 'IOPS', 'PERCENT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='usageUnit', description='Displays usage unit ( CORES, GB, PERCENT, MBPS)\n\nAllowed values for this property are: "CORES", "GB", "MBPS", "IOPS", "PERCENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + item_duration_in_ms: int = Field(..., alias='itemDurationInMs', description='Time duration in milliseconds between data points (one hour or one day).') + items: list[TablespaceUsageTrendAggregation] = Field(..., alias='items', description='Collection of Usage Data with time stamps for top five tablespace') + + +class SummarizeExadataInsightResourceCapacityTrendAggregation(OpsiBaseModel): + """Collection of resource capacity trend.""" + + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + exadata_resource_metric: Literal['CPU', 'STORAGE', 'IO', 'MEMORY', 'IOPS', 'THROUGHPUT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataResourceMetric', description='Defines the type of exadata resource metric (example: CPU, STORAGE)\n\nAllowed values for this property are: "CPU", "STORAGE", "IO", "MEMORY", "IOPS", "THROUGHPUT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + exadata_resource_type: Literal['DATABASE', 'HOST', 'STORAGE_SERVER', 'DISKGROUP', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataResourceType', description='Defines the resource type for an exadata (example: DATABASE, STORAGE_SERVER, HOST, DISKGROUP)\n\nAllowed values for this property are: "DATABASE", "HOST", "STORAGE_SERVER", "DISKGROUP", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + usage_unit: Literal['CORES', 'GB', 'MBPS', 'IOPS', 'PERCENT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='usageUnit', description='Displays usage unit ( CORES, GB, PERCENT, MBPS)\n\nAllowed values for this property are: "CORES", "GB", "MBPS", "IOPS", "PERCENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + item_duration_in_ms: int = Field(..., alias='itemDurationInMs', description='Time duration in milliseconds between data points (one hour or one day).') + capacity_data: list[ExadataInsightResourceCapacityTrendAggregation] = Field(..., alias='capacityData', description='Capacity Data with time interval') + + +class SummarizeExadataInsightResourceCapacityTrendCollection(OpsiBaseModel): + """capacity results with breakdown by databases, hosts, storage servers or diskgroup.""" + + exadata_insight_id: str = Field(..., alias='exadataInsightId', description='The OCID of the Exadata insight.') + exadata_resource_type: Literal['DATABASE', 'HOST', 'STORAGE_SERVER', 'DISKGROUP', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataResourceType', description='Defines the resource type for an exadata (example: DATABASE, STORAGE_SERVER, HOST, DISKGROUP)\n\nAllowed values for this property are: "DATABASE", "HOST", "STORAGE_SERVER", "DISKGROUP", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + exadata_resource_metric: Literal['CPU', 'STORAGE', 'IO', 'MEMORY', 'IOPS', 'THROUGHPUT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataResourceMetric', description='Defines the type of exadata resource metric (example: CPU, STORAGE)\n\nAllowed values for this property are: "CPU", "STORAGE", "IO", "MEMORY", "IOPS", "THROUGHPUT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + usage_unit: Literal['CORES', 'GB', 'MBPS', 'IOPS', 'PERCENT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='usageUnit', description='Displays usage unit ( CORES, GB, PERCENT, MBPS)\n\nAllowed values for this property are: "CORES", "GB", "MBPS", "IOPS", "PERCENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + items: list[ExadataInsightResourceCapacityTrendSummary] = Field(..., alias='items', description='Capacity Data with time interval') + + +class SummarizeExadataInsightResourceForecastTrendAggregation(OpsiBaseModel): + """Usage and Forecast results from the selected time period.""" + + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + exadata_resource_metric: Literal['CPU', 'STORAGE', 'IO', 'MEMORY', 'IOPS', 'THROUGHPUT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataResourceMetric', description='Defines the type of exadata resource metric (example: CPU, STORAGE)\n\nAllowed values for this property are: "CPU", "STORAGE", "IO", "MEMORY", "IOPS", "THROUGHPUT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + exadata_resource_type: Literal['DATABASE', 'HOST', 'STORAGE_SERVER', 'DISKGROUP', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataResourceType', description='Defines the resource type for an exadata (example: DATABASE, STORAGE_SERVER, HOST, DISKGROUP)\n\nAllowed values for this property are: "DATABASE", "HOST", "STORAGE_SERVER", "DISKGROUP", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + usage_unit: Literal['CORES', 'GB', 'MBPS', 'IOPS', 'PERCENT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='usageUnit', description='Displays usage unit ( CORES, GB, PERCENT, MBPS)\n\nAllowed values for this property are: "CORES", "GB", "MBPS", "IOPS", "PERCENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + selected_forecast_algorithm: str | None = Field(None, alias='selectedForecastAlgorithm', description='Auto-ML algorithm leveraged for the forecast. Only applicable for Auto-ML forecast.') + pattern: Literal['LINEAR', 'MONTHLY_SEASONS', 'MONTHLY_AND_YEARLY_SEASONS', 'WEEKLY_SEASONS', 'WEEKLY_AND_MONTHLY_SEASONS', 'WEEKLY_MONTHLY_AND_YEARLY_SEASONS', 'WEEKLY_AND_YEARLY_SEASONS', 'YEARLY_SEASONS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='pattern', description='Time series patterns used in the forecasting.\n\nAllowed values for this property are: "LINEAR", "MONTHLY_SEASONS", "MONTHLY_AND_YEARLY_SEASONS", "WEEKLY_SEASONS", "WEEKLY_AND_MONTHLY_SEASONS", "WEEKLY_MONTHLY_AND_YEARLY_SEASONS", "WEEKLY_AND_YEARLY_SEASONS", "YEARLY_SEASONS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + days_to_reach_capacity: int = Field(..., alias='daysToReachCapacity', description='Days to reach capacity for a storage server') + historical_data: list[HistoricalDataItem] = Field(..., alias='historicalData', description='Time series data used for the forecast analysis.') + projected_data: list[ProjectedDataItem] = Field(..., alias='projectedData', description='Time series data result of the forecasting analysis.') + + +class SummarizeExadataInsightResourceForecastTrendCollection(OpsiBaseModel): + """Usage and Forecast results with breakdown by databases, hosts or storage servers.""" + + exadata_insight_id: str = Field(..., alias='exadataInsightId', description='The OCID of the Exadata insight.') + exadata_resource_type: Literal['DATABASE', 'HOST', 'STORAGE_SERVER', 'DISKGROUP', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataResourceType', description='Defines the resource type for an exadata (example: DATABASE, STORAGE_SERVER, HOST, DISKGROUP)\n\nAllowed values for this property are: "DATABASE", "HOST", "STORAGE_SERVER", "DISKGROUP", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + exadata_resource_metric: Literal['CPU', 'STORAGE', 'IO', 'MEMORY', 'IOPS', 'THROUGHPUT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataResourceMetric', description='Defines the type of exadata resource metric (example: CPU, STORAGE)\n\nAllowed values for this property are: "CPU", "STORAGE", "IO", "MEMORY", "IOPS", "THROUGHPUT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + usage_unit: Literal['CORES', 'GB', 'MBPS', 'IOPS', 'PERCENT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='usageUnit', description='Displays usage unit ( CORES, GB, PERCENT, MBPS)\n\nAllowed values for this property are: "CORES", "GB", "MBPS", "IOPS", "PERCENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + items: list[ExadataInsightResourceForecastTrendSummary] = Field(..., alias='items', description='Collection of id, name, daysToReach Capacity, historical usage and projected usage forecast.') + + +class SummarizeExadataInsightResourceStatisticsAggregationCollection(OpsiBaseModel): + """Returns list of the resources with resource statistics like usage,capacity,utilization and usage change percent.""" + + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + items: list[ExadataInsightResourceStatisticsAggregation] = Field(..., alias='items', description='Collection of Resource Statistics items') + usage_unit: Literal['CORES', 'GB', 'MBPS', 'IOPS', 'PERCENT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='usageUnit', description='Displays usage unit ( CORES, GB, PERCENT, MBPS)\n\nAllowed values for this property are: "CORES", "GB", "MBPS", "IOPS", "PERCENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + exadata_resource_metric: Literal['CPU', 'STORAGE', 'IO', 'MEMORY', 'IOPS', 'THROUGHPUT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataResourceMetric', description='Defines the type of exadata resource metric (example: CPU, STORAGE)\n\nAllowed values for this property are: "CPU", "STORAGE", "IO", "MEMORY", "IOPS", "THROUGHPUT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + exadata_insight_id: str = Field(..., alias='exadataInsightId', description='The OCID of the Exadata insight.') + exadata_display_name: str | None = Field(None, alias='exadataDisplayName', description='The user-friendly name for the Exadata system. The name does not have to be unique.') + + +class SummarizeExadataInsightResourceUsageAggregation(OpsiBaseModel): + """Resource usage summation for the current time period.""" + + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + exadata_resource_metric: Literal['CPU', 'STORAGE', 'IO', 'MEMORY', 'IOPS', 'THROUGHPUT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataResourceMetric', description='Defines the type of exadata resource metric (example: CPU, STORAGE)\n\nAllowed values for this property are: "CPU", "STORAGE", "IO", "MEMORY", "IOPS", "THROUGHPUT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + exadata_resource_type: Literal['DATABASE', 'HOST', 'STORAGE_SERVER', 'DISKGROUP', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataResourceType', description='Defines the resource type for an exadata (example: DATABASE, STORAGE_SERVER, HOST, DISKGROUP)\n\nAllowed values for this property are: "DATABASE", "HOST", "STORAGE_SERVER", "DISKGROUP", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + usage_unit: Literal['CORES', 'GB', 'MBPS', 'IOPS', 'PERCENT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='usageUnit', description='Displays usage unit ( CORES, GB, PERCENT, MBPS)\n\nAllowed values for this property are: "CORES", "GB", "MBPS", "IOPS", "PERCENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + usage: float = Field(..., alias='usage', description='Total amount used of the resource metric type (CPU, STORAGE).') + capacity: float = Field(..., alias='capacity', description='The maximum allocated amount of the resource metric type (CPU, STORAGE) for a set of databases.') + usage_change_percent: float = Field(..., alias='usageChangePercent', description='Percentage change in resource usage during the current period calculated using linear regression functions') + total_host_capacity: float | None = Field(None, alias='totalHostCapacity', description='The maximum host CPUs (cores x threads/core) on the underlying infrastructure. This only applies to CPU and does not not apply for Autonomous Databases.') + + +class SummarizeExadataInsightResourceUsageCollection(OpsiBaseModel): + """Resource usage, allocation, utilization and usage ChangePercent for the current time period.""" + + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + exadata_resource_metric: Literal['CPU', 'STORAGE', 'IO', 'MEMORY', 'IOPS', 'THROUGHPUT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataResourceMetric', description='Defines the type of exadata resource metric (example: CPU, STORAGE)\n\nAllowed values for this property are: "CPU", "STORAGE", "IO", "MEMORY", "IOPS", "THROUGHPUT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + exadata_resource_type: Literal['DATABASE', 'HOST', 'STORAGE_SERVER', 'DISKGROUP', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataResourceType', description='Defines the resource type for an exadata (example: DATABASE, STORAGE_SERVER, HOST, DISKGROUP)\n\nAllowed values for this property are: "DATABASE", "HOST", "STORAGE_SERVER", "DISKGROUP", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + usage_unit: Literal['CORES', 'GB', 'MBPS', 'IOPS', 'PERCENT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='usageUnit', description='Displays usage unit ( CORES, GB, PERCENT, MBPS)\n\nAllowed values for this property are: "CORES", "GB", "MBPS", "IOPS", "PERCENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + items: list[ResourceUsageSummary] = Field(..., alias='items', description='Collection of Resource Usage Summary items') + + +class SummarizeExadataInsightResourceUtilizationInsightAggregation(OpsiBaseModel): + """Insights response containing utilization values for exadata systems.""" + + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + high_utilization_threshold: int = Field(..., alias='highUtilizationThreshold', description='Percent value in which a resource metric is considered highly utilized.') + low_utilization_threshold: int = Field(..., alias='lowUtilizationThreshold', description='Percent value in which a resource metric is considered lowly utilized.') + exadata_resource_metric: Literal['CPU', 'STORAGE', 'IO', 'MEMORY', 'IOPS', 'THROUGHPUT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataResourceMetric', description='Defines the type of exadata resource metric (example: CPU, STORAGE)\n\nAllowed values for this property are: "CPU", "STORAGE", "IO", "MEMORY", "IOPS", "THROUGHPUT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + exadata_resource_type: Literal['DATABASE', 'HOST', 'STORAGE_SERVER', 'DISKGROUP', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataResourceType', description='Defines the resource type for an exadata (example: DATABASE, STORAGE_SERVER, HOST, DISKGROUP)\n\nAllowed values for this property are: "DATABASE", "HOST", "STORAGE_SERVER", "DISKGROUP", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + utilization: list[ExadataInsightResourceInsightUtilizationItem] = Field(..., alias='utilization', description='Collection of Exadata system utilization') + + +class SummarizeHostInsightHostRecommendationAggregation(OpsiBaseModel): + """Returns list of hosts with resource statistics like usage, capacity, utilization, usage change percent and load.""" + + resource_metric: Literal['CPU', 'MEMORY', 'LOGICAL_MEMORY', 'STORAGE', 'NETWORK', 'GPU_UTILIZATION', 'GPU_MEMORY_USAGE', 'IO', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceMetric', description='Defines the type of resource metric (CPU, Physical Memory, Logical Memory)\n\nAllowed values for this property are: "CPU", "MEMORY", "LOGICAL_MEMORY", "STORAGE", "NETWORK", "GPU_UTILIZATION", "GPU_MEMORY_USAGE", "IO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + usage_unit: Literal['CORES', 'GB', 'MBPS', 'IOPS', 'PERCENT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='usageUnit', description='Displays usage unit ( CORES, GB, PERCENT, MBPS)\n\nAllowed values for this property are: "CORES", "GB", "MBPS", "IOPS", "PERCENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + item_duration_in_ms: int = Field(..., alias='itemDurationInMs', description='Time duration in milliseconds between data points (one hour or one day).') + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + details: HostInsightHostRecommendations | None = Field(None, alias='details', description='The details field of SummarizeHostInsightHostRecommendationAggregation.') + + +class SummarizeHostInsightIoUsageTrendAggregationCollection(OpsiBaseModel): + """Top level response object.""" + + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + item_duration_in_ms: int = Field(..., alias='itemDurationInMs', description='Time duration in milliseconds between data points (one hour or one day).') + items: list[IoUsageTrendAggregation] = Field(..., alias='items', description='Collection of Usage Data with time stamps for all IO interfaces.') + + +class SummarizeHostInsightNetworkUsageTrendAggregationCollection(OpsiBaseModel): + """Top level response object.""" + + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + usage_unit: Literal['CORES', 'GB', 'MBPS', 'IOPS', 'PERCENT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='usageUnit', description='Displays usage unit ( CORES, GB, PERCENT, MBPS)\n\nAllowed values for this property are: "CORES", "GB", "MBPS", "IOPS", "PERCENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + item_duration_in_ms: int = Field(..., alias='itemDurationInMs', description='Time duration in milliseconds between data points (one hour or one day).') + items: list[NetworkUsageTrendAggregation] = Field(..., alias='items', description='Collection of Usage Data with time stamps for all network interfaces.') + + +class SummarizeHostInsightResourceCapacityTrendAggregationCollection(OpsiBaseModel): + """Top level response object.""" + + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + high_utilization_threshold: int = Field(..., alias='highUtilizationThreshold', description='Percent value in which a resource metric is considered highly utilized.') + low_utilization_threshold: int = Field(..., alias='lowUtilizationThreshold', description='Percent value in which a resource metric is considered lowly utilized.') + resource_metric: Literal['CPU', 'MEMORY', 'LOGICAL_MEMORY', 'STORAGE', 'NETWORK', 'GPU_UTILIZATION', 'GPU_MEMORY_USAGE', 'IO', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceMetric', description='Defines the type of resource metric (CPU, Physical Memory, Logical Memory)\n\nAllowed values for this property are: "CPU", "MEMORY", "LOGICAL_MEMORY", "STORAGE", "NETWORK", "GPU_UTILIZATION", "GPU_MEMORY_USAGE", "IO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + usage_unit: Literal['CORES', 'GB', 'MBPS', 'IOPS', 'PERCENT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='usageUnit', description='Displays usage unit ( CORES, GB, PERCENT, MBPS)\n\nAllowed values for this property are: "CORES", "GB", "MBPS", "IOPS", "PERCENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + item_duration_in_ms: int = Field(..., alias='itemDurationInMs', description='Time duration in milliseconds between data points (one hour or one day).') + capacity_data: list[HostResourceCapacityTrendAggregation] = Field(..., alias='capacityData', description='Capacity Data with timestamp.') + + +class SummarizeHostInsightResourceForecastTrendAggregation(OpsiBaseModel): + """Forecast results from the selected time period.""" + + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + high_utilization_threshold: int = Field(..., alias='highUtilizationThreshold', description='Percent value in which a resource metric is considered highly utilized.') + low_utilization_threshold: int = Field(..., alias='lowUtilizationThreshold', description='Percent value in which a resource metric is considered lowly utilized.') + resource_metric: Literal['CPU', 'MEMORY', 'LOGICAL_MEMORY', 'STORAGE', 'NETWORK', 'GPU_UTILIZATION', 'GPU_MEMORY_USAGE', 'IO', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceMetric', description='Defines the type of resource metric (CPU, Physical Memory, Logical Memory)\n\nAllowed values for this property are: "CPU", "MEMORY", "LOGICAL_MEMORY", "STORAGE", "NETWORK", "GPU_UTILIZATION", "GPU_MEMORY_USAGE", "IO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + usage_unit: Literal['CORES', 'GB', 'MBPS', 'IOPS', 'PERCENT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='usageUnit', description='Displays usage unit ( CORES, GB, PERCENT, MBPS)\n\nAllowed values for this property are: "CORES", "GB", "MBPS", "IOPS", "PERCENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + selected_forecast_algorithm: str | None = Field(None, alias='selectedForecastAlgorithm', description='Auto-ML algorithm leveraged for the forecast. Only applicable for Auto-ML forecast.') + pattern: Literal['LINEAR', 'MONTHLY_SEASONS', 'MONTHLY_AND_YEARLY_SEASONS', 'WEEKLY_SEASONS', 'WEEKLY_AND_MONTHLY_SEASONS', 'WEEKLY_MONTHLY_AND_YEARLY_SEASONS', 'WEEKLY_AND_YEARLY_SEASONS', 'YEARLY_SEASONS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='pattern', description='Time series patterns used in the forecasting.\n\nAllowed values for this property are: "LINEAR", "MONTHLY_SEASONS", "MONTHLY_AND_YEARLY_SEASONS", "WEEKLY_SEASONS", "WEEKLY_AND_MONTHLY_SEASONS", "WEEKLY_MONTHLY_AND_YEARLY_SEASONS", "WEEKLY_AND_YEARLY_SEASONS", "YEARLY_SEASONS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + historical_data: list[HistoricalDataItem] = Field(..., alias='historicalData', description='Time series data used for the forecast analysis.') + projected_data: list[ProjectedDataItem] = Field(..., alias='projectedData', description='Time series data result of the forecasting analysis.') + + +class SummarizeHostInsightResourceStatisticsAggregationCollection(OpsiBaseModel): + """Returns list of hosts with resource statistics like usage, capacity, utilization, usage change percent and load.""" + + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + high_utilization_threshold: int = Field(..., alias='highUtilizationThreshold', description='Percent value in which a resource metric is considered highly utilized.') + low_utilization_threshold: int = Field(..., alias='lowUtilizationThreshold', description='Percent value in which a resource metric is considered lowly utilized.') + resource_metric: Literal['CPU', 'MEMORY', 'LOGICAL_MEMORY', 'STORAGE', 'NETWORK', 'GPU_UTILIZATION', 'GPU_MEMORY_USAGE', 'IO', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceMetric', description='Defines the type of resource metric (CPU, Physical Memory, Logical Memory)\n\nAllowed values for this property are: "CPU", "MEMORY", "LOGICAL_MEMORY", "STORAGE", "NETWORK", "GPU_UTILIZATION", "GPU_MEMORY_USAGE", "IO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + usage_unit: Literal['CORES', 'GB', 'MBPS', 'IOPS', 'PERCENT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='usageUnit', description='Displays usage unit ( CORES, GB, PERCENT, MBPS)\n\nAllowed values for this property are: "CORES", "GB", "MBPS", "IOPS", "PERCENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + items: list[HostInsightResourceStatisticsAggregation] = Field(..., alias='items', description='Collection of Resource Statistics items') + + +class SummarizeHostInsightResourceUsageAggregation(OpsiBaseModel): + """Resource usage summation for the current time period.""" + + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + resource_metric: Literal['CPU', 'MEMORY', 'LOGICAL_MEMORY', 'STORAGE', 'NETWORK', 'GPU_UTILIZATION', 'GPU_MEMORY_USAGE', 'IO', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceMetric', description='Defines the type of resource metric (CPU, Physical Memory, Logical Memory)\n\nAllowed values for this property are: "CPU", "MEMORY", "LOGICAL_MEMORY", "STORAGE", "NETWORK", "GPU_UTILIZATION", "GPU_MEMORY_USAGE", "IO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + usage_unit: Literal['CORES', 'GB', 'MBPS', 'IOPS', 'PERCENT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='usageUnit', description='Displays usage unit ( CORES, GB, PERCENT, MBPS)\n\nAllowed values for this property are: "CORES", "GB", "MBPS", "IOPS", "PERCENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + usage: float = Field(..., alias='usage', description='Total amount used of the resource metric type (CPU, STORAGE).') + capacity: float = Field(..., alias='capacity', description='The maximum allocated amount of the resource metric type (CPU, STORAGE) for a set of databases.') + usage_change_percent: float = Field(..., alias='usageChangePercent', description='Percentage change in resource usage during the current period calculated using linear regression functions') + + +class SummarizeHostInsightResourceUsageTrendAggregationCollection(OpsiBaseModel): + """Top level response object.""" + + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + resource_metric: Literal['CPU', 'MEMORY', 'LOGICAL_MEMORY', 'STORAGE', 'NETWORK', 'GPU_UTILIZATION', 'GPU_MEMORY_USAGE', 'IO', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceMetric', description='Defines the type of resource metric (CPU, Physical Memory, Logical Memory)\n\nAllowed values for this property are: "CPU", "MEMORY", "LOGICAL_MEMORY", "STORAGE", "NETWORK", "GPU_UTILIZATION", "GPU_MEMORY_USAGE", "IO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + usage_unit: Literal['CORES', 'GB', 'MBPS', 'IOPS', 'PERCENT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='usageUnit', description='Displays usage unit ( CORES, GB, PERCENT, MBPS)\n\nAllowed values for this property are: "CORES", "GB", "MBPS", "IOPS", "PERCENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + item_duration_in_ms: int = Field(..., alias='itemDurationInMs', description='Time duration in milliseconds between data points (one hour or one day).') + usage_data: list[ResourceUsageTrendAggregation] = Field(..., alias='usageData', description='Usage Data with timestamp.') + + +class SummarizeHostInsightResourceUtilizationInsightAggregation(OpsiBaseModel): + """Insights response containing current/projected groups for CPU or memory.""" + + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + high_utilization_threshold: int = Field(..., alias='highUtilizationThreshold', description='Percent value in which a resource metric is considered highly utilized.') + low_utilization_threshold: int = Field(..., alias='lowUtilizationThreshold', description='Percent value in which a resource metric is considered lowly utilized.') + resource_metric: Literal['CPU', 'MEMORY', 'LOGICAL_MEMORY', 'STORAGE', 'NETWORK', 'GPU_UTILIZATION', 'GPU_MEMORY_USAGE', 'IO', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceMetric', description='Defines the type of resource metric (CPU, Physical Memory, Logical Memory)\n\nAllowed values for this property are: "CPU", "MEMORY", "LOGICAL_MEMORY", "STORAGE", "NETWORK", "GPU_UTILIZATION", "GPU_MEMORY_USAGE", "IO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + projected_utilization: ResourceInsightProjectedUtilization = Field(..., alias='projectedUtilization', description='The projected_utilization field of SummarizeHostInsightResourceUtilizationInsightAggregation.') + current_utilization: ResourceInsightCurrentUtilization = Field(..., alias='currentUtilization', description='The current_utilization field of SummarizeHostInsightResourceUtilizationInsightAggregation.') + + +class SummarizeHostInsightStorageUsageTrendAggregationCollection(OpsiBaseModel): + """Top level response object.""" + + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + usage_unit: Literal['CORES', 'GB', 'MBPS', 'IOPS', 'PERCENT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='usageUnit', description='Displays usage unit ( CORES, GB, PERCENT, MBPS)\n\nAllowed values for this property are: "CORES", "GB", "MBPS", "IOPS", "PERCENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + item_duration_in_ms: int = Field(..., alias='itemDurationInMs', description='Time duration in milliseconds between data points (one hour or one day).') + items: list[StorageUsageTrendAggregation] = Field(..., alias='items', description='Collection of Usage Data with time stamps for all filesystems.') + + +class SummarizeHostInsightsDiskStatisticsCollection(OpsiBaseModel): + """Top level response object.""" + + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + usage_unit: Literal['CORES', 'GB', 'MBPS', 'IOPS', 'PERCENT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='usageUnit', description='Displays usage unit ( CORES, GB, PERCENT, MBPS)\n\nAllowed values for this property are: "CORES", "GB", "MBPS", "IOPS", "PERCENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + item_duration_in_ms: int = Field(..., alias='itemDurationInMs', description='Time duration in milliseconds between data points (one hour or one day).') + items: list[DiskStatistics] = Field(..., alias='items', description='Collection of Data for all disks in a host.') + + +class SummarizeHostInsightsTopProcessesUsageCollection(OpsiBaseModel): + """Top level response object.""" + + timestamp: datetime = Field(..., alias='timestamp', description='The start timestamp that was passed into the request.') + items: list[TopProcessesUsage] = Field(..., alias='items', description='List of usage data samples for a top process on a specific date.') + + +class SummarizeHostInsightsTopProcessesUsageTrendCollection(OpsiBaseModel): + """Top level response object.""" + + time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') + time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') + items: list[TopProcessesUsageTrendAggregation] = Field(..., alias='items', description='Collection of Usage Data with time stamps for top processes') + + +class SummarizeOperationsInsightsWarehouseResourceUsageAggregation(OpsiBaseModel): + """Details of resource usage by an Operations Insights Warehouse resource.""" + + id: str = Field(..., alias='id', description='OPSI Warehouse OCID') + cpu_used: float | None = Field(None, alias='cpuUsed', description='Number of OCPUs used by OPSI Warehouse ADW. Can be fractional.') + storage_used_in_gbs: float | None = Field(None, alias='storageUsedInGBs', description='Storage by OPSI Warehouse ADW in GB.') + lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Possible lifecycle states\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class SummaryStatistics(OpsiBaseModel): + """Contains common summary statistics.""" + + minimum: float = Field(..., alias='minimum', description='The smallest number in the data set.') + maximum: float = Field(..., alias='maximum', description='The largest number in the data set.') + average: float = Field(..., alias='average', description='The average number in the data set.') + median: float = Field(..., alias='median', description='The middle number in the data set.') + lower_quartile: float = Field(..., alias='lowerQuartile', description="The middle number between the smallest number and the median of the data set. It's also known as the 25th quartile.") + upper_quartile: float = Field(..., alias='upperQuartile', description="The middle number between the median and the largest number of the data set. It's also known as the 75th quartile.") + + +class SynchronizeAutonomousDatabaseToExadataDetails(OpsiRequestModel): + """The details of onboarded autonomous database need to synchroized with infracture information.""" + + entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Source of the database entity. Currently only AUTONOMOUS_DATABASE source is supported.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') + + +class TablespaceUsageTrend(OpsiBaseModel): + """Usage data samples.""" + + end_timestamp: datetime = Field(..., alias='endTimestamp', description='The timestamp in which the current sampling period ends in RFC 3339 format.') + usage: float = Field(..., alias='usage', description='Total amount used of the resource metric type (CPU, STORAGE).') + capacity: float = Field(..., alias='capacity', description='The maximum allocated amount of the resource metric type (CPU, STORAGE) for a set of databases.') + + +class TablespaceUsageTrendAggregation(OpsiBaseModel): + """Usage data per tablespace for a Pluggable database.""" + + tablespace_name: str = Field(..., alias='tablespaceName', description='The name of tablespace.') + tablespace_type: str = Field(..., alias='tablespaceType', description='Type of tablespace') + usage_data: list[TablespaceUsageTrend] = Field(..., alias='usageData', description='List of usage data samples for a tablespace') + + +class TestMacsManagedAutonomousDatabaseInsightConnectionDetails(OpsiRequestModel): + """Connection details of a MACS-managed Autonomous database.""" + + management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') + connection_details: ConnectionDetails = Field(..., alias='connectionDetails', description='The connection_details field of TestMacsManagedAutonomousDatabaseInsightConnectionDetails.') + connection_credential_details: CredentialDetails = Field(..., alias='connectionCredentialDetails', description='The connection_credential_details field of TestMacsManagedAutonomousDatabaseInsightConnectionDetails.') + + +class TestMacsManagedCloudDatabaseInsightConnectionDetails(OpsiRequestModel): + """Connection details of a MACS-managed cloud database.""" + + management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') + connection_details: ConnectionDetails = Field(..., alias='connectionDetails', description='The connection_details field of TestMacsManagedCloudDatabaseInsightConnectionDetails.') + connection_credential_details: CredentialDetails = Field(..., alias='connectionCredentialDetails', description='The connection_credential_details field of TestMacsManagedCloudDatabaseInsightConnectionDetails.') + + +class TopProcessesUsage(OpsiBaseModel): + """Aggregated data for top processes on a specific date.""" + + command: str = Field(..., alias='command', description='Command line and arguments used to launch process.') + container_id: str | None = Field(None, alias='containerId', description='Container id if this process corresponds to a running container in the host.') + process_hash: str = Field(..., alias='processHash', description='Unique identifier for a process.') + cpu_usage: float = Field(..., alias='cpuUsage', description='Process CPU usage.') + cpu_utilization: float = Field(..., alias='cpuUtilization', description='Process CPU utilization percentage.') + memory_utilization: float = Field(..., alias='memoryUtilization', description='Process memory utilization percentage.') + virtual_memory_in_mbs: float = Field(..., alias='virtualMemoryInMBs', description='Process virtual memory in Megabytes.') + physical_memory_in_mbs: float = Field(..., alias='physicalMemoryInMBs', description='Procress physical memory in Megabytes.') + max_process_count: int = Field(..., alias='maxProcessCount', description='Maximum number of processes running at time of collection.', ge=0) + + +class TopProcessesUsageTrend(OpsiBaseModel): + """Aggregated data for top processes.""" + + end_timestamp: datetime = Field(..., alias='endTimestamp', description='The timestamp in which the current sampling period ends in RFC 3339 format.') + container_id: str | None = Field(None, alias='containerId', description='Container id if this process corresponds to a running container in the host.') + cpu_usage: float = Field(..., alias='cpuUsage', description='Process CPU usage.') + cpu_utilization: float = Field(..., alias='cpuUtilization', description='Process CPU utilization percentage') + memory_utilization: float = Field(..., alias='memoryUtilization', description='Process memory utilization percentage') + virtual_memory_in_mbs: float = Field(..., alias='virtualMemoryInMBs', description='Process virtual memory in Megabytes') + physical_memory_in_mbs: float = Field(..., alias='physicalMemoryInMBs', description='Procress physical memory in Megabytes') + max_process_count: int = Field(..., alias='maxProcessCount', description='Maximum number of processes running at time of collection', ge=0) + + +class TopProcessesUsageTrendAggregation(OpsiBaseModel): + """Usage data per host top process.""" + + command: str = Field(..., alias='command', description='Command line and arguments used to launch process') + usage_data: list[TopProcessesUsageTrend] = Field(..., alias='usageData', description='List of usage data samples for a top process') + + +class UpdateAutonomousDatabaseInsightDetails(OpsiBaseModel): + """Update fields for an autonomous database insight. Include only mutable fields that should change.""" + + entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Gets the entity_source of this UpdateDatabaseInsightDetails.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this UpdateDatabaseInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this UpdateDatabaseInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + + +class UpdateAwrHubDetails(OpsiRequestModel): + """Update fields for an AWR Hub, such as display name and tags. Include only fields that should change.""" + + display_name: str | None = Field(None, alias='displayName', description='User-friedly name of AWR Hub that does not have to be unique.') + + +class UpdateAwrHubSourceDetails(OpsiRequestModel): + """Awr hub source update object information.""" + + type: Literal['ADW_S', 'ATP_S', 'ADW_D', 'ATP_D', 'EXTERNAL_PDB', 'EXTERNAL_NONCDB', 'COMANAGED_VM_CDB', 'COMANAGED_VM_PDB', 'COMANAGED_VM_NONCDB', 'COMANAGED_BM_CDB', 'COMANAGED_BM_PDB', 'COMANAGED_BM_NONCDB', 'COMANAGED_EXACS_CDB', 'COMANAGED_EXACS_PDB', 'COMANAGED_EXACS_NONCDB', 'LH_S', 'APEX_S', 'AJD_S', 'AVD_S', 'LH_D', 'APEX_D', 'AJD_D', 'AVD_D', 'UNDEFINED'] | None = Field(None, alias='type', description='source type of the database\n\nAllowed values for this property are: "ADW_S", "ATP_S", "ADW_D", "ATP_D", "EXTERNAL_PDB", "EXTERNAL_NONCDB", "COMANAGED_VM_CDB", "COMANAGED_VM_PDB", "COMANAGED_VM_NONCDB", "COMANAGED_BM_CDB", "COMANAGED_BM_PDB", "COMANAGED_BM_NONCDB", "COMANAGED_EXACS_CDB", "COMANAGED_EXACS_PDB", "COMANAGED_EXACS_NONCDB", "LH_S", "APEX_S", "AJD_S", "AVD_S", "LH_D", "APEX_D", "AJD_D", "AVD_D", "UNDEFINED"') + + +class UpdateBasicConfigurationItemDetails(OpsiBaseModel): + """Configuration item details for OPSI configuration update.""" + + config_item_type: Literal['BASIC'] = Field(..., alias='configItemType', description='Gets the config_item_type of this UpdateConfigurationItemDetails.\nType of configuration item.\n\nAllowed values for this property are: "BASIC"') + name: str | None = Field(None, alias='name', description='Name of configuration item.') + value: str | None = Field(None, alias='value', description='Value of configuration item.') + + +class UpdateChargebackPlanDetails(OpsiRequestModel): + """The details used to update a Ops Insights chargeback plan.""" + + plan_description: str | None = Field(None, alias='planDescription', description='Description of OPSI Chargeback Plan.') + plan_name: str | None = Field(None, alias='planName', description='Name for the OPSI Chargeback plan.') + plan_custom_items: list[CreatePlanCustomItemDetails] | None = Field(None, alias='planCustomItems', description='List of chargeback plan customizations.') + + +class UpdateChargebackPlanReportDetails(OpsiRequestModel): + """The details used to update a Ops Insights chargeback plan report.""" + + report_name: str = Field(..., alias='reportName', description='The chargeback plan report name.') + report_properties: ReportPropertyDetails = Field(..., alias='reportProperties', description='The report_properties field of UpdateChargebackPlanReportDetails.') + + +class UpdateConfigurationItemDetails(OpsiBaseModel): + """Configuration item details for OPSI configuration update.""" + + config_item_type: Literal['BASIC'] = Field(..., alias='configItemType', description='Type of configuration item.\n\nAllowed values for this property are: "BASIC"') + + +class UpdateDatabaseInsightDetails(OpsiRequestModel): + """Base update payload for database insights. Include the entitySource discriminator and any mutable tags or subtype fields to change.""" + + entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Source of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') + + +class UpdateEmManagedExternalDatabaseInsightDetails(OpsiBaseModel): + """Update fields for an Enterprise Manager-managed external database insight.""" + + entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Gets the entity_source of this UpdateDatabaseInsightDetails.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this UpdateDatabaseInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this UpdateDatabaseInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + + +class UpdateEmManagedExternalExadataInsightDetails(OpsiBaseModel): + """Update fields for an Enterprise Manager-managed external Exadata insight.""" + + entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA'] = Field(..., alias='entitySource', description='Gets the entity_source of this UpdateExadataInsightDetails.\nSource of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA"') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this UpdateExadataInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this UpdateExadataInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + is_auto_sync_enabled: bool | None = Field(None, alias='isAutoSyncEnabled', description='Set to true to enable automatic enablement and disablement of related targets from Enterprise Manager. New resources (e.g. Database Insights) will be placed in the same compartment as the related Exadata Insight.') + + +class UpdateEmManagedExternalHostInsightDetails(OpsiBaseModel): + """Update fields for an Enterprise Manager-managed external host insight.""" + + entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST'] = Field(..., alias='entitySource', description='Gets the entity_source of this UpdateHostInsightDetails.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST"') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this UpdateHostInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this UpdateHostInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + + +class UpdateEnterpriseManagerBridgeDetails(OpsiRequestModel): + """Update fields for an Enterprise Manager bridge, such as display name, description, and tags.""" + + display_name: str | None = Field(None, alias='displayName', description='User-friedly name of Enterprise Manager Bridge that does not have to be unique.') + description: str | None = Field(None, alias='description', description='Description of Enterprise Manager Bridge') + + +class UpdateExadataInsightDetails(OpsiRequestModel): + """Base update payload for Exadata insights. Include the entitySource discriminator and any mutable tags or subtype fields to change.""" + + entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA'] = Field(..., alias='entitySource', description='Source of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA"') + + +class UpdateExternalMysqlDatabaseInsightDetails(OpsiBaseModel): + """Database insight resource.""" + + entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Gets the entity_source of this UpdateDatabaseInsightDetails.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this UpdateDatabaseInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this UpdateDatabaseInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + + +class UpdateHostInsightDetails(OpsiRequestModel): + """Base update payload for host insights. Include the entitySource discriminator and any mutable tags or subtype fields to change.""" + + entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST'] = Field(..., alias='entitySource', description='Source of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST"') + + +class UpdateMacsManagedAutonomousDatabaseInsightDetails(OpsiBaseModel): + """The freeformTags and definedTags to be updated.""" + + entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Gets the entity_source of this UpdateDatabaseInsightDetails.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this UpdateDatabaseInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this UpdateDatabaseInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + + +class UpdateMacsManagedCloudDatabaseHostInsightDetails(OpsiBaseModel): + """Update fields for a MACS-managed cloud database host insight.""" + + entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST'] = Field(..., alias='entitySource', description='Gets the entity_source of this UpdateHostInsightDetails.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST"') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this UpdateHostInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this UpdateHostInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + + +class UpdateMacsManagedCloudDatabaseInsightDetails(OpsiBaseModel): + """The freeformTags and definedTags to be updated.""" + + entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Gets the entity_source of this UpdateDatabaseInsightDetails.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this UpdateDatabaseInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this UpdateDatabaseInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + + +class UpdateMacsManagedCloudExadataInsightDetails(OpsiBaseModel): + """Update fields for a MACS-managed cloud Exadata insight.""" + + entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA'] = Field(..., alias='entitySource', description='Gets the entity_source of this UpdateExadataInsightDetails.\nSource of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA"') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this UpdateExadataInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this UpdateExadataInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + + +class UpdateMacsManagedCloudHostInsightDetails(OpsiBaseModel): + """Update fields for a MACS-managed cloud host insight.""" + + entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST'] = Field(..., alias='entitySource', description='Gets the entity_source of this UpdateHostInsightDetails.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST"') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this UpdateHostInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this UpdateHostInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + + +class UpdateMacsManagedExternalDatabaseInsightDetails(OpsiBaseModel): + """The freeformTags and definedTags to be updated.""" + + entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Gets the entity_source of this UpdateDatabaseInsightDetails.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this UpdateDatabaseInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this UpdateDatabaseInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + + +class UpdateMacsManagedExternalHostInsightDetails(OpsiBaseModel): + """Update fields for a MACS-managed external host insight.""" + + entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST'] = Field(..., alias='entitySource', description='Gets the entity_source of this UpdateHostInsightDetails.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST"') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this UpdateHostInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this UpdateHostInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + + +class UpdateMdsMySqlDatabaseInsight(OpsiBaseModel): + """Database insight resource.""" + + entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Gets the entity_source of this UpdateDatabaseInsightDetails.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this UpdateDatabaseInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this UpdateDatabaseInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + + +class UpdateNewsReportDetails(OpsiRequestModel): + """The information about the news report to be updated.""" + + status: Literal['DISABLED', 'ENABLED', 'TERMINATED'] | None = Field(None, alias='status', description='Defines if the news report will be enabled or disabled.\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED"') + news_frequency: Literal['WEEKLY', 'DAILY', 'HOURLY'] | None = Field(None, alias='newsFrequency', description='News report frequency.\n\nAllowed values for this property are: "WEEKLY", "DAILY", "HOURLY"') + locale: Literal['EN'] | None = Field(None, alias='locale', description='Language of the news report.\n\nAllowed values for this property are: "EN"') + content_types: NewsContentTypes | None = Field(None, alias='contentTypes', description='The content_types field of UpdateNewsReportDetails.') + ons_topic_id: str | None = Field(None, alias='onsTopicId', description='The OCID of the ONS topic.') + name: str | None = Field(None, alias='name', description='The news report name.') + description: str | None = Field(None, alias='description', description='The description of the news report.') + day_of_week: Literal['MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SUNDAY'] | None = Field(None, alias='dayOfWeek', description='Day of the week in which the news report will be sent if the frequency is set to WEEKLY.\n\nAllowed values for this property are: "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"') + are_child_compartments_included: bool | None = Field(None, alias='areChildCompartmentsIncluded', description='A flag to consider the resources within a given compartment and all sub-compartments.') + + +class UpdateOperationsInsightsPrivateEndpointDetails(OpsiRequestModel): + """The details used to update a Operation Insights private endpoint.""" + + display_name: str | None = Field(None, alias='displayName', description='The display name of the private endpoint.') + description: str | None = Field(None, alias='description', description='The description of the private endpoint.') + nsg_ids: list[str] | None = Field(None, alias='nsgIds', description='The OCID of the network security groups that the Private service accessed the database.') + + +class UpdateOperationsInsightsWarehouseDetails(OpsiRequestModel): + """Update fields for an Operations Insights warehouse, such as display name, allocated CPU, storage, and tags.""" + + display_name: str | None = Field(None, alias='displayName', description='User-friedly name of Ops Insights Warehouse that does not have to be unique.') + cpu_allocated: float | None = Field(None, alias='cpuAllocated', description='Number of CPUs allocated to OPSI Warehouse ADW.') + compute_model: str | None = Field(None, alias='computeModel', description='The compute model for the OPSI warehouse ADW (OCPU or ECPU)') + storage_allocated_in_gbs: float | None = Field(None, alias='storageAllocatedInGBs', description='Storage allocated to OPSI Warehouse ADW.') + + +class UpdateOperationsInsightsWarehouseUserDetails(OpsiRequestModel): + """Update fields for an Operations Insights warehouse user, including access flags, password, and tags.""" + + connection_password: str | None = Field(None, alias='connectionPassword', description='User provided connection password for the AWR Data, Enterprise Manager Data and Ops Insights OPSI Hub.') + is_awr_data_access: bool | None = Field(None, alias='isAwrDataAccess', description='Indicate whether user has access to AWR data.') + is_em_data_access: bool | None = Field(None, alias='isEmDataAccess', description='Indicate whether user has access to EM data.') + is_opsi_data_access: bool | None = Field(None, alias='isOpsiDataAccess', description='Indicate whether user has access to OPSI data.') + + +class UpdateOpsiConfigurationDetails(OpsiRequestModel): + """Information to be updated in OPSI configuration resource.""" + + opsi_config_type: Literal['UX_CONFIGURATION'] = Field(..., alias='opsiConfigType', description='OPSI configuration type.\n\nAllowed values for this property are: "UX_CONFIGURATION"') + display_name: str | None = Field(None, alias='displayName', description='User-friendly display name for the OPSI configuration. The name does not have to be unique.') + description: str | None = Field(None, alias='description', description='Description of OPSI configuration.') + config_items: list[UpdateConfigurationItemDetails] | None = Field(None, alias='configItems', description='Array of configuration items with custom values. All and only configuration items requiring custom values should be part of this array.\nThis array overwrites the existing custom configuration items array for this resource.') + + +class UpdateOpsiUxConfigurationDetails(OpsiBaseModel): + """Information to be updated in OPSI UX configuration.""" + + opsi_config_type: Literal['UX_CONFIGURATION'] = Field(..., alias='opsiConfigType', description='Gets the opsi_config_type of this UpdateOpsiConfigurationDetails.\nOPSI configuration type.\n\nAllowed values for this property are: "UX_CONFIGURATION"') + display_name: str | None = Field(None, alias='displayName', description='Gets the display_name of this UpdateOpsiConfigurationDetails.\nUser-friendly display name for the OPSI configuration. The name does not have to be unique.') + description: str | None = Field(None, alias='description', description='Gets the description of this UpdateOpsiConfigurationDetails.\nDescription of OPSI configuration.') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this UpdateOpsiConfigurationDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this UpdateOpsiConfigurationDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this UpdateOpsiConfigurationDetails.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') + config_items: list[UpdateConfigurationItemDetails] | None = Field(None, alias='configItems', description='Gets the config_items of this UpdateOpsiConfigurationDetails.\nArray of configuration items with custom values. All and only configuration items requiring custom values should be part of this array.\nThis array overwrites the existing custom configuration items array for this resource.') + + +class UpdatePeComanagedDatabaseInsightDetails(OpsiBaseModel): + """The freeformTags and definedTags to be updated.""" + + entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Gets the entity_source of this UpdateDatabaseInsightDetails.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this UpdateDatabaseInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this UpdateDatabaseInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + + +class UpdatePeComanagedExadataInsightDetails(OpsiBaseModel): + """Update fields for a private-endpoint co-managed Exadata insight.""" + + entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA'] = Field(..., alias='entitySource', description='Gets the entity_source of this UpdateExadataInsightDetails.\nSource of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA"') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this UpdateExadataInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this UpdateExadataInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + + +class UpdatePeComanagedHostInsightDetails(OpsiBaseModel): + """Update fields for a private-endpoint co-managed host insight.""" + + entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST'] = Field(..., alias='entitySource', description='Gets the entity_source of this UpdateHostInsightDetails.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST"') + freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this UpdateHostInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') + defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this UpdateHostInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') + + +class UxConfigurationItemsCollection(OpsiBaseModel): + """Collection of ux configuration item summary objects.""" + + opsi_config_type: Literal['UX_CONFIGURATION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='opsiConfigType', description='Gets the opsi_config_type of this ConfigurationItemsCollection.\nOPSI configuration type.\n\nAllowed values for this property are: "UX_CONFIGURATION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + config_items: list[ConfigurationItemSummary] | None = Field(None, alias='configItems', description='Gets the config_items of this ConfigurationItemsCollection.\nArray of configuration item summary objects.') + + +class VmClusterSummary(OpsiBaseModel): + """Partial information about the VM Cluster which includes name, memory allocated etc.""" + + vmcluster_name: str = Field(..., alias='vmclusterName', description='The name of the VM Cluster.') + memory_allocated_in_gbs: int | None = Field(None, alias='memoryAllocatedInGBs', description='The memory allocated on a VM Cluster.') + cpu_allocated: int | None = Field(None, alias='cpuAllocated', description='The CPU allocated on a VM Cluster.') + db_nodes_count: int | None = Field(None, alias='dbNodesCount', description='The number of DB nodes on a VM Cluster.', ge=0) + storage_allocated_in_gbs: int | None = Field(None, alias='storageAllocatedInGBs', description='The storage allocated on a VM Cluster.') + vm_cluster_id: str | None = Field(None, alias='vmClusterId', description='The OCID of the VM Cluster.') + + +class WarehouseDataObjectCollection(OpsiBaseModel): + """Collection of Warehouse data object summary objects.""" + + items: list[WarehouseDataObjectSummary] = Field(..., alias='items', description='Array of Warehouse data object summary objects.') + + +class WarehouseDataObjectDetails(OpsiBaseModel): + """Warehouse data object details.""" + + data_object_type: Literal['VIEW', 'TABLE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dataObjectType', description='Type of the data object.\n\nAllowed values for this property are: "VIEW", "TABLE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + + +class WarehouseDataObjectSummary(OpsiBaseModel): + """Summary of a Warehouse data object.""" + + data_object_type: Literal['VIEW', 'TABLE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dataObjectType', description='Type of the data object.\n\nAllowed values for this property are: "VIEW", "TABLE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + name: str | None = Field(None, alias='name', description='Name of the data object, which can be used in data object queries just like how view names are used in a query.') + owner: str | None = Field(None, alias='owner', description='Owner of the data object, which can be used in data object queries in front of data object names just like SCHEMA.VIEW notation in queries.') + details: WarehouseDataObjectDetails | None = Field(None, alias='details', description='The details field of WarehouseDataObjectSummary.') + + +class WarehouseTableDataObjectDetails(OpsiBaseModel): + """Details of a TABLE type data object in a Warehouse.""" + + data_object_type: Literal['VIEW', 'TABLE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dataObjectType', description='Gets the data_object_type of this WarehouseDataObjectDetails.\nType of the data object.\n\nAllowed values for this property are: "VIEW", "TABLE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + columns_metadata: list[DataObjectColumnMetadata] | None = Field(None, alias='columnsMetadata', description='Metadata of columns in the data object.') + + +class WarehouseViewDataObjectDetails(OpsiBaseModel): + """Details of a VIEW type data object in a Warehouse.""" + + data_object_type: Literal['VIEW', 'TABLE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dataObjectType', description='Gets the data_object_type of this WarehouseDataObjectDetails.\nType of the data object.\n\nAllowed values for this property are: "VIEW", "TABLE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + columns_metadata: list[DataObjectColumnMetadata] | None = Field(None, alias='columnsMetadata', description='Metadata of columns in the data object.') + + +class WorkRequest(OpsiBaseModel): + """A description of workrequest status.""" + + operation_type: Literal['ENABLE_DATABASE_INSIGHT', 'DISABLE_DATABASE_INSIGHT', 'UPDATE_DATABASE_INSIGHT', 'CREATE_DATABASE_INSIGHT', 'MOVE_DATABASE_INSIGHT', 'DELETE_DATABASE_INSIGHT', 'CREATE_ENTERPRISE_MANAGER_BRIDGE', 'UDPATE_ENTERPRISE_MANAGER_BRIDGE', 'MOVE_ENTERPRISE_MANAGER_BRIDGE', 'DELETE_ENTERPRISE_MANAGER_BRIDGE', 'ENABLE_HOST_INSIGHT', 'DISABLE_HOST_INSIGHT', 'UPDATE_HOST_INSIGHT', 'CREATE_HOST_INSIGHT', 'MOVE_HOST_INSIGHT', 'DELETE_HOST_INSIGHT', 'CREATE_EXADATA_INSIGHT', 'ENABLE_EXADATA_INSIGHT', 'DISABLE_EXADATA_INSIGHT', 'UPDATE_EXADATA_INSIGHT', 'MOVE_EXADATA_INSIGHT', 'DELETE_EXADATA_INSIGHT', 'ADD_EXADATA_INSIGHT_MEMBERS', 'EXADATA_AUTO_SYNC', 'UPDATE_OPSI_WAREHOUSE', 'CREATE_OPSI_WAREHOUSE', 'MOVE_OPSI_WAREHOUSE', 'DELETE_OPSI_WAREHOUSE', 'ROTATE_OPSI_WAREHOUSE_WALLET', 'UPDATE_OPSI_WAREHOUSE_USER', 'CREATE_OPSI_WAREHOUSE_USER', 'MOVE_OPSI_WAREHOUSE_USER', 'DELETE_OPSI_WAREHOUSE_USER', 'UPDATE_AWRHUB', 'CREATE_AWRHUB', 'MOVE_AWRHUB', 'DELETE_AWRHUB', 'UPDATE_PRIVATE_ENDPOINT', 'CREATE_PRIVATE_ENDPOINT', 'MOVE_PRIVATE_ENDPOINT', 'DELETE_PRIVATE_ENDPOINT', 'CHANGE_PE_COMANAGED_DATABASE_INSIGHT_DETAILS', 'UPDATE_OPSI_CONFIGURATION', 'CREATE_OPSI_CONFIGURATION', 'MOVE_OPSI_CONFIGURATION', 'DELETE_OPSI_CONFIGURATION', 'ENABLE_ADB_ADVANCED_FEATURES', 'DISABLE_ADB_ADVANCED_FEATURES', 'UPDATE_ADB_ADVANCED_FEATURES', 'CREATE_NEWS_REPORT', 'ENABLE_NEWS_REPORT', 'DISABLE_NEWS_REPORT', 'UPDATE_NEWS_REPORT', 'MOVE_NEWS_REPORT', 'DELETE_NEWS_REPORT', 'CREATE_AWRHUB_SOURCE', 'DELETE_AWRHUB_SOURCE', 'UPDATE_AWRHUB_SOURCE', 'MOVE_AWRHUB_SOURCE', 'ENABLE_AWRHUB_SOURCE', 'DISABLE_AWRHUB_SOURCE', 'CHANGE_MACS_MANAGED_CLOUD_DATABASE_INSIGHT_CONNECTION_DETAILS', 'TEST_MACS_MANAGED_CLOUD_DATABASE_INSIGHT_CONNECTION_DETAILS', 'CHANGE_EXTERNAL_MYSQL_DATABASE_INSIGHT_CONNECTION_DETAILS', 'CHANGE_MACS_MANAGED_ADB_CONNECTION_DETAILS', 'TEST_MACS_MANAGED_ADB_CONNECTION_DETAILS', 'SYNCHRONIZE_AUTONOMOUS_DATABASE_TO_EXADATA', 'CREATE_CHARGE_BACK', 'ENABLE_CHARGE_BACK', 'DISABLE_CHARGE_BACK', 'UPDATE_CHARGE_BACK', 'MOVE_CHARGE_BACK', 'DELETE_CHARGE_BACK', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='operationType', description='Type of the work request\n\nAllowed values for this property are: "ENABLE_DATABASE_INSIGHT", "DISABLE_DATABASE_INSIGHT", "UPDATE_DATABASE_INSIGHT", "CREATE_DATABASE_INSIGHT", "MOVE_DATABASE_INSIGHT", "DELETE_DATABASE_INSIGHT", "CREATE_ENTERPRISE_MANAGER_BRIDGE", "UDPATE_ENTERPRISE_MANAGER_BRIDGE", "MOVE_ENTERPRISE_MANAGER_BRIDGE", "DELETE_ENTERPRISE_MANAGER_BRIDGE", "ENABLE_HOST_INSIGHT", "DISABLE_HOST_INSIGHT", "UPDATE_HOST_INSIGHT", "CREATE_HOST_INSIGHT", "MOVE_HOST_INSIGHT", "DELETE_HOST_INSIGHT", "CREATE_EXADATA_INSIGHT", "ENABLE_EXADATA_INSIGHT", "DISABLE_EXADATA_INSIGHT", "UPDATE_EXADATA_INSIGHT", "MOVE_EXADATA_INSIGHT", "DELETE_EXADATA_INSIGHT", "ADD_EXADATA_INSIGHT_MEMBERS", "EXADATA_AUTO_SYNC", "UPDATE_OPSI_WAREHOUSE", "CREATE_OPSI_WAREHOUSE", "MOVE_OPSI_WAREHOUSE", "DELETE_OPSI_WAREHOUSE", "ROTATE_OPSI_WAREHOUSE_WALLET", "UPDATE_OPSI_WAREHOUSE_USER", "CREATE_OPSI_WAREHOUSE_USER", "MOVE_OPSI_WAREHOUSE_USER", "DELETE_OPSI_WAREHOUSE_USER", "UPDATE_AWRHUB", "CREATE_AWRHUB", "MOVE_AWRHUB", "DELETE_AWRHUB", "UPDATE_PRIVATE_ENDPOINT", "CREATE_PRIVATE_ENDPOINT", "MOVE_PRIVATE_ENDPOINT", "DELETE_PRIVATE_ENDPOINT", "CHANGE_PE_COMANAGED_DATABASE_INSIGHT_DETAILS", "UPDATE_OPSI_CONFIGURATION", "CREATE_OPSI_CONFIGURATION", "MOVE_OPSI_CONFIGURATION", "DELETE_OPSI_CONFIGURATION", "ENABLE_ADB_ADVANCED_FEATURES", "DISABLE_ADB_ADVANCED_FEATURES", "UPDATE_ADB_ADVANCED_FEATURES", "CREATE_NEWS_REPORT", "ENABLE_NEWS_REPORT", "DISABLE_NEWS_REPORT", "UPDATE_NEWS_REPORT", "MOVE_NEWS_REPORT", "DELETE_NEWS_REPORT", "CREATE_AWRHUB_SOURCE", "DELETE_AWRHUB_SOURCE", "UPDATE_AWRHUB_SOURCE", "MOVE_AWRHUB_SOURCE", "ENABLE_AWRHUB_SOURCE", "DISABLE_AWRHUB_SOURCE", "CHANGE_MACS_MANAGED_CLOUD_DATABASE_INSIGHT_CONNECTION_DETAILS", "TEST_MACS_MANAGED_CLOUD_DATABASE_INSIGHT_CONNECTION_DETAILS", "CHANGE_EXTERNAL_MYSQL_DATABASE_INSIGHT_CONNECTION_DETAILS", "CHANGE_MACS_MANAGED_ADB_CONNECTION_DETAILS", "TEST_MACS_MANAGED_ADB_CONNECTION_DETAILS", "SYNCHRONIZE_AUTONOMOUS_DATABASE_TO_EXADATA", "CREATE_CHARGE_BACK", "ENABLE_CHARGE_BACK", "DISABLE_CHARGE_BACK", "UPDATE_CHARGE_BACK", "MOVE_CHARGE_BACK", "DELETE_CHARGE_BACK", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + status: Literal['ACCEPTED', 'IN_PROGRESS', 'WAITING', 'FAILED', 'SUCCEEDED', 'CANCELING', 'CANCELED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Status of current work request.\n\nAllowed values for this property are: "ACCEPTED", "IN_PROGRESS", "WAITING", "FAILED", "SUCCEEDED", "CANCELING", "CANCELED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + id: str = Field(..., alias='id', description='The id of the work request.') + compartment_id: str = Field(..., alias='compartmentId', description='The ocid of the compartment that contains the work request. Work requests should be scoped to\nthe same compartment as the resource the work request affects. If the work request affects multiple resources,\nand those resources are not in the same compartment, it is up to the service team to pick the primary\nresource whose compartment should be used') + resources: list[WorkRequestResource] = Field(..., alias='resources', description='The resources affected by this work request.') + percent_complete: float = Field(..., alias='percentComplete', description='Percentage of the request completed.') + time_accepted: datetime = Field(..., alias='timeAccepted', description='The date and time the request was created, as described in RFC 3339, section 14.29.') + time_started: datetime | None = Field(None, alias='timeStarted', description='The date and time the request was started, as described in RFC 3339, section 14.29.') + time_finished: datetime | None = Field(None, alias='timeFinished', description='The date and time the object was finished, as described in RFC 3339.') + + +class WorkRequestCollection(OpsiBaseModel): + """Results of a workRequest search. Contains both WorkRequest items and other information, such as metadata.""" + + items: list[WorkRequest] = Field(..., alias='items', description='List of workRequests.') + + +class WorkRequestError(OpsiBaseModel): + """An error encountered while executing a work request.""" + + code: str = Field(..., alias='code', description='A machine-usable code for the error that occured. Error codes are listed on.') + message: str = Field(..., alias='message', description='A human readable description of the issue encountered.') + timestamp: datetime = Field(..., alias='timestamp', description='The time the error occured. An RFC3339 formatted datetime string.') + + +class WorkRequestErrorCollection(OpsiBaseModel): + """Results of a workRequestError search. Contains both WorkRequestError items and other information, such as metadata.""" + + items: list[WorkRequestError] = Field(..., alias='items', description='List of workRequestError objects.') + + +class WorkRequestLogEntry(OpsiBaseModel): + """A log message from the execution of a work request.""" + + message: str = Field(..., alias='message', description='Human-readable log message.') + timestamp: datetime = Field(..., alias='timestamp', description='The time the log message was written. An RFC3339 formatted datetime string') + + +class WorkRequestLogEntryCollection(OpsiBaseModel): + """Results of a workRequestLog search. Contains both workRequestLog items and other information, such as metadata.""" + + items: list[WorkRequestLogEntry] = Field(..., alias='items', description='List of workRequestLogEntries.') + + +class WorkRequestResource(OpsiBaseModel): + """A resource created or operated on by a work request.""" + + entity_type: str = Field(..., alias='entityType', description='The resource type the work request affects.') + action_type: Literal['CREATED', 'UPDATED', 'DELETED', 'IN_PROGRESS', 'RELATED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='actionType', description='The way in which this resource is affected by the work tracked in the work request.\nA resource being created, updated, or deleted will remain in the IN_PROGRESS state until\nwork is complete for that resource at which point it will transition to CREATED, UPDATED,\nor DELETED, respectively.\n\nAllowed values for this property are: "CREATED", "UPDATED", "DELETED", "IN_PROGRESS", "RELATED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') + identifier: str = Field(..., alias='identifier', description='The identifier of the resource the work request affects.') + entity_uri: str | None = Field(None, alias='entityUri', description='The URI path that the user can do a GET on to access the resource') + metadata: dict[str, str] | None = Field(None, alias='metadata', description='Additional information that helps to explain the resource.') + + +class WorkRequests(OpsiBaseModel): + """Logical grouping used for Ops Insights Work Request operations.""" + + work_requests: Any | None = Field(None, alias='workRequests', description='OPSI Work Request Object.') + + +OPSI_MODEL_NAMES = ['AddEmManagedExternalExadataInsightMembersDetails', 'AddExadataInsightMembersDetails', 'AddMacsManagedCloudExadataInsightMembersDetails', 'AddPeComanagedExadataInsightMembersDetails', 'AddmDbCollection', 'AddmDbFindingAggregation', 'AddmDbFindingAggregationCollection', 'AddmDbFindingCategoryCollection', 'AddmDbFindingCategorySummary', 'AddmDbFindingsTimeSeriesCollection', 'AddmDbFindingsTimeSeriesSummary', 'AddmDbParameterAggregation', 'AddmDbParameterAggregationCollection', 'AddmDbParameterCategoryCollection', 'AddmDbParameterCategorySummary', 'AddmDbParameterChangeAggregation', 'AddmDbParameterChangeAggregationCollection', 'AddmDbRecommendationAggregation', 'AddmDbRecommendationAggregationCollection', 'AddmDbRecommendationCategoryCollection', 'AddmDbRecommendationCategorySummary', 'AddmDbRecommendationsTimeSeriesCollection', 'AddmDbRecommendationsTimeSeriesSummary', 'AddmDbSchemaObjectCollection', 'AddmDbSchemaObjectSummary', 'AddmDbSqlStatementCollection', 'AddmDbSqlStatementSummary', 'AddmDbSummary', 'AddmReport', 'AutonomousDatabaseConfigurationSummary', 'AutonomousDatabaseInsight', 'AutonomousDatabaseInsightSummary', 'AwrDatabaseCollection', 'AwrDatabaseCpuUsageCollection', 'AwrDatabaseCpuUsageSummary', 'AwrDatabaseMetricCollection', 'AwrDatabaseMetricSummary', 'AwrDatabaseParameterChangeCollection', 'AwrDatabaseParameterChangeSummary', 'AwrDatabaseParameterCollection', 'AwrDatabaseParameterSummary', 'AwrDatabaseReport', 'AwrDatabaseSnapshotCollection', 'AwrDatabaseSnapshotRangeCollection', 'AwrDatabaseSnapshotRangeSummary', 'AwrDatabaseSnapshotSummary', 'AwrDatabaseSqlReport', 'AwrDatabaseSummary', 'AwrDatabaseSysstatCollection', 'AwrDatabaseSysstatSummary', 'AwrDatabaseTopWaitEventCollection', 'AwrDatabaseTopWaitEventSummary', 'AwrDatabaseWaitEventBucketCollection', 'AwrDatabaseWaitEventBucketSummary', 'AwrDatabaseWaitEventCollection', 'AwrDatabaseWaitEventSummary', 'AwrHub', 'AwrHubObjects', 'AwrHubSource', 'AwrHubSourceSummary', 'AwrHubSourceSummaryCollection', 'AwrHubSources', 'AwrHubSummary', 'AwrHubSummaryCollection', 'AwrHubs', 'AwrQueryResult', 'AwrReport', 'AwrSnapshotCollection', 'AwrSnapshotSummary', 'AwrSourceSummary', 'BasicConfigurationItemMetadata', 'BasicConfigurationItemSummary', 'ChangeAutonomousDatabaseInsightAdvancedFeaturesDetails', 'ChangeAwrHubSourceCompartmentDetails', 'ChangeChargebackPlanCompartmentDetails', 'ChangeDatabaseInsightCompartmentDetails', 'ChangeEnterpriseManagerBridgeCompartmentDetails', 'ChangeExadataInsightCompartmentDetails', 'ChangeExternalMysqlDatabaseInsightConnectionDetails', 'ChangeHostInsightCompartmentDetails', 'ChangeMacsManagedAutonomousDatabaseInsightConnectionDetails', 'ChangeMacsManagedCloudDatabaseInsightConnectionDetails', 'ChangeNewsReportCompartmentDetails', 'ChangeOperationsInsightsPrivateEndpointCompartmentDetails', 'ChangeOperationsInsightsWarehouseCompartmentDetails', 'ChangeOpsiConfigurationCompartmentDetails', 'ChangePeComanagedDatabaseInsightDetails', 'ChargebackPlan', 'ChargebackPlanCollection', 'ChargebackPlanDetails', 'ChargebackPlanReport', 'ChargebackPlanReportCollection', 'ChargebackPlanReportSummary', 'ChargebackPlanSummary', 'CloudImportableComputeEntitySummary', 'ConfigurationItemAllowedValueDetails', 'ConfigurationItemFreeTextAllowedValueDetails', 'ConfigurationItemLimitAllowedValueDetails', 'ConfigurationItemMetadata', 'ConfigurationItemPickAllowedValueDetails', 'ConfigurationItemSummary', 'ConfigurationItemUnitDetails', 'ConfigurationItemsCollection', 'ConnectionDetails', 'CreateAutonomousDatabaseInsightDetails', 'CreateAwrHubDetails', 'CreateAwrHubSourceDetails', 'CreateBasicConfigurationItemDetails', 'CreateChargebackPlanDetails', 'CreateChargebackPlanExadataDetails', 'CreateChargebackPlanReportDetails', 'CreateConfigurationItemDetails', 'CreateDatabaseInsightDetails', 'CreateEmManagedExternalDatabaseInsightDetails', 'CreateEmManagedExternalExadataInsightDetails', 'CreateEmManagedExternalExadataMemberEntityDetails', 'CreateEmManagedExternalHostInsightDetails', 'CreateEnterpriseManagerBridgeDetails', 'CreateExadataInsightDetails', 'CreateExternalMysqlDatabaseInsightDetails', 'CreateHostInsightDetails', 'CreateMacsManagedAutonomousDatabaseInsightDetails', 'CreateMacsManagedCloudDatabaseInsightDetails', 'CreateMacsManagedCloudExadataClusterDetails', 'CreateMacsManagedCloudExadataInsightDetails', 'CreateMacsManagedCloudExadataVmclusterDetails', 'CreateMacsManagedCloudHostInsightDetails', 'CreateMacsManagedExternalHostInsightDetails', 'CreateMdsMySqlDatabaseInsightDetails', 'CreateNewsReportDetails', 'CreateOperationsInsightsPrivateEndpointDetails', 'CreateOperationsInsightsWarehouseDetails', 'CreateOperationsInsightsWarehouseUserDetails', 'CreateOpsiConfigurationDetails', 'CreateOpsiUxConfigurationDetails', 'CreatePeComanagedDatabaseInsightDetails', 'CreatePeComanagedExadataInsightDetails', 'CreatePeComanagedExadataVmclusterDetails', 'CreatePlanCustomItemDetails', 'CredentialByIam', 'CredentialByNamedCredentials', 'CredentialByVault', 'CredentialDetails', 'CredentialsBySource', 'DBConnectionStatus', 'DBExternalInstance', 'DBExternalProperties', 'DBOSConfigInstance', 'DBParameters', 'DataObjectBindParameter', 'DataObjectColumnMetadata', 'DataObjectColumnUnit', 'DataObjectCoreColumnUnit', 'DataObjectCustomColumnUnit', 'DataObjectDataSizeColumnUnit', 'DataObjectFrequencyColumnUnit', 'DataObjectOtherStandardColumnUnit', 'DataObjectPowerColumnUnit', 'DataObjectQuery', 'DataObjectQueryTimeFilters', 'DataObjectRateColumnUnit', 'DataObjectStandardQuery', 'DataObjectTemperatureColumnUnit', 'DataObjectTemplatizedQuery', 'DataObjectTimeColumnUnit', 'DatabaseConfigurationCollection', 'DatabaseConfigurationMetricGroup', 'DatabaseConfigurationSummary', 'DatabaseDetails', 'DatabaseInsight', 'DatabaseInsightSummary', 'DatabaseInsights', 'DatabaseInsightsCollection', 'DatabaseInsightsDataObject', 'DatabaseInsightsDataObjectSummary', 'DatabaseParameterTypeDetails', 'DiskGroupDetails', 'DiskStatistics', 'DownloadOperationsInsightsWarehouseWalletDetails', 'EmManagedExternalDatabaseConfigurationSummary', 'EmManagedExternalDatabaseInsight', 'EmManagedExternalDatabaseInsightSummary', 'EmManagedExternalExadataInsight', 'EmManagedExternalExadataInsightSummary', 'EmManagedExternalHostConfigurationSummary', 'EmManagedExternalHostInsight', 'EmManagedExternalHostInsightSummary', 'EnableAutonomousDatabaseInsightAdvancedFeaturesDetails', 'EnableAutonomousDatabaseInsightDetails', 'EnableDatabaseInsightDetails', 'EnableEmManagedExternalDatabaseInsightDetails', 'EnableEmManagedExternalExadataInsightDetails', 'EnableEmManagedExternalHostInsightDetails', 'EnableExadataInsightDetails', 'EnableExternalMysqlDatabaseInsightDetails', 'EnableHostInsightDetails', 'EnableMacsManagedAutonomousDatabaseInsightDetails', 'EnableMacsManagedCloudDatabaseInsightDetails', 'EnableMacsManagedCloudExadataInsightDetails', 'EnableMacsManagedCloudHostInsightDetails', 'EnableMacsManagedExternalHostInsightDetails', 'EnableMdsMySqlDatabaseInsightDetails', 'EnablePeComanagedDatabaseInsightDetails', 'EnablePeComanagedExadataInsightDetails', 'EnablePlanExadataInsightDetails', 'EnterpriseManagerBridge', 'EnterpriseManagerBridgeCollection', 'EnterpriseManagerBridgeSummary', 'EnterpriseManagerBridges', 'ExadataAsmEntity', 'ExadataCellConfig', 'ExadataConfigurationCollection', 'ExadataConfigurationSummary', 'ExadataDatabaseMachineConfigurationSummary', 'ExadataDatabaseStatisticsSummary', 'ExadataDetails', 'ExadataDiskgroupStatisticsSummary', 'ExadataExaccConfigurationSummary', 'ExadataExacsConfigurationSummary', 'ExadataHostStatisticsSummary', 'ExadataInsight', 'ExadataInsightResourceCapacityTrendAggregation', 'ExadataInsightResourceCapacityTrendSummary', 'ExadataInsightResourceForecastTrendSummary', 'ExadataInsightResourceInsightUtilizationItem', 'ExadataInsightResourceStatistics', 'ExadataInsightResourceStatisticsAggregation', 'ExadataInsightSummary', 'ExadataInsightSummaryCollection', 'ExadataInsights', 'ExadataInsightsDataObject', 'ExadataInsightsDataObjectSummary', 'ExadataMemberCollection', 'ExadataMemberSummary', 'ExadataStorageServerStatisticsSummary', 'ExternalMysqlDatabaseConfigurationSummary', 'ExternalMysqlDatabaseInsight', 'ExternalMysqlDatabaseInsightSummary', 'HistoricalDataItem', 'HostAllocation', 'HostConfigurationCollection', 'HostConfigurationMetricGroup', 'HostConfigurationSummary', 'HostContainers', 'HostCpuHardwareConfiguration', 'HostCpuRecommendations', 'HostCpuStatistics', 'HostCpuUsage', 'HostDetails', 'HostEntities', 'HostFilesystemConfiguration', 'HostFilesystemUsage', 'HostGpuConfiguration', 'HostGpuProcesses', 'HostGpuUsage', 'HostHardwareConfiguration', 'HostImportableAgentEntitySummary', 'HostInsight', 'HostInsightHostRecommendations', 'HostInsightResourceStatisticsAggregation', 'HostInsightSummary', 'HostInsightSummaryCollection', 'HostInsights', 'HostInsightsDataObject', 'HostInsightsDataObjectSummary', 'HostInstanceMap', 'HostIoStatistics', 'HostIoUsage', 'HostMemoryConfiguration', 'HostMemoryRecommendations', 'HostMemoryStatistics', 'HostMemoryUsage', 'HostNetworkActivitySummary', 'HostNetworkConfiguration', 'HostNetworkRecommendations', 'HostNetworkStatistics', 'HostPerformanceMetricGroup', 'HostProduct', 'HostResourceAllocation', 'HostResourceCapacityTrendAggregation', 'HostResourceStatistics', 'HostStorageRecommendations', 'HostStorageStatistics', 'HostTopProcesses', 'HostedEntityCollection', 'HostedEntitySummary', 'ImportableAgentEntitySummary', 'ImportableAgentEntitySummaryCollection', 'ImportableComputeEntitySummary', 'ImportableComputeEntitySummaryCollection', 'ImportableEnterpriseManagerEntity', 'ImportableEnterpriseManagerEntityCollection', 'IndividualOpsiDataObjectDetailsInQuery', 'IngestAddmReportsDetails', 'IngestAddmReportsResponseDetails', 'IngestDatabaseConfigurationDetails', 'IngestDatabaseConfigurationResponseDetails', 'IngestHostConfigurationDetails', 'IngestHostConfigurationResponseDetails', 'IngestHostMetricsDetails', 'IngestHostMetricsResponseDetails', 'IngestMySqlSqlStatsDetails', 'IngestMySqlSqlStatsResponseDetails', 'IngestMySqlSqlTextDetails', 'IngestMySqlSqlTextResponseDetails', 'IngestSqlBucketDetails', 'IngestSqlBucketResponseDetails', 'IngestSqlPlanLinesDetails', 'IngestSqlPlanLinesResponseDetails', 'IngestSqlStatsDetails', 'IngestSqlStatsResponseDetails', 'IngestSqlTextDetails', 'IngestSqlTextResponseDetails', 'InstanceMetrics', 'IoUsageTrend', 'IoUsageTrendAggregation', 'ListObjects', 'MacsManagedAutonomousDatabaseConfigurationSummary', 'MacsManagedAutonomousDatabaseInsight', 'MacsManagedAutonomousDatabaseInsightSummary', 'MacsManagedCloudDatabaseConfigurationSummary', 'MacsManagedCloudDatabaseHostInsight', 'MacsManagedCloudDatabaseHostInsightSummary', 'MacsManagedCloudDatabaseInsight', 'MacsManagedCloudDatabaseInsightSummary', 'MacsManagedCloudDbHostConfigurationSummary', 'MacsManagedCloudExadataInsight', 'MacsManagedCloudExadataInsightSummary', 'MacsManagedCloudHostConfigurationSummary', 'MacsManagedCloudHostInsight', 'MacsManagedCloudHostInsightSummary', 'MacsManagedExternalDatabaseConfigurationSummary', 'MacsManagedExternalDatabaseInsight', 'MacsManagedExternalDatabaseInsightSummary', 'MacsManagedExternalHostConfigurationSummary', 'MacsManagedExternalHostInsight', 'MacsManagedExternalHostInsightSummary', 'MdsMySqlDatabaseInsight', 'MdsMySqlDatabaseInsightSummary', 'MdsMysqlDatabaseConfigurationSummary', 'MySqlSqlStats', 'MySqlSqlText', 'NetworkUsageTrend', 'NetworkUsageTrendAggregation', 'NewsContentTypes', 'NewsReport', 'NewsReportCollection', 'NewsReportSummary', 'NewsReports', 'ObjectSummary', 'OperationsInsightsPrivateEndpoint', 'OperationsInsightsPrivateEndpointCollection', 'OperationsInsightsPrivateEndpointSummary', 'OperationsInsightsWarehouse', 'OperationsInsightsWarehouseSummary', 'OperationsInsightsWarehouseSummaryCollection', 'OperationsInsightsWarehouseUser', 'OperationsInsightsWarehouseUserSummary', 'OperationsInsightsWarehouseUserSummaryCollection', 'OperationsInsightsWarehouseUsers', 'OperationsInsightsWarehouses', 'OpsiConfiguration', 'OpsiConfigurationBasicConfigurationItemSummary', 'OpsiConfigurationConfigurationItemSummary', 'OpsiConfigurationSummary', 'OpsiConfigurations', 'OpsiConfigurationsCollection', 'OpsiDataObject', 'OpsiDataObjectDetailsInQuery', 'OpsiDataObjectQueryParam', 'OpsiDataObjectSummary', 'OpsiDataObjectSupportedQueryParam', 'OpsiDataObjectTypeOpsiDataObjectDetailsInQuery', 'OpsiDataObjects', 'OpsiDataObjectsCollection', 'OpsiDataStores', 'OpsiUxConfiguration', 'OpsiUxConfigurationSummary', 'OpsiWarehouseDataObjects', 'PeComanagedDatabaseConnectionDetails', 'PeComanagedDatabaseHostDetails', 'PeComanagedDatabaseInsight', 'PeComanagedDatabaseInsightSummary', 'PeComanagedExadataInsight', 'PeComanagedExadataInsightSummary', 'PeComanagedHostConfigurationSummary', 'PeComanagedHostInsight', 'PeComanagedHostInsightSummary', 'PeComanagedManagedExternalDatabaseConfigurationSummary', 'ProjectedDataItem', 'QueryDataObjectJsonResultSetRowsCollection', 'QueryDataObjectResultSetColumnMetadata', 'QueryDataObjectResultSetRowsCollection', 'QueryOpsiDataObjectDataDetails', 'QueryWarehouseDataObjectDataDetails', 'RelatedObjectTypeDetails', 'ReportGroupingDetails', 'ReportPropertyDetails', 'ResourceCapacityTrendAggregation', 'ResourceFilters', 'ResourceInsightCurrentUtilization', 'ResourceInsightProjectedUtilization', 'ResourceInsightProjectedUtilizationItem', 'ResourceStatistics', 'ResourceStatisticsAggregation', 'ResourceUsageSummary', 'ResourceUsageTrendAggregation', 'SchemaObjectTypeDetails', 'SqlBucket', 'SqlInsightAggregation', 'SqlInsightAggregationCollection', 'SqlInsightThresholds', 'SqlInventory', 'SqlPlanCollection', 'SqlPlanInsightAggregation', 'SqlPlanInsightAggregationCollection', 'SqlPlanInsights', 'SqlPlanLine', 'SqlPlanSummary', 'SqlResponseTimeDistributionAggregation', 'SqlResponseTimeDistributionAggregationCollection', 'SqlSearchCollection', 'SqlSearchSummary', 'SqlStatisticAggregation', 'SqlStatisticAggregationCollection', 'SqlStatistics', 'SqlStatisticsTimeSeries', 'SqlStatisticsTimeSeriesAggregation', 'SqlStatisticsTimeSeriesAggregationCollection', 'SqlStatisticsTimeSeriesByPlanAggregation', 'SqlStatisticsTimeSeriesByPlanAggregationCollection', 'SqlStats', 'SqlText', 'SqlTextCollection', 'SqlTextSummary', 'SqlTypeDetails', 'StorageServerDetails', 'StorageUsageTrend', 'StorageUsageTrendAggregation', 'SummarizeAwrSourcesSummariesCollection', 'SummarizeDatabaseInsightResourceCapacityTrendAggregationCollection', 'SummarizeDatabaseInsightResourceForecastTrendAggregation', 'SummarizeDatabaseInsightResourceStatisticsAggregationCollection', 'SummarizeDatabaseInsightResourceUsageAggregation', 'SummarizeDatabaseInsightResourceUsageTrendAggregationCollection', 'SummarizeDatabaseInsightResourceUtilizationInsightAggregation', 'SummarizeDatabaseInsightTablespaceUsageTrendAggregationCollection', 'SummarizeExadataInsightResourceCapacityTrendAggregation', 'SummarizeExadataInsightResourceCapacityTrendCollection', 'SummarizeExadataInsightResourceForecastTrendAggregation', 'SummarizeExadataInsightResourceForecastTrendCollection', 'SummarizeExadataInsightResourceStatisticsAggregationCollection', 'SummarizeExadataInsightResourceUsageAggregation', 'SummarizeExadataInsightResourceUsageCollection', 'SummarizeExadataInsightResourceUtilizationInsightAggregation', 'SummarizeHostInsightHostRecommendationAggregation', 'SummarizeHostInsightIoUsageTrendAggregationCollection', 'SummarizeHostInsightNetworkUsageTrendAggregationCollection', 'SummarizeHostInsightResourceCapacityTrendAggregationCollection', 'SummarizeHostInsightResourceForecastTrendAggregation', 'SummarizeHostInsightResourceStatisticsAggregationCollection', 'SummarizeHostInsightResourceUsageAggregation', 'SummarizeHostInsightResourceUsageTrendAggregationCollection', 'SummarizeHostInsightResourceUtilizationInsightAggregation', 'SummarizeHostInsightStorageUsageTrendAggregationCollection', 'SummarizeHostInsightsDiskStatisticsCollection', 'SummarizeHostInsightsTopProcessesUsageCollection', 'SummarizeHostInsightsTopProcessesUsageTrendCollection', 'SummarizeOperationsInsightsWarehouseResourceUsageAggregation', 'SummaryStatistics', 'SynchronizeAutonomousDatabaseToExadataDetails', 'TablespaceUsageTrend', 'TablespaceUsageTrendAggregation', 'TestMacsManagedAutonomousDatabaseInsightConnectionDetails', 'TestMacsManagedCloudDatabaseInsightConnectionDetails', 'TopProcessesUsage', 'TopProcessesUsageTrend', 'TopProcessesUsageTrendAggregation', 'UpdateAutonomousDatabaseInsightDetails', 'UpdateAwrHubDetails', 'UpdateAwrHubSourceDetails', 'UpdateBasicConfigurationItemDetails', 'UpdateChargebackPlanDetails', 'UpdateChargebackPlanReportDetails', 'UpdateConfigurationItemDetails', 'UpdateDatabaseInsightDetails', 'UpdateEmManagedExternalDatabaseInsightDetails', 'UpdateEmManagedExternalExadataInsightDetails', 'UpdateEmManagedExternalHostInsightDetails', 'UpdateEnterpriseManagerBridgeDetails', 'UpdateExadataInsightDetails', 'UpdateExternalMysqlDatabaseInsightDetails', 'UpdateHostInsightDetails', 'UpdateMacsManagedAutonomousDatabaseInsightDetails', 'UpdateMacsManagedCloudDatabaseHostInsightDetails', 'UpdateMacsManagedCloudDatabaseInsightDetails', 'UpdateMacsManagedCloudExadataInsightDetails', 'UpdateMacsManagedCloudHostInsightDetails', 'UpdateMacsManagedExternalDatabaseInsightDetails', 'UpdateMacsManagedExternalHostInsightDetails', 'UpdateMdsMySqlDatabaseInsight', 'UpdateNewsReportDetails', 'UpdateOperationsInsightsPrivateEndpointDetails', 'UpdateOperationsInsightsWarehouseDetails', 'UpdateOperationsInsightsWarehouseUserDetails', 'UpdateOpsiConfigurationDetails', 'UpdateOpsiUxConfigurationDetails', 'UpdatePeComanagedDatabaseInsightDetails', 'UpdatePeComanagedExadataInsightDetails', 'UpdatePeComanagedHostInsightDetails', 'UxConfigurationItemsCollection', 'VmClusterSummary', 'WarehouseDataObjectCollection', 'WarehouseDataObjectDetails', 'WarehouseDataObjectSummary', 'WarehouseTableDataObjectDetails', 'WarehouseViewDataObjectDetails', 'WorkRequest', 'WorkRequestCollection', 'WorkRequestError', 'WorkRequestErrorCollection', 'WorkRequestLogEntry', 'WorkRequestLogEntryCollection', 'WorkRequestResource', 'WorkRequests'] + +for _model_name in OPSI_MODEL_NAMES: + globals()[_model_name].model_rebuild() + +BOOTSTRAP_MODEL_NAMES = ["Compartment", "CompartmentCollection"] + +__all__ = ["OpsiBaseModel", "OpsiRequestModel", *BOOTSTRAP_MODEL_NAMES, *OPSI_MODEL_NAMES] diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/runtime.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/runtime.py new file mode 100644 index 00000000..11724b2e --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/runtime.py @@ -0,0 +1,122 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. +""" + +from __future__ import annotations + +from functools import lru_cache +from logging import Logger +from typing import Any + +import oci +from pydantic import BaseModel +from pydantic.fields import FieldInfo +from pydantic_core import PydanticUndefined + +from oracle.oci_oracle_db_observability.v1.auth import build_client +from oracle.oci_oracle_db_observability.v1.conversion import ( + polymorphic_request_to_sdk_model, + pydantic_to_sdk_model, +) +from oracle.oci_oracle_db_observability.v1.pagination import call_with_auto_pagination +from oracle.oci_oracle_db_observability.v1.response_mapping import map_response_data + +from . import __project__, __version__ +from .metadata import REQUEST_MODEL_TYPES + +logger = Logger(__name__, level="INFO") + + +@lru_cache(maxsize=1) +def get_opsi_client() -> oci.opsi.OperationsInsightsClient: + """Create the OCI Operations Insights SDK client.""" + + return build_client( + oci.opsi.OperationsInsightsClient, + project=__project__, + version=__version__, + logger=logger, + ) + + +@lru_cache(maxsize=1) +def get_identity_client() -> oci.identity.IdentityClient: + """Create the OCI Identity SDK client.""" + + return build_client( + oci.identity.IdentityClient, + project=__project__, + version=__version__, + logger=logger, + ) + + +def normalize_tool_value(value: Any) -> Any: + """Resolve FastMCP/Pydantic Field defaults when a tool is called directly.""" + + if isinstance(value, FieldInfo): + default = value.get_default(call_default_factory=True) + return None if default is PydanticUndefined else default + return value + + +def _coerce_argument(method_name: str, key: str, value: Any) -> Any: + value = normalize_tool_value(value) + if value is None: + return None + request_model_name = REQUEST_MODEL_TYPES.get((method_name, key)) + if request_model_name is not None: + sdk_type = getattr(oci.opsi.models, request_model_name) + return polymorphic_request_to_sdk_model(value, sdk_type) + if isinstance(value, BaseModel): + sdk_type = getattr(oci.opsi.models, value.__class__.__name__, None) + if sdk_type is not None: + return pydantic_to_sdk_model(value, sdk_type) + return value.model_dump(by_alias=True, exclude_none=True) + if isinstance(value, list): + return [_coerce_argument(method_name, key, item) for item in value] + if isinstance(value, dict): + return { + item_key: _coerce_argument(method_name, item_key, item) + for item_key, item in value.items() + if item is not None + } + return value + + +def invoke_opsi(method_name: str, **kwargs: Any) -> Any: + """Invoke an OPSI SDK method and map the SDK response for MCP.""" + + client = get_opsi_client() + method = getattr(client, method_name) + sdk_kwargs = {} + for key, value in kwargs.items(): + coerced_value = _coerce_argument(method_name, key, value) + if coerced_value is not None: + sdk_kwargs[key] = coerced_value + try: + response = call_with_auto_pagination(method, sdk_kwargs) + return map_response_data(getattr(response, "data", None)) + except Exception as exc: + logger.error("Error in OPSI tool %s: %s", method_name, exc) + raise + + +def invoke_identity(method_name: str, **kwargs: Any) -> Any: + """Invoke an OCI Identity SDK method and map the SDK response for MCP.""" + + client = get_identity_client() + method = getattr(client, method_name) + sdk_kwargs = {} + for key, value in kwargs.items(): + coerced_value = _coerce_argument(method_name, key, value) + if coerced_value is not None: + sdk_kwargs[key] = coerced_value + try: + response = call_with_auto_pagination(method, sdk_kwargs) + return map_response_data(getattr(response, "data", None)) + except Exception as exc: + logger.error("Error in Identity tool %s: %s", method_name, exc) + raise diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/server.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/server.py new file mode 100644 index 00000000..ac7a1695 --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/server.py @@ -0,0 +1,57 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. +""" + +from __future__ import annotations + +import os + +from fastmcp.server.auth.providers.oci import OCIProvider +from fastmcp.utilities.auth import parse_scopes + +from . import __project__ +from . import tools as _tools # noqa: F401 +from .mcp import mcp + + +def _default_required_scopes() -> list[str]: + server_name = __project__.removeprefix("oracle.oci-").removesuffix("-mcp-server") + return f"openid profile email oci_mcp.{server_name.replace('-', '_')}.invoke".split() + + +def main() -> None: + """Run the OPSI MCP server with stdio or HTTP transport.""" + + host = os.getenv("ORACLE_MCP_HOST") + port = os.getenv("ORACLE_MCP_PORT") + + if not (host and port): + mcp.run() + return + + domain = os.getenv("IDCS_DOMAIN") + client_id = os.getenv("IDCS_CLIENT_ID") + client_secret = os.getenv("IDCS_CLIENT_SECRET") + base_url = os.getenv("ORACLE_MCP_BASE_URL", "") + audience = os.getenv("IDCS_AUDIENCE") + if not all((domain, client_id, client_secret, audience, base_url)): + raise RuntimeError( + "HTTP transport requires IDCS authentication. " + "Set IDCS_DOMAIN, IDCS_CLIENT_ID, IDCS_CLIENT_SECRET, IDCS_AUDIENCE, " + "ORACLE_MCP_BASE_URL, ORACLE_MCP_HOST, and ORACLE_MCP_PORT." + ) + mcp.auth = OCIProvider( + config_url=f"https://{domain}/.well-known/openid-configuration", + client_id=client_id, + client_secret=client_secret, + audience=audience, + required_scopes=parse_scopes(os.getenv("IDCS_REQUIRED_SCOPES")) or _default_required_scopes(), + base_url=base_url, + ) + mcp.run(transport="http", host=host, port=int(port)) + + +if __name__ == "__main__": + main() diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/__init__.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/__init__.py new file mode 100644 index 00000000..b8f69b97 --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/__init__.py @@ -0,0 +1,5 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. +""" diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/test_auth_and_server.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/test_auth_and_server.py new file mode 100644 index 00000000..63e952b1 --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/test_auth_and_server.py @@ -0,0 +1,86 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. +""" + +from __future__ import annotations + +import asyncio +import logging +from types import SimpleNamespace + +from oracle.oci_oracle_db_observability.v1 import auth +from oracle.oci_oracle_db_observability.v1.oci_opsi_mcp_server import server, tools + +TEST_LOGGER = logging.getLogger(__name__) + + +def test_stdio_build_client_uses_security_token_config(monkeypatch, tmp_path) -> None: + token_file = tmp_path / "security-token" + token_file.write_text("SECURITY_TOKEN", encoding="utf-8") + monkeypatch.delenv("ORACLE_MCP_HOST", raising=False) + monkeypatch.delenv("ORACLE_MCP_PORT", raising=False) + monkeypatch.setattr( + auth.oci.config, + "from_file", + lambda file_location, profile_name: { + "region": "us-phoenix-1", + "tenancy": "ocid1.tenancy.oc1..example", + "key_file": "/keys/oci.pem", + "security_token_file": str(token_file), + }, + ) + monkeypatch.setattr(auth.oci.signer, "load_private_key_from_file", lambda key_file: "private-key") + monkeypatch.setattr( + auth.oci.auth.signers, + "SecurityTokenSigner", + lambda token, private_key: f"{token}:{private_key}", + ) + + client = auth.build_client( + lambda config, **kwargs: SimpleNamespace(config=config, kwargs=kwargs), + project="oracle.oci-opsi-mcp-server", + version="1.0.0", + logger=TEST_LOGGER, + ) + + assert client.config["region"] == "us-phoenix-1" + assert client.config["tenancy"] == "ocid1.tenancy.oc1..example" + assert client.config["additional_user_agent"] == "oci-opsi/1.0.0" + assert client.kwargs["signer"] == "SECURITY_TOKEN:private-key" + + +def test_http_build_client_uses_token_exchange(monkeypatch) -> None: + monkeypatch.setenv("ORACLE_MCP_HOST", "127.0.0.1") + monkeypatch.setenv("ORACLE_MCP_PORT", "8888") + monkeypatch.setenv("OCI_REGION", "us-ashburn-1") + monkeypatch.setenv("IDCS_DOMAIN", "idcs.example.com") + monkeypatch.setenv("IDCS_CLIENT_ID", "client-id") + monkeypatch.setenv("IDCS_CLIENT_SECRET", "client-secret") + monkeypatch.setattr(auth, "get_access_token", lambda: SimpleNamespace(token="ACCESS_TOKEN")) + monkeypatch.setattr( + auth.oci.auth.signers, + "TokenExchangeSigner", + lambda token, domain, client_id, client_secret, region: "token-exchange-signer", + ) + + client = auth.build_client( + lambda config, **kwargs: SimpleNamespace(config=config, kwargs=kwargs), + project="oracle.oci-opsi-mcp-server", + version="1.0.0", + logger=TEST_LOGGER, + ) + + assert client.config["region"] == "us-ashburn-1" + assert client.config["additional_user_agent"] == "oci-opsi/1.0.0" + assert client.kwargs["signer"] == "token-exchange-signer" + + +def test_server_registers_expected_tools() -> None: + registered = asyncio.run(server.mcp.list_tools(run_middleware=False)) + + assert {tool.name for tool in registered} == tools.TOOL_NAMES + + for tool in registered: + assert tool.annotations == tools.TOOL_ANNOTATIONS[tool.name] diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/test_bootstrap.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/test_bootstrap.py new file mode 100644 index 00000000..d63c04a1 --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/test_bootstrap.py @@ -0,0 +1,130 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. +""" + +from __future__ import annotations + +from typing import Any + +import oci + +from oracle.oci_oracle_db_observability.v1.oci_opsi_mcp_server import runtime, tools + + +class _Response: + def __init__( + self, + data: Any, + next_page: str | None = None, + headers: dict[str, str] | None = None, + ) -> None: + self.data = data + self.next_page = next_page + self.headers = headers or {} + + +def _oci_config(tenancy_id: str | None = "ocid1.tenancy.oc1..example") -> dict[str, str]: + config = {"region": "us-phoenix-1"} + if tenancy_id is not None: + config["tenancy"] = tenancy_id + return config + + +def _compartment(compartment_id: str = "ocid1.compartment.oc1..example") -> oci.identity.models.Compartment: + return oci.identity.models.Compartment( + id=compartment_id, + compartment_id="ocid1.tenancy.oc1..example", + name="Database", + description="Database compartment", + lifecycle_state="ACTIVE", + ) + + +def test_get_compartment_calls_identity_client(monkeypatch) -> None: + captured: dict[str, Any] = {} + + class FakeIdentityClient: + def get_compartment(self, **kwargs): + captured.update(kwargs) + return _Response(_compartment()) + + monkeypatch.setattr(runtime, "get_identity_client", lambda: FakeIdentityClient()) + + result = tools.get_compartment("ocid1.compartment.oc1..example") + + assert captured["compartment_id"] == "ocid1.compartment.oc1..example" + assert result["id"] == "ocid1.compartment.oc1..example" + assert result["name"] == "Database" + + +def test_list_compartments_defaults_to_tenancy_and_maps_collection(monkeypatch) -> None: + captured: dict[str, Any] = {} + monkeypatch.setattr(tools, "get_oci_config", lambda project, version: _oci_config()) + + class FakeIdentityClient: + def list_compartments(self, **kwargs): + captured.update(kwargs) + return _Response([_compartment()]) + + monkeypatch.setattr(runtime, "get_identity_client", lambda: FakeIdentityClient()) + + result = tools.list_compartments(name="Database") + + assert captured["compartment_id"] == "ocid1.tenancy.oc1..example" + assert captured["compartment_id_in_subtree"] is True + assert captured["access_level"] == "ACCESSIBLE" + assert captured["name"] == "Database" + assert captured["limit"] == 50 + assert result["count"] == 1 + assert result["items"][0]["id"] == "ocid1.compartment.oc1..example" + + +def test_list_compartments_auto_paginates(monkeypatch) -> None: + calls: list[dict[str, Any]] = [] + monkeypatch.setattr(tools, "get_oci_config", lambda project, version: _oci_config()) + + class FakeIdentityClient: + def list_compartments(self, page=None, limit=None, **kwargs): + calls.append({"page": page, "limit": limit, **kwargs}) + if page is None: + return _Response( + [_compartment("ocid1.compartment.oc1..one")], + next_page="page-2", + ) + return _Response([_compartment("ocid1.compartment.oc1..two")]) + + monkeypatch.setattr(runtime, "get_identity_client", lambda: FakeIdentityClient()) + + result = tools.list_compartments(limit=10) + + assert result["count"] == 2 + assert [item["id"] for item in result["items"]] == [ + "ocid1.compartment.oc1..one", + "ocid1.compartment.oc1..two", + ] + assert calls[0]["limit"] == 10 + assert calls[1]["page"] == "page-2" + assert calls[1]["limit"] == 9 + + +def test_list_compartments_allows_explicit_root_without_tenancy_config(monkeypatch) -> None: + captured: dict[str, Any] = {} + monkeypatch.setattr(tools, "get_oci_config", lambda project, version: _oci_config(tenancy_id=None)) + + class FakeIdentityClient: + def list_compartments(self, **kwargs): + captured.update(kwargs) + return _Response([_compartment()]) + + monkeypatch.setattr(runtime, "get_identity_client", lambda: FakeIdentityClient()) + + result = tools.list_compartments( + root_compartment_id="ocid1.compartment.oc1..example", + include_subtree=True, + ) + + assert captured["compartment_id"] == "ocid1.compartment.oc1..example" + assert captured["compartment_id_in_subtree"] is True + assert result["count"] == 1 diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/test_metadata_and_schemas.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/test_metadata_and_schemas.py new file mode 100644 index 00000000..002fddfe --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/test_metadata_and_schemas.py @@ -0,0 +1,147 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. +""" + +from __future__ import annotations + +import inspect +from typing import Any, get_args, get_origin, get_type_hints + +import pytest +from pydantic import ValidationError + +from oracle.oci_oracle_db_observability.v1.oci_opsi_mcp_server import metadata, models, tools + + +REMOVED_TOOL_NAMES = { + "add_exadata_insight_members", + "download_operations_insights_warehouse_wallet", + "head_awr_hub_object", + "ingest_addm_reports", + "ingest_database_configuration", + "ingest_host_configuration", + "ingest_host_metrics", + "ingest_my_sql_sql_stats", + "ingest_my_sql_sql_text", + "ingest_sql_bucket", + "ingest_sql_plan_lines", + "ingest_sql_stats", + "ingest_sql_text", + "put_awr_hub_object", + "rotate_operations_insights_warehouse_wallet", + "synchronize_autonomous_database_to_exadata", + "test_macs_managed_autonomous_database_insight_connection", + "test_macs_managed_cloud_database_insight_connection", +} + + +def test_expected_tool_metadata_exposes_runtime_tool_sets() -> None: + assert len(metadata.INCLUDED_METHOD_NAMES) == 158 + assert len(metadata.REQUEST_MODEL_TYPES) == 47 + assert len(tools.TOOL_NAMES) == 160 + assert tools.TOOL_NAMES == frozenset(metadata.INCLUDED_METHOD_NAMES) | tools.BOOTSTRAP_TOOL_NAMES + assert tools.MUTABLE_TOOL_NAMES == frozenset(metadata.MUTABLE_METHOD_NAMES) + assert set(metadata.MUTABLE_METHOD_NAMES).issubset(metadata.INCLUDED_METHOD_NAMES) + assert REMOVED_TOOL_NAMES.isdisjoint(metadata.INCLUDED_METHOD_NAMES) + assert REMOVED_TOOL_NAMES.isdisjoint(tools.TOOL_NAMES) + assert REMOVED_TOOL_NAMES.isdisjoint(tools.TOOL_DESCRIPTIONS) + assert all(not name.startswith("delete_") for name in metadata.INCLUDED_METHOD_NAMES) + assert all(not name.startswith("summarize_sql_") for name in metadata.INCLUDED_METHOD_NAMES) + + +def test_tool_descriptions_do_not_duplicate_mutability_metadata() -> None: + for description in tools.TOOL_DESCRIPTIONS.values(): + assert "WARNING:" not in description + + +def test_tool_annotations_match_mutability() -> None: + assert set(tools.TOOL_ANNOTATIONS) == tools.TOOL_NAMES + + for name, annotations in tools.TOOL_ANNOTATIONS.items(): + is_mutable = name in tools.MUTABLE_TOOL_NAMES + assert annotations.title == name.replace("_", " ").title() + assert annotations.readOnlyHint is not is_mutable + assert annotations.destructiveHint is is_mutable + assert annotations.idempotentHint is not is_mutable + assert annotations.openWorldHint is True + + +def test_schema_fields_include_descriptions_aliases_and_literals() -> None: + field = models.CreateDatabaseInsightDetails.model_fields["entity_source"] + + assert field.is_required() + assert field.alias == "entitySource" + assert "Source of the database entity" in (field.description or "") + assert "EM_MANAGED_EXTERNAL_DATABASE" in get_args(field.annotation) + + +def test_schema_fields_include_documented_constraints() -> None: + parameter = inspect.signature(tools.list_database_insights).parameters["limit"] + constraints = {item.__class__.__name__: item for item in parameter.default.metadata} + + assert parameter.default.description.startswith("For list pagination") + assert constraints["Ge"].ge == 1 + assert constraints["Le"].le == 1000 + + +def test_request_body_parameters_accept_dict_or_generated_model() -> None: + annotation = get_type_hints( + tools.create_database_insight, + vars(tools), + vars(tools), + )["create_database_insight_details"] + dict_arg, model_arg = get_args(annotation) + + assert get_origin(dict_arg) is dict + assert get_args(dict_arg) == (str, Any) + assert model_arg is models.CreateDatabaseInsightDetails + + +def test_tool_response_annotations_are_generic() -> None: + for name in tools.TOOL_NAMES: + annotation = get_type_hints(getattr(tools, name), vars(tools), vars(tools))["return"] + assert annotation is Any + + +def test_tools_do_not_expose_skipped_sdk_transport_parameters() -> None: + skipped = { + "allow_control_chars", + "buffer_limit", + "defined_tag_equals", + "defined_tag_exists", + "enable_strict_url_encoding", + "freeform_tag_equals", + "freeform_tag_exists", + "if_match", + "opc_request_id", + "opc_retry_token", + "page", + } + + for name in metadata.INCLUDED_METHOD_NAMES: + assert skipped.isdisjoint(inspect.signature(getattr(tools, name)).parameters) + + +def test_request_models_do_not_expose_tag_mutation_fields() -> None: + request_tag_fields = {"defined_tags", "freeform_tags", "system_tags", "tag_filters", "match_rule"} + + assert request_tag_fields.isdisjoint(models.CreateDatabaseInsightDetails.model_fields) + assert request_tag_fields.isdisjoint(models.CreateNewsReportDetails.model_fields) + assert "defined_tags" in models.DatabaseInsight.model_fields + + with pytest.raises(ValidationError): + models.CreateDatabaseInsightDetails( + entity_source="EM_MANAGED_EXTERNAL_DATABASE", + compartment_id="ocid1.compartment.oc1..example", + freeform_tags={"owner": "opsi"}, + ) + + +def test_leading_underscore_sdk_fields_get_public_pydantic_names() -> None: + fields = models.IndividualOpsiDataObjectDetailsInQuery.model_fields + + assert "query_params" in fields + assert "_query_params" not in fields + assert fields["query_params"].alias == "queryParams" diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/test_response_mapping.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/test_response_mapping.py new file mode 100644 index 00000000..9368e4c6 --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/test_response_mapping.py @@ -0,0 +1,57 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. +""" + +from __future__ import annotations + +from datetime import UTC, datetime + +import oci + +from oracle.oci_oracle_db_observability.v1.response_mapping import map_response_data + + +def _database_insight(suffix: str) -> oci.opsi.models.DatabaseInsight: + return oci.opsi.models.DatabaseInsight( + entity_source="AUTONOMOUS_DATABASE", + id=f"ocid1.opsidatabaseinsight.oc1..{suffix}", + compartment_id="ocid1.compartment.oc1..example", + status="ENABLED", + freeform_tags={}, + defined_tags={}, + time_created=datetime(2026, 1, 1, tzinfo=UTC), + lifecycle_state="ACTIVE", + ) + + +def test_shared_mapper_preserves_none_and_scalars() -> None: + assert map_response_data(None) is None + assert map_response_data("plain report content") == "plain report content" + assert map_response_data(42) == 42 + assert map_response_data(False) is False + + +def test_shared_mapper_maps_sdk_model_to_plain_dict() -> None: + result = map_response_data(_database_insight("one")) + + assert isinstance(result, dict) + assert result["id"] == "ocid1.opsidatabaseinsight.oc1..one" + + +def test_shared_mapper_recursively_maps_lists() -> None: + result = map_response_data([_database_insight("one"), _database_insight("two")]) + + assert [item["id"] for item in result] == [ + "ocid1.opsidatabaseinsight.oc1..one", + "ocid1.opsidatabaseinsight.oc1..two", + ] + assert all(isinstance(item, dict) for item in result) + + +def test_shared_mapper_falls_back_to_plain_data() -> None: + assert map_response_data({"id": "example", "count": 1}) == { + "id": "example", + "count": 1, + } diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/test_runtime.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/test_runtime.py new file mode 100644 index 00000000..eb74e37d --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/test_runtime.py @@ -0,0 +1,435 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. +""" + +from __future__ import annotations + +from datetime import UTC, datetime +from typing import Any + +import oci +import pytest + +from oracle.oci_oracle_db_observability.v1.oci_opsi_mcp_server import models, runtime, tools + + +class _Response: + def __init__( + self, + data: Any, + next_page: str | None = None, + headers: dict[str, str] | None = None, + ) -> None: + self.data = data + self.next_page = next_page + self.headers = headers or {} + + +def _database_insight_summary(suffix: str) -> oci.opsi.models.DatabaseInsightSummary: + return oci.opsi.models.DatabaseInsightSummary( + id=f"ocid1.opsidatabaseinsight.oc1..{suffix}", + database_id=f"ocid1.database.oc1..{suffix}", + entity_source="AUTONOMOUS_DATABASE", + ) + + +def _database_insight_response() -> _Response: + return _Response( + oci.opsi.models.DatabaseInsight( + entity_source="AUTONOMOUS_DATABASE", + id="ocid1.opsidatabaseinsight.oc1..example", + compartment_id="ocid1.compartment.oc1..example", + status="ENABLED", + freeform_tags={}, + defined_tags={}, + time_created=datetime(2026, 1, 1, tzinfo=UTC), + lifecycle_state="ACTIVE", + ) + ) + + +def _pe_comanaged_host_insight() -> oci.opsi.models.PeComanagedHostInsight: + return oci.opsi.models.PeComanagedHostInsight( + entity_source="PE_COMANAGED_HOST", + id="ocid1.opsihostinsight.oc1..example", + compartment_id="ocid1.compartment.oc1..example", + host_name=None, + freeform_tags={}, + defined_tags={}, + status="ENABLED", + time_created=datetime(2026, 1, 1, tzinfo=UTC), + lifecycle_state="ACTIVE", + opsi_private_endpoint_id="ocid1.opsiprivateendpoint.oc1..example", + ) + + +def _pe_comanaged_host_insight_summary() -> oci.opsi.models.PeComanagedHostInsightSummary: + return oci.opsi.models.PeComanagedHostInsightSummary( + entity_source="PE_COMANAGED_HOST", + id="ocid1.opsihostinsight.oc1..example", + compartment_id="ocid1.compartment.oc1..example", + host_name=None, + opsi_private_endpoint_id="ocid1.opsiprivateendpoint.oc1..example", + ) + + +def test_create_tool_converts_pydantic_model_to_sdk_model(monkeypatch) -> None: + captured: dict[str, Any] = {} + + class FakeClient: + def create_database_insight(self, **kwargs): + captured.update(kwargs) + return _database_insight_response() + + monkeypatch.setattr(runtime, "get_opsi_client", lambda: FakeClient()) + + result = tools.create_database_insight( + create_database_insight_details=models.CreateDatabaseInsightDetails( + entity_source="EM_MANAGED_EXTERNAL_DATABASE", + compartment_id="ocid1.compartment.oc1..example", + ) + ) + + assert isinstance(captured["create_database_insight_details"], oci.opsi.models.CreateDatabaseInsightDetails) + assert captured["create_database_insight_details"].entity_source == "EM_MANAGED_EXTERNAL_DATABASE" + assert result["id"] == "ocid1.opsidatabaseinsight.oc1..example" + + +def test_create_tool_accepts_polymorphic_dict_request(monkeypatch) -> None: + captured: dict[str, Any] = {} + + class FakeClient: + def create_database_insight(self, **kwargs): + captured.update(kwargs) + return _database_insight_response() + + monkeypatch.setattr(runtime, "get_opsi_client", lambda: FakeClient()) + + tools.create_database_insight( + create_database_insight_details={ + "entity_source": "EM_MANAGED_EXTERNAL_DATABASE", + "compartment_id": "ocid1.compartment.oc1..example", + "enterprise_manager_identifier": "em1", + "enterprise_manager_bridge_id": "ocid1.opsienterprisemanagerbridge.oc1..example", + "enterprise_manager_entity_identifier": "entity1", + } + ) + + details = captured["create_database_insight_details"] + assert isinstance(details, oci.opsi.models.CreateEmManagedExternalDatabaseInsightDetails) + assert details.entity_source == "EM_MANAGED_EXTERNAL_DATABASE" + assert details.enterprise_manager_identifier == "em1" + assert details.enterprise_manager_bridge_id == "ocid1.opsienterprisemanagerbridge.oc1..example" + assert details.enterprise_manager_entity_identifier == "entity1" + + +def test_create_tool_accepts_polymorphic_dict_request_with_camel_case_keys(monkeypatch) -> None: + captured: dict[str, Any] = {} + + class FakeClient: + def create_database_insight(self, **kwargs): + captured.update(kwargs) + return _database_insight_response() + + monkeypatch.setattr(runtime, "get_opsi_client", lambda: FakeClient()) + + tools.create_database_insight( + create_database_insight_details={ + "entitySource": "EM_MANAGED_EXTERNAL_DATABASE", + "compartmentId": "ocid1.compartment.oc1..example", + "enterpriseManagerIdentifier": "em1", + "enterpriseManagerBridgeId": "ocid1.opsienterprisemanagerbridge.oc1..example", + "enterpriseManagerEntityIdentifier": "entity1", + } + ) + + details = captured["create_database_insight_details"] + assert isinstance(details, oci.opsi.models.CreateEmManagedExternalDatabaseInsightDetails) + assert details.compartment_id == "ocid1.compartment.oc1..example" + assert details.enterprise_manager_identifier == "em1" + + +def test_polymorphic_dict_request_rejects_unknown_fields_before_sdk_call(monkeypatch) -> None: + called = False + + class FakeClient: + def create_database_insight(self, **kwargs): + nonlocal called + called = True + return _database_insight_response() + + monkeypatch.setattr(runtime, "get_opsi_client", lambda: FakeClient()) + + with pytest.raises(ValueError, match="unsupported fields"): + tools.create_database_insight( + create_database_insight_details={ + "entity_source": "EM_MANAGED_EXTERNAL_DATABASE", + "compartment_id": "ocid1.compartment.oc1..example", + "enterprise_manager_identifier": "em1", + "enterprise_manager_bridge_id": "ocid1.opsienterprisemanagerbridge.oc1..example", + "enterprise_manager_entity_identifier": "entity1", + "not_a_real_field": "bad", + } + ) + + assert called is False + + +def test_polymorphic_dict_request_rejects_tag_fields_before_sdk_call(monkeypatch) -> None: + called = False + + class FakeClient: + def create_database_insight(self, **kwargs): + nonlocal called + called = True + return _database_insight_response() + + monkeypatch.setattr(runtime, "get_opsi_client", lambda: FakeClient()) + + with pytest.raises(ValueError, match="forbidden request tag mutation fields"): + tools.create_database_insight( + create_database_insight_details={ + "entitySource": "EM_MANAGED_EXTERNAL_DATABASE", + "compartmentId": "ocid1.compartment.oc1..example", + "enterpriseManagerIdentifier": "em1", + "enterpriseManagerBridgeId": "ocid1.opsienterprisemanagerbridge.oc1..example", + "enterpriseManagerEntityIdentifier": "entity1", + "freeformTags": {"owner": "opsi"}, + } + ) + + assert called is False + + +def test_get_host_insight_allows_null_host_name(monkeypatch) -> None: + class FakeClient: + def get_host_insight(self, **kwargs): + return _Response(_pe_comanaged_host_insight()) + + monkeypatch.setattr(runtime, "get_opsi_client", lambda: FakeClient()) + + result = tools.get_host_insight(host_insight_id="ocid1.opsihostinsight.oc1..example") + + assert result["host_name"] is None + assert result["id"] == "ocid1.opsihostinsight.oc1..example" + + +def test_list_host_insights_allows_null_host_name(monkeypatch) -> None: + class FakeClient: + def list_host_insights(self, **kwargs): + return _Response( + oci.opsi.models.HostInsightSummaryCollection( + items=[_pe_comanaged_host_insight_summary()] + ) + ) + + monkeypatch.setattr(runtime, "get_opsi_client", lambda: FakeClient()) + + result = tools.list_host_insights( + compartment_id="ocid1.compartment.oc1..example", + limit=10, + ) + + assert result["items"][0]["host_name"] is None + assert result["items"][0]["id"] == "ocid1.opsihostinsight.oc1..example" + + +def test_list_tool_auto_paginates_collection_with_next_page(monkeypatch) -> None: + calls: list[dict[str, Any]] = [] + + class FakeClient: + def list_database_insights(self, page=None, limit=None, **kwargs): + calls.append({"page": page, "limit": limit, **kwargs}) + if page is None: + return _Response( + oci.opsi.models.DatabaseInsightsCollection( + items=[_database_insight_summary("one")] + ), + next_page="page-2", + ) + return _Response( + oci.opsi.models.DatabaseInsightsCollection( + items=[_database_insight_summary("two")] + ) + ) + + monkeypatch.setattr(runtime, "get_opsi_client", lambda: FakeClient()) + + result = tools.list_database_insights( + compartment_id="ocid1.compartment.oc1..example", + limit=10, + ) + + assert [item["id"] for item in result["items"]] == [ + "ocid1.opsidatabaseinsight.oc1..one", + "ocid1.opsidatabaseinsight.oc1..two", + ] + assert calls[0]["page"] is None + assert calls[0]["limit"] == 10 + assert calls[1]["page"] == "page-2" + assert calls[1]["limit"] == 9 + + +def test_list_tool_uses_opc_next_page_header_fallback(monkeypatch) -> None: + calls: list[dict[str, Any]] = [] + + class FakeClient: + def list_database_insights(self, page=None, limit=None, **kwargs): + calls.append({"page": page, "limit": limit, **kwargs}) + if page is None: + return _Response( + oci.opsi.models.DatabaseInsightsCollection( + items=[_database_insight_summary("one")] + ), + headers={"opc-next-page": "page-2"}, + ) + return _Response( + oci.opsi.models.DatabaseInsightsCollection( + items=[_database_insight_summary("two")] + ) + ) + + monkeypatch.setattr(runtime, "get_opsi_client", lambda: FakeClient()) + + result = tools.list_database_insights(compartment_id="ocid1.compartment.oc1..example") + + assert [item["id"] for item in result["items"]] == [ + "ocid1.opsidatabaseinsight.oc1..one", + "ocid1.opsidatabaseinsight.oc1..two", + ] + assert calls[1]["page"] == "page-2" + + +def test_list_tool_limit_caps_total_items(monkeypatch) -> None: + calls: list[dict[str, Any]] = [] + + class FakeClient: + def list_database_insights(self, page=None, limit=None, **kwargs): + calls.append({"page": page, "limit": limit, **kwargs}) + if page is None: + return _Response( + oci.opsi.models.DatabaseInsightsCollection( + items=[ + _database_insight_summary("one"), + _database_insight_summary("two"), + ] + ), + next_page="page-2", + ) + return _Response( + oci.opsi.models.DatabaseInsightsCollection( + items=[ + _database_insight_summary("three"), + _database_insight_summary("four"), + ] + ) + ) + + monkeypatch.setattr(runtime, "get_opsi_client", lambda: FakeClient()) + + result = tools.list_database_insights( + compartment_id="ocid1.compartment.oc1..example", + limit=3, + ) + + assert [item["id"] for item in result["items"]] == [ + "ocid1.opsidatabaseinsight.oc1..one", + "ocid1.opsidatabaseinsight.oc1..two", + "ocid1.opsidatabaseinsight.oc1..three", + ] + assert calls[1]["limit"] == 1 + + +def test_non_paginated_get_operation_makes_one_sdk_call(monkeypatch) -> None: + calls: list[dict[str, Any]] = [] + + class FakeClient: + def get_database_insight(self, database_insight_id=None, **kwargs): + calls.append({"database_insight_id": database_insight_id, **kwargs}) + return _Response( + oci.opsi.models.DatabaseInsight( + entity_source="AUTONOMOUS_DATABASE", + id=database_insight_id, + compartment_id="ocid1.compartment.oc1..example", + status="ENABLED", + freeform_tags={}, + defined_tags={}, + time_created=datetime(2026, 1, 1, tzinfo=UTC), + lifecycle_state="ACTIVE", + ), + next_page="ignored", + ) + + monkeypatch.setattr(runtime, "get_opsi_client", lambda: FakeClient()) + + result = tools.get_database_insight("ocid1.opsidatabaseinsight.oc1..example") + + assert result["id"] == "ocid1.opsidatabaseinsight.oc1..example" + assert len(calls) == 1 + + +def test_list_tool_passes_limit_and_filters(monkeypatch) -> None: + captured: dict[str, Any] = {} + + class FakeClient: + def list_database_insights(self, **kwargs): + captured.update(kwargs) + return _Response(oci.opsi.models.DatabaseInsightsCollection(items=[])) + + monkeypatch.setattr(runtime, "get_opsi_client", lambda: FakeClient()) + + result = tools.list_database_insights( + compartment_id="ocid1.compartment.oc1..example", + limit=25, + status=["ENABLED"], + ) + + assert captured["limit"] == 25 + assert captured["status"] == ["ENABLED"] + assert result == {"items": []} + + +def test_list_host_configurations_accepts_nullable_platform_and_cpu_fields(monkeypatch) -> None: + class FakeClient: + def list_host_configurations(self, **kwargs): + return _Response( + oci.opsi.models.HostConfigurationCollection( + items=[ + oci.opsi.models.HostConfigurationSummary( + host_insight_id="ocid1.opsihostinsight.oc1..example", + entity_source="EM_MANAGED_EXTERNAL_HOST", + compartment_id="ocid1.compartment.oc1..example", + host_name="host.example.com", + platform_type=None, + platform_version=None, + platform_vendor=None, + total_cpus=4, + total_memory_in_gbs=16.0, + cpu_architecture=None, + cpu_cache_in_mbs=8.0, + cpu_vendor=None, + cpu_frequency_in_mhz=2400.0, + cpu_implementation=None, + cores_per_socket=2, + total_sockets=2, + threads_per_socket=2, + is_hyper_threading_enabled=True, + defined_tags={}, + freeform_tags={}, + ) + ] + ) + ) + + monkeypatch.setattr(runtime, "get_opsi_client", lambda: FakeClient()) + + result = tools.list_host_configurations(compartment_id="ocid1.compartment.oc1..example") + + assert result["items"][0]["platform_type"] is None + assert result["items"][0]["platform_version"] is None + assert result["items"][0]["platform_vendor"] is None + assert result["items"][0]["cpu_architecture"] is None + assert result["items"][0]["cpu_vendor"] is None + assert result["items"][0]["cpu_implementation"] is None diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tools.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tools.py new file mode 100644 index 00000000..f83988a3 --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tools.py @@ -0,0 +1,2275 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at + +""" + +from __future__ import annotations + +from mcp.types import ToolAnnotations +from pydantic import Field +from datetime import datetime +from typing import Any + +from oracle.oci_oracle_db_observability.v1.auth import get_oci_config + +from. import __project__, __version__ +from. import models +from.metadata import BOOTSTRAP_TOOL_NAMES, MUTABLE_TOOL_NAMES, TOOL_DESCRIPTIONS, TOOL_NAMES +from.models import * # noqa: F403 +from.mcp import mcp +from.runtime import invoke_identity, invoke_opsi, normalize_tool_value + + +def _tool_title(name: str) -> str: + return name.replace("_", " ").title() + + +def _tool_annotations(name: str) -> ToolAnnotations: + is_mutable = name in MUTABLE_TOOL_NAMES + return ToolAnnotations( + title=_tool_title(name), + readOnlyHint=not is_mutable, + destructiveHint=is_mutable, + idempotentHint=not is_mutable, + openWorldHint=True,) + + +TOOL_ANNOTATIONS = {name: _tool_annotations(name) for name in TOOL_NAMES} + + +def _require_tenancy_id() -> str: + config = get_oci_config(__project__, __version__) + tenancy_id = config.get("tenancy") + if not tenancy_id: + raise ValueError("Configured OCI authentication context is missing tenancy.") + return tenancy_id + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_compartment"], + annotations=TOOL_ANNOTATIONS["get_compartment"],) +def get_compartment( + compartment_id: str = Field(..., description="The compartment OCID."),) -> Any: + """Get a compartment by OCID.""" + + compartment_id = normalize_tool_value(compartment_id) + if not compartment_id: + raise ValueError("compartment_id is required.") + + result = invoke_identity("get_compartment", compartment_id=compartment_id) + if result is None: + raise ValueError("identity.get_compartment returned an empty response payload.") + return result + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_compartments"], + annotations=TOOL_ANNOTATIONS["list_compartments"],) +def list_compartments( + root_compartment_id: str | None = Field( + None, + description="The root compartment OCID. Defaults to the configured tenancy OCID.",), + include_subtree: bool = Field( + True, + description="Whether to include subcompartments.",), + access_level: models.CompartmentAccessLevel = Field( + "ACCESSIBLE", + description="Compartment visibility filter: ANY or ACCESSIBLE.",), + name: str | None = Field(None, description="Optional exact compartment name filter."), + lifecycle_state: models.CompartmentLifecycleState | None = Field( + None, + description="Optional compartment lifecycle state filter.",), + limit: int = Field(50, description="Maximum number of compartments to return.", ge=1, le=1000),) -> Any: + """List compartments from a root compartment.""" + + root_compartment_id = normalize_tool_value(root_compartment_id) + include_subtree = normalize_tool_value(include_subtree) + access_level = normalize_tool_value(access_level) + name = normalize_tool_value(name) + lifecycle_state = normalize_tool_value(lifecycle_state) + limit = normalize_tool_value(limit) + + resolved_root_compartment_id = root_compartment_id or _require_tenancy_id() + + result = invoke_identity( + "list_compartments", + compartment_id=resolved_root_compartment_id, + compartment_id_in_subtree=include_subtree, + access_level=access_level, + name=name, + lifecycle_state=lifecycle_state, + limit=limit,) + if result is None: + raise ValueError("identity.list_compartments returned an empty response payload.") + return {"items": result, "count": len(result)} + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["change_autonomous_database_insight_advanced_features"], + annotations=TOOL_ANNOTATIONS["change_autonomous_database_insight_advanced_features"],) +def change_autonomous_database_insight_advanced_features( + change_autonomous_database_insight_advanced_features_details: dict[str, Any] | ChangeAutonomousDatabaseInsightAdvancedFeaturesDetails = Field(..., description='Details for the advanced features of Autonomous Database in Operations Insights.'), + database_insight_id: str = Field(..., description='Unique database insight identifier'),) -> Any: + return invoke_opsi('change_autonomous_database_insight_advanced_features', change_autonomous_database_insight_advanced_features_details=change_autonomous_database_insight_advanced_features_details, database_insight_id=database_insight_id) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["change_awr_hub_source_compartment"], + annotations=TOOL_ANNOTATIONS["change_awr_hub_source_compartment"],) +def change_awr_hub_source_compartment( + awr_hub_source_id: str = Field(..., description='Unique Awr Hub Source identifier'), + change_awr_hub_source_compartment_details: dict[str, Any] | ChangeAwrHubSourceCompartmentDetails = Field(..., description='The destination compartment for the AWR Hub source.'),) -> Any: + return invoke_opsi('change_awr_hub_source_compartment', awr_hub_source_id=awr_hub_source_id, change_awr_hub_source_compartment_details=change_awr_hub_source_compartment_details) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["change_chargeback_plan_compartment"], + annotations=TOOL_ANNOTATIONS["change_chargeback_plan_compartment"],) +def change_chargeback_plan_compartment( + chargebackplan_id: str = Field(..., description='The OCID of the Ops Insights chargeback plan.'), + change_chargeback_plan_compartment_details: dict[str, Any] | ChangeChargebackPlanCompartmentDetails = Field(..., description='The destination compartment for the chargeback plan.'),) -> Any: + return invoke_opsi('change_chargeback_plan_compartment', chargebackplan_id=chargebackplan_id, change_chargeback_plan_compartment_details=change_chargeback_plan_compartment_details) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["change_database_insight_compartment"], + annotations=TOOL_ANNOTATIONS["change_database_insight_compartment"],) +def change_database_insight_compartment( + database_insight_id: str = Field(..., description='Unique database insight identifier'), + change_database_insight_compartment_details: dict[str, Any] | ChangeDatabaseInsightCompartmentDetails = Field(..., description='The destination compartment for the database insight.'),) -> Any: + return invoke_opsi('change_database_insight_compartment', database_insight_id=database_insight_id, change_database_insight_compartment_details=change_database_insight_compartment_details) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["change_enterprise_manager_bridge_compartment"], + annotations=TOOL_ANNOTATIONS["change_enterprise_manager_bridge_compartment"],) +def change_enterprise_manager_bridge_compartment( + enterprise_manager_bridge_id: str = Field(..., description='Unique Enterprise Manager bridge identifier'), + change_enterprise_manager_bridge_compartment_details: dict[str, Any] | ChangeEnterpriseManagerBridgeCompartmentDetails = Field(..., description='The destination compartment for the Enterprise Manager bridge.'),) -> Any: + return invoke_opsi('change_enterprise_manager_bridge_compartment', enterprise_manager_bridge_id=enterprise_manager_bridge_id, change_enterprise_manager_bridge_compartment_details=change_enterprise_manager_bridge_compartment_details) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["change_exadata_insight_compartment"], + annotations=TOOL_ANNOTATIONS["change_exadata_insight_compartment"],) +def change_exadata_insight_compartment( + exadata_insight_id: str = Field(..., description='Unique Exadata insight identifier'), + change_exadata_insight_compartment_details: dict[str, Any] | ChangeExadataInsightCompartmentDetails = Field(..., description='The destination compartment for the Exadata insight.'),) -> Any: + return invoke_opsi('change_exadata_insight_compartment', exadata_insight_id=exadata_insight_id, change_exadata_insight_compartment_details=change_exadata_insight_compartment_details) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["change_host_insight_compartment"], + annotations=TOOL_ANNOTATIONS["change_host_insight_compartment"],) +def change_host_insight_compartment( + host_insight_id: str = Field(..., description='Unique host insight identifier'), + change_host_insight_compartment_details: dict[str, Any] | ChangeHostInsightCompartmentDetails = Field(..., description='The destination compartment for the host insight.'),) -> Any: + return invoke_opsi('change_host_insight_compartment', host_insight_id=host_insight_id, change_host_insight_compartment_details=change_host_insight_compartment_details) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["change_macs_managed_autonomous_database_insight_connection"], + annotations=TOOL_ANNOTATIONS["change_macs_managed_autonomous_database_insight_connection"],) +def change_macs_managed_autonomous_database_insight_connection( + database_insight_id: str = Field(..., description='Unique database insight identifier'), + change_macs_managed_autonomous_database_insight_connection_details: dict[str, Any] | ChangeMacsManagedAutonomousDatabaseInsightConnectionDetails = Field(..., description='The replacement connection details for the MACS-managed Autonomous Database insight.'),) -> Any: + return invoke_opsi('change_macs_managed_autonomous_database_insight_connection', database_insight_id=database_insight_id, change_macs_managed_autonomous_database_insight_connection_details=change_macs_managed_autonomous_database_insight_connection_details) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["change_macs_managed_cloud_database_insight_connection"], + annotations=TOOL_ANNOTATIONS["change_macs_managed_cloud_database_insight_connection"],) +def change_macs_managed_cloud_database_insight_connection( + database_insight_id: str = Field(..., description='Unique database insight identifier'), + change_macs_managed_cloud_database_insight_connection_details: dict[str, Any] | ChangeMacsManagedCloudDatabaseInsightConnectionDetails = Field(..., description='The replacement connection details for the Cloud MACS-managed database insight.'),) -> Any: + return invoke_opsi('change_macs_managed_cloud_database_insight_connection', database_insight_id=database_insight_id, change_macs_managed_cloud_database_insight_connection_details=change_macs_managed_cloud_database_insight_connection_details) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["change_news_report_compartment"], + annotations=TOOL_ANNOTATIONS["change_news_report_compartment"],) +def change_news_report_compartment( + news_report_id: str = Field(..., description='Unique news report identifier.'), + change_news_report_compartment_details: dict[str, Any] | ChangeNewsReportCompartmentDetails = Field(..., description='The destination compartment for the news report.'),) -> Any: + return invoke_opsi('change_news_report_compartment', news_report_id=news_report_id, change_news_report_compartment_details=change_news_report_compartment_details) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["change_operations_insights_private_endpoint_compartment"], + annotations=TOOL_ANNOTATIONS["change_operations_insights_private_endpoint_compartment"],) +def change_operations_insights_private_endpoint_compartment( + operations_insights_private_endpoint_id: str = Field(..., description='The OCID of the Operation Insights private endpoint.'), + change_operations_insights_private_endpoint_compartment_details: dict[str, Any] | ChangeOperationsInsightsPrivateEndpointCompartmentDetails = Field(..., description='The details used to change the compartment of a private endpoint'),) -> Any: + return invoke_opsi('change_operations_insights_private_endpoint_compartment', operations_insights_private_endpoint_id=operations_insights_private_endpoint_id, change_operations_insights_private_endpoint_compartment_details=change_operations_insights_private_endpoint_compartment_details) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["change_operations_insights_warehouse_compartment"], + annotations=TOOL_ANNOTATIONS["change_operations_insights_warehouse_compartment"],) +def change_operations_insights_warehouse_compartment( + operations_insights_warehouse_id: str = Field(..., description='Unique Ops Insights Warehouse identifier'), + change_operations_insights_warehouse_compartment_details: dict[str, Any] | ChangeOperationsInsightsWarehouseCompartmentDetails = Field(..., description='The destination compartment for the Operations Insights Warehouse.'),) -> Any: + return invoke_opsi('change_operations_insights_warehouse_compartment', operations_insights_warehouse_id=operations_insights_warehouse_id, change_operations_insights_warehouse_compartment_details=change_operations_insights_warehouse_compartment_details) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["change_opsi_configuration_compartment"], + annotations=TOOL_ANNOTATIONS["change_opsi_configuration_compartment"],) +def change_opsi_configuration_compartment( + opsi_configuration_id: str = Field(..., description='OCID of OPSI configuration resource.'), + change_opsi_configuration_compartment_details: dict[str, Any] | ChangeOpsiConfigurationCompartmentDetails = Field(..., description='The destination compartment for the OPSI configuration resource.'),) -> Any: + return invoke_opsi('change_opsi_configuration_compartment', opsi_configuration_id=opsi_configuration_id, change_opsi_configuration_compartment_details=change_opsi_configuration_compartment_details) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["change_pe_comanaged_database_insight"], + annotations=TOOL_ANNOTATIONS["change_pe_comanaged_database_insight"],) +def change_pe_comanaged_database_insight( + database_insight_id: str = Field(..., description='Unique database insight identifier'), + change_pe_comanaged_database_insight_details: dict[str, Any] | ChangePeComanagedDatabaseInsightDetails = Field(..., description='The replacement connection or private endpoint details for the private-endpoint co-managed database insight.'),) -> Any: + return invoke_opsi('change_pe_comanaged_database_insight', database_insight_id=database_insight_id, change_pe_comanaged_database_insight_details=change_pe_comanaged_database_insight_details) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["create_awr_hub"], + annotations=TOOL_ANNOTATIONS["create_awr_hub"],) +def create_awr_hub( + create_awr_hub_details: dict[str, Any] | CreateAwrHubDetails = Field(..., description='Details using which an AWR hub resource will be created in Operations Insights.'),) -> Any: + return invoke_opsi('create_awr_hub', create_awr_hub_details=create_awr_hub_details) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["create_awr_hub_source"], + annotations=TOOL_ANNOTATIONS["create_awr_hub_source"],) +def create_awr_hub_source( + create_awr_hub_source_details: dict[str, Any] | CreateAwrHubSourceDetails = Field(..., description='Payload containing details to register the source database'),) -> Any: + return invoke_opsi('create_awr_hub_source', create_awr_hub_source_details=create_awr_hub_source_details) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["create_chargeback_plan"], + annotations=TOOL_ANNOTATIONS["create_chargeback_plan"],) +def create_chargeback_plan( + create_chargeback_plan_details: dict[str, Any] | CreateChargebackPlanDetails = Field(..., description='Details to create a new chargeback plan resource.'),) -> Any: + return invoke_opsi('create_chargeback_plan', create_chargeback_plan_details=create_chargeback_plan_details) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["create_chargeback_plan_report"], + annotations=TOOL_ANNOTATIONS["create_chargeback_plan_report"],) +def create_chargeback_plan_report( + create_chargeback_plan_report_details: dict[str, Any] | CreateChargebackPlanReportDetails = Field(..., description='Details for the chargeback plan report to be created in Ops Insights.'), + id: str = Field(..., description='Unique Ops insight identifier'), + resource_type: str = Field(..., description='Filter by resource type. Supported values are EXADATA_INSIGHT, HOST_INSIGHT, DATABASE_INSIGHT.'),) -> Any: + return invoke_opsi('create_chargeback_plan_report', create_chargeback_plan_report_details=create_chargeback_plan_report_details, id=id, resource_type=resource_type) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["create_database_insight"], + annotations=TOOL_ANNOTATIONS["create_database_insight"],) +def create_database_insight( + create_database_insight_details: dict[str, Any] | CreateDatabaseInsightDetails = Field(..., description='Details for the database for which a Database Insight resource will be created in Operations Insights.'),) -> Any: + return invoke_opsi('create_database_insight', create_database_insight_details=create_database_insight_details) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["create_enterprise_manager_bridge"], + annotations=TOOL_ANNOTATIONS["create_enterprise_manager_bridge"],) +def create_enterprise_manager_bridge( + create_enterprise_manager_bridge_details: dict[str, Any] | CreateEnterpriseManagerBridgeDetails = Field(..., description='Details for the Enterprise Manager bridge to be created in Operations Insights.'),) -> Any: + return invoke_opsi('create_enterprise_manager_bridge', create_enterprise_manager_bridge_details=create_enterprise_manager_bridge_details) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["create_exadata_insight"], + annotations=TOOL_ANNOTATIONS["create_exadata_insight"],) +def create_exadata_insight( + create_exadata_insight_details: dict[str, Any] | CreateExadataInsightDetails = Field(..., description='Details for the Exadata system for which an Exadata insight resource will be created in Operations Insights.'),) -> Any: + return invoke_opsi('create_exadata_insight', create_exadata_insight_details=create_exadata_insight_details) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["create_host_insight"], + annotations=TOOL_ANNOTATIONS["create_host_insight"],) +def create_host_insight( + create_host_insight_details: dict[str, Any] | CreateHostInsightDetails = Field(..., description='Details for the host for which a Host Insight resource will be created in Ops Insights.'),) -> Any: + return invoke_opsi('create_host_insight', create_host_insight_details=create_host_insight_details) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["create_news_report"], + annotations=TOOL_ANNOTATIONS["create_news_report"],) +def create_news_report( + create_news_report_details: dict[str, Any] | CreateNewsReportDetails = Field(..., description='Details for the news report that will be created in Ops Insights.'),) -> Any: + return invoke_opsi('create_news_report', create_news_report_details=create_news_report_details) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["create_operations_insights_private_endpoint"], + annotations=TOOL_ANNOTATIONS["create_operations_insights_private_endpoint"],) +def create_operations_insights_private_endpoint( + create_operations_insights_private_endpoint_details: dict[str, Any] | CreateOperationsInsightsPrivateEndpointDetails = Field(..., description='Details to create a new private endpoint.'),) -> Any: + return invoke_opsi('create_operations_insights_private_endpoint', create_operations_insights_private_endpoint_details=create_operations_insights_private_endpoint_details) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["create_operations_insights_warehouse"], + annotations=TOOL_ANNOTATIONS["create_operations_insights_warehouse"],) +def create_operations_insights_warehouse( + create_operations_insights_warehouse_details: dict[str, Any] | CreateOperationsInsightsWarehouseDetails = Field(..., description='Details using which an Ops Insights Warehouse resource will be created in Ops Insights.'),) -> Any: + return invoke_opsi('create_operations_insights_warehouse', create_operations_insights_warehouse_details=create_operations_insights_warehouse_details) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["create_operations_insights_warehouse_user"], + annotations=TOOL_ANNOTATIONS["create_operations_insights_warehouse_user"],) +def create_operations_insights_warehouse_user( + create_operations_insights_warehouse_user_details: dict[str, Any] | CreateOperationsInsightsWarehouseUserDetails = Field(..., description='Parameter using which an Operations Insights Warehouse user resource will be created.'),) -> Any: + return invoke_opsi('create_operations_insights_warehouse_user', create_operations_insights_warehouse_user_details=create_operations_insights_warehouse_user_details) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["create_opsi_configuration"], + annotations=TOOL_ANNOTATIONS["create_opsi_configuration"],) +def create_opsi_configuration( + create_opsi_configuration_details: dict[str, Any] | CreateOpsiConfigurationDetails = Field(..., description='Information about OPSI configuration resource to be created.'), + opsi_config_field: list[str] | None = Field(None, description='Optional fields to return as part of OpsiConfiguration object. Unless requested, these fields will not be returned by default. Allowed values are: "configItems"'), + config_item_custom_status: list[str] | None = Field(None, description='Specifies whether only customized configuration items or only non-customized configuration items or both have to be returned. By default only customized configuration items are returned. Allowed values are: "customized", "nonCustomized"'), + config_items_applicable_context: list[str] | None = Field(None, description='Returns the configuration items filtered by applicable contexts sent in this param. By default configuration items of all applicable contexts are returned.'), + config_item_field: list[str] | None = Field(None, description='Specifies the fields to return in a config item summary. Allowed values are: "name", "value", "defaultValue", "metadata", "applicableContexts"'),) -> Any: + return invoke_opsi('create_opsi_configuration', create_opsi_configuration_details=create_opsi_configuration_details, opsi_config_field=opsi_config_field, config_item_custom_status=config_item_custom_status, config_items_applicable_context=config_items_applicable_context, config_item_field=config_item_field) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["disable_autonomous_database_insight_advanced_features"], + annotations=TOOL_ANNOTATIONS["disable_autonomous_database_insight_advanced_features"],) +def disable_autonomous_database_insight_advanced_features( + database_insight_id: str = Field(..., description='Unique database insight identifier'),) -> Any: + return invoke_opsi('disable_autonomous_database_insight_advanced_features', database_insight_id=database_insight_id) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["disable_awr_hub_source"], + annotations=TOOL_ANNOTATIONS["disable_awr_hub_source"],) +def disable_awr_hub_source( + awr_hub_source_id: str = Field(..., description='Unique Awr Hub Source identifier'),) -> Any: + return invoke_opsi('disable_awr_hub_source', awr_hub_source_id=awr_hub_source_id) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["disable_database_insight"], + annotations=TOOL_ANNOTATIONS["disable_database_insight"],) +def disable_database_insight( + database_insight_id: str = Field(..., description='Unique database insight identifier'),) -> Any: + return invoke_opsi('disable_database_insight', database_insight_id=database_insight_id) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["disable_exadata_insight"], + annotations=TOOL_ANNOTATIONS["disable_exadata_insight"],) +def disable_exadata_insight( + exadata_insight_id: str = Field(..., description='Unique Exadata insight identifier'),) -> Any: + return invoke_opsi('disable_exadata_insight', exadata_insight_id=exadata_insight_id) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["disable_host_insight"], + annotations=TOOL_ANNOTATIONS["disable_host_insight"],) +def disable_host_insight( + host_insight_id: str = Field(..., description='Unique host insight identifier'),) -> Any: + return invoke_opsi('disable_host_insight', host_insight_id=host_insight_id) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["disable_plan_exadata_insight"], + annotations=TOOL_ANNOTATIONS["disable_plan_exadata_insight"],) +def disable_plan_exadata_insight( + exadata_insight_id: str = Field(..., description='Unique Exadata insight identifier'),) -> Any: + return invoke_opsi('disable_plan_exadata_insight', exadata_insight_id=exadata_insight_id) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["enable_autonomous_database_insight_advanced_features"], + annotations=TOOL_ANNOTATIONS["enable_autonomous_database_insight_advanced_features"],) +def enable_autonomous_database_insight_advanced_features( + enable_autonomous_database_insight_advanced_features_details: dict[str, Any] | EnableAutonomousDatabaseInsightAdvancedFeaturesDetails = Field(..., description='Connection Details for the Autonomous Database in Operations Insights.'), + database_insight_id: str = Field(..., description='Unique database insight identifier'),) -> Any: + return invoke_opsi('enable_autonomous_database_insight_advanced_features', enable_autonomous_database_insight_advanced_features_details=enable_autonomous_database_insight_advanced_features_details, database_insight_id=database_insight_id) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["enable_awr_hub_source"], + annotations=TOOL_ANNOTATIONS["enable_awr_hub_source"],) +def enable_awr_hub_source( + awr_hub_source_id: str = Field(..., description='Unique Awr Hub Source identifier'),) -> Any: + return invoke_opsi('enable_awr_hub_source', awr_hub_source_id=awr_hub_source_id) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["enable_database_insight"], + annotations=TOOL_ANNOTATIONS["enable_database_insight"],) +def enable_database_insight( + enable_database_insight_details: dict[str, Any] | EnableDatabaseInsightDetails = Field(..., description='Details for the database to be enabled in Operations Insights.'), + database_insight_id: str = Field(..., description='Unique database insight identifier'),) -> Any: + return invoke_opsi('enable_database_insight', enable_database_insight_details=enable_database_insight_details, database_insight_id=database_insight_id) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["enable_exadata_insight"], + annotations=TOOL_ANNOTATIONS["enable_exadata_insight"],) +def enable_exadata_insight( + enable_exadata_insight_details: dict[str, Any] | EnableExadataInsightDetails = Field(..., description='Details for the Exadata system to be enabled in Operations Insights.'), + exadata_insight_id: str = Field(..., description='Unique Exadata insight identifier'),) -> Any: + return invoke_opsi('enable_exadata_insight', enable_exadata_insight_details=enable_exadata_insight_details, exadata_insight_id=exadata_insight_id) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["enable_host_insight"], + annotations=TOOL_ANNOTATIONS["enable_host_insight"],) +def enable_host_insight( + enable_host_insight_details: dict[str, Any] | EnableHostInsightDetails = Field(..., description='Details for the host to be enabled in Ops Insights.'), + host_insight_id: str = Field(..., description='Unique host insight identifier'),) -> Any: + return invoke_opsi('enable_host_insight', enable_host_insight_details=enable_host_insight_details, host_insight_id=host_insight_id) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["enable_plan_exadata_insight"], + annotations=TOOL_ANNOTATIONS["enable_plan_exadata_insight"],) +def enable_plan_exadata_insight( + enable_plan_exadata_insight_details: dict[str, Any] | EnablePlanExadataInsightDetails = Field(..., description='Details for the Exadata system to be enabled in Operations Insights.'), + exadata_insight_id: str = Field(..., description='Unique Exadata insight identifier'),) -> Any: + return invoke_opsi('enable_plan_exadata_insight', enable_plan_exadata_insight_details=enable_plan_exadata_insight_details, exadata_insight_id=exadata_insight_id) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_awr_database_report"], + annotations=TOOL_ANNOTATIONS["get_awr_database_report"],) +def get_awr_database_report( + awr_hub_id: str = Field(..., description='Unique Awr Hub identifier'), + awr_source_database_identifier: str = Field(..., description='Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.'), + instance_number: str | None = Field(None, description='The optional single value query parameter to filter by database instance number.'), + begin_snapshot_identifier_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), + end_snapshot_identifier_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot Identifier.'), + time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), + time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), + report_type: str | None = Field(None, description='The query parameter to filter the AWR report types. Allowed values are: "AWR", "ASH"'), + report_format: str | None = Field(None, description='The format of the AWR report. Allowed values are: "HTML", "TEXT"'),) -> Any: + return invoke_opsi('get_awr_database_report', awr_hub_id=awr_hub_id, awr_source_database_identifier=awr_source_database_identifier, instance_number=instance_number, begin_snapshot_identifier_greater_than_or_equal_to=begin_snapshot_identifier_greater_than_or_equal_to, end_snapshot_identifier_less_than_or_equal_to=end_snapshot_identifier_less_than_or_equal_to, time_greater_than_or_equal_to=time_greater_than_or_equal_to, time_less_than_or_equal_to=time_less_than_or_equal_to, report_type=report_type, report_format=report_format) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_awr_database_sql_report"], + annotations=TOOL_ANNOTATIONS["get_awr_database_sql_report"],) +def get_awr_database_sql_report( + awr_hub_id: str = Field(..., description='Unique Awr Hub identifier'), + awr_source_database_identifier: str = Field(..., description='Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.'), + sql_id: str = Field(..., description='Oracle-generated SQL ID for a SQL statement in the AWR data.'), + instance_number: str | None = Field(None, description='The optional single value query parameter to filter by database instance number.'), + begin_snapshot_identifier_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), + end_snapshot_identifier_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot Identifier.'), + time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), + time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), + report_format: str | None = Field(None, description='The format of the AWR report. Allowed values are: "HTML", "TEXT"'),) -> Any: + return invoke_opsi('get_awr_database_sql_report', awr_hub_id=awr_hub_id, awr_source_database_identifier=awr_source_database_identifier, sql_id=sql_id, instance_number=instance_number, begin_snapshot_identifier_greater_than_or_equal_to=begin_snapshot_identifier_greater_than_or_equal_to, end_snapshot_identifier_less_than_or_equal_to=end_snapshot_identifier_less_than_or_equal_to, time_greater_than_or_equal_to=time_greater_than_or_equal_to, time_less_than_or_equal_to=time_less_than_or_equal_to, report_format=report_format) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_awr_hub"], + annotations=TOOL_ANNOTATIONS["get_awr_hub"],) +def get_awr_hub( + awr_hub_id: str = Field(..., description='Unique Awr Hub identifier'),) -> Any: + return invoke_opsi('get_awr_hub', awr_hub_id=awr_hub_id) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_awr_hub_object"], + annotations=TOOL_ANNOTATIONS["get_awr_hub_object"],) +def get_awr_hub_object( + awr_hub_source_id: str = Field(..., description='Unique Awr Hub Source identifier'), + object_name: str = Field(..., description='Unique Awr Hub Object identifier'),) -> Any: + return invoke_opsi('get_awr_hub_object', awr_hub_source_id=awr_hub_source_id, object_name=object_name) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_awr_hub_source"], + annotations=TOOL_ANNOTATIONS["get_awr_hub_source"],) +def get_awr_hub_source( + awr_hub_source_id: str = Field(..., description='Unique Awr Hub Source identifier'),) -> Any: + return invoke_opsi('get_awr_hub_source', awr_hub_source_id=awr_hub_source_id) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_awr_report"], + annotations=TOOL_ANNOTATIONS["get_awr_report"],) +def get_awr_report( + awr_hub_id: str = Field(..., description='Unique Awr Hub identifier'), + awr_source_database_identifier: str = Field(..., description='Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.'), + report_format: str | None = Field(None, description='The format of the AWR report. Default report format is HTML. Allowed values are: "HTML", "TEXT"'), + instance_number: str | None = Field(None, description='The optional single value query parameter to filter by database instance number.'), + begin_snapshot_identifier_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), + end_snapshot_identifier_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot Identifier.'), + time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), + time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'),) -> Any: + return invoke_opsi('get_awr_report', awr_hub_id=awr_hub_id, awr_source_database_identifier=awr_source_database_identifier, report_format=report_format, instance_number=instance_number, begin_snapshot_identifier_greater_than_or_equal_to=begin_snapshot_identifier_greater_than_or_equal_to, end_snapshot_identifier_less_than_or_equal_to=end_snapshot_identifier_less_than_or_equal_to, time_greater_than_or_equal_to=time_greater_than_or_equal_to, time_less_than_or_equal_to=time_less_than_or_equal_to) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_chargeback_plan"], + annotations=TOOL_ANNOTATIONS["get_chargeback_plan"],) +def get_chargeback_plan( + chargebackplan_id: str = Field(..., description='The OCID of the Ops Insights chargeback plan.'),) -> Any: + return invoke_opsi('get_chargeback_plan', chargebackplan_id=chargebackplan_id) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_chargeback_plan_report"], + annotations=TOOL_ANNOTATIONS["get_chargeback_plan_report"],) +def get_chargeback_plan_report( + chargeback_plan_report_id: str = Field(..., description='The OCID of the Ops Insights chargeback plan report.'), + id: str = Field(..., description='Unique Ops insight identifier'), + resource_type: str = Field(..., description='Filter by resource type. Supported values are EXADATA_INSIGHT, HOST_INSIGHT, DATABASE_INSIGHT.'),) -> Any: + return invoke_opsi('get_chargeback_plan_report', chargeback_plan_report_id=chargeback_plan_report_id, id=id, resource_type=resource_type) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_chargeback_plan_report_content"], + annotations=TOOL_ANNOTATIONS["get_chargeback_plan_report_content"],) +def get_chargeback_plan_report_content( + chargeback_plan_report_id: str = Field(..., description='The OCID of the Ops Insights chargeback plan report.'), + id: str = Field(..., description='Unique Ops insight identifier'), + resource_type: str = Field(..., description='Filter by resource type. Supported values are EXADATA_INSIGHT, HOST_INSIGHT, DATABASE_INSIGHT.'), + time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), + time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), + relative_time_interval: str | None = Field(None, description='Specify relative time period with respect to current time. If relativeTimeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P1M (previous month), P1Q (previous quarter) and P1Y (previous year).'),) -> Any: + return invoke_opsi('get_chargeback_plan_report_content', chargeback_plan_report_id=chargeback_plan_report_id, id=id, resource_type=resource_type, time_interval_start=time_interval_start, time_interval_end=time_interval_end, relative_time_interval=relative_time_interval) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_database_insight"], + annotations=TOOL_ANNOTATIONS["get_database_insight"],) +def get_database_insight( + database_insight_id: str = Field(..., description='Unique database insight identifier'),) -> Any: + return invoke_opsi('get_database_insight', database_insight_id=database_insight_id) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_enterprise_manager_bridge"], + annotations=TOOL_ANNOTATIONS["get_enterprise_manager_bridge"],) +def get_enterprise_manager_bridge( + enterprise_manager_bridge_id: str = Field(..., description='Unique Enterprise Manager bridge identifier'),) -> Any: + return invoke_opsi('get_enterprise_manager_bridge', enterprise_manager_bridge_id=enterprise_manager_bridge_id) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_exadata_insight"], + annotations=TOOL_ANNOTATIONS["get_exadata_insight"],) +def get_exadata_insight( + exadata_insight_id: str = Field(..., description='Unique Exadata insight identifier'),) -> Any: + return invoke_opsi('get_exadata_insight', exadata_insight_id=exadata_insight_id) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_host_insight"], + annotations=TOOL_ANNOTATIONS["get_host_insight"],) +def get_host_insight( + host_insight_id: str = Field(..., description='Unique host insight identifier'),) -> Any: + return invoke_opsi('get_host_insight', host_insight_id=host_insight_id) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_news_report"], + annotations=TOOL_ANNOTATIONS["get_news_report"],) +def get_news_report( + news_report_id: str = Field(..., description='Unique news report identifier.'),) -> Any: + return invoke_opsi('get_news_report', news_report_id=news_report_id) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_operations_insights_private_endpoint"], + annotations=TOOL_ANNOTATIONS["get_operations_insights_private_endpoint"],) +def get_operations_insights_private_endpoint( + operations_insights_private_endpoint_id: str = Field(..., description='The OCID of the Operation Insights private endpoint.'),) -> Any: + return invoke_opsi('get_operations_insights_private_endpoint', operations_insights_private_endpoint_id=operations_insights_private_endpoint_id) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_operations_insights_warehouse"], + annotations=TOOL_ANNOTATIONS["get_operations_insights_warehouse"],) +def get_operations_insights_warehouse( + operations_insights_warehouse_id: str = Field(..., description='Unique Ops Insights Warehouse identifier'),) -> Any: + return invoke_opsi('get_operations_insights_warehouse', operations_insights_warehouse_id=operations_insights_warehouse_id) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_operations_insights_warehouse_user"], + annotations=TOOL_ANNOTATIONS["get_operations_insights_warehouse_user"],) +def get_operations_insights_warehouse_user( + operations_insights_warehouse_user_id: str = Field(..., description='Unique Operations Insights Warehouse User identifier'),) -> Any: + return invoke_opsi('get_operations_insights_warehouse_user', operations_insights_warehouse_user_id=operations_insights_warehouse_user_id) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_opsi_configuration"], + annotations=TOOL_ANNOTATIONS["get_opsi_configuration"],) +def get_opsi_configuration( + opsi_configuration_id: str = Field(..., description='OCID of OPSI configuration resource.'), + opsi_config_field: list[str] | None = Field(None, description='Optional fields to return as part of OpsiConfiguration object. Unless requested, these fields will not be returned by default. Allowed values are: "configItems"'), + config_item_custom_status: list[str] | None = Field(None, description='Specifies whether only customized configuration items or only non-customized configuration items or both have to be returned. By default only customized configuration items are returned. Allowed values are: "customized", "nonCustomized"'), + config_items_applicable_context: list[str] | None = Field(None, description='Returns the configuration items filtered by applicable contexts sent in this param. By default configuration items of all applicable contexts are returned.'), + config_item_field: list[str] | None = Field(None, description='Specifies the fields to return in a config item summary. Allowed values are: "name", "value", "defaultValue", "metadata", "applicableContexts"'),) -> Any: + return invoke_opsi('get_opsi_configuration', opsi_configuration_id=opsi_configuration_id, opsi_config_field=opsi_config_field, config_item_custom_status=config_item_custom_status, config_items_applicable_context=config_items_applicable_context, config_item_field=config_item_field) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_opsi_data_object"], + annotations=TOOL_ANNOTATIONS["get_opsi_data_object"],) +def get_opsi_data_object( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + opsi_data_object_identifier: str = Field(..., description='Unique OPSI data object identifier.'),) -> Any: + return invoke_opsi('get_opsi_data_object', compartment_id=compartment_id, opsi_data_object_identifier=opsi_data_object_identifier) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["get_work_request"], + annotations=TOOL_ANNOTATIONS["get_work_request"],) +def get_work_request( + work_request_id: str = Field(..., description='The ID of the asynchronous request.'),) -> Any: + return invoke_opsi('get_work_request', work_request_id=work_request_id) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_addm_db_finding_categories"], + annotations=TOOL_ANNOTATIONS["list_addm_db_finding_categories"],) +def list_addm_db_finding_categories( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + database_id: list[str] | None = Field(None, description='Optional list of database OCIDs of the associated DBaaS entity.'), + id: list[str] | None = Field(None, description='Optional list of database insight resource OCIDs.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='Field name for sorting the finding categories Allowed values are: "name"'), + compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: + return invoke_opsi('list_addm_db_finding_categories', compartment_id=compartment_id, database_id=database_id, id=id, limit=limit, sort_order=sort_order, sort_by=sort_by, compartment_id_in_subtree=compartment_id_in_subtree) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_addm_db_findings_time_series"], + annotations=TOOL_ANNOTATIONS["list_addm_db_findings_time_series"],) +def list_addm_db_findings_time_series( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + database_id: list[str] | None = Field(None, description='Optional list of database OCIDs of the associated DBaaS entity.'), + id: list[str] | None = Field(None, description='Optional list of database insight resource OCIDs.'), + instance_number: str | None = Field(None, description='The optional single value query parameter to filter by database instance number.'), + time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), + time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), + category_name: str | None = Field(None, description='Optional value filter to match the finding category exactly.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='Field name for sorting the ADDM finding time series summary data Allowed values are: "timestamp"'), + compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: + return invoke_opsi('list_addm_db_findings_time_series', compartment_id=compartment_id, database_id=database_id, id=id, instance_number=instance_number, time_interval_start=time_interval_start, time_interval_end=time_interval_end, category_name=category_name, limit=limit, sort_order=sort_order, sort_by=sort_by, compartment_id_in_subtree=compartment_id_in_subtree) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_addm_db_parameter_categories"], + annotations=TOOL_ANNOTATIONS["list_addm_db_parameter_categories"],) +def list_addm_db_parameter_categories( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + database_id: list[str] | None = Field(None, description='Optional list of database OCIDs of the associated DBaaS entity.'), + id: list[str] | None = Field(None, description='Optional list of database insight resource OCIDs.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='Field name for sorting the database parameter categories Allowed values are: "name"'), + compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: + return invoke_opsi('list_addm_db_parameter_categories', compartment_id=compartment_id, database_id=database_id, id=id, limit=limit, sort_order=sort_order, sort_by=sort_by, compartment_id_in_subtree=compartment_id_in_subtree) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_addm_db_recommendation_categories"], + annotations=TOOL_ANNOTATIONS["list_addm_db_recommendation_categories"],) +def list_addm_db_recommendation_categories( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + database_id: list[str] | None = Field(None, description='Optional list of database OCIDs of the associated DBaaS entity.'), + id: list[str] | None = Field(None, description='Optional list of database insight resource OCIDs.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='Field name for sorting the recommendation categories Allowed values are: "name"'), + compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: + return invoke_opsi('list_addm_db_recommendation_categories', compartment_id=compartment_id, database_id=database_id, id=id, limit=limit, sort_order=sort_order, sort_by=sort_by, compartment_id_in_subtree=compartment_id_in_subtree) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_addm_db_recommendations_time_series"], + annotations=TOOL_ANNOTATIONS["list_addm_db_recommendations_time_series"],) +def list_addm_db_recommendations_time_series( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + database_id: list[str] | None = Field(None, description='Optional list of database OCIDs of the associated DBaaS entity.'), + id: list[str] | None = Field(None, description='Optional list of database insight resource OCIDs.'), + instance_number: str | None = Field(None, description='The optional single value query parameter to filter by database instance number.'), + time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), + time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), + category_name: str | None = Field(None, description='Optional value filter to match the finding category exactly.'), + sql_identifier: str | None = Field(None, description='Optional filter to return only resources whose sql id matches the value given. Only considered when categoryName is SQL_TUNING.'), + owner_or_name_contains: str | None = Field(None, description='Optional filter to return only resources whose owner or name contains the substring given. The match is not case sensitive. Only considered when categoryName is SCHEMA_OBJECT.'), + name_contains: str | None = Field(None, description='Optional filter to return only resources whose name contains the substring given. The match is not case sensitive. Only considered when categoryName is DATABASE_CONFIGURATION.'), + name: str | None = Field(None, description='Optional filter to return only resources whose name exactly matches the substring given. The match is case sensitive. Only considered when categoryName is DATABASE_CONFIGURATION.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='Field name for sorting the ADDM recommendation time series summary data Allowed values are: "timestamp"'), + compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: + return invoke_opsi('list_addm_db_recommendations_time_series', compartment_id=compartment_id, database_id=database_id, id=id, instance_number=instance_number, time_interval_start=time_interval_start, time_interval_end=time_interval_end, category_name=category_name, sql_identifier=sql_identifier, owner_or_name_contains=owner_or_name_contains, name_contains=name_contains, name=name, limit=limit, sort_order=sort_order, sort_by=sort_by, compartment_id_in_subtree=compartment_id_in_subtree) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_addm_dbs"], + annotations=TOOL_ANNOTATIONS["list_addm_dbs"],) +def list_addm_dbs( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + database_id: list[str] | None = Field(None, description='Optional list of database OCIDs of the associated DBaaS entity.'), + id: list[str] | None = Field(None, description='Optional list of database insight resource OCIDs.'), + time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), + time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='Field name for sorting ADDM database data Allowed values are: "databaseName", "numberOfFindings"'), + compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: + return invoke_opsi('list_addm_dbs', compartment_id=compartment_id, database_id=database_id, id=id, time_interval_start=time_interval_start, time_interval_end=time_interval_end, limit=limit, sort_order=sort_order, sort_by=sort_by, compartment_id_in_subtree=compartment_id_in_subtree) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_awr_database_snapshots"], + annotations=TOOL_ANNOTATIONS["list_awr_database_snapshots"],) +def list_awr_database_snapshots( + awr_hub_id: str = Field(..., description='Unique Awr Hub identifier'), + awr_source_database_identifier: str = Field(..., description='Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.'), + instance_number: str | None = Field(None, description='The optional single value query parameter to filter by database instance number.'), + begin_snapshot_identifier_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), + end_snapshot_identifier_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot Identifier.'), + time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), + time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: str | None = Field(None, description='The option to sort the AWR snapshot summary data. Allowed values are: "TIME_BEGIN", "SNAPSHOT_ID"'), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'),) -> Any: + return invoke_opsi('list_awr_database_snapshots', awr_hub_id=awr_hub_id, awr_source_database_identifier=awr_source_database_identifier, instance_number=instance_number, begin_snapshot_identifier_greater_than_or_equal_to=begin_snapshot_identifier_greater_than_or_equal_to, end_snapshot_identifier_less_than_or_equal_to=end_snapshot_identifier_less_than_or_equal_to, time_greater_than_or_equal_to=time_greater_than_or_equal_to, time_less_than_or_equal_to=time_less_than_or_equal_to, limit=limit, sort_by=sort_by, sort_order=sort_order) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_awr_databases"], + annotations=TOOL_ANNOTATIONS["list_awr_databases"],) +def list_awr_databases( + awr_hub_id: str = Field(..., description='Unique Awr Hub identifier'), + name: str | None = Field(None, description='The optional single value query parameter to filter the entity name.'), + time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), + time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: str | None = Field(None, description='The option to sort the AWR summary data. Allowed values are: "END_INTERVAL_TIME", "NAME"'), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'),) -> Any: + return invoke_opsi('list_awr_databases', awr_hub_id=awr_hub_id, name=name, time_greater_than_or_equal_to=time_greater_than_or_equal_to, time_less_than_or_equal_to=time_less_than_or_equal_to, limit=limit, sort_by=sort_by, sort_order=sort_order) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_awr_hub_objects"], + annotations=TOOL_ANNOTATIONS["list_awr_hub_objects"],) +def list_awr_hub_objects( + awr_hub_source_id: str = Field(..., description='Unique Awr Hub Source identifier'), + prefix: str | None = Field(None, description='The string to use for matching against the start of object names in a Awr Hub list objects query.'), + start: str | None = Field(None, description='Object names returned by Awr Hub list objects query must be greater or equal to this parameter.'), + end: str | None = Field(None, description='Object names returned by Awr Hub list objects query must be strictly less than this parameter.'), + delimiter: str | None = Field(None, description="When this parameter is set, only objects whose names do not contain the delimiter character (after an optionally specified prefix) are returned in the Awr Hub list objects key of the response body. Scanned objects whose names contain the delimiter have the part of their name up to the first occurrence of the delimiter (including the optional prefix) returned as a set of prefixes. Note that only '/' is a supported delimiter character at this time."), + start_after: str | None = Field(None, description='Awr Hub Object name after which remaining objects are listed'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + fields: str | None = Field(None, description='By default all the fields are returned. Use this parameter to fetch specific fields \'size\', \'etag\', \'md5\', \'timeCreated\', \'timeModified\', \'storageTier\' and \'archivalState\' fields. List the names of those fields in a comma-separated, case-insensitive list as the value of this parameter. For example: \'name,etag,timeCreated,md5,timeModified,storageTier,archivalState\'. Allowed values are: "name", "size", "etag", "timeCreated", "md5", "archivalState", "timeModified", "storageTier"'),) -> Any: + return invoke_opsi('list_awr_hub_objects', awr_hub_source_id=awr_hub_source_id, prefix=prefix, start=start, end=end, delimiter=delimiter, start_after=start_after, limit=limit, fields=fields) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_awr_hub_sources"], + annotations=TOOL_ANNOTATIONS["list_awr_hub_sources"],) +def list_awr_hub_sources( + awr_hub_id: str = Field(..., description='Unique Awr Hub identifier'), + compartment_id: str | None = Field(None, description='The OCID of the compartment.'), + awr_hub_source_id: str | None = Field(None, description='Awr Hub source identifier'), + source_type: list[str] | None = Field(None, description='Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: "ADW_S", "ATP_S", "ADW_D", "ATP_D", "EXTERNAL_PDB", "EXTERNAL_NONCDB", "COMANAGED_VM_CDB", "COMANAGED_VM_PDB", "COMANAGED_VM_NONCDB", "COMANAGED_BM_CDB", "COMANAGED_BM_PDB", "COMANAGED_BM_NONCDB", "COMANAGED_EXACS_CDB", "COMANAGED_EXACS_PDB", "COMANAGED_EXACS_NONCDB", "LH_S", "APEX_S", "AJD_S", "AVD_S", "LH_D", "APEX_D", "AJD_D", "AVD_D", "UNDEFINED"'), + name: str | None = Field(None, description='Awr Hub source database name'), + status: list[str] | None = Field(None, description='Resource Status Allowed values are: "ACCEPTING", "NOT_ACCEPTING", "NOT_REGISTERED", "TERMINATED"'), + lifecycle_state: list[str] | None = Field(None, description='Lifecycle states Allowed values are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED"'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='The field to sort by. Only one sort order may be provided. Default order for timeCreated is descending. Default order for displayName is ascending. If no value is specified timeCreated is default. Allowed values are: "timeCreated", "displayName"'),) -> Any: + return invoke_opsi('list_awr_hub_sources', awr_hub_id=awr_hub_id, compartment_id=compartment_id, awr_hub_source_id=awr_hub_source_id, source_type=source_type, name=name, status=status, lifecycle_state=lifecycle_state, limit=limit, sort_order=sort_order, sort_by=sort_by) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_awr_hubs"], + annotations=TOOL_ANNOTATIONS["list_awr_hubs"],) +def list_awr_hubs( + operations_insights_warehouse_id: str = Field(..., description='Unique Operations Insights Warehouse identifier'), + compartment_id: str | None = Field(None, description='The OCID of the compartment.'), + display_name: str | None = Field(None, description='A filter to return only resources that match the entire display name.'), + id: str | None = Field(None, description='Unique Awr Hub identifier'), + lifecycle_state: list[str] | None = Field(None, description='Lifecycle states Allowed values are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED"'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='The field to sort by. Only one sort order may be provided. Default order for timeCreated is descending. Default order for displayName is ascending. If no value is specified timeCreated is default. Allowed values are: "timeCreated", "displayName"'),) -> Any: + return invoke_opsi('list_awr_hubs', operations_insights_warehouse_id=operations_insights_warehouse_id, compartment_id=compartment_id, display_name=display_name, id=id, lifecycle_state=lifecycle_state, limit=limit, sort_order=sort_order, sort_by=sort_by) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_awr_snapshots"], + annotations=TOOL_ANNOTATIONS["list_awr_snapshots"],) +def list_awr_snapshots( + awr_hub_id: str = Field(..., description='Unique Awr Hub identifier'), + awr_source_database_identifier: str = Field(..., description='Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.'), + time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), + time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='The option to sort the AWR snapshot summary data. Default sort is by timeBegin. Allowed values are: "timeBegin", "snapshotId"'),) -> Any: + return invoke_opsi('list_awr_snapshots', awr_hub_id=awr_hub_id, awr_source_database_identifier=awr_source_database_identifier, time_greater_than_or_equal_to=time_greater_than_or_equal_to, time_less_than_or_equal_to=time_less_than_or_equal_to, limit=limit, sort_order=sort_order, sort_by=sort_by) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_chargeback_plan_reports"], + annotations=TOOL_ANNOTATIONS["list_chargeback_plan_reports"],) +def list_chargeback_plan_reports( + id: str = Field(..., description='Unique Ops insight identifier'), + resource_type: str = Field(..., description='Filter by resource type. Supported values are EXADATA_INSIGHT, HOST_INSIGHT, DATABASE_INSIGHT.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='The field to sort chargeback plan reports. Allowed values are: "timeCreated", "id"'),) -> Any: + return invoke_opsi('list_chargeback_plan_reports', id=id, resource_type=resource_type, limit=limit, sort_order=sort_order, sort_by=sort_by) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_chargeback_plans"], + annotations=TOOL_ANNOTATIONS["list_chargeback_plans"],) +def list_chargeback_plans( + compartment_id: str | None = Field(None, description='The OCID of the compartment.'), + chargebackplan_id: str | None = Field(None, description='The OCID of the Ops Insights chargeback plan.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='The field to sort chargeback plans. Allowed values are: "timeCreated", "id", "lifecycleState"'), + compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: + return invoke_opsi('list_chargeback_plans', compartment_id=compartment_id, chargebackplan_id=chargebackplan_id, limit=limit, sort_order=sort_order, sort_by=sort_by, compartment_id_in_subtree=compartment_id_in_subtree) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_database_configurations"], + annotations=TOOL_ANNOTATIONS["list_database_configurations"],) +def list_database_configurations( + compartment_id: str | None = Field(None, description='The OCID of the compartment.'), + enterprise_manager_bridge_id: str | None = Field(None, description='Unique Enterprise Manager bridge identifier'), + id: list[str] | None = Field(None, description='Optional list of database insight resource OCIDs.'), + database_id: list[str] | None = Field(None, description='Optional list of database OCIDs of the associated DBaaS entity.'), + exadata_insight_id: list[str] | None = Field(None, description='Optional list of exadata insight resource OCIDs.'), + cdb_name: list[str] | None = Field(None, description='Filter by one or more cdb name.'), + database_type: list[str] | None = Field(None, description='Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: "ADW-S", "ATP-S", "ADW-D", "ATP-D", "EXTERNAL-PDB", "EXTERNAL-NONCDB", "COMANAGED-VM-CDB", "COMANAGED-VM-PDB", "COMANAGED-VM-NONCDB", "COMANAGED-BM-CDB", "COMANAGED-BM-PDB", "COMANAGED-BM-NONCDB", "COMANAGED-EXACS-CDB", "COMANAGED-EXACS-PDB", "COMANAGED-EXACS-NONCDB", "COMANAGED-EXACC-CDB", "COMANAGED-EXACC-PDB", "COMANAGED-EXACC-NONCDB", "MDS-MYSQL", "EXTERNAL-MYSQL", "ATP-EXACC", "ADW-EXACC", "EXTERNAL-ADW", "EXTERNAL-ATP", "LH-D", "APEX-D", "AJD-D", "AVD-D", "LH-S", "APEX-S", "AJD-S", "AVD-S", "LH-EXACC", "APEX-EXACC", "AJD-EXACC", "AVD-EXACC"'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='Database configuration list sort options. If `fields` parameter is selected, the `sortBy` parameter must be one of the fields specified. Allowed values are: "databaseName", "databaseDisplayName", "databaseType"'), + host_name: list[str] | None = Field(None, description='Filter by one or more hostname.'), + compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'), + vmcluster_name: list[str] | None = Field(None, description='Optional list of Exadata Insight VM cluster name.'),) -> Any: + return invoke_opsi('list_database_configurations', compartment_id=compartment_id, enterprise_manager_bridge_id=enterprise_manager_bridge_id, id=id, database_id=database_id, exadata_insight_id=exadata_insight_id, cdb_name=cdb_name, database_type=database_type, limit=limit, sort_order=sort_order, sort_by=sort_by, host_name=host_name, compartment_id_in_subtree=compartment_id_in_subtree, vmcluster_name=vmcluster_name) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_database_insights"], + annotations=TOOL_ANNOTATIONS["list_database_insights"],) +def list_database_insights( + compartment_id: str | None = Field(None, description='The OCID of the compartment.'), + enterprise_manager_bridge_id: str | None = Field(None, description='Unique Enterprise Manager bridge identifier'), + id: list[str] | None = Field(None, description='Optional list of database insight resource OCIDs.'), + status: list[str] | None = Field(None, description='Resource Status Allowed values are: "DISABLED", "ENABLED", "TERMINATED"'), + lifecycle_state: list[str] | None = Field(None, description='Lifecycle states Allowed values are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION"'), + database_type: list[str] | None = Field(None, description='Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: "ADW-S", "ATP-S", "ADW-D", "ATP-D", "EXTERNAL-PDB", "EXTERNAL-NONCDB", "COMANAGED-VM-CDB", "COMANAGED-VM-PDB", "COMANAGED-VM-NONCDB", "COMANAGED-BM-CDB", "COMANAGED-BM-PDB", "COMANAGED-BM-NONCDB", "COMANAGED-EXACS-CDB", "COMANAGED-EXACS-PDB", "COMANAGED-EXACS-NONCDB", "COMANAGED-EXACC-CDB", "COMANAGED-EXACC-PDB", "COMANAGED-EXACC-NONCDB", "MDS-MYSQL", "EXTERNAL-MYSQL", "ATP-EXACC", "ADW-EXACC", "EXTERNAL-ADW", "EXTERNAL-ATP", "LH-D", "APEX-D", "AJD-D", "AVD-D", "LH-S", "APEX-S", "AJD-S", "AVD-S", "LH-EXACC", "APEX-EXACC", "AJD-EXACC", "AVD-EXACC"'), + database_id: list[str] | None = Field(None, description='Optional list of database OCIDs of the associated DBaaS entity.'), + fields: list[str] | None = Field(None, description='Specifies the fields to return in a database summary response. By default all fields are returned if omitted. Allowed values are: "compartmentId", "databaseName", "databaseDisplayName", "databaseType", "databaseVersion", "databaseHostNames", "freeformTags", "definedTags"'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='Database insight list sort options. If `fields` parameter is selected, the `sortBy` parameter must be one of the fields specified. Allowed values are: "databaseName", "databaseDisplayName", "databaseType"'), + exadata_insight_id: str | None = Field(None, description='OCID of exadata insight resource.'), + compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'), + opsi_private_endpoint_id: str | None = Field(None, description='Unique Operations Insights PrivateEndpoint identifier'),) -> Any: + return invoke_opsi('list_database_insights', compartment_id=compartment_id, enterprise_manager_bridge_id=enterprise_manager_bridge_id, id=id, status=status, lifecycle_state=lifecycle_state, database_type=database_type, database_id=database_id, fields=fields, limit=limit, sort_order=sort_order, sort_by=sort_by, exadata_insight_id=exadata_insight_id, compartment_id_in_subtree=compartment_id_in_subtree, opsi_private_endpoint_id=opsi_private_endpoint_id) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_enterprise_manager_bridges"], + annotations=TOOL_ANNOTATIONS["list_enterprise_manager_bridges"],) +def list_enterprise_manager_bridges( + compartment_id: str | None = Field(None, description='The OCID of the compartment.'), + display_name: str | None = Field(None, description='A filter to return only resources that match the entire display name.'), + id: str | None = Field(None, description='Unique Enterprise Manager bridge identifier'), + lifecycle_state: list[str] | None = Field(None, description='Lifecycle states Allowed values are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION"'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='The field to sort by. Only one sort order may be provided. Default order for timeCreated is descending. Default order for displayName is ascending. If no value is specified timeCreated is default. Allowed values are: "timeCreated", "displayName"'), + compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: + return invoke_opsi('list_enterprise_manager_bridges', compartment_id=compartment_id, display_name=display_name, id=id, lifecycle_state=lifecycle_state, limit=limit, sort_order=sort_order, sort_by=sort_by, compartment_id_in_subtree=compartment_id_in_subtree) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_exadata_configurations"], + annotations=TOOL_ANNOTATIONS["list_exadata_configurations"],) +def list_exadata_configurations( + compartment_id: str | None = Field(None, description='The OCID of the compartment.'), + exadata_insight_id: list[str] | None = Field(None, description='Optional list of exadata insight resource OCIDs.'), + exadata_type: list[str] | None = Field(None, description='Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='Exadata configuration list sort options. If `fields` parameter is selected, the `sortBy` parameter must be one of the fields specified. Allowed values are: "exadataName", "exadataDisplayName", "exadataType"'), + compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: + return invoke_opsi('list_exadata_configurations', compartment_id=compartment_id, exadata_insight_id=exadata_insight_id, exadata_type=exadata_type, limit=limit, sort_order=sort_order, sort_by=sort_by, compartment_id_in_subtree=compartment_id_in_subtree) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_exadata_insights"], + annotations=TOOL_ANNOTATIONS["list_exadata_insights"],) +def list_exadata_insights( + compartment_id: str | None = Field(None, description='The OCID of the compartment.'), + enterprise_manager_bridge_id: str | None = Field(None, description='Unique Enterprise Manager bridge identifier'), + id: list[str] | None = Field(None, description='Optional list of Exadata insight resource OCIDs.'), + status: list[str] | None = Field(None, description='Resource Status Allowed values are: "DISABLED", "ENABLED", "TERMINATED"'), + lifecycle_state: list[str] | None = Field(None, description='Lifecycle states Allowed values are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION"'), + exadata_type: list[str] | None = Field(None, description='Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='Exadata insight list sort options. If `fields` parameter is selected, the `sortBy` parameter must be one of the fields specified. Default order for timeCreated is descending. Default order for exadataName is ascending. If no value is specified timeCreated is default. Allowed values are: "timeCreated", "exadataName"'), + compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: + return invoke_opsi('list_exadata_insights', compartment_id=compartment_id, enterprise_manager_bridge_id=enterprise_manager_bridge_id, id=id, status=status, lifecycle_state=lifecycle_state, exadata_type=exadata_type, limit=limit, sort_order=sort_order, sort_by=sort_by, compartment_id_in_subtree=compartment_id_in_subtree) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_host_configurations"], + annotations=TOOL_ANNOTATIONS["list_host_configurations"],) +def list_host_configurations( + compartment_id: str | None = Field(None, description='The OCID of the compartment.'), + enterprise_manager_bridge_id: str | None = Field(None, description='Unique Enterprise Manager bridge identifier'), + id: list[str] | None = Field(None, description='Optional list of host insight resource OCIDs.'), + exadata_insight_id: list[str] | None = Field(None, description='Optional list of exadata insight resource OCIDs.'), + platform_type: list[str] | None = Field(None, description='Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX"'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='Host configuration list sort options. Allowed values are: "hostName", "platformType"'), + compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'), + host_type: list[str] | None = Field(None, description='Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST'), + host_id: str | None = Field(None, description='Optional OCID of the host (Compute Id).'), + vmcluster_name: list[str] | None = Field(None, description='Optional list of Exadata Insight VM cluster name.'), + status: list[str] | None = Field(None, description='Resource Status Allowed values are: "DISABLED", "ENABLED", "TERMINATED"'),) -> Any: + return invoke_opsi('list_host_configurations', compartment_id=compartment_id, enterprise_manager_bridge_id=enterprise_manager_bridge_id, id=id, exadata_insight_id=exadata_insight_id, platform_type=platform_type, limit=limit, sort_order=sort_order, sort_by=sort_by, compartment_id_in_subtree=compartment_id_in_subtree, host_type=host_type, host_id=host_id, vmcluster_name=vmcluster_name, status=status) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_host_insights"], + annotations=TOOL_ANNOTATIONS["list_host_insights"],) +def list_host_insights( + compartment_id: str | None = Field(None, description='The OCID of the compartment.'), + id: list[str] | None = Field(None, description='Optional list of host insight resource OCIDs.'), + status: list[str] | None = Field(None, description='Resource Status Allowed values are: "DISABLED", "ENABLED", "TERMINATED"'), + lifecycle_state: list[str] | None = Field(None, description='Lifecycle states Allowed values are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION"'), + host_type: list[str] | None = Field(None, description='Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST'), + platform_type: list[str] | None = Field(None, description='Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX"'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='Host insight list sort options. If `fields` parameter is selected, the `sortBy` parameter must be one of the fields specified. Allowed values are: "hostName", "hostType"'), + enterprise_manager_bridge_id: str | None = Field(None, description='Unique Enterprise Manager bridge identifier'), + exadata_insight_id: str | None = Field(None, description='OCID of exadata insight resource.'), + compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: + return invoke_opsi('list_host_insights', compartment_id=compartment_id, id=id, status=status, lifecycle_state=lifecycle_state, host_type=host_type, platform_type=platform_type, limit=limit, sort_order=sort_order, sort_by=sort_by, enterprise_manager_bridge_id=enterprise_manager_bridge_id, exadata_insight_id=exadata_insight_id, compartment_id_in_subtree=compartment_id_in_subtree) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_hosted_entities"], + annotations=TOOL_ANNOTATIONS["list_hosted_entities"],) +def list_hosted_entities( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + id: str = Field(..., description='Required OCID of the host insight resource.'), + analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), + time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), + time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), + platform_type: list[str] | None = Field(None, description='Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX"'), + exadata_insight_id: str | None = Field(None, description='OCID of exadata insight resource.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='Hosted entity list sort options. Allowed values are: "entityName", "entityType"'), + host_type: list[str] | None = Field(None, description='Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST'), + host_id: str | None = Field(None, description='Optional OCID of the host (Compute Id).'), + status: list[str] | None = Field(None, description='Resource Status Allowed values are: "DISABLED", "ENABLED", "TERMINATED"'),) -> Any: + return invoke_opsi('list_hosted_entities', compartment_id=compartment_id, id=id, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, platform_type=platform_type, exadata_insight_id=exadata_insight_id, limit=limit, sort_order=sort_order, sort_by=sort_by, host_type=host_type, host_id=host_id, status=status) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_importable_agent_entities"], + annotations=TOOL_ANNOTATIONS["list_importable_agent_entities"],) +def list_importable_agent_entities( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='Hosted entity list sort options. Allowed values are: "entityName", "entityType"'),) -> Any: + return invoke_opsi('list_importable_agent_entities', compartment_id=compartment_id, limit=limit, sort_order=sort_order, sort_by=sort_by) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_importable_compute_entities"], + annotations=TOOL_ANNOTATIONS["list_importable_compute_entities"],) +def list_importable_compute_entities( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='Compute entity list sort options. Allowed values are: "computeId", "computeDisplayName", "platformType", "hostName"'),) -> Any: + return invoke_opsi('list_importable_compute_entities', compartment_id=compartment_id, limit=limit, sort_order=sort_order, sort_by=sort_by) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_importable_enterprise_manager_entities"], + annotations=TOOL_ANNOTATIONS["list_importable_enterprise_manager_entities"],) +def list_importable_enterprise_manager_entities( + enterprise_manager_bridge_id: str = Field(..., description='Unique Enterprise Manager bridge identifier'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + enterprise_manager_entity_type: list[str] | None = Field(None, description='Filter by one or more Enterprise Manager entity types. Currently, the supported types are "oracle_pdb", "oracle_database", "host", "oracle_dbmachine", "oracle_exa_cloud_service", and "oracle_oci_exadata_cloud_service". If this parameter is not specified, targets of all supported entity types are returned by default.'), + enterprise_manager_identifier: str | None = Field(None, description='Used in combination with enterpriseManagerParentEntityIdentifier to return the members of a particular Enterprise Manager parent entity. Both enterpriseManagerIdentifier and enterpriseManagerParentEntityIdentifier must be specified to identify a particular Enterprise Manager parent entity.'), + enterprise_manager_parent_entity_identifier: str | None = Field(None, description='Used in combination with enterpriseManagerIdentifier to return the members of a particular Enterprise Manager parent entity. Both enterpriseManagerIdentifier and enterpriseManagerParentEntityIdentifier must be specified to identify a particular Enterprise Manager parent entity.'),) -> Any: + return invoke_opsi('list_importable_enterprise_manager_entities', enterprise_manager_bridge_id=enterprise_manager_bridge_id, limit=limit, enterprise_manager_entity_type=enterprise_manager_entity_type, enterprise_manager_identifier=enterprise_manager_identifier, enterprise_manager_parent_entity_identifier=enterprise_manager_parent_entity_identifier) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_news_reports"], + annotations=TOOL_ANNOTATIONS["list_news_reports"],) +def list_news_reports( + compartment_id: str | None = Field(None, description='The OCID of the compartment.'), + news_report_id: str | None = Field(None, description='Unique Ops Insights news report identifier'), + status: list[str] | None = Field(None, description='Resource Status Allowed values are: "DISABLED", "ENABLED", "TERMINATED"'), + lifecycle_state: list[str] | None = Field(None, description='Lifecycle states Allowed values are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION"'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='News report list sort options. If `fields` parameter is selected, the `sortBy` parameter must be one of the fields specified. Allowed values are: "name", "newsFrequency"'), + compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: + return invoke_opsi('list_news_reports', compartment_id=compartment_id, news_report_id=news_report_id, status=status, lifecycle_state=lifecycle_state, limit=limit, sort_order=sort_order, sort_by=sort_by, compartment_id_in_subtree=compartment_id_in_subtree) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_operations_insights_private_endpoints"], + annotations=TOOL_ANNOTATIONS["list_operations_insights_private_endpoints"],) +def list_operations_insights_private_endpoints( + compartment_id: str | None = Field(None, description='The OCID of the compartment.'), + display_name: str | None = Field(None, description='A filter to return only resources that match the entire display name.'), + opsi_private_endpoint_id: str | None = Field(None, description='Unique Operations Insights PrivateEndpoint identifier'), + is_used_for_rac_dbs: bool | None = Field(None, description='The option to filter OPSI private endpoints that can used for RAC. Should be used along with vcnId query parameter.'), + vcn_id: str | None = Field(None, description='The OCID of the VCN.'), + lifecycle_state: list[str] | None = Field(None, description='Lifecycle states Allowed values are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION"'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='The field to sort private endpoints. Allowed values are: "timeCreated", "id", "displayName"'), + compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: + return invoke_opsi('list_operations_insights_private_endpoints', compartment_id=compartment_id, display_name=display_name, opsi_private_endpoint_id=opsi_private_endpoint_id, is_used_for_rac_dbs=is_used_for_rac_dbs, vcn_id=vcn_id, lifecycle_state=lifecycle_state, limit=limit, sort_order=sort_order, sort_by=sort_by, compartment_id_in_subtree=compartment_id_in_subtree) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_operations_insights_warehouse_users"], + annotations=TOOL_ANNOTATIONS["list_operations_insights_warehouse_users"],) +def list_operations_insights_warehouse_users( + operations_insights_warehouse_id: str = Field(..., description='Unique Operations Insights Warehouse identifier'), + compartment_id: str | None = Field(None, description='The OCID of the compartment.'), + display_name: str | None = Field(None, description='A filter to return only resources that match the entire display name.'), + id: str | None = Field(None, description='Unique Operations Insights Warehouse User identifier'), + lifecycle_state: list[str] | None = Field(None, description='Lifecycle states Allowed values are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED"'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='The field to sort by. Only one sort order may be provided. Default order for timeCreated is descending. Default order for displayName is ascending. If no value is specified timeCreated is default. Allowed values are: "timeCreated", "displayName"'),) -> Any: + return invoke_opsi('list_operations_insights_warehouse_users', operations_insights_warehouse_id=operations_insights_warehouse_id, compartment_id=compartment_id, display_name=display_name, id=id, lifecycle_state=lifecycle_state, limit=limit, sort_order=sort_order, sort_by=sort_by) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_operations_insights_warehouses"], + annotations=TOOL_ANNOTATIONS["list_operations_insights_warehouses"],) +def list_operations_insights_warehouses( + compartment_id: str | None = Field(None, description='The OCID of the compartment.'), + display_name: str | None = Field(None, description='A filter to return only resources that match the entire display name.'), + id: str | None = Field(None, description='Unique Ops Insights Warehouse identifier'), + lifecycle_state: list[str] | None = Field(None, description='Lifecycle states Allowed values are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED"'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='The field to sort by. Only one sort order may be provided. Default order for timeCreated is descending. Default order for displayName is ascending. If no value is specified timeCreated is default. Allowed values are: "timeCreated", "displayName"'),) -> Any: + return invoke_opsi('list_operations_insights_warehouses', compartment_id=compartment_id, display_name=display_name, id=id, lifecycle_state=lifecycle_state, limit=limit, sort_order=sort_order, sort_by=sort_by) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_opsi_configurations"], + annotations=TOOL_ANNOTATIONS["list_opsi_configurations"],) +def list_opsi_configurations( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + display_name: str | None = Field(None, description='Filter to return based on resources that match the entire display name.'), + lifecycle_state: list[str] | None = Field(None, description='Filter to return based on Lifecycle state of OPSI configuration. Allowed values are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED"'), + opsi_config_type: list[str] | None = Field(None, description='Filter to return based on configuration type of OPSI configuration. Allowed values are: "UX_CONFIGURATION"'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='OPSI configurations list sort options. Allowed values are: "displayName"'),) -> Any: + return invoke_opsi('list_opsi_configurations', compartment_id=compartment_id, display_name=display_name, lifecycle_state=lifecycle_state, opsi_config_type=opsi_config_type, limit=limit, sort_order=sort_order, sort_by=sort_by) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_opsi_data_objects"], + annotations=TOOL_ANNOTATIONS["list_opsi_data_objects"],) +def list_opsi_data_objects( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + data_object_type: list[str] | None = Field(None, description='OPSI data object types. Allowed values are: "DATABASE_INSIGHTS_DATA_OBJECT", "HOST_INSIGHTS_DATA_OBJECT", "EXADATA_INSIGHTS_DATA_OBJECT"'), + display_name: str | None = Field(None, description='A filter to return only resources that match the entire display name.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='OPSI data object list sort options. Allowed values are: "displayName", "dataObjectType", "name"'), + group_name: str | None = Field(None, description='A filter to return only data objects that belongs to the group of the given group name. By default, no filtering will be applied on group name.'), + name: str | None = Field(None, description='A filter to return only data objects that match the entire data object name. By default, no filtering will be applied on data object name.'),) -> Any: + return invoke_opsi('list_opsi_data_objects', compartment_id=compartment_id, data_object_type=data_object_type, display_name=display_name, limit=limit, sort_order=sort_order, sort_by=sort_by, group_name=group_name, name=name) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_sql_plans"], + annotations=TOOL_ANNOTATIONS["list_sql_plans"],) +def list_sql_plans( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + sql_identifier: str = Field(..., description='Unique SQL_ID for a SQL Statement. Example: `6rgjh9bjmy2s7`'), + plan_hash: list[int] = Field(..., description='Unique plan hash for a SQL Plan of a particular SQL Statement. Example: `9820154385`'), + database_id: str | None = Field(None, description='Optional OCID of the associated DBaaS entity.'), + id: str | None = Field(None, description='OCID of the database insight resource.'),) -> Any: + return invoke_opsi('list_sql_plans', compartment_id=compartment_id, sql_identifier=sql_identifier, plan_hash=plan_hash, database_id=database_id, id=id) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_sql_texts"], + annotations=TOOL_ANNOTATIONS["list_sql_texts"],) +def list_sql_texts( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + sql_identifier: list[str] = Field(..., description='One or more unique SQL_IDs for a SQL Statement. Example: `6rgjh9bjmy2s7`'), + database_id: list[str] | None = Field(None, description='Optional list of database OCIDs of the assosicated DBaaS entity.'), + id: list[str] | None = Field(None, description='Optional list of database OCIDs of the database insight resource.'), + compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: + return invoke_opsi('list_sql_texts', compartment_id=compartment_id, sql_identifier=sql_identifier, database_id=database_id, id=id, compartment_id_in_subtree=compartment_id_in_subtree) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_warehouse_data_objects"], + annotations=TOOL_ANNOTATIONS["list_warehouse_data_objects"],) +def list_warehouse_data_objects( + warehouse_type: str = Field(..., description='Type of the Warehouse. Allowed values are: "awrHubs"'), + warehouse_id: str = Field(..., description='The OCID of a Warehouse.'), + data_object_type: list[str] | None = Field(None, description='A filter to return only data objects that match the data object type. By default, no filtering will be applied on data object type. Allowed values are: "VIEW", "TABLE"'), + name: str | None = Field(None, description='A filter to return only data objects that match the entire data object name. By default, no filtering will be applied on data object name.'), + owner: str | None = Field(None, description='A filter to return only data objects that match the entire data object owner name. By default, no filtering will be applied on data object owner name.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='Sort options for Warehouse data objects list. Allowed values are: "dataObjectType", "name", "owner"'), + summary_field: list[str] | None = Field(None, description='Specifies the optional fields to return in a WarehouseDataObjectSummary. Unless requested, these fields are not returned by default. Allowed values are: "details"'),) -> Any: + return invoke_opsi('list_warehouse_data_objects', warehouse_type=warehouse_type, warehouse_id=warehouse_id, data_object_type=data_object_type, name=name, owner=owner, limit=limit, sort_order=sort_order, sort_by=sort_by, summary_field=summary_field) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_work_request_errors"], + annotations=TOOL_ANNOTATIONS["list_work_request_errors"],) +def list_work_request_errors( + work_request_id: str = Field(..., description='The ID of the asynchronous request.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: str | None = Field(None, description='The field to sort by. Only one sort order may be provided. Default order for timeAccepted is descending. Allowed values are: "timeAccepted"'), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'),) -> Any: + return invoke_opsi('list_work_request_errors', work_request_id=work_request_id, limit=limit, sort_by=sort_by, sort_order=sort_order) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_work_request_logs"], + annotations=TOOL_ANNOTATIONS["list_work_request_logs"],) +def list_work_request_logs( + work_request_id: str = Field(..., description='The ID of the asynchronous request.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: str | None = Field(None, description='The field to sort by. Only one sort order may be provided. Default order for timeAccepted is descending. Allowed values are: "timeAccepted"'), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'),) -> Any: + return invoke_opsi('list_work_request_logs', work_request_id=work_request_id, limit=limit, sort_by=sort_by, sort_order=sort_order) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["list_work_requests"], + annotations=TOOL_ANNOTATIONS["list_work_requests"],) +def list_work_requests( + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + compartment_id: str | None = Field(None, description='The OCID of the compartment.'), + id: str | None = Field(None, description='The ID of the asynchronous work request.'), + status: str | None = Field(None, description='A filter to return only resources their lifecycleState matches the given OperationStatus. Allowed values are: "ACCEPTED", "IN_PROGRESS", "WAITING", "FAILED", "SUCCEEDED", "CANCELING", "CANCELED"'), + resource_id: str | None = Field(None, description='The ID of the resource affected by the work request.'), + related_resource_id: str | None = Field(None, description='The ID of the related resource for the resource affected by the work request, e.g. the related Exadata Insight OCID of the Database Insight work request'), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='The field to sort by. Only one sort order may be provided. Default order for timeAccepted is descending. Allowed values are: "timeAccepted"'),) -> Any: + return invoke_opsi('list_work_requests', limit=limit, compartment_id=compartment_id, id=id, status=status, resource_id=resource_id, related_resource_id=related_resource_id, sort_order=sort_order, sort_by=sort_by) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["query_opsi_data_object_data"], + annotations=TOOL_ANNOTATIONS["query_opsi_data_object_data"],) +def query_opsi_data_object_data( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + query_opsi_data_object_data_details: dict[str, Any] | QueryOpsiDataObjectDataDetails = Field(..., description='The information to be used for querying an OPSI data object.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000),) -> Any: + return invoke_opsi('query_opsi_data_object_data', compartment_id=compartment_id, query_opsi_data_object_data_details=query_opsi_data_object_data_details, limit=limit) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["query_warehouse_data_object_data"], + annotations=TOOL_ANNOTATIONS["query_warehouse_data_object_data"],) +def query_warehouse_data_object_data( + warehouse_type: str = Field(..., description='Type of the Warehouse. Allowed values are: "awrHubs"'), + warehouse_id: str = Field(..., description='The OCID of a Warehouse.'), + query_warehouse_data_object_data_details: dict[str, Any] | QueryWarehouseDataObjectDataDetails = Field(..., description='The information to be used for querying a Warehouse.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000),) -> Any: + return invoke_opsi('query_warehouse_data_object_data', warehouse_type=warehouse_type, warehouse_id=warehouse_id, query_warehouse_data_object_data_details=query_warehouse_data_object_data_details, limit=limit) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_addm_db_findings"], + annotations=TOOL_ANNOTATIONS["summarize_addm_db_findings"],) +def summarize_addm_db_findings( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + database_id: list[str] | None = Field(None, description='Optional list of database OCIDs of the associated DBaaS entity.'), + id: list[str] | None = Field(None, description='Optional list of database insight resource OCIDs.'), + instance_number: str | None = Field(None, description='The optional single value query parameter to filter by database instance number.'), + time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), + time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), + category_name: str | None = Field(None, description='Optional value filter to match the finding category exactly.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='Field name for sorting the ADDM finding summary data Allowed values are: "impactOverallPercent", "impactMaxPercent", "impactAvgActiveSessions", "frequencyCount"'), + compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: + return invoke_opsi('summarize_addm_db_findings', compartment_id=compartment_id, database_id=database_id, id=id, instance_number=instance_number, time_interval_start=time_interval_start, time_interval_end=time_interval_end, category_name=category_name, limit=limit, sort_order=sort_order, sort_by=sort_by, compartment_id_in_subtree=compartment_id_in_subtree) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_addm_db_parameter_changes"], + annotations=TOOL_ANNOTATIONS["summarize_addm_db_parameter_changes"],) +def summarize_addm_db_parameter_changes( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + name: str = Field(..., description='Required filter to return only changes for the specified parameter. The match is case sensitive.'), + database_id: list[str] | None = Field(None, description='Optional list of database OCIDs of the associated DBaaS entity.'), + id: list[str] | None = Field(None, description='Optional list of database insight resource OCIDs.'), + instance_number: str | None = Field(None, description='The optional single value query parameter to filter by database instance number.'), + time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), + time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), + value_contains: str | None = Field(None, description='Optional filter to return only resources whose value contains the substring given. The match is not case sensitive.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='Field name for sorting the database parameter change data Allowed values are: "isChanged", "beginSnapId"'), + compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: + return invoke_opsi('summarize_addm_db_parameter_changes', compartment_id=compartment_id, name=name, database_id=database_id, id=id, instance_number=instance_number, time_interval_start=time_interval_start, time_interval_end=time_interval_end, value_contains=value_contains, limit=limit, sort_order=sort_order, sort_by=sort_by, compartment_id_in_subtree=compartment_id_in_subtree) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_addm_db_parameters"], + annotations=TOOL_ANNOTATIONS["summarize_addm_db_parameters"],) +def summarize_addm_db_parameters( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + database_id: list[str] | None = Field(None, description='Optional list of database OCIDs of the associated DBaaS entity.'), + id: list[str] | None = Field(None, description='Optional list of database insight resource OCIDs.'), + instance_number: str | None = Field(None, description='The optional single value query parameter to filter by database instance number.'), + time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), + time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), + category_name: str | None = Field(None, description='Optional value filter to match an ADDM database parameter category exactly. Use a category name returned by ADDM database parameter category results.'), + name_or_value_contains: str | None = Field(None, description='Optional filter to return only resources whose name or value contains the substring given. The match is not case sensitive.'), + is_changed: str | None = Field(None, description='Optional filter to return only parameters whose value changed in the specified time period. Valid values include: TRUE, FALSE Allowed values are: "TRUE", "FALSE"'), + is_default: str | None = Field(None, description='Optional filter to return only parameters whose end value was set to the default value (TRUE) or was specified in the parameter file (FALSE). Valid values include: TRUE, FALSE Allowed values are: "TRUE", "FALSE"'), + has_recommendations: str | None = Field(None, description='Optional filter to return only parameters which have recommendations in the specified time period. Valid values include: TRUE, FALSE Allowed values are: "TRUE", "FALSE"'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='Field name for sorting the database parameter data Allowed values are: "isChanged", "name"'), + compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: + return invoke_opsi('summarize_addm_db_parameters', compartment_id=compartment_id, database_id=database_id, id=id, instance_number=instance_number, time_interval_start=time_interval_start, time_interval_end=time_interval_end, category_name=category_name, name_or_value_contains=name_or_value_contains, is_changed=is_changed, is_default=is_default, has_recommendations=has_recommendations, limit=limit, sort_order=sort_order, sort_by=sort_by, compartment_id_in_subtree=compartment_id_in_subtree) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_addm_db_recommendations"], + annotations=TOOL_ANNOTATIONS["summarize_addm_db_recommendations"],) +def summarize_addm_db_recommendations( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + database_id: list[str] | None = Field(None, description='Optional list of database OCIDs of the associated DBaaS entity.'), + id: list[str] | None = Field(None, description='Optional list of database insight resource OCIDs.'), + instance_number: str | None = Field(None, description='The optional single value query parameter to filter by database instance number.'), + time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), + time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), + category_name: str | None = Field(None, description='Optional value filter to match the finding category exactly.'), + finding_identifier: str | None = Field(None, description='Unique finding ID'), + sql_identifier: str | None = Field(None, description='Optional filter to return only resources whose sql id matches the value given. Only considered when categoryName is SQL_TUNING.'), + owner_or_name_contains: str | None = Field(None, description='Optional filter to return only resources whose owner or name contains the substring given. The match is not case sensitive. Only considered when categoryName is SCHEMA_OBJECT.'), + name_contains: str | None = Field(None, description='Optional filter to return only resources whose name contains the substring given. The match is not case sensitive. Only considered when categoryName is DATABASE_CONFIGURATION.'), + name: str | None = Field(None, description='Optional filter to return only resources whose name exactly matches the substring given. The match is case sensitive. Only considered when categoryName is DATABASE_CONFIGURATION.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='Field name for sorting the recommendation data Allowed values are: "maxBenefitPercent", "maxBenefitAvgActiveSessions", "frequencyCount"'), + compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: + return invoke_opsi('summarize_addm_db_recommendations', compartment_id=compartment_id, database_id=database_id, id=id, instance_number=instance_number, time_interval_start=time_interval_start, time_interval_end=time_interval_end, category_name=category_name, finding_identifier=finding_identifier, sql_identifier=sql_identifier, owner_or_name_contains=owner_or_name_contains, name_contains=name_contains, name=name, limit=limit, sort_order=sort_order, sort_by=sort_by, compartment_id_in_subtree=compartment_id_in_subtree) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_addm_db_schema_objects"], + annotations=TOOL_ANNOTATIONS["summarize_addm_db_schema_objects"],) +def summarize_addm_db_schema_objects( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + object_identifier: list[int] = Field(..., description='One or more unique Object id (from RDBMS)'), + database_id: list[str] | None = Field(None, description='Optional list of database OCIDs of the associated DBaaS entity.'), + id: list[str] | None = Field(None, description='Optional list of database insight resource OCIDs.'), + time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), + time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: + return invoke_opsi('summarize_addm_db_schema_objects', compartment_id=compartment_id, object_identifier=object_identifier, database_id=database_id, id=id, time_interval_start=time_interval_start, time_interval_end=time_interval_end, limit=limit, compartment_id_in_subtree=compartment_id_in_subtree) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_addm_db_sql_statements"], + annotations=TOOL_ANNOTATIONS["summarize_addm_db_sql_statements"],) +def summarize_addm_db_sql_statements( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + sql_identifier: list[str] = Field(..., description='One or more unique SQL_IDs for a SQL Statement. Example: `6rgjh9bjmy2s7`'), + database_id: list[str] | None = Field(None, description='Optional list of database OCIDs of the associated DBaaS entity.'), + id: list[str] | None = Field(None, description='Optional list of database insight resource OCIDs.'), + time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), + time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: + return invoke_opsi('summarize_addm_db_sql_statements', compartment_id=compartment_id, sql_identifier=sql_identifier, database_id=database_id, id=id, time_interval_start=time_interval_start, time_interval_end=time_interval_end, limit=limit, compartment_id_in_subtree=compartment_id_in_subtree) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_awr_database_cpu_usages"], + annotations=TOOL_ANNOTATIONS["summarize_awr_database_cpu_usages"],) +def summarize_awr_database_cpu_usages( + awr_hub_id: str = Field(..., description='Unique Awr Hub identifier'), + awr_source_database_identifier: str = Field(..., description='Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.'), + instance_number: str | None = Field(None, description='The optional single value query parameter to filter by database instance number.'), + begin_snapshot_identifier_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), + end_snapshot_identifier_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot Identifier.'), + time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), + time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), + session_type: str | None = Field(None, description='The optional query parameter to filter ASH activities by FOREGROUND or BACKGROUND. Allowed values are: "FOREGROUND", "BACKGROUND", "ALL"'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: str | None = Field(None, description='The option to sort the AWR CPU usage summary data. Allowed values are: "TIME_SAMPLED", "AVG_VALUE"'), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'),) -> Any: + return invoke_opsi('summarize_awr_database_cpu_usages', awr_hub_id=awr_hub_id, awr_source_database_identifier=awr_source_database_identifier, instance_number=instance_number, begin_snapshot_identifier_greater_than_or_equal_to=begin_snapshot_identifier_greater_than_or_equal_to, end_snapshot_identifier_less_than_or_equal_to=end_snapshot_identifier_less_than_or_equal_to, time_greater_than_or_equal_to=time_greater_than_or_equal_to, time_less_than_or_equal_to=time_less_than_or_equal_to, session_type=session_type, limit=limit, sort_by=sort_by, sort_order=sort_order) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_awr_database_metrics"], + annotations=TOOL_ANNOTATIONS["summarize_awr_database_metrics"],) +def summarize_awr_database_metrics( + awr_hub_id: str = Field(..., description='Unique Awr Hub identifier'), + awr_source_database_identifier: str = Field(..., description='Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.'), + name: list[str] = Field(..., description='The required multiple value query parameter to filter the entity name.'), + instance_number: str | None = Field(None, description='The optional single value query parameter to filter by database instance number.'), + begin_snapshot_identifier_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), + end_snapshot_identifier_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot Identifier.'), + time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), + time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: str | None = Field(None, description='The option to sort the AWR time series summary data. Allowed values are: "TIMESTAMP", "NAME"'), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'),) -> Any: + return invoke_opsi('summarize_awr_database_metrics', awr_hub_id=awr_hub_id, awr_source_database_identifier=awr_source_database_identifier, name=name, instance_number=instance_number, begin_snapshot_identifier_greater_than_or_equal_to=begin_snapshot_identifier_greater_than_or_equal_to, end_snapshot_identifier_less_than_or_equal_to=end_snapshot_identifier_less_than_or_equal_to, time_greater_than_or_equal_to=time_greater_than_or_equal_to, time_less_than_or_equal_to=time_less_than_or_equal_to, limit=limit, sort_by=sort_by, sort_order=sort_order) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_awr_database_parameter_changes"], + annotations=TOOL_ANNOTATIONS["summarize_awr_database_parameter_changes"],) +def summarize_awr_database_parameter_changes( + awr_hub_id: str = Field(..., description='Unique Awr Hub identifier'), + awr_source_database_identifier: str = Field(..., description='Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.'), + name: str = Field(..., description='The required single value query parameter to filter the entity name.'), + instance_number: str | None = Field(None, description='The optional single value query parameter to filter by database instance number.'), + begin_snapshot_identifier_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), + end_snapshot_identifier_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot Identifier.'), + time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), + time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: str | None = Field(None, description='The option to sort the AWR database parameter change history data. Allowed values are: "IS_CHANGED", "NAME"'), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'),) -> Any: + return invoke_opsi('summarize_awr_database_parameter_changes', awr_hub_id=awr_hub_id, awr_source_database_identifier=awr_source_database_identifier, name=name, instance_number=instance_number, begin_snapshot_identifier_greater_than_or_equal_to=begin_snapshot_identifier_greater_than_or_equal_to, end_snapshot_identifier_less_than_or_equal_to=end_snapshot_identifier_less_than_or_equal_to, time_greater_than_or_equal_to=time_greater_than_or_equal_to, time_less_than_or_equal_to=time_less_than_or_equal_to, limit=limit, sort_by=sort_by, sort_order=sort_order) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_awr_database_parameters"], + annotations=TOOL_ANNOTATIONS["summarize_awr_database_parameters"],) +def summarize_awr_database_parameters( + awr_hub_id: str = Field(..., description='Unique Awr Hub identifier'), + awr_source_database_identifier: str = Field(..., description='Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.'), + instance_number: str | None = Field(None, description='The optional single value query parameter to filter by database instance number.'), + begin_snapshot_identifier_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), + end_snapshot_identifier_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot Identifier.'), + time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), + time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), + name: list[str] | None = Field(None, description='The optional multiple value query parameter to filter the entity name.'), + name_contains: str | None = Field(None, description='The optional contains query parameter to filter the entity name by any part of the name.'), + value_changed: str | None = Field(None, description='The optional query parameter to filter database parameters whose values were changed. Allowed values are: "Y", "N"'), + value_default: str | None = Field(None, description='The optional query parameter to filter the database parameters that had the default value in the last snapshot. Allowed values are: "TRUE", "FALSE"'), + value_modified: str | None = Field(None, description='The optional query parameter to filter the database parameters that had a modified value in the last snapshot. Allowed values are: "MODIFIED", "SYSTEM_MOD", "FALSE"'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: str | None = Field(None, description='The option to sort the AWR database parameter change history data. Allowed values are: "IS_CHANGED", "NAME"'), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'),) -> Any: + return invoke_opsi('summarize_awr_database_parameters', awr_hub_id=awr_hub_id, awr_source_database_identifier=awr_source_database_identifier, instance_number=instance_number, begin_snapshot_identifier_greater_than_or_equal_to=begin_snapshot_identifier_greater_than_or_equal_to, end_snapshot_identifier_less_than_or_equal_to=end_snapshot_identifier_less_than_or_equal_to, time_greater_than_or_equal_to=time_greater_than_or_equal_to, time_less_than_or_equal_to=time_less_than_or_equal_to, name=name, name_contains=name_contains, value_changed=value_changed, value_default=value_default, value_modified=value_modified, limit=limit, sort_by=sort_by, sort_order=sort_order) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_awr_database_snapshot_ranges"], + annotations=TOOL_ANNOTATIONS["summarize_awr_database_snapshot_ranges"],) +def summarize_awr_database_snapshot_ranges( + awr_hub_id: str = Field(..., description='Unique Awr Hub identifier'), + name: str | None = Field(None, description='The optional single value query parameter to filter the entity name.'), + time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), + time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: str | None = Field(None, description='The option to sort the AWR summary data. Allowed values are: "END_INTERVAL_TIME", "NAME"'), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'),) -> Any: + return invoke_opsi('summarize_awr_database_snapshot_ranges', awr_hub_id=awr_hub_id, name=name, time_greater_than_or_equal_to=time_greater_than_or_equal_to, time_less_than_or_equal_to=time_less_than_or_equal_to, limit=limit, sort_by=sort_by, sort_order=sort_order) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_awr_database_sysstats"], + annotations=TOOL_ANNOTATIONS["summarize_awr_database_sysstats"],) +def summarize_awr_database_sysstats( + awr_hub_id: str = Field(..., description='Unique Awr Hub identifier'), + awr_source_database_identifier: str = Field(..., description='Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.'), + name: list[str] = Field(..., description='The required multiple value query parameter to filter the entity name.'), + instance_number: str | None = Field(None, description='The optional single value query parameter to filter by database instance number.'), + begin_snapshot_identifier_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), + end_snapshot_identifier_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot Identifier.'), + time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), + time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: str | None = Field(None, description='The option to sort the data within a time period. Allowed values are: "TIME_BEGIN", "NAME"'), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'),) -> Any: + return invoke_opsi('summarize_awr_database_sysstats', awr_hub_id=awr_hub_id, awr_source_database_identifier=awr_source_database_identifier, name=name, instance_number=instance_number, begin_snapshot_identifier_greater_than_or_equal_to=begin_snapshot_identifier_greater_than_or_equal_to, end_snapshot_identifier_less_than_or_equal_to=end_snapshot_identifier_less_than_or_equal_to, time_greater_than_or_equal_to=time_greater_than_or_equal_to, time_less_than_or_equal_to=time_less_than_or_equal_to, limit=limit, sort_by=sort_by, sort_order=sort_order) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_awr_database_top_wait_events"], + annotations=TOOL_ANNOTATIONS["summarize_awr_database_top_wait_events"],) +def summarize_awr_database_top_wait_events( + awr_hub_id: str = Field(..., description='Unique Awr Hub identifier'), + awr_source_database_identifier: str = Field(..., description='Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.'), + instance_number: str | None = Field(None, description='The optional single value query parameter to filter by database instance number.'), + begin_snapshot_identifier_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), + end_snapshot_identifier_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot Identifier.'), + time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), + time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), + session_type: str | None = Field(None, description='The optional query parameter to filter ASH activities by FOREGROUND or BACKGROUND. Allowed values are: "FOREGROUND", "BACKGROUND", "ALL"'), + top_n: int | None = Field(None, description='The optional query parameter to filter the number of top categories to be returned.'), + sort_by: str | None = Field(None, description='The option to sort the AWR top event summary data. Allowed values are: "WAITS_PERSEC", "AVG_WAIT_TIME_PERSEC"'), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'),) -> Any: + return invoke_opsi('summarize_awr_database_top_wait_events', awr_hub_id=awr_hub_id, awr_source_database_identifier=awr_source_database_identifier, instance_number=instance_number, begin_snapshot_identifier_greater_than_or_equal_to=begin_snapshot_identifier_greater_than_or_equal_to, end_snapshot_identifier_less_than_or_equal_to=end_snapshot_identifier_less_than_or_equal_to, time_greater_than_or_equal_to=time_greater_than_or_equal_to, time_less_than_or_equal_to=time_less_than_or_equal_to, session_type=session_type, top_n=top_n, sort_by=sort_by, sort_order=sort_order) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_awr_database_wait_event_buckets"], + annotations=TOOL_ANNOTATIONS["summarize_awr_database_wait_event_buckets"],) +def summarize_awr_database_wait_event_buckets( + awr_hub_id: str = Field(..., description='Unique Awr Hub identifier'), + awr_source_database_identifier: str = Field(..., description='Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.'), + name: str = Field(..., description='The required single value query parameter to filter the entity name.'), + instance_number: str | None = Field(None, description='The optional single value query parameter to filter by database instance number.'), + begin_snapshot_identifier_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), + end_snapshot_identifier_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot Identifier.'), + time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), + time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), + num_bucket: int | None = Field(None, description='The number of buckets within the histogram.'), + min_value: float | None = Field(None, description='The minimum value of the histogram.'), + max_value: float | None = Field(None, description='The maximum value of the histogram.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: str | None = Field(None, description='The option to sort distribution data. Allowed values are: "CATEGORY", "PERCENTAGE"'), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'),) -> Any: + return invoke_opsi('summarize_awr_database_wait_event_buckets', awr_hub_id=awr_hub_id, awr_source_database_identifier=awr_source_database_identifier, name=name, instance_number=instance_number, begin_snapshot_identifier_greater_than_or_equal_to=begin_snapshot_identifier_greater_than_or_equal_to, end_snapshot_identifier_less_than_or_equal_to=end_snapshot_identifier_less_than_or_equal_to, time_greater_than_or_equal_to=time_greater_than_or_equal_to, time_less_than_or_equal_to=time_less_than_or_equal_to, num_bucket=num_bucket, min_value=min_value, max_value=max_value, limit=limit, sort_by=sort_by, sort_order=sort_order) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_awr_database_wait_events"], + annotations=TOOL_ANNOTATIONS["summarize_awr_database_wait_events"],) +def summarize_awr_database_wait_events( + awr_hub_id: str = Field(..., description='Unique Awr Hub identifier'), + awr_source_database_identifier: str = Field(..., description='Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.'), + instance_number: str | None = Field(None, description='The optional single value query parameter to filter by database instance number.'), + begin_snapshot_identifier_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), + end_snapshot_identifier_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot Identifier.'), + time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), + time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), + name: list[str] | None = Field(None, description='The optional multiple value query parameter to filter the entity name.'), + session_type: str | None = Field(None, description='The optional query parameter to filter ASH activities by FOREGROUND or BACKGROUND. Allowed values are: "FOREGROUND", "BACKGROUND", "ALL"'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: str | None = Field(None, description='The option to sort the data within a time period. Allowed values are: "TIME_BEGIN", "NAME"'), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'),) -> Any: + return invoke_opsi('summarize_awr_database_wait_events', awr_hub_id=awr_hub_id, awr_source_database_identifier=awr_source_database_identifier, instance_number=instance_number, begin_snapshot_identifier_greater_than_or_equal_to=begin_snapshot_identifier_greater_than_or_equal_to, end_snapshot_identifier_less_than_or_equal_to=end_snapshot_identifier_less_than_or_equal_to, time_greater_than_or_equal_to=time_greater_than_or_equal_to, time_less_than_or_equal_to=time_less_than_or_equal_to, name=name, session_type=session_type, limit=limit, sort_by=sort_by, sort_order=sort_order) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_awr_sources_summaries"], + annotations=TOOL_ANNOTATIONS["summarize_awr_sources_summaries"],) +def summarize_awr_sources_summaries( + awr_hub_id: str = Field(..., description='Unique Awr Hub identifier'), + compartment_id: str | None = Field(None, description='The OCID of the compartment.'), + name: str | None = Field(None, description='Name for an Awr source database'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_by: str | None = Field(None, description='The order in which Awr sources summary records are listed Allowed values are: "snapshotsUploaded", "name"'), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'),) -> Any: + return invoke_opsi('summarize_awr_sources_summaries', awr_hub_id=awr_hub_id, compartment_id=compartment_id, name=name, limit=limit, sort_by=sort_by, sort_order=sort_order) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_configuration_items"], + annotations=TOOL_ANNOTATIONS["summarize_configuration_items"],) +def summarize_configuration_items( + compartment_id: str | None = Field(None, description='The OCID of the compartment.'), + opsi_config_type: str | None = Field(None, description='Filter to return configuration items based on configuration type of OPSI configuration. Allowed values are: "UX_CONFIGURATION"'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + config_items_applicable_context: list[str] | None = Field(None, description='Returns the configuration items filtered by applicable contexts sent in this param. By default configuration items of all applicable contexts are returned.'), + config_item_field: list[str] | None = Field(None, description='Specifies the fields to return in a config item summary. Allowed values are: "name", "value", "defaultValue", "valueSourceConfig", "metadata", "applicableContexts"'), + name: str | None = Field(None, description='A filter to return only configuration items that match the entire name.'),) -> Any: + return invoke_opsi('summarize_configuration_items', compartment_id=compartment_id, opsi_config_type=opsi_config_type, limit=limit, config_items_applicable_context=config_items_applicable_context, config_item_field=config_item_field, name=name) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_database_insight_resource_capacity_trend"], + annotations=TOOL_ANNOTATIONS["summarize_database_insight_resource_capacity_trend"],) +def summarize_database_insight_resource_capacity_trend( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + resource_metric: str = Field(..., description='Filter by resource metric. Supported values are CPU, STORAGE, MEMORY and IO.'), + analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), + time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), + time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), + database_type: list[str] | None = Field(None, description='Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: "ADW-S", "ATP-S", "ADW-D", "ATP-D", "EXTERNAL-PDB", "EXTERNAL-NONCDB", "COMANAGED-VM-CDB", "COMANAGED-VM-PDB", "COMANAGED-VM-NONCDB", "COMANAGED-BM-CDB", "COMANAGED-BM-PDB", "COMANAGED-BM-NONCDB", "COMANAGED-EXACS-CDB", "COMANAGED-EXACS-PDB", "COMANAGED-EXACS-NONCDB", "COMANAGED-EXACC-CDB", "COMANAGED-EXACC-PDB", "COMANAGED-EXACC-NONCDB", "MDS-MYSQL", "EXTERNAL-MYSQL", "ATP-EXACC", "ADW-EXACC", "EXTERNAL-ADW", "EXTERNAL-ATP", "LH-D", "APEX-D", "AJD-D", "AVD-D", "LH-S", "APEX-S", "AJD-S", "AVD-S", "LH-EXACC", "APEX-EXACC", "AJD-EXACC", "AVD-EXACC"'), + database_id: list[str] | None = Field(None, description='Optional list of database OCIDs of the associated DBaaS entity.'), + id: list[str] | None = Field(None, description='Optional list of database insight resource OCIDs.'), + exadata_insight_id: list[str] | None = Field(None, description='Optional list of exadata insight resource OCIDs.'), + cdb_name: list[str] | None = Field(None, description='Filter by one or more cdb name.'), + utilization_level: str | None = Field(None, description='Filter by utilization level by the following buckets: - HIGH_UTILIZATION: DBs with utilization greater or equal than 75. - LOW_UTILIZATION: DBs with utilization lower than 25. - MEDIUM_HIGH_UTILIZATION: DBs with utilization greater or equal than 50 but lower than 75. - MEDIUM_LOW_UTILIZATION: DBs with utilization greater or equal than 25 but lower than 50. Allowed values are: "HIGH_UTILIZATION", "LOW_UTILIZATION", "MEDIUM_HIGH_UTILIZATION", "MEDIUM_LOW_UTILIZATION"'), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='Sorts using end timestamp, capacity or baseCapacity Allowed values are: "endTimestamp", "capacity", "baseCapacity"'), + tablespace_name: str | None = Field(None, description='Tablespace name for a database'), + host_name: list[str] | None = Field(None, description='Filter by one or more hostname.'), + is_database_instance_level_metrics: bool | None = Field(None, description='Flag to indicate if database instance level metrics should be returned. The flag is ignored when a host name filter is not applied. When a hostname filter is applied this flag will determine whether to return metrics for the instances located on the specified host or for the whole database which contains an instance on this host.'), + compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'), + vmcluster_name: list[str] | None = Field(None, description='Optional list of Exadata Insight VM cluster name.'), + high_utilization_threshold: int | None = Field(None, description='Percent value in which a resource metric is considered highly utilized.'), + low_utilization_threshold: int | None = Field(None, description='Percent value in which a resource metric is considered low utilized.'),) -> Any: + return invoke_opsi('summarize_database_insight_resource_capacity_trend', compartment_id=compartment_id, resource_metric=resource_metric, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, database_type=database_type, database_id=database_id, id=id, exadata_insight_id=exadata_insight_id, cdb_name=cdb_name, utilization_level=utilization_level, sort_order=sort_order, sort_by=sort_by, tablespace_name=tablespace_name, host_name=host_name, is_database_instance_level_metrics=is_database_instance_level_metrics, compartment_id_in_subtree=compartment_id_in_subtree, vmcluster_name=vmcluster_name, high_utilization_threshold=high_utilization_threshold, low_utilization_threshold=low_utilization_threshold) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_database_insight_resource_forecast_trend"], + annotations=TOOL_ANNOTATIONS["summarize_database_insight_resource_forecast_trend"],) +def summarize_database_insight_resource_forecast_trend( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + resource_metric: str = Field(..., description='Filter by resource metric. Supported values are CPU, STORAGE, MEMORY and IO.'), + analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), + time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), + time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), + database_type: list[str] | None = Field(None, description='Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: "ADW-S", "ATP-S", "ADW-D", "ATP-D", "EXTERNAL-PDB", "EXTERNAL-NONCDB", "COMANAGED-VM-CDB", "COMANAGED-VM-PDB", "COMANAGED-VM-NONCDB", "COMANAGED-BM-CDB", "COMANAGED-BM-PDB", "COMANAGED-BM-NONCDB", "COMANAGED-EXACS-CDB", "COMANAGED-EXACS-PDB", "COMANAGED-EXACS-NONCDB", "COMANAGED-EXACC-CDB", "COMANAGED-EXACC-PDB", "COMANAGED-EXACC-NONCDB", "MDS-MYSQL", "EXTERNAL-MYSQL", "ATP-EXACC", "ADW-EXACC", "EXTERNAL-ADW", "EXTERNAL-ATP", "LH-D", "APEX-D", "AJD-D", "AVD-D", "LH-S", "APEX-S", "AJD-S", "AVD-S", "LH-EXACC", "APEX-EXACC", "AJD-EXACC", "AVD-EXACC"'), + database_id: list[str] | None = Field(None, description='Optional list of database OCIDs of the associated DBaaS entity.'), + id: list[str] | None = Field(None, description='Optional list of database insight resource OCIDs.'), + exadata_insight_id: list[str] | None = Field(None, description='Optional list of exadata insight resource OCIDs.'), + cdb_name: list[str] | None = Field(None, description='Filter by one or more cdb name.'), + statistic: str | None = Field(None, description='Choose the type of statistic metric data to be used for forecasting. Allowed values are: "AVG", "MAX"'), + forecast_days: int | None = Field(None, description='Number of days used for utilization forecast analysis.'), + forecast_model: str | None = Field(None, description='Choose algorithm model for the forecasting. Possible values: - LINEAR: Uses linear regression algorithm for forecasting. - ML_AUTO: Automatically detects best algorithm to use for forecasting. - ML_NO_AUTO: Automatically detects seasonality of the data for forecasting using linear or seasonal algorithm. Allowed values are: "LINEAR", "ML_AUTO", "ML_NO_AUTO"'), + utilization_level: str | None = Field(None, description='Filter by utilization level by the following buckets: - HIGH_UTILIZATION: DBs with utilization greater or equal than 75. - LOW_UTILIZATION: DBs with utilization lower than 25. - MEDIUM_HIGH_UTILIZATION: DBs with utilization greater or equal than 50 but lower than 75. - MEDIUM_LOW_UTILIZATION: DBs with utilization greater or equal than 25 but lower than 50. Allowed values are: "HIGH_UTILIZATION", "LOW_UTILIZATION", "MEDIUM_HIGH_UTILIZATION", "MEDIUM_LOW_UTILIZATION"'), + confidence: int | None = Field(None, description="This parameter is used to change data's confidence level, this data is ingested by the forecast algorithm. Confidence is the probability of an interval to contain the expected population parameter. Manipulation of this value will lead to different results. If not set, default confidence value is 95%."), + host_name: list[str] | None = Field(None, description='Filter by one or more hostname.'), + tablespace_name: str | None = Field(None, description='Tablespace name for a database'), + is_database_instance_level_metrics: bool | None = Field(None, description='Flag to indicate if database instance level metrics should be returned. The flag is ignored when a host name filter is not applied. When a hostname filter is applied this flag will determine whether to return metrics for the instances located on the specified host or for the whole database which contains an instance on this host.'), + compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'), + vmcluster_name: list[str] | None = Field(None, description='Optional list of Exadata Insight VM cluster name.'), + high_utilization_threshold: int | None = Field(None, description='Percent value in which a resource metric is considered highly utilized.'), + low_utilization_threshold: int | None = Field(None, description='Percent value in which a resource metric is considered low utilized.'),) -> Any: + return invoke_opsi('summarize_database_insight_resource_forecast_trend', compartment_id=compartment_id, resource_metric=resource_metric, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, database_type=database_type, database_id=database_id, id=id, exadata_insight_id=exadata_insight_id, cdb_name=cdb_name, statistic=statistic, forecast_days=forecast_days, forecast_model=forecast_model, utilization_level=utilization_level, confidence=confidence, host_name=host_name, tablespace_name=tablespace_name, is_database_instance_level_metrics=is_database_instance_level_metrics, compartment_id_in_subtree=compartment_id_in_subtree, vmcluster_name=vmcluster_name, high_utilization_threshold=high_utilization_threshold, low_utilization_threshold=low_utilization_threshold) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_database_insight_resource_statistics"], + annotations=TOOL_ANNOTATIONS["summarize_database_insight_resource_statistics"],) +def summarize_database_insight_resource_statistics( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + resource_metric: str = Field(..., description='Filter by resource metric. Supported values are CPU, STORAGE, MEMORY and IO.'), + analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), + time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), + time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), + database_type: list[str] | None = Field(None, description='Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: "ADW-S", "ATP-S", "ADW-D", "ATP-D", "EXTERNAL-PDB", "EXTERNAL-NONCDB", "COMANAGED-VM-CDB", "COMANAGED-VM-PDB", "COMANAGED-VM-NONCDB", "COMANAGED-BM-CDB", "COMANAGED-BM-PDB", "COMANAGED-BM-NONCDB", "COMANAGED-EXACS-CDB", "COMANAGED-EXACS-PDB", "COMANAGED-EXACS-NONCDB", "COMANAGED-EXACC-CDB", "COMANAGED-EXACC-PDB", "COMANAGED-EXACC-NONCDB", "MDS-MYSQL", "EXTERNAL-MYSQL", "ATP-EXACC", "ADW-EXACC", "EXTERNAL-ADW", "EXTERNAL-ATP", "LH-D", "APEX-D", "AJD-D", "AVD-D", "LH-S", "APEX-S", "AJD-S", "AVD-S", "LH-EXACC", "APEX-EXACC", "AJD-EXACC", "AVD-EXACC"'), + database_id: list[str] | None = Field(None, description='Optional list of database OCIDs of the associated DBaaS entity.'), + id: list[str] | None = Field(None, description='Optional list of database insight resource OCIDs.'), + exadata_insight_id: list[str] | None = Field(None, description='Optional list of exadata insight resource OCIDs.'), + cdb_name: list[str] | None = Field(None, description='Filter by one or more cdb name.'), + percentile: int | None = Field(None, description='Percentile values of daily usage to be used for computing the aggregate resource usage.'), + insight_by: str | None = Field(None, description='Return data of a specific insight Possible values are High Utilization, Low Utilization, Any,High Utilization Forecast, Low Utilization Forecast'), + forecast_days: int | None = Field(None, description='Number of days used for utilization forecast analysis.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='The order in which resource statistics records are listed Allowed values are: "utilizationPercent", "usage", "usageChangePercent", "databaseName", "databaseType"'), + host_name: list[str] | None = Field(None, description='Filter by one or more hostname.'), + is_database_instance_level_metrics: bool | None = Field(None, description='Flag to indicate if database instance level metrics should be returned. The flag is ignored when a host name filter is not applied. When a hostname filter is applied this flag will determine whether to return metrics for the instances located on the specified host or for the whole database which contains an instance on this host.'), + compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'), + vmcluster_name: list[str] | None = Field(None, description='Optional list of Exadata Insight VM cluster name.'), + high_utilization_threshold: int | None = Field(None, description='Percent value in which a resource metric is considered highly utilized.'), + low_utilization_threshold: int | None = Field(None, description='Percent value in which a resource metric is considered low utilized.'),) -> Any: + return invoke_opsi('summarize_database_insight_resource_statistics', compartment_id=compartment_id, resource_metric=resource_metric, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, database_type=database_type, database_id=database_id, id=id, exadata_insight_id=exadata_insight_id, cdb_name=cdb_name, percentile=percentile, insight_by=insight_by, forecast_days=forecast_days, limit=limit, sort_order=sort_order, sort_by=sort_by, host_name=host_name, is_database_instance_level_metrics=is_database_instance_level_metrics, compartment_id_in_subtree=compartment_id_in_subtree, vmcluster_name=vmcluster_name, high_utilization_threshold=high_utilization_threshold, low_utilization_threshold=low_utilization_threshold) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_database_insight_resource_usage"], + annotations=TOOL_ANNOTATIONS["summarize_database_insight_resource_usage"],) +def summarize_database_insight_resource_usage( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + resource_metric: str = Field(..., description='Filter by resource metric. Supported values are CPU, STORAGE, MEMORY and IO.'), + analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), + time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), + time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), + database_type: list[str] | None = Field(None, description='Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: "ADW-S", "ATP-S", "ADW-D", "ATP-D", "EXTERNAL-PDB", "EXTERNAL-NONCDB", "COMANAGED-VM-CDB", "COMANAGED-VM-PDB", "COMANAGED-VM-NONCDB", "COMANAGED-BM-CDB", "COMANAGED-BM-PDB", "COMANAGED-BM-NONCDB", "COMANAGED-EXACS-CDB", "COMANAGED-EXACS-PDB", "COMANAGED-EXACS-NONCDB", "COMANAGED-EXACC-CDB", "COMANAGED-EXACC-PDB", "COMANAGED-EXACC-NONCDB", "MDS-MYSQL", "EXTERNAL-MYSQL", "ATP-EXACC", "ADW-EXACC", "EXTERNAL-ADW", "EXTERNAL-ATP", "LH-D", "APEX-D", "AJD-D", "AVD-D", "LH-S", "APEX-S", "AJD-S", "AVD-S", "LH-EXACC", "APEX-EXACC", "AJD-EXACC", "AVD-EXACC"'), + database_id: list[str] | None = Field(None, description='Optional list of database OCIDs of the associated DBaaS entity.'), + id: list[str] | None = Field(None, description='Optional list of database insight resource OCIDs.'), + exadata_insight_id: list[str] | None = Field(None, description='Optional list of exadata insight resource OCIDs.'), + host_name: list[str] | None = Field(None, description='Filter by one or more hostname.'), + is_database_instance_level_metrics: bool | None = Field(None, description='Flag to indicate if database instance level metrics should be returned. The flag is ignored when a host name filter is not applied. When a hostname filter is applied this flag will determine whether to return metrics for the instances located on the specified host or for the whole database which contains an instance on this host.'), + percentile: int | None = Field(None, description='Percentile values of daily usage to be used for computing the aggregate resource usage.'), + compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'), + vmcluster_name: list[str] | None = Field(None, description='Optional list of Exadata Insight VM cluster name.'), + cdb_name: list[str] | None = Field(None, description='Filter by one or more cdb name.'),) -> Any: + return invoke_opsi('summarize_database_insight_resource_usage', compartment_id=compartment_id, resource_metric=resource_metric, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, database_type=database_type, database_id=database_id, id=id, exadata_insight_id=exadata_insight_id, host_name=host_name, is_database_instance_level_metrics=is_database_instance_level_metrics, percentile=percentile, compartment_id_in_subtree=compartment_id_in_subtree, vmcluster_name=vmcluster_name, cdb_name=cdb_name) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_database_insight_resource_usage_trend"], + annotations=TOOL_ANNOTATIONS["summarize_database_insight_resource_usage_trend"],) +def summarize_database_insight_resource_usage_trend( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + resource_metric: str = Field(..., description='Filter by resource metric. Supported values are CPU, STORAGE, MEMORY and IO.'), + analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), + time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), + time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), + database_type: list[str] | None = Field(None, description='Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: "ADW-S", "ATP-S", "ADW-D", "ATP-D", "EXTERNAL-PDB", "EXTERNAL-NONCDB", "COMANAGED-VM-CDB", "COMANAGED-VM-PDB", "COMANAGED-VM-NONCDB", "COMANAGED-BM-CDB", "COMANAGED-BM-PDB", "COMANAGED-BM-NONCDB", "COMANAGED-EXACS-CDB", "COMANAGED-EXACS-PDB", "COMANAGED-EXACS-NONCDB", "COMANAGED-EXACC-CDB", "COMANAGED-EXACC-PDB", "COMANAGED-EXACC-NONCDB", "MDS-MYSQL", "EXTERNAL-MYSQL", "ATP-EXACC", "ADW-EXACC", "EXTERNAL-ADW", "EXTERNAL-ATP", "LH-D", "APEX-D", "AJD-D", "AVD-D", "LH-S", "APEX-S", "AJD-S", "AVD-S", "LH-EXACC", "APEX-EXACC", "AJD-EXACC", "AVD-EXACC"'), + database_id: list[str] | None = Field(None, description='Optional list of database OCIDs of the associated DBaaS entity.'), + id: list[str] | None = Field(None, description='Optional list of database insight resource OCIDs.'), + exadata_insight_id: list[str] | None = Field(None, description='Optional list of exadata insight resource OCIDs.'), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='Sorts using end timestamp, usage or capacity Allowed values are: "endTimestamp", "usage", "capacity"'), + host_name: list[str] | None = Field(None, description='Filter by one or more hostname.'), + is_database_instance_level_metrics: bool | None = Field(None, description='Flag to indicate if database instance level metrics should be returned. The flag is ignored when a host name filter is not applied. When a hostname filter is applied this flag will determine whether to return metrics for the instances located on the specified host or for the whole database which contains an instance on this host.'), + compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'), + vmcluster_name: list[str] | None = Field(None, description='Optional list of Exadata Insight VM cluster name.'), + cdb_name: list[str] | None = Field(None, description='Filter by one or more cdb name.'),) -> Any: + return invoke_opsi('summarize_database_insight_resource_usage_trend', compartment_id=compartment_id, resource_metric=resource_metric, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, database_type=database_type, database_id=database_id, id=id, exadata_insight_id=exadata_insight_id, sort_order=sort_order, sort_by=sort_by, host_name=host_name, is_database_instance_level_metrics=is_database_instance_level_metrics, compartment_id_in_subtree=compartment_id_in_subtree, vmcluster_name=vmcluster_name, cdb_name=cdb_name) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_database_insight_resource_utilization_insight"], + annotations=TOOL_ANNOTATIONS["summarize_database_insight_resource_utilization_insight"],) +def summarize_database_insight_resource_utilization_insight( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + resource_metric: str = Field(..., description='Filter by resource metric. Supported values are CPU, STORAGE, MEMORY and IO.'), + analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), + time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), + time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), + database_type: list[str] | None = Field(None, description='Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: "ADW-S", "ATP-S", "ADW-D", "ATP-D", "EXTERNAL-PDB", "EXTERNAL-NONCDB", "COMANAGED-VM-CDB", "COMANAGED-VM-PDB", "COMANAGED-VM-NONCDB", "COMANAGED-BM-CDB", "COMANAGED-BM-PDB", "COMANAGED-BM-NONCDB", "COMANAGED-EXACS-CDB", "COMANAGED-EXACS-PDB", "COMANAGED-EXACS-NONCDB", "COMANAGED-EXACC-CDB", "COMANAGED-EXACC-PDB", "COMANAGED-EXACC-NONCDB", "MDS-MYSQL", "EXTERNAL-MYSQL", "ATP-EXACC", "ADW-EXACC", "EXTERNAL-ADW", "EXTERNAL-ATP", "LH-D", "APEX-D", "AJD-D", "AVD-D", "LH-S", "APEX-S", "AJD-S", "AVD-S", "LH-EXACC", "APEX-EXACC", "AJD-EXACC", "AVD-EXACC"'), + database_id: list[str] | None = Field(None, description='Optional list of database OCIDs of the associated DBaaS entity.'), + id: list[str] | None = Field(None, description='Optional list of database insight resource OCIDs.'), + exadata_insight_id: list[str] | None = Field(None, description='Optional list of exadata insight resource OCIDs.'), + forecast_days: int | None = Field(None, description='Number of days used for utilization forecast analysis.'), + host_name: list[str] | None = Field(None, description='Filter by one or more hostname.'), + is_database_instance_level_metrics: bool | None = Field(None, description='Flag to indicate if database instance level metrics should be returned. The flag is ignored when a host name filter is not applied. When a hostname filter is applied this flag will determine whether to return metrics for the instances located on the specified host or for the whole database which contains an instance on this host.'), + compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'), + vmcluster_name: list[str] | None = Field(None, description='Optional list of Exadata Insight VM cluster name.'), + cdb_name: list[str] | None = Field(None, description='Filter by one or more cdb name.'), + high_utilization_threshold: int | None = Field(None, description='Percent value in which a resource metric is considered highly utilized.'), + low_utilization_threshold: int | None = Field(None, description='Percent value in which a resource metric is considered low utilized.'),) -> Any: + return invoke_opsi('summarize_database_insight_resource_utilization_insight', compartment_id=compartment_id, resource_metric=resource_metric, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, database_type=database_type, database_id=database_id, id=id, exadata_insight_id=exadata_insight_id, forecast_days=forecast_days, host_name=host_name, is_database_instance_level_metrics=is_database_instance_level_metrics, compartment_id_in_subtree=compartment_id_in_subtree, vmcluster_name=vmcluster_name, cdb_name=cdb_name, high_utilization_threshold=high_utilization_threshold, low_utilization_threshold=low_utilization_threshold) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_database_insight_tablespace_usage_trend"], + annotations=TOOL_ANNOTATIONS["summarize_database_insight_tablespace_usage_trend"],) +def summarize_database_insight_tablespace_usage_trend( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), + time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), + time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), + database_id: str | None = Field(None, description='Optional OCID of the associated DBaaS entity.'), + id: str | None = Field(None, description='OCID of the database insight resource.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000),) -> Any: + return invoke_opsi('summarize_database_insight_tablespace_usage_trend', compartment_id=compartment_id, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, database_id=database_id, id=id, limit=limit) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_exadata_insight_resource_capacity_trend"], + annotations=TOOL_ANNOTATIONS["summarize_exadata_insight_resource_capacity_trend"],) +def summarize_exadata_insight_resource_capacity_trend( + resource_type: str = Field(..., description='Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE'), + resource_metric: str = Field(..., description='Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT'), + exadata_insight_id: str = Field(..., description='OCID of exadata insight resource.'), + compartment_id: str | None = Field(None, description='The OCID of the compartment.'), + analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), + time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), + time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), + database_insight_id: list[str] | None = Field(None, description='Optional list of database insight resource OCIDs.'), + host_insight_id: list[str] | None = Field(None, description='Optional list of host insight resource OCIDs.'), + storage_server_name: list[str] | None = Field(None, description='Optional storage server name on an exadata system.'), + exadata_type: list[str] | None = Field(None, description='Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC.'), + cdb_name: list[str] | None = Field(None, description='Filter by one or more cdb name.'), + host_name: list[str] | None = Field(None, description='Filter by hostname.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='The order in which resource capacity trend records are listed Allowed values are: "id", "name"'),) -> Any: + return invoke_opsi('summarize_exadata_insight_resource_capacity_trend', resource_type=resource_type, resource_metric=resource_metric, exadata_insight_id=exadata_insight_id, compartment_id=compartment_id, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, database_insight_id=database_insight_id, host_insight_id=host_insight_id, storage_server_name=storage_server_name, exadata_type=exadata_type, cdb_name=cdb_name, host_name=host_name, limit=limit, sort_order=sort_order, sort_by=sort_by) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_exadata_insight_resource_capacity_trend_aggregated"], + annotations=TOOL_ANNOTATIONS["summarize_exadata_insight_resource_capacity_trend_aggregated"],) +def summarize_exadata_insight_resource_capacity_trend_aggregated( + resource_type: str = Field(..., description='Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE'), + resource_metric: str = Field(..., description='Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT'), + compartment_id: str | None = Field(None, description='The OCID of the compartment.'), + analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), + time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), + time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), + exadata_insight_id: list[str] | None = Field(None, description='Optional list of exadata insight resource OCIDs.'), + exadata_type: list[str] | None = Field(None, description='Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC.'), + cdb_name: list[str] | None = Field(None, description='Filter by one or more cdb name.'), + host_name: list[str] | None = Field(None, description='Filter by hostname.'), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='Sorts using end timestamp or capacity. Allowed values are: "endTimestamp", "capacity"'), + compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: + return invoke_opsi('summarize_exadata_insight_resource_capacity_trend_aggregated', resource_type=resource_type, resource_metric=resource_metric, compartment_id=compartment_id, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, exadata_insight_id=exadata_insight_id, exadata_type=exadata_type, cdb_name=cdb_name, host_name=host_name, sort_order=sort_order, sort_by=sort_by, compartment_id_in_subtree=compartment_id_in_subtree) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_exadata_insight_resource_forecast_trend"], + annotations=TOOL_ANNOTATIONS["summarize_exadata_insight_resource_forecast_trend"],) +def summarize_exadata_insight_resource_forecast_trend( + resource_type: str = Field(..., description='Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE'), + resource_metric: str = Field(..., description='Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT'), + exadata_insight_id: str = Field(..., description='OCID of exadata insight resource.'), + analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), + time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), + time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), + database_insight_id: list[str] | None = Field(None, description='Optional list of database insight resource OCIDs.'), + host_insight_id: list[str] | None = Field(None, description='Optional list of host insight resource OCIDs.'), + storage_server_name: list[str] | None = Field(None, description='Optional storage server name on an exadata system.'), + exadata_type: list[str] | None = Field(None, description='Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC.'), + statistic: str | None = Field(None, description='Choose the type of statistic metric data to be used for forecasting. Allowed values are: "AVG", "MAX"'), + forecast_start_day: int | None = Field(None, description='Number of days used for utilization forecast analysis.'), + forecast_days: int | None = Field(None, description='Number of days used for utilization forecast analysis.'), + forecast_model: str | None = Field(None, description='Choose algorithm model for the forecasting. Possible values: - LINEAR: Uses linear regression algorithm for forecasting. - ML_AUTO: Automatically detects best algorithm to use for forecasting. - ML_NO_AUTO: Automatically detects seasonality of the data for forecasting using linear or seasonal algorithm. Allowed values are: "LINEAR", "ML_AUTO", "ML_NO_AUTO"'), + cdb_name: list[str] | None = Field(None, description='Filter by one or more cdb name.'), + host_name: list[str] | None = Field(None, description='Filter by hostname.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + confidence: int | None = Field(None, description="This parameter is used to change data's confidence level, this data is ingested by the forecast algorithm. Confidence is the probability of an interval to contain the expected population parameter. Manipulation of this value will lead to different results. If not set, default confidence value is 95%."), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='The order in which resource Forecast trend records are listed Allowed values are: "id", "name", "daysToReachCapacity"'),) -> Any: + return invoke_opsi('summarize_exadata_insight_resource_forecast_trend', resource_type=resource_type, resource_metric=resource_metric, exadata_insight_id=exadata_insight_id, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, database_insight_id=database_insight_id, host_insight_id=host_insight_id, storage_server_name=storage_server_name, exadata_type=exadata_type, statistic=statistic, forecast_start_day=forecast_start_day, forecast_days=forecast_days, forecast_model=forecast_model, cdb_name=cdb_name, host_name=host_name, limit=limit, confidence=confidence, sort_order=sort_order, sort_by=sort_by) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_exadata_insight_resource_forecast_trend_aggregated"], + annotations=TOOL_ANNOTATIONS["summarize_exadata_insight_resource_forecast_trend_aggregated"],) +def summarize_exadata_insight_resource_forecast_trend_aggregated( + resource_type: str = Field(..., description='Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE'), + resource_metric: str = Field(..., description='Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT'), + compartment_id: str | None = Field(None, description='The OCID of the compartment.'), + analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), + time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), + time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), + exadata_insight_id: list[str] | None = Field(None, description='Optional list of exadata insight resource OCIDs.'), + exadata_type: list[str] | None = Field(None, description='Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC.'), + statistic: str | None = Field(None, description='Choose the type of statistic metric data to be used for forecasting. Allowed values are: "AVG", "MAX"'), + forecast_start_day: int | None = Field(None, description='Number of days used for utilization forecast analysis.'), + forecast_days: int | None = Field(None, description='Number of days used for utilization forecast analysis.'), + forecast_model: str | None = Field(None, description='Choose algorithm model for the forecasting. Possible values: - LINEAR: Uses linear regression algorithm for forecasting. - ML_AUTO: Automatically detects best algorithm to use for forecasting. - ML_NO_AUTO: Automatically detects seasonality of the data for forecasting using linear or seasonal algorithm. Allowed values are: "LINEAR", "ML_AUTO", "ML_NO_AUTO"'), + cdb_name: list[str] | None = Field(None, description='Filter by one or more cdb name.'), + host_name: list[str] | None = Field(None, description='Filter by hostname.'), + confidence: int | None = Field(None, description="This parameter is used to change data's confidence level, this data is ingested by the forecast algorithm. Confidence is the probability of an interval to contain the expected population parameter. Manipulation of this value will lead to different results. If not set, default confidence value is 95%."), + compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: + return invoke_opsi('summarize_exadata_insight_resource_forecast_trend_aggregated', resource_type=resource_type, resource_metric=resource_metric, compartment_id=compartment_id, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, exadata_insight_id=exadata_insight_id, exadata_type=exadata_type, statistic=statistic, forecast_start_day=forecast_start_day, forecast_days=forecast_days, forecast_model=forecast_model, cdb_name=cdb_name, host_name=host_name, confidence=confidence, compartment_id_in_subtree=compartment_id_in_subtree) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_exadata_insight_resource_statistics"], + annotations=TOOL_ANNOTATIONS["summarize_exadata_insight_resource_statistics"],) +def summarize_exadata_insight_resource_statistics( + exadata_insight_id: str = Field(..., description='OCID of exadata insight resource.'), + resource_type: str = Field(..., description='Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE'), + resource_metric: str = Field(..., description='Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT'), + analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), + time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), + time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), + exadata_type: list[str] | None = Field(None, description='Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC.'), + cdb_name: list[str] | None = Field(None, description='Filter by one or more cdb name.'), + host_name: list[str] | None = Field(None, description='Filter by hostname.'), + percentile: int | None = Field(None, description='Percentile values of daily usage to be used for computing the aggregate resource usage.'), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='The order in which resource statistics records are listed Allowed values are: "utilizationPercent", "usage", "usageChangePercent"'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000),) -> Any: + return invoke_opsi('summarize_exadata_insight_resource_statistics', exadata_insight_id=exadata_insight_id, resource_type=resource_type, resource_metric=resource_metric, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, exadata_type=exadata_type, cdb_name=cdb_name, host_name=host_name, percentile=percentile, sort_order=sort_order, sort_by=sort_by, limit=limit) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_exadata_insight_resource_usage"], + annotations=TOOL_ANNOTATIONS["summarize_exadata_insight_resource_usage"],) +def summarize_exadata_insight_resource_usage( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + resource_type: str = Field(..., description='Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE'), + resource_metric: str = Field(..., description='Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT'), + analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), + time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), + time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), + exadata_insight_id: list[str] | None = Field(None, description='Optional list of exadata insight resource OCIDs.'), + exadata_type: list[str] | None = Field(None, description='Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC.'), + cdb_name: list[str] | None = Field(None, description='Filter by one or more cdb name.'), + host_name: list[str] | None = Field(None, description='Filter by hostname.'), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='The order in which resource usage summary records are listed Allowed values are: "utilizationPercent", "usage", "capacity", "usageChangePercent"'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + percentile: int | None = Field(None, description='Percentile values of daily usage to be used for computing the aggregate resource usage.'), + compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: + return invoke_opsi('summarize_exadata_insight_resource_usage', compartment_id=compartment_id, resource_type=resource_type, resource_metric=resource_metric, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, exadata_insight_id=exadata_insight_id, exadata_type=exadata_type, cdb_name=cdb_name, host_name=host_name, sort_order=sort_order, sort_by=sort_by, limit=limit, percentile=percentile, compartment_id_in_subtree=compartment_id_in_subtree) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_exadata_insight_resource_usage_aggregated"], + annotations=TOOL_ANNOTATIONS["summarize_exadata_insight_resource_usage_aggregated"],) +def summarize_exadata_insight_resource_usage_aggregated( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + resource_type: str = Field(..., description='Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE'), + resource_metric: str = Field(..., description='Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT'), + analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), + time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), + time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), + exadata_insight_id: list[str] | None = Field(None, description='Optional list of exadata insight resource OCIDs.'), + exadata_type: list[str] | None = Field(None, description='Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC.'), + cdb_name: list[str] | None = Field(None, description='Filter by one or more cdb name.'), + host_name: list[str] | None = Field(None, description='Filter by hostname.'), + percentile: int | None = Field(None, description='Percentile values of daily usage to be used for computing the aggregate resource usage.'), + compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: + return invoke_opsi('summarize_exadata_insight_resource_usage_aggregated', compartment_id=compartment_id, resource_type=resource_type, resource_metric=resource_metric, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, exadata_insight_id=exadata_insight_id, exadata_type=exadata_type, cdb_name=cdb_name, host_name=host_name, percentile=percentile, compartment_id_in_subtree=compartment_id_in_subtree) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_exadata_insight_resource_utilization_insight"], + annotations=TOOL_ANNOTATIONS["summarize_exadata_insight_resource_utilization_insight"],) +def summarize_exadata_insight_resource_utilization_insight( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + resource_type: str = Field(..., description='Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE'), + resource_metric: str = Field(..., description='Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT'), + analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), + time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), + time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), + exadata_insight_id: list[str] | None = Field(None, description='Optional list of exadata insight resource OCIDs.'), + exadata_type: list[str] | None = Field(None, description='Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC.'), + forecast_start_day: int | None = Field(None, description='Number of days used for utilization forecast analysis.'), + forecast_days: int | None = Field(None, description='Number of days used for utilization forecast analysis.'), + cdb_name: list[str] | None = Field(None, description='Filter by one or more cdb name.'), + host_name: list[str] | None = Field(None, description='Filter by hostname.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'), + high_utilization_threshold: int | None = Field(None, description='Percent value in which a resource metric is considered highly utilized.'), + low_utilization_threshold: int | None = Field(None, description='Percent value in which a resource metric is considered low utilized.'),) -> Any: + return invoke_opsi('summarize_exadata_insight_resource_utilization_insight', compartment_id=compartment_id, resource_type=resource_type, resource_metric=resource_metric, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, exadata_insight_id=exadata_insight_id, exadata_type=exadata_type, forecast_start_day=forecast_start_day, forecast_days=forecast_days, cdb_name=cdb_name, host_name=host_name, limit=limit, compartment_id_in_subtree=compartment_id_in_subtree, high_utilization_threshold=high_utilization_threshold, low_utilization_threshold=low_utilization_threshold) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_exadata_members"], + annotations=TOOL_ANNOTATIONS["summarize_exadata_members"],) +def summarize_exadata_members( + exadata_insight_id: str = Field(..., description='OCID of exadata insight resource.'), + exadata_type: list[str] | None = Field(None, description='Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC.'), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='The order in which exadata member records are listed Allowed values are: "name", "displayName", "entityType"'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000),) -> Any: + return invoke_opsi('summarize_exadata_members', exadata_insight_id=exadata_insight_id, exadata_type=exadata_type, sort_order=sort_order, sort_by=sort_by, limit=limit) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_host_insight_disk_statistics"], + annotations=TOOL_ANNOTATIONS["summarize_host_insight_disk_statistics"],) +def summarize_host_insight_disk_statistics( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + id: str = Field(..., description='Required OCID of the host insight resource.'), + analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), + time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), + time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), + host_id: str | None = Field(None, description='Optional OCID of the host (Compute Id).'), + statistic: str | None = Field(None, description='Choose the type of statistic metric data to be used for forecasting. Allowed values are: "AVG", "MAX"'), + status: list[str] | None = Field(None, description='Resource Status Allowed values are: "DISABLED", "ENABLED", "TERMINATED"'),) -> Any: + return invoke_opsi('summarize_host_insight_disk_statistics', compartment_id=compartment_id, id=id, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, host_id=host_id, statistic=statistic, status=status) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_host_insight_host_recommendation"], + annotations=TOOL_ANNOTATIONS["summarize_host_insight_host_recommendation"],) +def summarize_host_insight_host_recommendation( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + id: str = Field(..., description='Required OCID of the host insight resource.'), + resource_metric: str = Field(..., description='Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK.'), + analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), + time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), + time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), + host_id: str | None = Field(None, description='Optional OCID of the host (Compute Id).'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + statistic: str | None = Field(None, description='Choose the type of statistic metric data to be used for forecasting. Allowed values are: "AVG", "MAX"'),) -> Any: + return invoke_opsi('summarize_host_insight_host_recommendation', compartment_id=compartment_id, id=id, resource_metric=resource_metric, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, host_id=host_id, limit=limit, statistic=statistic) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_host_insight_io_usage_trend"], + annotations=TOOL_ANNOTATIONS["summarize_host_insight_io_usage_trend"],) +def summarize_host_insight_io_usage_trend( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + id: str = Field(..., description='Required OCID of the host insight resource.'), + analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), + time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), + time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), + host_id: str | None = Field(None, description='Optional OCID of the host (Compute Id).'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + statistic: str | None = Field(None, description='Choose the type of statistic metric data to be used for forecasting. Allowed values are: "AVG", "MAX"'), + status: list[str] | None = Field(None, description='Resource Status Allowed values are: "DISABLED", "ENABLED", "TERMINATED"'),) -> Any: + return invoke_opsi('summarize_host_insight_io_usage_trend', compartment_id=compartment_id, id=id, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, host_id=host_id, limit=limit, statistic=statistic, status=status) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_host_insight_network_usage_trend"], + annotations=TOOL_ANNOTATIONS["summarize_host_insight_network_usage_trend"],) +def summarize_host_insight_network_usage_trend( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + id: str = Field(..., description='Required OCID of the host insight resource.'), + analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), + time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), + time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), + host_id: str | None = Field(None, description='Optional OCID of the host (Compute Id).'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + statistic: str | None = Field(None, description='Choose the type of statistic metric data to be used for forecasting. Allowed values are: "AVG", "MAX"'), + status: list[str] | None = Field(None, description='Resource Status Allowed values are: "DISABLED", "ENABLED", "TERMINATED"'),) -> Any: + return invoke_opsi('summarize_host_insight_network_usage_trend', compartment_id=compartment_id, id=id, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, host_id=host_id, limit=limit, statistic=statistic, status=status) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_host_insight_resource_capacity_trend"], + annotations=TOOL_ANNOTATIONS["summarize_host_insight_resource_capacity_trend"],) +def summarize_host_insight_resource_capacity_trend( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + resource_metric: str = Field(..., description='Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK.'), + analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), + time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), + time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), + platform_type: list[str] | None = Field(None, description='Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX"'), + id: list[str] | None = Field(None, description='Optional list of host insight resource OCIDs.'), + exadata_insight_id: list[str] | None = Field(None, description='Optional list of exadata insight resource OCIDs.'), + utilization_level: str | None = Field(None, description='Filter by utilization level by the following buckets: - HIGH_UTILIZATION: DBs with utilization greater or equal than 75. - LOW_UTILIZATION: DBs with utilization lower than 25. - MEDIUM_HIGH_UTILIZATION: DBs with utilization greater or equal than 50 but lower than 75. - MEDIUM_LOW_UTILIZATION: DBs with utilization greater or equal than 25 but lower than 50. Allowed values are: "HIGH_UTILIZATION", "LOW_UTILIZATION", "MEDIUM_HIGH_UTILIZATION", "MEDIUM_LOW_UTILIZATION"'), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='Sorts using end timestamp or capacity Allowed values are: "endTimestamp", "capacity"'), + compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'), + host_type: list[str] | None = Field(None, description='Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST'), + host_id: str | None = Field(None, description='Optional OCID of the host (Compute Id).'), + vmcluster_name: list[str] | None = Field(None, description='Optional list of Exadata Insight VM cluster name.'), + high_utilization_threshold: int | None = Field(None, description='Percent value in which a resource metric is considered highly utilized.'), + low_utilization_threshold: int | None = Field(None, description='Percent value in which a resource metric is considered low utilized.'), + status: list[str] | None = Field(None, description='Resource Status Allowed values are: "DISABLED", "ENABLED", "TERMINATED"'),) -> Any: + return invoke_opsi('summarize_host_insight_resource_capacity_trend', compartment_id=compartment_id, resource_metric=resource_metric, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, platform_type=platform_type, id=id, exadata_insight_id=exadata_insight_id, utilization_level=utilization_level, sort_order=sort_order, sort_by=sort_by, compartment_id_in_subtree=compartment_id_in_subtree, host_type=host_type, host_id=host_id, vmcluster_name=vmcluster_name, high_utilization_threshold=high_utilization_threshold, low_utilization_threshold=low_utilization_threshold, status=status) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_host_insight_resource_forecast_trend"], + annotations=TOOL_ANNOTATIONS["summarize_host_insight_resource_forecast_trend"],) +def summarize_host_insight_resource_forecast_trend( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + resource_metric: str = Field(..., description='Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK.'), + analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), + time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), + time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), + platform_type: list[str] | None = Field(None, description='Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX"'), + id: list[str] | None = Field(None, description='Optional list of host insight resource OCIDs.'), + exadata_insight_id: list[str] | None = Field(None, description='Optional list of exadata insight resource OCIDs.'), + statistic: str | None = Field(None, description='Choose the type of statistic metric data to be used for forecasting. Allowed values are: "AVG", "MAX"'), + forecast_days: int | None = Field(None, description='Number of days used for utilization forecast analysis.'), + forecast_model: str | None = Field(None, description='Choose algorithm model for the forecasting. Possible values: - LINEAR: Uses linear regression algorithm for forecasting. - ML_AUTO: Automatically detects best algorithm to use for forecasting. - ML_NO_AUTO: Automatically detects seasonality of the data for forecasting using linear or seasonal algorithm. Allowed values are: "LINEAR", "ML_AUTO", "ML_NO_AUTO"'), + utilization_level: str | None = Field(None, description='Filter by utilization level by the following buckets: - HIGH_UTILIZATION: DBs with utilization greater or equal than 75. - LOW_UTILIZATION: DBs with utilization lower than 25. - MEDIUM_HIGH_UTILIZATION: DBs with utilization greater or equal than 50 but lower than 75. - MEDIUM_LOW_UTILIZATION: DBs with utilization greater or equal than 25 but lower than 50. Allowed values are: "HIGH_UTILIZATION", "LOW_UTILIZATION", "MEDIUM_HIGH_UTILIZATION", "MEDIUM_LOW_UTILIZATION"'), + confidence: int | None = Field(None, description="This parameter is used to change data's confidence level, this data is ingested by the forecast algorithm. Confidence is the probability of an interval to contain the expected population parameter. Manipulation of this value will lead to different results. If not set, default confidence value is 95%."), + compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'), + host_type: list[str] | None = Field(None, description='Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST'), + host_id: str | None = Field(None, description='Optional OCID of the host (Compute Id).'), + vmcluster_name: list[str] | None = Field(None, description='Optional list of Exadata Insight VM cluster name.'), + high_utilization_threshold: int | None = Field(None, description='Percent value in which a resource metric is considered highly utilized.'), + low_utilization_threshold: int | None = Field(None, description='Percent value in which a resource metric is considered low utilized.'), + mount_point: str | None = Field(None, description='Mount points are specialized NTFS filesystem objects.'), + interface_name: str | None = Field(None, description='Name of the network interface.'), + gpu_id: int | None = Field(None, description='GPU identifier.'), + status: list[str] | None = Field(None, description='Resource Status Allowed values are: "DISABLED", "ENABLED", "TERMINATED"'),) -> Any: + return invoke_opsi('summarize_host_insight_resource_forecast_trend', compartment_id=compartment_id, resource_metric=resource_metric, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, platform_type=platform_type, id=id, exadata_insight_id=exadata_insight_id, statistic=statistic, forecast_days=forecast_days, forecast_model=forecast_model, utilization_level=utilization_level, confidence=confidence, compartment_id_in_subtree=compartment_id_in_subtree, host_type=host_type, host_id=host_id, vmcluster_name=vmcluster_name, high_utilization_threshold=high_utilization_threshold, low_utilization_threshold=low_utilization_threshold, mount_point=mount_point, interface_name=interface_name, gpu_id=gpu_id, status=status) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_host_insight_resource_statistics"], + annotations=TOOL_ANNOTATIONS["summarize_host_insight_resource_statistics"],) +def summarize_host_insight_resource_statistics( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + resource_metric: str = Field(..., description='Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK.'), + analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), + time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), + time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), + platform_type: list[str] | None = Field(None, description='Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX"'), + id: list[str] | None = Field(None, description='Optional list of host insight resource OCIDs.'), + exadata_insight_id: list[str] | None = Field(None, description='Optional list of exadata insight resource OCIDs.'), + percentile: int | None = Field(None, description='Percentile values of daily usage to be used for computing the aggregate resource usage.'), + insight_by: str | None = Field(None, description='Return data of a specific insight Possible values are High Utilization, Low Utilization, Any,High Utilization Forecast, Low Utilization Forecast'), + forecast_days: int | None = Field(None, description='Number of days used for utilization forecast analysis.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='The order in which resource statistics records are listed. Allowed values are: "utilizationPercent", "usage", "usageChangePercent", "hostName", "platformType"'), + compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'), + host_type: list[str] | None = Field(None, description='Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST'), + host_id: str | None = Field(None, description='Optional OCID of the host (Compute Id).'), + vmcluster_name: list[str] | None = Field(None, description='Optional list of Exadata Insight VM cluster name.'), + high_utilization_threshold: int | None = Field(None, description='Percent value in which a resource metric is considered highly utilized.'), + low_utilization_threshold: int | None = Field(None, description='Percent value in which a resource metric is considered low utilized.'), + status: list[str] | None = Field(None, description='Resource Status Allowed values are: "DISABLED", "ENABLED", "TERMINATED"'),) -> Any: + return invoke_opsi('summarize_host_insight_resource_statistics', compartment_id=compartment_id, resource_metric=resource_metric, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, platform_type=platform_type, id=id, exadata_insight_id=exadata_insight_id, percentile=percentile, insight_by=insight_by, forecast_days=forecast_days, limit=limit, sort_order=sort_order, sort_by=sort_by, compartment_id_in_subtree=compartment_id_in_subtree, host_type=host_type, host_id=host_id, vmcluster_name=vmcluster_name, high_utilization_threshold=high_utilization_threshold, low_utilization_threshold=low_utilization_threshold, status=status) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_host_insight_resource_usage"], + annotations=TOOL_ANNOTATIONS["summarize_host_insight_resource_usage"],) +def summarize_host_insight_resource_usage( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + resource_metric: str = Field(..., description='Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK.'), + analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), + time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), + time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), + platform_type: list[str] | None = Field(None, description='Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX"'), + id: list[str] | None = Field(None, description='Optional list of host insight resource OCIDs.'), + exadata_insight_id: list[str] | None = Field(None, description='Optional list of exadata insight resource OCIDs.'), + percentile: int | None = Field(None, description='Percentile values of daily usage to be used for computing the aggregate resource usage.'), + compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'), + host_type: list[str] | None = Field(None, description='Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST'), + host_id: str | None = Field(None, description='Optional OCID of the host (Compute Id).'), + vmcluster_name: list[str] | None = Field(None, description='Optional list of Exadata Insight VM cluster name.'), + status: list[str] | None = Field(None, description='Resource Status Allowed values are: "DISABLED", "ENABLED", "TERMINATED"'),) -> Any: + return invoke_opsi('summarize_host_insight_resource_usage', compartment_id=compartment_id, resource_metric=resource_metric, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, platform_type=platform_type, id=id, exadata_insight_id=exadata_insight_id, percentile=percentile, compartment_id_in_subtree=compartment_id_in_subtree, host_type=host_type, host_id=host_id, vmcluster_name=vmcluster_name, status=status) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_host_insight_resource_usage_trend"], + annotations=TOOL_ANNOTATIONS["summarize_host_insight_resource_usage_trend"],) +def summarize_host_insight_resource_usage_trend( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + resource_metric: str = Field(..., description='Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK.'), + analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), + time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), + time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), + platform_type: list[str] | None = Field(None, description='Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX"'), + id: list[str] | None = Field(None, description='Optional list of host insight resource OCIDs.'), + exadata_insight_id: list[str] | None = Field(None, description='Optional list of exadata insight resource OCIDs.'), + sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), + sort_by: str | None = Field(None, description='Sorts using end timestamp, usage or capacity Allowed values are: "endTimestamp", "usage", "capacity"'), + compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'), + host_type: list[str] | None = Field(None, description='Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST'), + host_id: str | None = Field(None, description='Optional OCID of the host (Compute Id).'), + vmcluster_name: list[str] | None = Field(None, description='Optional list of Exadata Insight VM cluster name.'), + status: list[str] | None = Field(None, description='Resource Status Allowed values are: "DISABLED", "ENABLED", "TERMINATED"'),) -> Any: + return invoke_opsi('summarize_host_insight_resource_usage_trend', compartment_id=compartment_id, resource_metric=resource_metric, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, platform_type=platform_type, id=id, exadata_insight_id=exadata_insight_id, sort_order=sort_order, sort_by=sort_by, compartment_id_in_subtree=compartment_id_in_subtree, host_type=host_type, host_id=host_id, vmcluster_name=vmcluster_name, status=status) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_host_insight_resource_utilization_insight"], + annotations=TOOL_ANNOTATIONS["summarize_host_insight_resource_utilization_insight"],) +def summarize_host_insight_resource_utilization_insight( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + resource_metric: str = Field(..., description='Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK.'), + analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), + time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), + time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), + platform_type: list[str] | None = Field(None, description='Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX"'), + id: list[str] | None = Field(None, description='Optional list of host insight resource OCIDs.'), + exadata_insight_id: list[str] | None = Field(None, description='Optional list of exadata insight resource OCIDs.'), + forecast_days: int | None = Field(None, description='Number of days used for utilization forecast analysis.'), + compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'), + host_type: list[str] | None = Field(None, description='Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST'), + host_id: str | None = Field(None, description='Optional OCID of the host (Compute Id).'), + vmcluster_name: list[str] | None = Field(None, description='Optional list of Exadata Insight VM cluster name.'), + high_utilization_threshold: int | None = Field(None, description='Percent value in which a resource metric is considered highly utilized.'), + low_utilization_threshold: int | None = Field(None, description='Percent value in which a resource metric is considered low utilized.'), + status: list[str] | None = Field(None, description='Resource Status Allowed values are: "DISABLED", "ENABLED", "TERMINATED"'),) -> Any: + return invoke_opsi('summarize_host_insight_resource_utilization_insight', compartment_id=compartment_id, resource_metric=resource_metric, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, platform_type=platform_type, id=id, exadata_insight_id=exadata_insight_id, forecast_days=forecast_days, compartment_id_in_subtree=compartment_id_in_subtree, host_type=host_type, host_id=host_id, vmcluster_name=vmcluster_name, high_utilization_threshold=high_utilization_threshold, low_utilization_threshold=low_utilization_threshold, status=status) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_host_insight_storage_usage_trend"], + annotations=TOOL_ANNOTATIONS["summarize_host_insight_storage_usage_trend"],) +def summarize_host_insight_storage_usage_trend( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + id: str = Field(..., description='Required OCID of the host insight resource.'), + analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), + time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), + time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), + host_id: str | None = Field(None, description='Optional OCID of the host (Compute Id).'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + statistic: str | None = Field(None, description='Choose the type of statistic metric data to be used for forecasting. Allowed values are: "AVG", "MAX"'), + status: list[str] | None = Field(None, description='Resource Status Allowed values are: "DISABLED", "ENABLED", "TERMINATED"'),) -> Any: + return invoke_opsi('summarize_host_insight_storage_usage_trend', compartment_id=compartment_id, id=id, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, host_id=host_id, limit=limit, statistic=statistic, status=status) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_host_insight_top_processes_usage"], + annotations=TOOL_ANNOTATIONS["summarize_host_insight_top_processes_usage"],) +def summarize_host_insight_top_processes_usage( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + id: str = Field(..., description='Required OCID of the host insight resource.'), + resource_metric: str = Field(..., description='Host top processes resource metric sort options. Supported values are CPU, MEMORY, VIIRTUAL_MEMORY.'), + timestamp: datetime = Field(..., description='Timestamp at which to gather the top processes. This will be top processes over the hour or over the day pending the time range passed into the query.'), + time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), + time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), + host_type: list[str] | None = Field(None, description='Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST'), + host_id: str | None = Field(None, description='Optional OCID of the host (Compute Id).'), + statistic: str | None = Field(None, description='Choose the type of statistic metric data to be used for forecasting. Allowed values are: "AVG", "MAX"'), + status: list[str] | None = Field(None, description='Resource Status Allowed values are: "DISABLED", "ENABLED", "TERMINATED"'),) -> Any: + return invoke_opsi('summarize_host_insight_top_processes_usage', compartment_id=compartment_id, id=id, resource_metric=resource_metric, timestamp=timestamp, time_interval_start=time_interval_start, time_interval_end=time_interval_end, limit=limit, analysis_time_interval=analysis_time_interval, host_type=host_type, host_id=host_id, statistic=statistic, status=status) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_host_insight_top_processes_usage_trend"], + annotations=TOOL_ANNOTATIONS["summarize_host_insight_top_processes_usage_trend"],) +def summarize_host_insight_top_processes_usage_trend( + compartment_id: str = Field(..., description='The OCID of the compartment.'), + id: str = Field(..., description='Required OCID of the host insight resource.'), + resource_metric: str = Field(..., description='Host top processes resource metric sort options. Supported values are CPU, MEMORY, VIIRTUAL_MEMORY.'), + analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), + time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), + time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), + limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), + host_type: list[str] | None = Field(None, description='Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST'), + host_id: str | None = Field(None, description='Optional OCID of the host (Compute Id).'), + process_hash: str | None = Field(None, description='Unique identifier for a process.'), + statistic: str | None = Field(None, description='Choose the type of statistic metric data to be used for forecasting. Allowed values are: "AVG", "MAX"'), + status: list[str] | None = Field(None, description='Resource Status Allowed values are: "DISABLED", "ENABLED", "TERMINATED"'),) -> Any: + return invoke_opsi('summarize_host_insight_top_processes_usage_trend', compartment_id=compartment_id, id=id, resource_metric=resource_metric, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, limit=limit, host_type=host_type, host_id=host_id, process_hash=process_hash, statistic=statistic, status=status) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["summarize_operations_insights_warehouse_resource_usage"], + annotations=TOOL_ANNOTATIONS["summarize_operations_insights_warehouse_resource_usage"],) +def summarize_operations_insights_warehouse_resource_usage( + operations_insights_warehouse_id: str = Field(..., description='Unique Ops Insights Warehouse identifier'),) -> Any: + return invoke_opsi('summarize_operations_insights_warehouse_resource_usage', operations_insights_warehouse_id=operations_insights_warehouse_id) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_awr_hub"], + annotations=TOOL_ANNOTATIONS["update_awr_hub"],) +def update_awr_hub( + awr_hub_id: str = Field(..., description='Unique Awr Hub identifier'), + update_awr_hub_details: dict[str, Any] | UpdateAwrHubDetails = Field(..., description='The AWR Hub configuration fields to update.'),) -> Any: + return invoke_opsi('update_awr_hub', awr_hub_id=awr_hub_id, update_awr_hub_details=update_awr_hub_details) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_awr_hub_source"], + annotations=TOOL_ANNOTATIONS["update_awr_hub_source"],) +def update_awr_hub_source( + update_awr_hub_source_details: dict[str, Any] | UpdateAwrHubSourceDetails = Field(..., description='The AWR Hub source configuration fields to update.'), + awr_hub_source_id: str = Field(..., description='Unique Awr Hub Source identifier'),) -> Any: + return invoke_opsi('update_awr_hub_source', update_awr_hub_source_details=update_awr_hub_source_details, awr_hub_source_id=awr_hub_source_id) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_chargeback_plan"], + annotations=TOOL_ANNOTATIONS["update_chargeback_plan"],) +def update_chargeback_plan( + chargebackplan_id: str = Field(..., description='The OCID of the Ops Insights chargeback plan.'), + update_chargeback_plan_details: dict[str, Any] | UpdateChargebackPlanDetails = Field(..., description='The details used to update a chargeback plan.'),) -> Any: + return invoke_opsi('update_chargeback_plan', chargebackplan_id=chargebackplan_id, update_chargeback_plan_details=update_chargeback_plan_details) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_chargeback_plan_report"], + annotations=TOOL_ANNOTATIONS["update_chargeback_plan_report"],) +def update_chargeback_plan_report( + chargeback_plan_report_id: str = Field(..., description='The OCID of the Ops Insights chargeback plan report.'), + id: str = Field(..., description='Unique Ops insight identifier'), + resource_type: str = Field(..., description='Filter by resource type. Supported values are EXADATA_INSIGHT, HOST_INSIGHT, DATABASE_INSIGHT.'), + update_chargeback_plan_report_details: dict[str, Any] | UpdateChargebackPlanReportDetails = Field(..., description='The details used to update a chargeback plan report.'),) -> Any: + return invoke_opsi('update_chargeback_plan_report', chargeback_plan_report_id=chargeback_plan_report_id, id=id, resource_type=resource_type, update_chargeback_plan_report_details=update_chargeback_plan_report_details) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_database_insight"], + annotations=TOOL_ANNOTATIONS["update_database_insight"],) +def update_database_insight( + database_insight_id: str = Field(..., description='Unique database insight identifier'), + update_database_insight_details: dict[str, Any] | UpdateDatabaseInsightDetails = Field(..., description='The database insight configuration fields to update.'),) -> Any: + return invoke_opsi('update_database_insight', database_insight_id=database_insight_id, update_database_insight_details=update_database_insight_details) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_enterprise_manager_bridge"], + annotations=TOOL_ANNOTATIONS["update_enterprise_manager_bridge"],) +def update_enterprise_manager_bridge( + enterprise_manager_bridge_id: str = Field(..., description='Unique Enterprise Manager bridge identifier'), + update_enterprise_manager_bridge_details: dict[str, Any] | UpdateEnterpriseManagerBridgeDetails = Field(..., description='The Enterprise Manager bridge configuration fields to update.'),) -> Any: + return invoke_opsi('update_enterprise_manager_bridge', enterprise_manager_bridge_id=enterprise_manager_bridge_id, update_enterprise_manager_bridge_details=update_enterprise_manager_bridge_details) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_exadata_insight"], + annotations=TOOL_ANNOTATIONS["update_exadata_insight"],) +def update_exadata_insight( + exadata_insight_id: str = Field(..., description='Unique Exadata insight identifier'), + update_exadata_insight_details: dict[str, Any] | UpdateExadataInsightDetails = Field(..., description='The Exadata insight configuration fields to update.'),) -> Any: + return invoke_opsi('update_exadata_insight', exadata_insight_id=exadata_insight_id, update_exadata_insight_details=update_exadata_insight_details) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_host_insight"], + annotations=TOOL_ANNOTATIONS["update_host_insight"],) +def update_host_insight( + host_insight_id: str = Field(..., description='Unique host insight identifier'), + update_host_insight_details: dict[str, Any] | UpdateHostInsightDetails = Field(..., description='The host insight configuration fields to update.'),) -> Any: + return invoke_opsi('update_host_insight', host_insight_id=host_insight_id, update_host_insight_details=update_host_insight_details) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_news_report"], + annotations=TOOL_ANNOTATIONS["update_news_report"],) +def update_news_report( + news_report_id: str = Field(..., description='Unique news report identifier.'), + update_news_report_details: dict[str, Any] | UpdateNewsReportDetails = Field(..., description='The news report configuration fields to update.'),) -> Any: + return invoke_opsi('update_news_report', news_report_id=news_report_id, update_news_report_details=update_news_report_details) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_operations_insights_private_endpoint"], + annotations=TOOL_ANNOTATIONS["update_operations_insights_private_endpoint"],) +def update_operations_insights_private_endpoint( + operations_insights_private_endpoint_id: str = Field(..., description='The OCID of the Operation Insights private endpoint.'), + update_operations_insights_private_endpoint_details: dict[str, Any] | UpdateOperationsInsightsPrivateEndpointDetails = Field(..., description='The details used to update a private endpoint.'),) -> Any: + return invoke_opsi('update_operations_insights_private_endpoint', operations_insights_private_endpoint_id=operations_insights_private_endpoint_id, update_operations_insights_private_endpoint_details=update_operations_insights_private_endpoint_details) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_operations_insights_warehouse"], + annotations=TOOL_ANNOTATIONS["update_operations_insights_warehouse"],) +def update_operations_insights_warehouse( + operations_insights_warehouse_id: str = Field(..., description='Unique Ops Insights Warehouse identifier'), + update_operations_insights_warehouse_details: dict[str, Any] | UpdateOperationsInsightsWarehouseDetails = Field(..., description='The Operations Insights Warehouse configuration fields to update.'),) -> Any: + return invoke_opsi('update_operations_insights_warehouse', operations_insights_warehouse_id=operations_insights_warehouse_id, update_operations_insights_warehouse_details=update_operations_insights_warehouse_details) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_operations_insights_warehouse_user"], + annotations=TOOL_ANNOTATIONS["update_operations_insights_warehouse_user"],) +def update_operations_insights_warehouse_user( + operations_insights_warehouse_user_id: str = Field(..., description='Unique Operations Insights Warehouse User identifier'), + update_operations_insights_warehouse_user_details: dict[str, Any] | UpdateOperationsInsightsWarehouseUserDetails = Field(..., description='The Operations Insights Warehouse User configuration fields to update.'),) -> Any: + return invoke_opsi('update_operations_insights_warehouse_user', operations_insights_warehouse_user_id=operations_insights_warehouse_user_id, update_operations_insights_warehouse_user_details=update_operations_insights_warehouse_user_details) + + +@mcp.tool( + description=TOOL_DESCRIPTIONS["update_opsi_configuration"], + annotations=TOOL_ANNOTATIONS["update_opsi_configuration"],) +def update_opsi_configuration( + opsi_configuration_id: str = Field(..., description='OCID of OPSI configuration resource.'), + update_opsi_configuration_details: dict[str, Any] | UpdateOpsiConfigurationDetails = Field(..., description='The OPSI configuration resource details to be updated.'),) -> Any: + return invoke_opsi('update_opsi_configuration', opsi_configuration_id=opsi_configuration_id, update_opsi_configuration_details=update_opsi_configuration_details) diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/pagination.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/pagination.py new file mode 100644 index 00000000..e4f54302 --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/pagination.py @@ -0,0 +1,150 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. +""" + +from __future__ import annotations + +from collections.abc import Callable, Mapping, Sequence +import inspect +import re +from typing import Any + + +_EXPECTED_KWARGS_RE = re.compile(r"expected_kwargs\s*=\s*\[(.*?)\]", re.DOTALL) +_KWARG_RE = re.compile(r"['\"]([a-zA-Z0-9_]+)['\"]") + + +def _expected_kwargs_from_source(method: Callable[..., Any]) -> set[str] | None: + try: + source = inspect.getsource(method) + except (OSError, TypeError): + return None + + match = _EXPECTED_KWARGS_RE.search(source) + if match is None: + return None + return set(_KWARG_RE.findall(match.group(1))) + + +def _method_accepts_page(method: Callable[..., Any]) -> bool: + expected_kwargs = _expected_kwargs_from_source(method) + if expected_kwargs is not None: + return "page" in expected_kwargs + + try: + signature = inspect.signature(method) + except (TypeError, ValueError): + return False + return "page" in signature.parameters + + +def _next_page_token(response: Any) -> str | None: + token = getattr(response, "next_page", None) + if token: + return str(token) + + headers = getattr(response, "headers", None) + if not headers: + return None + if hasattr(headers, "get"): + token = headers.get("opc-next-page") or headers.get("Opc-Next-Page") + else: + token = dict(headers).get("opc-next-page") + return str(token) if token else None + + +def _collection_items(data: Any) -> list[Any] | None: + if isinstance(data, list): + return list(data) + if isinstance(data, tuple): + return list(data) + if isinstance(data, Mapping): + return None + + items = getattr(data, "items", None) + if items is None or callable(items): + return None + if isinstance(items, Sequence) and not isinstance(items, str | bytes | bytearray): + return list(items) + return list(items) + + +def _set_collection_items(data: Any, items: list[Any]) -> Any: + if isinstance(data, list): + return items + if isinstance(data, tuple): + return items + setattr(data, "items", items) + return data + + +def _set_response_data(response: Any, data: Any) -> None: + try: + setattr(response, "data", data) + except AttributeError: + pass + + +def _normalized_limit(value: Any) -> int | None: + if isinstance(value, bool) or value is None: + return None + if isinstance(value, int) and value > 0: + return value + return None + + +def _remaining_limit(limit: int | None, collected_count: int) -> int | None: + if limit is None: + return None + return max(limit - collected_count, 0) + + +def call_with_auto_pagination(method: Callable[..., Any], sdk_kwargs: dict[str, Any]) -> Any: + """Call an OCI SDK method and aggregate paginated collection response data.""" + + first_response = method(**sdk_kwargs) + if not _method_accepts_page(method): + return first_response + + first_data = getattr(first_response, "data", None) + if first_data is None: + return first_response + + first_items = _collection_items(first_data) + if first_items is None: + return first_response + + limit = _normalized_limit(sdk_kwargs.get("limit")) + aggregated = first_items[:limit] if limit is not None else first_items + first_data = _set_collection_items(first_data, aggregated) + _set_response_data(first_response, first_data) + + next_token = _next_page_token(first_response) + seen_tokens: set[str] = set() + while next_token and next_token not in seen_tokens: + remaining = _remaining_limit(limit, len(aggregated)) + if remaining == 0: + break + + seen_tokens.add(next_token) + page_kwargs = dict(sdk_kwargs) + page_kwargs["page"] = next_token + if remaining is not None: + page_kwargs["limit"] = remaining + + page_response = method(**page_kwargs) + page_data = getattr(page_response, "data", None) + page_items = _collection_items(page_data) + if page_items is None: + break + + if remaining is not None: + page_items = page_items[:remaining] + aggregated.extend(page_items) + first_data = _set_collection_items(first_data, aggregated) + _set_response_data(first_response, first_data) + next_token = _next_page_token(page_response) + + return first_response diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/response_mapping.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/response_mapping.py new file mode 100644 index 00000000..bc55fa3c --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/response_mapping.py @@ -0,0 +1,37 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. +""" + +from __future__ import annotations + +import json +from typing import Any + +import oci + + +def map_response_data(data: Any) -> Any: + """Serialize OCI SDK response data into MCP-facing plain values.""" + + if data is None: + return data + + if isinstance(data, bytes | bytearray): + data = data.decode("utf-8") + + if isinstance(data, str): + try: + return json.loads(data) + except json.JSONDecodeError: + return data + + try: + return oci.util.to_dict(data) + except Exception: + if isinstance(data, list | tuple): + return [map_response_data(item) for item in data] + if isinstance(data, dict): + return {key: map_response_data(value) for key, value in data.items()} + return data diff --git a/src/oci-oracle-db-observability-mcp-server/pyproject.toml b/src/oci-oracle-db-observability-mcp-server/pyproject.toml new file mode 100644 index 00000000..038cd5d1 --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/pyproject.toml @@ -0,0 +1,59 @@ +[project] +name = "oracle.oracle-db-observability" +version = "1.0.0" +description = "Oracle Database Observability MCP servers" +readme = "README.md" +requires-python = ">=3.13" +license = "UPL-1.0" +license-files = ["LICENSE.txt"] +authors = [ + {name = "Oracle MCP", email = "237432095+oracle-mcp@users.noreply.github.com"}, +] +dependencies = [ + "fastmcp==3.2.4", + "oci==2.174.0", + "pydantic==2.12.3", +] + +classifiers = [ + "Operating System :: OS Independent", + "Programming Language :: Python", + "Programming Language :: Python :: 3.13", +] + +[project.scripts] +"oracle.oci-opsi-mcp-server" = "oracle.oci_oracle_db_observability.v1.oci_opsi_mcp_server.server:main" +"oracle.oci-dbm-mcp-server" = "oracle.oci_oracle_db_observability.v1.oci_dbm_mcp_server.server:main" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.build.targets.wheel] +packages = ["oracle", "generation"] +exclude = ["/oracle/**/tests/**", "/generation/**/tests/**"] + +[dependency-groups] +dev = [ + "openapi-pydantic>=0.5.1", + "pytest>=9.0.3", + "pytest-asyncio>=1.2.0", + "pytest-cov>=7.0.0", + "pyyaml>=6.0.3", +] + +[tool.coverage.run] +omit = [ + "**/__init__.py", + "**/tests/*", + "dist/*", + ".venv/*", +] + +[tool.coverage.report] +omit = [ + "**/__init__.py", + "**/tests/*", +] +precision = 2 +fail_under = 90 diff --git a/src/oci-oracle-db-observability-mcp-server/uv.lock b/src/oci-oracle-db-observability-mcp-server/uv.lock new file mode 100644 index 00000000..ddd557b0 --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/uv.lock @@ -0,0 +1,1362 @@ +version = 1 +revision = 2 +requires-python = ">=3.13" + +[[package]] +name = "aiofile" +version = "3.11.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "caio" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/48/41/2fea7e193e061ce54eacc3b7bc0e6a99e4fcff43c78cf0a76dd781ed8334/aiofile-3.11.1.tar.gz", hash = "sha256:1f91912c6643d2a4e49ca4ae3514f0bf3867ce948a36d99a6411b8f4755f4cf9", size = 19342, upload_time = "2026-05-16T08:18:33.538Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/67/cd/0d76dfc5de72bde52f55f53e925c7d152d9c7906634ec1e0cbc7e8d4ad93/aiofile-3.11.1-py3-none-any.whl", hash = "sha256:ce77d14ac07f77bc2b757834a5c129321f3f705c474593deed5ab209079a52c9", size = 20446, upload_time = "2026-05-16T08:18:32.051Z" }, +] + +[[package]] +name = "annotated-types" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081, upload_time = "2024-05-20T21:33:25.928Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643, upload_time = "2024-05-20T21:33:24.1Z" }, +] + +[[package]] +name = "anyio" +version = "4.13.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "idna" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/19/14/2c5dd9f512b66549ae92767a9c7b330ae88e1932ca57876909410251fe13/anyio-4.13.0.tar.gz", hash = "sha256:334b70e641fd2221c1505b3890c69882fe4a2df910cba14d97019b90b24439dc", size = 231622, upload_time = "2026-03-24T12:59:09.671Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/da/42/e921fccf5015463e32a3cf6ee7f980a6ed0f395ceeaa45060b61d86486c2/anyio-4.13.0-py3-none-any.whl", hash = "sha256:08b310f9e24a9594186fd75b4f73f4a4152069e3853f1ed8bfbf58369f4ad708", size = 114353, upload_time = "2026-03-24T12:59:08.246Z" }, +] + +[[package]] +name = "attrs" +version = "26.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9a/8e/82a0fe20a541c03148528be8cac2408564a6c9a0cc7e9171802bc1d26985/attrs-26.1.0.tar.gz", hash = "sha256:d03ceb89cb322a8fd706d4fb91940737b6642aa36998fe130a9bc96c985eff32", size = 952055, upload_time = "2026-03-19T14:22:25.026Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/64/b4/17d4b0b2a2dc85a6df63d1157e028ed19f90d4cd97c36717afef2bc2f395/attrs-26.1.0-py3-none-any.whl", hash = "sha256:c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309", size = 67548, upload_time = "2026-03-19T14:22:23.645Z" }, +] + +[[package]] +name = "authlib" +version = "1.7.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "joserfc" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/36/98/7d93f30d029643c0275dbc0bd6d5a6f670661ee6c9a94d93af7ab4887600/authlib-1.7.2.tar.gz", hash = "sha256:2cea25fefcd4e7173bdf1372c0afc265c8034b23a8cd5dcb6a9164b826c64231", size = 176511, upload_time = "2026-05-06T08:10:23.116Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/95/adcb68e20c34162e9135f370d6e31737719c2b6f94bc953fe7ed1f10fe21/authlib-1.7.2-py2.py3-none-any.whl", hash = "sha256:3e1faedc9d87e7d56a164eca3ccb6ace0d61b94abe83e92242f8dc8bba9b4a9f", size = 259548, upload_time = "2026-05-06T08:10:21.436Z" }, +] + +[[package]] +name = "beartype" +version = "0.22.9" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c7/94/1009e248bbfbab11397abca7193bea6626806be9a327d399810d523a07cb/beartype-0.22.9.tar.gz", hash = "sha256:8f82b54aa723a2848a56008d18875f91c1db02c32ef6a62319a002e3e25a975f", size = 1608866, upload_time = "2025-12-13T06:50:30.72Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/71/cc/18245721fa7747065ab478316c7fea7c74777d07f37ae60db2e84f8172e8/beartype-0.22.9-py3-none-any.whl", hash = "sha256:d16c9bbc61ea14637596c5f6fbff2ee99cbe3573e46a716401734ef50c3060c2", size = 1333658, upload_time = "2025-12-13T06:50:28.266Z" }, +] + +[[package]] +name = "cachetools" +version = "7.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8f/c1/67cfb86aa21144796ff51068326d467fbef8ee42f8d08a3a8a926106cf0c/cachetools-7.1.3.tar.gz", hash = "sha256:135cfe944bc3c1e805505f65dae0bef375a2f96261171ab66c79ef77d0bda39d", size = 45780, upload_time = "2026-05-18T18:21:03.819Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/68/52/8ff5c1a3b2e821ced9b2998fba3ee29aa4525c0bf51e5ee55dd6f61a4ed5/cachetools-7.1.3-py3-none-any.whl", hash = "sha256:9876787e2346e20584d5cca236cb5d49d04e7193de91646f230725b2e1e8b804", size = 16763, upload_time = "2026-05-18T18:21:02.386Z" }, +] + +[[package]] +name = "caio" +version = "0.9.25" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/92/88/b8527e1b00c1811db339a1df8bd1ae49d146fcea9d6a5c40e3a80aaeb38d/caio-0.9.25.tar.gz", hash = "sha256:16498e7f81d1d0f5a4c0ad3f2540e65fe25691376e0a5bd367f558067113ed10", size = 26781, upload_time = "2025-12-26T15:21:36.501Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/31/57/5e6ff127e6f62c9f15d989560435c642144aa4210882f9494204bc892305/caio-0.9.25-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:d6c2a3411af97762a2b03840c3cec2f7f728921ff8adda53d7ea2315a8563451", size = 36979, upload_time = "2025-12-26T15:21:35.484Z" }, + { url = "https://files.pythonhosted.org/packages/a3/9f/f21af50e72117eb528c422d4276cbac11fb941b1b812b182e0a9c70d19c5/caio-0.9.25-cp313-cp313-manylinux2010_x86_64.manylinux2014_x86_64.manylinux_2_12_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0998210a4d5cd5cb565b32ccfe4e53d67303f868a76f212e002a8554692870e6", size = 81900, upload_time = "2025-12-26T15:22:21.919Z" }, + { url = "https://files.pythonhosted.org/packages/9c/12/c39ae2a4037cb10ad5eb3578eb4d5f8c1a2575c62bba675f3406b7ef0824/caio-0.9.25-cp313-cp313-manylinux_2_34_aarch64.whl", hash = "sha256:1a177d4777141b96f175fe2c37a3d96dec7911ed9ad5f02bac38aaa1c936611f", size = 81523, upload_time = "2026-03-04T22:08:25.187Z" }, + { url = "https://files.pythonhosted.org/packages/22/59/f8f2e950eb4f1a5a3883e198dca514b9d475415cb6cd7b78b9213a0dd45a/caio-0.9.25-cp313-cp313-manylinux_2_34_x86_64.whl", hash = "sha256:9ed3cfb28c0e99fec5e208c934e5c157d0866aa9c32aa4dc5e9b6034af6286b7", size = 80243, upload_time = "2026-03-04T22:08:26.449Z" }, + { url = "https://files.pythonhosted.org/packages/69/ca/a08fdc7efdcc24e6a6131a93c85be1f204d41c58f474c42b0670af8c016b/caio-0.9.25-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:fab6078b9348e883c80a5e14b382e6ad6aabbc4429ca034e76e730cf464269db", size = 36978, upload_time = "2025-12-26T15:21:41.055Z" }, + { url = "https://files.pythonhosted.org/packages/5e/6c/d4d24f65e690213c097174d26eda6831f45f4734d9d036d81790a27e7b78/caio-0.9.25-cp314-cp314-manylinux2010_x86_64.manylinux2014_x86_64.manylinux_2_12_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:44a6b58e52d488c75cfaa5ecaa404b2b41cc965e6c417e03251e868ecd5b6d77", size = 81832, upload_time = "2025-12-26T15:22:22.757Z" }, + { url = "https://files.pythonhosted.org/packages/87/a4/e534cf7d2d0e8d880e25dd61e8d921ffcfe15bd696734589826f5a2df727/caio-0.9.25-cp314-cp314-manylinux_2_34_aarch64.whl", hash = "sha256:628a630eb7fb22381dd8e3c8ab7f59e854b9c806639811fc3f4310c6bd711d79", size = 81565, upload_time = "2026-03-04T22:08:27.483Z" }, + { url = "https://files.pythonhosted.org/packages/3f/ed/bf81aeac1d290017e5e5ac3e880fd56ee15e50a6d0353986799d1bc5cfd5/caio-0.9.25-cp314-cp314-manylinux_2_34_x86_64.whl", hash = "sha256:0ba16aa605ccb174665357fc729cf500679c2d94d5f1458a6f0d5ca48f2060a7", size = 80071, upload_time = "2026-03-04T22:08:28.751Z" }, + { url = "https://files.pythonhosted.org/packages/86/93/1f76c8d1bafe3b0614e06b2195784a3765bbf7b0a067661af9e2dd47fc33/caio-0.9.25-py3-none-any.whl", hash = "sha256:06c0bb02d6b929119b1cfbe1ca403c768b2013a369e2db46bfa2a5761cf82e40", size = 19087, upload_time = "2025-12-26T15:22:00.221Z" }, +] + +[[package]] +name = "certifi" +version = "2026.5.20" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/ce/ee2ecad540810a79593028e88299baeae54d346cc7a0d94b6199988b89b1/certifi-2026.5.20.tar.gz", hash = "sha256:69dea482ab64caa7b9f6aba1c6bf48bb6a5448d1c0f1b17ab42ad8c763a5344d", size = 135422, upload_time = "2026-05-20T11:46:50.073Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/59/8c/57e832b7af6d7c5abe66eb3fbe3a3a32f4d11ea23a1aa7131371035be991/certifi-2026.5.20-py3-none-any.whl", hash = "sha256:3c52e209ba0a4ad7aebe60436a4ab349c39e1e602e8c134221e546902ad25897", size = 134134, upload_time = "2026-05-20T11:46:48.578Z" }, +] + +[[package]] +name = "cffi" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pycparser", marker = "implementation_name != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/eb/56/b1ba7935a17738ae8453301356628e8147c79dbb825bcbc73dc7401f9846/cffi-2.0.0.tar.gz", hash = "sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529", size = 523588, upload_time = "2025-09-08T23:24:04.541Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4b/8d/a0a47a0c9e413a658623d014e91e74a50cdd2c423f7ccfd44086ef767f90/cffi-2.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:00bdf7acc5f795150faa6957054fbbca2439db2f775ce831222b66f192f03beb", size = 185230, upload_time = "2025-09-08T23:23:00.879Z" }, + { url = "https://files.pythonhosted.org/packages/4a/d2/a6c0296814556c68ee32009d9c2ad4f85f2707cdecfd7727951ec228005d/cffi-2.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:45d5e886156860dc35862657e1494b9bae8dfa63bf56796f2fb56e1679fc0bca", size = 181043, upload_time = "2025-09-08T23:23:02.231Z" }, + { url = "https://files.pythonhosted.org/packages/b0/1e/d22cc63332bd59b06481ceaac49d6c507598642e2230f201649058a7e704/cffi-2.0.0-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:07b271772c100085dd28b74fa0cd81c8fb1a3ba18b21e03d7c27f3436a10606b", size = 212446, upload_time = "2025-09-08T23:23:03.472Z" }, + { url = "https://files.pythonhosted.org/packages/a9/f5/a2c23eb03b61a0b8747f211eb716446c826ad66818ddc7810cc2cc19b3f2/cffi-2.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d48a880098c96020b02d5a1f7d9251308510ce8858940e6fa99ece33f610838b", size = 220101, upload_time = "2025-09-08T23:23:04.792Z" }, + { url = "https://files.pythonhosted.org/packages/f2/7f/e6647792fc5850d634695bc0e6ab4111ae88e89981d35ac269956605feba/cffi-2.0.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f93fd8e5c8c0a4aa1f424d6173f14a892044054871c771f8566e4008eaa359d2", size = 207948, upload_time = "2025-09-08T23:23:06.127Z" }, + { url = "https://files.pythonhosted.org/packages/cb/1e/a5a1bd6f1fb30f22573f76533de12a00bf274abcdc55c8edab639078abb6/cffi-2.0.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:dd4f05f54a52fb558f1ba9f528228066954fee3ebe629fc1660d874d040ae5a3", size = 206422, upload_time = "2025-09-08T23:23:07.753Z" }, + { url = "https://files.pythonhosted.org/packages/98/df/0a1755e750013a2081e863e7cd37e0cdd02664372c754e5560099eb7aa44/cffi-2.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c8d3b5532fc71b7a77c09192b4a5a200ea992702734a2e9279a37f2478236f26", size = 219499, upload_time = "2025-09-08T23:23:09.648Z" }, + { url = "https://files.pythonhosted.org/packages/50/e1/a969e687fcf9ea58e6e2a928ad5e2dd88cc12f6f0ab477e9971f2309b57c/cffi-2.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d9b29c1f0ae438d5ee9acb31cadee00a58c46cc9c0b2f9038c6b0b3470877a8c", size = 222928, upload_time = "2025-09-08T23:23:10.928Z" }, + { url = "https://files.pythonhosted.org/packages/36/54/0362578dd2c9e557a28ac77698ed67323ed5b9775ca9d3fe73fe191bb5d8/cffi-2.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6d50360be4546678fc1b79ffe7a66265e28667840010348dd69a314145807a1b", size = 221302, upload_time = "2025-09-08T23:23:12.42Z" }, + { url = "https://files.pythonhosted.org/packages/eb/6d/bf9bda840d5f1dfdbf0feca87fbdb64a918a69bca42cfa0ba7b137c48cb8/cffi-2.0.0-cp313-cp313-win32.whl", hash = "sha256:74a03b9698e198d47562765773b4a8309919089150a0bb17d829ad7b44b60d27", size = 172909, upload_time = "2025-09-08T23:23:14.32Z" }, + { url = "https://files.pythonhosted.org/packages/37/18/6519e1ee6f5a1e579e04b9ddb6f1676c17368a7aba48299c3759bbc3c8b3/cffi-2.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:19f705ada2530c1167abacb171925dd886168931e0a7b78f5bffcae5c6b5be75", size = 183402, upload_time = "2025-09-08T23:23:15.535Z" }, + { url = "https://files.pythonhosted.org/packages/cb/0e/02ceeec9a7d6ee63bb596121c2c8e9b3a9e150936f4fbef6ca1943e6137c/cffi-2.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:256f80b80ca3853f90c21b23ee78cd008713787b1b1e93eae9f3d6a7134abd91", size = 177780, upload_time = "2025-09-08T23:23:16.761Z" }, + { url = "https://files.pythonhosted.org/packages/92/c4/3ce07396253a83250ee98564f8d7e9789fab8e58858f35d07a9a2c78de9f/cffi-2.0.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:fc33c5141b55ed366cfaad382df24fe7dcbc686de5be719b207bb248e3053dc5", size = 185320, upload_time = "2025-09-08T23:23:18.087Z" }, + { url = "https://files.pythonhosted.org/packages/59/dd/27e9fa567a23931c838c6b02d0764611c62290062a6d4e8ff7863daf9730/cffi-2.0.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c654de545946e0db659b3400168c9ad31b5d29593291482c43e3564effbcee13", size = 181487, upload_time = "2025-09-08T23:23:19.622Z" }, + { url = "https://files.pythonhosted.org/packages/d6/43/0e822876f87ea8a4ef95442c3d766a06a51fc5298823f884ef87aaad168c/cffi-2.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:24b6f81f1983e6df8db3adc38562c83f7d4a0c36162885ec7f7b77c7dcbec97b", size = 220049, upload_time = "2025-09-08T23:23:20.853Z" }, + { url = "https://files.pythonhosted.org/packages/b4/89/76799151d9c2d2d1ead63c2429da9ea9d7aac304603de0c6e8764e6e8e70/cffi-2.0.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:12873ca6cb9b0f0d3a0da705d6086fe911591737a59f28b7936bdfed27c0d47c", size = 207793, upload_time = "2025-09-08T23:23:22.08Z" }, + { url = "https://files.pythonhosted.org/packages/bb/dd/3465b14bb9e24ee24cb88c9e3730f6de63111fffe513492bf8c808a3547e/cffi-2.0.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:d9b97165e8aed9272a6bb17c01e3cc5871a594a446ebedc996e2397a1c1ea8ef", size = 206300, upload_time = "2025-09-08T23:23:23.314Z" }, + { url = "https://files.pythonhosted.org/packages/47/d9/d83e293854571c877a92da46fdec39158f8d7e68da75bf73581225d28e90/cffi-2.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:afb8db5439b81cf9c9d0c80404b60c3cc9c3add93e114dcae767f1477cb53775", size = 219244, upload_time = "2025-09-08T23:23:24.541Z" }, + { url = "https://files.pythonhosted.org/packages/2b/0f/1f177e3683aead2bb00f7679a16451d302c436b5cbf2505f0ea8146ef59e/cffi-2.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:737fe7d37e1a1bffe70bd5754ea763a62a066dc5913ca57e957824b72a85e205", size = 222828, upload_time = "2025-09-08T23:23:26.143Z" }, + { url = "https://files.pythonhosted.org/packages/c6/0f/cafacebd4b040e3119dcb32fed8bdef8dfe94da653155f9d0b9dc660166e/cffi-2.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:38100abb9d1b1435bc4cc340bb4489635dc2f0da7456590877030c9b3d40b0c1", size = 220926, upload_time = "2025-09-08T23:23:27.873Z" }, + { url = "https://files.pythonhosted.org/packages/3e/aa/df335faa45b395396fcbc03de2dfcab242cd61a9900e914fe682a59170b1/cffi-2.0.0-cp314-cp314-win32.whl", hash = "sha256:087067fa8953339c723661eda6b54bc98c5625757ea62e95eb4898ad5e776e9f", size = 175328, upload_time = "2025-09-08T23:23:44.61Z" }, + { url = "https://files.pythonhosted.org/packages/bb/92/882c2d30831744296ce713f0feb4c1cd30f346ef747b530b5318715cc367/cffi-2.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:203a48d1fb583fc7d78a4c6655692963b860a417c0528492a6bc21f1aaefab25", size = 185650, upload_time = "2025-09-08T23:23:45.848Z" }, + { url = "https://files.pythonhosted.org/packages/9f/2c/98ece204b9d35a7366b5b2c6539c350313ca13932143e79dc133ba757104/cffi-2.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:dbd5c7a25a7cb98f5ca55d258b103a2054f859a46ae11aaf23134f9cc0d356ad", size = 180687, upload_time = "2025-09-08T23:23:47.105Z" }, + { url = "https://files.pythonhosted.org/packages/3e/61/c768e4d548bfa607abcda77423448df8c471f25dbe64fb2ef6d555eae006/cffi-2.0.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:9a67fc9e8eb39039280526379fb3a70023d77caec1852002b4da7e8b270c4dd9", size = 188773, upload_time = "2025-09-08T23:23:29.347Z" }, + { url = "https://files.pythonhosted.org/packages/2c/ea/5f76bce7cf6fcd0ab1a1058b5af899bfbef198bea4d5686da88471ea0336/cffi-2.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7a66c7204d8869299919db4d5069a82f1561581af12b11b3c9f48c584eb8743d", size = 185013, upload_time = "2025-09-08T23:23:30.63Z" }, + { url = "https://files.pythonhosted.org/packages/be/b4/c56878d0d1755cf9caa54ba71e5d049479c52f9e4afc230f06822162ab2f/cffi-2.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7cc09976e8b56f8cebd752f7113ad07752461f48a58cbba644139015ac24954c", size = 221593, upload_time = "2025-09-08T23:23:31.91Z" }, + { url = "https://files.pythonhosted.org/packages/e0/0d/eb704606dfe8033e7128df5e90fee946bbcb64a04fcdaa97321309004000/cffi-2.0.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:92b68146a71df78564e4ef48af17551a5ddd142e5190cdf2c5624d0c3ff5b2e8", size = 209354, upload_time = "2025-09-08T23:23:33.214Z" }, + { url = "https://files.pythonhosted.org/packages/d8/19/3c435d727b368ca475fb8742ab97c9cb13a0de600ce86f62eab7fa3eea60/cffi-2.0.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:b1e74d11748e7e98e2f426ab176d4ed720a64412b6a15054378afdb71e0f37dc", size = 208480, upload_time = "2025-09-08T23:23:34.495Z" }, + { url = "https://files.pythonhosted.org/packages/d0/44/681604464ed9541673e486521497406fadcc15b5217c3e326b061696899a/cffi-2.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:28a3a209b96630bca57cce802da70c266eb08c6e97e5afd61a75611ee6c64592", size = 221584, upload_time = "2025-09-08T23:23:36.096Z" }, + { url = "https://files.pythonhosted.org/packages/25/8e/342a504ff018a2825d395d44d63a767dd8ebc927ebda557fecdaca3ac33a/cffi-2.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:7553fb2090d71822f02c629afe6042c299edf91ba1bf94951165613553984512", size = 224443, upload_time = "2025-09-08T23:23:37.328Z" }, + { url = "https://files.pythonhosted.org/packages/e1/5e/b666bacbbc60fbf415ba9988324a132c9a7a0448a9a8f125074671c0f2c3/cffi-2.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:6c6c373cfc5c83a975506110d17457138c8c63016b563cc9ed6e056a82f13ce4", size = 223437, upload_time = "2025-09-08T23:23:38.945Z" }, + { url = "https://files.pythonhosted.org/packages/a0/1d/ec1a60bd1a10daa292d3cd6bb0b359a81607154fb8165f3ec95fe003b85c/cffi-2.0.0-cp314-cp314t-win32.whl", hash = "sha256:1fc9ea04857caf665289b7a75923f2c6ed559b8298a1b8c49e59f7dd95c8481e", size = 180487, upload_time = "2025-09-08T23:23:40.423Z" }, + { url = "https://files.pythonhosted.org/packages/bf/41/4c1168c74fac325c0c8156f04b6749c8b6a8f405bbf91413ba088359f60d/cffi-2.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:d68b6cef7827e8641e8ef16f4494edda8b36104d79773a334beaa1e3521430f6", size = 191726, upload_time = "2025-09-08T23:23:41.742Z" }, + { url = "https://files.pythonhosted.org/packages/ae/3a/dbeec9d1ee0844c679f6bb5d6ad4e9f198b1224f4e7a32825f47f6192b0c/cffi-2.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0a1527a803f0a659de1af2e1fd700213caba79377e27e4693648c2923da066f9", size = 184195, upload_time = "2025-09-08T23:23:43.004Z" }, +] + +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload_time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload_time = "2025-03-31T08:12:07.802Z" }, +] + +[[package]] +name = "click" +version = "8.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/23/e4/796662cd90cf80e3a363c99db2b88e0e394b988a575f60a17e16440cd011/click-8.4.0.tar.gz", hash = "sha256:638f1338fe1235c8f4e008e4a8a254fb5c5fbdcbb40ece3c9142ebb78e792973", size = 350843, upload_time = "2026-05-17T00:47:58.425Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ee/ae/8e92f8058baf87f6c7d86ee7e457668690195cc77efedb8d3797a06e3940/click-8.4.0-py3-none-any.whl", hash = "sha256:40c50b7c6c6adac2823d411041ec84f3f103f1b280d5e9ce0d7f998995832f81", size = 116147, upload_time = "2026-05-17T00:47:56.842Z" }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload_time = "2022-10-25T02:36:22.414Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload_time = "2022-10-25T02:36:20.889Z" }, +] + +[[package]] +name = "coverage" +version = "7.14.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/23/7f/d0720730a397a999ffc0fd3f5bebef347338e3a47b727da66fbb228e2ff2/coverage-7.14.0.tar.gz", hash = "sha256:057a6af2f160a85384cde4ab36f0d2777bae1057bae255f95413cdd382aa5c74", size = 919489, upload_time = "2026-05-10T18:02:31.397Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6b/76/b7c66ee3c66e1b0f9d894c8125983aa0c03fb2336f2fd16559f9c966157f/coverage-7.14.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f2bbb8254370eb4c628ff3d6fa8a7f74ddc40565394d4f7ab791d1fe568e37ef", size = 219990, upload_time = "2026-05-10T18:00:38.887Z" }, + { url = "https://files.pythonhosted.org/packages/b3/af/e567cbad5ba69c013a50146dfa886dc7193361fda77521f51274ff620e1b/coverage-7.14.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:23b81107f46d3f21d0cbce30664fcec0f5d9f585638a67081750f99738f6bf66", size = 220365, upload_time = "2026-05-10T18:00:40.864Z" }, + { url = "https://files.pythonhosted.org/packages/44/6f/9ad575d505b4d805b254febc8a5b338a2efe278f8786e56ff1cb8413f9c3/coverage-7.14.0-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:22a7e06a5f11a757cdfe79018e9095f9f69ae283c5cd8123774c788deec8717b", size = 251363, upload_time = "2026-05-10T18:00:42.489Z" }, + { url = "https://files.pythonhosted.org/packages/6f/5f/b5370068b2f57787454592ed7dcd1002f0f1703b7db1fa30f6a325a4ca6e/coverage-7.14.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:9d1aa57a1dc8e05bdc42e81c5d671d849577aeedf279f4c449d6d286f9ed88ca", size = 253961, upload_time = "2026-05-10T18:00:44.079Z" }, + { url = "https://files.pythonhosted.org/packages/29/1e/51adf17738976e8f2b85ddef7b7aa12a0838b056c92f175941d8862767c1/coverage-7.14.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:90c1a51bcfddf645b3bb7ec333d9e94393a8e94f55642380fa8a9a5a9e636cb7", size = 255193, upload_time = "2026-05-10T18:00:45.623Z" }, + { url = "https://files.pythonhosted.org/packages/9e/7b/5bfd7ac1df3b881c2ac7a5cbc99c7609e6296c402f5ef587cd81c6f355b3/coverage-7.14.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a841fae2fadcae4f438d43b6ccc4aac2ad609f47cdb6cfdce60cbb3fe5ca7bc2", size = 257326, upload_time = "2026-05-10T18:00:47.173Z" }, + { url = "https://files.pythonhosted.org/packages/7d/38/1d37d316b174fad3843a1d76dbdfe4398771c9ecd0515935dd9ece9cd627/coverage-7.14.0-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c79d2319cabef1fe8e86df73371126931550804738f78ad7d31e3aad85a67367", size = 251582, upload_time = "2026-05-10T18:00:49.152Z" }, + { url = "https://files.pythonhosted.org/packages/34/46/746704f95980ba220214e1a41e18cec5aea80a898eaa53c51bf2d645ff36/coverage-7.14.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1b23b0c6f0b1db6ad769b7050c8b641c0bf215ded26c1816955b17b7f26edfa9", size = 253325, upload_time = "2026-05-10T18:00:51.252Z" }, + { url = "https://files.pythonhosted.org/packages/e1/b9/bbe87206d9687b192352f893797825b5f5b15ecd3aa9c68fbff0c074d77b/coverage-7.14.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:55d3089079ce181a4566b1065ab28d2575eb76d8ac8f81f4fcda2bf037fee087", size = 251291, upload_time = "2026-05-10T18:00:52.816Z" }, + { url = "https://files.pythonhosted.org/packages/46/57/b8cdb12ac0d73ef0243218bd5e22c9df8f92edab8018213a86aec67c5324/coverage-7.14.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:49c005cba1e2f9677fb2845dcdf9a2e72a52a17d63e8231aaaae35d9f50215ef", size = 255448, upload_time = "2026-05-10T18:00:54.548Z" }, + { url = "https://files.pythonhosted.org/packages/1f/d4/5002019538b2036ce3c84340f54d2fd5100d55b0a6b0894eee56128d03c7/coverage-7.14.0-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:9117377b823daa28aa8635fbb08cda1cd6be3d7143257345459559aeef852d52", size = 251110, upload_time = "2026-05-10T18:00:56.122Z" }, + { url = "https://files.pythonhosted.org/packages/37/53/20c5009477660f084e6ed60bc02a91894b8e234e617e86ecfd9aaf78e27b/coverage-7.14.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7b79d646cf46d5cf9a9f40281d4441df5849e445726e369006d2b117710b33fe", size = 252885, upload_time = "2026-05-10T18:00:57.967Z" }, + { url = "https://files.pythonhosted.org/packages/ae/ab/3cf6427ac9c1f1db747dbb1ce71dde47984876d4c2cfd018a3fef0a78d4d/coverage-7.14.0-cp313-cp313-win32.whl", hash = "sha256:fb609b3658479e33f9516d46f1a89dbb9b6c261366e3a11844a96ec487533dae", size = 222539, upload_time = "2026-05-10T18:00:59.581Z" }, + { url = "https://files.pythonhosted.org/packages/8f/b8/9228523e80321c2cb4880d1f589bc0171f2f71432c35118ad04dc01decce/coverage-7.14.0-cp313-cp313-win_amd64.whl", hash = "sha256:0773d8329cf32b6fd222e4b52622c61fe8d503eb966cfc8d3c3c10c96266d50e", size = 223344, upload_time = "2026-05-10T18:01:01.531Z" }, + { url = "https://files.pythonhosted.org/packages/a3/99/118daa192f95e3a6cb2740100fbf8797cda1734b4134ef0b5d501a7fa8f3/coverage-7.14.0-cp313-cp313-win_arm64.whl", hash = "sha256:b4e26a0f1b696faf283bffe5b8569e44e336c582439df5d53281ab89ee0cba96", size = 221966, upload_time = "2026-05-10T18:01:03.16Z" }, + { url = "https://files.pythonhosted.org/packages/e6/f1/a46cc0c013be170216253184a32366d7cbdb9252feaec866b05c2d12a894/coverage-7.14.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:953f521ca9445300397e65fda3dca58b2dbd68fee983777420b57ac3c77e9f90", size = 220679, upload_time = "2026-05-10T18:01:05.058Z" }, + { url = "https://files.pythonhosted.org/packages/64/8c/9c30a3d311a34177fa432995be7fbfc64477d8bac5630bd38055b1c9b424/coverage-7.14.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:98af83fd65ae24b1fdd03aaead967a9f523bcd2f1aab2d4f3ffda65bb568a6f1", size = 221033, upload_time = "2026-05-10T18:01:07.002Z" }, + { url = "https://files.pythonhosted.org/packages/9a/cd/3fb5e06c3badefd0c1b47e2044fdca67f8220a4ec2e7fcfb476aa0a67c6c/coverage-7.14.0-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:668b92e6958c4db7cf92e81caac328dfbbdbb215db2850ad28f0cbe1eea0bfbd", size = 262333, upload_time = "2026-05-10T18:01:08.903Z" }, + { url = "https://files.pythonhosted.org/packages/a8/e6/fbc322325c7294d3e22c1ad6b79e45d0806b25228c8e5842aed6d8169aa7/coverage-7.14.0-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:9fbd898551762dea00d3fef2b1c4f99afd2c6a3ff952ea07d60a9bd5ed4f34bc", size = 264410, upload_time = "2026-05-10T18:01:10.531Z" }, + { url = "https://files.pythonhosted.org/packages/08/92/c497b264bec1673c47cc77e26f760fcda4654cabf1f39546d1a23a3b8c35/coverage-7.14.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:68af363c07ecd8d4b7d4043d85cb376d7d227eceb54e5323ee45da73dbd3e426", size = 266836, upload_time = "2026-05-10T18:01:12.19Z" }, + { url = "https://files.pythonhosted.org/packages/78/fc/045da320987f401af5d2815d351e8aa799aec859f60e29f445e3089eeedb/coverage-7.14.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6e57054a583da8ac55edf24117ea4c9133032cfc4cf72aa2d48c1e5d4b52f899", size = 267974, upload_time = "2026-05-10T18:01:13.926Z" }, + { url = "https://files.pythonhosted.org/packages/1b/ae/227b1e379497fb7a4fc3286e620f80c8a1e7cec66d45695a01639eb1af65/coverage-7.14.0-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:cc3499459bbcdd51a65b64c35ab7ed2764eaf3cba826e0df3f1d7fe2e102b70b", size = 261578, upload_time = "2026-05-10T18:01:15.564Z" }, + { url = "https://files.pythonhosted.org/packages/a0/f5/3570342900f2acea31d33ff1590c5d8bac1a8e1a2e1c6d34a5d5e61de681/coverage-7.14.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:45899ec2138a4346ed34d601dedf5076fb74edf2d1dd9dc76a78e82397edee90", size = 264394, upload_time = "2026-05-10T18:01:17.607Z" }, + { url = "https://files.pythonhosted.org/packages/16/29/de1bbc01c935b28f89b1dc3db85b011c055e843a8e5e3b83141c3f80af7f/coverage-7.14.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:8767486808c436f05b23ab98eb963fb29185e32a9357a166971685cb3459900f", size = 262022, upload_time = "2026-05-10T18:01:19.304Z" }, + { url = "https://files.pythonhosted.org/packages/35/95/f53890b0bf2fc10ab168e05d38869215e73ca24c4cb521c3bb0eb62fe16b/coverage-7.14.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:a3b5ddfd6aa7ddad53ee3edb231e88a2151507a43229b7d71b953916deca127d", size = 265732, upload_time = "2026-05-10T18:01:21.494Z" }, + { url = "https://files.pythonhosted.org/packages/ed/ea/c919e259081dd2bdf0e43b87209709ba7ec2e4117c2a7f5185379c43463c/coverage-7.14.0-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:63df0fe568e698e1045792399f8ab6da3a6c2dce3182813fb92afa2641087b47", size = 260921, upload_time = "2026-05-10T18:01:23.533Z" }, + { url = "https://files.pythonhosted.org/packages/1a/2c/c2831889705a81dc5d1c6ca12e4d8e9b95dfc146d153488a6c0ea685d28e/coverage-7.14.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:827d6397dbd95144939b18f89edf31f63e1f99633e8d5f32f22ba8bdda567477", size = 263109, upload_time = "2026-05-10T18:01:25.165Z" }, + { url = "https://files.pythonhosted.org/packages/5a/a9/2fcae5003cac3d63fe344d2166243c2756935f48420863c5272b240d550b/coverage-7.14.0-cp313-cp313t-win32.whl", hash = "sha256:7bf43e000d24012599b879791cff41589af90674722421ef11b11a5431920bab", size = 223212, upload_time = "2026-05-10T18:01:27.157Z" }, + { url = "https://files.pythonhosted.org/packages/3f/bb/18e94d7b14b9b398164197114a587a04ab7c9fdbe1d237eef57311c5e883/coverage-7.14.0-cp313-cp313t-win_amd64.whl", hash = "sha256:3f5549365af25d770e06b1f8f5682d9a5637d06eb494db91c6fa75d3950cc917", size = 224272, upload_time = "2026-05-10T18:01:29.107Z" }, + { url = "https://files.pythonhosted.org/packages/db/56/4f14fad782b035c81c4ffd09159e7103d42bb1d93ac8496d04b90a11b7da/coverage-7.14.0-cp313-cp313t-win_arm64.whl", hash = "sha256:6d160217ec6fe890f16ad3a9531761589443749e448f91986c972714fad361c8", size = 222530, upload_time = "2026-05-10T18:01:31.151Z" }, + { url = "https://files.pythonhosted.org/packages/1c/18/b9a6586d73992807c26f9a5f274131be3d76b56b18a82b9392e2a25d2e45/coverage-7.14.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:9aed9fa983514ca032790f3fe0d1c0e42ca7e16b42432af1706b50a9a46bef5d", size = 220036, upload_time = "2026-05-10T18:01:33.057Z" }, + { url = "https://files.pythonhosted.org/packages/f3/9b/4165a1d56ddc302a0e2d518fd9d412a4fd0b57562618c78c5f21c57194f5/coverage-7.14.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:ba3b8390db29296dbbf49e91b6fe08f990743a90c8f447ba4c2ffc29670dfa63", size = 220368, upload_time = "2026-05-10T18:01:34.705Z" }, + { url = "https://files.pythonhosted.org/packages/69/aa/c12e52a5ba148d9995229d557e3be6e554fe469addc0e9241b2f0956d8ea/coverage-7.14.0-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:3a5d8e876dfa2f102e970b183863d6dedd023d3c0eeca1fe7a9787bc5f28b212", size = 251417, upload_time = "2026-05-10T18:01:36.949Z" }, + { url = "https://files.pythonhosted.org/packages/d7/51/ec641c26e6dca1b25a7d2035ba6ecb7c884ef1a100a9e42fbe4ce4405139/coverage-7.14.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:5ebb8f4614a3787d567e610bbfdf96a4798dd69a1afb1bd8ad228d4111fe6ff3", size = 253924, upload_time = "2026-05-10T18:01:38.985Z" }, + { url = "https://files.pythonhosted.org/packages/33/c4/59c3de0bd1b538824173fd518fed51c1ce740ca5ed68e74545983f4053a9/coverage-7.14.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b9bf47223dd8db3d4c4b2e443b02bace480d428f0822c3f991600448a176c97", size = 255269, upload_time = "2026-05-10T18:01:40.957Z" }, + { url = "https://files.pythonhosted.org/packages/7b/a9/36dfa153a62040296f6e7febfdb20a5720622f6ef5a81a41e8237b9a5344/coverage-7.14.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:3485a836550b303d006d57cc06e3d5afaabc642c77050b7c985a97b13e3776b8", size = 257583, upload_time = "2026-05-10T18:01:42.607Z" }, + { url = "https://files.pythonhosted.org/packages/26/7b/cc2c048d4114d9ab1c2409e9ee365e5ae10736df6dffcfc9444effa6c708/coverage-7.14.0-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3e7e88110bae996d199d1693ca8ec3fd52441d426401ae963437598667b4c5eb", size = 251434, upload_time = "2026-05-10T18:01:44.537Z" }, + { url = "https://files.pythonhosted.org/packages/ee/df/6770eaa576e604575e9a78055313250faef5faa84bd6f71a39fece519c43/coverage-7.14.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:15228a6800ce7bdf1b74800595e56db7138cecb338fdbf044806e10dcf182dfe", size = 253280, upload_time = "2026-05-10T18:01:46.175Z" }, + { url = "https://files.pythonhosted.org/packages/ad/9e/1c0264514a3f98259a6d64765a397b2c8373e3ba59ee722a4802d3ec0c61/coverage-7.14.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:9d26ac7f5398bafc5b57421ad994e8a4749e8a7a0e62d05ec7d53014d5963bfa", size = 251241, upload_time = "2026-05-10T18:01:48.732Z" }, + { url = "https://files.pythonhosted.org/packages/64/16/4efdf3e3c4079cdbf0ece56a2fea872df9e8a3e15a13a0af4400e1075944/coverage-7.14.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:2fb73254ff43c911c967a899e1359bc5049b4b115d6e8fbdde4937d0a2246cd5", size = 255516, upload_time = "2026-05-10T18:01:50.819Z" }, + { url = "https://files.pythonhosted.org/packages/93/69/b1de96346603881b3d1bc8d6447c83200e1c9700ffbaff926ba01ff5724c/coverage-7.14.0-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:454a380af72c6adada298ed270d38c7a391288198dbfb8467f786f588751a90c", size = 251059, upload_time = "2026-05-10T18:01:52.773Z" }, + { url = "https://files.pythonhosted.org/packages/a4/66/2881853e0363a5e0a724d1103e53650795367471b6afb234f8b49e713bc6/coverage-7.14.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:65c86fb646d2bd2972e96bd1a8b45817ed907cee68655d6295fe7ec031d04cca", size = 252716, upload_time = "2026-05-10T18:01:54.506Z" }, + { url = "https://files.pythonhosted.org/packages/55/5c/0d3305d002c41dcde873dbe456491e663dc55152ca526b630b5c47efd62f/coverage-7.14.0-cp314-cp314-win32.whl", hash = "sha256:6a6516b02a6101398e19a3f44820f69bab2590697f7def4331f668b14adaf828", size = 222788, upload_time = "2026-05-10T18:01:56.487Z" }, + { url = "https://files.pythonhosted.org/packages/f9/58/6e1b8f52fdc3184b47dc5037f5070d83a3d11042db1594b02d2a44d786c8/coverage-7.14.0-cp314-cp314-win_amd64.whl", hash = "sha256:45e0f79d8351fa76e256716df91eab12890d32678b9590df7ae1042e4bd4cf5d", size = 223600, upload_time = "2026-05-10T18:01:58.497Z" }, + { url = "https://files.pythonhosted.org/packages/00/70/a18c408e674bc26281cadaedc7351f929bd2094e191e4b15271c30b084cc/coverage-7.14.0-cp314-cp314-win_arm64.whl", hash = "sha256:4b899594a8b2d81e5cc064a0d7f9cac2081fed91049456cae7676787e41549c9", size = 222168, upload_time = "2026-05-10T18:02:00.411Z" }, + { url = "https://files.pythonhosted.org/packages/3d/89/2681f071d238b62aff8dfc2ab44fc24cfdb38d1c01f391a80522ff5d3a16/coverage-7.14.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:f580f8c80acd94ac72e863efe2cab791d8c38d153e0b463b92dfa000d5c84cd1", size = 220766, upload_time = "2026-05-10T18:02:02.313Z" }, + { url = "https://files.pythonhosted.org/packages/bd/c7/c987babafd9207ffa1995e1ef1f9b26762cf4963aa768a66b6f0501e4616/coverage-7.14.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:a2bd259c442cd43c49b30fbafc51776eb19ea396faf159d26a83e6a0a5f13b0c", size = 221035, upload_time = "2026-05-10T18:02:04.017Z" }, + { url = "https://files.pythonhosted.org/packages/5a/e9/d6a5ac3b333088143d6fc877d398a9a674dc03124a2f776e131f03864823/coverage-7.14.0-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:a706b908dfa85538863504c624b237a3cc34232bf403c057414ebfdb3b4d9f84", size = 262405, upload_time = "2026-05-10T18:02:05.915Z" }, + { url = "https://files.pythonhosted.org/packages/38/b1/e70838d29a7c08e22d44398a46db90815bbcbf28de06992bd9210d1a8d8e/coverage-7.14.0-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:7333cd944ee4393b9b3d3c1b598c936d4fc8d70573a4c7dacfec5590dd50e436", size = 264530, upload_time = "2026-05-10T18:02:07.582Z" }, + { url = "https://files.pythonhosted.org/packages/6b/73/5c31ef97763288d03d9995152b96d5475b527c63d91c84b01caea894b83a/coverage-7.14.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0f162bc9a15b82d947b02651b0c7e1609d6f7a8735ca330cfadec8481dd97d5a", size = 266932, upload_time = "2026-05-10T18:02:09.401Z" }, + { url = "https://files.pythonhosted.org/packages/e1/76/dd56d80f29c5f05b4d76f7e7c6d47cafacae017189c75c5759d24f9ff0cc/coverage-7.14.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:362cb78e01a5dc82009d88004cf60f2e6b6d6fcbfdec05b05af73b0abf40118f", size = 268062, upload_time = "2026-05-10T18:02:11.399Z" }, + { url = "https://files.pythonhosted.org/packages/6e/c7/27ba85cd5b95614f159ff93ebff1901584a8d192e2e5e24c4943a7453f59/coverage-7.14.0-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:acebd068fca5512c3a6fde9c045f901613478781a73f0e82b307b214daef23fb", size = 261504, upload_time = "2026-05-10T18:02:13.257Z" }, + { url = "https://files.pythonhosted.org/packages/13/2e/e8149f60ab5d5684c6eee881bdf34b127115cddbb958b196768dd9d63473/coverage-7.14.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:29fe3da551dface75deb2ccbf87b6b66e2e7ef38f6d89050b428be94afff3490", size = 264398, upload_time = "2026-05-10T18:02:15.063Z" }, + { url = "https://files.pythonhosted.org/packages/d9/7f/1261b025285323225f4b4abffa5a643649dfd67e25ddca7ebcbdea3b7cb3/coverage-7.14.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:b4cc4fce8672fffcb09b0eafc167b396b3ba53c4a7230f54b7aaffbf6c835fa9", size = 262000, upload_time = "2026-05-10T18:02:16.756Z" }, + { url = "https://files.pythonhosted.org/packages/d3/dc/829c54f60b9d08389439c00f813c752781c496fc5788c78d8006db4b4f2b/coverage-7.14.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:5d4a51aad8ba8bdcd2b8bd8f03d4aca19693fa2327a3470e4718a25b03481020", size = 265732, upload_time = "2026-05-10T18:02:18.817Z" }, + { url = "https://files.pythonhosted.org/packages/ed/b0/70bd1419941652fa062689cba9c3eeafb8f5e6fbb890bce41c3bdda5dbd6/coverage-7.14.0-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:9f323af3e1e4f68b60b7b247e37b8515563a61375518fa59de1af48ba28a3db6", size = 260847, upload_time = "2026-05-10T18:02:20.528Z" }, + { url = "https://files.pythonhosted.org/packages/f2/73/be40b2390656c654d35ea0015ea7ba3d945769cf80790ad5e0bb2d56d2ba/coverage-7.14.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:1a0abc7342ea9711c469dd8b821c6c311e6bc6aac1442e5fbd6b27fae0a8f3db", size = 263166, upload_time = "2026-05-10T18:02:22.337Z" }, + { url = "https://files.pythonhosted.org/packages/29/55/4a643f712fcf7cf2881f8ec1e0ccb7b164aff3108f69b51801246c8799f2/coverage-7.14.0-cp314-cp314t-win32.whl", hash = "sha256:a9f864ef57b7172e2db87a096642dd51e179e085ab6b2c371c29e885f65c8fb2", size = 223573, upload_time = "2026-05-10T18:02:24.11Z" }, + { url = "https://files.pythonhosted.org/packages/27/96/3acae5da0953be042c0b4dea6d6789d2f080701c77b88e44d5bd41b9219b/coverage-7.14.0-cp314-cp314t-win_amd64.whl", hash = "sha256:29943e552fdc08e082eb51400fb2f58e118a83b5542bd06531214e084399b644", size = 224680, upload_time = "2026-05-10T18:02:25.896Z" }, + { url = "https://files.pythonhosted.org/packages/93/3d/6ab5d2dd8325d838737c6f8d83d62eb6230e0d70b87b51b57bbfd08fa767/coverage-7.14.0-cp314-cp314t-win_arm64.whl", hash = "sha256:742a73ea621953b012f2c4c2219b512180dd84489acf5b1596b0aafc55b9100b", size = 222703, upload_time = "2026-05-10T18:02:27.822Z" }, + { url = "https://files.pythonhosted.org/packages/61/e8/cb8e80d6f9f55b99588625062822bf946cf03ed06315df4bd8397f5632a1/coverage-7.14.0-py3-none-any.whl", hash = "sha256:8de5b61163aee3d05c8a2beab6f47913df7981dad1baf82c414d99158c286ab1", size = 211764, upload_time = "2026-05-10T18:02:29.538Z" }, +] + +[[package]] +name = "cryptography" +version = "46.0.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/47/93/ac8f3d5ff04d54bc814e961a43ae5b0b146154c89c61b47bb07557679b18/cryptography-46.0.7.tar.gz", hash = "sha256:e4cfd68c5f3e0bfdad0d38e023239b96a2fe84146481852dffbcca442c245aa5", size = 750652, upload_time = "2026-04-08T01:57:54.692Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0b/5d/4a8f770695d73be252331e60e526291e3df0c9b27556a90a6b47bccca4c2/cryptography-46.0.7-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:ea42cbe97209df307fdc3b155f1b6fa2577c0defa8f1f7d3be7d31d189108ad4", size = 7179869, upload_time = "2026-04-08T01:56:17.157Z" }, + { url = "https://files.pythonhosted.org/packages/5f/45/6d80dc379b0bbc1f9d1e429f42e4cb9e1d319c7a8201beffd967c516ea01/cryptography-46.0.7-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b36a4695e29fe69215d75960b22577197aca3f7a25b9cf9d165dcfe9d80bc325", size = 4275492, upload_time = "2026-04-08T01:56:19.36Z" }, + { url = "https://files.pythonhosted.org/packages/4a/9a/1765afe9f572e239c3469f2cb429f3ba7b31878c893b246b4b2994ffe2fe/cryptography-46.0.7-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5ad9ef796328c5e3c4ceed237a183f5d41d21150f972455a9d926593a1dcb308", size = 4426670, upload_time = "2026-04-08T01:56:21.415Z" }, + { url = "https://files.pythonhosted.org/packages/8f/3e/af9246aaf23cd4ee060699adab1e47ced3f5f7e7a8ffdd339f817b446462/cryptography-46.0.7-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:73510b83623e080a2c35c62c15298096e2a5dc8d51c3b4e1740211839d0dea77", size = 4280275, upload_time = "2026-04-08T01:56:23.539Z" }, + { url = "https://files.pythonhosted.org/packages/0f/54/6bbbfc5efe86f9d71041827b793c24811a017c6ac0fd12883e4caa86b8ed/cryptography-46.0.7-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:cbd5fb06b62bd0721e1170273d3f4d5a277044c47ca27ee257025146c34cbdd1", size = 4928402, upload_time = "2026-04-08T01:56:25.624Z" }, + { url = "https://files.pythonhosted.org/packages/2d/cf/054b9d8220f81509939599c8bdbc0c408dbd2bdd41688616a20731371fe0/cryptography-46.0.7-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:420b1e4109cc95f0e5700eed79908cef9268265c773d3a66f7af1eef53d409ef", size = 4459985, upload_time = "2026-04-08T01:56:27.309Z" }, + { url = "https://files.pythonhosted.org/packages/f9/46/4e4e9c6040fb01c7467d47217d2f882daddeb8828f7df800cb806d8a2288/cryptography-46.0.7-cp311-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:24402210aa54baae71d99441d15bb5a1919c195398a87b563df84468160a65de", size = 3990652, upload_time = "2026-04-08T01:56:29.095Z" }, + { url = "https://files.pythonhosted.org/packages/36/5f/313586c3be5a2fbe87e4c9a254207b860155a8e1f3cca99f9910008e7d08/cryptography-46.0.7-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:8a469028a86f12eb7d2fe97162d0634026d92a21f3ae0ac87ed1c4a447886c83", size = 4279805, upload_time = "2026-04-08T01:56:30.928Z" }, + { url = "https://files.pythonhosted.org/packages/69/33/60dfc4595f334a2082749673386a4d05e4f0cf4df8248e63b2c3437585f2/cryptography-46.0.7-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:9694078c5d44c157ef3162e3bf3946510b857df5a3955458381d1c7cfc143ddb", size = 4892883, upload_time = "2026-04-08T01:56:32.614Z" }, + { url = "https://files.pythonhosted.org/packages/c7/0b/333ddab4270c4f5b972f980adef4faa66951a4aaf646ca067af597f15563/cryptography-46.0.7-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:42a1e5f98abb6391717978baf9f90dc28a743b7d9be7f0751a6f56a75d14065b", size = 4459756, upload_time = "2026-04-08T01:56:34.306Z" }, + { url = "https://files.pythonhosted.org/packages/d2/14/633913398b43b75f1234834170947957c6b623d1701ffc7a9600da907e89/cryptography-46.0.7-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:91bbcb08347344f810cbe49065914fe048949648f6bd5c2519f34619142bbe85", size = 4410244, upload_time = "2026-04-08T01:56:35.977Z" }, + { url = "https://files.pythonhosted.org/packages/10/f2/19ceb3b3dc14009373432af0c13f46aa08e3ce334ec6eff13492e1812ccd/cryptography-46.0.7-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:5d1c02a14ceb9148cc7816249f64f623fbfee39e8c03b3650d842ad3f34d637e", size = 4674868, upload_time = "2026-04-08T01:56:38.034Z" }, + { url = "https://files.pythonhosted.org/packages/1a/bb/a5c213c19ee94b15dfccc48f363738633a493812687f5567addbcbba9f6f/cryptography-46.0.7-cp311-abi3-win32.whl", hash = "sha256:d23c8ca48e44ee015cd0a54aeccdf9f09004eba9fc96f38c911011d9ff1bd457", size = 3026504, upload_time = "2026-04-08T01:56:39.666Z" }, + { url = "https://files.pythonhosted.org/packages/2b/02/7788f9fefa1d060ca68717c3901ae7fffa21ee087a90b7f23c7a603c32ae/cryptography-46.0.7-cp311-abi3-win_amd64.whl", hash = "sha256:397655da831414d165029da9bc483bed2fe0e75dde6a1523ec2fe63f3c46046b", size = 3488363, upload_time = "2026-04-08T01:56:41.893Z" }, + { url = "https://files.pythonhosted.org/packages/7b/56/15619b210e689c5403bb0540e4cb7dbf11a6bf42e483b7644e471a2812b3/cryptography-46.0.7-cp314-cp314t-macosx_10_9_universal2.whl", hash = "sha256:d151173275e1728cf7839aaa80c34fe550c04ddb27b34f48c232193df8db5842", size = 7119671, upload_time = "2026-04-08T01:56:44Z" }, + { url = "https://files.pythonhosted.org/packages/74/66/e3ce040721b0b5599e175ba91ab08884c75928fbeb74597dd10ef13505d2/cryptography-46.0.7-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:db0f493b9181c7820c8134437eb8b0b4792085d37dbb24da050476ccb664e59c", size = 4268551, upload_time = "2026-04-08T01:56:46.071Z" }, + { url = "https://files.pythonhosted.org/packages/03/11/5e395f961d6868269835dee1bafec6a1ac176505a167f68b7d8818431068/cryptography-46.0.7-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ebd6daf519b9f189f85c479427bbd6e9c9037862cf8fe89ee35503bd209ed902", size = 4408887, upload_time = "2026-04-08T01:56:47.718Z" }, + { url = "https://files.pythonhosted.org/packages/40/53/8ed1cf4c3b9c8e611e7122fb56f1c32d09e1fff0f1d77e78d9ff7c82653e/cryptography-46.0.7-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:b7b412817be92117ec5ed95f880defe9cf18a832e8cafacf0a22337dc1981b4d", size = 4271354, upload_time = "2026-04-08T01:56:49.312Z" }, + { url = "https://files.pythonhosted.org/packages/50/46/cf71e26025c2e767c5609162c866a78e8a2915bbcfa408b7ca495c6140c4/cryptography-46.0.7-cp314-cp314t-manylinux_2_28_ppc64le.whl", hash = "sha256:fbfd0e5f273877695cb93baf14b185f4878128b250cc9f8e617ea0c025dfb022", size = 4905845, upload_time = "2026-04-08T01:56:50.916Z" }, + { url = "https://files.pythonhosted.org/packages/c0/ea/01276740375bac6249d0a971ebdf6b4dc9ead0ee0a34ef3b5a88c1a9b0d4/cryptography-46.0.7-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:ffca7aa1d00cf7d6469b988c581598f2259e46215e0140af408966a24cf086ce", size = 4444641, upload_time = "2026-04-08T01:56:52.882Z" }, + { url = "https://files.pythonhosted.org/packages/3d/4c/7d258f169ae71230f25d9f3d06caabcff8c3baf0978e2b7d65e0acac3827/cryptography-46.0.7-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:60627cf07e0d9274338521205899337c5d18249db56865f943cbe753aa96f40f", size = 3967749, upload_time = "2026-04-08T01:56:54.597Z" }, + { url = "https://files.pythonhosted.org/packages/b5/2a/2ea0767cad19e71b3530e4cad9605d0b5e338b6a1e72c37c9c1ceb86c333/cryptography-46.0.7-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:80406c3065e2c55d7f49a9550fe0c49b3f12e5bfff5dedb727e319e1afb9bf99", size = 4270942, upload_time = "2026-04-08T01:56:56.416Z" }, + { url = "https://files.pythonhosted.org/packages/41/3d/fe14df95a83319af25717677e956567a105bb6ab25641acaa093db79975d/cryptography-46.0.7-cp314-cp314t-manylinux_2_34_ppc64le.whl", hash = "sha256:c5b1ccd1239f48b7151a65bc6dd54bcfcc15e028c8ac126d3fada09db0e07ef1", size = 4871079, upload_time = "2026-04-08T01:56:58.31Z" }, + { url = "https://files.pythonhosted.org/packages/9c/59/4a479e0f36f8f378d397f4eab4c850b4ffb79a2f0d58704b8fa0703ddc11/cryptography-46.0.7-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:d5f7520159cd9c2154eb61eb67548ca05c5774d39e9c2c4339fd793fe7d097b2", size = 4443999, upload_time = "2026-04-08T01:57:00.508Z" }, + { url = "https://files.pythonhosted.org/packages/28/17/b59a741645822ec6d04732b43c5d35e4ef58be7bfa84a81e5ae6f05a1d33/cryptography-46.0.7-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:fcd8eac50d9138c1d7fc53a653ba60a2bee81a505f9f8850b6b2888555a45d0e", size = 4399191, upload_time = "2026-04-08T01:57:02.654Z" }, + { url = "https://files.pythonhosted.org/packages/59/6a/bb2e166d6d0e0955f1e9ff70f10ec4b2824c9cfcdb4da772c7dd69cc7d80/cryptography-46.0.7-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:65814c60f8cc400c63131584e3e1fad01235edba2614b61fbfbfa954082db0ee", size = 4655782, upload_time = "2026-04-08T01:57:04.592Z" }, + { url = "https://files.pythonhosted.org/packages/95/b6/3da51d48415bcb63b00dc17c2eff3a651b7c4fed484308d0f19b30e8cb2c/cryptography-46.0.7-cp314-cp314t-win32.whl", hash = "sha256:fdd1736fed309b4300346f88f74cd120c27c56852c3838cab416e7a166f67298", size = 3002227, upload_time = "2026-04-08T01:57:06.91Z" }, + { url = "https://files.pythonhosted.org/packages/32/a8/9f0e4ed57ec9cebe506e58db11ae472972ecb0c659e4d52bbaee80ca340a/cryptography-46.0.7-cp314-cp314t-win_amd64.whl", hash = "sha256:e06acf3c99be55aa3b516397fe42f5855597f430add9c17fa46bf2e0fb34c9bb", size = 3475332, upload_time = "2026-04-08T01:57:08.807Z" }, + { url = "https://files.pythonhosted.org/packages/a7/7f/cd42fc3614386bc0c12f0cb3c4ae1fc2bbca5c9662dfed031514911d513d/cryptography-46.0.7-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:462ad5cb1c148a22b2e3bcc5ad52504dff325d17daf5df8d88c17dda1f75f2a4", size = 7165618, upload_time = "2026-04-08T01:57:10.645Z" }, + { url = "https://files.pythonhosted.org/packages/a5/d0/36a49f0262d2319139d2829f773f1b97ef8aef7f97e6e5bd21455e5a8fb5/cryptography-46.0.7-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:84d4cced91f0f159a7ddacad249cc077e63195c36aac40b4150e7a57e84fffe7", size = 4270628, upload_time = "2026-04-08T01:57:12.885Z" }, + { url = "https://files.pythonhosted.org/packages/8a/6c/1a42450f464dda6ffbe578a911f773e54dd48c10f9895a23a7e88b3e7db5/cryptography-46.0.7-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:128c5edfe5e5938b86b03941e94fac9ee793a94452ad1365c9fc3f4f62216832", size = 4415405, upload_time = "2026-04-08T01:57:14.923Z" }, + { url = "https://files.pythonhosted.org/packages/9a/92/4ed714dbe93a066dc1f4b4581a464d2d7dbec9046f7c8b7016f5286329e2/cryptography-46.0.7-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:5e51be372b26ef4ba3de3c167cd3d1022934bc838ae9eaad7e644986d2a3d163", size = 4272715, upload_time = "2026-04-08T01:57:16.638Z" }, + { url = "https://files.pythonhosted.org/packages/b7/e6/a26b84096eddd51494bba19111f8fffe976f6a09f132706f8f1bf03f51f7/cryptography-46.0.7-cp38-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:cdf1a610ef82abb396451862739e3fc93b071c844399e15b90726ef7470eeaf2", size = 4918400, upload_time = "2026-04-08T01:57:19.021Z" }, + { url = "https://files.pythonhosted.org/packages/c7/08/ffd537b605568a148543ac3c2b239708ae0bd635064bab41359252ef88ed/cryptography-46.0.7-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:1d25aee46d0c6f1a501adcddb2d2fee4b979381346a78558ed13e50aa8a59067", size = 4450634, upload_time = "2026-04-08T01:57:21.185Z" }, + { url = "https://files.pythonhosted.org/packages/16/01/0cd51dd86ab5b9befe0d031e276510491976c3a80e9f6e31810cce46c4ad/cryptography-46.0.7-cp38-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:cdfbe22376065ffcf8be74dc9a909f032df19bc58a699456a21712d6e5eabfd0", size = 3985233, upload_time = "2026-04-08T01:57:22.862Z" }, + { url = "https://files.pythonhosted.org/packages/92/49/819d6ed3a7d9349c2939f81b500a738cb733ab62fbecdbc1e38e83d45e12/cryptography-46.0.7-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:abad9dac36cbf55de6eb49badd4016806b3165d396f64925bf2999bcb67837ba", size = 4271955, upload_time = "2026-04-08T01:57:24.814Z" }, + { url = "https://files.pythonhosted.org/packages/80/07/ad9b3c56ebb95ed2473d46df0847357e01583f4c52a85754d1a55e29e4d0/cryptography-46.0.7-cp38-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:935ce7e3cfdb53e3536119a542b839bb94ec1ad081013e9ab9b7cfd478b05006", size = 4879888, upload_time = "2026-04-08T01:57:26.88Z" }, + { url = "https://files.pythonhosted.org/packages/b8/c7/201d3d58f30c4c2bdbe9b03844c291feb77c20511cc3586daf7edc12a47b/cryptography-46.0.7-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:35719dc79d4730d30f1c2b6474bd6acda36ae2dfae1e3c16f2051f215df33ce0", size = 4449961, upload_time = "2026-04-08T01:57:29.068Z" }, + { url = "https://files.pythonhosted.org/packages/a5/ef/649750cbf96f3033c3c976e112265c33906f8e462291a33d77f90356548c/cryptography-46.0.7-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:7bbc6ccf49d05ac8f7d7b5e2e2c33830d4fe2061def88210a126d130d7f71a85", size = 4401696, upload_time = "2026-04-08T01:57:31.029Z" }, + { url = "https://files.pythonhosted.org/packages/41/52/a8908dcb1a389a459a29008c29966c1d552588d4ae6d43f3a1a4512e0ebe/cryptography-46.0.7-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a1529d614f44b863a7b480c6d000fe93b59acee9c82ffa027cfadc77521a9f5e", size = 4664256, upload_time = "2026-04-08T01:57:33.144Z" }, + { url = "https://files.pythonhosted.org/packages/4b/fa/f0ab06238e899cc3fb332623f337a7364f36f4bb3f2534c2bb95a35b132c/cryptography-46.0.7-cp38-abi3-win32.whl", hash = "sha256:f247c8c1a1fb45e12586afbb436ef21ff1e80670b2861a90353d9b025583d246", size = 3013001, upload_time = "2026-04-08T01:57:34.933Z" }, + { url = "https://files.pythonhosted.org/packages/d2/f1/00ce3bde3ca542d1acd8f8cfa38e446840945aa6363f9b74746394b14127/cryptography-46.0.7-cp38-abi3-win_amd64.whl", hash = "sha256:506c4ff91eff4f82bdac7633318a526b1d1309fc07ca76a3ad182cb5b686d6d3", size = 3472985, upload_time = "2026-04-08T01:57:36.714Z" }, +] + +[[package]] +name = "cyclopts" +version = "4.14.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "docstring-parser" }, + { name = "rich" }, + { name = "rich-rst" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/de/75/c7988cb0b90ab9d6728d4c444f09256cfdc97606c1638d8a8090eeb57f7e/cyclopts-4.14.1.tar.gz", hash = "sha256:5d01fc3a940a0e4e872a81ed533a10c1892b5baaa4121fe69528a2b8c17fc9d0", size = 177281, upload_time = "2026-05-19T19:49:22.312Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/22/1d/f6c80f82a42c69ff5a86c2580e789133de387d067210c7c46677618a2ca7/cyclopts-4.14.1-py3-none-any.whl", hash = "sha256:b705fdaa3277554a5da03e9bb5ff96a44d204a1afe3099f1b56e1586488bbfd4", size = 214925, upload_time = "2026-05-19T19:49:23.559Z" }, +] + +[[package]] +name = "dnspython" +version = "2.8.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8c/8b/57666417c0f90f08bcafa776861060426765fdb422eb10212086fb811d26/dnspython-2.8.0.tar.gz", hash = "sha256:181d3c6996452cb1189c4046c61599b84a5a86e099562ffde77d26984ff26d0f", size = 368251, upload_time = "2025-09-07T18:58:00.022Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ba/5a/18ad964b0086c6e62e2e7500f7edc89e3faa45033c71c1893d34eed2b2de/dnspython-2.8.0-py3-none-any.whl", hash = "sha256:01d9bbc4a2d76bf0db7c1f729812ded6d912bd318d3b1cf81d30c0f845dbf3af", size = 331094, upload_time = "2025-09-07T18:57:58.071Z" }, +] + +[[package]] +name = "docstring-parser" +version = "0.18.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e0/4d/f332313098c1de1b2d2ff91cf2674415cc7cddab2ca1b01ae29774bd5fdf/docstring_parser-0.18.0.tar.gz", hash = "sha256:292510982205c12b1248696f44959db3cdd1740237a968ea1e2e7a900eeb2015", size = 29341, upload_time = "2026-04-14T04:09:19.867Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a7/5f/ed01f9a3cdffbd5a008556fc7b2a08ddb1cc6ace7effa7340604b1d16699/docstring_parser-0.18.0-py3-none-any.whl", hash = "sha256:b3fcbed555c47d8479be0796ef7e19c2670d428d72e96da63f3a40122860374b", size = 22484, upload_time = "2026-04-14T04:09:18.638Z" }, +] + +[[package]] +name = "email-validator" +version = "2.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "dnspython" }, + { name = "idna" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f5/22/900cb125c76b7aaa450ce02fd727f452243f2e91a61af068b40adba60ea9/email_validator-2.3.0.tar.gz", hash = "sha256:9fc05c37f2f6cf439ff414f8fc46d917929974a82244c20eb10231ba60c54426", size = 51238, upload_time = "2025-08-26T13:09:06.831Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/de/15/545e2b6cf2e3be84bc1ed85613edd75b8aea69807a71c26f4ca6a9258e82/email_validator-2.3.0-py3-none-any.whl", hash = "sha256:80f13f623413e6b197ae73bb10bf4eb0908faf509ad8362c5edeb0be7fd450b4", size = 35604, upload_time = "2025-08-26T13:09:05.858Z" }, +] + +[[package]] +name = "exceptiongroup" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/50/79/66800aadf48771f6b62f7eb014e352e5d06856655206165d775e675a02c9/exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219", size = 30371, upload_time = "2025-11-21T23:01:54.787Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8a/0e/97c33bf5009bdbac74fd2beace167cab3f978feb69cc36f1ef79360d6c4e/exceptiongroup-1.3.1-py3-none-any.whl", hash = "sha256:a7a39a3bd276781e98394987d3a5701d0c4edffb633bb7a5144577f82c773598", size = 16740, upload_time = "2025-11-21T23:01:53.443Z" }, +] + +[[package]] +name = "fastmcp" +version = "3.2.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "authlib" }, + { name = "cyclopts" }, + { name = "exceptiongroup" }, + { name = "griffelib" }, + { name = "httpx" }, + { name = "jsonref" }, + { name = "jsonschema-path" }, + { name = "mcp" }, + { name = "openapi-pydantic" }, + { name = "opentelemetry-api" }, + { name = "packaging" }, + { name = "platformdirs" }, + { name = "py-key-value-aio", extra = ["filetree", "keyring", "memory"] }, + { name = "pydantic", extra = ["email"] }, + { name = "pyperclip" }, + { name = "python-dotenv" }, + { name = "pyyaml" }, + { name = "rich" }, + { name = "uncalled-for" }, + { name = "uvicorn" }, + { name = "watchfiles" }, + { name = "websockets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9c/13/29544fbc6dfe45ea38046af0067311e0bad7acc7d1f2ad38bb08f2409fe2/fastmcp-3.2.4.tar.gz", hash = "sha256:083ecb75b44a4169e7fc0f632f94b781bdb0ff877c6b35b9877cbb566fd4d4d1", size = 28746127, upload_time = "2026-04-14T01:42:24.174Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cf/76/b310d52fa0e30d39bd937eb58ec2c1f1ea1b5f519f0575e9dd9612f01deb/fastmcp-3.2.4-py3-none-any.whl", hash = "sha256:e6c9c429171041455e47ab94bb3f83c4657622a0ec28922f6940053959bd58a9", size = 728599, upload_time = "2026-04-14T01:42:26.85Z" }, +] + +[[package]] +name = "griffelib" +version = "2.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9d/82/74f4a3310cdabfbb10da554c3a672847f1ed33c6f61dd472681ce7f1fe67/griffelib-2.0.2.tar.gz", hash = "sha256:3cf20b3bc470e83763ffbf236e0076b1211bac1bc67de13daf494640f2de707e", size = 166461, upload_time = "2026-03-27T11:34:51.091Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/11/8c/c9138d881c79aa0ea9ed83cbd58d5ca75624378b38cee225dcf5c42cc91f/griffelib-2.0.2-py3-none-any.whl", hash = "sha256:925c857658fb1ba40c0772c37acbc2ab650bd794d9c1b9726922e36ea4117ea1", size = 142357, upload_time = "2026-03-27T11:34:46.275Z" }, +] + +[[package]] +name = "h11" +version = "0.16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250, upload_time = "2025-04-24T03:35:25.427Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515, upload_time = "2025-04-24T03:35:24.344Z" }, +] + +[[package]] +name = "httpcore" +version = "1.0.9" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "h11" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8", size = 85484, upload_time = "2025-04-24T22:06:22.219Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55", size = 78784, upload_time = "2025-04-24T22:06:20.566Z" }, +] + +[[package]] +name = "httpx" +version = "0.28.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "certifi" }, + { name = "httpcore" }, + { name = "idna" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 141406, upload_time = "2024-12-06T15:37:23.222Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517, upload_time = "2024-12-06T15:37:21.509Z" }, +] + +[[package]] +name = "httpx-sse" +version = "0.4.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0f/4c/751061ffa58615a32c31b2d82e8482be8dd4a89154f003147acee90f2be9/httpx_sse-0.4.3.tar.gz", hash = "sha256:9b1ed0127459a66014aec3c56bebd93da3c1bc8bb6618c8082039a44889a755d", size = 15943, upload_time = "2025-10-10T21:48:22.271Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/fd/6668e5aec43ab844de6fc74927e155a3b37bf40d7c3790e49fc0406b6578/httpx_sse-0.4.3-py3-none-any.whl", hash = "sha256:0ac1c9fe3c0afad2e0ebb25a934a59f4c7823b60792691f779fad2c5568830fc", size = 8960, upload_time = "2025-10-10T21:48:21.158Z" }, +] + +[[package]] +name = "idna" +version = "3.15" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/82/77/7b3966d0b9d1d31a36ddf1746926a11dface89a83409bf1483f0237aa758/idna-3.15.tar.gz", hash = "sha256:ca962446ea538f7092a95e057da437618e886f4d349216d2b1e294abfdb65fdc", size = 199245, upload_time = "2026-05-12T22:45:57.011Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/23/408243171aa9aaba178d3e2559159c24c1171a641aa83b67bdd3394ead8e/idna-3.15-py3-none-any.whl", hash = "sha256:048adeaf8c2d788c40fee287673ccaa74c24ffd8dcf09ffa555a2fbb59f10ac8", size = 72340, upload_time = "2026-05-12T22:45:55.733Z" }, +] + +[[package]] +name = "iniconfig" +version = "2.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730", size = 20503, upload_time = "2025-10-18T21:55:43.219Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12", size = 7484, upload_time = "2025-10-18T21:55:41.639Z" }, +] + +[[package]] +name = "jaraco-classes" +version = "3.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "more-itertools" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/06/c0/ed4a27bc5571b99e3cff68f8a9fa5b56ff7df1c2251cc715a652ddd26402/jaraco.classes-3.4.0.tar.gz", hash = "sha256:47a024b51d0239c0dd8c8540c6c7f484be3b8fcf0b2d85c13825780d3b3f3acd", size = 11780, upload_time = "2024-03-31T07:27:36.643Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7f/66/b15ce62552d84bbfcec9a4873ab79d993a1dd4edb922cbfccae192bd5b5f/jaraco.classes-3.4.0-py3-none-any.whl", hash = "sha256:f662826b6bed8cace05e7ff873ce0f9283b5c924470fe664fff1c2f00f581790", size = 6777, upload_time = "2024-03-31T07:27:34.792Z" }, +] + +[[package]] +name = "jaraco-context" +version = "6.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/af/50/4763cd07e722bb6285316d390a164bc7e479db9d90daa769f22578f698b4/jaraco_context-6.1.2.tar.gz", hash = "sha256:f1a6c9d391e661cc5b8d39861ff077a7dc24dc23833ccee564b234b81c82dfe3", size = 16801, upload_time = "2026-03-20T22:13:33.922Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f2/58/bc8954bda5fcda97bd7c19be11b85f91973d67a706ed4a3aec33e7de22db/jaraco_context-6.1.2-py3-none-any.whl", hash = "sha256:bf8150b79a2d5d91ae48629d8b427a8f7ba0e1097dd6202a9059f29a36379535", size = 7871, upload_time = "2026-03-20T22:13:32.808Z" }, +] + +[[package]] +name = "jaraco-functools" +version = "4.5.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "more-itertools" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/36/cf/ea4ef2920830dea3f5ab2ea4da6fb67724e6dca80ee2553788c3607243d0/jaraco_functools-4.5.0.tar.gz", hash = "sha256:3bb5665ea4a020cf78a7040e89154c77edadb3ca74f366479669c5999aa70b03", size = 20272, upload_time = "2026-05-15T21:34:10.025Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/96/9a/982e48afcffcd727a9144506720ffd4224b6b7e355c98641866f38b7c043/jaraco_functools-4.5.0-py3-none-any.whl", hash = "sha256:79ce39246eddbde4b3a03b77ea5f0f7878dc669b166a66cf3fa8e266aa3fa2f4", size = 10594, upload_time = "2026-05-15T21:34:08.595Z" }, +] + +[[package]] +name = "jeepney" +version = "0.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7b/6f/357efd7602486741aa73ffc0617fb310a29b588ed0fd69c2399acbb85b0c/jeepney-0.9.0.tar.gz", hash = "sha256:cf0e9e845622b81e4a28df94c40345400256ec608d0e55bb8a3feaa9163f5732", size = 106758, upload_time = "2025-02-27T18:51:01.684Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b2/a3/e137168c9c44d18eff0376253da9f1e9234d0239e0ee230d2fee6cea8e55/jeepney-0.9.0-py3-none-any.whl", hash = "sha256:97e5714520c16fc0a45695e5365a2e11b81ea79bba796e26f9f1d178cb182683", size = 49010, upload_time = "2025-02-27T18:51:00.104Z" }, +] + +[[package]] +name = "joserfc" +version = "1.6.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3b/dc/5f768c2e391e9afabe5d18e3221346deb5fb6338565f1ccc9e7c6d7befdd/joserfc-1.6.5.tar.gz", hash = "sha256:1482a7db78fb4602e44ed89e51b599d052e091288c7c532c5b694e20149dec48", size = 231881, upload_time = "2026-05-06T04:58:13.408Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/54/3b/ad1cb22e75c963b1f07c8a2329bf47227ce7e4361df5eb2fb101b2ce33ef/joserfc-1.6.5-py3-none-any.whl", hash = "sha256:e9878a0f8243fe7b95e11fdda81374ca9f7a689e302751579d3dfdeec559675e", size = 70464, upload_time = "2026-05-06T04:58:11.668Z" }, +] + +[[package]] +name = "jsonref" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/aa/0d/c1f3277e90ccdb50d33ed5ba1ec5b3f0a242ed8c1b1a85d3afeb68464dca/jsonref-1.1.0.tar.gz", hash = "sha256:32fe8e1d85af0fdefbebce950af85590b22b60f9e95443176adbde4e1ecea552", size = 8814, upload_time = "2023-01-16T16:10:04.455Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0c/ec/e1db9922bceb168197a558a2b8c03a7963f1afe93517ddd3cf99f202f996/jsonref-1.1.0-py3-none-any.whl", hash = "sha256:590dc7773df6c21cbf948b5dac07a72a251db28b0238ceecce0a2abfa8ec30a9", size = 9425, upload_time = "2023-01-16T16:10:02.255Z" }, +] + +[[package]] +name = "jsonschema" +version = "4.26.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "jsonschema-specifications" }, + { name = "referencing" }, + { name = "rpds-py" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b3/fc/e067678238fa451312d4c62bf6e6cf5ec56375422aee02f9cb5f909b3047/jsonschema-4.26.0.tar.gz", hash = "sha256:0c26707e2efad8aa1bfc5b7ce170f3fccc2e4918ff85989ba9ffa9facb2be326", size = 366583, upload_time = "2026-01-07T13:41:07.246Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/69/90/f63fb5873511e014207a475e2bb4e8b2e570d655b00ac19a9a0ca0a385ee/jsonschema-4.26.0-py3-none-any.whl", hash = "sha256:d489f15263b8d200f8387e64b4c3a75f06629559fb73deb8fdfb525f2dab50ce", size = 90630, upload_time = "2026-01-07T13:41:05.306Z" }, +] + +[[package]] +name = "jsonschema-path" +version = "0.5.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "pathable" }, + { name = "pyyaml" }, + { name = "referencing" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/39/79/cd02a4df6d9270efdc7d3feefe6edd730b0820c39eeaa107a2faee8322d5/jsonschema_path-0.5.0.tar.gz", hash = "sha256:493b156ba895c97602655b620a8456caa2ce08c1aa389f5a7addec065e6e855c", size = 19597, upload_time = "2026-05-19T20:45:00.971Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/2c/9e69d73c4297508be9e3b64a970ea3971b3eb8db64ffc5802d40bd25981f/jsonschema_path-0.5.0-py3-none-any.whl", hash = "sha256:2790a070bc7abb08ea3dbe4d340ece4efadf639223001f020c7503229ba068e2", size = 24077, upload_time = "2026-05-19T20:44:59.225Z" }, +] + +[[package]] +name = "jsonschema-specifications" +version = "2025.9.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "referencing" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/19/74/a633ee74eb36c44aa6d1095e7cc5569bebf04342ee146178e2d36600708b/jsonschema_specifications-2025.9.1.tar.gz", hash = "sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d", size = 32855, upload_time = "2025-09-08T01:34:59.186Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl", hash = "sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe", size = 18437, upload_time = "2025-09-08T01:34:57.871Z" }, +] + +[[package]] +name = "keyring" +version = "25.7.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jaraco-classes" }, + { name = "jaraco-context" }, + { name = "jaraco-functools" }, + { name = "jeepney", marker = "sys_platform == 'linux'" }, + { name = "pywin32-ctypes", marker = "sys_platform == 'win32'" }, + { name = "secretstorage", marker = "sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/43/4b/674af6ef2f97d56f0ab5153bf0bfa28ccb6c3ed4d1babf4305449668807b/keyring-25.7.0.tar.gz", hash = "sha256:fe01bd85eb3f8fb3dd0405defdeac9a5b4f6f0439edbb3149577f244a2e8245b", size = 63516, upload_time = "2025-11-16T16:26:09.482Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/81/db/e655086b7f3a705df045bf0933bdd9c2f79bb3c97bfef1384598bb79a217/keyring-25.7.0-py3-none-any.whl", hash = "sha256:be4a0b195f149690c166e850609a477c532ddbfbaed96a404d4e43f8d5e2689f", size = 39160, upload_time = "2025-11-16T16:26:08.402Z" }, +] + +[[package]] +name = "markdown-it-py" +version = "4.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mdurl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/06/ff/7841249c247aa650a76b9ee4bbaeae59370dc8bfd2f6c01f3630c35eb134/markdown_it_py-4.2.0.tar.gz", hash = "sha256:04a21681d6fbb623de53f6f364d352309d4094dd4194040a10fd51833e418d49", size = 82454, upload_time = "2026-05-07T12:08:28.36Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b3/81/4da04ced5a082363ecfa159c010d200ecbd959ae410c10c0264a38cac0f5/markdown_it_py-4.2.0-py3-none-any.whl", hash = "sha256:9f7ebbcd14fe59494226453aed97c1070d83f8d24b6fc3a3bcf9a38092641c4a", size = 91687, upload_time = "2026-05-07T12:08:27.182Z" }, +] + +[[package]] +name = "mcp" +version = "1.27.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "httpx" }, + { name = "httpx-sse" }, + { name = "jsonschema" }, + { name = "pydantic" }, + { name = "pydantic-settings" }, + { name = "pyjwt", extra = ["crypto"] }, + { name = "python-multipart" }, + { name = "pywin32", marker = "sys_platform == 'win32'" }, + { name = "sse-starlette" }, + { name = "starlette" }, + { name = "typing-extensions" }, + { name = "typing-inspection" }, + { name = "uvicorn", marker = "sys_platform != 'emscripten'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/38/83/d1efe7c2980d8a3afa476f4e3d42d53dd54c0ab94c27bee5d755b45c8b73/mcp-1.27.1.tar.gz", hash = "sha256:0f47e1820f8f8f941466b39749eb1d1839a04caddca2bc60e9d46e8a99914924", size = 608458, upload_time = "2026-05-08T16:50:12.601Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fd/73/42d9596facebdb533b7f0b86c1b0364ef350d1f8ba78b1052e8a58b48b65/mcp-1.27.1-py3-none-any.whl", hash = "sha256:1af3c4203b329430fde7a87b4fcb6392a041f5cb851fd68fc674016ab4e7c06f", size = 216260, upload_time = "2026-05-08T16:50:10.547Z" }, +] + +[[package]] +name = "mdurl" +version = "0.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729, upload_time = "2022-08-14T12:40:10.846Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload_time = "2022-08-14T12:40:09.779Z" }, +] + +[[package]] +name = "more-itertools" +version = "11.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/f7/139d22fef48ac78127d18e01d80cf1be40236ae489769d17f35c3d425293/more_itertools-11.0.2.tar.gz", hash = "sha256:392a9e1e362cbc106a2457d37cabf9b36e5e12efd4ebff1654630e76597df804", size = 144659, upload_time = "2026-04-09T15:01:33.297Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/98/6af411189d9413534c3eb691182bff1f5c6d44ed2f93f2edfe52a1bbceb8/more_itertools-11.0.2-py3-none-any.whl", hash = "sha256:6e35b35f818b01f691643c6c611bc0902f2e92b46c18fffa77ae1e7c46e912e4", size = 71939, upload_time = "2026-04-09T15:01:32.21Z" }, +] + +[[package]] +name = "oci" +version = "2.174.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "cryptography" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/22/45/5edb442e8197860b4fc26fd82305abf3df356827862ee11febfd8bf6ebbe/oci-2.174.0.tar.gz", hash = "sha256:f960e413a7f0e59ca5523b57349165f992812bd2738abc34bd9fecbce4722733", size = 17352965, upload_time = "2026-05-12T00:52:26.527Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7d/37/37a7d97a32e897b066f367448851471f52fcf8d46a16255a4532b2684821/oci-2.174.0-py3-none-any.whl", hash = "sha256:36c377fb59452b607686d73c1ae1604f2c19e3cabd7d12abe43a4404b10a17c5", size = 35404400, upload_time = "2026-05-12T00:52:17.116Z" }, +] + +[[package]] +name = "openapi-pydantic" +version = "0.5.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/02/2e/58d83848dd1a79cb92ed8e63f6ba901ca282c5f09d04af9423ec26c56fd7/openapi_pydantic-0.5.1.tar.gz", hash = "sha256:ff6835af6bde7a459fb93eb93bb92b8749b754fc6e51b2f1590a19dc3005ee0d", size = 60892, upload_time = "2025-01-08T19:29:27.083Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/12/cf/03675d8bd8ecbf4445504d8071adab19f5f993676795708e36402ab38263/openapi_pydantic-0.5.1-py3-none-any.whl", hash = "sha256:a3a09ef4586f5bd760a8df7f43028b60cafb6d9f61de2acba9574766255ab146", size = 96381, upload_time = "2025-01-08T19:29:25.275Z" }, +] + +[[package]] +name = "opentelemetry-api" +version = "1.42.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/86/ca/25288069c399be6769159d9fb7b1190b603537d82aad2fa2746a0cc2c8c6/opentelemetry_api-1.42.0.tar.gz", hash = "sha256:ea84c893ad177791d138e0349d6ceebd8d3bf006440900400ce220008dafc372", size = 72300, upload_time = "2026-05-19T09:46:29.885Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1b/0b/be5daf659b82b525338fde371dfcfab09b606a19bb5620c37076964710ec/opentelemetry_api-1.42.0-py3-none-any.whl", hash = "sha256:558d88f88192a973579910ef6f2c13db47a268d5ec2e53e83e50e74a39a02922", size = 61310, upload_time = "2026-05-19T09:46:06.561Z" }, +] + +[[package]] +name = "oracle-oracle-db-observability" +version = "1.0.0" +source = { editable = "." } +dependencies = [ + { name = "fastmcp" }, + { name = "oci" }, + { name = "pydantic" }, +] + +[package.dev-dependencies] +dev = [ + { name = "openapi-pydantic" }, + { name = "pytest" }, + { name = "pytest-asyncio" }, + { name = "pytest-cov" }, + { name = "pyyaml" }, +] + +[package.metadata] +requires-dist = [ + { name = "fastmcp", specifier = "==3.2.4" }, + { name = "oci", specifier = "==2.174.0" }, + { name = "pydantic", specifier = "==2.12.3" }, +] + +[package.metadata.requires-dev] +dev = [ + { name = "openapi-pydantic", specifier = ">=0.5.1" }, + { name = "pytest", specifier = ">=9.0.3" }, + { name = "pytest-asyncio", specifier = ">=1.2.0" }, + { name = "pytest-cov", specifier = ">=7.0.0" }, + { name = "pyyaml", specifier = ">=6.0.3" }, +] + +[[package]] +name = "packaging" +version = "26.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d7/f1/e7a6dd94a8d4a5626c03e4e99c87f241ba9e350cd9e6d75123f992427270/packaging-26.2.tar.gz", hash = "sha256:ff452ff5a3e828ce110190feff1178bb1f2ea2281fa2075aadb987c2fb221661", size = 228134, upload_time = "2026-04-24T20:15:23.917Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl", hash = "sha256:5fc45236b9446107ff2415ce77c807cee2862cb6fac22b8a73826d0693b0980e", size = 100195, upload_time = "2026-04-24T20:15:22.081Z" }, +] + +[[package]] +name = "pathable" +version = "0.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/66/f3/5a20387de9bcd0607871bfc2198ee0e15836da7baa4592ccd7f24c27c986/pathable-0.6.0.tar.gz", hash = "sha256:6404b8b82aef5ff0fd478934137128b99b12212ba35afdde5525ca4f8388ea58", size = 18970, upload_time = "2026-05-19T18:15:11.911Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a2/e8/6d75ffd9784bce2e93d1ae4415649427e39a53bb172d4672b2b59c6f0a7b/pathable-0.6.0-py3-none-any.whl", hash = "sha256:82c4ca6c98c502ad12e0d4e9779b6210afee93c38990988c8c5d1b49bdcdf566", size = 18983, upload_time = "2026-05-19T18:15:10.728Z" }, +] + +[[package]] +name = "platformdirs" +version = "4.9.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9f/4a/0883b8e3802965322523f0b200ecf33d31f10991d0401162f4b23c698b42/platformdirs-4.9.6.tar.gz", hash = "sha256:3bfa75b0ad0db84096ae777218481852c0ebc6c727b3168c1b9e0118e458cf0a", size = 29400, upload_time = "2026-04-09T00:04:10.812Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/75/a6/a0a304dc33b49145b21f4808d763822111e67d1c3a32b524a1baf947b6e1/platformdirs-4.9.6-py3-none-any.whl", hash = "sha256:e61adb1d5e5cb3441b4b7710bea7e4c12250ca49439228cc1021c00dcfac0917", size = 21348, upload_time = "2026-04-09T00:04:09.463Z" }, +] + +[[package]] +name = "pluggy" +version = "1.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412, upload_time = "2025-05-15T12:30:07.975Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload_time = "2025-05-15T12:30:06.134Z" }, +] + +[[package]] +name = "py-key-value-aio" +version = "0.4.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "beartype" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/04/3c/0397c072a38d4bc580994b42e0c90c5f44f679303489e4376289534735e5/py_key_value_aio-0.4.4.tar.gz", hash = "sha256:e3012e6243ed7cc09bb05457bd4d03b1ba5c2b1ca8700096b3927db79ffbbe55", size = 92300, upload_time = "2026-02-16T21:21:43.245Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/32/69/f1b537ee70b7def42d63124a539ed3026a11a3ffc3086947a1ca6e861868/py_key_value_aio-0.4.4-py3-none-any.whl", hash = "sha256:18e17564ecae61b987f909fc2cd41ee2012c84b4b1dcb8c055cf8b4bc1bf3f5d", size = 152291, upload_time = "2026-02-16T21:21:44.241Z" }, +] + +[package.optional-dependencies] +filetree = [ + { name = "aiofile" }, + { name = "anyio" }, +] +keyring = [ + { name = "keyring" }, +] +memory = [ + { name = "cachetools" }, +] + +[[package]] +name = "pycparser" +version = "3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1b/7d/92392ff7815c21062bea51aa7b87d45576f649f16458d78b7cf94b9ab2e6/pycparser-3.0.tar.gz", hash = "sha256:600f49d217304a5902ac3c37e1281c9fe94e4d0489de643a9504c5cdfdfc6b29", size = 103492, upload_time = "2026-01-21T14:26:51.89Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0c/c3/44f3fbbfa403ea2a7c779186dc20772604442dde72947e7d01069cbe98e3/pycparser-3.0-py3-none-any.whl", hash = "sha256:b727414169a36b7d524c1c3e31839a521725078d7b2ff038656844266160a992", size = 48172, upload_time = "2026-01-21T14:26:50.693Z" }, +] + +[[package]] +name = "pydantic" +version = "2.12.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "annotated-types" }, + { name = "pydantic-core" }, + { name = "typing-extensions" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f3/1e/4f0a3233767010308f2fd6bd0814597e3f63f1dc98304a9112b8759df4ff/pydantic-2.12.3.tar.gz", hash = "sha256:1da1c82b0fc140bb0103bc1441ffe062154c8d38491189751ee00fd8ca65ce74", size = 819383, upload_time = "2025-10-17T15:04:21.222Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a1/6b/83661fa77dcefa195ad5f8cd9af3d1a7450fd57cc883ad04d65446ac2029/pydantic-2.12.3-py3-none-any.whl", hash = "sha256:6986454a854bc3bc6e5443e1369e06a3a456af9d339eda45510f517d9ea5c6bf", size = 462431, upload_time = "2025-10-17T15:04:19.346Z" }, +] + +[package.optional-dependencies] +email = [ + { name = "email-validator" }, +] + +[[package]] +name = "pydantic-core" +version = "2.41.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/df/18/d0944e8eaaa3efd0a91b0f1fc537d3be55ad35091b6a87638211ba691964/pydantic_core-2.41.4.tar.gz", hash = "sha256:70e47929a9d4a1905a67e4b687d5946026390568a8e952b92824118063cee4d5", size = 457557, upload_time = "2025-10-14T10:23:47.909Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/13/d0/c20adabd181a029a970738dfe23710b52a31f1258f591874fcdec7359845/pydantic_core-2.41.4-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:85e050ad9e5f6fe1004eec65c914332e52f429bc0ae12d6fa2092407a462c746", size = 2105688, upload_time = "2025-10-14T10:20:54.448Z" }, + { url = "https://files.pythonhosted.org/packages/00/b6/0ce5c03cec5ae94cca220dfecddc453c077d71363b98a4bbdb3c0b22c783/pydantic_core-2.41.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e7393f1d64792763a48924ba31d1e44c2cfbc05e3b1c2c9abb4ceeadd912cced", size = 1910807, upload_time = "2025-10-14T10:20:56.115Z" }, + { url = "https://files.pythonhosted.org/packages/68/3e/800d3d02c8beb0b5c069c870cbb83799d085debf43499c897bb4b4aaff0d/pydantic_core-2.41.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94dab0940b0d1fb28bcab847adf887c66a27a40291eedf0b473be58761c9799a", size = 1956669, upload_time = "2025-10-14T10:20:57.874Z" }, + { url = "https://files.pythonhosted.org/packages/60/a4/24271cc71a17f64589be49ab8bd0751f6a0a03046c690df60989f2f95c2c/pydantic_core-2.41.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:de7c42f897e689ee6f9e93c4bec72b99ae3b32a2ade1c7e4798e690ff5246e02", size = 2051629, upload_time = "2025-10-14T10:21:00.006Z" }, + { url = "https://files.pythonhosted.org/packages/68/de/45af3ca2f175d91b96bfb62e1f2d2f1f9f3b14a734afe0bfeff079f78181/pydantic_core-2.41.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:664b3199193262277b8b3cd1e754fb07f2c6023289c815a1e1e8fb415cb247b1", size = 2224049, upload_time = "2025-10-14T10:21:01.801Z" }, + { url = "https://files.pythonhosted.org/packages/af/8f/ae4e1ff84672bf869d0a77af24fd78387850e9497753c432875066b5d622/pydantic_core-2.41.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d95b253b88f7d308b1c0b417c4624f44553ba4762816f94e6986819b9c273fb2", size = 2342409, upload_time = "2025-10-14T10:21:03.556Z" }, + { url = "https://files.pythonhosted.org/packages/18/62/273dd70b0026a085c7b74b000394e1ef95719ea579c76ea2f0cc8893736d/pydantic_core-2.41.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a1351f5bbdbbabc689727cb91649a00cb9ee7203e0a6e54e9f5ba9e22e384b84", size = 2069635, upload_time = "2025-10-14T10:21:05.385Z" }, + { url = "https://files.pythonhosted.org/packages/30/03/cf485fff699b4cdaea469bc481719d3e49f023241b4abb656f8d422189fc/pydantic_core-2.41.4-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1affa4798520b148d7182da0615d648e752de4ab1a9566b7471bc803d88a062d", size = 2194284, upload_time = "2025-10-14T10:21:07.122Z" }, + { url = "https://files.pythonhosted.org/packages/f9/7e/c8e713db32405dfd97211f2fc0a15d6bf8adb7640f3d18544c1f39526619/pydantic_core-2.41.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7b74e18052fea4aa8dea2fb7dbc23d15439695da6cbe6cfc1b694af1115df09d", size = 2137566, upload_time = "2025-10-14T10:21:08.981Z" }, + { url = "https://files.pythonhosted.org/packages/04/f7/db71fd4cdccc8b75990f79ccafbbd66757e19f6d5ee724a6252414483fb4/pydantic_core-2.41.4-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:285b643d75c0e30abda9dc1077395624f314a37e3c09ca402d4015ef5979f1a2", size = 2316809, upload_time = "2025-10-14T10:21:10.805Z" }, + { url = "https://files.pythonhosted.org/packages/76/63/a54973ddb945f1bca56742b48b144d85c9fc22f819ddeb9f861c249d5464/pydantic_core-2.41.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:f52679ff4218d713b3b33f88c89ccbf3a5c2c12ba665fb80ccc4192b4608dbab", size = 2311119, upload_time = "2025-10-14T10:21:12.583Z" }, + { url = "https://files.pythonhosted.org/packages/f8/03/5d12891e93c19218af74843a27e32b94922195ded2386f7b55382f904d2f/pydantic_core-2.41.4-cp313-cp313-win32.whl", hash = "sha256:ecde6dedd6fff127c273c76821bb754d793be1024bc33314a120f83a3c69460c", size = 1981398, upload_time = "2025-10-14T10:21:14.584Z" }, + { url = "https://files.pythonhosted.org/packages/be/d8/fd0de71f39db91135b7a26996160de71c073d8635edfce8b3c3681be0d6d/pydantic_core-2.41.4-cp313-cp313-win_amd64.whl", hash = "sha256:d081a1f3800f05409ed868ebb2d74ac39dd0c1ff6c035b5162356d76030736d4", size = 2030735, upload_time = "2025-10-14T10:21:16.432Z" }, + { url = "https://files.pythonhosted.org/packages/72/86/c99921c1cf6650023c08bfab6fe2d7057a5142628ef7ccfa9921f2dda1d5/pydantic_core-2.41.4-cp313-cp313-win_arm64.whl", hash = "sha256:f8e49c9c364a7edcbe2a310f12733aad95b022495ef2a8d653f645e5d20c1564", size = 1973209, upload_time = "2025-10-14T10:21:18.213Z" }, + { url = "https://files.pythonhosted.org/packages/36/0d/b5706cacb70a8414396efdda3d72ae0542e050b591119e458e2490baf035/pydantic_core-2.41.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:ed97fd56a561f5eb5706cebe94f1ad7c13b84d98312a05546f2ad036bafe87f4", size = 1877324, upload_time = "2025-10-14T10:21:20.363Z" }, + { url = "https://files.pythonhosted.org/packages/de/2d/cba1fa02cfdea72dfb3a9babb067c83b9dff0bbcb198368e000a6b756ea7/pydantic_core-2.41.4-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a870c307bf1ee91fc58a9a61338ff780d01bfae45922624816878dce784095d2", size = 1884515, upload_time = "2025-10-14T10:21:22.339Z" }, + { url = "https://files.pythonhosted.org/packages/07/ea/3df927c4384ed9b503c9cc2d076cf983b4f2adb0c754578dfb1245c51e46/pydantic_core-2.41.4-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d25e97bc1f5f8f7985bdc2335ef9e73843bb561eb1fa6831fdfc295c1c2061cf", size = 2042819, upload_time = "2025-10-14T10:21:26.683Z" }, + { url = "https://files.pythonhosted.org/packages/6a/ee/df8e871f07074250270a3b1b82aad4cd0026b588acd5d7d3eb2fcb1471a3/pydantic_core-2.41.4-cp313-cp313t-win_amd64.whl", hash = "sha256:d405d14bea042f166512add3091c1af40437c2e7f86988f3915fabd27b1e9cd2", size = 1995866, upload_time = "2025-10-14T10:21:28.951Z" }, + { url = "https://files.pythonhosted.org/packages/fc/de/b20f4ab954d6d399499c33ec4fafc46d9551e11dc1858fb7f5dca0748ceb/pydantic_core-2.41.4-cp313-cp313t-win_arm64.whl", hash = "sha256:19f3684868309db5263a11bace3c45d93f6f24afa2ffe75a647583df22a2ff89", size = 1970034, upload_time = "2025-10-14T10:21:30.869Z" }, + { url = "https://files.pythonhosted.org/packages/54/28/d3325da57d413b9819365546eb9a6e8b7cbd9373d9380efd5f74326143e6/pydantic_core-2.41.4-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:e9205d97ed08a82ebb9a307e92914bb30e18cdf6f6b12ca4bedadb1588a0bfe1", size = 2102022, upload_time = "2025-10-14T10:21:32.809Z" }, + { url = "https://files.pythonhosted.org/packages/9e/24/b58a1bc0d834bf1acc4361e61233ee217169a42efbdc15a60296e13ce438/pydantic_core-2.41.4-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:82df1f432b37d832709fbcc0e24394bba04a01b6ecf1ee87578145c19cde12ac", size = 1905495, upload_time = "2025-10-14T10:21:34.812Z" }, + { url = "https://files.pythonhosted.org/packages/fb/a4/71f759cc41b7043e8ecdaab81b985a9b6cad7cec077e0b92cff8b71ecf6b/pydantic_core-2.41.4-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fc3b4cc4539e055cfa39a3763c939f9d409eb40e85813257dcd761985a108554", size = 1956131, upload_time = "2025-10-14T10:21:36.924Z" }, + { url = "https://files.pythonhosted.org/packages/b0/64/1e79ac7aa51f1eec7c4cda8cbe456d5d09f05fdd68b32776d72168d54275/pydantic_core-2.41.4-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b1eb1754fce47c63d2ff57fdb88c351a6c0150995890088b33767a10218eaa4e", size = 2052236, upload_time = "2025-10-14T10:21:38.927Z" }, + { url = "https://files.pythonhosted.org/packages/e9/e3/a3ffc363bd4287b80f1d43dc1c28ba64831f8dfc237d6fec8f2661138d48/pydantic_core-2.41.4-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e6ab5ab30ef325b443f379ddb575a34969c333004fca5a1daa0133a6ffaad616", size = 2223573, upload_time = "2025-10-14T10:21:41.574Z" }, + { url = "https://files.pythonhosted.org/packages/28/27/78814089b4d2e684a9088ede3790763c64693c3d1408ddc0a248bc789126/pydantic_core-2.41.4-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:31a41030b1d9ca497634092b46481b937ff9397a86f9f51bd41c4767b6fc04af", size = 2342467, upload_time = "2025-10-14T10:21:44.018Z" }, + { url = "https://files.pythonhosted.org/packages/92/97/4de0e2a1159cb85ad737e03306717637842c88c7fd6d97973172fb183149/pydantic_core-2.41.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a44ac1738591472c3d020f61c6df1e4015180d6262ebd39bf2aeb52571b60f12", size = 2063754, upload_time = "2025-10-14T10:21:46.466Z" }, + { url = "https://files.pythonhosted.org/packages/0f/50/8cb90ce4b9efcf7ae78130afeb99fd1c86125ccdf9906ef64b9d42f37c25/pydantic_core-2.41.4-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d72f2b5e6e82ab8f94ea7d0d42f83c487dc159c5240d8f83beae684472864e2d", size = 2196754, upload_time = "2025-10-14T10:21:48.486Z" }, + { url = "https://files.pythonhosted.org/packages/34/3b/ccdc77af9cd5082723574a1cc1bcae7a6acacc829d7c0a06201f7886a109/pydantic_core-2.41.4-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:c4d1e854aaf044487d31143f541f7aafe7b482ae72a022c664b2de2e466ed0ad", size = 2137115, upload_time = "2025-10-14T10:21:50.63Z" }, + { url = "https://files.pythonhosted.org/packages/ca/ba/e7c7a02651a8f7c52dc2cff2b64a30c313e3b57c7d93703cecea76c09b71/pydantic_core-2.41.4-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:b568af94267729d76e6ee5ececda4e283d07bbb28e8148bb17adad93d025d25a", size = 2317400, upload_time = "2025-10-14T10:21:52.959Z" }, + { url = "https://files.pythonhosted.org/packages/2c/ba/6c533a4ee8aec6b812c643c49bb3bd88d3f01e3cebe451bb85512d37f00f/pydantic_core-2.41.4-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:6d55fb8b1e8929b341cc313a81a26e0d48aa3b519c1dbaadec3a6a2b4fcad025", size = 2312070, upload_time = "2025-10-14T10:21:55.419Z" }, + { url = "https://files.pythonhosted.org/packages/22/ae/f10524fcc0ab8d7f96cf9a74c880243576fd3e72bd8ce4f81e43d22bcab7/pydantic_core-2.41.4-cp314-cp314-win32.whl", hash = "sha256:5b66584e549e2e32a1398df11da2e0a7eff45d5c2d9db9d5667c5e6ac764d77e", size = 1982277, upload_time = "2025-10-14T10:21:57.474Z" }, + { url = "https://files.pythonhosted.org/packages/b4/dc/e5aa27aea1ad4638f0c3fb41132f7eb583bd7420ee63204e2d4333a3bbf9/pydantic_core-2.41.4-cp314-cp314-win_amd64.whl", hash = "sha256:557a0aab88664cc552285316809cab897716a372afaf8efdbef756f8b890e894", size = 2024608, upload_time = "2025-10-14T10:21:59.557Z" }, + { url = "https://files.pythonhosted.org/packages/3e/61/51d89cc2612bd147198e120a13f150afbf0bcb4615cddb049ab10b81b79e/pydantic_core-2.41.4-cp314-cp314-win_arm64.whl", hash = "sha256:3f1ea6f48a045745d0d9f325989d8abd3f1eaf47dd00485912d1a3a63c623a8d", size = 1967614, upload_time = "2025-10-14T10:22:01.847Z" }, + { url = "https://files.pythonhosted.org/packages/0d/c2/472f2e31b95eff099961fa050c376ab7156a81da194f9edb9f710f68787b/pydantic_core-2.41.4-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:6c1fe4c5404c448b13188dd8bd2ebc2bdd7e6727fa61ff481bcc2cca894018da", size = 1876904, upload_time = "2025-10-14T10:22:04.062Z" }, + { url = "https://files.pythonhosted.org/packages/4a/07/ea8eeb91173807ecdae4f4a5f4b150a520085b35454350fc219ba79e66a3/pydantic_core-2.41.4-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:523e7da4d43b113bf8e7b49fa4ec0c35bf4fe66b2230bfc5c13cc498f12c6c3e", size = 1882538, upload_time = "2025-10-14T10:22:06.39Z" }, + { url = "https://files.pythonhosted.org/packages/1e/29/b53a9ca6cd366bfc928823679c6a76c7a4c69f8201c0ba7903ad18ebae2f/pydantic_core-2.41.4-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5729225de81fb65b70fdb1907fcf08c75d498f4a6f15af005aabb1fdadc19dfa", size = 2041183, upload_time = "2025-10-14T10:22:08.812Z" }, + { url = "https://files.pythonhosted.org/packages/c7/3d/f8c1a371ceebcaf94d6dd2d77c6cf4b1c078e13a5837aee83f760b4f7cfd/pydantic_core-2.41.4-cp314-cp314t-win_amd64.whl", hash = "sha256:de2cfbb09e88f0f795fd90cf955858fc2c691df65b1f21f0aa00b99f3fbc661d", size = 1993542, upload_time = "2025-10-14T10:22:11.332Z" }, + { url = "https://files.pythonhosted.org/packages/8a/ac/9fc61b4f9d079482a290afe8d206b8f490e9fd32d4fc03ed4fc698214e01/pydantic_core-2.41.4-cp314-cp314t-win_arm64.whl", hash = "sha256:d34f950ae05a83e0ede899c595f312ca976023ea1db100cd5aa188f7005e3ab0", size = 1973897, upload_time = "2025-10-14T10:22:13.444Z" }, +] + +[[package]] +name = "pydantic-settings" +version = "2.14.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pydantic" }, + { name = "python-dotenv" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/07/60/1d1e59c9c90d54591469ada7d268251f71c24bdb765f1a8a832cee8c6653/pydantic_settings-2.14.1.tar.gz", hash = "sha256:e874d3bec7e787b0c9958277956ed9b4dd5de6a80e162188fdaff7c5e26fd5fa", size = 235551, upload_time = "2026-05-08T13:40:06.542Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/8d/f1af3832f5e6eb13ba94ee809e72b8ecb5eef226d27ee0bef7d963d943c7/pydantic_settings-2.14.1-py3-none-any.whl", hash = "sha256:6e3c7edfd8277687cdc598f56e5cff0e9bfff0910a3749deaa8d4401c3a2b9de", size = 60964, upload_time = "2026-05-08T13:40:04.958Z" }, +] + +[[package]] +name = "pygments" +version = "2.20.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c3/b2/bc9c9196916376152d655522fdcebac55e66de6603a76a02bca1b6414f6c/pygments-2.20.0.tar.gz", hash = "sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f", size = 4955991, upload_time = "2026-03-29T13:29:33.898Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl", hash = "sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176", size = 1231151, upload_time = "2026-03-29T13:29:30.038Z" }, +] + +[[package]] +name = "pyjwt" +version = "2.12.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c2/27/a3b6e5bf6ff856d2509292e95c8f57f0df7017cf5394921fc4e4ef40308a/pyjwt-2.12.1.tar.gz", hash = "sha256:c74a7a2adf861c04d002db713dd85f84beb242228e671280bf709d765b03672b", size = 102564, upload_time = "2026-03-13T19:27:37.25Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/7a/8dd906bd22e79e47397a61742927f6747fe93242ef86645ee9092e610244/pyjwt-2.12.1-py3-none-any.whl", hash = "sha256:28ca37c070cad8ba8cd9790cd940535d40274d22f80ab87f3ac6a713e6e8454c", size = 29726, upload_time = "2026-03-13T19:27:35.677Z" }, +] + +[package.optional-dependencies] +crypto = [ + { name = "cryptography" }, +] + +[[package]] +name = "pyopenssl" +version = "26.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1a/51/27a5ad5f939d08f690a326ef9582cda7140555180db71695f6fb747d6a36/pyopenssl-26.2.0.tar.gz", hash = "sha256:8c6fcecd1183a7fc897548dfe388b0cdb7f37e018200d8409cf33959dbe35387", size = 182195, upload_time = "2026-05-04T23:06:09.72Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/73/b8/a0e2790ae249d6f38c9f66de7a211621a7ab2650217bcd04e1262f578a56/pyopenssl-26.2.0-py3-none-any.whl", hash = "sha256:4f9d971bc5298b8bc1fab282803da04bf000c755d4ad9d99b52de2569ca19a70", size = 55823, upload_time = "2026-05-04T23:06:08.395Z" }, +] + +[[package]] +name = "pyperclip" +version = "1.11.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e8/52/d87eba7cb129b81563019d1679026e7a112ef76855d6159d24754dbd2a51/pyperclip-1.11.0.tar.gz", hash = "sha256:244035963e4428530d9e3a6101a1ef97209c6825edab1567beac148ccc1db1b6", size = 12185, upload_time = "2025-09-26T14:40:37.245Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/df/80/fc9d01d5ed37ba4c42ca2b55b4339ae6e200b456be3a1aaddf4a9fa99b8c/pyperclip-1.11.0-py3-none-any.whl", hash = "sha256:299403e9ff44581cb9ba2ffeed69c7aa96a008622ad0c46cb575ca75b5b84273", size = 11063, upload_time = "2025-09-26T14:40:36.069Z" }, +] + +[[package]] +name = "pytest" +version = "9.0.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "iniconfig" }, + { name = "packaging" }, + { name = "pluggy" }, + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7d/0d/549bd94f1a0a402dc8cf64563a117c0f3765662e2e668477624baeec44d5/pytest-9.0.3.tar.gz", hash = "sha256:b86ada508af81d19edeb213c681b1d48246c1a91d304c6c81a427674c17eb91c", size = 1572165, upload_time = "2026-04-07T17:16:18.027Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d4/24/a372aaf5c9b7208e7112038812994107bc65a84cd00e0354a88c2c77a617/pytest-9.0.3-py3-none-any.whl", hash = "sha256:2c5efc453d45394fdd706ade797c0a81091eccd1d6e4bccfcd476e2b8e0ab5d9", size = 375249, upload_time = "2026-04-07T17:16:16.13Z" }, +] + +[[package]] +name = "pytest-asyncio" +version = "1.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pytest" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/90/2c/8af215c0f776415f3590cac4f9086ccefd6fd463befeae41cd4d3f193e5a/pytest_asyncio-1.3.0.tar.gz", hash = "sha256:d7f52f36d231b80ee124cd216ffb19369aa168fc10095013c6b014a34d3ee9e5", size = 50087, upload_time = "2025-11-10T16:07:47.256Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/35/f8b19922b6a25bc0880171a2f1a003eaeb93657475193ab516fd87cac9da/pytest_asyncio-1.3.0-py3-none-any.whl", hash = "sha256:611e26147c7f77640e6d0a92a38ed17c3e9848063698d5c93d5aa7aa11cebff5", size = 15075, upload_time = "2025-11-10T16:07:45.537Z" }, +] + +[[package]] +name = "pytest-cov" +version = "7.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "coverage" }, + { name = "pluggy" }, + { name = "pytest" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b1/51/a849f96e117386044471c8ec2bd6cfebacda285da9525c9106aeb28da671/pytest_cov-7.1.0.tar.gz", hash = "sha256:30674f2b5f6351aa09702a9c8c364f6a01c27aae0c1366ae8016160d1efc56b2", size = 55592, upload_time = "2026-03-21T20:11:16.284Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9d/7a/d968e294073affff457b041c2be9868a40c1c71f4a35fcc1e45e5493067b/pytest_cov-7.1.0-py3-none-any.whl", hash = "sha256:a0461110b7865f9a271aa1b51e516c9a95de9d696734a2f71e3e78f46e1d4678", size = 22876, upload_time = "2026-03-21T20:11:14.438Z" }, +] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432, upload_time = "2024-03-01T18:36:20.211Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload_time = "2024-03-01T18:36:18.57Z" }, +] + +[[package]] +name = "python-dotenv" +version = "1.2.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/82/ed/0301aeeac3e5353ef3d94b6ec08bbcabd04a72018415dcb29e588514bba8/python_dotenv-1.2.2.tar.gz", hash = "sha256:2c371a91fbd7ba082c2c1dc1f8bf89ca22564a087c2c287cd9b662adde799cf3", size = 50135, upload_time = "2026-03-01T16:00:26.196Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl", hash = "sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a", size = 22101, upload_time = "2026-03-01T16:00:25.09Z" }, +] + +[[package]] +name = "python-multipart" +version = "0.0.29" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/4e/fe/70bd71a6738b09a0bdf6480ca6436b167469ca4578b2a0efbe390b4b0e70/python_multipart-0.0.29.tar.gz", hash = "sha256:643e93849196645e2dbdd81a0f8829a23123ad7f797a84a364c6fb3563f18904", size = 45678, upload_time = "2026-05-17T17:29:47.654Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8f/cb/769cfc37177252872a45a71f3fbdde9d51b471a3f3c14bfe95dde3407386/python_multipart-0.0.29-py3-none-any.whl", hash = "sha256:2ddcc971cef266225f54f552d8fa10bcfbb1f14446caec199060daac59ff2d69", size = 29640, upload_time = "2026-05-17T17:29:45.69Z" }, +] + +[[package]] +name = "pytz" +version = "2026.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ff/46/dd499ec9038423421951e4fad73051febaa13d2df82b4064f87af8b8c0c3/pytz-2026.2.tar.gz", hash = "sha256:0e60b47b29f21574376f218fe21abc009894a2321ea16c6754f3cad6eb7cdd6a", size = 320861, upload_time = "2026-05-04T01:35:29.667Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/dd/96da98f892250475bdf2328112d7468abdd4acc7b902b6af23f4ed958ea0/pytz-2026.2-py2.py3-none-any.whl", hash = "sha256:04156e608bee23d3792fd45c94ae47fae1036688e75032eea2e3bf0323d1f126", size = 510141, upload_time = "2026-05-04T01:35:27.408Z" }, +] + +[[package]] +name = "pywin32" +version = "311" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a5/be/3fd5de0979fcb3994bfee0d65ed8ca9506a8a1260651b86174f6a86f52b3/pywin32-311-cp313-cp313-win32.whl", hash = "sha256:f95ba5a847cba10dd8c4d8fefa9f2a6cf283b8b88ed6178fa8a6c1ab16054d0d", size = 8705700, upload_time = "2025-07-14T20:13:26.471Z" }, + { url = "https://files.pythonhosted.org/packages/e3/28/e0a1909523c6890208295a29e05c2adb2126364e289826c0a8bc7297bd5c/pywin32-311-cp313-cp313-win_amd64.whl", hash = "sha256:718a38f7e5b058e76aee1c56ddd06908116d35147e133427e59a3983f703a20d", size = 9494700, upload_time = "2025-07-14T20:13:28.243Z" }, + { url = "https://files.pythonhosted.org/packages/04/bf/90339ac0f55726dce7d794e6d79a18a91265bdf3aa70b6b9ca52f35e022a/pywin32-311-cp313-cp313-win_arm64.whl", hash = "sha256:7b4075d959648406202d92a2310cb990fea19b535c7f4a78d3f5e10b926eeb8a", size = 8709318, upload_time = "2025-07-14T20:13:30.348Z" }, + { url = "https://files.pythonhosted.org/packages/c9/31/097f2e132c4f16d99a22bfb777e0fd88bd8e1c634304e102f313af69ace5/pywin32-311-cp314-cp314-win32.whl", hash = "sha256:b7a2c10b93f8986666d0c803ee19b5990885872a7de910fc460f9b0c2fbf92ee", size = 8840714, upload_time = "2025-07-14T20:13:32.449Z" }, + { url = "https://files.pythonhosted.org/packages/90/4b/07c77d8ba0e01349358082713400435347df8426208171ce297da32c313d/pywin32-311-cp314-cp314-win_amd64.whl", hash = "sha256:3aca44c046bd2ed8c90de9cb8427f581c479e594e99b5c0bb19b29c10fd6cb87", size = 9656800, upload_time = "2025-07-14T20:13:34.312Z" }, + { url = "https://files.pythonhosted.org/packages/c0/d2/21af5c535501a7233e734b8af901574572da66fcc254cb35d0609c9080dd/pywin32-311-cp314-cp314-win_arm64.whl", hash = "sha256:a508e2d9025764a8270f93111a970e1d0fbfc33f4153b388bb649b7eec4f9b42", size = 8932540, upload_time = "2025-07-14T20:13:36.379Z" }, +] + +[[package]] +name = "pywin32-ctypes" +version = "0.2.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/85/9f/01a1a99704853cb63f253eea009390c88e7131c67e66a0a02099a8c917cb/pywin32-ctypes-0.2.3.tar.gz", hash = "sha256:d162dc04946d704503b2edc4d55f3dba5c1d539ead017afa00142c38b9885755", size = 29471, upload_time = "2024-08-14T10:15:34.626Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/de/3d/8161f7711c017e01ac9f008dfddd9410dff3674334c233bde66e7ba65bbf/pywin32_ctypes-0.2.3-py3-none-any.whl", hash = "sha256:8a1513379d709975552d202d942d9837758905c8d01eb82b8bcc30918929e7b8", size = 30756, upload_time = "2024-08-14T10:15:33.187Z" }, +] + +[[package]] +name = "pyyaml" +version = "6.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload_time = "2025-09-25T21:33:16.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/11/0fd08f8192109f7169db964b5707a2f1e8b745d4e239b784a5a1dd80d1db/pyyaml-6.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8", size = 181669, upload_time = "2025-09-25T21:32:23.673Z" }, + { url = "https://files.pythonhosted.org/packages/b1/16/95309993f1d3748cd644e02e38b75d50cbc0d9561d21f390a76242ce073f/pyyaml-6.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1", size = 173252, upload_time = "2025-09-25T21:32:25.149Z" }, + { url = "https://files.pythonhosted.org/packages/50/31/b20f376d3f810b9b2371e72ef5adb33879b25edb7a6d072cb7ca0c486398/pyyaml-6.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c", size = 767081, upload_time = "2025-09-25T21:32:26.575Z" }, + { url = "https://files.pythonhosted.org/packages/49/1e/a55ca81e949270d5d4432fbbd19dfea5321eda7c41a849d443dc92fd1ff7/pyyaml-6.0.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5", size = 841159, upload_time = "2025-09-25T21:32:27.727Z" }, + { url = "https://files.pythonhosted.org/packages/74/27/e5b8f34d02d9995b80abcef563ea1f8b56d20134d8f4e5e81733b1feceb2/pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6", size = 801626, upload_time = "2025-09-25T21:32:28.878Z" }, + { url = "https://files.pythonhosted.org/packages/f9/11/ba845c23988798f40e52ba45f34849aa8a1f2d4af4b798588010792ebad6/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6", size = 753613, upload_time = "2025-09-25T21:32:30.178Z" }, + { url = "https://files.pythonhosted.org/packages/3d/e0/7966e1a7bfc0a45bf0a7fb6b98ea03fc9b8d84fa7f2229e9659680b69ee3/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be", size = 794115, upload_time = "2025-09-25T21:32:31.353Z" }, + { url = "https://files.pythonhosted.org/packages/de/94/980b50a6531b3019e45ddeada0626d45fa85cbe22300844a7983285bed3b/pyyaml-6.0.3-cp313-cp313-win32.whl", hash = "sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26", size = 137427, upload_time = "2025-09-25T21:32:32.58Z" }, + { url = "https://files.pythonhosted.org/packages/97/c9/39d5b874e8b28845e4ec2202b5da735d0199dbe5b8fb85f91398814a9a46/pyyaml-6.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c", size = 154090, upload_time = "2025-09-25T21:32:33.659Z" }, + { url = "https://files.pythonhosted.org/packages/73/e8/2bdf3ca2090f68bb3d75b44da7bbc71843b19c9f2b9cb9b0f4ab7a5a4329/pyyaml-6.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb", size = 140246, upload_time = "2025-09-25T21:32:34.663Z" }, + { url = "https://files.pythonhosted.org/packages/9d/8c/f4bd7f6465179953d3ac9bc44ac1a8a3e6122cf8ada906b4f96c60172d43/pyyaml-6.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:8d1fab6bb153a416f9aeb4b8763bc0f22a5586065f86f7664fc23339fc1c1fac", size = 181814, upload_time = "2025-09-25T21:32:35.712Z" }, + { url = "https://files.pythonhosted.org/packages/bd/9c/4d95bb87eb2063d20db7b60faa3840c1b18025517ae857371c4dd55a6b3a/pyyaml-6.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:34d5fcd24b8445fadc33f9cf348c1047101756fd760b4dacb5c3e99755703310", size = 173809, upload_time = "2025-09-25T21:32:36.789Z" }, + { url = "https://files.pythonhosted.org/packages/92/b5/47e807c2623074914e29dabd16cbbdd4bf5e9b2db9f8090fa64411fc5382/pyyaml-6.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:501a031947e3a9025ed4405a168e6ef5ae3126c59f90ce0cd6f2bfc477be31b7", size = 766454, upload_time = "2025-09-25T21:32:37.966Z" }, + { url = "https://files.pythonhosted.org/packages/02/9e/e5e9b168be58564121efb3de6859c452fccde0ab093d8438905899a3a483/pyyaml-6.0.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b3bc83488de33889877a0f2543ade9f70c67d66d9ebb4ac959502e12de895788", size = 836355, upload_time = "2025-09-25T21:32:39.178Z" }, + { url = "https://files.pythonhosted.org/packages/88/f9/16491d7ed2a919954993e48aa941b200f38040928474c9e85ea9e64222c3/pyyaml-6.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c458b6d084f9b935061bc36216e8a69a7e293a2f1e68bf956dcd9e6cbcd143f5", size = 794175, upload_time = "2025-09-25T21:32:40.865Z" }, + { url = "https://files.pythonhosted.org/packages/dd/3f/5989debef34dc6397317802b527dbbafb2b4760878a53d4166579111411e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7c6610def4f163542a622a73fb39f534f8c101d690126992300bf3207eab9764", size = 755228, upload_time = "2025-09-25T21:32:42.084Z" }, + { url = "https://files.pythonhosted.org/packages/d7/ce/af88a49043cd2e265be63d083fc75b27b6ed062f5f9fd6cdc223ad62f03e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5190d403f121660ce8d1d2c1bb2ef1bd05b5f68533fc5c2ea899bd15f4399b35", size = 789194, upload_time = "2025-09-25T21:32:43.362Z" }, + { url = "https://files.pythonhosted.org/packages/23/20/bb6982b26a40bb43951265ba29d4c246ef0ff59c9fdcdf0ed04e0687de4d/pyyaml-6.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:4a2e8cebe2ff6ab7d1050ecd59c25d4c8bd7e6f400f5f82b96557ac0abafd0ac", size = 156429, upload_time = "2025-09-25T21:32:57.844Z" }, + { url = "https://files.pythonhosted.org/packages/f4/f4/a4541072bb9422c8a883ab55255f918fa378ecf083f5b85e87fc2b4eda1b/pyyaml-6.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:93dda82c9c22deb0a405ea4dc5f2d0cda384168e466364dec6255b293923b2f3", size = 143912, upload_time = "2025-09-25T21:32:59.247Z" }, + { url = "https://files.pythonhosted.org/packages/7c/f9/07dd09ae774e4616edf6cda684ee78f97777bdd15847253637a6f052a62f/pyyaml-6.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:02893d100e99e03eda1c8fd5c441d8c60103fd175728e23e431db1b589cf5ab3", size = 189108, upload_time = "2025-09-25T21:32:44.377Z" }, + { url = "https://files.pythonhosted.org/packages/4e/78/8d08c9fb7ce09ad8c38ad533c1191cf27f7ae1effe5bb9400a46d9437fcf/pyyaml-6.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c1ff362665ae507275af2853520967820d9124984e0f7466736aea23d8611fba", size = 183641, upload_time = "2025-09-25T21:32:45.407Z" }, + { url = "https://files.pythonhosted.org/packages/7b/5b/3babb19104a46945cf816d047db2788bcaf8c94527a805610b0289a01c6b/pyyaml-6.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6adc77889b628398debc7b65c073bcb99c4a0237b248cacaf3fe8a557563ef6c", size = 831901, upload_time = "2025-09-25T21:32:48.83Z" }, + { url = "https://files.pythonhosted.org/packages/8b/cc/dff0684d8dc44da4d22a13f35f073d558c268780ce3c6ba1b87055bb0b87/pyyaml-6.0.3-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a80cb027f6b349846a3bf6d73b5e95e782175e52f22108cfa17876aaeff93702", size = 861132, upload_time = "2025-09-25T21:32:50.149Z" }, + { url = "https://files.pythonhosted.org/packages/b1/5e/f77dc6b9036943e285ba76b49e118d9ea929885becb0a29ba8a7c75e29fe/pyyaml-6.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c", size = 839261, upload_time = "2025-09-25T21:32:51.808Z" }, + { url = "https://files.pythonhosted.org/packages/ce/88/a9db1376aa2a228197c58b37302f284b5617f56a5d959fd1763fb1675ce6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:66e1674c3ef6f541c35191caae2d429b967b99e02040f5ba928632d9a7f0f065", size = 805272, upload_time = "2025-09-25T21:32:52.941Z" }, + { url = "https://files.pythonhosted.org/packages/da/92/1446574745d74df0c92e6aa4a7b0b3130706a4142b2d1a5869f2eaa423c6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:16249ee61e95f858e83976573de0f5b2893b3677ba71c9dd36b9cf8be9ac6d65", size = 829923, upload_time = "2025-09-25T21:32:54.537Z" }, + { url = "https://files.pythonhosted.org/packages/f0/7a/1c7270340330e575b92f397352af856a8c06f230aa3e76f86b39d01b416a/pyyaml-6.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4ad1906908f2f5ae4e5a8ddfce73c320c2a1429ec52eafd27138b7f1cbe341c9", size = 174062, upload_time = "2025-09-25T21:32:55.767Z" }, + { url = "https://files.pythonhosted.org/packages/f1/12/de94a39c2ef588c7e6455cfbe7343d3b2dc9d6b6b2f40c4c6565744c873d/pyyaml-6.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b", size = 149341, upload_time = "2025-09-25T21:32:56.828Z" }, +] + +[[package]] +name = "referencing" +version = "0.37.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "rpds-py" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/22/f5/df4e9027acead3ecc63e50fe1e36aca1523e1719559c499951bb4b53188f/referencing-0.37.0.tar.gz", hash = "sha256:44aefc3142c5b842538163acb373e24cce6632bd54bdb01b21ad5863489f50d8", size = 78036, upload_time = "2025-10-13T15:30:48.871Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl", hash = "sha256:381329a9f99628c9069361716891d34ad94af76e461dcb0335825aecc7692231", size = 26766, upload_time = "2025-10-13T15:30:47.625Z" }, +] + +[[package]] +name = "rich" +version = "15.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markdown-it-py" }, + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c0/8f/0722ca900cc807c13a6a0c696dacf35430f72e0ec571c4275d2371fca3e9/rich-15.0.0.tar.gz", hash = "sha256:edd07a4824c6b40189fb7ac9bc4c52536e9780fbbfbddf6f1e2502c31b068c36", size = 230680, upload_time = "2026-04-12T08:24:00.75Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/82/3b/64d4899d73f91ba49a8c18a8ff3f0ea8f1c1d75481760df8c68ef5235bf5/rich-15.0.0-py3-none-any.whl", hash = "sha256:33bd4ef74232fb73fe9279a257718407f169c09b78a87ad3d296f548e27de0bb", size = 310654, upload_time = "2026-04-12T08:24:02.83Z" }, +] + +[[package]] +name = "rich-rst" +version = "2.0.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pygments" }, + { name = "rich" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/57/56/3191bae66b08ccc637ea8120426068bcb361cc323c96404c310886937067/rich_rst-2.0.1.tar.gz", hash = "sha256:cbe236ed0901d1ec8427cc6a50bf0a34353ba28ad014dc24def68bfe7f3b9e68", size = 300570, upload_time = "2026-05-16T00:47:57.362Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/3d/55c17d3ebdf3cd81356002afe5bef9bb8af631db2819785b6eac845b925b/rich_rst-2.0.1-py3-none-any.whl", hash = "sha256:7ee15f345ce25fa02b582c272a6cdbaf0c21243e38061cea273cff659bf3ef61", size = 272922, upload_time = "2026-05-16T00:47:55.508Z" }, +] + +[[package]] +name = "rpds-py" +version = "0.30.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/20/af/3f2f423103f1113b36230496629986e0ef7e199d2aa8392452b484b38ced/rpds_py-0.30.0.tar.gz", hash = "sha256:dd8ff7cf90014af0c0f787eea34794ebf6415242ee1d6fa91eaba725cc441e84", size = 69469, upload_time = "2025-11-30T20:24:38.837Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ed/dc/d61221eb88ff410de3c49143407f6f3147acf2538c86f2ab7ce65ae7d5f9/rpds_py-0.30.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:f83424d738204d9770830d35290ff3273fbb02b41f919870479fab14b9d303b2", size = 374887, upload_time = "2025-11-30T20:22:41.812Z" }, + { url = "https://files.pythonhosted.org/packages/fd/32/55fb50ae104061dbc564ef15cc43c013dc4a9f4527a1f4d99baddf56fe5f/rpds_py-0.30.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e7536cd91353c5273434b4e003cbda89034d67e7710eab8761fd918ec6c69cf8", size = 358904, upload_time = "2025-11-30T20:22:43.479Z" }, + { url = "https://files.pythonhosted.org/packages/58/70/faed8186300e3b9bdd138d0273109784eea2396c68458ed580f885dfe7ad/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2771c6c15973347f50fece41fc447c054b7ac2ae0502388ce3b6738cd366e3d4", size = 389945, upload_time = "2025-11-30T20:22:44.819Z" }, + { url = "https://files.pythonhosted.org/packages/bd/a8/073cac3ed2c6387df38f71296d002ab43496a96b92c823e76f46b8af0543/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0a59119fc6e3f460315fe9d08149f8102aa322299deaa5cab5b40092345c2136", size = 407783, upload_time = "2025-11-30T20:22:46.103Z" }, + { url = "https://files.pythonhosted.org/packages/77/57/5999eb8c58671f1c11eba084115e77a8899d6e694d2a18f69f0ba471ec8b/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:76fec018282b4ead0364022e3c54b60bf368b9d926877957a8624b58419169b7", size = 515021, upload_time = "2025-11-30T20:22:47.458Z" }, + { url = "https://files.pythonhosted.org/packages/e0/af/5ab4833eadc36c0a8ed2bc5c0de0493c04f6c06de223170bd0798ff98ced/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:692bef75a5525db97318e8cd061542b5a79812d711ea03dbc1f6f8dbb0c5f0d2", size = 414589, upload_time = "2025-11-30T20:22:48.872Z" }, + { url = "https://files.pythonhosted.org/packages/b7/de/f7192e12b21b9e9a68a6d0f249b4af3fdcdff8418be0767a627564afa1f1/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9027da1ce107104c50c81383cae773ef5c24d296dd11c99e2629dbd7967a20c6", size = 394025, upload_time = "2025-11-30T20:22:50.196Z" }, + { url = "https://files.pythonhosted.org/packages/91/c4/fc70cd0249496493500e7cc2de87504f5aa6509de1e88623431fec76d4b6/rpds_py-0.30.0-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:9cf69cdda1f5968a30a359aba2f7f9aa648a9ce4b580d6826437f2b291cfc86e", size = 408895, upload_time = "2025-11-30T20:22:51.87Z" }, + { url = "https://files.pythonhosted.org/packages/58/95/d9275b05ab96556fefff73a385813eb66032e4c99f411d0795372d9abcea/rpds_py-0.30.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a4796a717bf12b9da9d3ad002519a86063dcac8988b030e405704ef7d74d2d9d", size = 422799, upload_time = "2025-11-30T20:22:53.341Z" }, + { url = "https://files.pythonhosted.org/packages/06/c1/3088fc04b6624eb12a57eb814f0d4997a44b0d208d6cace713033ff1a6ba/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5d4c2aa7c50ad4728a094ebd5eb46c452e9cb7edbfdb18f9e1221f597a73e1e7", size = 572731, upload_time = "2025-11-30T20:22:54.778Z" }, + { url = "https://files.pythonhosted.org/packages/d8/42/c612a833183b39774e8ac8fecae81263a68b9583ee343db33ab571a7ce55/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ba81a9203d07805435eb06f536d95a266c21e5b2dfbf6517748ca40c98d19e31", size = 599027, upload_time = "2025-11-30T20:22:56.212Z" }, + { url = "https://files.pythonhosted.org/packages/5f/60/525a50f45b01d70005403ae0e25f43c0384369ad24ffe46e8d9068b50086/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:945dccface01af02675628334f7cf49c2af4c1c904748efc5cf7bbdf0b579f95", size = 563020, upload_time = "2025-11-30T20:22:58.2Z" }, + { url = "https://files.pythonhosted.org/packages/0b/5d/47c4655e9bcd5ca907148535c10e7d489044243cc9941c16ed7cd53be91d/rpds_py-0.30.0-cp313-cp313-win32.whl", hash = "sha256:b40fb160a2db369a194cb27943582b38f79fc4887291417685f3ad693c5a1d5d", size = 223139, upload_time = "2025-11-30T20:23:00.209Z" }, + { url = "https://files.pythonhosted.org/packages/f2/e1/485132437d20aa4d3e1d8b3fb5a5e65aa8139f1e097080c2a8443201742c/rpds_py-0.30.0-cp313-cp313-win_amd64.whl", hash = "sha256:806f36b1b605e2d6a72716f321f20036b9489d29c51c91f4dd29a3e3afb73b15", size = 240224, upload_time = "2025-11-30T20:23:02.008Z" }, + { url = "https://files.pythonhosted.org/packages/24/95/ffd128ed1146a153d928617b0ef673960130be0009c77d8fbf0abe306713/rpds_py-0.30.0-cp313-cp313-win_arm64.whl", hash = "sha256:d96c2086587c7c30d44f31f42eae4eac89b60dabbac18c7669be3700f13c3ce1", size = 230645, upload_time = "2025-11-30T20:23:03.43Z" }, + { url = "https://files.pythonhosted.org/packages/ff/1b/b10de890a0def2a319a2626334a7f0ae388215eb60914dbac8a3bae54435/rpds_py-0.30.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:eb0b93f2e5c2189ee831ee43f156ed34e2a89a78a66b98cadad955972548be5a", size = 364443, upload_time = "2025-11-30T20:23:04.878Z" }, + { url = "https://files.pythonhosted.org/packages/0d/bf/27e39f5971dc4f305a4fb9c672ca06f290f7c4e261c568f3dea16a410d47/rpds_py-0.30.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:922e10f31f303c7c920da8981051ff6d8c1a56207dbdf330d9047f6d30b70e5e", size = 353375, upload_time = "2025-11-30T20:23:06.342Z" }, + { url = "https://files.pythonhosted.org/packages/40/58/442ada3bba6e8e6615fc00483135c14a7538d2ffac30e2d933ccf6852232/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cdc62c8286ba9bf7f47befdcea13ea0e26bf294bda99758fd90535cbaf408000", size = 383850, upload_time = "2025-11-30T20:23:07.825Z" }, + { url = "https://files.pythonhosted.org/packages/14/14/f59b0127409a33c6ef6f5c1ebd5ad8e32d7861c9c7adfa9a624fc3889f6c/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:47f9a91efc418b54fb8190a6b4aa7813a23fb79c51f4bb84e418f5476c38b8db", size = 392812, upload_time = "2025-11-30T20:23:09.228Z" }, + { url = "https://files.pythonhosted.org/packages/b3/66/e0be3e162ac299b3a22527e8913767d869e6cc75c46bd844aa43fb81ab62/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1f3587eb9b17f3789ad50824084fa6f81921bbf9a795826570bda82cb3ed91f2", size = 517841, upload_time = "2025-11-30T20:23:11.186Z" }, + { url = "https://files.pythonhosted.org/packages/3d/55/fa3b9cf31d0c963ecf1ba777f7cf4b2a2c976795ac430d24a1f43d25a6ba/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:39c02563fc592411c2c61d26b6c5fe1e51eaa44a75aa2c8735ca88b0d9599daa", size = 408149, upload_time = "2025-11-30T20:23:12.864Z" }, + { url = "https://files.pythonhosted.org/packages/60/ca/780cf3b1a32b18c0f05c441958d3758f02544f1d613abf9488cd78876378/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51a1234d8febafdfd33a42d97da7a43f5dcb120c1060e352a3fbc0c6d36e2083", size = 383843, upload_time = "2025-11-30T20:23:14.638Z" }, + { url = "https://files.pythonhosted.org/packages/82/86/d5f2e04f2aa6247c613da0c1dd87fcd08fa17107e858193566048a1e2f0a/rpds_py-0.30.0-cp313-cp313t-manylinux_2_31_riscv64.whl", hash = "sha256:eb2c4071ab598733724c08221091e8d80e89064cd472819285a9ab0f24bcedb9", size = 396507, upload_time = "2025-11-30T20:23:16.105Z" }, + { url = "https://files.pythonhosted.org/packages/4b/9a/453255d2f769fe44e07ea9785c8347edaf867f7026872e76c1ad9f7bed92/rpds_py-0.30.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6bdfdb946967d816e6adf9a3d8201bfad269c67efe6cefd7093ef959683c8de0", size = 414949, upload_time = "2025-11-30T20:23:17.539Z" }, + { url = "https://files.pythonhosted.org/packages/a3/31/622a86cdc0c45d6df0e9ccb6becdba5074735e7033c20e401a6d9d0e2ca0/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c77afbd5f5250bf27bf516c7c4a016813eb2d3e116139aed0096940c5982da94", size = 565790, upload_time = "2025-11-30T20:23:19.029Z" }, + { url = "https://files.pythonhosted.org/packages/1c/5d/15bbf0fb4a3f58a3b1c67855ec1efcc4ceaef4e86644665fff03e1b66d8d/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:61046904275472a76c8c90c9ccee9013d70a6d0f73eecefd38c1ae7c39045a08", size = 590217, upload_time = "2025-11-30T20:23:20.885Z" }, + { url = "https://files.pythonhosted.org/packages/6d/61/21b8c41f68e60c8cc3b2e25644f0e3681926020f11d06ab0b78e3c6bbff1/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4c5f36a861bc4b7da6516dbdf302c55313afa09b81931e8280361a4f6c9a2d27", size = 555806, upload_time = "2025-11-30T20:23:22.488Z" }, + { url = "https://files.pythonhosted.org/packages/f9/39/7e067bb06c31de48de3eb200f9fc7c58982a4d3db44b07e73963e10d3be9/rpds_py-0.30.0-cp313-cp313t-win32.whl", hash = "sha256:3d4a69de7a3e50ffc214ae16d79d8fbb0922972da0356dcf4d0fdca2878559c6", size = 211341, upload_time = "2025-11-30T20:23:24.449Z" }, + { url = "https://files.pythonhosted.org/packages/0a/4d/222ef0b46443cf4cf46764d9c630f3fe4abaa7245be9417e56e9f52b8f65/rpds_py-0.30.0-cp313-cp313t-win_amd64.whl", hash = "sha256:f14fc5df50a716f7ece6a80b6c78bb35ea2ca47c499e422aa4463455dd96d56d", size = 225768, upload_time = "2025-11-30T20:23:25.908Z" }, + { url = "https://files.pythonhosted.org/packages/86/81/dad16382ebbd3d0e0328776d8fd7ca94220e4fa0798d1dc5e7da48cb3201/rpds_py-0.30.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:68f19c879420aa08f61203801423f6cd5ac5f0ac4ac82a2368a9fcd6a9a075e0", size = 362099, upload_time = "2025-11-30T20:23:27.316Z" }, + { url = "https://files.pythonhosted.org/packages/2b/60/19f7884db5d5603edf3c6bce35408f45ad3e97e10007df0e17dd57af18f8/rpds_py-0.30.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:ec7c4490c672c1a0389d319b3a9cfcd098dcdc4783991553c332a15acf7249be", size = 353192, upload_time = "2025-11-30T20:23:29.151Z" }, + { url = "https://files.pythonhosted.org/packages/bf/c4/76eb0e1e72d1a9c4703c69607cec123c29028bff28ce41588792417098ac/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f251c812357a3fed308d684a5079ddfb9d933860fc6de89f2b7ab00da481e65f", size = 384080, upload_time = "2025-11-30T20:23:30.785Z" }, + { url = "https://files.pythonhosted.org/packages/72/87/87ea665e92f3298d1b26d78814721dc39ed8d2c74b86e83348d6b48a6f31/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ac98b175585ecf4c0348fd7b29c3864bda53b805c773cbf7bfdaffc8070c976f", size = 394841, upload_time = "2025-11-30T20:23:32.209Z" }, + { url = "https://files.pythonhosted.org/packages/77/ad/7783a89ca0587c15dcbf139b4a8364a872a25f861bdb88ed99f9b0dec985/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3e62880792319dbeb7eb866547f2e35973289e7d5696c6e295476448f5b63c87", size = 516670, upload_time = "2025-11-30T20:23:33.742Z" }, + { url = "https://files.pythonhosted.org/packages/5b/3c/2882bdac942bd2172f3da574eab16f309ae10a3925644e969536553cb4ee/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4e7fc54e0900ab35d041b0601431b0a0eb495f0851a0639b6ef90f7741b39a18", size = 408005, upload_time = "2025-11-30T20:23:35.253Z" }, + { url = "https://files.pythonhosted.org/packages/ce/81/9a91c0111ce1758c92516a3e44776920b579d9a7c09b2b06b642d4de3f0f/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47e77dc9822d3ad616c3d5759ea5631a75e5809d5a28707744ef79d7a1bcfcad", size = 382112, upload_time = "2025-11-30T20:23:36.842Z" }, + { url = "https://files.pythonhosted.org/packages/cf/8e/1da49d4a107027e5fbc64daeab96a0706361a2918da10cb41769244b805d/rpds_py-0.30.0-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:b4dc1a6ff022ff85ecafef7979a2c6eb423430e05f1165d6688234e62ba99a07", size = 399049, upload_time = "2025-11-30T20:23:38.343Z" }, + { url = "https://files.pythonhosted.org/packages/df/5a/7ee239b1aa48a127570ec03becbb29c9d5a9eb092febbd1699d567cae859/rpds_py-0.30.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4559c972db3a360808309e06a74628b95eaccbf961c335c8fe0d590cf587456f", size = 415661, upload_time = "2025-11-30T20:23:40.263Z" }, + { url = "https://files.pythonhosted.org/packages/70/ea/caa143cf6b772f823bc7929a45da1fa83569ee49b11d18d0ada7f5ee6fd6/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:0ed177ed9bded28f8deb6ab40c183cd1192aa0de40c12f38be4d59cd33cb5c65", size = 565606, upload_time = "2025-11-30T20:23:42.186Z" }, + { url = "https://files.pythonhosted.org/packages/64/91/ac20ba2d69303f961ad8cf55bf7dbdb4763f627291ba3d0d7d67333cced9/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:ad1fa8db769b76ea911cb4e10f049d80bf518c104f15b3edb2371cc65375c46f", size = 591126, upload_time = "2025-11-30T20:23:44.086Z" }, + { url = "https://files.pythonhosted.org/packages/21/20/7ff5f3c8b00c8a95f75985128c26ba44503fb35b8e0259d812766ea966c7/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:46e83c697b1f1c72b50e5ee5adb4353eef7406fb3f2043d64c33f20ad1c2fc53", size = 553371, upload_time = "2025-11-30T20:23:46.004Z" }, + { url = "https://files.pythonhosted.org/packages/72/c7/81dadd7b27c8ee391c132a6b192111ca58d866577ce2d9b0ca157552cce0/rpds_py-0.30.0-cp314-cp314-win32.whl", hash = "sha256:ee454b2a007d57363c2dfd5b6ca4a5d7e2c518938f8ed3b706e37e5d470801ed", size = 215298, upload_time = "2025-11-30T20:23:47.696Z" }, + { url = "https://files.pythonhosted.org/packages/3e/d2/1aaac33287e8cfb07aab2e6b8ac1deca62f6f65411344f1433c55e6f3eb8/rpds_py-0.30.0-cp314-cp314-win_amd64.whl", hash = "sha256:95f0802447ac2d10bcc69f6dc28fe95fdf17940367b21d34e34c737870758950", size = 228604, upload_time = "2025-11-30T20:23:49.501Z" }, + { url = "https://files.pythonhosted.org/packages/e8/95/ab005315818cc519ad074cb7784dae60d939163108bd2b394e60dc7b5461/rpds_py-0.30.0-cp314-cp314-win_arm64.whl", hash = "sha256:613aa4771c99f03346e54c3f038e4cc574ac09a3ddfb0e8878487335e96dead6", size = 222391, upload_time = "2025-11-30T20:23:50.96Z" }, + { url = "https://files.pythonhosted.org/packages/9e/68/154fe0194d83b973cdedcdcc88947a2752411165930182ae41d983dcefa6/rpds_py-0.30.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:7e6ecfcb62edfd632e56983964e6884851786443739dbfe3582947e87274f7cb", size = 364868, upload_time = "2025-11-30T20:23:52.494Z" }, + { url = "https://files.pythonhosted.org/packages/83/69/8bbc8b07ec854d92a8b75668c24d2abcb1719ebf890f5604c61c9369a16f/rpds_py-0.30.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:a1d0bc22a7cdc173fedebb73ef81e07faef93692b8c1ad3733b67e31e1b6e1b8", size = 353747, upload_time = "2025-11-30T20:23:54.036Z" }, + { url = "https://files.pythonhosted.org/packages/ab/00/ba2e50183dbd9abcce9497fa5149c62b4ff3e22d338a30d690f9af970561/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d08f00679177226c4cb8c5265012eea897c8ca3b93f429e546600c971bcbae7", size = 383795, upload_time = "2025-11-30T20:23:55.556Z" }, + { url = "https://files.pythonhosted.org/packages/05/6f/86f0272b84926bcb0e4c972262f54223e8ecc556b3224d281e6598fc9268/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5965af57d5848192c13534f90f9dd16464f3c37aaf166cc1da1cae1fd5a34898", size = 393330, upload_time = "2025-11-30T20:23:57.033Z" }, + { url = "https://files.pythonhosted.org/packages/cb/e9/0e02bb2e6dc63d212641da45df2b0bf29699d01715913e0d0f017ee29438/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9a4e86e34e9ab6b667c27f3211ca48f73dba7cd3d90f8d5b11be56e5dbc3fb4e", size = 518194, upload_time = "2025-11-30T20:23:58.637Z" }, + { url = "https://files.pythonhosted.org/packages/ee/ca/be7bca14cf21513bdf9c0606aba17d1f389ea2b6987035eb4f62bd923f25/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5d3e6b26f2c785d65cc25ef1e5267ccbe1b069c5c21b8cc724efee290554419", size = 408340, upload_time = "2025-11-30T20:24:00.2Z" }, + { url = "https://files.pythonhosted.org/packages/c2/c7/736e00ebf39ed81d75544c0da6ef7b0998f8201b369acf842f9a90dc8fce/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:626a7433c34566535b6e56a1b39a7b17ba961e97ce3b80ec62e6f1312c025551", size = 383765, upload_time = "2025-11-30T20:24:01.759Z" }, + { url = "https://files.pythonhosted.org/packages/4a/3f/da50dfde9956aaf365c4adc9533b100008ed31aea635f2b8d7b627e25b49/rpds_py-0.30.0-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:acd7eb3f4471577b9b5a41baf02a978e8bdeb08b4b355273994f8b87032000a8", size = 396834, upload_time = "2025-11-30T20:24:03.687Z" }, + { url = "https://files.pythonhosted.org/packages/4e/00/34bcc2565b6020eab2623349efbdec810676ad571995911f1abdae62a3a0/rpds_py-0.30.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fe5fa731a1fa8a0a56b0977413f8cacac1768dad38d16b3a296712709476fbd5", size = 415470, upload_time = "2025-11-30T20:24:05.232Z" }, + { url = "https://files.pythonhosted.org/packages/8c/28/882e72b5b3e6f718d5453bd4d0d9cf8df36fddeb4ddbbab17869d5868616/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:74a3243a411126362712ee1524dfc90c650a503502f135d54d1b352bd01f2404", size = 565630, upload_time = "2025-11-30T20:24:06.878Z" }, + { url = "https://files.pythonhosted.org/packages/3b/97/04a65539c17692de5b85c6e293520fd01317fd878ea1995f0367d4532fb1/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:3e8eeb0544f2eb0d2581774be4c3410356eba189529a6b3e36bbbf9696175856", size = 591148, upload_time = "2025-11-30T20:24:08.445Z" }, + { url = "https://files.pythonhosted.org/packages/85/70/92482ccffb96f5441aab93e26c4d66489eb599efdcf96fad90c14bbfb976/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:dbd936cde57abfee19ab3213cf9c26be06d60750e60a8e4dd85d1ab12c8b1f40", size = 556030, upload_time = "2025-11-30T20:24:10.956Z" }, + { url = "https://files.pythonhosted.org/packages/20/53/7c7e784abfa500a2b6b583b147ee4bb5a2b3747a9166bab52fec4b5b5e7d/rpds_py-0.30.0-cp314-cp314t-win32.whl", hash = "sha256:dc824125c72246d924f7f796b4f63c1e9dc810c7d9e2355864b3c3a73d59ade0", size = 211570, upload_time = "2025-11-30T20:24:12.735Z" }, + { url = "https://files.pythonhosted.org/packages/d0/02/fa464cdfbe6b26e0600b62c528b72d8608f5cc49f96b8d6e38c95d60c676/rpds_py-0.30.0-cp314-cp314t-win_amd64.whl", hash = "sha256:27f4b0e92de5bfbc6f86e43959e6edd1425c33b5e69aab0984a72047f2bcf1e3", size = 226532, upload_time = "2025-11-30T20:24:14.634Z" }, +] + +[[package]] +name = "secretstorage" +version = "3.5.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "jeepney" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1c/03/e834bcd866f2f8a49a85eaff47340affa3bfa391ee9912a952a1faa68c7b/secretstorage-3.5.0.tar.gz", hash = "sha256:f04b8e4689cbce351744d5537bf6b1329c6fc68f91fa666f60a380edddcd11be", size = 19884, upload_time = "2025-11-23T19:02:53.191Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/46/f5af3402b579fd5e11573ce652019a67074317e18c1935cc0b4ba9b35552/secretstorage-3.5.0-py3-none-any.whl", hash = "sha256:0ce65888c0725fcb2c5bc0fdb8e5438eece02c523557ea40ce0703c266248137", size = 15554, upload_time = "2025-11-23T19:02:51.545Z" }, +] + +[[package]] +name = "six" +version = "1.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload_time = "2024-12-04T17:35:28.174Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload_time = "2024-12-04T17:35:26.475Z" }, +] + +[[package]] +name = "sse-starlette" +version = "3.4.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "starlette" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/2b/58abc2d1fd397e7dde08e947e05c884d8ef2f78d5e2588c17a12d42d6994/sse_starlette-3.4.4.tar.gz", hash = "sha256:07e0fa0460138baf25cdd5fb28683472c3995dc1642225191b3832d62526bcb0", size = 31819, upload_time = "2026-05-12T17:37:17.019Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/dc/67/805710444ea8cc75fbf70b920ed431a560c4bf9c57f7d5a3117213189399/sse_starlette-3.4.4-py3-none-any.whl", hash = "sha256:3f4dd50d8aed2771a091f3a83000323fc3844541c16b4fe585ae2420cc6df973", size = 16514, upload_time = "2026-05-12T17:37:15.601Z" }, +] + +[[package]] +name = "starlette" +version = "1.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/81/69/17425771797c36cded50b7fe44e850315d039f28b15901ab44839e70b593/starlette-1.0.0.tar.gz", hash = "sha256:6a4beaf1f81bb472fd19ea9b918b50dc3a77a6f2e190a12954b25e6ed5eea149", size = 2655289, upload_time = "2026-03-22T18:29:46.779Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0b/c9/584bc9651441b4ba60cc4d557d8a547b5aff901af35bda3a4ee30c819b82/starlette-1.0.0-py3-none-any.whl", hash = "sha256:d3ec55e0bb321692d275455ddfd3df75fff145d009685eb40dc91fc66b03d38b", size = 72651, upload_time = "2026-03-22T18:29:45.111Z" }, +] + +[[package]] +name = "typing-extensions" +version = "4.15.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload_time = "2025-08-25T13:49:26.313Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload_time = "2025-08-25T13:49:24.86Z" }, +] + +[[package]] +name = "typing-inspection" +version = "0.4.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/55/e3/70399cb7dd41c10ac53367ae42139cf4b1ca5f36bb3dc6c9d33acdb43655/typing_inspection-0.4.2.tar.gz", hash = "sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464", size = 75949, upload_time = "2025-10-01T02:14:41.687Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl", hash = "sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7", size = 14611, upload_time = "2025-10-01T02:14:40.154Z" }, +] + +[[package]] +name = "uncalled-for" +version = "0.3.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b5/82/345cc927f7fbdae6065e7768759932fcc827fc20b29b45dfbafa2f1f7da4/uncalled_for-0.3.2.tar.gz", hash = "sha256:89f5dbcd71e2b8f47c030b1fa302e6cce2ec795d1ac565eeb6525c5fe55cb8a2", size = 50032, upload_time = "2026-05-06T13:38:25.204Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3b/25/2c87754f3a9e692315f7b811244090e68f362979fc8886b3fbd2985a1d8c/uncalled_for-0.3.2-py3-none-any.whl", hash = "sha256:0ff60b142c7d1f8070bde9d42afaa70aedc77dcc10998c227687e9c15713418e", size = 11444, upload_time = "2026-05-06T13:38:24.025Z" }, +] + +[[package]] +name = "urllib3" +version = "2.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/53/0c/06f8b233b8fd13b9e5ee11424ef85419ba0d8ba0b3138bf360be2ff56953/urllib3-2.7.0.tar.gz", hash = "sha256:231e0ec3b63ceb14667c67be60f2f2c40a518cb38b03af60abc813da26505f4c", size = 433602, upload_time = "2026-05-07T16:13:18.596Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7f/3e/5db95bcf282c52709639744ca2a8b149baccf648e39c8cc87553df9eae0c/urllib3-2.7.0-py3-none-any.whl", hash = "sha256:9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897", size = 131087, upload_time = "2026-05-07T16:13:17.151Z" }, +] + +[[package]] +name = "uvicorn" +version = "0.47.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "h11" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f6/b1/8e7077a8641086aea449e1b5752a570f1b5906c64e0a33cd6d93b63a066b/uvicorn-0.47.0.tar.gz", hash = "sha256:7c9a0ea1a9414106bbab7324609c162d8fa0cdcdcb703060987269d77c7bb533", size = 90582, upload_time = "2026-05-14T18:16:54.455Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/15/41/ac2dfdbc1f60c7af4f994c7a335cfa7040c01642b605d65f611cecc2a1e4/uvicorn-0.47.0-py3-none-any.whl", hash = "sha256:2c5715bc12d1892d84752049f400cd1c3cb018514967fdfeb97640443a6a9432", size = 71301, upload_time = "2026-05-14T18:16:51.762Z" }, +] + +[[package]] +name = "watchfiles" +version = "1.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/cd/41/5e1a4bb12aac5f1493fa1bdc11154eca3b258ca4eba65d39c473fe19d8e9/watchfiles-1.2.0.tar.gz", hash = "sha256:c995fba777f1ea992f090f9236e9284cf7a5d1a0130dd5a3d82c598cacd76838", size = 108252, upload_time = "2026-05-18T04:32:04.251Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/4d/70a7feced9f87e2ff26dba42667290f41694fc64646c67261fbb8cab5d5c/watchfiles-1.2.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:01ea8d66f0693b9b60a6541c8d10263091ca9a9060d242f3c1f3143f9aad2c98", size = 399730, upload_time = "2026-05-18T04:31:38.162Z" }, + { url = "https://files.pythonhosted.org/packages/31/3a/0da302f2307aee316922806ebd5726c542cbd787c938271cf14a074c7daf/watchfiles-1.2.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7ba0480b9a74af058f43b337e937a451e109295c420916d68ad24e3dc02f5e44", size = 392842, upload_time = "2026-05-18T04:30:27.051Z" }, + { url = "https://files.pythonhosted.org/packages/db/ef/d5bdb705c224dbc256aa0c1ec47bf4e61ec52558f2afb44a71a1fe4d7015/watchfiles-1.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f34e26a19f91f710c08e0183429f0d1d15df734e6bc78c31e77b9ea9c433658", size = 452989, upload_time = "2026-05-18T04:31:11.945Z" }, + { url = "https://files.pythonhosted.org/packages/71/29/5495f2c1661949ef7a35e4d71111d129cfe7606414a26887a919d0a55406/watchfiles-1.2.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b4e77f6a55f858504069abd35d336a637555c09bca453dde1ee1e5ada8a6a1fb", size = 458978, upload_time = "2026-05-18T04:30:52.606Z" }, + { url = "https://files.pythonhosted.org/packages/d5/8c/7f9c07c433811c2fffd93e13fdfb7135de9aab5f2ae41be08960fa0047dc/watchfiles-1.2.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0cb4d80e212f116474a545c21c912b445f16bb0cef9e6a73a498164223e14e2f", size = 490248, upload_time = "2026-05-18T04:31:36.003Z" }, + { url = "https://files.pythonhosted.org/packages/3c/11/d93632febc52fbc21be90231bb7c17fd5387f46c9076fd40a5f9c2ae6910/watchfiles-1.2.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b974946a10af379d425e2eef5b62f5c6ebeaccf91d45eaad6f5b27ecd4f91aa0", size = 571847, upload_time = "2026-05-18T04:31:10.862Z" }, + { url = "https://files.pythonhosted.org/packages/55/b4/383173e73aabb07ad1d9c7aa859d95437ac46a6d6a1e11005facda0c9d19/watchfiles-1.2.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:86bc13c25a8d1fcd70b51d0ce7c9b65e90de5666fcbfd3e34957cc73ee19aeb5", size = 465974, upload_time = "2026-05-18T04:30:17.006Z" }, + { url = "https://files.pythonhosted.org/packages/a7/6c/89b1a230a78f57c52dd8893adb1f92f94411721b6ec12596c56d98c74356/watchfiles-1.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ca148d73dea36c9763aaa351e4d7a51780ec1584217c45276f4fe8239c768b71", size = 454782, upload_time = "2026-05-18T04:30:35.656Z" }, + { url = "https://files.pythonhosted.org/packages/24/62/1732118367cfff0a9fce3bf62ff4bfded09ef5df21d9d446b858b3f70a96/watchfiles-1.2.0-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:c525543d91961c6955b2636b308569e84a1d1c5f5f2932041ab9ef46422f43e3", size = 465182, upload_time = "2026-05-18T04:30:20.846Z" }, + { url = "https://files.pythonhosted.org/packages/28/96/716f7e5f51339bf22963f3345f9f27d7f3b30e2eadc597e257c881dd3c53/watchfiles-1.2.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:a204794696ffb8f9b10fba6f7cb5216d42f3b2b71860ccac6b6e42f5f10973b0", size = 629841, upload_time = "2026-05-18T04:31:05.397Z" }, + { url = "https://files.pythonhosted.org/packages/4c/fe/c40783950fd771ccf66ab3ec2722d188a9af1c7f96c6e811f36e40c6e03f/watchfiles-1.2.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:10d86db20695afe7997ac9e1717637d6714a8d0220458c33f3d2061f54cec427", size = 658028, upload_time = "2026-05-18T04:31:48.22Z" }, + { url = "https://files.pythonhosted.org/packages/71/72/4508db1856d1d87fcbb3b63f4839bab1b5682cb0e8d224d122263c09654a/watchfiles-1.2.0-cp313-cp313-win32.whl", hash = "sha256:eb283ee99e21ad6443c8cdb06ac5b34b1308c329cbdf03fa02b445363714c799", size = 275183, upload_time = "2026-05-18T04:30:59.57Z" }, + { url = "https://files.pythonhosted.org/packages/f9/36/14b76ca57652e5cc5fd1c11f32a261292c08a0d19a00351013c2549cbfb2/watchfiles-1.2.0-cp313-cp313-win_amd64.whl", hash = "sha256:a0f27f01bee51861392bb6b7c4fdb290b27d1eb194e9e28788d68102a0e898d9", size = 288059, upload_time = "2026-05-18T04:32:07.937Z" }, + { url = "https://files.pythonhosted.org/packages/1b/8d/0a85e395398d8d20fadfe5c5d32c726eee17a519e78fb356f2cf7531bffe/watchfiles-1.2.0-cp313-cp313-win_arm64.whl", hash = "sha256:3651aa7058595e9cfb75d35dd5ada2bf9f48a5b8a0f3562821d3e210c507e077", size = 280186, upload_time = "2026-05-18T04:31:54.484Z" }, + { url = "https://files.pythonhosted.org/packages/37/68/36db056f1fdcc5f07302f56e631774d6835bcd6fa3ace402304621d5f9e5/watchfiles-1.2.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:faea288b6f0ab1902ef08f4ca6de005dccf856c4e0c4f21b8c5fce02d90a1b08", size = 399031, upload_time = "2026-05-18T04:30:44.576Z" }, + { url = "https://files.pythonhosted.org/packages/c1/64/01a9d6f66a82a5c101ce939274106cc72759d62427e153f01edd2b9f87c2/watchfiles-1.2.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:01859b11fd9fbca670f4d5da00fbac282cfea9bd67a2125d8b2833a3b5617ea9", size = 391205, upload_time = "2026-05-18T04:30:25.413Z" }, + { url = "https://files.pythonhosted.org/packages/84/2c/0a44fe058cb4bb7b8ede6b6670698bbb7c0400740e378d00022189b7b31d/watchfiles-1.2.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fff610d7bb2256a317bb1e96f0d7862c7aa8076733ee5df0fd41bbe76a24a4f4", size = 451892, upload_time = "2026-05-18T04:32:14.005Z" }, + { url = "https://files.pythonhosted.org/packages/67/a1/351e0d56cd35e6488b5c8b4fb11a809a5bc923e8fe8fed9faf8920be0c89/watchfiles-1.2.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b141a4891c995a039cd89e9a49e62df1dc8a559a5d1a6e4c7106d16c12777a55", size = 458867, upload_time = "2026-05-18T04:31:22.279Z" }, + { url = "https://files.pythonhosted.org/packages/d5/7d/9d09605187f1b838998624049fcf8bf47b73c1a3b76901fcac1782f62277/watchfiles-1.2.0-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f22943b7770483f6ea0721c6b11d022947a98eb0acae14694de034f4d0d38925", size = 490217, upload_time = "2026-05-18T04:31:43.657Z" }, + { url = "https://files.pythonhosted.org/packages/60/5d/a17a16eccb182f04188cd308ec24b1a71a9b5c4e7098269cf35d9fa56d02/watchfiles-1.2.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1bc6195825b7dcd217968bb1f801a60fd4c16e8eeab5bedc7fe917d7d5995ab4", size = 571458, upload_time = "2026-05-18T04:32:11.875Z" }, + { url = "https://files.pythonhosted.org/packages/d3/3d/4dd457062083ab1938e5dfd45032eb425cee2ac817287ca8ff4356183e5d/watchfiles-1.2.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d4a4b147f5dca2a5d325a06a832fb43f345751adfbc63204aec30e0d9ca965a2", size = 464707, upload_time = "2026-05-18T04:30:43.492Z" }, + { url = "https://files.pythonhosted.org/packages/c6/71/ea8c57b128f5383de74d0c7d2d9c57ad7c9a65a930c451bd25d524b295b7/watchfiles-1.2.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4543579a9bdb0c9560039b4ffddbdb39545707659fbc430ce4c10f3f68d557f9", size = 454663, upload_time = "2026-05-18T04:30:16.061Z" }, + { url = "https://files.pythonhosted.org/packages/53/fd/2e812bf938406d7db351f0703ddd3fc6c061cf30d96153a77bc79a943a44/watchfiles-1.2.0-cp313-cp313t-manylinux_2_31_riscv64.whl", hash = "sha256:20aa0e708b920bde876a4aa82dc7dd6ebea228a63a67cda6632c2fc87b787efa", size = 463537, upload_time = "2026-05-18T04:31:44.9Z" }, + { url = "https://files.pythonhosted.org/packages/86/56/d17a7f1dd1bc3035f1072694a551301272f1739c2d8e319c927cb9e29b38/watchfiles-1.2.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:d413349d565dab74297f2a63e84a097936be69bf8f3b3801f27f380e32040f44", size = 629194, upload_time = "2026-05-18T04:31:14.141Z" }, + { url = "https://files.pythonhosted.org/packages/be/06/f1ff66bf5cae50aa4062779a0ecd0bbaf15e466195719074078947d9a17d/watchfiles-1.2.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:f28b2725eb8cce327b9b3ab02415c853011dc55c95832fe90de6bc56f5315f72", size = 656194, upload_time = "2026-05-18T04:31:47.14Z" }, + { url = "https://files.pythonhosted.org/packages/e7/54/a9c7ea9a82a4ac65e7004c0a03920b5cdd2f9c3b678757d9cd425aa51d53/watchfiles-1.2.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:b8c8358484d5fa12ef34f05b7f4168eaf1932f408725ff6d023c33ec17bd79d4", size = 400205, upload_time = "2026-05-18T04:32:05.153Z" }, + { url = "https://files.pythonhosted.org/packages/aa/5d/c9ab3534374a4a67450696905d6ef16a04405448b8dc52bd752ae50423d4/watchfiles-1.2.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:9f04b092229ad2c50126dd3c922c8822e51e605993764a33058d4a791ab42281", size = 392508, upload_time = "2026-05-18T04:30:54.849Z" }, + { url = "https://files.pythonhosted.org/packages/26/ca/1ad30103535cf0cecd7b993e8d50edc5351b1820e38f2d22e3df58962feb/watchfiles-1.2.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7a7ce236284f002a156f70add88efe5c70879cccbb658be0822c54b1306fc09d", size = 452448, upload_time = "2026-05-18T04:30:53.727Z" }, + { url = "https://files.pythonhosted.org/packages/37/a1/ceee2cdf2afbd715fa07758d39c9859513eae411b23196f7fd039e5feedd/watchfiles-1.2.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b9909cc2b48468b575eefa944919e1fe8a36c5849d5c7c168f80a8c1db69398e", size = 459605, upload_time = "2026-05-18T04:30:23.312Z" }, + { url = "https://files.pythonhosted.org/packages/e8/f6/421e30fd1cb3907a84ed92ab3f1983e37ba2dca015e9a894a048418417a2/watchfiles-1.2.0-cp314-cp314-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a37faaed405c67e28e6be45a1fa4f206ef5a2860f27c237db9fa30704c38242", size = 490757, upload_time = "2026-05-18T04:30:47.358Z" }, + { url = "https://files.pythonhosted.org/packages/41/b0/55ed1b97ed08be7bba6f9a541cac15f2a858e1d74d2b07b6da70a82aab00/watchfiles-1.2.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9649193aa27bd9ff2e80ff29bfaa93085496c7a3a377592823cc58b77ee88add", size = 568672, upload_time = "2026-05-18T04:30:38.915Z" }, + { url = "https://files.pythonhosted.org/packages/d1/cf/d8ae8a80dd7bafab395ea7681c10237311bbf34d37704a8c744e7cf31fc7/watchfiles-1.2.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4e4ff8e37f99cf1da89e255e07c9c4b37c214038c4283707bdec308cb1b0ea1f", size = 464197, upload_time = "2026-05-18T04:30:09.914Z" }, + { url = "https://files.pythonhosted.org/packages/7c/8a/3076c496ca8dafe0e8cd03fcebdfc47be4b1174b4e5b24ff6e396e6b3af2/watchfiles-1.2.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:054dc20fd2e3132b4c3883b4a00d72fd6e1f56fdaf89fccd12e8057d74cd74d7", size = 453181, upload_time = "2026-05-18T04:30:14.829Z" }, + { url = "https://files.pythonhosted.org/packages/e5/10/9745e17c98e7b8a86454df0a3c7b5686bd650383f1e9f26e4ebcbd6cc0c0/watchfiles-1.2.0-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:e140ed30ebde76796b686e67c182cff10ea2fbab186fafd1560f74bb5a473a6e", size = 465109, upload_time = "2026-05-18T04:30:28.123Z" }, + { url = "https://files.pythonhosted.org/packages/8f/95/8ef4a95481d3e0cb52d62a06fa6e972e81424be2d9698b91a2fecca9904c/watchfiles-1.2.0-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:bb7e52ecf68ba46d22df23467b87cffeb2146908aa523ebfe803019618cfda06", size = 630653, upload_time = "2026-05-18T04:31:49.304Z" }, + { url = "https://files.pythonhosted.org/packages/fd/e4/3b3bf36b0f829b50c6ebcb8d031583863c59f923d6a6af3d485e470d0fac/watchfiles-1.2.0-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:23282a321c8baf9b3a3c4afff673f9fe65eb7fdc2338d765ccad9d3d1916a5ba", size = 657838, upload_time = "2026-05-18T04:31:06.497Z" }, + { url = "https://files.pythonhosted.org/packages/21/b1/6cbbb50c1f3002ab568777d44aa21206dfb8807a840990c4037523b51812/watchfiles-1.2.0-cp314-cp314-win32.whl", hash = "sha256:c0db965c5f79aa49fe672d297cf1febc5ad149b658594944f49a54a2b96270a7", size = 275108, upload_time = "2026-05-18T04:30:06.891Z" }, + { url = "https://files.pythonhosted.org/packages/92/45/190ce6db8dcb4536682cf75d3889ff1a27182a58cb519d343cb6d9ea63d8/watchfiles-1.2.0-cp314-cp314-win_amd64.whl", hash = "sha256:71283b39fd17e5408eb123bd37aeecfd9d54c81fc184421943208aadb879d103", size = 288441, upload_time = "2026-05-18T04:32:12.901Z" }, + { url = "https://files.pythonhosted.org/packages/74/0d/3eae1c2313ab08378431d907c3f8095ecca00f3eda33111cf4f0f2591799/watchfiles-1.2.0-cp314-cp314-win_arm64.whl", hash = "sha256:c5c19526f4e54a00f2666a6c0e9e40d582c09e865055ea7378bf0009aab857b3", size = 280684, upload_time = "2026-05-18T04:31:26.902Z" }, + { url = "https://files.pythonhosted.org/packages/b1/75/fb64e6c25d6b5ca636d03df34ffb1c6e9873303e76d27967e045f8df088f/watchfiles-1.2.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:d73a585accffa5ae39c17264c36ec3166d2fad7000c780f5ef83b2722afb9dd2", size = 398857, upload_time = "2026-05-18T04:32:17.108Z" }, + { url = "https://files.pythonhosted.org/packages/73/4e/9f7adf01754cbf81843722ccfec169d8f26c69778281a302855cecd2ee08/watchfiles-1.2.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:ae99b14c5f21e026e0e9d96f40e07d8570ebee6cafd9d8fc318354606daa7a28", size = 392413, upload_time = "2026-05-18T04:31:07.911Z" }, + { url = "https://files.pythonhosted.org/packages/47/c8/bec626bcc2d69f44b9acb24ce7d60ed7b16b73628eea747fcbd169d8edda/watchfiles-1.2.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4429f3b105524a10b72c3a819b091c495d2811d419c1e1e8df773a5a5974f831", size = 452409, upload_time = "2026-05-18T04:31:20.142Z" }, + { url = "https://files.pythonhosted.org/packages/00/b7/b6362068e81e7c556d155a34c35d40ac3ef42d747b06d7f6e5bf58e359c2/watchfiles-1.2.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:43d818978d06062d9b22c4fab2ebe44cf5213d42dc8e62bda8c2760cfa2eeb33", size = 458827, upload_time = "2026-05-18T04:32:06.219Z" }, + { url = "https://files.pythonhosted.org/packages/67/f8/9a813fa42afb1e0b4625e75f0479826644d3ee8dc287e093799bc01f390c/watchfiles-1.2.0-cp314-cp314t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b9f732dc58b2dbe69e464ccf8fff7a03b0dd0be439da4c0720d3558527d3d6b4", size = 490104, upload_time = "2026-05-18T04:31:56.034Z" }, + { url = "https://files.pythonhosted.org/packages/2f/bf/27dfb6094ca4c9aad21298b5525b6c53cb36121ee454331d05161e58d130/watchfiles-1.2.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8f200104103feb097de4cab8fe4f5dd18a2026934c7dea98c55a2f5fd6d5a33b", size = 571360, upload_time = "2026-05-18T04:31:57.133Z" }, + { url = "https://files.pythonhosted.org/packages/fb/39/44a096d67270ea93df91d33877dbe91fbda3aa4f8ec2edf799d93eda8736/watchfiles-1.2.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:63ac26eefbf4af1741247d6fb68b11c49a25b2f7413fbd318a83a12aaa9cf666", size = 464644, upload_time = "2026-05-18T04:30:57.33Z" }, + { url = "https://files.pythonhosted.org/packages/0e/80/c7472203bad6268e3ef1ad260739704847898938ad7ea8b63a5131f46b50/watchfiles-1.2.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c4997d4e4a55f0d02b6cde327322daf3a0400e5df6c6b15948994bf72497925", size = 454771, upload_time = "2026-05-18T04:30:48.736Z" }, + { url = "https://files.pythonhosted.org/packages/51/cf/3b10b268b4b7f0fc26e9debb5eef1998b515887840f444cd3ec80c688755/watchfiles-1.2.0-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:4c887eba18b7945ac73067a8b4a66f21cd46c2539b2bc68588f7be6c7eb6d26b", size = 463494, upload_time = "2026-05-18T04:31:33.826Z" }, + { url = "https://files.pythonhosted.org/packages/3d/3e/a4302545cd589262a0dc7d140e86f7688eba3f9c72776c27f7e23b8864c4/watchfiles-1.2.0-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:3416ff151bb6b5a8d8d11664974fbef4d9305b9b2957839ab5a270468fd8df30", size = 629383, upload_time = "2026-05-18T04:31:15.596Z" }, + { url = "https://files.pythonhosted.org/packages/db/99/d5649df0a9a410d45b7c882304d0b790903ac9b6e8f2cfd12114e0c6b9f2/watchfiles-1.2.0-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:0e831a271c035d89789cffc386b6aa1375f39f1cd25eb7ca0997e4970d152fc5", size = 656093, upload_time = "2026-05-18T04:31:58.707Z" }, + { url = "https://files.pythonhosted.org/packages/92/b9/362702539275019a54dd2e94511b31a9b89c5f9e6a21966de7eb692549fc/watchfiles-1.2.0-cp315-cp315-macosx_10_12_x86_64.whl", hash = "sha256:37a6721cdf3f65dbb13aa9503510ccb4451603ac837e44d265d7992a597e1374", size = 400109, upload_time = "2026-05-18T04:31:16.879Z" }, + { url = "https://files.pythonhosted.org/packages/8f/75/71d5ba62db781e5587bded1d944c675374bc4aa37ff33d5018d98e8b6538/watchfiles-1.2.0-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:2b37d10b5a63bd4d87e18472d80fa525bd670586fae62e5dd580452764879b65", size = 392167, upload_time = "2026-05-18T04:31:28.058Z" }, + { url = "https://files.pythonhosted.org/packages/3c/01/c66dd95d0423fe30d31820e2d1d5bda773764131bbb6ac0cb1cf303ac328/watchfiles-1.2.0-cp315-cp315-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a105bc2283f67e8fbec74253ec2d94925de92ed72c0393f1206bf326b7b7b69", size = 452372, upload_time = "2026-05-18T04:31:00.836Z" }, + { url = "https://files.pythonhosted.org/packages/91/15/2fe99557e72f85627c6a8eed50d889e8d101623e060a22ad75b875cb932d/watchfiles-1.2.0-cp315-cp315-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5327989a465505f05cfe06f04fa9d0c2fd5432bb243e10e6f012b1bdca3c8579", size = 459596, upload_time = "2026-05-18T04:31:34.96Z" }, + { url = "https://files.pythonhosted.org/packages/ed/23/d4acfa0023367428ed48351b3b9b267893037b6cadae55620c61c24bcfd4/watchfiles-1.2.0-cp315-cp315-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ecb47f183a8025b2aa18b546725c3657e542112ae9c0613a2af79b4fa8d04ad7", size = 490869, upload_time = "2026-05-18T04:31:59.923Z" }, + { url = "https://files.pythonhosted.org/packages/a4/5f/3164cbdce06c9fb95c4f7b9e2f9760b5e2797af43a9ecc317ef42a23a278/watchfiles-1.2.0-cp315-cp315-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8520a4ab0e37f770afc34459c4f8f7019e153f9124dc101c15538365875d1ab2", size = 571641, upload_time = "2026-05-18T04:32:00.948Z" }, + { url = "https://files.pythonhosted.org/packages/41/e6/85d3731c55e65cd7690f3f803d24c139588aaf863e4bf2148fe7a7fa1a19/watchfiles-1.2.0-cp315-cp315-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:71cd71740ed2c15211ebb237ced4e39a1cdf6f80566e5fe95428da1626f4fde6", size = 464444, upload_time = "2026-05-18T04:30:34.298Z" }, + { url = "https://files.pythonhosted.org/packages/f4/7d/562641012b8b09872742c3b8adf9629ec479fd78f8d68ae4a0c13da8add6/watchfiles-1.2.0-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f88af53d6ddaf72179ef613ddc905e6f4785f712b49b80b3bef9f3525e6194b4", size = 453593, upload_time = "2026-05-18T04:31:23.464Z" }, + { url = "https://files.pythonhosted.org/packages/56/fe/cb8ef3d6f929d14158fdaaad9925985b7310abc9384dcd4d82dd0016fb59/watchfiles-1.2.0-cp315-cp315-manylinux_2_31_riscv64.whl", hash = "sha256:cee9d5efd929efdac5f7e58f72b3376f676b64050a91c5b99a7094c5b2317488", size = 465096, upload_time = "2026-05-18T04:31:30.384Z" }, + { url = "https://files.pythonhosted.org/packages/25/91/80908e835e100527a9267147b08c0eee1fa6ab0ffec15edc04d1d44885f7/watchfiles-1.2.0-cp315-cp315-musllinux_1_1_aarch64.whl", hash = "sha256:b718bf356bbc15e559bd8ef41782b573b8ae0e3f177ab244b440568d7ea02cfb", size = 630638, upload_time = "2026-05-18T04:30:49.89Z" }, + { url = "https://files.pythonhosted.org/packages/46/4b/95ab2f256bb4af3cb2eb23b9317bda984ee6e0f11733a5c004a6c95b06e3/watchfiles-1.2.0-cp315-cp315-musllinux_1_1_x86_64.whl", hash = "sha256:922c0e019fe68b3ae392965a766b02a71ba1168c932cebc3733cd52c5fe5b377", size = 657684, upload_time = "2026-05-18T04:31:32.027Z" }, +] + +[[package]] +name = "websockets" +version = "16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/04/24/4b2031d72e840ce4c1ccb255f693b15c334757fc50023e4db9537080b8c4/websockets-16.0.tar.gz", hash = "sha256:5f6261a5e56e8d5c42a4497b364ea24d94d9563e8fbd44e78ac40879c60179b5", size = 179346, upload_time = "2026-01-10T09:23:47.181Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cc/9c/baa8456050d1c1b08dd0ec7346026668cbc6f145ab4e314d707bb845bf0d/websockets-16.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:878b336ac47938b474c8f982ac2f7266a540adc3fa4ad74ae96fea9823a02cc9", size = 177364, upload_time = "2026-01-10T09:22:59.333Z" }, + { url = "https://files.pythonhosted.org/packages/7e/0c/8811fc53e9bcff68fe7de2bcbe75116a8d959ac699a3200f4847a8925210/websockets-16.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:52a0fec0e6c8d9a784c2c78276a48a2bdf099e4ccc2a4cad53b27718dbfd0230", size = 175039, upload_time = "2026-01-10T09:23:01.171Z" }, + { url = "https://files.pythonhosted.org/packages/aa/82/39a5f910cb99ec0b59e482971238c845af9220d3ab9fa76dd9162cda9d62/websockets-16.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e6578ed5b6981005df1860a56e3617f14a6c307e6a71b4fff8c48fdc50f3ed2c", size = 175323, upload_time = "2026-01-10T09:23:02.341Z" }, + { url = "https://files.pythonhosted.org/packages/bd/28/0a25ee5342eb5d5f297d992a77e56892ecb65e7854c7898fb7d35e9b33bd/websockets-16.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:95724e638f0f9c350bb1c2b0a7ad0e83d9cc0c9259f3ea94e40d7b02a2179ae5", size = 184975, upload_time = "2026-01-10T09:23:03.756Z" }, + { url = "https://files.pythonhosted.org/packages/f9/66/27ea52741752f5107c2e41fda05e8395a682a1e11c4e592a809a90c6a506/websockets-16.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c0204dc62a89dc9d50d682412c10b3542d748260d743500a85c13cd1ee4bde82", size = 186203, upload_time = "2026-01-10T09:23:05.01Z" }, + { url = "https://files.pythonhosted.org/packages/37/e5/8e32857371406a757816a2b471939d51c463509be73fa538216ea52b792a/websockets-16.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:52ac480f44d32970d66763115edea932f1c5b1312de36df06d6b219f6741eed8", size = 185653, upload_time = "2026-01-10T09:23:06.301Z" }, + { url = "https://files.pythonhosted.org/packages/9b/67/f926bac29882894669368dc73f4da900fcdf47955d0a0185d60103df5737/websockets-16.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6e5a82b677f8f6f59e8dfc34ec06ca6b5b48bc4fcda346acd093694cc2c24d8f", size = 184920, upload_time = "2026-01-10T09:23:07.492Z" }, + { url = "https://files.pythonhosted.org/packages/3c/a1/3d6ccdcd125b0a42a311bcd15a7f705d688f73b2a22d8cf1c0875d35d34a/websockets-16.0-cp313-cp313-win32.whl", hash = "sha256:abf050a199613f64c886ea10f38b47770a65154dc37181bfaff70c160f45315a", size = 178255, upload_time = "2026-01-10T09:23:09.245Z" }, + { url = "https://files.pythonhosted.org/packages/6b/ae/90366304d7c2ce80f9b826096a9e9048b4bb760e44d3b873bb272cba696b/websockets-16.0-cp313-cp313-win_amd64.whl", hash = "sha256:3425ac5cf448801335d6fdc7ae1eb22072055417a96cc6b31b3861f455fbc156", size = 178689, upload_time = "2026-01-10T09:23:10.483Z" }, + { url = "https://files.pythonhosted.org/packages/f3/1d/e88022630271f5bd349ed82417136281931e558d628dd52c4d8621b4a0b2/websockets-16.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:8cc451a50f2aee53042ac52d2d053d08bf89bcb31ae799cb4487587661c038a0", size = 177406, upload_time = "2026-01-10T09:23:12.178Z" }, + { url = "https://files.pythonhosted.org/packages/f2/78/e63be1bf0724eeb4616efb1ae1c9044f7c3953b7957799abb5915bffd38e/websockets-16.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:daa3b6ff70a9241cf6c7fc9e949d41232d9d7d26fd3522b1ad2b4d62487e9904", size = 175085, upload_time = "2026-01-10T09:23:13.511Z" }, + { url = "https://files.pythonhosted.org/packages/bb/f4/d3c9220d818ee955ae390cf319a7c7a467beceb24f05ee7aaaa2414345ba/websockets-16.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:fd3cb4adb94a2a6e2b7c0d8d05cb94e6f1c81a0cf9dc2694fb65c7e8d94c42e4", size = 175328, upload_time = "2026-01-10T09:23:14.727Z" }, + { url = "https://files.pythonhosted.org/packages/63/bc/d3e208028de777087e6fb2b122051a6ff7bbcca0d6df9d9c2bf1dd869ae9/websockets-16.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:781caf5e8eee67f663126490c2f96f40906594cb86b408a703630f95550a8c3e", size = 185044, upload_time = "2026-01-10T09:23:15.939Z" }, + { url = "https://files.pythonhosted.org/packages/ad/6e/9a0927ac24bd33a0a9af834d89e0abc7cfd8e13bed17a86407a66773cc0e/websockets-16.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:caab51a72c51973ca21fa8a18bd8165e1a0183f1ac7066a182ff27107b71e1a4", size = 186279, upload_time = "2026-01-10T09:23:17.148Z" }, + { url = "https://files.pythonhosted.org/packages/b9/ca/bf1c68440d7a868180e11be653c85959502efd3a709323230314fda6e0b3/websockets-16.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:19c4dc84098e523fd63711e563077d39e90ec6702aff4b5d9e344a60cb3c0cb1", size = 185711, upload_time = "2026-01-10T09:23:18.372Z" }, + { url = "https://files.pythonhosted.org/packages/c4/f8/fdc34643a989561f217bb477cbc47a3a07212cbda91c0e4389c43c296ebf/websockets-16.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:a5e18a238a2b2249c9a9235466b90e96ae4795672598a58772dd806edc7ac6d3", size = 184982, upload_time = "2026-01-10T09:23:19.652Z" }, + { url = "https://files.pythonhosted.org/packages/dd/d1/574fa27e233764dbac9c52730d63fcf2823b16f0856b3329fc6268d6ae4f/websockets-16.0-cp314-cp314-win32.whl", hash = "sha256:a069d734c4a043182729edd3e9f247c3b2a4035415a9172fd0f1b71658a320a8", size = 177915, upload_time = "2026-01-10T09:23:21.458Z" }, + { url = "https://files.pythonhosted.org/packages/8a/f1/ae6b937bf3126b5134ce1f482365fde31a357c784ac51852978768b5eff4/websockets-16.0-cp314-cp314-win_amd64.whl", hash = "sha256:c0ee0e63f23914732c6d7e0cce24915c48f3f1512ec1d079ed01fc629dab269d", size = 178381, upload_time = "2026-01-10T09:23:22.715Z" }, + { url = "https://files.pythonhosted.org/packages/06/9b/f791d1db48403e1f0a27577a6beb37afae94254a8c6f08be4a23e4930bc0/websockets-16.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:a35539cacc3febb22b8f4d4a99cc79b104226a756aa7400adc722e83b0d03244", size = 177737, upload_time = "2026-01-10T09:23:24.523Z" }, + { url = "https://files.pythonhosted.org/packages/bd/40/53ad02341fa33b3ce489023f635367a4ac98b73570102ad2cdd770dacc9a/websockets-16.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:b784ca5de850f4ce93ec85d3269d24d4c82f22b7212023c974c401d4980ebc5e", size = 175268, upload_time = "2026-01-10T09:23:25.781Z" }, + { url = "https://files.pythonhosted.org/packages/74/9b/6158d4e459b984f949dcbbb0c5d270154c7618e11c01029b9bbd1bb4c4f9/websockets-16.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:569d01a4e7fba956c5ae4fc988f0d4e187900f5497ce46339c996dbf24f17641", size = 175486, upload_time = "2026-01-10T09:23:27.033Z" }, + { url = "https://files.pythonhosted.org/packages/e5/2d/7583b30208b639c8090206f95073646c2c9ffd66f44df967981a64f849ad/websockets-16.0-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:50f23cdd8343b984957e4077839841146f67a3d31ab0d00e6b824e74c5b2f6e8", size = 185331, upload_time = "2026-01-10T09:23:28.259Z" }, + { url = "https://files.pythonhosted.org/packages/45/b0/cce3784eb519b7b5ad680d14b9673a31ab8dcb7aad8b64d81709d2430aa8/websockets-16.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:152284a83a00c59b759697b7f9e9cddf4e3c7861dd0d964b472b70f78f89e80e", size = 186501, upload_time = "2026-01-10T09:23:29.449Z" }, + { url = "https://files.pythonhosted.org/packages/19/60/b8ebe4c7e89fb5f6cdf080623c9d92789a53636950f7abacfc33fe2b3135/websockets-16.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:bc59589ab64b0022385f429b94697348a6a234e8ce22544e3681b2e9331b5944", size = 186062, upload_time = "2026-01-10T09:23:31.368Z" }, + { url = "https://files.pythonhosted.org/packages/88/a8/a080593f89b0138b6cba1b28f8df5673b5506f72879322288b031337c0b8/websockets-16.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:32da954ffa2814258030e5a57bc73a3635463238e797c7375dc8091327434206", size = 185356, upload_time = "2026-01-10T09:23:32.627Z" }, + { url = "https://files.pythonhosted.org/packages/c2/b6/b9afed2afadddaf5ebb2afa801abf4b0868f42f8539bfe4b071b5266c9fe/websockets-16.0-cp314-cp314t-win32.whl", hash = "sha256:5a4b4cc550cb665dd8a47f868c8d04c8230f857363ad3c9caf7a0c3bf8c61ca6", size = 178085, upload_time = "2026-01-10T09:23:33.816Z" }, + { url = "https://files.pythonhosted.org/packages/9f/3e/28135a24e384493fa804216b79a6a6759a38cc4ff59118787b9fb693df93/websockets-16.0-cp314-cp314t-win_amd64.whl", hash = "sha256:b14dc141ed6d2dde437cddb216004bcac6a1df0935d79656387bd41632ba0bbd", size = 178531, upload_time = "2026-01-10T09:23:35.016Z" }, + { url = "https://files.pythonhosted.org/packages/6f/28/258ebab549c2bf3e64d2b0217b973467394a9cea8c42f70418ca2c5d0d2e/websockets-16.0-py3-none-any.whl", hash = "sha256:1637db62fad1dc833276dded54215f2c7fa46912301a24bd94d45d46a011ceec", size = 171598, upload_time = "2026-01-10T09:23:45.395Z" }, +] From b1272e828693b084fc48ac99db6156d69ee95f64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Luis=20Castro?= Date: Tue, 30 Jun 2026 17:28:16 -0600 Subject: [PATCH 02/23] added security token authn MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: José Luis Castro --- .../README.md | 26 ++++++- .../oci_oracle_db_observability/v1/auth.py | 27 +++++-- .../tests/test_auth_and_server.py | 72 +++++++++++++++++++ .../v1/oci_dbm_mcp_server/tools.py | 1 - 4 files changed, 116 insertions(+), 10 deletions(-) diff --git a/src/oci-oracle-db-observability-mcp-server/README.md b/src/oci-oracle-db-observability-mcp-server/README.md index 17d18ded..b4635f42 100644 --- a/src/oci-oracle-db-observability-mcp-server/README.md +++ b/src/oci-oracle-db-observability-mcp-server/README.md @@ -10,10 +10,21 @@ Database Management (DBM). ### STDIO transport mode +Use the default OCI CLI profile: + ```sh uvx oracle.oci-opsi-mcp-server ``` +Use a named OCI CLI profile: + +```sh +OCI_CONFIG_PROFILE= uvx oracle.oci-opsi-mcp-server +``` + +Set `OCI_CONFIG_FILE=` when the profile is not in the default OCI config file. +STDIO supports OCI CLI API-key profiles and session-token profiles. + ### HTTP streaming transport mode ```sh @@ -35,10 +46,21 @@ If `IDCS_REQUIRED_SCOPES` is unset, the default is `openid profile email oci_mcp ### STDIO transport mode +Use the default OCI CLI profile: + ```sh uvx oracle.oci-dbm-mcp-server ``` +Use a named OCI CLI profile: + +```sh +OCI_CONFIG_PROFILE= uvx oracle.oci-dbm-mcp-server +``` + +Set `OCI_CONFIG_FILE=` when the profile is not in the default OCI config file. +STDIO supports OCI CLI API-key profiles and session-token profiles. + ### HTTP streaming transport mode ```sh @@ -83,8 +105,8 @@ uv run oci-oracle-db-observability-mcp-server-generate-opsi --spec-file None: assert client.kwargs["signer"] == "SECURITY_TOKEN:private-key" +def test_stdio_build_client_uses_api_key_config_without_explicit_signer(monkeypatch, tmp_path) -> None: + validate_calls = [] + key_file = tmp_path / "oci.pem" + monkeypatch.delenv("ORACLE_MCP_HOST", raising=False) + monkeypatch.delenv("ORACLE_MCP_PORT", raising=False) + monkeypatch.setattr( + auth.oci.config, + "from_file", + lambda file_location, profile_name: { + "region": "us-phoenix-1", + "tenancy": "ocid1.tenancy.oc1..example", + "user": "ocid1.user.oc1..example", + "fingerprint": "00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00", + "key_file": str(key_file), + }, + ) + monkeypatch.setattr(auth.oci.config, "validate_config", lambda config: validate_calls.append(config.copy())) + monkeypatch.setattr( + auth.oci.signer, + "load_private_key_from_file", + lambda key_file: (_ for _ in ()).throw(AssertionError("API-key auth should use the SDK signer")), + ) + + client = auth.build_client( + lambda config, **kwargs: SimpleNamespace(config=config, kwargs=kwargs), + project="oracle.oci-dbm-mcp-server", + version="1.0.0", + logger=TEST_LOGGER, + ) + + assert client.config["region"] == "us-phoenix-1" + assert client.config["additional_user_agent"] == "oci-dbm/1.0.0" + assert "signer" not in client.kwargs + assert validate_calls == [client.config] + + +def test_get_oci_config_uses_explicit_profile(monkeypatch) -> None: + calls = [] + monkeypatch.delenv("ORACLE_MCP_HOST", raising=False) + monkeypatch.delenv("ORACLE_MCP_PORT", raising=False) + monkeypatch.setenv("OCI_CONFIG_FILE", "custom-config") + monkeypatch.setenv("OCI_CONFIG_PROFILE", "MYPROFILE") + monkeypatch.setattr( + auth.oci.config, + "from_file", + lambda file_location, profile_name: calls.append((file_location, profile_name)) or {"region": "us-phoenix-1"}, + ) + + config = auth.get_oci_config("oracle.oci-dbm-mcp-server", "1.0.0") + + assert calls == [("custom-config", "MYPROFILE")] + assert config["additional_user_agent"] == "oci-dbm/1.0.0" + + +def test_get_oci_config_uses_default_profile(monkeypatch) -> None: + calls = [] + monkeypatch.delenv("ORACLE_MCP_HOST", raising=False) + monkeypatch.delenv("ORACLE_MCP_PORT", raising=False) + monkeypatch.delenv("OCI_CONFIG_FILE", raising=False) + monkeypatch.delenv("OCI_CONFIG_PROFILE", raising=False) + monkeypatch.setattr( + auth.oci.config, + "from_file", + lambda file_location, profile_name: calls.append((file_location, profile_name)) or {"region": "us-phoenix-1"}, + ) + + config = auth.get_oci_config("oracle.oci-dbm-mcp-server", "1.0.0") + + assert calls == [(auth.oci.config.DEFAULT_LOCATION, auth.oci.config.DEFAULT_PROFILE)] + assert config["additional_user_agent"] == "oci-dbm/1.0.0" + + def test_http_build_client_uses_dbm_user_agent(monkeypatch) -> None: monkeypatch.setenv("ORACLE_MCP_HOST", "127.0.0.1") monkeypatch.setenv("ORACLE_MCP_PORT", "8888") diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tools.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tools.py index 2b9ae5f1..65ee1f1d 100644 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tools.py +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tools.py @@ -4381,4 +4381,3 @@ def update_tablespace( managed_database_id=managed_database_id, tablespace_name=tablespace_name, update_tablespace_details=update_tablespace_details,) - From 70b3cfebc10d3e7aea2e1f42994e5082c2dbdcdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Luis=20Castro=20Garc=C3=ADa?= Date: Wed, 29 Jul 2026 12:12:12 -0600 Subject: [PATCH 03/23] MCP refactoring MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: José Luis Castro García --- .../README.md | 120 +- .../oci_oracle_db_observability/__init__.py | 4 +- .../oracle/oci_oracle_db_observability/mcp.py | 140 + .../metadata/manifest.json | 6 + .../metadata/skills.json | 423 + .../metadata/tools.json | 11595 ++++++++++++++++ .../oci_oracle_db_observability/registry.py | 146 + .../oci_oracle_db_observability/runtime.py | 125 + .../oci_oracle_db_observability/server.py | 25 + .../tests/__init__.py | 1 + .../tests/test_registry.py | 95 + .../v1/__init__.py | 5 - .../oci_oracle_db_observability/v1/auth.py | 107 - .../v1/conversion.py | 223 - .../v1/oci_dbm_mcp_server/__init__.py | 10 - .../v1/oci_dbm_mcp_server/mcp.py | 21 - .../v1/oci_dbm_mcp_server/metadata.py | 1010 -- .../v1/oci_dbm_mcp_server/models.py | 8535 ------------ .../v1/oci_dbm_mcp_server/runtime.py | 147 - .../v1/oci_dbm_mcp_server/server.py | 57 - .../v1/oci_dbm_mcp_server/tests/__init__.py | 5 - .../tests/test_auth_and_server.py | 167 - .../tests/test_bootstrap.py | 130 - .../tests/test_metadata_and_schemas.py | 186 - .../oci_dbm_mcp_server/tests/test_runtime.py | 294 - .../v1/oci_dbm_mcp_server/tools.py | 4383 ------ .../v1/oci_opsi_mcp_server/__init__.py | 8 - .../v1/oci_opsi_mcp_server/mcp.py | 21 - .../v1/oci_opsi_mcp_server/metadata.py | 443 - .../v1/oci_opsi_mcp_server/models.py | 6202 --------- .../v1/oci_opsi_mcp_server/runtime.py | 122 - .../v1/oci_opsi_mcp_server/server.py | 57 - .../v1/oci_opsi_mcp_server/tests/__init__.py | 5 - .../tests/test_auth_and_server.py | 86 - .../tests/test_bootstrap.py | 130 - .../tests/test_metadata_and_schemas.py | 147 - .../tests/test_response_mapping.py | 57 - .../oci_opsi_mcp_server/tests/test_runtime.py | 435 - .../v1/oci_opsi_mcp_server/tools.py | 2275 --- .../v1/pagination.py | 150 - .../v1/response_mapping.py | 37 - .../pyproject.toml | 26 +- .../uv.lock | 80 +- 43 files changed, 12686 insertions(+), 25555 deletions(-) create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/mcp.py create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/metadata/manifest.json create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/metadata/skills.json create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/metadata/tools.json create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/registry.py create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/runtime.py create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/server.py create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/tests/__init__.py create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/tests/test_registry.py delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/__init__.py delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/auth.py delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/conversion.py delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/__init__.py delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/mcp.py delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/metadata.py delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/models.py delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/runtime.py delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/server.py delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tests/__init__.py delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tests/test_auth_and_server.py delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tests/test_bootstrap.py delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tests/test_metadata_and_schemas.py delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tests/test_runtime.py delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tools.py delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/__init__.py delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/mcp.py delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/metadata.py delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/models.py delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/runtime.py delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/server.py delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/__init__.py delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/test_auth_and_server.py delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/test_bootstrap.py delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/test_metadata_and_schemas.py delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/test_response_mapping.py delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/test_runtime.py delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tools.py delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/pagination.py delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/response_mapping.py diff --git a/src/oci-oracle-db-observability-mcp-server/README.md b/src/oci-oracle-db-observability-mcp-server/README.md index b4635f42..ccd40260 100644 --- a/src/oci-oracle-db-observability-mcp-server/README.md +++ b/src/oci-oracle-db-observability-mcp-server/README.md @@ -1,31 +1,25 @@ -# Oracle DB Observability MCP Servers +# OCI Database Observability MCP Server -## Overview +This package provides one MCP server for OCI Operations Insights (OPSI) and OCI +Database Management (DBM). It exposes two read-only compartment discovery +tools plus four catalog discovery and invocation tools. The catalog contains +only operations with exact OCI Python SDK bindings. -This package provides MCP servers to interact with Oracle database observability services. -It currently includes separate v1 servers for OCI Operations Insights (OPSI) and OCI -Database Management (DBM). +## Running -## Running the OPSI server - -### STDIO transport mode - -Use the default OCI CLI profile: +### STDIO ```sh -uvx oracle.oci-opsi-mcp-server +uvx oracle.oci-db-observability-mcp-server ``` -Use a named OCI CLI profile: +Use a named OCI CLI profile when required: ```sh -OCI_CONFIG_PROFILE= uvx oracle.oci-opsi-mcp-server +OCI_CONFIG_PROFILE= uvx oracle.oci-db-observability-mcp-server ``` -Set `OCI_CONFIG_FILE=` when the profile is not in the default OCI config file. -STDIO supports OCI CLI API-key profiles and session-token profiles. - -### HTTP streaming transport mode +### HTTP streaming ```sh ORACLE_MCP_HOST= \ @@ -36,92 +30,50 @@ IDCS_DOMAIN= \ IDCS_CLIENT_ID= \ IDCS_CLIENT_SECRET= \ IDCS_AUDIENCE= \ -uvx oracle.oci-opsi-mcp-server +uvx oracle.oci-db-observability-mcp-server ``` -Register `${ORACLE_MCP_BASE_URL}/auth/callback` in the OCI IAM confidential application. -If `IDCS_REQUIRED_SCOPES` is unset, the default is `openid profile email oci_mcp.opsi.invoke`. +Register `${ORACLE_MCP_BASE_URL}/auth/callback` in the OCI IAM confidential +application. If `IDCS_REQUIRED_SCOPES` is unset, the default scope is +`oci_mcp.db_observability.invoke` together with the standard OpenID scopes. -## Running the DBM server +## Discovery workflow -### STDIO transport mode +1. Call `list_compartments` or `get_compartment` to resolve OCI scope. +2. Call `list_skills` and select the smallest relevant skill set. +3. Call `list_tools` for those skills, optionally with separate `keywords`. + Every keyword must match a tool name or description; use + `['database', 'insights']`, not `['database_insights']`. +4. Call `describe_tool` for the chosen operation. +5. Call `invoke_tool` with arguments matching the returned schema. -Use the default OCI CLI profile: +The complete skill and tool catalogs are packaged as JSON under +`oracle/oci_oracle_db_observability/metadata`. The tool catalog contains +OPSI and DBM SDK bindings; it does not expose the individual operations as MCP +tools. -```sh -uvx oracle.oci-dbm-mcp-server -``` +## Development -Use a named OCI CLI profile: +Run the unified server tests with: ```sh -OCI_CONFIG_PROFILE= uvx oracle.oci-dbm-mcp-server +make test project=oci-oracle-db-observability-mcp-server ``` -Set `OCI_CONFIG_FILE=` when the profile is not in the default OCI config file. -STDIO supports OCI CLI API-key profiles and session-token profiles. - -### HTTP streaming transport mode +Run repository lint with: ```sh -ORACLE_MCP_HOST= \ -ORACLE_MCP_PORT= \ -ORACLE_MCP_BASE_URL= \ -OCI_REGION= \ -IDCS_DOMAIN= \ -IDCS_CLIENT_ID= \ -IDCS_CLIENT_SECRET= \ -IDCS_AUDIENCE= \ -uvx oracle.oci-dbm-mcp-server +make lint ``` -Register `${ORACLE_MCP_BASE_URL}/auth/callback` in the OCI IAM confidential application. -If `IDCS_REQUIRED_SCOPES` is unset, the default is `openid profile email oci_mcp.dbm.invoke`. - -## Tools - -| Tool Group | Description | -| --- | --- | -| OPSI tools | 158 non-deprecated OCI Operations Insights SDK methods, excluding `delete_*` methods and excluded operation classes from `docs/tool-list.csv`. Tool names match SDK method names. | -| DBM tools | 266 OCI Database Management SDK methods, excluding `delete_*`, `drop_*`, deprecated MySQL/HeatWave operations, and excluded operation classes from `docs/tool-list.csv`. Tool names match SDK method names. | -| get_compartment | Get an OCI compartment with a given compartment OCID. | -| list_compartments | List OCI compartments from a root compartment. | - -## Generating OPSI MCP files - -The OPSI tool, model, and manifest files can be generated from the Oracle OpenAPI spec. -Use a local spec for deterministic offline generation: - -```sh -uv run oci-oracle-db-observability-mcp-server-generate-opsi --spec-file -``` - -To verify checked-in generated files without rewriting them: - -```sh -uv run oci-oracle-db-observability-mcp-server-generate-opsi --spec-file --check -``` - -If `--spec-file` is omitted, the generator resolves `operations-insights` from the Oracle -API spec index URL and fetches the referenced spec. - -⚠️ **NOTE**: `stdio` uses the configured OCI CLI profile. HTTP uses IDCS/IAM token exchange -for the authenticated OCI IAM user and ignores local OCI CLI profiles for request authentication. - -⚠️ **NOTE**: Non-delete mutating OPSI tools and non-delete, non-drop mutating DBM tools are -marked with MCP tool annotations because they can change OCI or database state. - ## Third-Party APIs -Developers choosing to distribute a binary implementation of this project are responsible for obtaining and providing all required licenses and copyright notices for the third-party code used in order to ensure compliance with their respective open source licenses. - -## Disclaimer - -Users are responsible for their local environment and credential safety. Different language model selections may yield different results and performance. +Developers choosing to distribute a binary implementation of this project are +responsible for obtaining and providing all required licenses and copyright +notices for the third-party code used. ## License Copyright (c) 2026 Oracle and/or its affiliates. -Released under the Universal Permissive License v1.0 as shown at -. +Released under the Universal Permissive License v1.0. diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/__init__.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/__init__.py index 7214e9c3..c6cb5506 100644 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/__init__.py +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/__init__.py @@ -4,5 +4,5 @@ https://oss.oracle.com/licenses/upl. """ -__project__ = "oracle.oci-oracle-db-observability-mcp-server" -__version__ = "1.0.0" +__project__ = "oracle.oci-db-observability-mcp-server" +__version__ = "0.1.0" diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/mcp.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/mcp.py new file mode 100644 index 00000000..4c982d75 --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/mcp.py @@ -0,0 +1,140 @@ +"""The four-tool public MCP surface.""" +from __future__ import annotations +from typing import Any +from fastmcp import FastMCP +from pydantic import Field +from .registry import load_registry, to_jsonable +from .runtime import invoke_registered_tool +from .runtime import identity_bootstrap_client, serialize_response + +registry = load_registry() +mcp = FastMCP( + name="oracle.oci-db-observability-mcp-server", + instructions=( + "Use list_compartments or get_compartment to resolve OCI scope. Then call " + "list_skills, select the smallest relevant skills, and call list_tools. Use " + "separate keywords such as ['database', 'insights'], not one underscored SDK " + "name. Call describe_tool before invoke_tool." + ), +) + +@mcp.tool( + description=( + "Read-only OCI scope discovery. Retrieve one compartment by its OCID to validate " + "the target compartment before discovering Database Observability tools or resources." + ), + annotations={"readOnlyHint": True, "destructiveHint": False, "idempotentHint": True, "openWorldHint": True}, +) +def get_compartment( + compartment_id: str = Field( + ..., + description="Required OCI compartment OCID to retrieve, for example ocid1.compartment...", + ), +) -> Any: + if not compartment_id: + raise ValueError("compartment_id is required.") + client, _ = identity_bootstrap_client() + return serialize_response(client.get_compartment(compartment_id=compartment_id)) + +@mcp.tool( + description=( + "Read-only OCI scope discovery. List accessible compartments and their OCIDs before " + "selecting a Database Observability skill or querying compartment-scoped resources." + ), + annotations={"readOnlyHint": True, "destructiveHint": False, "idempotentHint": True, "openWorldHint": True}, +) +def list_compartments( + root_compartment_id: str | None = Field(None, description="Optional root compartment OCID. Omit it to start at the authenticated tenancy."), + include_subtree: bool = Field(True, description="When true, include all descendant compartments below the root."), + access_level: str = Field("ACCESSIBLE", description="Visibility filter: ACCESSIBLE returns compartments available to the caller; ANY includes all visible states."), + name: str | None = Field(None, description="Optional exact compartment-name filter."), + lifecycle_state: str | None = Field(None, description="Optional lifecycle-state filter, such as ACTIVE."), + limit: int = Field(50, ge=1, le=1000, description="Maximum number of compartments returned in this response."), +) -> dict[str, Any]: + client, tenancy_id = identity_bootstrap_client() + response = client.list_compartments( + compartment_id=root_compartment_id or tenancy_id, + compartment_id_in_subtree=include_subtree, + access_level=access_level, + name=name, + lifecycle_state=lifecycle_state, + limit=limit, + ) + items = serialize_response(response) + return {"items": items, "count": len(items)} + +@mcp.tool( + description=( + "Start Database Observability discovery here. Returns compact skill summaries, not " + "operation schemas. Select the smallest skills relevant to the user's goal, then call list_tools." + ) +) +def list_skills() -> dict[str, Any]: + return {"skills": [{"name": s["name"], "description": s["description"], "toolCount": len(s["tools"])} for s in registry.skills]} + +@mcp.tool( + description=( + "Discover registered OCI operations within selected skills. Use keywords as separate " + "plain-language terms that must all match a tool name or description; for example, " + "use ['database', 'insights'] to find list_database_insights. Do not use an underscored " + "SDK operation name as one keyword. Call describe_tool on a selected result before invoke_tool." + ) +) +def list_tools( + skill_names: list[str] = Field( + ..., + min_length=1, + description="Required skill names returned by list_skills. Only tools belonging to these skills are searched.", + ), + keywords: list[str] | None = Field( + None, + description="Optional separate search terms. Every term must match the tool name or description, case-insensitively; use ['database', 'insights'], not ['database_insights'].", + ), + limit: int = Field(50, ge=1, le=100, description="Maximum compact tool entries to return; use a narrow keyword search before increasing this."), +) -> dict[str, Any]: + selected = set(skill_names) + tools = registry.list_tools(selected, keywords) + return { + "count": len(tools), + "tools": [ + { + "name": tool["name"], + "description": tool["description"], + "skills": list(tool["skills"]), + "mutable": tool["mutable"], + } + for tool in tools[:limit] + ], + "truncated": len(tools) > limit, + } + +@mcp.tool( + description=( + "Get the complete invocation contract for one tool returned by list_tools. Returns the " + "exact JSON input schema, required arguments, and mutability. Use immediately before invoke_tool." + ) +) +def describe_tool( + tool_name: str = Field(..., description="Required logical tool name returned by list_tools, for example list_database_insights."), +) -> dict[str, Any]: + tool = registry.get_tool(tool_name) + return { + "name": tool["name"], + "description": tool["description"], + "inputSchema": to_jsonable(tool["inputSchema"]), + "mutable": tool["mutable"], + "guidance": "Pass an arguments object that exactly matches inputSchema.", + } + +@mcp.tool( + description=( + "Execute one registered OCI Database Observability operation. First call describe_tool, " + "then supply an arguments object that conforms exactly to its inputSchema. This is the only " + "tool that invokes a catalog operation." + ) +) +def invoke_tool( + tool_name: str = Field(..., description="Required logical tool name returned by list_tools and described with describe_tool."), + arguments: dict[str, Any] = Field(default_factory=dict, description="Required JSON object of SDK arguments matching the exact inputSchema from describe_tool."), +) -> Any: + return invoke_registered_tool(registry.get_tool(tool_name), arguments) diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/metadata/manifest.json b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/metadata/manifest.json new file mode 100644 index 00000000..34004962 --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/metadata/manifest.json @@ -0,0 +1,6 @@ +{ + "format": "dbo-discovery-registry", + "formatVersion": 1, + "skills": "skills.json", + "tools": "tools.json" +} diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/metadata/skills.json b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/metadata/skills.json new file mode 100644 index 00000000..33eb5fe4 --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/metadata/skills.json @@ -0,0 +1,423 @@ +{ + "skills": [ + { + "name": "advanced-diagnostics-addm-session-control-bulk-retrieve", + "description": "ADDM execution, session cancellation, and bulk diagnostic data retrieval for managed databases.", + "tools": [ + "addm_tasks", + "run_historic_addm" + ] + }, + { + "name": "async-work-requests-long-running-operations", + "description": "This skill supports read-only tracking of asynchronous OCI work requests, including status, logs, and errors.", + "tools": [ + "get_work_request", + "list_work_request_errors", + "list_work_request_logs", + "list_work_requests" + ] + }, + { + "name": "awr-discovery-primitives", + "description": "Discovery primitives for AWR databases and snapshot inventories.", + "tools": [ + "list_awr_db_snapshots", + "list_awr_dbs" + ] + }, + { + "name": "awr-historical-performance-analysis", + "description": "AWR historical summarization across CPU, waits, metrics, parameters, and system statistics.", + "tools": [ + "list_awr_db_snapshots", + "summarize_awr_db_cpu_usages", + "summarize_awr_db_metrics", + "summarize_awr_db_parameter_changes", + "summarize_awr_db_parameters", + "summarize_awr_db_snapshot_ranges", + "summarize_awr_db_sysstats", + "summarize_awr_db_top_wait_events", + "summarize_awr_db_wait_event_buckets", + "summarize_awr_db_wait_events" + ] + }, + { + "name": "awrhubs", + "description": "This skill supports read-only analysis workflows for AWR Hub data in OCI Operations Insights.", + "tools": [ + "get_awr_database_report", + "get_awr_database_sql_report", + "list_awr_database_snapshots", + "list_awr_databases", + "summarize_awr_database_cpu_usages", + "summarize_awr_database_metrics", + "summarize_awr_database_parameter_changes", + "summarize_awr_database_parameters", + "summarize_awr_database_snapshot_ranges", + "summarize_awr_database_sysstats", + "summarize_awr_database_top_wait_events", + "summarize_awr_database_wait_event_buckets", + "summarize_awr_database_wait_events" + ] + }, + { + "name": "cloud-asm-core", + "description": "Cloud ASM inventory, configuration, users, disk groups, and metrics.", + "tools": [ + "get_cloud_asm", + "get_cloud_asm_configuration", + "get_cloud_asm_instance", + "list_cloud_asm_disk_groups", + "list_cloud_asm_instances", + "list_cloud_asm_users", + "list_cloud_asms", + "summarize_cloud_asm_metrics" + ] + }, + { + "name": "cloud-db-runtime-topology", + "description": "This skill supports read-only runtime topology and health checks for Cloud DB clusters, nodes, listeners, DB homes, and connectors.", + "tools": [ + "get_cloud_cluster", + "get_cloud_cluster_instance", + "get_cloud_db_home", + "get_cloud_db_node", + "get_cloud_db_system_connector", + "get_cloud_listener", + "list_cloud_cluster_instances", + "list_cloud_clusters", + "list_cloud_db_homes", + "list_cloud_db_nodes", + "list_cloud_db_system_connectors", + "list_cloud_listener_services", + "list_cloud_listeners", + "summarize_cloud_cluster_metrics", + "summarize_cloud_db_node_metrics", + "summarize_cloud_listener_metrics" + ] + }, + { + "name": "cloud-exadata-storage", + "description": "This skill supports read-only checks for Cloud Exadata storage connectors, servers, grids, IORM plans, and open alerts.", + "tools": [ + "check_cloud_exadata_storage_connector", + "get_cloud_exadata_storage_connector", + "get_cloud_exadata_storage_grid", + "get_cloud_exadata_storage_server", + "get_cloud_iorm_plan", + "get_cloud_open_alert_history", + "list_cloud_exadata_storage_connectors", + "list_cloud_exadata_storage_servers" + ] + }, + { + "name": "cloud-inventory-discovery-connectivity", + "description": "This skill supports read-only cloud inventory, discovery, and connector connectivity checks for Cloud DB systems.", + "tools": [ + "check_cloud_db_system_connector_connection_status", + "get_cloud_db_system", + "get_cloud_db_system_discovery", + "get_cloud_exadata_infrastructure", + "list_cloud_databases", + "list_cloud_db_system_discoveries", + "list_cloud_db_systems", + "list_cloud_exadata_infrastructures", + "summarize_cloud_db_system_availability_metrics" + ] + }, + { + "name": "credentials-and-authentication-preferred-named", + "description": "This skill supports read-only and test workflows for named credentials and preferred credential mappings in OCI DBM.", + "tools": [ + "get_named_credential", + "get_preferred_credential", + "list_named_credentials", + "list_preferred_credentials", + "test_named_credential", + "test_preferred_credential" + ] + }, + { + "name": "database-addm-analysis", + "description": "Use this skill to diagnose likely root causes using ADDM findings, recommendations, categories, and time-series patterns across one database or a fleet.", + "tools": [ + "list_addm_db_finding_categories", + "list_addm_db_findings_time_series", + "list_addm_db_parameter_categories", + "list_addm_db_recommendation_categories", + "list_addm_db_recommendations_time_series", + "list_addm_dbs", + "summarize_addm_db_findings", + "summarize_addm_db_parameter_changes", + "summarize_addm_db_parameters", + "summarize_addm_db_recommendations", + "summarize_addm_db_schema_objects", + "summarize_addm_db_sql_statements" + ] + }, + { + "name": "database-insights", + "description": "Use this skill for fleet and per-database capacity planning, utilization analysis, and growth forecasting.", + "tools": [ + "get_database_insight", + "list_database_configurations", + "list_database_insights", + "summarize_database_insight_resource_capacity_trend", + "summarize_database_insight_resource_forecast_trend", + "summarize_database_insight_resource_statistics", + "summarize_database_insight_resource_usage", + "summarize_database_insight_resource_usage_trend", + "summarize_database_insight_resource_utilization_insight", + "summarize_database_insight_tablespace_usage_trend" + ] + }, + { + "name": "database-configuration-and-parameters", + "description": "This skill supports read-only database parameter inventory and configuration baseline checks in OCI DBM.", + "tools": [ + "list_database_parameters" + ] + }, + { + "name": "database-health-and-core-metrics", + "description": "This skill supports read-only health and core runtime metric checks for managed databases in OCI DBM.", + "tools": [ + "get_cluster_cache_metric", + "get_database_home_metrics", + "get_pdb_metrics", + "summarize_managed_database_availability_metrics" + ] + }, + { + "name": "database-performance-analysis", + "description": "Use this skill for workload regression and bottleneck diagnosis using AWR evidence, wait analysis, CPU profiles, metric trends, and SQL/plan context.", + "tools": [ + "get_awr_db_report", + "list_awr_db_snapshots", + "list_sql_plans", + "list_sql_searches", + "list_sql_texts", + "summarize_sql_insights", + "summarize_sql_plan_insights", + "summarize_sql_response_time_distributions", + "summarize_sql_statistics", + "summarize_sql_statistics_time_series", + "summarize_sql_statistics_time_series_by_plan" + ] + }, + { + "name": "exadata-fleet-health-analytics", + "description": "This skill supports read-only Exadata infrastructure fleet health analytics in OCI DBM.", + "tools": [ + "get_exadata_infrastructure_fleet_health_metrics" + ] + }, + { + "name": "exadata-insights", + "description": "This skill supports read-only Exadata usage, capacity, forecast, utilization, and member-inventory analysis in OCI Operations Insights.", + "tools": [ + "list_exadata_configurations", + "summarize_exadata_insight_resource_capacity_trend", + "summarize_exadata_insight_resource_capacity_trend_aggregated", + "summarize_exadata_insight_resource_forecast_trend", + "summarize_exadata_insight_resource_forecast_trend_aggregated", + "summarize_exadata_insight_resource_statistics", + "summarize_exadata_insight_resource_usage", + "summarize_exadata_insight_resource_usage_aggregated", + "summarize_exadata_insight_resource_utilization_insight", + "summarize_exadata_members" + ] + }, + { + "name": "external-asm-core", + "description": "Read-only monitoring workflows for external ASM resources in OCI Database Management.", + "tools": [ + "get_external_asm", + "get_external_asm_configuration", + "get_external_asm_instance", + "list_external_asm_disk_groups", + "list_external_asm_instances", + "list_external_asm_users", + "list_external_asms", + "summarize_external_asm_metrics" + ] + }, + { + "name": "external-db-runtime-topology", + "description": "Read-only runtime topology workflows for external clusters, listeners, and DB nodes in OCI Database Management.", + "tools": [ + "get_external_cluster", + "get_external_cluster_instance", + "get_external_db_node", + "get_external_listener", + "list_external_cluster_instances", + "list_external_clusters", + "list_external_db_nodes", + "list_external_listener_services", + "list_external_listeners", + "summarize_external_cluster_metrics", + "summarize_external_db_node_metrics", + "summarize_external_listener_metrics" + ] + }, + { + "name": "external-exadata-storage", + "description": "Read-only and connector-management workflows for external Exadata storage resources in OCI Database Management.", + "tools": [ + "check_external_exadata_storage_connector", + "get_external_exadata_storage_connector", + "get_external_exadata_storage_grid", + "get_external_exadata_storage_server", + "get_iorm_plan", + "get_open_alert_history", + "get_top_sql_cpu_activity", + "list_external_exadata_storage_connectors", + "list_external_exadata_storage_servers", + "update_external_exadata_storage_connector" + ] + }, + { + "name": "external-inventory-discovery-connectivity", + "description": "Discovery, inventory, lookup, and connector-connectivity workflows for external DB systems in OCI Database Management.", + "tools": [ + "check_external_db_system_connector_connection_status", + "get_external_db_home", + "get_external_db_system", + "get_external_db_system_connector", + "get_external_db_system_discovery", + "get_external_exadata_infrastructure", + "list_external_databases", + "list_external_db_homes", + "list_external_db_system_connectors", + "list_external_db_system_discoveries", + "list_external_db_systems", + "list_external_exadata_infrastructures", + "summarize_external_db_system_availability_metrics" + ] + }, + { + "name": "fleet-health-analytics-across-many-databases", + "description": "Fleet-level health analytics across many managed databases in OCI Database Management.", + "tools": [ + "get_database_fleet_health_metrics" + ] + }, + { + "name": "high-availability-data-guard-and-backups-fleet-single-db", + "description": "Data Guard, backup, and HA analytics for fleet and single-database workflows in OCI Database Management.", + "tools": [ + "get_database_fleet_backup_metrics", + "get_database_fleet_dataguard_metrics", + "get_database_fleet_ha_overview_metrics", + "get_database_ha_backup_details", + "get_dataguard_performance_metrics", + "get_peer_database_metrics" + ] + }, + { + "name": "host-insights", + "description": "This skill supports read-only host capacity, usage, forecast, and recommendation analysis in OCI Operations Insights.", + "tools": [ + "list_host_configurations", + "list_hosted_entities", + "summarize_host_insight_disk_statistics", + "summarize_host_insight_host_recommendation", + "summarize_host_insight_io_usage_trend", + "summarize_host_insight_network_usage_trend", + "summarize_host_insight_resource_capacity_trend", + "summarize_host_insight_resource_forecast_trend", + "summarize_host_insight_resource_statistics", + "summarize_host_insight_resource_usage", + "summarize_host_insight_resource_usage_trend", + "summarize_host_insight_resource_utilization_insight", + "summarize_host_insight_storage_usage_trend", + "summarize_host_insight_top_processes_usage", + "summarize_host_insight_top_processes_usage_trend" + ] + }, + { + "name": "job-orchestration-and-execution-tracking", + "description": "Job definition, run tracking, execution tracking, and status summary workflows in OCI Database Management.", + "tools": [ + "get_job", + "get_job_execution", + "get_job_run", + "list_job_executions", + "list_job_runs", + "list_jobs", + "summarize_job_executions_statuses" + ] + }, + { + "name": "logs-and-alerts-attention-alert-logs", + "description": "Alert and attention log retrieval and count-summary workflows for managed databases in OCI Database Management.", + "tools": [ + "list_alert_logs", + "list_attention_logs", + "summarize_alert_log_counts", + "summarize_attention_log_counts" + ] + }, + { + "name": "managed-database-groups-organize-and-target-sets-of-databases", + "description": "Managed database group lifecycle and membership workflows in OCI Database Management.", + "tools": [ + "add_managed_database_to_managed_database_group", + "create_managed_database_group", + "get_managed_database_group", + "list_managed_database_groups", + "remove_managed_database_from_managed_database_group" + ] + }, + { + "name": "managed-database-inventory-discover-and-inspect", + "description": "Managed database inventory lookup and detail inspection for OCI Database Management.", + "tools": [ + "get_managed_database", + "list_managed_databases" + ] + }, + { + "name": "oci-common", + "description": "This skill supports read-only discovery workflows for OCI Identity (20160918) tenancy, compartment, and region topology.", + "tools": [ + "list_region_subscriptions", + "list_regions" + ] + }, + { + "name": "private-endpoints-and-connectivity", + "description": "Database Management private endpoint discovery, inspection, and associated database mapping.", + "tools": [ + "get_db_management_private_endpoint", + "list_associated_databases", + "list_db_management_private_endpoints" + ] + }, + { + "name": "storage-and-space-tablespaces-asm", + "description": "Tablespace and ASM property retrieval for managed database storage and space checks.", + "tools": [ + "get_tablespace", + "list_asm_properties", + "list_tablespaces" + ] + }, + { + "name": "users-and-privileges-rbac-audit", + "description": "Database users, roles, and privilege audit surfaces including proxy and data access container visibility.", + "tools": [ + "get_user", + "list_consumer_group_privileges", + "list_data_access_containers", + "list_object_privileges", + "list_proxied_for_users", + "list_proxy_users", + "list_roles", + "list_system_privileges", + "list_users" + ] + } + ] +} diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/metadata/tools.json b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/metadata/tools.json new file mode 100644 index 00000000..f8418c92 --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/metadata/tools.json @@ -0,0 +1,11595 @@ +{ + "tools": [ + { + "name": "add_managed_database_to_managed_database_group", + "description": "Adds a managed database to a managed database group so group-scoped operations include that database.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "add_managed_database_to_managed_database_group", + "skills": [ + "managed-database-groups-organize-and-target-sets-of-databases" + ], + "inputSchema": { + "type": "object", + "properties": { + "managed_database_group_id": { + "type": "string", + "description": "The [OCID](/Content/General/Concepts/identifiers.htm) of the Managed Database Group." + }, + "add_managed_database_to_managed_database_group_details": { + "type": "object", + "description": "The Managed Database details required to add it to a Managed Database Group.", + "properties": { + "managedDatabaseId": { + "type": "string", + "description": "The [OCID](/Content/General/Concepts/identifiers.htm) of the Managed Database.\n", + "minLength": 1, + "maxLength": 255 + } + } + }, + "opc_request_id": { + "type": "string", + "description": "The client request ID for tracing." + }, + "opc_retry_token": { + "type": "string", + "description": "A token that uniquely identifies a request so it can be retried in case of a timeout or\nserver error without risk of executing that same action again. Retry tokens expire after 24\nhours, but can be invalidated before then due to conflicting operations. For example, if a resource\nhas been deleted and purged from the system, then a retry of the original creation request\nmight be rejected.\n" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_group_id", + "add_managed_database_to_managed_database_group_details" + ] + }, + "mutable": true + }, + { + "name": "addm_tasks", + "description": "Returns ADDM tasks whose end snapshot time falls within the requested time range.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "addm_tasks", + "skills": [ + "advanced-diagnostics-addm-session-control-bulk-retrieve" + ], + "inputSchema": { + "properties": { + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + }, + "opc_named_credential_id": { + "description": "The OCID of the Named Credential.", + "type": "string" + }, + "sort_by": { + "description": "The option to sort the list of ADDM tasks.\n\nAllowed values are: \"TASK_NAME\", \"TASK_ID\", \"DESCRIPTION\", \"DB_USER\", \"STATUS\", \"TIME_CREATED\", \"BEGIN_TIME\", \"END_TIME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "time_end": { + "description": "The end of the time range to search for ADDM tasks as defined by date-time RFC3339 format.", + "format": "date-time", + "type": "string" + }, + "time_start": { + "description": "The beginning of the time range to search for ADDM tasks as defined by date-time RFC3339 format.", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "managed_database_id", + "time_start", + "time_end" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "check_cloud_db_system_connector_connection_status", + "description": "Checks connectivity for one Cloud DB system connector and returns status so admins can validate connector health.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "check_cloud_db_system_connector_connection_status", + "skills": [ + "cloud-inventory-discovery-connectivity" + ], + "inputSchema": { + "properties": { + "cloud_db_system_connector_id": { + "description": "The OCID of the cloud connector.", + "type": "string" + } + }, + "required": [ + "cloud_db_system_connector_id" + ], + "type": "object" + }, + "mutable": true + }, + { + "name": "check_cloud_exadata_storage_connector", + "description": "Checks connectivity for one Cloud Exadata storage connector and returns status so admins can confirm whether storage telemetry access is working.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "check_cloud_exadata_storage_connector", + "skills": [ + "cloud-exadata-storage" + ], + "inputSchema": { + "properties": { + "cloud_exadata_storage_connector_id": { + "description": "The OCID of the connector to the Exadata storage server.", + "type": "string" + } + }, + "required": [ + "cloud_exadata_storage_connector_id" + ], + "type": "object" + }, + "mutable": true + }, + { + "name": "check_external_db_system_connector_connection_status", + "description": "Checks external DB system connector connectivity to confirm the connector can reach the target DB system endpoint.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "check_external_db_system_connector_connection_status", + "skills": [ + "external-inventory-discovery-connectivity" + ], + "inputSchema": { + "properties": { + "external_db_system_connector_id": { + "description": "The OCID of the external connector.", + "type": "string" + } + }, + "required": [ + "external_db_system_connector_id" + ], + "type": "object" + }, + "mutable": true + }, + { + "name": "check_external_exadata_storage_connector", + "description": "Checks external Exadata storage connector connectivity to verify the connector can reach the target storage endpoint.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "check_external_exadata_storage_connector", + "skills": [ + "external-exadata-storage" + ], + "inputSchema": { + "properties": { + "external_exadata_storage_connector_id": { + "description": "The OCID of the connector to the Exadata storage server.", + "type": "string" + } + }, + "required": [ + "external_exadata_storage_connector_id" + ], + "type": "object" + }, + "mutable": true + }, + { + "name": "create_managed_database_group", + "description": "Creates a managed database group so you can organize databases into a reusable operational target set.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "create_managed_database_group", + "skills": [ + "managed-database-groups-organize-and-target-sets-of-databases" + ], + "inputSchema": { + "properties": { + "create_managed_database_group_details": { + "additionalProperties": false, + "description": "The details required to create a Managed Database Group.", + "properties": { + "compartmentId": { + "description": "**[Required]** Gets the compartment_id of this CreateManagedDatabaseGroupDetails. The OCID of the compartment in which the Managed Database Group resides.", + "title": "Compartmentid", + "type": "string" + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Gets the description of this CreateManagedDatabaseGroupDetails.\nThe information specified by the user about the Managed Database Group.", + "title": "Description" + }, + "name": { + "description": "**[Required]** Gets the name of this CreateManagedDatabaseGroupDetails.\nThe name of the Managed Database Group. Valid characters are uppercase or\nlowercase letters, numbers, and \"_\". The name of the Managed Database Group\ncannot be modified. It must be unique in the compartment and must begin with\nan alphabetic character.", + "title": "Name", + "type": "string" + } + }, + "required": [ + "name", + "compartmentId" + ], + "title": "CreateManagedDatabaseGroupDetails", + "type": "object" + } + }, + "required": [ + "create_managed_database_group_details" + ], + "type": "object" + }, + "mutable": true + }, + { + "name": "get_awr_database_report", + "description": "Returns the AWR report payload for a selected database and snapshot range, including SQL, wait-event, and load-profile sections.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "get_awr_database_report", + "skills": [ + "awrhubs" + ], + "inputSchema": { + "properties": { + "awr_hub_id": { + "description": "Unique Awr Hub identifier", + "type": "string" + }, + "awr_source_database_identifier": { + "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.", + "type": "string" + }, + "begin_snapshot_identifier_greater_than_or_equal_to": { + "description": "The optional greater than or equal to filter on the snapshot ID.", + "type": "integer" + }, + "end_snapshot_identifier_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the snapshot Identifier.", + "type": "integer" + }, + "instance_number": { + "description": "The optional single value query parameter to filter by database instance number.", + "type": "string" + }, + "report_format": { + "description": "The format of the AWR report. Allowed values are: \"HTML\", \"TEXT\"", + "type": "string" + }, + "report_type": { + "description": "The query parameter to filter the AWR report types. Allowed values are: \"AWR\", \"ASH\"", + "type": "string" + }, + "time_greater_than_or_equal_to": { + "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "format": "date-time", + "type": "string" + }, + "time_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "awr_hub_id", + "awr_source_database_identifier" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_awr_database_sql_report", + "description": "Returns SQL health-check output for a specific SQL ID from AWR, including execution profile, plan details, and SQL-level findings.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "get_awr_database_sql_report", + "skills": [ + "awrhubs" + ], + "inputSchema": { + "properties": { + "awr_hub_id": { + "description": "Unique Awr Hub identifier", + "type": "string" + }, + "awr_source_database_identifier": { + "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.", + "type": "string" + }, + "begin_snapshot_identifier_greater_than_or_equal_to": { + "description": "The optional greater than or equal to filter on the snapshot ID.", + "type": "integer" + }, + "end_snapshot_identifier_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the snapshot Identifier.", + "type": "integer" + }, + "instance_number": { + "description": "The optional single value query parameter to filter by database instance number.", + "type": "string" + }, + "report_format": { + "description": "The format of the AWR report. Allowed values are: \"HTML\", \"TEXT\"", + "type": "string" + }, + "sql_id": { + "description": "Oracle-generated SQL ID for a SQL statement in the AWR data.", + "type": "string" + }, + "time_greater_than_or_equal_to": { + "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "format": "date-time", + "type": "string" + }, + "time_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "awr_hub_id", + "awr_source_database_identifier", + "sql_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_awr_db_report", + "description": "Returns full AWR database report content for the selected snapshot range and output format (for example text or HTML).", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_awr_db_report", + "skills": [ + "database-performance-analysis" + ], + "inputSchema": { + "properties": { + "awr_db_id": { + "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.", + "type": "string" + }, + "begin_sn_id_greater_than_or_equal_to": { + "description": "The optional greater than or equal to filter on the snapshot ID.", + "type": "integer" + }, + "container_id": { + "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.", + "type": "integer" + }, + "end_sn_id_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the snapshot ID.", + "type": "integer" + }, + "inst_nums": { + "description": "The optional multiple value query parameter to filter the database instance numbers.", + "items": {}, + "type": "array" + }, + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + }, + "opc_named_credential_id": { + "description": "The OCID of the Named Credential.", + "type": "string" + }, + "report_format": { + "description": "The format of the AWR report.\n\nAllowed values are: \"HTML\", \"TEXT\"", + "type": "string" + }, + "report_type": { + "description": "The query parameter to filter the AWR report types.\n\nAllowed values are: \"AWR\", \"ASH\"", + "type": "string" + }, + "time_greater_than_or_equal_to": { + "description": "The optional greater than or equal to query parameter to filter the timestamp.", + "format": "date-time", + "type": "string" + }, + "time_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the timestamp.", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "managed_database_id", + "awr_db_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_cloud_asm", + "description": "Gets the cloud ASM details.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_cloud_asm", + "skills": [ + "cloud-asm-core" + ], + "inputSchema": { + "properties": { + "cloud_asm_id": { + "description": "The OCID of the cloud ASM.", + "type": "string" + } + }, + "required": [ + "cloud_asm_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_cloud_asm_configuration", + "description": "Gets the cloud ASM configuration.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_cloud_asm_configuration", + "skills": [ + "cloud-asm-core" + ], + "inputSchema": { + "properties": { + "cloud_asm_id": { + "description": "The OCID of the cloud ASM.", + "type": "string" + }, + "opc_named_credential_id": { + "description": "The OCID of the Named Credential.", + "type": "string" + } + }, + "required": [ + "cloud_asm_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_cloud_asm_instance", + "description": "Gets the cloud ASM instance details.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_cloud_asm_instance", + "skills": [ + "cloud-asm-core" + ], + "inputSchema": { + "properties": { + "cloud_asm_instance_id": { + "description": "The OCID of the cloud ASM instance.", + "type": "string" + } + }, + "required": [ + "cloud_asm_instance_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_cloud_cluster", + "description": "Gets the cloud cluster details.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_cloud_cluster", + "skills": [ + "cloud-db-runtime-topology" + ], + "inputSchema": { + "properties": { + "cloud_cluster_id": { + "description": "The OCID of the cloud cluster.", + "type": "string" + } + }, + "required": [ + "cloud_cluster_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_cloud_cluster_instance", + "description": "Gets the cloud cluster instance details.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_cloud_cluster_instance", + "skills": [ + "cloud-db-runtime-topology" + ], + "inputSchema": { + "properties": { + "cloud_cluster_instance_id": { + "description": "The OCID of the cloud cluster instance.", + "type": "string" + } + }, + "required": [ + "cloud_cluster_instance_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_cloud_db_home", + "description": "Gets the cloud DB home details.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_cloud_db_home", + "skills": [ + "cloud-db-runtime-topology" + ], + "inputSchema": { + "properties": { + "cloud_db_home_id": { + "description": "The OCID of the cloud database home.", + "type": "string" + } + }, + "required": [ + "cloud_db_home_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_cloud_db_node", + "description": "Gets the cloud DB node details.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_cloud_db_node", + "skills": [ + "cloud-db-runtime-topology" + ], + "inputSchema": { + "properties": { + "cloud_db_node_id": { + "description": "The OCID of the cloud database node.", + "type": "string" + } + }, + "required": [ + "cloud_db_node_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_cloud_db_system", + "description": "Returns details for one Cloud DB system so admins can verify DB system identity, state, and context.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_cloud_db_system", + "skills": [ + "cloud-inventory-discovery-connectivity" + ], + "inputSchema": { + "properties": { + "cloud_db_system_id": { + "description": "The OCID of the cloud DB system.", + "type": "string" + } + }, + "required": [ + "cloud_db_system_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_cloud_db_system_connector", + "description": "Gets the cloud connector details.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_cloud_db_system_connector", + "skills": [ + "cloud-db-runtime-topology" + ], + "inputSchema": { + "properties": { + "cloud_db_system_connector_id": { + "description": "The OCID of the cloud connector.", + "type": "string" + } + }, + "required": [ + "cloud_db_system_connector_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_cloud_db_system_discovery", + "description": "Returns details for one Cloud DB system discovery resource so admins can validate discovery status and metadata.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_cloud_db_system_discovery", + "skills": [ + "cloud-inventory-discovery-connectivity" + ], + "inputSchema": { + "properties": { + "cloud_db_system_discovery_id": { + "description": "The OCID of the cloud DB system discovery.", + "type": "string" + } + }, + "required": [ + "cloud_db_system_discovery_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_cloud_exadata_infrastructure", + "description": "Returns details for one Cloud Exadata infrastructure so admins can validate infrastructure identity and state.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_cloud_exadata_infrastructure", + "skills": [ + "cloud-inventory-discovery-connectivity" + ], + "inputSchema": { + "properties": { + "cloud_exadata_infrastructure_id": { + "description": "The OCID of the Exadata infrastructure.", + "type": "string" + } + }, + "required": [ + "cloud_exadata_infrastructure_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_cloud_exadata_storage_connector", + "description": "Returns details for one Cloud Exadata storage connector so admins can validate connector state and configuration context.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_cloud_exadata_storage_connector", + "skills": [ + "cloud-exadata-storage" + ], + "inputSchema": { + "properties": { + "cloud_exadata_storage_connector_id": { + "description": "The OCID of the connector to the Exadata storage server.", + "type": "string" + } + }, + "required": [ + "cloud_exadata_storage_connector_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_cloud_exadata_storage_grid", + "description": "Returns Cloud Exadata storage grid details so admins can validate grid-level storage configuration context.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_cloud_exadata_storage_grid", + "skills": [ + "cloud-exadata-storage" + ], + "inputSchema": { + "properties": { + "cloud_exadata_storage_grid_id": { + "description": "The OCID of the Exadata storage grid.", + "type": "string" + } + }, + "required": [ + "cloud_exadata_storage_grid_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_cloud_exadata_storage_server", + "description": "Returns details for one Cloud Exadata storage server so admins can verify server state and storage context.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_cloud_exadata_storage_server", + "skills": [ + "cloud-exadata-storage" + ], + "inputSchema": { + "properties": { + "cloud_exadata_storage_server_id": { + "description": "The OCID of the Exadata storage server.", + "type": "string" + } + }, + "required": [ + "cloud_exadata_storage_server_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_cloud_iorm_plan", + "description": "Returns the I/O Resource Manager (IORM) plan for a Cloud Exadata storage server so admins can review resource allocation policy.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_cloud_iorm_plan", + "skills": [ + "cloud-exadata-storage" + ], + "inputSchema": { + "properties": { + "cloud_exadata_storage_server_id": { + "description": "The OCID of the Exadata storage server.", + "type": "string" + } + }, + "required": [ + "cloud_exadata_storage_server_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_cloud_listener", + "description": "Gets the cloud listener details.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_cloud_listener", + "skills": [ + "cloud-db-runtime-topology" + ], + "inputSchema": { + "properties": { + "cloud_listener_id": { + "description": "The OCID of the cloud listener.", + "type": "string" + } + }, + "required": [ + "cloud_listener_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_cloud_open_alert_history", + "description": "Returns open alert history for a Cloud Exadata storage server so admins can review active storage issues.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_cloud_open_alert_history", + "skills": [ + "cloud-exadata-storage" + ], + "inputSchema": { + "properties": { + "cloud_exadata_storage_server_id": { + "description": "The OCID of the Exadata storage server.", + "type": "string" + } + }, + "required": [ + "cloud_exadata_storage_server_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_cluster_cache_metric", + "description": "Returns cluster cache metric summaries so admins can assess RAC cache efficiency and interconnect behavior.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_cluster_cache_metric", + "skills": [ + "database-health-and-core-metrics" + ], + "inputSchema": { + "properties": { + "end_time": { + "description": "The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\".", + "type": "string" + }, + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + }, + "start_time": { + "description": "The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\".", + "type": "string" + } + }, + "required": [ + "managed_database_id", + "start_time", + "end_time" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_database_fleet_backup_metrics", + "description": "Returns fleet backup metrics so you can assess backup health, recovery posture, and retention trends.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_database_fleet_backup_metrics", + "skills": [ + "high-availability-data-guard-and-backups-fleet-single-db" + ], + "inputSchema": { + "properties": { + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "database_hosted_in": { + "description": "Indicates whether the database is a cloud database or an external database.\n\nAllowed values are: \"CLOUD\", \"EXTERNAL\"", + "type": "string" + }, + "end_time": { + "description": "The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\".", + "type": "string" + }, + "filter_by_metric_names": { + "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "managed_database_group_id": { + "description": "The OCID of the Managed Database Group.", + "type": "string" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `DATABASENAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"DATABASENAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "start_time": { + "description": "The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\".", + "type": "string" + } + }, + "required": [ + "database_hosted_in", + "start_time", + "end_time" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_database_fleet_dataguard_metrics", + "description": "Returns fleet Data Guard metrics for Data Guard-enabled databases so you can identify replication risk hotspots.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_database_fleet_dataguard_metrics", + "skills": [ + "high-availability-data-guard-and-backups-fleet-single-db" + ], + "inputSchema": { + "properties": { + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "filter_by_metric_names": { + "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "managed_database_group_id": { + "description": "The OCID of the Managed Database Group.", + "type": "string" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `DATABASENAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"DATABASENAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "type": "object" + }, + "mutable": false + }, + { + "name": "get_database_fleet_ha_overview_metrics", + "description": "Returns fleet HA and backup overview metrics so you can assess resilience posture across databases.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_database_fleet_ha_overview_metrics", + "skills": [ + "high-availability-data-guard-and-backups-fleet-single-db" + ], + "inputSchema": { + "properties": { + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "filter_by_metric_names": { + "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "managed_database_group_id": { + "description": "The OCID of the Managed Database Group.", + "type": "string" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `DATABASENAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"DATABASENAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "type": "object" + }, + "mutable": false + }, + { + "name": "get_database_fleet_health_metrics", + "description": "Returns fleet health metrics across databases so admins can compare usage and availability trends by baseline and target windows.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_database_fleet_health_metrics", + "skills": [ + "fleet-health-analytics-across-many-databases" + ], + "inputSchema": { + "properties": { + "compare_baseline_time": { + "description": "The baseline time for metrics comparison.", + "type": "string" + }, + "compare_target_time": { + "description": "The target time for metrics comparison.", + "type": "string" + }, + "compare_type": { + "description": "The time window used for metrics comparison.\n\nAllowed values are: \"HOUR\", \"DAY\", \"WEEK\"", + "type": "string" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "filter_by_database_deployment_type": { + "description": "The filter used to filter the databases in the fleet by a specific Oracle Database deployment type.", + "type": "string" + }, + "filter_by_database_sub_type": { + "description": "The filter used to filter the databases in the fleet by a specific Oracle Database subtype.", + "type": "string" + }, + "filter_by_database_type": { + "description": "The filter used to filter the databases in the fleet by a specific Oracle Database type.", + "type": "string" + }, + "filter_by_database_version": { + "description": "The filter used to filter the databases in the fleet by a specific Oracle Database version.", + "type": "string" + }, + "filter_by_metric_names": { + "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "managed_database_group_id": { + "description": "The OCID of the Managed Database Group.", + "type": "string" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "required": [ + "compare_baseline_time", + "compare_target_time" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_database_ha_backup_details", + "description": "Returns HA and backup details for one managed database, including metrics and backup history for deep-dive analysis.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_database_ha_backup_details", + "skills": [ + "high-availability-data-guard-and-backups-fleet-single-db" + ], + "inputSchema": { + "properties": { + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + }, + "opc_named_credential_id": { + "description": "The OCID of the Named Credential.", + "type": "string" + } + }, + "required": [ + "managed_database_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_database_home_metrics", + "description": "Returns database home activity and resource usage summaries so admins can evaluate database home health and load.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_database_home_metrics", + "skills": [ + "database-health-and-core-metrics" + ], + "inputSchema": { + "properties": { + "end_time": { + "description": "The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\".", + "type": "string" + }, + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + }, + "start_time": { + "description": "The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\".", + "type": "string" + } + }, + "required": [ + "managed_database_id", + "start_time", + "end_time" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_database_insight", + "description": "Returns detailed database insight information such as `id`, `status`, `databaseId`, tags, and lifecycle timestamps.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "get_database_insight", + "skills": [ + "database-insights" + ], + "inputSchema": { + "properties": { + "database_insight_id": { + "description": "Unique database insight identifier", + "type": "string" + } + }, + "required": [ + "database_insight_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_dataguard_performance_metrics", + "description": "Returns Data Guard performance metrics for a managed database so you can assess lag, apply rate, and failover readiness.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_dataguard_performance_metrics", + "skills": [ + "high-availability-data-guard-and-backups-fleet-single-db" + ], + "inputSchema": { + "properties": { + "end_time": { + "description": "The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\".", + "type": "string" + }, + "filter_by_metric_names": { + "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.", + "type": "string" + }, + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + }, + "peer_database_compartment_id": { + "description": "The OCID of the compartment for which peer database metrics are required. This is not a mandatory parameter and in its absence, all the peer database metrics are returned.", + "type": "string" + }, + "start_time": { + "description": "The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\".", + "type": "string" + } + }, + "required": [ + "managed_database_id", + "start_time", + "end_time" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_db_management_private_endpoint", + "description": "Returns details for one Database Management private endpoint identified by dbManagementPrivateEndpointId.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_db_management_private_endpoint", + "skills": [ + "private-endpoints-and-connectivity" + ], + "inputSchema": { + "properties": { + "db_management_private_endpoint_id": { + "description": "The OCID of the Database Management private endpoint.", + "type": "string" + } + }, + "required": [ + "db_management_private_endpoint_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_exadata_infrastructure_fleet_health_metrics", + "description": "Returns Exadata infrastructure fleet health summaries so admins can assess capacity and utilization posture across infrastructure resources.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_exadata_infrastructure_fleet_health_metrics", + "skills": [ + "exadata-fleet-health-analytics" + ], + "inputSchema": { + "properties": { + "compare_baseline_time": { + "description": "The baseline time for metrics comparison.", + "type": "string" + }, + "compare_target_time": { + "description": "The target time for metrics comparison.", + "type": "string" + }, + "compare_type": { + "description": "The time window used for metrics comparison.\n\nAllowed values are: \"HOUR\", \"DAY\", \"WEEK\"", + "type": "string" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "filter_by_exadata_infrastructure_deployment_type": { + "description": "The filter used to filter the Exadata infrastructures in the fleet by a specific deployment type.\n\nAllowed values are: \"ONPREMISE\", \"EXADATA\", \"EXADATA_CC\"", + "type": "string" + }, + "filter_by_exadata_infrastructure_lifecycle_state": { + "description": "The filter used to filter the Exadata infrastructure in the fleet by its lifecycle state.\nIf the parameter is not provided, Exdata infrastructures in any state are returned.\n\nAllowed values are: \"CREATING\", \"ACTIVE\", \"INACTIVE\", \"UPDATING\", \"DELETING\", \"DELETED\", \"FAILED\", \"UNKNOWN\"", + "type": "string" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "required": [ + "compartment_id", + "compare_baseline_time", + "compare_target_time" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_external_asm", + "description": "Returns external ASM details (version, topology, lifecycle) to validate monitoring scope.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_external_asm", + "skills": [ + "external-asm-core" + ], + "inputSchema": { + "properties": { + "external_asm_id": { + "description": "The OCID of the external ASM.", + "type": "string" + } + }, + "required": [ + "external_asm_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_external_asm_configuration", + "description": "Returns external ASM configuration, including disk group setup, for configuration checks.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_external_asm_configuration", + "skills": [ + "external-asm-core" + ], + "inputSchema": { + "properties": { + "external_asm_id": { + "description": "The OCID of the external ASM.", + "type": "string" + }, + "opc_named_credential_id": { + "description": "The OCID of the Named Credential.", + "type": "string" + } + }, + "required": [ + "external_asm_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_external_asm_instance", + "description": "Returns detailed ASM instance properties for node-level validation and diagnostics.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_external_asm_instance", + "skills": [ + "external-asm-core" + ], + "inputSchema": { + "properties": { + "external_asm_instance_id": { + "description": "The OCID of the external ASM instance.", + "type": "string" + } + }, + "required": [ + "external_asm_instance_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_external_cluster", + "description": "Returns external cluster details to validate topology and lifecycle state.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_external_cluster", + "skills": [ + "external-db-runtime-topology" + ], + "inputSchema": { + "properties": { + "external_cluster_id": { + "description": "The OCID of the external cluster.", + "type": "string" + } + }, + "required": [ + "external_cluster_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_external_cluster_instance", + "description": "Returns external cluster instance details for instance-level runtime validation.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_external_cluster_instance", + "skills": [ + "external-db-runtime-topology" + ], + "inputSchema": { + "properties": { + "external_cluster_instance_id": { + "description": "The OCID of the external cluster instance.", + "type": "string" + } + }, + "required": [ + "external_cluster_instance_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_external_db_home", + "description": "Returns external DB home details for home-level configuration and lifecycle validation.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_external_db_home", + "skills": [ + "external-inventory-discovery-connectivity" + ], + "inputSchema": { + "properties": { + "external_db_home_id": { + "description": "The OCID of the external database home.", + "type": "string" + } + }, + "required": [ + "external_db_home_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_external_db_node", + "description": "Returns external DB node details for host-level runtime validation.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_external_db_node", + "skills": [ + "external-db-runtime-topology" + ], + "inputSchema": { + "properties": { + "external_db_node_id": { + "description": "The OCID of the external database node.", + "type": "string" + } + }, + "required": [ + "external_db_node_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_external_db_system", + "description": "Returns external DB system details to validate system identity, topology, and lifecycle state.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_external_db_system", + "skills": [ + "external-inventory-discovery-connectivity" + ], + "inputSchema": { + "properties": { + "external_db_system_id": { + "description": "The OCID of the external DB system.", + "type": "string" + } + }, + "required": [ + "external_db_system_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_external_db_system_connector", + "description": "Returns external DB system connector details to validate connector configuration and status.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_external_db_system_connector", + "skills": [ + "external-inventory-discovery-connectivity" + ], + "inputSchema": { + "properties": { + "external_db_system_connector_id": { + "description": "The OCID of the external connector.", + "type": "string" + } + }, + "required": [ + "external_db_system_connector_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_external_db_system_discovery", + "description": "Returns external DB system discovery details to review discovery scope, status, and results.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_external_db_system_discovery", + "skills": [ + "external-inventory-discovery-connectivity" + ], + "inputSchema": { + "properties": { + "external_db_system_discovery_id": { + "description": "The OCID of the external DB system discovery.", + "type": "string" + } + }, + "required": [ + "external_db_system_discovery_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_external_exadata_infrastructure", + "description": "Returns external Exadata infrastructure details to validate infrastructure identity and lifecycle state.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_external_exadata_infrastructure", + "skills": [ + "external-inventory-discovery-connectivity" + ], + "inputSchema": { + "properties": { + "external_exadata_infrastructure_id": { + "description": "The OCID of the Exadata infrastructure.", + "type": "string" + } + }, + "required": [ + "external_exadata_infrastructure_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_external_exadata_storage_connector", + "description": "Returns external Exadata storage connector details to validate connector configuration and status.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_external_exadata_storage_connector", + "skills": [ + "external-exadata-storage" + ], + "inputSchema": { + "properties": { + "external_exadata_storage_connector_id": { + "description": "The OCID of the connector to the Exadata storage server.", + "type": "string" + } + }, + "required": [ + "external_exadata_storage_connector_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_external_exadata_storage_grid", + "description": "Returns external Exadata storage grid details to review grid topology and member servers.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_external_exadata_storage_grid", + "skills": [ + "external-exadata-storage" + ], + "inputSchema": { + "properties": { + "external_exadata_storage_grid_id": { + "description": "The OCID of the Exadata storage grid.", + "type": "string" + } + }, + "required": [ + "external_exadata_storage_grid_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_external_exadata_storage_server", + "description": "Returns external Exadata storage server details for server-level validation and diagnostics.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_external_exadata_storage_server", + "skills": [ + "external-exadata-storage" + ], + "inputSchema": { + "properties": { + "external_exadata_storage_server_id": { + "description": "The OCID of the Exadata storage server.", + "type": "string" + } + }, + "required": [ + "external_exadata_storage_server_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_external_listener", + "description": "Returns external listener details for endpoint and lifecycle validation.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_external_listener", + "skills": [ + "external-db-runtime-topology" + ], + "inputSchema": { + "properties": { + "external_listener_id": { + "description": "The OCID of the external listener.", + "type": "string" + } + }, + "required": [ + "external_listener_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_iorm_plan", + "description": "Returns the I/O Resource Management (IORM) plan for an external Exadata storage server to review resource-allocation policy.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_iorm_plan", + "skills": [ + "external-exadata-storage" + ], + "inputSchema": { + "properties": { + "external_exadata_storage_server_id": { + "description": "The OCID of the Exadata storage server.", + "type": "string" + } + }, + "required": [ + "external_exadata_storage_server_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_job", + "description": "Returns one job definition so you can verify schedule, target scope, and execution settings.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_job", + "skills": [ + "job-orchestration-and-execution-tracking" + ], + "inputSchema": { + "properties": { + "job_id": { + "description": "The identifier of the job.", + "type": "string" + } + }, + "required": [ + "job_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_job_execution", + "description": "Returns one job execution with result details so you can investigate success or failure.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_job_execution", + "skills": [ + "job-orchestration-and-execution-tracking" + ], + "inputSchema": { + "properties": { + "job_execution_id": { + "description": "The identifier of the job execution.", + "type": "string" + } + }, + "required": [ + "job_execution_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_job_run", + "description": "Returns one job run so you can inspect run status and submission timeline.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_job_run", + "skills": [ + "job-orchestration-and-execution-tracking" + ], + "inputSchema": { + "properties": { + "job_run_id": { + "description": "The identifier of the job run.", + "type": "string" + } + }, + "required": [ + "job_run_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_managed_database", + "description": "Returns full details for a managed database identified by managedDatabaseId.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_managed_database", + "skills": [ + "managed-database-inventory-discover-and-inspect" + ], + "inputSchema": { + "properties": { + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + } + }, + "required": [ + "managed_database_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_managed_database_group", + "description": "Returns managed database group details so you can verify membership and configuration context.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_managed_database_group", + "skills": [ + "managed-database-groups-organize-and-target-sets-of-databases" + ], + "inputSchema": { + "properties": { + "managed_database_group_id": { + "description": "The OCID of the Managed Database Group.", + "type": "string" + } + }, + "required": [ + "managed_database_group_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_named_credential", + "description": "Returns details for one named credential so admins can review credential configuration context.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_named_credential", + "skills": [ + "credentials-and-authentication-preferred-named" + ], + "inputSchema": { + "properties": { + "named_credential_id": { + "description": "The OCID of the named credential.", + "type": "string" + } + }, + "required": [ + "named_credential_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_open_alert_history", + "description": "Returns open alert history from an external Exadata storage server to identify active operational issues.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_open_alert_history", + "skills": [ + "external-exadata-storage" + ], + "inputSchema": { + "properties": { + "external_exadata_storage_server_id": { + "description": "The OCID of the Exadata storage server.", + "type": "string" + } + }, + "required": [ + "external_exadata_storage_server_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_pdb_metrics", + "description": "Returns PDB resource usage summaries so admins can compare DB time, CPU, wait, storage, and memory usage across PDBs.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_pdb_metrics", + "skills": [ + "database-health-and-core-metrics" + ], + "inputSchema": { + "properties": { + "compare_type": { + "description": "The time window used for metrics comparison.\n\nAllowed values are: \"HOUR\", \"DAY\", \"WEEK\"", + "type": "string" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "end_time": { + "description": "The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\".", + "type": "string" + }, + "filter_by_metric_names": { + "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.", + "type": "string" + }, + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + }, + "start_time": { + "description": "The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\".", + "type": "string" + } + }, + "required": [ + "managed_database_id", + "start_time", + "end_time" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_peer_database_metrics", + "description": "Returns baseline-versus-target Data Guard metrics for peer databases so you can compare replication health over time.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_peer_database_metrics", + "skills": [ + "high-availability-data-guard-and-backups-fleet-single-db" + ], + "inputSchema": { + "properties": { + "compare_type": { + "description": "The time window used for metrics comparison.\n\nAllowed values are: \"HOUR\", \"DAY\", \"WEEK\"", + "type": "string" + }, + "end_time": { + "description": "The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\".", + "type": "string" + }, + "filter_by_metric_names": { + "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.", + "type": "string" + }, + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + }, + "peer_database_compartment_id": { + "description": "The OCID of the compartment for which peer database metrics are required. This is not a mandatory parameter and in its absence, all the peer database metrics are returned.", + "type": "string" + }, + "start_time": { + "description": "The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\".", + "type": "string" + } + }, + "required": [ + "managed_database_id", + "start_time", + "end_time" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_preferred_credential", + "description": "Returns one preferred credential assignment by credential name so admins can verify credential mapping for the database.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_preferred_credential", + "skills": [ + "credentials-and-authentication-preferred-named" + ], + "inputSchema": { + "properties": { + "credential_name": { + "description": "The name of the preferred credential.", + "type": "string" + }, + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + } + }, + "required": [ + "managed_database_id", + "credential_name" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_tablespace", + "description": "Returns detailed attributes for one tablespace identified by tablespaceName within a managed database.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_tablespace", + "skills": [ + "storage-and-space-tablespaces-asm" + ], + "inputSchema": { + "properties": { + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + }, + "opc_named_credential_id": { + "description": "The OCID of the Named Credential.", + "type": "string" + }, + "tablespace_name": { + "description": "The name of the tablespace.", + "type": "string" + } + }, + "required": [ + "managed_database_id", + "tablespace_name" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_top_sql_cpu_activity", + "description": "Returns top SQL CPU activity from an external Exadata storage server for workload hotspot triage.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_top_sql_cpu_activity", + "skills": [ + "external-exadata-storage" + ], + "inputSchema": { + "properties": { + "external_exadata_storage_server_id": { + "description": "The OCID of the Exadata storage server.", + "type": "string" + } + }, + "required": [ + "external_exadata_storage_server_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_user", + "description": "Returns details for one user identified by userName in a managed database.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_user", + "skills": [ + "users-and-privileges-rbac-audit" + ], + "inputSchema": { + "properties": { + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + }, + "opc_named_credential_id": { + "description": "The OCID of the Named Credential.", + "type": "string" + }, + "user_name": { + "description": "The name of the user whose details are to be viewed.", + "type": "string" + } + }, + "required": [ + "managed_database_id", + "user_name" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "get_work_request", + "description": "Returns status for one work request so admins can confirm completion state and execution outcome.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_work_request", + "skills": [ + "async-work-requests-long-running-operations" + ], + "inputSchema": { + "properties": { + "work_request_id": { + "description": "The OCID of the asynchronous work request.", + "type": "string" + } + }, + "required": [ + "work_request_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_addm_db_finding_categories", + "description": "Summarizes ADDM finding categories with counts and affected databases.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_addm_db_finding_categories", + "skills": [ + "database-addm-analysis" + ], + "inputSchema": { + "properties": { + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "compartment_id_in_subtree": { + "description": "A flag to search all resources within a given compartment and all sub-compartments.", + "type": "boolean" + }, + "database_id": { + "description": "Optional list of database OCIDs of the associated DBaaS entity.", + "items": {}, + "type": "array" + }, + "id": { + "description": "Optional list of database insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "sort_by": { + "description": "Field name for sorting the finding categories Allowed values are: \"name\"", + "type": "string" + }, + "sort_order": { + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "required": [ + "compartment_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_addm_db_findings_time_series", + "description": "Shows the trend of ADDM finding counts over time by database.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_addm_db_findings_time_series", + "skills": [ + "database-addm-analysis" + ], + "inputSchema": { + "properties": { + "category_name": { + "description": "Optional value filter to match the finding category exactly.", + "type": "string" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "compartment_id_in_subtree": { + "description": "A flag to search all resources within a given compartment and all sub-compartments.", + "type": "boolean" + }, + "database_id": { + "description": "Optional list of database OCIDs of the associated DBaaS entity.", + "items": {}, + "type": "array" + }, + "id": { + "description": "Optional list of database insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "instance_number": { + "description": "The optional single value query parameter to filter by database instance number.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "sort_by": { + "description": "Field name for sorting the ADDM finding time series summary data Allowed values are: \"timestamp\"", + "type": "string" + }, + "sort_order": { + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "time_interval_end": { + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "format": "date-time", + "type": "string" + }, + "time_interval_start": { + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "compartment_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_addm_db_parameter_categories", + "description": "Lists ADDM parameter categories used to filter and group parameter findings.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_addm_db_parameter_categories", + "skills": [ + "database-addm-analysis" + ], + "inputSchema": { + "properties": { + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "compartment_id_in_subtree": { + "description": "A flag to search all resources within a given compartment and all sub-compartments.", + "type": "boolean" + }, + "database_id": { + "description": "Optional list of database OCIDs of the associated DBaaS entity.", + "items": {}, + "type": "array" + }, + "id": { + "description": "Optional list of database insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "sort_by": { + "description": "Field name for sorting the database parameter categories Allowed values are: \"name\"", + "type": "string" + }, + "sort_order": { + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "required": [ + "compartment_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_addm_db_recommendation_categories", + "description": "Summarizes ADDM recommendation categories with counts and impacted databases.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_addm_db_recommendation_categories", + "skills": [ + "database-addm-analysis" + ], + "inputSchema": { + "properties": { + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "compartment_id_in_subtree": { + "description": "A flag to search all resources within a given compartment and all sub-compartments.", + "type": "boolean" + }, + "database_id": { + "description": "Optional list of database OCIDs of the associated DBaaS entity.", + "items": {}, + "type": "array" + }, + "id": { + "description": "Optional list of database insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "sort_by": { + "description": "Field name for sorting the recommendation categories Allowed values are: \"name\"", + "type": "string" + }, + "sort_order": { + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "required": [ + "compartment_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_addm_db_recommendations_time_series", + "description": "Shows ADDM recommendation volume trend over time by database/category.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_addm_db_recommendations_time_series", + "skills": [ + "database-addm-analysis" + ], + "inputSchema": { + "properties": { + "category_name": { + "description": "Optional value filter to match the finding category exactly.", + "type": "string" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "compartment_id_in_subtree": { + "description": "A flag to search all resources within a given compartment and all sub-compartments.", + "type": "boolean" + }, + "database_id": { + "description": "Optional list of database OCIDs of the associated DBaaS entity.", + "items": {}, + "type": "array" + }, + "id": { + "description": "Optional list of database insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "instance_number": { + "description": "The optional single value query parameter to filter by database instance number.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "name": { + "description": "Optional filter to return only resources whose name exactly matches the substring given. The match is case sensitive. Only considered when categoryName is DATABASE_CONFIGURATION.", + "type": "string" + }, + "name_contains": { + "description": "Optional filter to return only resources whose name contains the substring given. The match is not case sensitive. Only considered when categoryName is DATABASE_CONFIGURATION.", + "type": "string" + }, + "owner_or_name_contains": { + "description": "Optional filter to return only resources whose owner or name contains the substring given. The match is not case sensitive. Only considered when categoryName is SCHEMA_OBJECT.", + "type": "string" + }, + "sort_by": { + "description": "Field name for sorting the ADDM recommendation time series summary data Allowed values are: \"timestamp\"", + "type": "string" + }, + "sort_order": { + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "sql_identifier": { + "description": "Optional filter to return only resources whose sql id matches the value given. Only considered when categoryName is SQL_TUNING.", + "type": "string" + }, + "time_interval_end": { + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "format": "date-time", + "type": "string" + }, + "time_interval_start": { + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "compartment_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_addm_dbs", + "description": "Lists databases included in ADDM analysis for the selected scope and time interval.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_addm_dbs", + "skills": [ + "database-addm-analysis" + ], + "inputSchema": { + "properties": { + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "compartment_id_in_subtree": { + "description": "A flag to search all resources within a given compartment and all sub-compartments.", + "type": "boolean" + }, + "database_id": { + "description": "Optional list of database OCIDs of the associated DBaaS entity.", + "items": {}, + "type": "array" + }, + "id": { + "description": "Optional list of database insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "sort_by": { + "description": "Field name for sorting ADDM database data Allowed values are: \"databaseName\", \"numberOfFindings\"", + "type": "string" + }, + "sort_order": { + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "time_interval_end": { + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "format": "date-time", + "type": "string" + }, + "time_interval_start": { + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "compartment_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_alert_logs", + "description": "Returns alert log entries for a managed database so you can inspect warning/error history over a time range.", + "service": "dbm", + "client": "DiagnosabilityClient", + "operation": "list_alert_logs", + "skills": [ + "logs-and-alerts-attention-alert-logs" + ], + "inputSchema": { + "properties": { + "is_regular_expression": { + "description": "The flag to indicate whether the search text is regular expression or not.", + "type": "boolean" + }, + "level_filter": { + "description": "The optional parameter to filter the alert logs by log level.\n\nAllowed values are: \"CRITICAL\", \"SEVERE\", \"IMPORTANT\", \"NORMAL\", \"ALL\"", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "log_search_text": { + "description": "The optional query parameter to filter the attention or alert logs by search text.", + "type": "string" + }, + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + }, + "opc_named_credential_id": { + "description": "The OCID of the Named Credential.", + "type": "string" + }, + "sort_by": { + "description": "The possible sortBy values of attention logs.\n\nAllowed values are: \"LEVEL\", \"TYPE\", \"MESSAGE\", \"TIMESTAMP\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "time_greater_than_or_equal_to": { + "description": "The optional greater than or equal to timestamp to filter the logs.", + "format": "date-time", + "type": "string" + }, + "time_less_than_or_equal_to": { + "description": "The optional less than or equal to timestamp to filter the logs.", + "format": "date-time", + "type": "string" + }, + "type_filter": { + "description": "The optional parameter to filter the attention or alert logs by type.\n\nAllowed values are: \"UNKNOWN\", \"INCIDENT_ERROR\", \"ERROR\", \"WARNING\", \"NOTIFICATION\", \"TRACE\", \"ALL\"", + "type": "string" + } + }, + "required": [ + "managed_database_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_asm_properties", + "description": "Returns ASM properties for a managed database so you can inspect storage configuration values.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_asm_properties", + "skills": [ + "storage-and-space-tablespaces-asm" + ], + "inputSchema": { + "properties": { + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + }, + "name": { + "description": "A filter to return only resources that match the entire name.", + "type": "string" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "required": [ + "managed_database_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_associated_databases", + "description": "Returns databases associated with a specific Database Management private endpoint so you can validate endpoint usage.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_associated_databases", + "skills": [ + "private-endpoints-and-connectivity" + ], + "inputSchema": { + "properties": { + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "db_management_private_endpoint_id": { + "description": "The OCID of the Database Management private endpoint.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "sort_by": { + "description": "The option to sort databases using a specific Database Management private endpoint.\n\nAllowed values are: \"timeRegistered\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "required": [ + "db_management_private_endpoint_id", + "compartment_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_attention_logs", + "description": "Returns attention log entries for a managed database so you can review urgent operational messages and actions.", + "service": "dbm", + "client": "DiagnosabilityClient", + "operation": "list_attention_logs", + "skills": [ + "logs-and-alerts-attention-alert-logs" + ], + "inputSchema": { + "properties": { + "is_regular_expression": { + "description": "The flag to indicate whether the search text is regular expression or not.", + "type": "boolean" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "log_search_text": { + "description": "The optional query parameter to filter the attention or alert logs by search text.", + "type": "string" + }, + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + }, + "opc_named_credential_id": { + "description": "The OCID of the Named Credential.", + "type": "string" + }, + "sort_by": { + "description": "The possible sortBy values of attention logs.\n\nAllowed values are: \"URGENCY\", \"TYPE\", \"MESSAGE\", \"TIMESTAMP\", \"SCOPE\", \"TARGET_USER\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "time_greater_than_or_equal_to": { + "description": "The optional greater than or equal to timestamp to filter the logs.", + "format": "date-time", + "type": "string" + }, + "time_less_than_or_equal_to": { + "description": "The optional less than or equal to timestamp to filter the logs.", + "format": "date-time", + "type": "string" + }, + "type_filter": { + "description": "The optional parameter to filter the attention or alert logs by type.\n\nAllowed values are: \"UNKNOWN\", \"INCIDENT_ERROR\", \"ERROR\", \"WARNING\", \"NOTIFICATION\", \"TRACE\", \"ALL\"", + "type": "string" + }, + "urgency_filter": { + "description": "The optional parameter to filter the attention logs by urgency.\n\nAllowed values are: \"IMMEDIATE\", \"SOON\", \"DEFERRABLE\", \"INFO\", \"ALL\"", + "type": "string" + } + }, + "required": [ + "managed_database_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_awr_database_snapshots", + "description": "Returns AWR snapshots for a database, including snapshot ID, begin time, and interval boundaries.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_awr_database_snapshots", + "skills": [ + "awrhubs" + ], + "inputSchema": { + "properties": { + "awr_hub_id": { + "description": "Unique Awr Hub identifier", + "type": "string" + }, + "awr_source_database_identifier": { + "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.", + "type": "string" + }, + "begin_snapshot_identifier_greater_than_or_equal_to": { + "description": "The optional greater than or equal to filter on the snapshot ID.", + "type": "integer" + }, + "end_snapshot_identifier_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the snapshot Identifier.", + "type": "integer" + }, + "instance_number": { + "description": "The optional single value query parameter to filter by database instance number.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "sort_by": { + "description": "The option to sort the AWR snapshot summary data. Allowed values are: \"TIME_BEGIN\", \"SNAPSHOT_ID\"", + "type": "string" + }, + "sort_order": { + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "time_greater_than_or_equal_to": { + "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "format": "date-time", + "type": "string" + }, + "time_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "awr_hub_id", + "awr_source_database_identifier" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_awr_databases", + "description": "Returns AWR source databases registered in a hub, including database names, identifiers, and most recent interval metadata.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_awr_databases", + "skills": [ + "awrhubs" + ], + "inputSchema": { + "properties": { + "awr_hub_id": { + "description": "Unique Awr Hub identifier", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "name": { + "description": "The optional single value query parameter to filter the entity name.", + "type": "string" + }, + "sort_by": { + "description": "The option to sort the AWR summary data. Allowed values are: \"END_INTERVAL_TIME\", \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "time_greater_than_or_equal_to": { + "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "format": "date-time", + "type": "string" + }, + "time_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "awr_hub_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_awr_db_snapshots", + "description": "Lists available AWR snapshots (snapshot IDs and begin/end times) used for reports and comparisons.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_awr_db_snapshots", + "skills": [ + "awr-discovery-primitives", + "awr-historical-performance-analysis", + "database-performance-analysis" + ], + "inputSchema": { + "properties": { + "awr_db_id": { + "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.", + "type": "string" + }, + "begin_sn_id_greater_than_or_equal_to": { + "description": "The optional greater than or equal to filter on the snapshot ID.", + "type": "integer" + }, + "container_id": { + "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.", + "type": "integer" + }, + "end_sn_id_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the snapshot ID.", + "type": "integer" + }, + "inst_num": { + "description": "The optional single value query parameter to filter the database instance number.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + }, + "opc_named_credential_id": { + "description": "The OCID of the Named Credential.", + "type": "string" + }, + "sort_by": { + "description": "The option to sort the AWR snapshot summary data.\n\nAllowed values are: \"TIME_BEGIN\", \"SNAPSHOT_ID\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "time_greater_than_or_equal_to": { + "description": "The optional greater than or equal to query parameter to filter the timestamp.", + "format": "date-time", + "type": "string" + }, + "time_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the timestamp.", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "managed_database_id", + "awr_db_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_awr_dbs", + "description": "Returns AWR databases and snapshot coverage for a managed database.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_awr_dbs", + "skills": [ + "awr-discovery-primitives" + ], + "inputSchema": { + "properties": { + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + }, + "name": { + "description": "The optional single value query parameter to filter the entity name.", + "type": "string" + }, + "opc_named_credential_id": { + "description": "The OCID of the Named Credential.", + "type": "string" + }, + "sort_by": { + "description": "The option to sort the AWR summary data.\n\nAllowed values are: \"END_INTERVAL_TIME\", \"NAME\"", + "type": "integer" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "time_greater_than_or_equal_to": { + "description": "The optional greater than or equal to query parameter to filter the timestamp.", + "format": "date-time", + "type": "string" + }, + "time_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the timestamp.", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "managed_database_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_cloud_asm_disk_groups", + "description": "Lists the cloud ASM disk groups.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_cloud_asm_disk_groups", + "skills": [ + "cloud-asm-core" + ], + "inputSchema": { + "properties": { + "cloud_asm_id": { + "description": "The OCID of the cloud ASM.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "opc_named_credential_id": { + "description": "The OCID of the Named Credential.", + "type": "string" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "required": [ + "cloud_asm_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_cloud_asm_instances", + "description": "Lists the cloud ASM instances.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_cloud_asm_instances", + "skills": [ + "cloud-asm-core" + ], + "inputSchema": { + "properties": { + "cloud_asm_id": { + "description": "The OCID of the cloud ASM.", + "type": "string" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "display_name": { + "description": "A filter to only return the resources that match the entire display name.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "type": "object" + }, + "mutable": false + }, + { + "name": "list_cloud_asm_users", + "description": "Lists the cloud ASM users.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_cloud_asm_users", + "skills": [ + "cloud-asm-core" + ], + "inputSchema": { + "properties": { + "cloud_asm_id": { + "description": "The OCID of the cloud ASM.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "opc_named_credential_id": { + "description": "The OCID of the Named Credential.", + "type": "string" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "required": [ + "cloud_asm_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_cloud_asms", + "description": "Lists the cloud ASMs.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_cloud_asms", + "skills": [ + "cloud-asm-core" + ], + "inputSchema": { + "properties": { + "cloud_db_system_id": { + "description": "The OCID of the cloud DB system.", + "type": "string" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "display_name": { + "description": "A filter to only return the resources that match the entire display name.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "type": "object" + }, + "mutable": false + }, + { + "name": "list_cloud_cluster_instances", + "description": "Lists the cloud cluster instances.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_cloud_cluster_instances", + "skills": [ + "cloud-db-runtime-topology" + ], + "inputSchema": { + "properties": { + "cloud_cluster_id": { + "description": "The OCID of the cloud cluster.", + "type": "string" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "display_name": { + "description": "A filter to only return the resources that match the entire display name.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "type": "object" + }, + "mutable": false + }, + { + "name": "list_cloud_clusters", + "description": "Lists the cloud clusters.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_cloud_clusters", + "skills": [ + "cloud-db-runtime-topology" + ], + "inputSchema": { + "properties": { + "cloud_db_system_id": { + "description": "The OCID of the cloud DB system.", + "type": "string" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "display_name": { + "description": "A filter to only return the resources that match the entire display name.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "type": "object" + }, + "mutable": false + }, + { + "name": "list_cloud_databases", + "description": "Returns cloud databases for a Cloud DB system so admins can verify database inventory under the selected system.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_cloud_databases", + "skills": [ + "cloud-inventory-discovery-connectivity" + ], + "inputSchema": { + "properties": { + "cloud_db_system_id": { + "description": "The OCID of the cloud DB system.", + "type": "string" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "display_name": { + "description": "A filter to only return the resources that match the entire display name.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "required": [ + "cloud_db_system_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_cloud_db_homes", + "description": "Lists the cloud DB homes.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_cloud_db_homes", + "skills": [ + "cloud-db-runtime-topology" + ], + "inputSchema": { + "properties": { + "cloud_db_system_id": { + "description": "The OCID of the cloud DB system.", + "type": "string" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "display_name": { + "description": "A filter to only return the resources that match the entire display name.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "type": "object" + }, + "mutable": false + }, + { + "name": "list_cloud_db_nodes", + "description": "Lists the cloud DB nodes.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_cloud_db_nodes", + "skills": [ + "cloud-db-runtime-topology" + ], + "inputSchema": { + "properties": { + "cloud_db_system_id": { + "description": "The OCID of the cloud DB system.", + "type": "string" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "display_name": { + "description": "A filter to only return the resources that match the entire display name.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "type": "object" + }, + "mutable": false + }, + { + "name": "list_cloud_db_system_connectors", + "description": "Lists the cloud connectors.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_cloud_db_system_connectors", + "skills": [ + "cloud-db-runtime-topology" + ], + "inputSchema": { + "properties": { + "cloud_db_system_id": { + "description": "The OCID of the cloud DB system.", + "type": "string" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "display_name": { + "description": "A filter to only return the resources that match the entire display name.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "type": "object" + }, + "mutable": false + }, + { + "name": "list_cloud_db_system_discoveries", + "description": "Returns Cloud DB system discovery inventory so admins can review discovered targets and discovery state.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_cloud_db_system_discoveries", + "skills": [ + "cloud-inventory-discovery-connectivity" + ], + "inputSchema": { + "properties": { + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "display_name": { + "description": "A filter to only return the resources that match the entire display name.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "required": [ + "compartment_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_cloud_db_systems", + "description": "Returns Cloud DB system inventory so admins can identify managed targets and runtime scope.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_cloud_db_systems", + "skills": [ + "cloud-inventory-discovery-connectivity" + ], + "inputSchema": { + "properties": { + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "dbaas_parent_infrastructure_id": { + "description": "The OCID of the dbaas parent infrastructure of the cloud DB system.", + "type": "string" + }, + "deployment_type": { + "description": "A filter to return cloud DB systems of the specified deployment type.\n\nAllowed values are: \"VM\", \"EXADATA\", \"EXADATA_CC\", \"EXADATA_XS\"", + "type": "string" + }, + "display_name": { + "description": "A filter to only return the resources that match the entire display name.", + "type": "string" + }, + "lifecycle_state": { + "description": "The lifecycle state of a resource.\n\nAllowed values are: \"CREATING\", \"ACTIVE\", \"UPDATING\", \"DELETING\", \"DELETED\", \"INACTIVE\"", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "required": [ + "compartment_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_cloud_exadata_infrastructures", + "description": "Returns Cloud Exadata infrastructure inventory so admins can select the correct infrastructure scope for discovery and connectivity checks.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_cloud_exadata_infrastructures", + "skills": [ + "cloud-inventory-discovery-connectivity" + ], + "inputSchema": { + "properties": { + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "display_name": { + "description": "The optional single value query filter parameter on the entity display name.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "required": [ + "compartment_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_cloud_exadata_storage_connectors", + "description": "Returns Cloud Exadata storage connector inventory so admins can review available connector targets and connectivity coverage.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_cloud_exadata_storage_connectors", + "skills": [ + "cloud-exadata-storage" + ], + "inputSchema": { + "properties": { + "cloud_exadata_infrastructure_id": { + "description": "The OCID of the Exadata infrastructure.", + "type": "string" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "display_name": { + "description": "The optional single value query filter parameter on the entity display name.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "required": [ + "compartment_id", + "cloud_exadata_infrastructure_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_cloud_exadata_storage_servers", + "description": "Returns Cloud Exadata storage server inventory so admins can identify server targets for storage diagnostics.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_cloud_exadata_storage_servers", + "skills": [ + "cloud-exadata-storage" + ], + "inputSchema": { + "properties": { + "cloud_exadata_infrastructure_id": { + "description": "The OCID of the Exadata infrastructure.", + "type": "string" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "display_name": { + "description": "The optional single value query filter parameter on the entity display name.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "required": [ + "compartment_id", + "cloud_exadata_infrastructure_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_cloud_listener_services", + "description": "Lists the database services registered with the cloud listener.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_cloud_listener_services", + "skills": [ + "cloud-db-runtime-topology" + ], + "inputSchema": { + "properties": { + "cloud_listener_id": { + "description": "The OCID of the cloud listener.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + }, + "opc_named_credential_id": { + "description": "The OCID of the Named Credential.", + "type": "string" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "required": [ + "cloud_listener_id", + "managed_database_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_cloud_listeners", + "description": "Lists the cloud listeners.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_cloud_listeners", + "skills": [ + "cloud-db-runtime-topology" + ], + "inputSchema": { + "properties": { + "cloud_db_system_id": { + "description": "The OCID of the cloud DB system.", + "type": "string" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "display_name": { + "description": "A filter to only return the resources that match the entire display name.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "type": "object" + }, + "mutable": false + }, + { + "name": "list_consumer_group_privileges", + "description": "Returns consumer group privileges granted to a specific user.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_consumer_group_privileges", + "skills": [ + "users-and-privileges-rbac-audit" + ], + "inputSchema": { + "properties": { + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + }, + "name": { + "description": "A filter to return only resources that match the entire name.", + "type": "string" + }, + "opc_named_credential_id": { + "description": "The OCID of the Named Credential.", + "type": "string" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018NAME\u2019 is ascending. The \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "user_name": { + "description": "The name of the user whose details are to be viewed.", + "type": "string" + } + }, + "required": [ + "managed_database_id", + "user_name" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_data_access_containers", + "description": "Returns data access containers available to the specified user.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_data_access_containers", + "skills": [ + "users-and-privileges-rbac-audit" + ], + "inputSchema": { + "properties": { + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + }, + "name": { + "description": "A filter to return only resources that match the entire name.", + "type": "string" + }, + "opc_named_credential_id": { + "description": "The OCID of the Named Credential.", + "type": "string" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018NAME\u2019 is ascending. The \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "user_name": { + "description": "The name of the user whose details are to be viewed.", + "type": "string" + } + }, + "required": [ + "managed_database_id", + "user_name" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_database_configurations", + "description": "Lists database configuration details used by Operations Insights, such as database name/type/version, CDB or PDB context, processor count, and tags.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_database_configurations", + "skills": [ + "database-insights" + ], + "inputSchema": { + "properties": { + "cdb_name": { + "description": "Filter by one or more cdb name.", + "items": {}, + "type": "array" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "compartment_id_in_subtree": { + "description": "A flag to search all resources within a given compartment and all sub-compartments.", + "type": "boolean" + }, + "database_id": { + "description": "Optional list of database OCIDs of the associated DBaaS entity.", + "items": {}, + "type": "array" + }, + "database_type": { + "description": "Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: \"ADW-S\", \"ATP-S\", \"ADW-D\", \"ATP-D\", \"EXTERNAL-PDB\", \"EXTERNAL-NONCDB\", \"COMANAGED-VM-CDB\", \"COMANAGED-VM-PDB\", \"COMANAGED-VM-NONCDB\", \"COMANAGED-BM-CDB\", \"COMANAGED-BM-PDB\", \"COMANAGED-BM-NONCDB\", \"COMANAGED-EXACS-CDB\", \"COMANAGED-EXACS-PDB\", \"COMANAGED-EXACS-NONCDB\", \"COMANAGED-EXACC-CDB\", \"COMANAGED-EXACC-PDB\", \"COMANAGED-EXACC-NONCDB\", \"MDS-MYSQL\", \"EXTERNAL-MYSQL\", \"ATP-EXACC\", \"ADW-EXACC\", \"EXTERNAL-ADW\", \"EXTERNAL-ATP\", \"LH-D\", \"APEX-D\", \"AJD-D\", \"AVD-D\", \"LH-S\", \"APEX-S\", \"AJD-S\", \"AVD-S\", \"LH-EXACC\", \"APEX-EXACC\", \"AJD-EXACC\", \"AVD-EXACC\"", + "items": {}, + "type": "array" + }, + "enterprise_manager_bridge_id": { + "description": "Unique Enterprise Manager bridge identifier", + "type": "string" + }, + "exadata_insight_id": { + "description": "Optional list of exadata insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "host_name": { + "description": "Filter by one or more hostname.", + "items": {}, + "type": "array" + }, + "id": { + "description": "Optional list of database insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "sort_by": { + "description": "Database configuration list sort options. If `fields` parameter is selected, the `sortBy` parameter must be one of the fields specified. Allowed values are: \"databaseName\", \"databaseDisplayName\", \"databaseType\"", + "type": "string" + }, + "sort_order": { + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "vmcluster_name": { + "description": "Optional list of Exadata Insight VM cluster name.", + "items": {}, + "type": "array" + } + }, + "type": "object" + }, + "mutable": false + }, + { + "name": "list_database_insights", + "description": "Lists database insight resources and status (for example ENABLED/DISABLED), lifecycle state, and key database identifiers.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_database_insights", + "skills": [ + "database-insights" + ], + "inputSchema": { + "properties": { + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "compartment_id_in_subtree": { + "description": "A flag to search all resources within a given compartment and all sub-compartments.", + "type": "boolean" + }, + "database_id": { + "description": "Optional list of database OCIDs of the associated DBaaS entity.", + "items": {}, + "type": "array" + }, + "database_type": { + "description": "Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: \"ADW-S\", \"ATP-S\", \"ADW-D\", \"ATP-D\", \"EXTERNAL-PDB\", \"EXTERNAL-NONCDB\", \"COMANAGED-VM-CDB\", \"COMANAGED-VM-PDB\", \"COMANAGED-VM-NONCDB\", \"COMANAGED-BM-CDB\", \"COMANAGED-BM-PDB\", \"COMANAGED-BM-NONCDB\", \"COMANAGED-EXACS-CDB\", \"COMANAGED-EXACS-PDB\", \"COMANAGED-EXACS-NONCDB\", \"COMANAGED-EXACC-CDB\", \"COMANAGED-EXACC-PDB\", \"COMANAGED-EXACC-NONCDB\", \"MDS-MYSQL\", \"EXTERNAL-MYSQL\", \"ATP-EXACC\", \"ADW-EXACC\", \"EXTERNAL-ADW\", \"EXTERNAL-ATP\", \"LH-D\", \"APEX-D\", \"AJD-D\", \"AVD-D\", \"LH-S\", \"APEX-S\", \"AJD-S\", \"AVD-S\", \"LH-EXACC\", \"APEX-EXACC\", \"AJD-EXACC\", \"AVD-EXACC\"", + "items": {}, + "type": "array" + }, + "enterprise_manager_bridge_id": { + "description": "Unique Enterprise Manager bridge identifier", + "type": "string" + }, + "exadata_insight_id": { + "description": "OCID of exadata insight resource.", + "type": "string" + }, + "fields": { + "description": "Specifies the fields to return in a database summary response. By default all fields are returned if omitted. Allowed values are: \"compartmentId\", \"databaseName\", \"databaseDisplayName\", \"databaseType\", \"databaseVersion\", \"databaseHostNames\", \"freeformTags\", \"definedTags\"", + "items": {}, + "type": "array" + }, + "id": { + "description": "Optional list of database insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "lifecycle_state": { + "description": "Lifecycle states Allowed values are: \"CREATING\", \"UPDATING\", \"ACTIVE\", \"DELETING\", \"DELETED\", \"FAILED\", \"NEEDS_ATTENTION\"", + "items": {}, + "type": "array" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "opsi_private_endpoint_id": { + "description": "Unique Operations Insights PrivateEndpoint identifier", + "type": "string" + }, + "sort_by": { + "description": "Database insight list sort options. If `fields` parameter is selected, the `sortBy` parameter must be one of the fields specified. Allowed values are: \"databaseName\", \"databaseDisplayName\", \"databaseType\"", + "type": "string" + }, + "sort_order": { + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "status": { + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"", + "items": {}, + "type": "array" + } + }, + "type": "object" + }, + "mutable": false + }, + { + "name": "list_database_parameters", + "description": "Returns database parameter inventory so admins can review effective configuration values and identify parameter drift.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_database_parameters", + "skills": [ + "database-configuration-and-parameters" + ], + "inputSchema": { + "properties": { + "is_allowed_values_included": { + "description": "When true, results include a list of valid values for parameters (if applicable).", + "type": "boolean" + }, + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + }, + "name": { + "description": "A filter to return all parameters that have the text given in their names.", + "type": "string" + }, + "opc_named_credential_id": { + "description": "The OCID of the Named Credential.", + "type": "string" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "source": { + "description": "The source used to list database parameters. `CURRENT` is used to get the\ndatabase parameters that are currently in effect for the database\ninstance. `SPFILE` is used to list parameters from the server parameter\nfile. Default is `CURRENT`.\n\nAllowed values are: \"CURRENT\", \"SPFILE\"", + "type": "string" + } + }, + "required": [ + "managed_database_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_db_management_private_endpoints", + "description": "Returns Database Management private endpoints in a compartment so you can discover endpoint IDs and connectivity scope.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_db_management_private_endpoints", + "skills": [ + "private-endpoints-and-connectivity" + ], + "inputSchema": { + "properties": { + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "is_cluster": { + "description": "The option to filter Database Management private endpoints that can used for Oracle Databases in a cluster. This should be used along with the vcnId query parameter.", + "type": "boolean" + }, + "is_dns_resolution_enabled": { + "description": "The option to filter Database Management private endpoints which are endbled with DNS proxy server. This should be used along with the vcnId query parameter.\nOnly one of this parameter and IsClusterDbManagementPrivateEndpointQueryParam should be set to true at one time.", + "type": "boolean" + }, + "lifecycle_state": { + "description": "The lifecycle state of a resource.\n\nAllowed values are: \"CREATING\", \"UPDATING\", \"ACTIVE\", \"DELETING\", \"DELETED\", \"FAILED\"", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "name": { + "description": "A filter to return only resources that match the entire name.", + "type": "string" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "vcn_id": { + "description": "The OCID of the VCN.", + "type": "string" + } + }, + "required": [ + "compartment_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_exadata_configurations", + "description": "Returns Exadata configuration records, including system identity and configuration `items` for managed Exadata resources.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_exadata_configurations", + "skills": [ + "exadata-insights" + ], + "inputSchema": { + "properties": { + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "compartment_id_in_subtree": { + "description": "A flag to search all resources within a given compartment and all sub-compartments.", + "type": "boolean" + }, + "exadata_insight_id": { + "description": "Optional list of exadata insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "exadata_type": { + "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC.", + "items": {}, + "type": "array" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "sort_by": { + "description": "Exadata configuration list sort options. If `fields` parameter is selected, the `sortBy` parameter must be one of the fields specified. Allowed values are: \"exadataName\", \"exadataDisplayName\", \"exadataType\"", + "type": "string" + }, + "sort_order": { + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "type": "object" + }, + "mutable": false + }, + { + "name": "list_external_asm_disk_groups", + "description": "Lists disk groups for an external ASM to review capacity layout and utilization.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_external_asm_disk_groups", + "skills": [ + "external-asm-core" + ], + "inputSchema": { + "properties": { + "external_asm_id": { + "description": "The OCID of the external ASM.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "opc_named_credential_id": { + "description": "The OCID of the Named Credential.", + "type": "string" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "required": [ + "external_asm_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_external_asm_instances", + "description": "Lists ASM instances for an external ASM so you can map hosts and lifecycle state.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_external_asm_instances", + "skills": [ + "external-asm-core" + ], + "inputSchema": { + "properties": { + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "display_name": { + "description": "A filter to only return the resources that match the entire display name.", + "type": "string" + }, + "external_asm_id": { + "description": "The OCID of the external ASM.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "type": "object" + }, + "mutable": false + }, + { + "name": "list_external_asm_users", + "description": "Lists ASM users and privileges for access review and troubleshooting.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_external_asm_users", + "skills": [ + "external-asm-core" + ], + "inputSchema": { + "properties": { + "external_asm_id": { + "description": "The OCID of the external ASM.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "opc_named_credential_id": { + "description": "The OCID of the Named Credential.", + "type": "string" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "required": [ + "external_asm_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_external_asms", + "description": "Lists external ASM resources in an external DB system so you can identify target ASM IDs.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_external_asms", + "skills": [ + "external-asm-core" + ], + "inputSchema": { + "properties": { + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "display_name": { + "description": "A filter to only return the resources that match the entire display name.", + "type": "string" + }, + "external_db_system_id": { + "description": "The OCID of the external DB system.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "type": "object" + }, + "mutable": false + }, + { + "name": "list_external_cluster_instances", + "description": "Lists external cluster instances to map instances to the target cluster.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_external_cluster_instances", + "skills": [ + "external-db-runtime-topology" + ], + "inputSchema": { + "properties": { + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "display_name": { + "description": "A filter to only return the resources that match the entire display name.", + "type": "string" + }, + "external_cluster_id": { + "description": "The OCID of the external cluster.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "type": "object" + }, + "mutable": false + }, + { + "name": "list_external_clusters", + "description": "Lists external clusters in an external DB system so you can identify cluster IDs.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_external_clusters", + "skills": [ + "external-db-runtime-topology" + ], + "inputSchema": { + "properties": { + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "display_name": { + "description": "A filter to only return the resources that match the entire display name.", + "type": "string" + }, + "external_db_system_id": { + "description": "The OCID of the external DB system.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "type": "object" + }, + "mutable": false + }, + { + "name": "list_external_databases", + "description": "Lists external databases so you can identify database targets under discovered DB systems.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_external_databases", + "skills": [ + "external-inventory-discovery-connectivity" + ], + "inputSchema": { + "properties": { + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "display_name": { + "description": "A filter to only return the resources that match the entire display name.", + "type": "string" + }, + "external_database_id": { + "description": "The OCID of the external database.", + "type": "string" + }, + "external_db_system_id": { + "description": "The OCID of the external DB system.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "type": "object" + }, + "mutable": false + }, + { + "name": "list_external_db_homes", + "description": "Lists external DB homes so you can identify home IDs for version and patch-level checks.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_external_db_homes", + "skills": [ + "external-inventory-discovery-connectivity" + ], + "inputSchema": { + "properties": { + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "display_name": { + "description": "A filter to only return the resources that match the entire display name.", + "type": "string" + }, + "external_db_system_id": { + "description": "The OCID of the external DB system.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "type": "object" + }, + "mutable": false + }, + { + "name": "list_external_db_nodes", + "description": "Lists external DB nodes in an external DB system for node inventory and targeting.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_external_db_nodes", + "skills": [ + "external-db-runtime-topology" + ], + "inputSchema": { + "properties": { + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "display_name": { + "description": "A filter to only return the resources that match the entire display name.", + "type": "string" + }, + "external_db_system_id": { + "description": "The OCID of the external DB system.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "type": "object" + }, + "mutable": false + }, + { + "name": "list_external_db_system_connectors", + "description": "Lists external DB system connectors so you can identify connector IDs and review connector state.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_external_db_system_connectors", + "skills": [ + "external-inventory-discovery-connectivity" + ], + "inputSchema": { + "properties": { + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "display_name": { + "description": "A filter to only return the resources that match the entire display name.", + "type": "string" + }, + "external_db_system_id": { + "description": "The OCID of the external DB system.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "type": "object" + }, + "mutable": false + }, + { + "name": "list_external_db_system_discoveries", + "description": "Lists external DB system discovery resources so you can track discovery runs and outcomes.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_external_db_system_discoveries", + "skills": [ + "external-inventory-discovery-connectivity" + ], + "inputSchema": { + "properties": { + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "display_name": { + "description": "A filter to only return the resources that match the entire display name.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "required": [ + "compartment_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_external_db_systems", + "description": "Lists external DB systems so you can identify target DB system IDs for runtime and inventory workflows.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_external_db_systems", + "skills": [ + "external-inventory-discovery-connectivity" + ], + "inputSchema": { + "properties": { + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "display_name": { + "description": "A filter to only return the resources that match the entire display name.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "required": [ + "compartment_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_external_exadata_infrastructures", + "description": "Lists external Exadata infrastructures so you can identify infrastructure IDs for downstream discovery and inventory calls.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_external_exadata_infrastructures", + "skills": [ + "external-inventory-discovery-connectivity" + ], + "inputSchema": { + "properties": { + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "display_name": { + "description": "The optional single value query filter parameter on the entity display name.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "required": [ + "compartment_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_external_exadata_storage_connectors", + "description": "Lists external Exadata storage connectors so you can identify connector IDs and lifecycle state.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_external_exadata_storage_connectors", + "skills": [ + "external-exadata-storage" + ], + "inputSchema": { + "properties": { + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "display_name": { + "description": "The optional single value query filter parameter on the entity display name.", + "type": "string" + }, + "external_exadata_infrastructure_id": { + "description": "The OCID of the Exadata infrastructure.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "required": [ + "compartment_id", + "external_exadata_infrastructure_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_external_exadata_storage_servers", + "description": "Lists external Exadata storage servers so you can identify target storage server IDs.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_external_exadata_storage_servers", + "skills": [ + "external-exadata-storage" + ], + "inputSchema": { + "properties": { + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "display_name": { + "description": "The optional single value query filter parameter on the entity display name.", + "type": "string" + }, + "external_exadata_infrastructure_id": { + "description": "The OCID of the Exadata infrastructure.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "required": [ + "compartment_id", + "external_exadata_infrastructure_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_external_listener_services", + "description": "Lists services registered to an external listener for service-routing checks.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_external_listener_services", + "skills": [ + "external-db-runtime-topology" + ], + "inputSchema": { + "properties": { + "external_listener_id": { + "description": "The OCID of the external listener.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + }, + "opc_named_credential_id": { + "description": "The OCID of the Named Credential.", + "type": "string" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "required": [ + "external_listener_id", + "managed_database_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_external_listeners", + "description": "Lists external listeners in an external DB system so you can identify listener IDs.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_external_listeners", + "skills": [ + "external-db-runtime-topology" + ], + "inputSchema": { + "properties": { + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "display_name": { + "description": "A filter to only return the resources that match the entire display name.", + "type": "string" + }, + "external_db_system_id": { + "description": "The OCID of the external DB system.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "type": "object" + }, + "mutable": false + }, + { + "name": "list_host_configurations", + "description": "Returns host configuration records, including host identity, platform details, and onboarding status in `items`.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_host_configurations", + "skills": [ + "host-insights" + ], + "inputSchema": { + "properties": { + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "compartment_id_in_subtree": { + "description": "A flag to search all resources within a given compartment and all sub-compartments.", + "type": "boolean" + }, + "enterprise_manager_bridge_id": { + "description": "Unique Enterprise Manager bridge identifier", + "type": "string" + }, + "exadata_insight_id": { + "description": "Optional list of exadata insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "host_id": { + "description": "Optional OCID of the host (Compute Id).", + "type": "string" + }, + "host_type": { + "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST", + "items": {}, + "type": "array" + }, + "id": { + "description": "Optional list of host insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "platform_type": { + "description": "Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: \"LINUX\", \"SOLARIS\", \"SUNOS\", \"ZLINUX\", \"WINDOWS\", \"AIX\", \"HP_UX\"", + "items": {}, + "type": "array" + }, + "sort_by": { + "description": "Host configuration list sort options. Allowed values are: \"hostName\", \"platformType\"", + "type": "string" + }, + "sort_order": { + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "status": { + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"", + "items": {}, + "type": "array" + }, + "vmcluster_name": { + "description": "Optional list of Exadata Insight VM cluster name.", + "items": {}, + "type": "array" + } + }, + "type": "object" + }, + "mutable": false + }, + { + "name": "list_hosted_entities", + "description": "Returns entities hosted on selected hosts, including entity `items` and related interval context.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_hosted_entities", + "skills": [ + "host-insights" + ], + "inputSchema": { + "properties": { + "analysis_time_interval": { + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", + "type": "string" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "exadata_insight_id": { + "description": "OCID of exadata insight resource.", + "type": "string" + }, + "host_id": { + "description": "Optional OCID of the host (Compute Id).", + "type": "string" + }, + "host_type": { + "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST", + "items": {}, + "type": "array" + }, + "id": { + "description": "Required OCID of the host insight resource.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "platform_type": { + "description": "Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: \"LINUX\", \"SOLARIS\", \"SUNOS\", \"ZLINUX\", \"WINDOWS\", \"AIX\", \"HP_UX\"", + "items": {}, + "type": "array" + }, + "sort_by": { + "description": "Hosted entity list sort options. Allowed values are: \"entityName\", \"entityType\"", + "type": "string" + }, + "sort_order": { + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "status": { + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"", + "items": {}, + "type": "array" + }, + "time_interval_end": { + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "format": "date-time", + "type": "string" + }, + "time_interval_start": { + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "compartment_id", + "id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_job_executions", + "description": "Lists job executions so you can review per-target execution outcomes and timing.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_job_executions", + "skills": [ + "job-orchestration-and-execution-tracking" + ], + "inputSchema": { + "properties": { + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "id": { + "description": "The identifier of the resource.", + "type": "string" + }, + "job_id": { + "description": "The identifier of the job.", + "type": "string" + }, + "job_run_id": { + "description": "The identifier of the job run.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "managed_database_group_id": { + "description": "The OCID of the Managed Database Group.", + "type": "string" + }, + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + }, + "name": { + "description": "A filter to return only resources that match the entire name.", + "type": "string" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "status": { + "description": "The status of the job execution.", + "type": "string" + } + }, + "required": [ + "compartment_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_job_runs", + "description": "Lists job runs with status filters so you can track run-level progress and history.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_job_runs", + "skills": [ + "job-orchestration-and-execution-tracking" + ], + "inputSchema": { + "properties": { + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "id": { + "description": "The identifier of the resource.", + "type": "string" + }, + "job_id": { + "description": "The identifier of the job.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "managed_database_group_id": { + "description": "The OCID of the Managed Database Group.", + "type": "string" + }, + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + }, + "name": { + "description": "A filter to return only resources that match the entire name.", + "type": "string" + }, + "run_status": { + "description": "The status of the job run.", + "type": "string" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "required": [ + "compartment_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_jobs", + "description": "Lists jobs in a compartment with optional target filters so you can locate job definitions quickly.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_jobs", + "skills": [ + "job-orchestration-and-execution-tracking" + ], + "inputSchema": { + "properties": { + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "id": { + "description": "The identifier of the resource.", + "type": "string" + }, + "lifecycle_state": { + "description": "The lifecycle state of the job.\n\nAllowed values are: \"ACTIVE\", \"INACTIVE\"", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "managed_database_group_id": { + "description": "The OCID of the Managed Database Group.", + "type": "string" + }, + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + }, + "name": { + "description": "A filter to return only resources that match the entire name.", + "type": "string" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "required": [ + "compartment_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_managed_database_groups", + "description": "Lists managed database groups in a compartment so you can find group IDs and lifecycle state.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_managed_database_groups", + "skills": [ + "managed-database-groups-organize-and-target-sets-of-databases" + ], + "inputSchema": { + "properties": { + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "id": { + "description": "The identifier of the resource.", + "type": "string" + }, + "lifecycle_state": { + "description": "The lifecycle state of a resource.\n\nAllowed values are: \"CREATING\", \"UPDATING\", \"ACTIVE\", \"DELETING\", \"DELETED\", \"FAILED\"", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "name": { + "description": "A filter to return only resources that match the entire name.", + "type": "string" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "required": [ + "compartment_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_managed_databases", + "description": "Returns managed databases in a compartment so you can discover the correct managedDatabaseId for follow-up operations.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_managed_databases", + "skills": [ + "managed-database-inventory-discover-and-inspect" + ], + "inputSchema": { + "properties": { + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "deployment_type": { + "description": "A filter to return Managed Databases of the specified deployment type.\n\nAllowed values are: \"ONPREMISE\", \"BM\", \"VM\", \"EXADATA\", \"EXADATA_CC\", \"AUTONOMOUS\", \"EXADATA_XS\"", + "type": "string" + }, + "external_exadata_infrastructure_id": { + "description": "The OCID of the Exadata infrastructure.", + "type": "string" + }, + "id": { + "description": "The identifier of the resource.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "management_option": { + "description": "A filter to return Managed Databases with the specified management option.\n\nAllowed values are: \"BASIC\", \"ADVANCED\"", + "type": "string" + }, + "name": { + "description": "A filter to return only resources that match the entire name.", + "type": "string" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "required": [ + "compartment_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_named_credentials", + "description": "Returns named credential inventory so admins can identify available credential objects for database access workflows.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_named_credentials", + "skills": [ + "credentials-and-authentication-preferred-named" + ], + "inputSchema": { + "properties": { + "associated_resource": { + "description": "The resource associated to the named credential.", + "type": "string" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "name": { + "description": "The name of the named credential.", + "type": "string" + }, + "scope": { + "description": "The scope of named credential.\n\nAllowed values are: \"RESOURCE\", \"GLOBAL\"", + "type": "string" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "type": { + "description": "The type of database that is associated to the named credential.\n\nAllowed values are: \"ORACLE_DB\"", + "type": "string" + } + }, + "required": [ + "compartment_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_object_privileges", + "description": "Returns object privileges granted to a specific user.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_object_privileges", + "skills": [ + "users-and-privileges-rbac-audit" + ], + "inputSchema": { + "properties": { + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + }, + "name": { + "description": "A filter to return only resources that match the entire name.", + "type": "string" + }, + "opc_named_credential_id": { + "description": "The OCID of the Named Credential.", + "type": "string" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018NAME\u2019 is ascending. The \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "user_name": { + "description": "The name of the user whose details are to be viewed.", + "type": "string" + } + }, + "required": [ + "managed_database_id", + "user_name" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_preferred_credentials", + "description": "Returns preferred credential assignments for a managed database so admins can verify configured authentication context.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_preferred_credentials", + "skills": [ + "credentials-and-authentication-preferred-named" + ], + "inputSchema": { + "properties": { + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + } + }, + "required": [ + "managed_database_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_proxied_for_users", + "description": "Returns users on whose behalf the specified user can act as proxy.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_proxied_for_users", + "skills": [ + "users-and-privileges-rbac-audit" + ], + "inputSchema": { + "properties": { + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + }, + "name": { + "description": "A filter to return only resources that match the entire name.", + "type": "string" + }, + "opc_named_credential_id": { + "description": "The OCID of the Named Credential.", + "type": "string" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018NAME\u2019 is ascending. The \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "user_name": { + "description": "The name of the user whose details are to be viewed.", + "type": "string" + } + }, + "required": [ + "managed_database_id", + "user_name" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_proxy_users", + "description": "Returns proxy users who can act as the specified user.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_proxy_users", + "skills": [ + "users-and-privileges-rbac-audit" + ], + "inputSchema": { + "properties": { + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + }, + "name": { + "description": "A filter to return only resources that match the entire name.", + "type": "string" + }, + "opc_named_credential_id": { + "description": "The OCID of the Named Credential.", + "type": "string" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018NAME\u2019 is ascending. The \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "user_name": { + "description": "The name of the user whose details are to be viewed.", + "type": "string" + } + }, + "required": [ + "managed_database_id", + "user_name" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_region_subscriptions", + "description": "Lists region subscriptions for a tenancy. Returns `regionName`, `regionKey`, subscription `status`, and `isHomeRegion` to confirm enabled-region coverage.", + "service": "identity", + "client": "IdentityClient", + "operation": "list_region_subscriptions", + "skills": [ + "oci-common" + ], + "inputSchema": { + "type": "object", + "properties": { + "tenancy_id": { + "type": "string", + "description": "The OCID of the tenancy." + } + }, + "additionalProperties": false, + "required": [ + "tenancy_id" + ] + }, + "mutable": false + }, + { + "name": "list_regions", + "description": "Lists regions offered by Oracle Cloud Infrastructure. Returns region identifiers such as `name` (for example, `us-phoenix-1`) and `key` (for example, `PHX`).", + "service": "identity", + "client": "IdentityClient", + "operation": "list_regions", + "skills": [ + "oci-common" + ], + "inputSchema": { + "type": "object", + "properties": {}, + "additionalProperties": false + }, + "mutable": false + }, + { + "name": "list_roles", + "description": "Returns roles granted to a specific user.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_roles", + "skills": [ + "users-and-privileges-rbac-audit" + ], + "inputSchema": { + "properties": { + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + }, + "name": { + "description": "A filter to return only resources that match the entire name.", + "type": "string" + }, + "opc_named_credential_id": { + "description": "The OCID of the Named Credential.", + "type": "string" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018NAME\u2019 is ascending. The \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "user_name": { + "description": "The name of the user whose details are to be viewed.", + "type": "string" + } + }, + "required": [ + "managed_database_id", + "user_name" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_sql_plans", + "description": "Returns execution plans for a SQL identifier, including plan identifiers and plan text/XML details.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_sql_plans", + "skills": [ + "database-performance-analysis" + ], + "inputSchema": { + "properties": { + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "database_id": { + "description": "Optional OCID of the associated DBaaS entity.", + "type": "string" + }, + "id": { + "description": "OCID of the database insight resource.", + "type": "string" + }, + "plan_hash": { + "description": "Unique plan hash for a SQL Plan of a particular SQL Statement. Example: `9820154385`", + "items": {}, + "type": "array" + }, + "sql_identifier": { + "description": "Unique SQL_ID for a SQL Statement. Example: `6rgjh9bjmy2s7`", + "type": "string" + } + }, + "required": [ + "compartment_id", + "sql_identifier", + "plan_hash" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_sql_searches", + "description": "Search SQL by SQL Identifier across databases. DEPRECATED (announced May 2024; no longer functional as of May 31, 2025).", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_sql_searches", + "skills": [ + "database-performance-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "compartment_id": { + "type": "string", + "description": "The [OCID](/iaas/Content/General/Concepts/identifiers.htm) of the compartment." + }, + "sql_identifier": { + "type": "string", + "description": "Unique SQL_ID for a SQL Statement.\nExample: `6rgjh9bjmy2s7`\n" + }, + "analysis_time_interval": { + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time.\nDefault is last 30 days represented by P30D.\nIf timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored.\nExamples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months), . Maximum value allowed is 25 months prior to current time (P25M).\n" + }, + "time_interval_start": { + "type": "string", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\nThe minimum allowed value is 2 years prior to the current day.\ntimeIntervalStart and timeIntervalEnd parameters are used together.\nIf analysisTimeInterval is specified, this parameter is ignored.\n", + "format": "date-time" + }, + "time_interval_end": { + "type": "string", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\ntimeIntervalStart and timeIntervalEnd are used together.\nIf timeIntervalEnd is not specified, current time is used as timeIntervalEnd.\n", + "format": "date-time" + }, + "page": { + "type": "string", + "description": "For list pagination. The value of the `opc-next-page` response header from\nthe previous \"List\" call. For important details about how pagination works,\nsee [List Pagination](/Content/API/Concepts/usingapi.htm#nine).\n" + }, + "opc_request_id": { + "type": "string", + "description": "Unique Oracle-assigned identifier for the request. If you need to contact\nOracle about a particular request, please provide the request ID.\n" + }, + "defined_tag_equals": { + "type": "array", + "description": "A list of tag filters to apply. Only resources with a defined tag matching the value will be returned.\nEach item in the list has the format \"{namespace}.{tagName}.{value}\". All inputs are case-insensitive.\nMultiple values for the same key (i.e. same namespace and tag name) are interpreted as \"OR\".\nValues for different keys (i.e. different namespaces, different tag names, or both) are interpreted as \"AND\".\n", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "description": "A list of tag filters to apply. Only resources with a freeform tag matching the value will be returned.\nThe key for each tag is \"{tagName}.{value}\". All inputs are case-insensitive.\nMultiple values for the same tag name are interpreted as \"OR\". Values for different tag names are interpreted as \"AND\".\n", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "description": "A list of tag existence filters to apply. Only resources for which the specified defined tags exist will be returned.\nEach item in the list has the format \"{namespace}.{tagName}.true\" (for checking existence of a defined tag)\nor \"{namespace}.true\". All inputs are case-insensitive.\nCurrently, only existence (\"true\" at the end) is supported. Absence (\"false\" at the end) is not supported.\nMultiple values for the same key (i.e. same namespace and tag name) are interpreted as \"OR\".\nValues for different keys (i.e. different namespaces, different tag names, or both) are interpreted as \"AND\".\n", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "description": "A list of tag existence filters to apply. Only resources for which the specified freeform tags exist the value will be returned.\nThe key for each tag is \"{tagName}.true\". All inputs are case-insensitive.\nCurrently, only existence (\"true\" at the end) is supported. Absence (\"false\" at the end) is not supported.\nMultiple values for different tag names are interpreted as \"AND\".\n", + "items": { + "type": "string" + } + }, + "compartment_id_in_subtree": { + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments.\n" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", + "sql_identifier" + ] + }, + "mutable": false + }, + { + "name": "list_sql_texts", + "description": "Returns SQL text for SQL identifiers, so admins can review the actual statements behind findings.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_sql_texts", + "skills": [ + "database-performance-analysis" + ], + "inputSchema": { + "properties": { + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "compartment_id_in_subtree": { + "description": "A flag to search all resources within a given compartment and all sub-compartments.", + "type": "boolean" + }, + "database_id": { + "description": "Optional list of database OCIDs of the assosicated DBaaS entity.", + "items": {}, + "type": "array" + }, + "id": { + "description": "Optional list of database OCIDs of the database insight resource.", + "items": {}, + "type": "array" + }, + "sql_identifier": { + "description": "One or more unique SQL_IDs for a SQL Statement. Example: `6rgjh9bjmy2s7`", + "items": {}, + "type": "array" + } + }, + "required": [ + "compartment_id", + "sql_identifier" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_system_privileges", + "description": "Returns system privileges granted to a specific user.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_system_privileges", + "skills": [ + "users-and-privileges-rbac-audit" + ], + "inputSchema": { + "properties": { + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + }, + "name": { + "description": "A filter to return only resources that match the entire name.", + "type": "string" + }, + "opc_named_credential_id": { + "description": "The OCID of the Named Credential.", + "type": "string" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018NAME\u2019 is ascending. The \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "user_name": { + "description": "The name of the user whose details are to be viewed.", + "type": "string" + } + }, + "required": [ + "managed_database_id", + "user_name" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_tablespaces", + "description": "Returns tablespaces for a managed database so you can review names and storage usage at a list level.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_tablespaces", + "skills": [ + "storage-and-space-tablespaces-asm" + ], + "inputSchema": { + "properties": { + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + }, + "name": { + "description": "A filter to return only resources that match the entire name.", + "type": "string" + }, + "opc_named_credential_id": { + "description": "The OCID of the Named Credential.", + "type": "string" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "required": [ + "managed_database_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_users", + "description": "Returns users for a managed database so you can identify user accounts for access review.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_users", + "skills": [ + "users-and-privileges-rbac-audit" + ], + "inputSchema": { + "properties": { + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + }, + "name": { + "description": "A filter to return only resources that match the entire name.", + "type": "string" + }, + "opc_named_credential_id": { + "description": "The OCID of the Named Credential.", + "type": "string" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "required": [ + "managed_database_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_work_request_errors", + "description": "Returns error entries for one work request so admins can diagnose failure causes.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_work_request_errors", + "skills": [ + "async-work-requests-long-running-operations" + ], + "inputSchema": { + "properties": { + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "sort_by": { + "description": "The field to sort by. Only one sort order may be provided and the default order for timeAccepted is descending.\n\nAllowed values are: \"timeAccepted\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "work_request_id": { + "description": "The OCID of the asynchronous work request.", + "type": "string" + } + }, + "required": [ + "work_request_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_work_request_logs", + "description": "Returns log entries for one work request so admins can trace execution progress and timing.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_work_request_logs", + "skills": [ + "async-work-requests-long-running-operations" + ], + "inputSchema": { + "properties": { + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "sort_by": { + "description": "The field to sort by. Only one sort order may be provided and the default order for timeAccepted is descending.\n\nAllowed values are: \"timeAccepted\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "work_request_id": { + "description": "The OCID of the asynchronous work request.", + "type": "string" + } + }, + "required": [ + "work_request_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "list_work_requests", + "description": "Returns work request inventory so admins can track long-running operation progress and find request IDs for drill-down.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_work_requests", + "skills": [ + "async-work-requests-long-running-operations" + ], + "inputSchema": { + "properties": { + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "resource_id": { + "description": "The OCID of the resource affected by the work request.", + "type": "string" + }, + "sort_by": { + "description": "The field to sort by. Only one sort order may be provided and the default order for timeAccepted is descending.\n\nAllowed values are: \"timeAccepted\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "status": { + "description": "A filter that returns the resources whose status matches the given WorkRequestStatus.\n\nAllowed values are: \"ACCEPTED\", \"IN_PROGRESS\", \"FAILED\", \"SUCCEEDED\", \"CANCELING\", \"CANCELED\"", + "type": "string" + }, + "work_request_id": { + "description": "The OCID of the asynchronous work request.", + "type": "string" + } + }, + "required": [ + "compartment_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "remove_managed_database_from_managed_database_group", + "description": "Removes a managed database from a managed database group so future group-scoped operations exclude that database.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "remove_managed_database_from_managed_database_group", + "skills": [ + "managed-database-groups-organize-and-target-sets-of-databases" + ], + "inputSchema": { + "type": "object", + "properties": { + "managed_database_group_id": { + "type": "string", + "description": "The [OCID](/Content/General/Concepts/identifiers.htm) of the Managed Database Group." + }, + "remove_managed_database_from_managed_database_group_details": { + "type": "object", + "description": "The Managed Database details required to remove it from a Managed Database Group.", + "properties": { + "managedDatabaseId": { + "type": "string", + "description": "The [OCID](/Content/General/Concepts/identifiers.htm) of the Managed Database.\n", + "minLength": 1, + "maxLength": 255 + } + } + }, + "opc_request_id": { + "type": "string", + "description": "The client request ID for tracing." + }, + "opc_retry_token": { + "type": "string", + "description": "A token that uniquely identifies a request so it can be retried in case of a timeout or\nserver error without risk of executing that same action again. Retry tokens expire after 24\nhours, but can be invalidated before then due to conflicting operations. For example, if a resource\nhas been deleted and purged from the system, then a retry of the original creation request\nmight be rejected.\n" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_group_id", + "remove_managed_database_from_managed_database_group_details" + ] + }, + "mutable": true + }, + { + "name": "run_historic_addm", + "description": "Creates or retrieves a historic ADDM task result for specified AWR snapshot IDs.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "run_historic_addm", + "skills": [ + "advanced-diagnostics-addm-session-control-bulk-retrieve" + ], + "inputSchema": { + "type": "object", + "properties": { + "opc_retry_token": { + "type": "string", + "description": "A token that uniquely identifies a request so it can be retried in case of a timeout or\nserver error without risk of executing that same action again. Retry tokens expire after 24\nhours, but can be invalidated before then due to conflicting operations. For example, if a resource\nhas been deleted and purged from the system, then a retry of the original creation request\nmight be rejected.\n" + }, + "managed_database_id": { + "type": "string", + "description": "The [OCID](/Content/General/Concepts/identifiers.htm) of the Managed Database." + }, + "opc_request_id": { + "type": "string", + "description": "Unique identifier for the request.\n" + }, + "opc_named_credential_id": { + "type": "string", + "description": "The OCID of the Named Credential." + }, + "run_historic_addm_details": { + "type": "object", + "description": "The details of the ADDM task, which include the beginning and ending AWR snapshot IDs.\n", + "properties": { + "startSnapshotId": { + "type": "integer", + "description": "The ID number of the beginning AWR snapshot.", + "format": "int64" + }, + "endSnapshotId": { + "type": "integer", + "description": "The ID of the ending AWR snapshot.", + "format": "int64" + } + } + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id", + "run_historic_addm_details" + ] + }, + "mutable": true + }, + { + "name": "summarize_addm_db_findings", + "description": "Returns ADDM findings with affected databases and finding details for the selected interval.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_addm_db_findings", + "skills": [ + "database-addm-analysis" + ], + "inputSchema": { + "properties": { + "category_name": { + "description": "Optional value filter to match the finding category exactly.", + "type": "string" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "compartment_id_in_subtree": { + "description": "A flag to search all resources within a given compartment and all sub-compartments.", + "type": "boolean" + }, + "database_id": { + "description": "Optional list of database OCIDs of the associated DBaaS entity.", + "items": {}, + "type": "array" + }, + "id": { + "description": "Optional list of database insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "instance_number": { + "description": "The optional single value query parameter to filter by database instance number.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "sort_by": { + "description": "Field name for sorting the ADDM finding summary data Allowed values are: \"impactOverallPercent\", \"impactMaxPercent\", \"impactAvgActiveSessions\", \"frequencyCount\"", + "type": "string" + }, + "sort_order": { + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "time_interval_end": { + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "format": "date-time", + "type": "string" + }, + "time_interval_start": { + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "compartment_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_addm_db_parameter_changes", + "description": "Summarizes ADDM-highlighted parameter changes, including impacted databases and the analysis time window.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_addm_db_parameter_changes", + "skills": [ + "database-addm-analysis" + ], + "inputSchema": { + "properties": { + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "compartment_id_in_subtree": { + "description": "A flag to search all resources within a given compartment and all sub-compartments.", + "type": "boolean" + }, + "database_id": { + "description": "Optional list of database OCIDs of the associated DBaaS entity.", + "items": {}, + "type": "array" + }, + "id": { + "description": "Optional list of database insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "instance_number": { + "description": "The optional single value query parameter to filter by database instance number.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "name": { + "description": "Required filter to return only changes for the specified parameter. The match is case sensitive.", + "type": "string" + }, + "sort_by": { + "description": "Field name for sorting the database parameter change data Allowed values are: \"isChanged\", \"beginSnapId\"", + "type": "string" + }, + "sort_order": { + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "time_interval_end": { + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "format": "date-time", + "type": "string" + }, + "time_interval_start": { + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "format": "date-time", + "type": "string" + }, + "value_contains": { + "description": "Optional filter to return only resources whose value contains the substring given. The match is not case sensitive.", + "type": "string" + } + }, + "required": [ + "compartment_id", + "name" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_addm_db_parameters", + "description": "Summarizes ADDM parameter-level findings and trends for selected databases and interval.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_addm_db_parameters", + "skills": [ + "database-addm-analysis" + ], + "inputSchema": { + "properties": { + "category_name": { + "description": "Optional value filter to match an ADDM database parameter category exactly. Use a category name returned by ADDM database parameter category results.", + "type": "string" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "compartment_id_in_subtree": { + "description": "A flag to search all resources within a given compartment and all sub-compartments.", + "type": "boolean" + }, + "database_id": { + "description": "Optional list of database OCIDs of the associated DBaaS entity.", + "items": {}, + "type": "array" + }, + "has_recommendations": { + "description": "Optional filter to return only parameters which have recommendations in the specified time period. Valid values include: TRUE, FALSE Allowed values are: \"TRUE\", \"FALSE\"", + "type": "string" + }, + "id": { + "description": "Optional list of database insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "instance_number": { + "description": "The optional single value query parameter to filter by database instance number.", + "type": "string" + }, + "is_changed": { + "description": "Optional filter to return only parameters whose value changed in the specified time period. Valid values include: TRUE, FALSE Allowed values are: \"TRUE\", \"FALSE\"", + "type": "string" + }, + "is_default": { + "description": "Optional filter to return only parameters whose end value was set to the default value (TRUE) or was specified in the parameter file (FALSE). Valid values include: TRUE, FALSE Allowed values are: \"TRUE\", \"FALSE\"", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "name_or_value_contains": { + "description": "Optional filter to return only resources whose name or value contains the substring given. The match is not case sensitive.", + "type": "string" + }, + "sort_by": { + "description": "Field name for sorting the database parameter data Allowed values are: \"isChanged\", \"name\"", + "type": "string" + }, + "sort_order": { + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "time_interval_end": { + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "format": "date-time", + "type": "string" + }, + "time_interval_start": { + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "compartment_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_addm_db_recommendations", + "description": "Returns ADDM recommendations with impacted databases and recommendation details over the selected time window.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_addm_db_recommendations", + "skills": [ + "database-addm-analysis" + ], + "inputSchema": { + "properties": { + "category_name": { + "description": "Optional value filter to match the finding category exactly.", + "type": "string" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "compartment_id_in_subtree": { + "description": "A flag to search all resources within a given compartment and all sub-compartments.", + "type": "boolean" + }, + "database_id": { + "description": "Optional list of database OCIDs of the associated DBaaS entity.", + "items": {}, + "type": "array" + }, + "finding_identifier": { + "description": "Unique finding ID", + "type": "string" + }, + "id": { + "description": "Optional list of database insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "instance_number": { + "description": "The optional single value query parameter to filter by database instance number.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "name": { + "description": "Optional filter to return only resources whose name exactly matches the substring given. The match is case sensitive. Only considered when categoryName is DATABASE_CONFIGURATION.", + "type": "string" + }, + "name_contains": { + "description": "Optional filter to return only resources whose name contains the substring given. The match is not case sensitive. Only considered when categoryName is DATABASE_CONFIGURATION.", + "type": "string" + }, + "owner_or_name_contains": { + "description": "Optional filter to return only resources whose owner or name contains the substring given. The match is not case sensitive. Only considered when categoryName is SCHEMA_OBJECT.", + "type": "string" + }, + "sort_by": { + "description": "Field name for sorting the recommendation data Allowed values are: \"maxBenefitPercent\", \"maxBenefitAvgActiveSessions\", \"frequencyCount\"", + "type": "string" + }, + "sort_order": { + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "sql_identifier": { + "description": "Optional filter to return only resources whose sql id matches the value given. Only considered when categoryName is SQL_TUNING.", + "type": "string" + }, + "time_interval_end": { + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "format": "date-time", + "type": "string" + }, + "time_interval_start": { + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "compartment_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_addm_db_schema_objects", + "description": "Summarizes schema objects (such as tables or indexes) flagged by ADDM with impact context.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_addm_db_schema_objects", + "skills": [ + "database-addm-analysis" + ], + "inputSchema": { + "properties": { + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "compartment_id_in_subtree": { + "description": "A flag to search all resources within a given compartment and all sub-compartments.", + "type": "boolean" + }, + "database_id": { + "description": "Optional list of database OCIDs of the associated DBaaS entity.", + "items": {}, + "type": "array" + }, + "id": { + "description": "Optional list of database insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "object_identifier": { + "description": "One or more unique Object id (from RDBMS)", + "items": {}, + "type": "array" + }, + "time_interval_end": { + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "format": "date-time", + "type": "string" + }, + "time_interval_start": { + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "compartment_id", + "object_identifier" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_addm_db_sql_statements", + "description": "Summarizes SQL statements flagged by ADDM, including impact and related finding context.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_addm_db_sql_statements", + "skills": [ + "database-addm-analysis" + ], + "inputSchema": { + "properties": { + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "compartment_id_in_subtree": { + "description": "A flag to search all resources within a given compartment and all sub-compartments.", + "type": "boolean" + }, + "database_id": { + "description": "Optional list of database OCIDs of the associated DBaaS entity.", + "items": {}, + "type": "array" + }, + "id": { + "description": "Optional list of database insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "sql_identifier": { + "description": "One or more unique SQL_IDs for a SQL Statement. Example: `6rgjh9bjmy2s7`", + "items": {}, + "type": "array" + }, + "time_interval_end": { + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "format": "date-time", + "type": "string" + }, + "time_interval_start": { + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "compartment_id", + "sql_identifier" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_alert_log_counts", + "description": "Returns aggregated alert log counts for a managed database so you can quickly assess level or type distribution.", + "service": "dbm", + "client": "DiagnosabilityClient", + "operation": "summarize_alert_log_counts", + "skills": [ + "logs-and-alerts-attention-alert-logs" + ], + "inputSchema": { + "properties": { + "group_by": { + "description": "The optional parameter used to group different alert logs.\n\nAllowed values are: \"LEVEL\", \"TYPE\"", + "type": "string" + }, + "is_regular_expression": { + "description": "The flag to indicate whether the search text is regular expression or not.", + "type": "boolean" + }, + "level_filter": { + "description": "The optional parameter to filter the alert logs by log level.\n\nAllowed values are: \"CRITICAL\", \"SEVERE\", \"IMPORTANT\", \"NORMAL\", \"ALL\"", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "log_search_text": { + "description": "The optional query parameter to filter the attention or alert logs by search text.", + "type": "string" + }, + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + }, + "opc_named_credential_id": { + "description": "The OCID of the Named Credential.", + "type": "string" + }, + "time_greater_than_or_equal_to": { + "description": "The optional greater than or equal to timestamp to filter the logs.", + "format": "date-time", + "type": "string" + }, + "time_less_than_or_equal_to": { + "description": "The optional less than or equal to timestamp to filter the logs.", + "format": "date-time", + "type": "string" + }, + "type_filter": { + "description": "The optional parameter to filter the attention or alert logs by type.\n\nAllowed values are: \"UNKNOWN\", \"INCIDENT_ERROR\", \"ERROR\", \"WARNING\", \"NOTIFICATION\", \"TRACE\", \"ALL\"", + "type": "string" + } + }, + "required": [ + "managed_database_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_attention_log_counts", + "description": "Returns aggregated attention log counts for a managed database so you can quickly assess urgency or type distribution.", + "service": "dbm", + "client": "DiagnosabilityClient", + "operation": "summarize_attention_log_counts", + "skills": [ + "logs-and-alerts-attention-alert-logs" + ], + "inputSchema": { + "properties": { + "group_by": { + "description": "The optional parameter used to group different attention logs.\n\nAllowed values are: \"URGENCY\", \"TYPE\"", + "type": "string" + }, + "is_regular_expression": { + "description": "The flag to indicate whether the search text is regular expression or not.", + "type": "boolean" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "log_search_text": { + "description": "The optional query parameter to filter the attention or alert logs by search text.", + "type": "string" + }, + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + }, + "opc_named_credential_id": { + "description": "The OCID of the Named Credential.", + "type": "string" + }, + "time_greater_than_or_equal_to": { + "description": "The optional greater than or equal to timestamp to filter the logs.", + "format": "date-time", + "type": "string" + }, + "time_less_than_or_equal_to": { + "description": "The optional less than or equal to timestamp to filter the logs.", + "format": "date-time", + "type": "string" + }, + "type_filter": { + "description": "The optional parameter to filter the attention or alert logs by type.\n\nAllowed values are: \"UNKNOWN\", \"INCIDENT_ERROR\", \"ERROR\", \"WARNING\", \"NOTIFICATION\", \"TRACE\", \"ALL\"", + "type": "string" + }, + "urgency_filter": { + "description": "The optional parameter to filter the attention logs by urgency.\n\nAllowed values are: \"IMMEDIATE\", \"SOON\", \"DEFERRABLE\", \"INFO\", \"ALL\"", + "type": "string" + } + }, + "required": [ + "managed_database_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_awr_database_cpu_usages", + "description": "Returns AWR CPU usage history for a database, including sample timestamps, average CPU values, and interval context.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_awr_database_cpu_usages", + "skills": [ + "awrhubs" + ], + "inputSchema": { + "properties": { + "awr_hub_id": { + "description": "Unique Awr Hub identifier", + "type": "string" + }, + "awr_source_database_identifier": { + "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.", + "type": "string" + }, + "begin_snapshot_identifier_greater_than_or_equal_to": { + "description": "The optional greater than or equal to filter on the snapshot ID.", + "type": "integer" + }, + "end_snapshot_identifier_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the snapshot Identifier.", + "type": "integer" + }, + "instance_number": { + "description": "The optional single value query parameter to filter by database instance number.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "session_type": { + "description": "The optional query parameter to filter ASH activities by FOREGROUND or BACKGROUND. Allowed values are: \"FOREGROUND\", \"BACKGROUND\", \"ALL\"", + "type": "string" + }, + "sort_by": { + "description": "The option to sort the AWR CPU usage summary data. Allowed values are: \"TIME_SAMPLED\", \"AVG_VALUE\"", + "type": "string" + }, + "sort_order": { + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "time_greater_than_or_equal_to": { + "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "format": "date-time", + "type": "string" + }, + "time_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "awr_hub_id", + "awr_source_database_identifier" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_awr_database_metrics", + "description": "Returns sampled AWR metric series for the selected database, including metric name, sample timestamps, and observed values.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_awr_database_metrics", + "skills": [ + "awrhubs" + ], + "inputSchema": { + "properties": { + "awr_hub_id": { + "description": "Unique Awr Hub identifier", + "type": "string" + }, + "awr_source_database_identifier": { + "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.", + "type": "string" + }, + "begin_snapshot_identifier_greater_than_or_equal_to": { + "description": "The optional greater than or equal to filter on the snapshot ID.", + "type": "integer" + }, + "end_snapshot_identifier_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the snapshot Identifier.", + "type": "integer" + }, + "instance_number": { + "description": "The optional single value query parameter to filter by database instance number.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "name": { + "description": "The required multiple value query parameter to filter the entity name.", + "items": {}, + "type": "array" + }, + "sort_by": { + "description": "The option to sort the AWR time series summary data. Allowed values are: \"TIMESTAMP\", \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "time_greater_than_or_equal_to": { + "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "format": "date-time", + "type": "string" + }, + "time_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "awr_hub_id", + "awr_source_database_identifier", + "name" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_awr_database_parameter_changes", + "description": "Returns parameter-change history in AWR, including parameter name, changed-state flag, and change sequence context.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_awr_database_parameter_changes", + "skills": [ + "awrhubs" + ], + "inputSchema": { + "properties": { + "awr_hub_id": { + "description": "Unique Awr Hub identifier", + "type": "string" + }, + "awr_source_database_identifier": { + "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.", + "type": "string" + }, + "begin_snapshot_identifier_greater_than_or_equal_to": { + "description": "The optional greater than or equal to filter on the snapshot ID.", + "type": "integer" + }, + "end_snapshot_identifier_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the snapshot Identifier.", + "type": "integer" + }, + "instance_number": { + "description": "The optional single value query parameter to filter by database instance number.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "name": { + "description": "The required single value query parameter to filter the entity name.", + "type": "string" + }, + "sort_by": { + "description": "The option to sort the AWR database parameter change history data. Allowed values are: \"IS_CHANGED\", \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "time_greater_than_or_equal_to": { + "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "format": "date-time", + "type": "string" + }, + "time_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "awr_hub_id", + "awr_source_database_identifier", + "name" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_awr_database_parameters", + "description": "Returns AWR parameter history for a database, including parameter names, current/historical values, and change indicators.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_awr_database_parameters", + "skills": [ + "awrhubs" + ], + "inputSchema": { + "properties": { + "awr_hub_id": { + "description": "Unique Awr Hub identifier", + "type": "string" + }, + "awr_source_database_identifier": { + "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.", + "type": "string" + }, + "begin_snapshot_identifier_greater_than_or_equal_to": { + "description": "The optional greater than or equal to filter on the snapshot ID.", + "type": "integer" + }, + "end_snapshot_identifier_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the snapshot Identifier.", + "type": "integer" + }, + "instance_number": { + "description": "The optional single value query parameter to filter by database instance number.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "name": { + "description": "The optional multiple value query parameter to filter the entity name.", + "items": {}, + "type": "array" + }, + "name_contains": { + "description": "The optional contains query parameter to filter the entity name by any part of the name.", + "type": "string" + }, + "sort_by": { + "description": "The option to sort the AWR database parameter change history data. Allowed values are: \"IS_CHANGED\", \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "time_greater_than_or_equal_to": { + "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "format": "date-time", + "type": "string" + }, + "time_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "format": "date-time", + "type": "string" + }, + "value_changed": { + "description": "The optional query parameter to filter database parameters whose values were changed. Allowed values are: \"Y\", \"N\"", + "type": "string" + }, + "value_default": { + "description": "The optional query parameter to filter the database parameters that had the default value in the last snapshot. Allowed values are: \"TRUE\", \"FALSE\"", + "type": "string" + }, + "value_modified": { + "description": "The optional query parameter to filter the database parameters that had a modified value in the last snapshot. Allowed values are: \"MODIFIED\", \"SYSTEM_MOD\", \"FALSE\"", + "type": "string" + } + }, + "required": [ + "awr_hub_id", + "awr_source_database_identifier" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_awr_database_snapshot_ranges", + "description": "Returns available AWR snapshot windows for a database, including begin time, end time, and snapshot identifiers.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_awr_database_snapshot_ranges", + "skills": [ + "awrhubs" + ], + "inputSchema": { + "properties": { + "awr_hub_id": { + "description": "Unique Awr Hub identifier", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "name": { + "description": "The optional single value query parameter to filter the entity name.", + "type": "string" + }, + "sort_by": { + "description": "The option to sort the AWR summary data. Allowed values are: \"END_INTERVAL_TIME\", \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "time_greater_than_or_equal_to": { + "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "format": "date-time", + "type": "string" + }, + "time_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "awr_hub_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_awr_database_sysstats", + "description": "Returns AWR sysstat samples for a database, including statistic names, sampled intervals, and measured values.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_awr_database_sysstats", + "skills": [ + "awrhubs" + ], + "inputSchema": { + "properties": { + "awr_hub_id": { + "description": "Unique Awr Hub identifier", + "type": "string" + }, + "awr_source_database_identifier": { + "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.", + "type": "string" + }, + "begin_snapshot_identifier_greater_than_or_equal_to": { + "description": "The optional greater than or equal to filter on the snapshot ID.", + "type": "integer" + }, + "end_snapshot_identifier_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the snapshot Identifier.", + "type": "integer" + }, + "instance_number": { + "description": "The optional single value query parameter to filter by database instance number.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "name": { + "description": "The required multiple value query parameter to filter the entity name.", + "items": {}, + "type": "array" + }, + "sort_by": { + "description": "The option to sort the data within a time period. Allowed values are: \"TIME_BEGIN\", \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "time_greater_than_or_equal_to": { + "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "format": "date-time", + "type": "string" + }, + "time_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "awr_hub_id", + "awr_source_database_identifier", + "name" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_awr_database_top_wait_events", + "description": "Returns top wait event contributors for an AWR database, including event names, wait intensity, and average wait-time trends.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_awr_database_top_wait_events", + "skills": [ + "awrhubs" + ], + "inputSchema": { + "properties": { + "awr_hub_id": { + "description": "Unique Awr Hub identifier", + "type": "string" + }, + "awr_source_database_identifier": { + "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.", + "type": "string" + }, + "begin_snapshot_identifier_greater_than_or_equal_to": { + "description": "The optional greater than or equal to filter on the snapshot ID.", + "type": "integer" + }, + "end_snapshot_identifier_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the snapshot Identifier.", + "type": "integer" + }, + "instance_number": { + "description": "The optional single value query parameter to filter by database instance number.", + "type": "string" + }, + "session_type": { + "description": "The optional query parameter to filter ASH activities by FOREGROUND or BACKGROUND. Allowed values are: \"FOREGROUND\", \"BACKGROUND\", \"ALL\"", + "type": "string" + }, + "sort_by": { + "description": "The option to sort the AWR top event summary data. Allowed values are: \"WAITS_PERSEC\", \"AVG_WAIT_TIME_PERSEC\"", + "type": "string" + }, + "sort_order": { + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "time_greater_than_or_equal_to": { + "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "format": "date-time", + "type": "string" + }, + "time_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "format": "date-time", + "type": "string" + }, + "top_n": { + "description": "The optional query parameter to filter the number of top categories to be returned.", + "type": "integer" + } + }, + "required": [ + "awr_hub_id", + "awr_source_database_identifier" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_awr_database_wait_event_buckets", + "description": "Returns wait-event distribution buckets for a database, including category labels, bucket percentages, and frequency weighting.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_awr_database_wait_event_buckets", + "skills": [ + "awrhubs" + ], + "inputSchema": { + "properties": { + "awr_hub_id": { + "description": "Unique Awr Hub identifier", + "type": "string" + }, + "awr_source_database_identifier": { + "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.", + "type": "string" + }, + "begin_snapshot_identifier_greater_than_or_equal_to": { + "description": "The optional greater than or equal to filter on the snapshot ID.", + "type": "integer" + }, + "end_snapshot_identifier_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the snapshot Identifier.", + "type": "integer" + }, + "instance_number": { + "description": "The optional single value query parameter to filter by database instance number.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "max_value": { + "description": "The maximum value of the histogram.", + "type": "number" + }, + "min_value": { + "description": "The minimum value of the histogram.", + "type": "number" + }, + "name": { + "description": "The required single value query parameter to filter the entity name.", + "type": "string" + }, + "num_bucket": { + "description": "The number of buckets within the histogram.", + "type": "integer" + }, + "sort_by": { + "description": "The option to sort distribution data. Allowed values are: \"CATEGORY\", \"PERCENTAGE\"", + "type": "string" + }, + "sort_order": { + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "time_greater_than_or_equal_to": { + "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "format": "date-time", + "type": "string" + }, + "time_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "awr_hub_id", + "awr_source_database_identifier", + "name" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_awr_database_wait_events", + "description": "Returns wait-event samples for the selected period, including event names, sampled intervals, and wait activity values.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_awr_database_wait_events", + "skills": [ + "awrhubs" + ], + "inputSchema": { + "properties": { + "awr_hub_id": { + "description": "Unique Awr Hub identifier", + "type": "string" + }, + "awr_source_database_identifier": { + "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.", + "type": "string" + }, + "begin_snapshot_identifier_greater_than_or_equal_to": { + "description": "The optional greater than or equal to filter on the snapshot ID.", + "type": "integer" + }, + "end_snapshot_identifier_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the snapshot Identifier.", + "type": "integer" + }, + "instance_number": { + "description": "The optional single value query parameter to filter by database instance number.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "name": { + "description": "The optional multiple value query parameter to filter the entity name.", + "items": {}, + "type": "array" + }, + "session_type": { + "description": "The optional query parameter to filter ASH activities by FOREGROUND or BACKGROUND. Allowed values are: \"FOREGROUND\", \"BACKGROUND\", \"ALL\"", + "type": "string" + }, + "sort_by": { + "description": "The option to sort the data within a time period. Allowed values are: \"TIME_BEGIN\", \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "time_greater_than_or_equal_to": { + "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "format": "date-time", + "type": "string" + }, + "time_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "awr_hub_id", + "awr_source_database_identifier" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_awr_db_cpu_usages", + "description": "Returns AWR CPU usage summaries for one AWR database in the requested window.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "summarize_awr_db_cpu_usages", + "skills": [ + "awr-historical-performance-analysis" + ], + "inputSchema": { + "properties": { + "awr_db_id": { + "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.", + "type": "string" + }, + "begin_sn_id_greater_than_or_equal_to": { + "description": "The optional greater than or equal to filter on the snapshot ID.", + "type": "integer" + }, + "container_id": { + "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.", + "type": "integer" + }, + "end_sn_id_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the snapshot ID.", + "type": "integer" + }, + "inst_num": { + "description": "The optional single value query parameter to filter the database instance number.", + "type": "string" + }, + "limit": { + "description": "For large list pagination. Maximum number of results to return in one response page. Example: 1000.", + "type": "integer" + }, + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + }, + "opc_named_credential_id": { + "description": "The OCID of the Named Credential.", + "type": "string" + }, + "session_type": { + "description": "The optional query parameter to filter ASH activities by FOREGROUND or BACKGROUND.\n\nAllowed values are: \"FOREGROUND\", \"BACKGROUND\", \"ALL\"", + "type": "string" + }, + "sort_by": { + "description": "The option to sort the AWR CPU usage summary data.\n\nAllowed values are: \"TIME_SAMPLED\", \"AVG_VALUE\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "time_greater_than_or_equal_to": { + "description": "The optional greater than or equal to query parameter to filter the timestamp.", + "format": "date-time", + "type": "string" + }, + "time_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the timestamp.", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "managed_database_id", + "awr_db_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_awr_db_metrics", + "description": "Returns AWR metric sample summaries for one AWR database.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "summarize_awr_db_metrics", + "skills": [ + "awr-historical-performance-analysis" + ], + "inputSchema": { + "properties": { + "awr_db_id": { + "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.", + "type": "string" + }, + "begin_sn_id_greater_than_or_equal_to": { + "description": "The optional greater than or equal to filter on the snapshot ID.", + "type": "integer" + }, + "container_id": { + "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.", + "type": "integer" + }, + "end_sn_id_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the snapshot ID.", + "type": "integer" + }, + "inst_num": { + "description": "The optional single value query parameter to filter the database instance number.", + "type": "string" + }, + "limit": { + "description": "For large list pagination. Maximum number of results to return in one response page. Example: 1000.", + "type": "integer" + }, + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + }, + "name": { + "description": "The required multiple value query parameter to filter the entity name.", + "items": {}, + "type": "array" + }, + "opc_named_credential_id": { + "description": "The OCID of the Named Credential.", + "type": "string" + }, + "sort_by": { + "description": "The option to sort the AWR time series summary data.\n\nAllowed values are: \"TIMESTAMP\", \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "time_greater_than_or_equal_to": { + "description": "The optional greater than or equal to query parameter to filter the timestamp.", + "format": "date-time", + "type": "string" + }, + "time_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the timestamp.", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "managed_database_id", + "awr_db_id", + "name" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_awr_db_parameter_changes", + "description": "Returns change-history records for one AWR database parameter.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "summarize_awr_db_parameter_changes", + "skills": [ + "awr-historical-performance-analysis" + ], + "inputSchema": { + "properties": { + "awr_db_id": { + "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.", + "type": "string" + }, + "begin_sn_id_greater_than_or_equal_to": { + "description": "The optional greater than or equal to filter on the snapshot ID.", + "type": "integer" + }, + "container_id": { + "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.", + "type": "integer" + }, + "end_sn_id_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the snapshot ID.", + "type": "integer" + }, + "inst_num": { + "description": "The optional single value query parameter to filter the database instance number.", + "type": "string" + }, + "limit": { + "description": "For large list pagination. Maximum number of results to return in one response page. Example: 1000.", + "type": "integer" + }, + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + }, + "name": { + "description": "The required single value query parameter to filter the entity name.", + "type": "string" + }, + "opc_named_credential_id": { + "description": "The OCID of the Named Credential.", + "type": "string" + }, + "sort_by": { + "description": "The option to sort the AWR database parameter change history data.\n\nAllowed values are: \"IS_CHANGED\", \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "time_greater_than_or_equal_to": { + "description": "The optional greater than or equal to query parameter to filter the timestamp.", + "format": "date-time", + "type": "string" + }, + "time_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the timestamp.", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "managed_database_id", + "awr_db_id", + "name" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_awr_db_parameters", + "description": "Returns AWR parameter summaries, including change/default context, for one AWR database.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "summarize_awr_db_parameters", + "skills": [ + "awr-historical-performance-analysis" + ], + "inputSchema": { + "properties": { + "awr_db_id": { + "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.", + "type": "string" + }, + "begin_sn_id_greater_than_or_equal_to": { + "description": "The optional greater than or equal to filter on the snapshot ID.", + "type": "integer" + }, + "container_id": { + "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.", + "type": "integer" + }, + "end_sn_id_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the snapshot ID.", + "type": "integer" + }, + "inst_num": { + "description": "The optional single value query parameter to filter the database instance number.", + "type": "string" + }, + "limit": { + "description": "For large list pagination. Maximum number of results to return in one response page. Example: 1000.", + "type": "integer" + }, + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + }, + "name": { + "description": "The optional multiple value query parameter to filter the entity name.", + "items": {}, + "type": "array" + }, + "name_contains": { + "description": "The optional contains query parameter to filter the entity name by any part of the name.", + "type": "string" + }, + "opc_named_credential_id": { + "description": "The OCID of the Named Credential.", + "type": "string" + }, + "sort_by": { + "description": "The option to sort the AWR database parameter change history data.\n\nAllowed values are: \"IS_CHANGED\", \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "time_greater_than_or_equal_to": { + "description": "The optional greater than or equal to query parameter to filter the timestamp.", + "format": "date-time", + "type": "string" + }, + "time_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the timestamp.", + "format": "date-time", + "type": "string" + }, + "value_changed": { + "description": "The optional query parameter to filter database parameters whose values were changed.\n\nAllowed values are: \"Y\", \"N\"", + "type": "string" + }, + "value_default": { + "description": "The optional query parameter to filter the database parameters that had the default value in the last snapshot.\n\nAllowed values are: \"TRUE\", \"FALSE\"", + "type": "string" + }, + "value_modified": { + "description": "The optional query parameter to filter the database parameters that had a modified value in the last snapshot.\n\nAllowed values are: \"MODIFIED\", \"SYSTEM_MOD\", \"FALSE\"", + "type": "string" + } + }, + "required": [ + "managed_database_id", + "awr_db_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_awr_db_snapshot_ranges", + "description": "Returns continuous AWR snapshot ranges for databases in a managed database.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "summarize_awr_db_snapshot_ranges", + "skills": [ + "awr-historical-performance-analysis" + ], + "inputSchema": { + "properties": { + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + }, + "name": { + "description": "The optional single value query parameter to filter the entity name.", + "type": "string" + }, + "opc_named_credential_id": { + "description": "The OCID of the Named Credential.", + "type": "string" + }, + "sort_by": { + "description": "The option to sort the AWR summary data.\n\nAllowed values are: \"END_INTERVAL_TIME\", \"NAME\"", + "type": "integer" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "time_greater_than_or_equal_to": { + "description": "The optional greater than or equal to query parameter to filter the timestamp.", + "format": "date-time", + "type": "string" + }, + "time_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the timestamp.", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "managed_database_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_awr_db_sysstats", + "description": "Returns AWR SYSSTAT summaries for one AWR database.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "summarize_awr_db_sysstats", + "skills": [ + "awr-historical-performance-analysis" + ], + "inputSchema": { + "properties": { + "awr_db_id": { + "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.", + "type": "string" + }, + "begin_sn_id_greater_than_or_equal_to": { + "description": "The optional greater than or equal to filter on the snapshot ID.", + "type": "integer" + }, + "container_id": { + "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.", + "type": "integer" + }, + "end_sn_id_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the snapshot ID.", + "type": "integer" + }, + "inst_num": { + "description": "The optional single value query parameter to filter the database instance number.", + "type": "string" + }, + "limit": { + "description": "For large list pagination. Maximum number of results to return in one response page. Example: 1000.", + "type": "integer" + }, + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + }, + "name": { + "description": "The required multiple value query parameter to filter the entity name.", + "items": {}, + "type": "array" + }, + "opc_named_credential_id": { + "description": "The OCID of the Named Credential.", + "type": "string" + }, + "sort_by": { + "description": "The option to sort the data within a time period.\n\nAllowed values are: \"TIME_BEGIN\", \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "time_greater_than_or_equal_to": { + "description": "The optional greater than or equal to query parameter to filter the timestamp.", + "format": "date-time", + "type": "string" + }, + "time_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the timestamp.", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "managed_database_id", + "awr_db_id", + "name" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_awr_db_top_wait_events", + "description": "Returns top N AWR wait events for one AWR database.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "summarize_awr_db_top_wait_events", + "skills": [ + "awr-historical-performance-analysis" + ], + "inputSchema": { + "properties": { + "awr_db_id": { + "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.", + "type": "string" + }, + "begin_sn_id_greater_than_or_equal_to": { + "description": "The optional greater than or equal to filter on the snapshot ID.", + "type": "integer" + }, + "container_id": { + "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.", + "type": "integer" + }, + "end_sn_id_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the snapshot ID.", + "type": "integer" + }, + "inst_num": { + "description": "The optional single value query parameter to filter the database instance number.", + "type": "string" + }, + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + }, + "opc_named_credential_id": { + "description": "The OCID of the Named Credential.", + "type": "string" + }, + "session_type": { + "description": "The optional query parameter to filter ASH activities by FOREGROUND or BACKGROUND.\n\nAllowed values are: \"FOREGROUND\", \"BACKGROUND\", \"ALL\"", + "type": "string" + }, + "sort_by": { + "description": "The option to sort the AWR top event summary data.\n\nAllowed values are: \"WAITS_PERSEC\", \"AVG_WAIT_TIME_PERSEC\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "time_greater_than_or_equal_to": { + "description": "The optional greater than or equal to query parameter to filter the timestamp.", + "format": "date-time", + "type": "string" + }, + "time_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the timestamp.", + "format": "date-time", + "type": "string" + }, + "top_n": { + "description": "The optional query parameter to filter the number of top categories to be returned.", + "type": "integer" + } + }, + "required": [ + "managed_database_id", + "awr_db_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_awr_db_wait_event_buckets", + "description": "Returns AWR wait event histogram buckets and frequencies for one AWR database.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "summarize_awr_db_wait_event_buckets", + "skills": [ + "awr-historical-performance-analysis" + ], + "inputSchema": { + "properties": { + "awr_db_id": { + "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.", + "type": "string" + }, + "begin_sn_id_greater_than_or_equal_to": { + "description": "The optional greater than or equal to filter on the snapshot ID.", + "type": "integer" + }, + "container_id": { + "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.", + "type": "integer" + }, + "end_sn_id_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the snapshot ID.", + "type": "integer" + }, + "inst_num": { + "description": "The optional single value query parameter to filter the database instance number.", + "type": "string" + }, + "limit": { + "description": "For large list pagination. Maximum number of results to return in one response page. Example: 1000.", + "type": "integer" + }, + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + }, + "max_value": { + "description": "The maximum value of the histogram.", + "type": "number" + }, + "min_value": { + "description": "The minimum value of the histogram.", + "type": "number" + }, + "name": { + "description": "The required single value query parameter to filter the entity name.", + "type": "string" + }, + "num_bucket": { + "description": "The number of buckets within the histogram.", + "type": "integer" + }, + "opc_named_credential_id": { + "description": "The OCID of the Named Credential.", + "type": "string" + }, + "sort_by": { + "description": "The option to sort distribution data.\n\nAllowed values are: \"CATEGORY\", \"PERCENTAGE\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "time_greater_than_or_equal_to": { + "description": "The optional greater than or equal to query parameter to filter the timestamp.", + "format": "date-time", + "type": "string" + }, + "time_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the timestamp.", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "managed_database_id", + "awr_db_id", + "name" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_awr_db_wait_events", + "description": "Returns AWR wait event summaries for one AWR database.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "summarize_awr_db_wait_events", + "skills": [ + "awr-historical-performance-analysis" + ], + "inputSchema": { + "properties": { + "awr_db_id": { + "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.", + "type": "string" + }, + "begin_sn_id_greater_than_or_equal_to": { + "description": "The optional greater than or equal to filter on the snapshot ID.", + "type": "integer" + }, + "container_id": { + "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.", + "type": "integer" + }, + "end_sn_id_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the snapshot ID.", + "type": "integer" + }, + "inst_num": { + "description": "The optional single value query parameter to filter the database instance number.", + "type": "string" + }, + "limit": { + "description": "For large list pagination. Maximum number of results to return in one response page. Example: 1000.", + "type": "integer" + }, + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + }, + "name": { + "description": "The optional multiple value query parameter to filter the entity name.", + "items": {}, + "type": "array" + }, + "opc_named_credential_id": { + "description": "The OCID of the Named Credential.", + "type": "string" + }, + "session_type": { + "description": "The optional query parameter to filter ASH activities by FOREGROUND or BACKGROUND.\n\nAllowed values are: \"FOREGROUND\", \"BACKGROUND\", \"ALL\"", + "type": "string" + }, + "sort_by": { + "description": "The option to sort the data within a time period.\n\nAllowed values are: \"TIME_BEGIN\", \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "time_greater_than_or_equal_to": { + "description": "The optional greater than or equal to query parameter to filter the timestamp.", + "format": "date-time", + "type": "string" + }, + "time_less_than_or_equal_to": { + "description": "The optional less than or equal to query parameter to filter the timestamp.", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "managed_database_id", + "awr_db_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_cloud_asm_metrics", + "description": "Gets the cloud ASM metrics.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "summarize_cloud_asm_metrics", + "skills": [ + "cloud-asm-core" + ], + "inputSchema": { + "properties": { + "cloud_asm_id": { + "description": "The OCID of the cloud ASM.", + "type": "string" + }, + "end_time": { + "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`.", + "type": "string" + }, + "filter_by_metric_names": { + "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "start_time": { + "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`.", + "type": "string" + } + }, + "required": [ + "cloud_asm_id", + "start_time", + "end_time" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_cloud_cluster_metrics", + "description": "Gets the cloud cluster metrics.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "summarize_cloud_cluster_metrics", + "skills": [ + "cloud-db-runtime-topology" + ], + "inputSchema": { + "properties": { + "cloud_cluster_id": { + "description": "The OCID of the cloud cluster.", + "type": "string" + }, + "end_time": { + "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`.", + "type": "string" + }, + "filter_by_metric_names": { + "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "start_time": { + "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`.", + "type": "string" + } + }, + "required": [ + "cloud_cluster_id", + "start_time", + "end_time" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_cloud_db_node_metrics", + "description": "Gets the cloud DB nodemetrics.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "summarize_cloud_db_node_metrics", + "skills": [ + "cloud-db-runtime-topology" + ], + "inputSchema": { + "properties": { + "cloud_db_node_id": { + "description": "The OCID of the cloud database node.", + "type": "string" + }, + "end_time": { + "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`.", + "type": "string" + }, + "filter_by_metric_names": { + "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "start_time": { + "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`.", + "type": "string" + } + }, + "required": [ + "cloud_db_node_id", + "start_time", + "end_time" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_cloud_db_system_availability_metrics", + "description": "Returns availability summaries for Cloud DB system components so admins can assess component-level service health.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "summarize_cloud_db_system_availability_metrics", + "skills": [ + "cloud-inventory-discovery-connectivity" + ], + "inputSchema": { + "properties": { + "cloud_db_system_id": { + "description": "The OCID of the cloud DB system.", + "type": "string" + }, + "end_time": { + "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`.", + "type": "string" + }, + "filter_by_component_types": { + "description": "The filter used to retrieve metrics for a specific set of component types by passing the desired component types separated by a comma. Note that, by default, the service returns metrics for all DB system component types.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "start_time": { + "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`.", + "type": "string" + } + }, + "required": [ + "cloud_db_system_id", + "start_time", + "end_time" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_cloud_listener_metrics", + "description": "Gets the cloud listener metrics.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "summarize_cloud_listener_metrics", + "skills": [ + "cloud-db-runtime-topology" + ], + "inputSchema": { + "properties": { + "cloud_listener_id": { + "description": "The OCID of the cloud listener.", + "type": "string" + }, + "end_time": { + "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`.", + "type": "string" + }, + "filter_by_metric_names": { + "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "start_time": { + "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`.", + "type": "string" + } + }, + "required": [ + "cloud_listener_id", + "start_time", + "end_time" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_database_insight_resource_capacity_trend", + "description": "Shows capacity trend for a selected `resourceMetric` (for example `CPU` or `STORAGE`), including baseline/max capacity and utilization thresholds.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_database_insight_resource_capacity_trend", + "skills": [ + "database-insights" + ], + "inputSchema": { + "properties": { + "analysis_time_interval": { + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", + "type": "string" + }, + "cdb_name": { + "description": "Filter by one or more cdb name.", + "items": {}, + "type": "array" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "compartment_id_in_subtree": { + "description": "A flag to search all resources within a given compartment and all sub-compartments.", + "type": "boolean" + }, + "database_id": { + "description": "Optional list of database OCIDs of the associated DBaaS entity.", + "items": {}, + "type": "array" + }, + "database_type": { + "description": "Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: \"ADW-S\", \"ATP-S\", \"ADW-D\", \"ATP-D\", \"EXTERNAL-PDB\", \"EXTERNAL-NONCDB\", \"COMANAGED-VM-CDB\", \"COMANAGED-VM-PDB\", \"COMANAGED-VM-NONCDB\", \"COMANAGED-BM-CDB\", \"COMANAGED-BM-PDB\", \"COMANAGED-BM-NONCDB\", \"COMANAGED-EXACS-CDB\", \"COMANAGED-EXACS-PDB\", \"COMANAGED-EXACS-NONCDB\", \"COMANAGED-EXACC-CDB\", \"COMANAGED-EXACC-PDB\", \"COMANAGED-EXACC-NONCDB\", \"MDS-MYSQL\", \"EXTERNAL-MYSQL\", \"ATP-EXACC\", \"ADW-EXACC\", \"EXTERNAL-ADW\", \"EXTERNAL-ATP\", \"LH-D\", \"APEX-D\", \"AJD-D\", \"AVD-D\", \"LH-S\", \"APEX-S\", \"AJD-S\", \"AVD-S\", \"LH-EXACC\", \"APEX-EXACC\", \"AJD-EXACC\", \"AVD-EXACC\"", + "items": {}, + "type": "array" + }, + "exadata_insight_id": { + "description": "Optional list of exadata insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "high_utilization_threshold": { + "description": "Percent value in which a resource metric is considered highly utilized.", + "type": "integer" + }, + "host_name": { + "description": "Filter by one or more hostname.", + "items": {}, + "type": "array" + }, + "id": { + "description": "Optional list of database insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "is_database_instance_level_metrics": { + "description": "Flag to indicate if database instance level metrics should be returned. The flag is ignored when a host name filter is not applied. When a hostname filter is applied this flag will determine whether to return metrics for the instances located on the specified host or for the whole database which contains an instance on this host.", + "type": "boolean" + }, + "low_utilization_threshold": { + "description": "Percent value in which a resource metric is considered low utilized.", + "type": "integer" + }, + "resource_metric": { + "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY and IO.", + "type": "string" + }, + "sort_by": { + "description": "Sorts using end timestamp, capacity or baseCapacity Allowed values are: \"endTimestamp\", \"capacity\", \"baseCapacity\"", + "type": "string" + }, + "sort_order": { + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "tablespace_name": { + "description": "Tablespace name for a database", + "type": "string" + }, + "time_interval_end": { + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "format": "date-time", + "type": "string" + }, + "time_interval_start": { + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "format": "date-time", + "type": "string" + }, + "utilization_level": { + "description": "Filter by utilization level by the following buckets: - HIGH_UTILIZATION: DBs with utilization greater or equal than 75. - LOW_UTILIZATION: DBs with utilization lower than 25. - MEDIUM_HIGH_UTILIZATION: DBs with utilization greater or equal than 50 but lower than 75. - MEDIUM_LOW_UTILIZATION: DBs with utilization greater or equal than 25 but lower than 50. Allowed values are: \"HIGH_UTILIZATION\", \"LOW_UTILIZATION\", \"MEDIUM_HIGH_UTILIZATION\", \"MEDIUM_LOW_UTILIZATION\"", + "type": "string" + }, + "vmcluster_name": { + "description": "Optional list of Exadata Insight VM cluster name.", + "items": {}, + "type": "array" + } + }, + "required": [ + "compartment_id", + "resource_metric" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_database_insight_resource_forecast_trend", + "description": "Provides historical and projected demand for a selected `resourceMetric` (for example `CPU` or `STORAGE`) and statistic (`AVG` or `MAX`), including forecast algorithm output.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_database_insight_resource_forecast_trend", + "skills": [ + "database-insights" + ], + "inputSchema": { + "properties": { + "analysis_time_interval": { + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", + "type": "string" + }, + "cdb_name": { + "description": "Filter by one or more cdb name.", + "items": {}, + "type": "array" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "compartment_id_in_subtree": { + "description": "A flag to search all resources within a given compartment and all sub-compartments.", + "type": "boolean" + }, + "confidence": { + "description": "This parameter is used to change data's confidence level, this data is ingested by the forecast algorithm. Confidence is the probability of an interval to contain the expected population parameter. Manipulation of this value will lead to different results. If not set, default confidence value is 95%.", + "type": "integer" + }, + "database_id": { + "description": "Optional list of database OCIDs of the associated DBaaS entity.", + "items": {}, + "type": "array" + }, + "database_type": { + "description": "Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: \"ADW-S\", \"ATP-S\", \"ADW-D\", \"ATP-D\", \"EXTERNAL-PDB\", \"EXTERNAL-NONCDB\", \"COMANAGED-VM-CDB\", \"COMANAGED-VM-PDB\", \"COMANAGED-VM-NONCDB\", \"COMANAGED-BM-CDB\", \"COMANAGED-BM-PDB\", \"COMANAGED-BM-NONCDB\", \"COMANAGED-EXACS-CDB\", \"COMANAGED-EXACS-PDB\", \"COMANAGED-EXACS-NONCDB\", \"COMANAGED-EXACC-CDB\", \"COMANAGED-EXACC-PDB\", \"COMANAGED-EXACC-NONCDB\", \"MDS-MYSQL\", \"EXTERNAL-MYSQL\", \"ATP-EXACC\", \"ADW-EXACC\", \"EXTERNAL-ADW\", \"EXTERNAL-ATP\", \"LH-D\", \"APEX-D\", \"AJD-D\", \"AVD-D\", \"LH-S\", \"APEX-S\", \"AJD-S\", \"AVD-S\", \"LH-EXACC\", \"APEX-EXACC\", \"AJD-EXACC\", \"AVD-EXACC\"", + "items": {}, + "type": "array" + }, + "exadata_insight_id": { + "description": "Optional list of exadata insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "forecast_days": { + "description": "Number of days used for utilization forecast analysis.", + "type": "integer" + }, + "forecast_model": { + "description": "Choose algorithm model for the forecasting. Possible values: - LINEAR: Uses linear regression algorithm for forecasting. - ML_AUTO: Automatically detects best algorithm to use for forecasting. - ML_NO_AUTO: Automatically detects seasonality of the data for forecasting using linear or seasonal algorithm. Allowed values are: \"LINEAR\", \"ML_AUTO\", \"ML_NO_AUTO\"", + "type": "string" + }, + "high_utilization_threshold": { + "description": "Percent value in which a resource metric is considered highly utilized.", + "type": "integer" + }, + "host_name": { + "description": "Filter by one or more hostname.", + "items": {}, + "type": "array" + }, + "id": { + "description": "Optional list of database insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "is_database_instance_level_metrics": { + "description": "Flag to indicate if database instance level metrics should be returned. The flag is ignored when a host name filter is not applied. When a hostname filter is applied this flag will determine whether to return metrics for the instances located on the specified host or for the whole database which contains an instance on this host.", + "type": "boolean" + }, + "low_utilization_threshold": { + "description": "Percent value in which a resource metric is considered low utilized.", + "type": "integer" + }, + "resource_metric": { + "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY and IO.", + "type": "string" + }, + "statistic": { + "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"", + "type": "string" + }, + "tablespace_name": { + "description": "Tablespace name for a database", + "type": "string" + }, + "time_interval_end": { + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "format": "date-time", + "type": "string" + }, + "time_interval_start": { + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "format": "date-time", + "type": "string" + }, + "utilization_level": { + "description": "Filter by utilization level by the following buckets: - HIGH_UTILIZATION: DBs with utilization greater or equal than 75. - LOW_UTILIZATION: DBs with utilization lower than 25. - MEDIUM_HIGH_UTILIZATION: DBs with utilization greater or equal than 50 but lower than 75. - MEDIUM_LOW_UTILIZATION: DBs with utilization greater or equal than 25 but lower than 50. Allowed values are: \"HIGH_UTILIZATION\", \"LOW_UTILIZATION\", \"MEDIUM_HIGH_UTILIZATION\", \"MEDIUM_LOW_UTILIZATION\"", + "type": "string" + }, + "vmcluster_name": { + "description": "Optional list of Exadata Insight VM cluster name.", + "items": {}, + "type": "array" + } + }, + "required": [ + "compartment_id", + "resource_metric" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_database_insight_resource_statistics", + "description": "Returns per-database statistics for a selected `resourceMetric` (for example `CPU` or `STORAGE`), including usage, capacity, utilization, and usage-change percent.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_database_insight_resource_statistics", + "skills": [ + "database-insights" + ], + "inputSchema": { + "properties": { + "analysis_time_interval": { + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", + "type": "string" + }, + "cdb_name": { + "description": "Filter by one or more cdb name.", + "items": {}, + "type": "array" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "compartment_id_in_subtree": { + "description": "A flag to search all resources within a given compartment and all sub-compartments.", + "type": "boolean" + }, + "database_id": { + "description": "Optional list of database OCIDs of the associated DBaaS entity.", + "items": {}, + "type": "array" + }, + "database_type": { + "description": "Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: \"ADW-S\", \"ATP-S\", \"ADW-D\", \"ATP-D\", \"EXTERNAL-PDB\", \"EXTERNAL-NONCDB\", \"COMANAGED-VM-CDB\", \"COMANAGED-VM-PDB\", \"COMANAGED-VM-NONCDB\", \"COMANAGED-BM-CDB\", \"COMANAGED-BM-PDB\", \"COMANAGED-BM-NONCDB\", \"COMANAGED-EXACS-CDB\", \"COMANAGED-EXACS-PDB\", \"COMANAGED-EXACS-NONCDB\", \"COMANAGED-EXACC-CDB\", \"COMANAGED-EXACC-PDB\", \"COMANAGED-EXACC-NONCDB\", \"MDS-MYSQL\", \"EXTERNAL-MYSQL\", \"ATP-EXACC\", \"ADW-EXACC\", \"EXTERNAL-ADW\", \"EXTERNAL-ATP\", \"LH-D\", \"APEX-D\", \"AJD-D\", \"AVD-D\", \"LH-S\", \"APEX-S\", \"AJD-S\", \"AVD-S\", \"LH-EXACC\", \"APEX-EXACC\", \"AJD-EXACC\", \"AVD-EXACC\"", + "items": {}, + "type": "array" + }, + "exadata_insight_id": { + "description": "Optional list of exadata insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "forecast_days": { + "description": "Number of days used for utilization forecast analysis.", + "type": "integer" + }, + "high_utilization_threshold": { + "description": "Percent value in which a resource metric is considered highly utilized.", + "type": "integer" + }, + "host_name": { + "description": "Filter by one or more hostname.", + "items": {}, + "type": "array" + }, + "id": { + "description": "Optional list of database insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "insight_by": { + "description": "Return data of a specific insight Possible values are High Utilization, Low Utilization, Any,High Utilization Forecast, Low Utilization Forecast", + "type": "string" + }, + "is_database_instance_level_metrics": { + "description": "Flag to indicate if database instance level metrics should be returned. The flag is ignored when a host name filter is not applied. When a hostname filter is applied this flag will determine whether to return metrics for the instances located on the specified host or for the whole database which contains an instance on this host.", + "type": "boolean" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "low_utilization_threshold": { + "description": "Percent value in which a resource metric is considered low utilized.", + "type": "integer" + }, + "percentile": { + "description": "Percentile values of daily usage to be used for computing the aggregate resource usage.", + "type": "integer" + }, + "resource_metric": { + "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY and IO.", + "type": "string" + }, + "sort_by": { + "description": "The order in which resource statistics records are listed Allowed values are: \"utilizationPercent\", \"usage\", \"usageChangePercent\", \"databaseName\", \"databaseType\"", + "type": "string" + }, + "sort_order": { + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "time_interval_end": { + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "format": "date-time", + "type": "string" + }, + "time_interval_start": { + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "format": "date-time", + "type": "string" + }, + "vmcluster_name": { + "description": "Optional list of Exadata Insight VM cluster name.", + "items": {}, + "type": "array" + } + }, + "required": [ + "compartment_id", + "resource_metric" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_database_insight_resource_usage", + "description": "Shows overall consumption for a selected `resourceMetric` (for example `CPU` or `STORAGE`), including current usage, capacity, and usage change percent.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_database_insight_resource_usage", + "skills": [ + "database-insights" + ], + "inputSchema": { + "properties": { + "analysis_time_interval": { + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", + "type": "string" + }, + "cdb_name": { + "description": "Filter by one or more cdb name.", + "items": {}, + "type": "array" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "compartment_id_in_subtree": { + "description": "A flag to search all resources within a given compartment and all sub-compartments.", + "type": "boolean" + }, + "database_id": { + "description": "Optional list of database OCIDs of the associated DBaaS entity.", + "items": {}, + "type": "array" + }, + "database_type": { + "description": "Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: \"ADW-S\", \"ATP-S\", \"ADW-D\", \"ATP-D\", \"EXTERNAL-PDB\", \"EXTERNAL-NONCDB\", \"COMANAGED-VM-CDB\", \"COMANAGED-VM-PDB\", \"COMANAGED-VM-NONCDB\", \"COMANAGED-BM-CDB\", \"COMANAGED-BM-PDB\", \"COMANAGED-BM-NONCDB\", \"COMANAGED-EXACS-CDB\", \"COMANAGED-EXACS-PDB\", \"COMANAGED-EXACS-NONCDB\", \"COMANAGED-EXACC-CDB\", \"COMANAGED-EXACC-PDB\", \"COMANAGED-EXACC-NONCDB\", \"MDS-MYSQL\", \"EXTERNAL-MYSQL\", \"ATP-EXACC\", \"ADW-EXACC\", \"EXTERNAL-ADW\", \"EXTERNAL-ATP\", \"LH-D\", \"APEX-D\", \"AJD-D\", \"AVD-D\", \"LH-S\", \"APEX-S\", \"AJD-S\", \"AVD-S\", \"LH-EXACC\", \"APEX-EXACC\", \"AJD-EXACC\", \"AVD-EXACC\"", + "items": {}, + "type": "array" + }, + "exadata_insight_id": { + "description": "Optional list of exadata insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "host_name": { + "description": "Filter by one or more hostname.", + "items": {}, + "type": "array" + }, + "id": { + "description": "Optional list of database insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "is_database_instance_level_metrics": { + "description": "Flag to indicate if database instance level metrics should be returned. The flag is ignored when a host name filter is not applied. When a hostname filter is applied this flag will determine whether to return metrics for the instances located on the specified host or for the whole database which contains an instance on this host.", + "type": "boolean" + }, + "percentile": { + "description": "Percentile values of daily usage to be used for computing the aggregate resource usage.", + "type": "integer" + }, + "resource_metric": { + "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY and IO.", + "type": "string" + }, + "time_interval_end": { + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "format": "date-time", + "type": "string" + }, + "time_interval_start": { + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "format": "date-time", + "type": "string" + }, + "vmcluster_name": { + "description": "Optional list of Exadata Insight VM cluster name.", + "items": {}, + "type": "array" + } + }, + "required": [ + "compartment_id", + "resource_metric" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_database_insight_resource_usage_trend", + "description": "Shows usage and capacity trend lines over time for a selected `resourceMetric` (for example `CPU` or `STORAGE`) to spot growth or spikes.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_database_insight_resource_usage_trend", + "skills": [ + "database-insights" + ], + "inputSchema": { + "properties": { + "analysis_time_interval": { + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", + "type": "string" + }, + "cdb_name": { + "description": "Filter by one or more cdb name.", + "items": {}, + "type": "array" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "compartment_id_in_subtree": { + "description": "A flag to search all resources within a given compartment and all sub-compartments.", + "type": "boolean" + }, + "database_id": { + "description": "Optional list of database OCIDs of the associated DBaaS entity.", + "items": {}, + "type": "array" + }, + "database_type": { + "description": "Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: \"ADW-S\", \"ATP-S\", \"ADW-D\", \"ATP-D\", \"EXTERNAL-PDB\", \"EXTERNAL-NONCDB\", \"COMANAGED-VM-CDB\", \"COMANAGED-VM-PDB\", \"COMANAGED-VM-NONCDB\", \"COMANAGED-BM-CDB\", \"COMANAGED-BM-PDB\", \"COMANAGED-BM-NONCDB\", \"COMANAGED-EXACS-CDB\", \"COMANAGED-EXACS-PDB\", \"COMANAGED-EXACS-NONCDB\", \"COMANAGED-EXACC-CDB\", \"COMANAGED-EXACC-PDB\", \"COMANAGED-EXACC-NONCDB\", \"MDS-MYSQL\", \"EXTERNAL-MYSQL\", \"ATP-EXACC\", \"ADW-EXACC\", \"EXTERNAL-ADW\", \"EXTERNAL-ATP\", \"LH-D\", \"APEX-D\", \"AJD-D\", \"AVD-D\", \"LH-S\", \"APEX-S\", \"AJD-S\", \"AVD-S\", \"LH-EXACC\", \"APEX-EXACC\", \"AJD-EXACC\", \"AVD-EXACC\"", + "items": {}, + "type": "array" + }, + "exadata_insight_id": { + "description": "Optional list of exadata insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "host_name": { + "description": "Filter by one or more hostname.", + "items": {}, + "type": "array" + }, + "id": { + "description": "Optional list of database insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "is_database_instance_level_metrics": { + "description": "Flag to indicate if database instance level metrics should be returned. The flag is ignored when a host name filter is not applied. When a hostname filter is applied this flag will determine whether to return metrics for the instances located on the specified host or for the whole database which contains an instance on this host.", + "type": "boolean" + }, + "resource_metric": { + "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY and IO.", + "type": "string" + }, + "sort_by": { + "description": "Sorts using end timestamp, usage or capacity Allowed values are: \"endTimestamp\", \"usage\", \"capacity\"", + "type": "string" + }, + "sort_order": { + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "time_interval_end": { + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "format": "date-time", + "type": "string" + }, + "time_interval_start": { + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "format": "date-time", + "type": "string" + }, + "vmcluster_name": { + "description": "Optional list of Exadata Insight VM cluster name.", + "items": {}, + "type": "array" + } + }, + "required": [ + "compartment_id", + "resource_metric" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_database_insight_resource_utilization_insight", + "description": "Groups databases by current and projected utilization bands for a selected `resourceMetric` (for example `CPU` or `STORAGE`).", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_database_insight_resource_utilization_insight", + "skills": [ + "database-insights" + ], + "inputSchema": { + "properties": { + "analysis_time_interval": { + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", + "type": "string" + }, + "cdb_name": { + "description": "Filter by one or more cdb name.", + "items": {}, + "type": "array" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "compartment_id_in_subtree": { + "description": "A flag to search all resources within a given compartment and all sub-compartments.", + "type": "boolean" + }, + "database_id": { + "description": "Optional list of database OCIDs of the associated DBaaS entity.", + "items": {}, + "type": "array" + }, + "database_type": { + "description": "Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: \"ADW-S\", \"ATP-S\", \"ADW-D\", \"ATP-D\", \"EXTERNAL-PDB\", \"EXTERNAL-NONCDB\", \"COMANAGED-VM-CDB\", \"COMANAGED-VM-PDB\", \"COMANAGED-VM-NONCDB\", \"COMANAGED-BM-CDB\", \"COMANAGED-BM-PDB\", \"COMANAGED-BM-NONCDB\", \"COMANAGED-EXACS-CDB\", \"COMANAGED-EXACS-PDB\", \"COMANAGED-EXACS-NONCDB\", \"COMANAGED-EXACC-CDB\", \"COMANAGED-EXACC-PDB\", \"COMANAGED-EXACC-NONCDB\", \"MDS-MYSQL\", \"EXTERNAL-MYSQL\", \"ATP-EXACC\", \"ADW-EXACC\", \"EXTERNAL-ADW\", \"EXTERNAL-ATP\", \"LH-D\", \"APEX-D\", \"AJD-D\", \"AVD-D\", \"LH-S\", \"APEX-S\", \"AJD-S\", \"AVD-S\", \"LH-EXACC\", \"APEX-EXACC\", \"AJD-EXACC\", \"AVD-EXACC\"", + "items": {}, + "type": "array" + }, + "exadata_insight_id": { + "description": "Optional list of exadata insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "forecast_days": { + "description": "Number of days used for utilization forecast analysis.", + "type": "integer" + }, + "high_utilization_threshold": { + "description": "Percent value in which a resource metric is considered highly utilized.", + "type": "integer" + }, + "host_name": { + "description": "Filter by one or more hostname.", + "items": {}, + "type": "array" + }, + "id": { + "description": "Optional list of database insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "is_database_instance_level_metrics": { + "description": "Flag to indicate if database instance level metrics should be returned. The flag is ignored when a host name filter is not applied. When a hostname filter is applied this flag will determine whether to return metrics for the instances located on the specified host or for the whole database which contains an instance on this host.", + "type": "boolean" + }, + "low_utilization_threshold": { + "description": "Percent value in which a resource metric is considered low utilized.", + "type": "integer" + }, + "resource_metric": { + "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY and IO.", + "type": "string" + }, + "time_interval_end": { + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "format": "date-time", + "type": "string" + }, + "time_interval_start": { + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "format": "date-time", + "type": "string" + }, + "vmcluster_name": { + "description": "Optional list of Exadata Insight VM cluster name.", + "items": {}, + "type": "array" + } + }, + "required": [ + "compartment_id", + "resource_metric" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_database_insight_tablespace_usage_trend", + "description": "Shows which top tablespaces are growing over time, including used vs allocated space per interval (`items.usageData`) and the analysis window.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_database_insight_tablespace_usage_trend", + "skills": [ + "database-insights" + ], + "inputSchema": { + "properties": { + "analysis_time_interval": { + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", + "type": "string" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "database_id": { + "description": "Optional OCID of the associated DBaaS entity.", + "type": "string" + }, + "id": { + "description": "OCID of the database insight resource.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "time_interval_end": { + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "format": "date-time", + "type": "string" + }, + "time_interval_start": { + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "compartment_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_exadata_insight_resource_capacity_trend", + "description": "Returns per-system Exadata capacity trends, including per-system `items`, selected metric/type, and usage units. Example metric/type: `MEMORY` on `DATABASE`.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_exadata_insight_resource_capacity_trend", + "skills": [ + "exadata-insights" + ], + "inputSchema": { + "properties": { + "analysis_time_interval": { + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", + "type": "string" + }, + "cdb_name": { + "description": "Filter by one or more cdb name.", + "items": {}, + "type": "array" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "database_insight_id": { + "description": "Optional list of database insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "exadata_insight_id": { + "description": "OCID of exadata insight resource.", + "type": "string" + }, + "exadata_type": { + "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC.", + "items": {}, + "type": "array" + }, + "host_insight_id": { + "description": "Optional list of host insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "host_name": { + "description": "Filter by hostname.", + "items": {}, + "type": "array" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "resource_metric": { + "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT", + "type": "string" + }, + "resource_type": { + "description": "Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE", + "type": "string" + }, + "sort_by": { + "description": "The order in which resource capacity trend records are listed Allowed values are: \"id\", \"name\"", + "type": "string" + }, + "sort_order": { + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "storage_server_name": { + "description": "Optional storage server name on an exadata system.", + "items": {}, + "type": "array" + }, + "time_interval_end": { + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "format": "date-time", + "type": "string" + }, + "time_interval_start": { + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "resource_type", + "resource_metric", + "exadata_insight_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_exadata_insight_resource_capacity_trend_aggregated", + "description": "Returns fleet-level Exadata capacity trends, including `capacityData`, metric/type context, and interval duration. Example metric/type: `STORAGE` on `DATABASE`.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_exadata_insight_resource_capacity_trend_aggregated", + "skills": [ + "exadata-insights" + ], + "inputSchema": { + "properties": { + "analysis_time_interval": { + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", + "type": "string" + }, + "cdb_name": { + "description": "Filter by one or more cdb name.", + "items": {}, + "type": "array" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "compartment_id_in_subtree": { + "description": "A flag to search all resources within a given compartment and all sub-compartments.", + "type": "boolean" + }, + "exadata_insight_id": { + "description": "Optional list of exadata insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "exadata_type": { + "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC.", + "items": {}, + "type": "array" + }, + "host_name": { + "description": "Filter by hostname.", + "items": {}, + "type": "array" + }, + "resource_metric": { + "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT", + "type": "string" + }, + "resource_type": { + "description": "Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE", + "type": "string" + }, + "sort_by": { + "description": "Sorts using end timestamp or capacity. Allowed values are: \"endTimestamp\", \"capacity\"", + "type": "string" + }, + "sort_order": { + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "time_interval_end": { + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "format": "date-time", + "type": "string" + }, + "time_interval_start": { + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "resource_type", + "resource_metric" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_exadata_insight_resource_forecast_trend", + "description": "Returns per-system Exadata forecast trends, including `items`, `exadataResourceMetric`, and `exadataResourceType`. Example metric/type: `CPU` on `HOST`.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_exadata_insight_resource_forecast_trend", + "skills": [ + "exadata-insights" + ], + "inputSchema": { + "properties": { + "analysis_time_interval": { + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", + "type": "string" + }, + "cdb_name": { + "description": "Filter by one or more cdb name.", + "items": {}, + "type": "array" + }, + "confidence": { + "description": "This parameter is used to change data's confidence level, this data is ingested by the forecast algorithm. Confidence is the probability of an interval to contain the expected population parameter. Manipulation of this value will lead to different results. If not set, default confidence value is 95%.", + "type": "integer" + }, + "database_insight_id": { + "description": "Optional list of database insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "exadata_insight_id": { + "description": "OCID of exadata insight resource.", + "type": "string" + }, + "exadata_type": { + "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC.", + "items": {}, + "type": "array" + }, + "forecast_days": { + "description": "Number of days used for utilization forecast analysis.", + "type": "integer" + }, + "forecast_model": { + "description": "Choose algorithm model for the forecasting. Possible values: - LINEAR: Uses linear regression algorithm for forecasting. - ML_AUTO: Automatically detects best algorithm to use for forecasting. - ML_NO_AUTO: Automatically detects seasonality of the data for forecasting using linear or seasonal algorithm. Allowed values are: \"LINEAR\", \"ML_AUTO\", \"ML_NO_AUTO\"", + "type": "string" + }, + "forecast_start_day": { + "description": "Number of days used for utilization forecast analysis.", + "type": "integer" + }, + "host_insight_id": { + "description": "Optional list of host insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "host_name": { + "description": "Filter by hostname.", + "items": {}, + "type": "array" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "resource_metric": { + "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT", + "type": "string" + }, + "resource_type": { + "description": "Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE", + "type": "string" + }, + "sort_by": { + "description": "The order in which resource Forecast trend records are listed Allowed values are: \"id\", \"name\", \"daysToReachCapacity\"", + "type": "string" + }, + "sort_order": { + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "statistic": { + "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"", + "type": "string" + }, + "storage_server_name": { + "description": "Optional storage server name on an exadata system.", + "items": {}, + "type": "array" + }, + "time_interval_end": { + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "format": "date-time", + "type": "string" + }, + "time_interval_start": { + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "resource_type", + "resource_metric", + "exadata_insight_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_exadata_insight_resource_forecast_trend_aggregated", + "description": "Returns aggregated forecast trends across Exadata systems, including `historicalData`, `projectedData`, and `daysToReachCapacity`. Example metric/type: `CPU` on `HOST`.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_exadata_insight_resource_forecast_trend_aggregated", + "skills": [ + "exadata-insights" + ], + "inputSchema": { + "properties": { + "analysis_time_interval": { + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", + "type": "string" + }, + "cdb_name": { + "description": "Filter by one or more cdb name.", + "items": {}, + "type": "array" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "compartment_id_in_subtree": { + "description": "A flag to search all resources within a given compartment and all sub-compartments.", + "type": "boolean" + }, + "confidence": { + "description": "This parameter is used to change data's confidence level, this data is ingested by the forecast algorithm. Confidence is the probability of an interval to contain the expected population parameter. Manipulation of this value will lead to different results. If not set, default confidence value is 95%.", + "type": "integer" + }, + "exadata_insight_id": { + "description": "Optional list of exadata insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "exadata_type": { + "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC.", + "items": {}, + "type": "array" + }, + "forecast_days": { + "description": "Number of days used for utilization forecast analysis.", + "type": "integer" + }, + "forecast_model": { + "description": "Choose algorithm model for the forecasting. Possible values: - LINEAR: Uses linear regression algorithm for forecasting. - ML_AUTO: Automatically detects best algorithm to use for forecasting. - ML_NO_AUTO: Automatically detects seasonality of the data for forecasting using linear or seasonal algorithm. Allowed values are: \"LINEAR\", \"ML_AUTO\", \"ML_NO_AUTO\"", + "type": "string" + }, + "forecast_start_day": { + "description": "Number of days used for utilization forecast analysis.", + "type": "integer" + }, + "host_name": { + "description": "Filter by hostname.", + "items": {}, + "type": "array" + }, + "resource_metric": { + "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT", + "type": "string" + }, + "resource_type": { + "description": "Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE", + "type": "string" + }, + "statistic": { + "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"", + "type": "string" + }, + "time_interval_end": { + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "format": "date-time", + "type": "string" + }, + "time_interval_start": { + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "resource_type", + "resource_metric" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_exadata_insight_resource_statistics", + "description": "Returns member-level Exadata resource statistics, including resource `items`, selected metric, and usage unit context. Example metric/type: `IOPS` on `STORAGE_SERVER`.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_exadata_insight_resource_statistics", + "skills": [ + "exadata-insights" + ], + "inputSchema": { + "properties": { + "analysis_time_interval": { + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", + "type": "string" + }, + "cdb_name": { + "description": "Filter by one or more cdb name.", + "items": {}, + "type": "array" + }, + "exadata_insight_id": { + "description": "OCID of exadata insight resource.", + "type": "string" + }, + "exadata_type": { + "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC.", + "items": {}, + "type": "array" + }, + "host_name": { + "description": "Filter by hostname.", + "items": {}, + "type": "array" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "percentile": { + "description": "Percentile values of daily usage to be used for computing the aggregate resource usage.", + "type": "integer" + }, + "resource_metric": { + "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT", + "type": "string" + }, + "resource_type": { + "description": "Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE", + "type": "string" + }, + "sort_by": { + "description": "The order in which resource statistics records are listed Allowed values are: \"utilizationPercent\", \"usage\", \"usageChangePercent\"", + "type": "string" + }, + "sort_order": { + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "time_interval_end": { + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "format": "date-time", + "type": "string" + }, + "time_interval_start": { + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "exadata_insight_id", + "resource_type", + "resource_metric" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_exadata_insight_resource_usage", + "description": "Returns system-level Exadata resource usage, including per-system `items`, selected metric/type, and usage units. Example metric/type: `THROUGHPUT` on `STORAGE_SERVER`.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_exadata_insight_resource_usage", + "skills": [ + "exadata-insights" + ], + "inputSchema": { + "properties": { + "analysis_time_interval": { + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", + "type": "string" + }, + "cdb_name": { + "description": "Filter by one or more cdb name.", + "items": {}, + "type": "array" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "compartment_id_in_subtree": { + "description": "A flag to search all resources within a given compartment and all sub-compartments.", + "type": "boolean" + }, + "exadata_insight_id": { + "description": "Optional list of exadata insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "exadata_type": { + "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC.", + "items": {}, + "type": "array" + }, + "host_name": { + "description": "Filter by hostname.", + "items": {}, + "type": "array" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "percentile": { + "description": "Percentile values of daily usage to be used for computing the aggregate resource usage.", + "type": "integer" + }, + "resource_metric": { + "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT", + "type": "string" + }, + "resource_type": { + "description": "Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE", + "type": "string" + }, + "sort_by": { + "description": "The order in which resource usage summary records are listed Allowed values are: \"utilizationPercent\", \"usage\", \"capacity\", \"usageChangePercent\"", + "type": "string" + }, + "sort_order": { + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "time_interval_end": { + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "format": "date-time", + "type": "string" + }, + "time_interval_start": { + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "compartment_id", + "resource_type", + "resource_metric" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_exadata_insight_resource_usage_aggregated", + "description": "Returns fleet-level aggregated Exadata usage, including `usage`, `capacity`, and `usageChangePercent`. Example metric/type: `MEMORY` on `DATABASE`.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_exadata_insight_resource_usage_aggregated", + "skills": [ + "exadata-insights" + ], + "inputSchema": { + "properties": { + "analysis_time_interval": { + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", + "type": "string" + }, + "cdb_name": { + "description": "Filter by one or more cdb name.", + "items": {}, + "type": "array" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "compartment_id_in_subtree": { + "description": "A flag to search all resources within a given compartment and all sub-compartments.", + "type": "boolean" + }, + "exadata_insight_id": { + "description": "Optional list of exadata insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "exadata_type": { + "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC.", + "items": {}, + "type": "array" + }, + "host_name": { + "description": "Filter by hostname.", + "items": {}, + "type": "array" + }, + "percentile": { + "description": "Percentile values of daily usage to be used for computing the aggregate resource usage.", + "type": "integer" + }, + "resource_metric": { + "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT", + "type": "string" + }, + "resource_type": { + "description": "Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE", + "type": "string" + }, + "time_interval_end": { + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "format": "date-time", + "type": "string" + }, + "time_interval_start": { + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "compartment_id", + "resource_type", + "resource_metric" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_exadata_insight_resource_utilization_insight", + "description": "Returns Exadata utilization insights with thresholds, including `utilization`, high/low threshold values, and metric/type context. Example metric/type: `IO` on `HOST`.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_exadata_insight_resource_utilization_insight", + "skills": [ + "exadata-insights" + ], + "inputSchema": { + "properties": { + "analysis_time_interval": { + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", + "type": "string" + }, + "cdb_name": { + "description": "Filter by one or more cdb name.", + "items": {}, + "type": "array" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "compartment_id_in_subtree": { + "description": "A flag to search all resources within a given compartment and all sub-compartments.", + "type": "boolean" + }, + "exadata_insight_id": { + "description": "Optional list of exadata insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "exadata_type": { + "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC.", + "items": {}, + "type": "array" + }, + "forecast_days": { + "description": "Number of days used for utilization forecast analysis.", + "type": "integer" + }, + "forecast_start_day": { + "description": "Number of days used for utilization forecast analysis.", + "type": "integer" + }, + "high_utilization_threshold": { + "description": "Percent value in which a resource metric is considered highly utilized.", + "type": "integer" + }, + "host_name": { + "description": "Filter by hostname.", + "items": {}, + "type": "array" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "low_utilization_threshold": { + "description": "Percent value in which a resource metric is considered low utilized.", + "type": "integer" + }, + "resource_metric": { + "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT", + "type": "string" + }, + "resource_type": { + "description": "Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE", + "type": "string" + }, + "time_interval_end": { + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "format": "date-time", + "type": "string" + }, + "time_interval_start": { + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "compartment_id", + "resource_type", + "resource_metric" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_exadata_members", + "description": "Returns Exadata member inventory, including rack identity (`exadataName`, `exadataRackType`) and member `items`.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_exadata_members", + "skills": [ + "exadata-insights" + ], + "inputSchema": { + "properties": { + "exadata_insight_id": { + "description": "OCID of exadata insight resource.", + "type": "string" + }, + "exadata_type": { + "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC.", + "items": {}, + "type": "array" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "sort_by": { + "description": "The order in which exadata member records are listed Allowed values are: \"name\", \"displayName\", \"entityType\"", + "type": "string" + }, + "sort_order": { + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", + "type": "string" + } + }, + "required": [ + "exadata_insight_id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_external_asm_metrics", + "description": "Returns time-series external ASM metrics for capacity and I/O health checks in a selected window.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "summarize_external_asm_metrics", + "skills": [ + "external-asm-core" + ], + "inputSchema": { + "properties": { + "end_time": { + "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`.", + "type": "string" + }, + "external_asm_id": { + "description": "The OCID of the external ASM.", + "type": "string" + }, + "filter_by_metric_names": { + "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "start_time": { + "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`.", + "type": "string" + } + }, + "required": [ + "external_asm_id", + "start_time", + "end_time" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_external_cluster_metrics", + "description": "Returns external cluster metrics for health checks in a selected time window.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "summarize_external_cluster_metrics", + "skills": [ + "external-db-runtime-topology" + ], + "inputSchema": { + "properties": { + "end_time": { + "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`.", + "type": "string" + }, + "external_cluster_id": { + "description": "The OCID of the external cluster.", + "type": "string" + }, + "filter_by_metric_names": { + "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "start_time": { + "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`.", + "type": "string" + } + }, + "required": [ + "external_cluster_id", + "start_time", + "end_time" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_external_db_node_metrics", + "description": "Returns external DB node metrics for CPU, memory, network, and storage checks in a selected window.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "summarize_external_db_node_metrics", + "skills": [ + "external-db-runtime-topology" + ], + "inputSchema": { + "properties": { + "end_time": { + "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`.", + "type": "string" + }, + "external_db_node_id": { + "description": "The OCID of the external database node.", + "type": "string" + }, + "filter_by_metric_names": { + "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "start_time": { + "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`.", + "type": "string" + } + }, + "required": [ + "external_db_node_id", + "start_time", + "end_time" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_external_db_system_availability_metrics", + "description": "Returns availability metrics for external DB system components over a selected time window.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "summarize_external_db_system_availability_metrics", + "skills": [ + "external-inventory-discovery-connectivity" + ], + "inputSchema": { + "properties": { + "end_time": { + "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`.", + "type": "string" + }, + "external_db_system_id": { + "description": "The OCID of the external DB system.", + "type": "string" + }, + "filter_by_component_types": { + "description": "The filter used to retrieve metrics for a specific set of component types by passing the desired component types separated by a comma. Note that, by default, the service returns metrics for all DB system component types.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "start_time": { + "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`.", + "type": "string" + } + }, + "required": [ + "external_db_system_id", + "start_time", + "end_time" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_external_listener_metrics", + "description": "Returns listener metrics for connection-load and availability checks in a selected window.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "summarize_external_listener_metrics", + "skills": [ + "external-db-runtime-topology" + ], + "inputSchema": { + "properties": { + "end_time": { + "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`.", + "type": "string" + }, + "external_listener_id": { + "description": "The OCID of the external listener.", + "type": "string" + }, + "filter_by_metric_names": { + "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "start_time": { + "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`.", + "type": "string" + } + }, + "required": [ + "external_listener_id", + "start_time", + "end_time" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_host_insight_disk_statistics", + "description": "Returns disk-level usage statistics for a host, including per-disk `items`, interval duration, and usage units.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_host_insight_disk_statistics", + "skills": [ + "host-insights" + ], + "inputSchema": { + "properties": { + "analysis_time_interval": { + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", + "type": "string" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "host_id": { + "description": "Optional OCID of the host (Compute Id).", + "type": "string" + }, + "id": { + "description": "Required OCID of the host insight resource.", + "type": "string" + }, + "statistic": { + "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"", + "type": "string" + }, + "status": { + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"", + "items": {}, + "type": "array" + }, + "time_interval_end": { + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "format": "date-time", + "type": "string" + }, + "time_interval_start": { + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "compartment_id", + "id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_host_insight_host_recommendation", + "description": "Returns host recommendations for a resource type, including recommendation `details`, interval context, and usage units. Example metric: `STORAGE`.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_host_insight_host_recommendation", + "skills": [ + "host-insights" + ], + "inputSchema": { + "properties": { + "analysis_time_interval": { + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", + "type": "string" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "host_id": { + "description": "Optional OCID of the host (Compute Id).", + "type": "string" + }, + "id": { + "description": "Required OCID of the host insight resource.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "resource_metric": { + "description": "Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK.", + "type": "string" + }, + "statistic": { + "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"", + "type": "string" + }, + "time_interval_end": { + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "format": "date-time", + "type": "string" + }, + "time_interval_start": { + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "compartment_id", + "id", + "resource_metric" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_host_insight_io_usage_trend", + "description": "Returns host I/O usage time-series data, including `items`, interval duration, and start/end timestamps.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_host_insight_io_usage_trend", + "skills": [ + "host-insights" + ], + "inputSchema": { + "properties": { + "analysis_time_interval": { + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", + "type": "string" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "host_id": { + "description": "Optional OCID of the host (Compute Id).", + "type": "string" + }, + "id": { + "description": "Required OCID of the host insight resource.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "statistic": { + "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"", + "type": "string" + }, + "status": { + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"", + "items": {}, + "type": "array" + }, + "time_interval_end": { + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "format": "date-time", + "type": "string" + }, + "time_interval_start": { + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "compartment_id", + "id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_host_insight_network_usage_trend", + "description": "Returns network usage trends for a host, including sampled `items`, interval duration, and usage units.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_host_insight_network_usage_trend", + "skills": [ + "host-insights" + ], + "inputSchema": { + "properties": { + "analysis_time_interval": { + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", + "type": "string" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "host_id": { + "description": "Optional OCID of the host (Compute Id).", + "type": "string" + }, + "id": { + "description": "Required OCID of the host insight resource.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "statistic": { + "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"", + "type": "string" + }, + "status": { + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"", + "items": {}, + "type": "array" + }, + "time_interval_end": { + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "format": "date-time", + "type": "string" + }, + "time_interval_start": { + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "compartment_id", + "id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_host_insight_resource_capacity_trend", + "description": "Returns host resource capacity trend data, including `capacityData`, `resourceMetric`, and interval boundaries. Example metric: `CPU`.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_host_insight_resource_capacity_trend", + "skills": [ + "host-insights" + ], + "inputSchema": { + "properties": { + "analysis_time_interval": { + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", + "type": "string" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "compartment_id_in_subtree": { + "description": "A flag to search all resources within a given compartment and all sub-compartments.", + "type": "boolean" + }, + "exadata_insight_id": { + "description": "Optional list of exadata insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "high_utilization_threshold": { + "description": "Percent value in which a resource metric is considered highly utilized.", + "type": "integer" + }, + "host_id": { + "description": "Optional OCID of the host (Compute Id).", + "type": "string" + }, + "host_type": { + "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST", + "items": {}, + "type": "array" + }, + "id": { + "description": "Optional list of host insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "low_utilization_threshold": { + "description": "Percent value in which a resource metric is considered low utilized.", + "type": "integer" + }, + "platform_type": { + "description": "Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: \"LINUX\", \"SOLARIS\", \"SUNOS\", \"ZLINUX\", \"WINDOWS\", \"AIX\", \"HP_UX\"", + "items": {}, + "type": "array" + }, + "resource_metric": { + "description": "Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK.", + "type": "string" + }, + "sort_by": { + "description": "Sorts using end timestamp or capacity Allowed values are: \"endTimestamp\", \"capacity\"", + "type": "string" + }, + "sort_order": { + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "status": { + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"", + "items": {}, + "type": "array" + }, + "time_interval_end": { + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "format": "date-time", + "type": "string" + }, + "time_interval_start": { + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "format": "date-time", + "type": "string" + }, + "utilization_level": { + "description": "Filter by utilization level by the following buckets: - HIGH_UTILIZATION: DBs with utilization greater or equal than 75. - LOW_UTILIZATION: DBs with utilization lower than 25. - MEDIUM_HIGH_UTILIZATION: DBs with utilization greater or equal than 50 but lower than 75. - MEDIUM_LOW_UTILIZATION: DBs with utilization greater or equal than 25 but lower than 50. Allowed values are: \"HIGH_UTILIZATION\", \"LOW_UTILIZATION\", \"MEDIUM_HIGH_UTILIZATION\", \"MEDIUM_LOW_UTILIZATION\"", + "type": "string" + }, + "vmcluster_name": { + "description": "Optional list of Exadata Insight VM cluster name.", + "items": {}, + "type": "array" + } + }, + "required": [ + "compartment_id", + "resource_metric" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_host_insight_resource_forecast_trend", + "description": "Returns historical and projected usage for a host resource, including `historicalData`, `projectedData`, and selected forecast algorithm. Example metric: `NETWORK`.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_host_insight_resource_forecast_trend", + "skills": [ + "host-insights" + ], + "inputSchema": { + "properties": { + "analysis_time_interval": { + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", + "type": "string" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "compartment_id_in_subtree": { + "description": "A flag to search all resources within a given compartment and all sub-compartments.", + "type": "boolean" + }, + "confidence": { + "description": "This parameter is used to change data's confidence level, this data is ingested by the forecast algorithm. Confidence is the probability of an interval to contain the expected population parameter. Manipulation of this value will lead to different results. If not set, default confidence value is 95%.", + "type": "integer" + }, + "exadata_insight_id": { + "description": "Optional list of exadata insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "forecast_days": { + "description": "Number of days used for utilization forecast analysis.", + "type": "integer" + }, + "forecast_model": { + "description": "Choose algorithm model for the forecasting. Possible values: - LINEAR: Uses linear regression algorithm for forecasting. - ML_AUTO: Automatically detects best algorithm to use for forecasting. - ML_NO_AUTO: Automatically detects seasonality of the data for forecasting using linear or seasonal algorithm. Allowed values are: \"LINEAR\", \"ML_AUTO\", \"ML_NO_AUTO\"", + "type": "string" + }, + "gpu_id": { + "description": "GPU identifier.", + "type": "integer" + }, + "high_utilization_threshold": { + "description": "Percent value in which a resource metric is considered highly utilized.", + "type": "integer" + }, + "host_id": { + "description": "Optional OCID of the host (Compute Id).", + "type": "string" + }, + "host_type": { + "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST", + "items": {}, + "type": "array" + }, + "id": { + "description": "Optional list of host insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "interface_name": { + "description": "Name of the network interface.", + "type": "string" + }, + "low_utilization_threshold": { + "description": "Percent value in which a resource metric is considered low utilized.", + "type": "integer" + }, + "mount_point": { + "description": "Mount points are specialized NTFS filesystem objects.", + "type": "string" + }, + "platform_type": { + "description": "Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: \"LINUX\", \"SOLARIS\", \"SUNOS\", \"ZLINUX\", \"WINDOWS\", \"AIX\", \"HP_UX\"", + "items": {}, + "type": "array" + }, + "resource_metric": { + "description": "Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK.", + "type": "string" + }, + "statistic": { + "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"", + "type": "string" + }, + "status": { + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"", + "items": {}, + "type": "array" + }, + "time_interval_end": { + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "format": "date-time", + "type": "string" + }, + "time_interval_start": { + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "format": "date-time", + "type": "string" + }, + "utilization_level": { + "description": "Filter by utilization level by the following buckets: - HIGH_UTILIZATION: DBs with utilization greater or equal than 75. - LOW_UTILIZATION: DBs with utilization lower than 25. - MEDIUM_HIGH_UTILIZATION: DBs with utilization greater or equal than 50 but lower than 75. - MEDIUM_LOW_UTILIZATION: DBs with utilization greater or equal than 25 but lower than 50. Allowed values are: \"HIGH_UTILIZATION\", \"LOW_UTILIZATION\", \"MEDIUM_HIGH_UTILIZATION\", \"MEDIUM_LOW_UTILIZATION\"", + "type": "string" + }, + "vmcluster_name": { + "description": "Optional list of Exadata Insight VM cluster name.", + "items": {}, + "type": "array" + } + }, + "required": [ + "compartment_id", + "resource_metric" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_host_insight_resource_statistics", + "description": "Returns host-by-host resource statistics, including per-host `items`, utilization thresholds, and usage units. Example metric: `MEMORY`.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_host_insight_resource_statistics", + "skills": [ + "host-insights" + ], + "inputSchema": { + "properties": { + "analysis_time_interval": { + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", + "type": "string" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "compartment_id_in_subtree": { + "description": "A flag to search all resources within a given compartment and all sub-compartments.", + "type": "boolean" + }, + "exadata_insight_id": { + "description": "Optional list of exadata insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "forecast_days": { + "description": "Number of days used for utilization forecast analysis.", + "type": "integer" + }, + "high_utilization_threshold": { + "description": "Percent value in which a resource metric is considered highly utilized.", + "type": "integer" + }, + "host_id": { + "description": "Optional OCID of the host (Compute Id).", + "type": "string" + }, + "host_type": { + "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST", + "items": {}, + "type": "array" + }, + "id": { + "description": "Optional list of host insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "insight_by": { + "description": "Return data of a specific insight Possible values are High Utilization, Low Utilization, Any,High Utilization Forecast, Low Utilization Forecast", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "low_utilization_threshold": { + "description": "Percent value in which a resource metric is considered low utilized.", + "type": "integer" + }, + "percentile": { + "description": "Percentile values of daily usage to be used for computing the aggregate resource usage.", + "type": "integer" + }, + "platform_type": { + "description": "Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: \"LINUX\", \"SOLARIS\", \"SUNOS\", \"ZLINUX\", \"WINDOWS\", \"AIX\", \"HP_UX\"", + "items": {}, + "type": "array" + }, + "resource_metric": { + "description": "Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK.", + "type": "string" + }, + "sort_by": { + "description": "The order in which resource statistics records are listed. Allowed values are: \"utilizationPercent\", \"usage\", \"usageChangePercent\", \"hostName\", \"platformType\"", + "type": "string" + }, + "sort_order": { + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "status": { + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"", + "items": {}, + "type": "array" + }, + "time_interval_end": { + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "format": "date-time", + "type": "string" + }, + "time_interval_start": { + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "format": "date-time", + "type": "string" + }, + "vmcluster_name": { + "description": "Optional list of Exadata Insight VM cluster name.", + "items": {}, + "type": "array" + } + }, + "required": [ + "compartment_id", + "resource_metric" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_host_insight_resource_usage", + "description": "Returns aggregated host usage for a resource type, including `usage`, `capacity`, and `usageChangePercent`. Example metric: `LOGICAL_MEMORY`.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_host_insight_resource_usage", + "skills": [ + "host-insights" + ], + "inputSchema": { + "properties": { + "analysis_time_interval": { + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", + "type": "string" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "compartment_id_in_subtree": { + "description": "A flag to search all resources within a given compartment and all sub-compartments.", + "type": "boolean" + }, + "exadata_insight_id": { + "description": "Optional list of exadata insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "host_id": { + "description": "Optional OCID of the host (Compute Id).", + "type": "string" + }, + "host_type": { + "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST", + "items": {}, + "type": "array" + }, + "id": { + "description": "Optional list of host insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "percentile": { + "description": "Percentile values of daily usage to be used for computing the aggregate resource usage.", + "type": "integer" + }, + "platform_type": { + "description": "Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: \"LINUX\", \"SOLARIS\", \"SUNOS\", \"ZLINUX\", \"WINDOWS\", \"AIX\", \"HP_UX\"", + "items": {}, + "type": "array" + }, + "resource_metric": { + "description": "Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK.", + "type": "string" + }, + "status": { + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"", + "items": {}, + "type": "array" + }, + "time_interval_end": { + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "format": "date-time", + "type": "string" + }, + "time_interval_start": { + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "format": "date-time", + "type": "string" + }, + "vmcluster_name": { + "description": "Optional list of Exadata Insight VM cluster name.", + "items": {}, + "type": "array" + } + }, + "required": [ + "compartment_id", + "resource_metric" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_host_insight_resource_usage_trend", + "description": "Returns host usage time series for a resource type, including `usageData`, `resourceMetric`, and interval boundaries. Example metric: `STORAGE`.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_host_insight_resource_usage_trend", + "skills": [ + "host-insights" + ], + "inputSchema": { + "properties": { + "analysis_time_interval": { + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", + "type": "string" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "compartment_id_in_subtree": { + "description": "A flag to search all resources within a given compartment and all sub-compartments.", + "type": "boolean" + }, + "exadata_insight_id": { + "description": "Optional list of exadata insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "host_id": { + "description": "Optional OCID of the host (Compute Id).", + "type": "string" + }, + "host_type": { + "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST", + "items": {}, + "type": "array" + }, + "id": { + "description": "Optional list of host insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "platform_type": { + "description": "Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: \"LINUX\", \"SOLARIS\", \"SUNOS\", \"ZLINUX\", \"WINDOWS\", \"AIX\", \"HP_UX\"", + "items": {}, + "type": "array" + }, + "resource_metric": { + "description": "Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK.", + "type": "string" + }, + "sort_by": { + "description": "Sorts using end timestamp, usage or capacity Allowed values are: \"endTimestamp\", \"usage\", \"capacity\"", + "type": "string" + }, + "sort_order": { + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "status": { + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"", + "items": {}, + "type": "array" + }, + "time_interval_end": { + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "format": "date-time", + "type": "string" + }, + "time_interval_start": { + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "format": "date-time", + "type": "string" + }, + "vmcluster_name": { + "description": "Optional list of Exadata Insight VM cluster name.", + "items": {}, + "type": "array" + } + }, + "required": [ + "compartment_id", + "resource_metric" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_host_insight_resource_utilization_insight", + "description": "Returns current and projected utilization insights, including `currentUtilization`, `projectedUtilization`, and threshold values. Example metric: `CPU`.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_host_insight_resource_utilization_insight", + "skills": [ + "host-insights" + ], + "inputSchema": { + "properties": { + "analysis_time_interval": { + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", + "type": "string" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "compartment_id_in_subtree": { + "description": "A flag to search all resources within a given compartment and all sub-compartments.", + "type": "boolean" + }, + "exadata_insight_id": { + "description": "Optional list of exadata insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "forecast_days": { + "description": "Number of days used for utilization forecast analysis.", + "type": "integer" + }, + "high_utilization_threshold": { + "description": "Percent value in which a resource metric is considered highly utilized.", + "type": "integer" + }, + "host_id": { + "description": "Optional OCID of the host (Compute Id).", + "type": "string" + }, + "host_type": { + "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST", + "items": {}, + "type": "array" + }, + "id": { + "description": "Optional list of host insight resource OCIDs.", + "items": {}, + "type": "array" + }, + "low_utilization_threshold": { + "description": "Percent value in which a resource metric is considered low utilized.", + "type": "integer" + }, + "platform_type": { + "description": "Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: \"LINUX\", \"SOLARIS\", \"SUNOS\", \"ZLINUX\", \"WINDOWS\", \"AIX\", \"HP_UX\"", + "items": {}, + "type": "array" + }, + "resource_metric": { + "description": "Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK.", + "type": "string" + }, + "status": { + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"", + "items": {}, + "type": "array" + }, + "time_interval_end": { + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "format": "date-time", + "type": "string" + }, + "time_interval_start": { + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "format": "date-time", + "type": "string" + }, + "vmcluster_name": { + "description": "Optional list of Exadata Insight VM cluster name.", + "items": {}, + "type": "array" + } + }, + "required": [ + "compartment_id", + "resource_metric" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_host_insight_storage_usage_trend", + "description": "Returns storage usage trends for a host, including filesystem-level `items`, interval duration, and usage units.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_host_insight_storage_usage_trend", + "skills": [ + "host-insights" + ], + "inputSchema": { + "properties": { + "analysis_time_interval": { + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", + "type": "string" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "host_id": { + "description": "Optional OCID of the host (Compute Id).", + "type": "string" + }, + "id": { + "description": "Required OCID of the host insight resource.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "statistic": { + "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"", + "type": "string" + }, + "status": { + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"", + "items": {}, + "type": "array" + }, + "time_interval_end": { + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "format": "date-time", + "type": "string" + }, + "time_interval_start": { + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "compartment_id", + "id" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_host_insight_top_processes_usage", + "description": "Returns top process usage for a specific date, including process `items` and observation `timestamp`. Example metric: `MEMORY`.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_host_insight_top_processes_usage", + "skills": [ + "host-insights" + ], + "inputSchema": { + "properties": { + "analysis_time_interval": { + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", + "type": "string" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "host_id": { + "description": "Optional OCID of the host (Compute Id).", + "type": "string" + }, + "host_type": { + "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST", + "items": {}, + "type": "array" + }, + "id": { + "description": "Required OCID of the host insight resource.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "resource_metric": { + "description": "Host top processes resource metric sort options. Supported values are CPU, MEMORY, VIIRTUAL_MEMORY.", + "type": "string" + }, + "statistic": { + "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"", + "type": "string" + }, + "status": { + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"", + "items": {}, + "type": "array" + }, + "time_interval_end": { + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "format": "date-time", + "type": "string" + }, + "time_interval_start": { + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "format": "date-time", + "type": "string" + }, + "timestamp": { + "description": "Timestamp at which to gather the top processes. This will be top processes over the hour or over the day pending the time range passed into the query.", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "compartment_id", + "id", + "resource_metric", + "timestamp" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_host_insight_top_processes_usage_trend", + "description": "Returns top process usage trends, including process `items` and interval start/end timestamps. Example metric: `CPU`.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_host_insight_top_processes_usage_trend", + "skills": [ + "host-insights" + ], + "inputSchema": { + "properties": { + "analysis_time_interval": { + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", + "type": "string" + }, + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "host_id": { + "description": "Optional OCID of the host (Compute Id).", + "type": "string" + }, + "host_type": { + "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST", + "items": {}, + "type": "array" + }, + "id": { + "description": "Required OCID of the host insight resource.", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "process_hash": { + "description": "Unique identifier for a process.", + "type": "string" + }, + "resource_metric": { + "description": "Host top processes resource metric sort options. Supported values are CPU, MEMORY, VIIRTUAL_MEMORY.", + "type": "string" + }, + "statistic": { + "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"", + "type": "string" + }, + "status": { + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"", + "items": {}, + "type": "array" + }, + "time_interval_end": { + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "format": "date-time", + "type": "string" + }, + "time_interval_start": { + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "compartment_id", + "id", + "resource_metric" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_job_executions_statuses", + "description": "Returns aggregated counts of job executions by status for the requested scope and time range.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "summarize_job_executions_statuses", + "skills": [ + "job-orchestration-and-execution-tracking" + ], + "inputSchema": { + "properties": { + "compartment_id": { + "description": "The OCID of the compartment.", + "type": "string" + }, + "end_time": { + "description": "The end time of the time range to retrieve the status summary of job executions\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\".", + "type": "string" + }, + "id": { + "description": "The identifier of the resource.", + "type": "string" + }, + "managed_database_group_id": { + "description": "The OCID of the Managed Database Group.", + "type": "string" + }, + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + }, + "name": { + "description": "A filter to return only resources that match the entire name.", + "type": "string" + }, + "sort_by": { + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"", + "type": "string" + }, + "sort_order": { + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string" + }, + "start_time": { + "description": "The start time of the time range to retrieve the status summary of job executions\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\".", + "type": "string" + } + }, + "required": [ + "compartment_id", + "start_time", + "end_time" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_managed_database_availability_metrics", + "description": "Returns managed database availability summaries so admins can assess component uptime and health over time.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "summarize_managed_database_availability_metrics", + "skills": [ + "database-health-and-core-metrics" + ], + "inputSchema": { + "properties": { + "end_time": { + "description": "The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\".", + "type": "string" + }, + "limit": { + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", + "type": "integer" + }, + "managed_database_id": { + "description": "The OCID of the Managed Database.", + "type": "string" + }, + "start_time": { + "description": "The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\".", + "type": "string" + } + }, + "required": [ + "managed_database_id", + "start_time", + "end_time" + ], + "type": "object" + }, + "mutable": false + }, + { + "name": "summarize_sql_insights", + "description": "Get performance Insights for SQLs across databases. DEPRECATED (announced May 2024; no longer functional as of May 31, 2025).", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_sql_insights", + "skills": [ + "database-performance-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "compartment_id": { + "type": "string", + "description": "The [OCID](/iaas/Content/General/Concepts/identifiers.htm) of the compartment." + }, + "database_type": { + "type": "array", + "description": "Filter by one or more database type.\nPossible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB.\n", + "items": { + "type": "string", + "enum": [ + "ADW-S", + "ATP-S", + "ADW-D", + "ATP-D", + "EXTERNAL-PDB", + "EXTERNAL-NONCDB", + "COMANAGED-VM-CDB", + "COMANAGED-VM-PDB", + "COMANAGED-VM-NONCDB", + "COMANAGED-BM-CDB", + "COMANAGED-BM-PDB", + "COMANAGED-BM-NONCDB", + "COMANAGED-EXACS-CDB", + "COMANAGED-EXACS-PDB", + "COMANAGED-EXACS-NONCDB", + "COMANAGED-EXACC-CDB", + "COMANAGED-EXACC-PDB", + "COMANAGED-EXACC-NONCDB", + "MDS-MYSQL", + "EXTERNAL-MYSQL", + "ATP-EXACC", + "ADW-EXACC", + "EXTERNAL-ADW", + "EXTERNAL-ATP" + ] + } + }, + "database_id": { + "type": "array", + "description": "Optional list of database [OCIDs](/iaas/Content/General/Concepts/identifiers.htm) of the associated DBaaS entity.\n", + "items": { + "type": "string" + } + }, + "id": { + "type": "array", + "description": "Optional list of database insight resource [OCIDs](/iaas/Content/General/Concepts/identifiers.htm).\n", + "items": { + "type": "string" + } + }, + "exadata_insight_id": { + "type": "array", + "description": "Optional list of exadata insight resource [OCIDs](/iaas/Content/General/Concepts/identifiers.htm).\n", + "items": { + "type": "string" + } + }, + "cdb_name": { + "type": "array", + "description": "Filter by one or more cdb name.\n", + "items": { + "type": "string" + } + }, + "host_name": { + "type": "array", + "description": "Filter by one or more hostname.\n", + "items": { + "type": "string" + } + }, + "database_time_pct_greater_than": { + "type": "number", + "description": "Filter sqls by percentage of db time.\n", + "minimum": 1, + "maximum": 100, + "format": "double" + }, + "analysis_time_interval": { + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time.\nDefault is last 30 days represented by P30D.\nIf timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored.\nExamples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months), . Maximum value allowed is 25 months prior to current time (P25M).\n" + }, + "time_interval_start": { + "type": "string", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\nThe minimum allowed value is 2 years prior to the current day.\ntimeIntervalStart and timeIntervalEnd parameters are used together.\nIf analysisTimeInterval is specified, this parameter is ignored.\n", + "format": "date-time" + }, + "time_interval_end": { + "type": "string", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\ntimeIntervalStart and timeIntervalEnd are used together.\nIf timeIntervalEnd is not specified, current time is used as timeIntervalEnd.\n", + "format": "date-time" + }, + "page": { + "type": "string", + "description": "For list pagination. The value of the `opc-next-page` response header from\nthe previous \"List\" call. For important details about how pagination works,\nsee [List Pagination](/Content/API/Concepts/usingapi.htm#nine).\n" + }, + "opc_request_id": { + "type": "string", + "description": "Unique Oracle-assigned identifier for the request. If you need to contact\nOracle about a particular request, please provide the request ID.\n" + }, + "defined_tag_equals": { + "type": "array", + "description": "A list of tag filters to apply. Only resources with a defined tag matching the value will be returned.\nEach item in the list has the format \"{namespace}.{tagName}.{value}\". All inputs are case-insensitive.\nMultiple values for the same key (i.e. same namespace and tag name) are interpreted as \"OR\".\nValues for different keys (i.e. different namespaces, different tag names, or both) are interpreted as \"AND\".\n", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "description": "A list of tag filters to apply. Only resources with a freeform tag matching the value will be returned.\nThe key for each tag is \"{tagName}.{value}\". All inputs are case-insensitive.\nMultiple values for the same tag name are interpreted as \"OR\". Values for different tag names are interpreted as \"AND\".\n", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "description": "A list of tag existence filters to apply. Only resources for which the specified defined tags exist will be returned.\nEach item in the list has the format \"{namespace}.{tagName}.true\" (for checking existence of a defined tag)\nor \"{namespace}.true\". All inputs are case-insensitive.\nCurrently, only existence (\"true\" at the end) is supported. Absence (\"false\" at the end) is not supported.\nMultiple values for the same key (i.e. same namespace and tag name) are interpreted as \"OR\".\nValues for different keys (i.e. different namespaces, different tag names, or both) are interpreted as \"AND\".\n", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "description": "A list of tag existence filters to apply. Only resources for which the specified freeform tags exist the value will be returned.\nThe key for each tag is \"{tagName}.true\". All inputs are case-insensitive.\nCurrently, only existence (\"true\" at the end) is supported. Absence (\"false\" at the end) is not supported.\nMultiple values for different tag names are interpreted as \"AND\".\n", + "items": { + "type": "string" + } + }, + "compartment_id_in_subtree": { + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments.\n" + }, + "vmcluster_name": { + "type": "array", + "description": "Optional list of Exadata Insight VM cluster name.\n", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "compartment_id" + ] + }, + "mutable": false + }, + { + "name": "summarize_sql_plan_insights", + "description": "Get performance insights on execution plans for a SQL. DEPRECATED (announced May 2024; no longer functional as of May 31, 2025).", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_sql_plan_insights", + "skills": [ + "database-performance-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "compartment_id": { + "type": "string", + "description": "The [OCID](/iaas/Content/General/Concepts/identifiers.htm) of the compartment." + }, + "database_id": { + "type": "string", + "description": "Optional [OCID](/iaas/Content/General/Concepts/identifiers.htm) of the associated DBaaS entity.\n" + }, + "id": { + "type": "string", + "description": "[OCID](/iaas/Content/General/Concepts/identifiers.htm) of the database insight resource.\n" + }, + "sql_identifier": { + "type": "string", + "description": "Unique SQL_ID for a SQL Statement.\nExample: `6rgjh9bjmy2s7`\n" + }, + "analysis_time_interval": { + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time.\nDefault is last 30 days represented by P30D.\nIf timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored.\nExamples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months), . Maximum value allowed is 25 months prior to current time (P25M).\n" + }, + "time_interval_start": { + "type": "string", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\nThe minimum allowed value is 2 years prior to the current day.\ntimeIntervalStart and timeIntervalEnd parameters are used together.\nIf analysisTimeInterval is specified, this parameter is ignored.\n", + "format": "date-time" + }, + "time_interval_end": { + "type": "string", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\ntimeIntervalStart and timeIntervalEnd are used together.\nIf timeIntervalEnd is not specified, current time is used as timeIntervalEnd.\n", + "format": "date-time" + }, + "page": { + "type": "string", + "description": "For list pagination. The value of the `opc-next-page` response header from\nthe previous \"List\" call. For important details about how pagination works,\nsee [List Pagination](/Content/API/Concepts/usingapi.htm#nine).\n" + }, + "opc_request_id": { + "type": "string", + "description": "Unique Oracle-assigned identifier for the request. If you need to contact\nOracle about a particular request, please provide the request ID.\n" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", + "sql_identifier" + ] + }, + "mutable": false + }, + { + "name": "summarize_sql_response_time_distributions", + "description": "Summarize response time distribution of query executions for a SQL. DEPRECATED (announced May 2024; no longer functional as of May 31, 2025).", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_sql_response_time_distributions", + "skills": [ + "database-performance-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "compartment_id": { + "type": "string", + "description": "The [OCID](/iaas/Content/General/Concepts/identifiers.htm) of the compartment." + }, + "database_id": { + "type": "string", + "description": "Optional [OCID](/iaas/Content/General/Concepts/identifiers.htm) of the associated DBaaS entity.\n" + }, + "id": { + "type": "string", + "description": "[OCID](/iaas/Content/General/Concepts/identifiers.htm) of the database insight resource.\n" + }, + "sql_identifier": { + "type": "string", + "description": "Unique SQL_ID for a SQL Statement.\nExample: `6rgjh9bjmy2s7`\n" + }, + "analysis_time_interval": { + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time.\nDefault is last 30 days represented by P30D.\nIf timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored.\nExamples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months), . Maximum value allowed is 25 months prior to current time (P25M).\n" + }, + "time_interval_start": { + "type": "string", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\nThe minimum allowed value is 2 years prior to the current day.\ntimeIntervalStart and timeIntervalEnd parameters are used together.\nIf analysisTimeInterval is specified, this parameter is ignored.\n", + "format": "date-time" + }, + "time_interval_end": { + "type": "string", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\ntimeIntervalStart and timeIntervalEnd are used together.\nIf timeIntervalEnd is not specified, current time is used as timeIntervalEnd.\n", + "format": "date-time" + }, + "page": { + "type": "string", + "description": "For list pagination. The value of the `opc-next-page` response header from\nthe previous \"List\" call. For important details about how pagination works,\nsee [List Pagination](/Content/API/Concepts/usingapi.htm#nine).\n" + }, + "opc_request_id": { + "type": "string", + "description": "Unique Oracle-assigned identifier for the request. If you need to contact\nOracle about a particular request, please provide the request ID.\n" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", + "sql_identifier" + ] + }, + "mutable": false + }, + { + "name": "summarize_sql_statistics", + "description": "Get performance statistics for SQLs across databases. DEPRECATED (announced May 2024; no longer functional as of May 31, 2025).", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_sql_statistics", + "skills": [ + "database-performance-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "compartment_id": { + "type": "string", + "description": "The [OCID](/iaas/Content/General/Concepts/identifiers.htm) of the compartment." + }, + "database_type": { + "type": "array", + "description": "Filter by one or more database type.\nPossible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB.\n", + "items": { + "type": "string", + "enum": [ + "ADW-S", + "ATP-S", + "ADW-D", + "ATP-D", + "EXTERNAL-PDB", + "EXTERNAL-NONCDB", + "COMANAGED-VM-CDB", + "COMANAGED-VM-PDB", + "COMANAGED-VM-NONCDB", + "COMANAGED-BM-CDB", + "COMANAGED-BM-PDB", + "COMANAGED-BM-NONCDB", + "COMANAGED-EXACS-CDB", + "COMANAGED-EXACS-PDB", + "COMANAGED-EXACS-NONCDB", + "COMANAGED-EXACC-CDB", + "COMANAGED-EXACC-PDB", + "COMANAGED-EXACC-NONCDB", + "MDS-MYSQL", + "EXTERNAL-MYSQL", + "ATP-EXACC", + "ADW-EXACC", + "EXTERNAL-ADW", + "EXTERNAL-ATP" + ] + } + }, + "database_id": { + "type": "array", + "description": "Optional list of database [OCIDs](/iaas/Content/General/Concepts/identifiers.htm) of the associated DBaaS entity.\n", + "items": { + "type": "string" + } + }, + "id": { + "type": "array", + "description": "Optional list of database insight resource [OCIDs](/iaas/Content/General/Concepts/identifiers.htm).\n", + "items": { + "type": "string" + } + }, + "exadata_insight_id": { + "type": "array", + "description": "Optional list of exadata insight resource [OCIDs](/iaas/Content/General/Concepts/identifiers.htm).\n", + "items": { + "type": "string" + } + }, + "cdb_name": { + "type": "array", + "description": "Filter by one or more cdb name.\n", + "items": { + "type": "string" + } + }, + "host_name": { + "type": "array", + "description": "Filter by one or more hostname.\n", + "items": { + "type": "string" + } + }, + "database_time_pct_greater_than": { + "type": "number", + "description": "Filter sqls by percentage of db time.\n", + "minimum": 1, + "maximum": 100, + "format": "double" + }, + "sql_identifier": { + "type": "array", + "description": "One or more unique SQL_IDs for a SQL Statement.\nExample: `6rgjh9bjmy2s7`\n", + "items": { + "type": "string" + } + }, + "analysis_time_interval": { + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time.\nDefault is last 30 days represented by P30D.\nIf timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored.\nExamples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months), . Maximum value allowed is 25 months prior to current time (P25M).\n" + }, + "time_interval_start": { + "type": "string", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\nThe minimum allowed value is 2 years prior to the current day.\ntimeIntervalStart and timeIntervalEnd parameters are used together.\nIf analysisTimeInterval is specified, this parameter is ignored.\n", + "format": "date-time" + }, + "time_interval_end": { + "type": "string", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\ntimeIntervalStart and timeIntervalEnd are used together.\nIf timeIntervalEnd is not specified, current time is used as timeIntervalEnd.\n", + "format": "date-time" + }, + "limit": { + "type": "integer", + "description": "For list pagination. The maximum number of results per page, or items to\nreturn in a paginated \"List\" call.\nFor important details about how pagination works, see\n[List Pagination](/Content/API/Concepts/usingapi.htm#nine).\nExample: `50`\n", + "minimum": 1, + "maximum": 1000 + }, + "page": { + "type": "string", + "description": "For list pagination. The value of the `opc-next-page` response header from\nthe previous \"List\" call. For important details about how pagination works,\nsee [List Pagination](/Content/API/Concepts/usingapi.htm#nine).\n" + }, + "opc_request_id": { + "type": "string", + "description": "Unique Oracle-assigned identifier for the request. If you need to contact\nOracle about a particular request, please provide the request ID.\n" + }, + "sort_order": { + "type": "string", + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`).\n", + "enum": [ + "ASC", + "DESC" + ] + }, + "sort_by": { + "type": "string", + "description": "The field to use when sorting SQL statistics.\nExample: databaseTimeInSec\n", + "enum": [ + "databaseTimeInSec", + "executionsPerHour", + "executionsCount", + "cpuTimeInSec", + "ioTimeInSec", + "inefficientWaitTimeInSec", + "responseTimeInSec", + "planCount", + "variability", + "averageActiveSessions", + "databaseTimePct", + "inefficiencyInPct", + "changeInCpuTimeInPct", + "changeInIoTimeInPct", + "changeInInefficientWaitTimeInPct", + "changeInResponseTimeInPct", + "changeInAverageActiveSessionsInPct", + "changeInExecutionsPerHourInPct", + "changeInInefficiencyInPct" + ] + }, + "category": { + "type": "array", + "description": "Filter sqls by one or more performance categories.\n", + "items": { + "type": "string", + "enum": [ + "DEGRADING", + "VARIANT", + "INEFFICIENT", + "CHANGING_PLANS", + "IMPROVING", + "DEGRADING_VARIANT", + "DEGRADING_INEFFICIENT", + "DEGRADING_CHANGING_PLANS", + "DEGRADING_INCREASING_IO", + "DEGRADING_INCREASING_CPU", + "DEGRADING_INCREASING_INEFFICIENT_WAIT", + "DEGRADING_CHANGING_PLANS_AND_INCREASING_IO", + "DEGRADING_CHANGING_PLANS_AND_INCREASING_CPU", + "DEGRADING_CHANGING_PLANS_AND_INCREASING_INEFFICIENT_WAIT", + "VARIANT_INEFFICIENT", + "VARIANT_CHANGING_PLANS", + "VARIANT_INCREASING_IO", + "VARIANT_INCREASING_CPU", + "VARIANT_INCREASING_INEFFICIENT_WAIT", + "VARIANT_CHANGING_PLANS_AND_INCREASING_IO", + "VARIANT_CHANGING_PLANS_AND_INCREASING_CPU", + "VARIANT_CHANGING_PLANS_AND_INCREASING_INEFFICIENT_WAIT", + "INEFFICIENT_CHANGING_PLANS", + "INEFFICIENT_INCREASING_INEFFICIENT_WAIT", + "INEFFICIENT_CHANGING_PLANS_AND_INCREASING_INEFFICIENT_WAIT" + ] + } + }, + "defined_tag_equals": { + "type": "array", + "description": "A list of tag filters to apply. Only resources with a defined tag matching the value will be returned.\nEach item in the list has the format \"{namespace}.{tagName}.{value}\". All inputs are case-insensitive.\nMultiple values for the same key (i.e. same namespace and tag name) are interpreted as \"OR\".\nValues for different keys (i.e. different namespaces, different tag names, or both) are interpreted as \"AND\".\n", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "description": "A list of tag filters to apply. Only resources with a freeform tag matching the value will be returned.\nThe key for each tag is \"{tagName}.{value}\". All inputs are case-insensitive.\nMultiple values for the same tag name are interpreted as \"OR\". Values for different tag names are interpreted as \"AND\".\n", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "description": "A list of tag existence filters to apply. Only resources for which the specified defined tags exist will be returned.\nEach item in the list has the format \"{namespace}.{tagName}.true\" (for checking existence of a defined tag)\nor \"{namespace}.true\". All inputs are case-insensitive.\nCurrently, only existence (\"true\" at the end) is supported. Absence (\"false\" at the end) is not supported.\nMultiple values for the same key (i.e. same namespace and tag name) are interpreted as \"OR\".\nValues for different keys (i.e. different namespaces, different tag names, or both) are interpreted as \"AND\".\n", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "description": "A list of tag existence filters to apply. Only resources for which the specified freeform tags exist the value will be returned.\nThe key for each tag is \"{tagName}.true\". All inputs are case-insensitive.\nCurrently, only existence (\"true\" at the end) is supported. Absence (\"false\" at the end) is not supported.\nMultiple values for different tag names are interpreted as \"AND\".\n", + "items": { + "type": "string" + } + }, + "compartment_id_in_subtree": { + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments.\n" + }, + "vmcluster_name": { + "type": "array", + "description": "Optional list of Exadata Insight VM cluster name.\n", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "compartment_id" + ] + }, + "mutable": false + }, + { + "name": "summarize_sql_statistics_time_series", + "description": "Get performance statistics time series for a SQL across one or more databases. DEPRECATED (announced May 2024; no longer functional as of May 31, 2025).", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_sql_statistics_time_series", + "skills": [ + "database-performance-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "compartment_id": { + "type": "string", + "description": "The [OCID](/iaas/Content/General/Concepts/identifiers.htm) of the compartment." + }, + "database_id": { + "type": "array", + "description": "Optional list of database [OCIDs](/iaas/Content/General/Concepts/identifiers.htm) of the associated DBaaS entity.\n", + "items": { + "type": "string" + } + }, + "id": { + "type": "array", + "description": "Optional list of database [OCIDs](/iaas/Content/General/Concepts/identifiers.htm) of the database insight resource.\n", + "items": { + "type": "string" + } + }, + "exadata_insight_id": { + "type": "array", + "description": "Optional list of exadata insight resource [OCIDs](/iaas/Content/General/Concepts/identifiers.htm).\n", + "items": { + "type": "string" + } + }, + "cdb_name": { + "type": "array", + "description": "Filter by one or more cdb name.\n", + "items": { + "type": "string" + } + }, + "host_name": { + "type": "array", + "description": "Filter by one or more hostname.\n", + "items": { + "type": "string" + } + }, + "sql_identifier": { + "type": "string", + "description": "Unique SQL_ID for a SQL Statement.\nExample: `6rgjh9bjmy2s7`\n" + }, + "analysis_time_interval": { + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time.\nDefault is last 30 days represented by P30D.\nIf timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored.\nExamples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months), . Maximum value allowed is 25 months prior to current time (P25M).\n" + }, + "time_interval_start": { + "type": "string", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\nThe minimum allowed value is 2 years prior to the current day.\ntimeIntervalStart and timeIntervalEnd parameters are used together.\nIf analysisTimeInterval is specified, this parameter is ignored.\n", + "format": "date-time" + }, + "time_interval_end": { + "type": "string", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\ntimeIntervalStart and timeIntervalEnd are used together.\nIf timeIntervalEnd is not specified, current time is used as timeIntervalEnd.\n", + "format": "date-time" + }, + "page": { + "type": "string", + "description": "For list pagination. The value of the `opc-next-page` response header from\nthe previous \"List\" call. For important details about how pagination works,\nsee [List Pagination](/Content/API/Concepts/usingapi.htm#nine).\n" + }, + "opc_request_id": { + "type": "string", + "description": "Unique Oracle-assigned identifier for the request. If you need to contact\nOracle about a particular request, please provide the request ID.\n" + }, + "defined_tag_equals": { + "type": "array", + "description": "A list of tag filters to apply. Only resources with a defined tag matching the value will be returned.\nEach item in the list has the format \"{namespace}.{tagName}.{value}\". All inputs are case-insensitive.\nMultiple values for the same key (i.e. same namespace and tag name) are interpreted as \"OR\".\nValues for different keys (i.e. different namespaces, different tag names, or both) are interpreted as \"AND\".\n", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "description": "A list of tag filters to apply. Only resources with a freeform tag matching the value will be returned.\nThe key for each tag is \"{tagName}.{value}\". All inputs are case-insensitive.\nMultiple values for the same tag name are interpreted as \"OR\". Values for different tag names are interpreted as \"AND\".\n", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "description": "A list of tag existence filters to apply. Only resources for which the specified defined tags exist will be returned.\nEach item in the list has the format \"{namespace}.{tagName}.true\" (for checking existence of a defined tag)\nor \"{namespace}.true\". All inputs are case-insensitive.\nCurrently, only existence (\"true\" at the end) is supported. Absence (\"false\" at the end) is not supported.\nMultiple values for the same key (i.e. same namespace and tag name) are interpreted as \"OR\".\nValues for different keys (i.e. different namespaces, different tag names, or both) are interpreted as \"AND\".\n", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "description": "A list of tag existence filters to apply. Only resources for which the specified freeform tags exist the value will be returned.\nThe key for each tag is \"{tagName}.true\". All inputs are case-insensitive.\nCurrently, only existence (\"true\" at the end) is supported. Absence (\"false\" at the end) is not supported.\nMultiple values for different tag names are interpreted as \"AND\".\n", + "items": { + "type": "string" + } + }, + "compartment_id_in_subtree": { + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments.\n" + }, + "vmcluster_name": { + "type": "array", + "description": "Optional list of Exadata Insight VM cluster name.\n", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", + "sql_identifier" + ] + }, + "mutable": false + }, + { + "name": "summarize_sql_statistics_time_series_by_plan", + "description": "Get performance statistics time series for a SQL by execution plans. DEPRECATED (announced May 2024; no longer functional as of May 31, 2025).", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_sql_statistics_time_series_by_plan", + "skills": [ + "database-performance-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "compartment_id": { + "type": "string", + "description": "The [OCID](/iaas/Content/General/Concepts/identifiers.htm) of the compartment." + }, + "database_id": { + "type": "string", + "description": "Optional [OCID](/iaas/Content/General/Concepts/identifiers.htm) of the associated DBaaS entity.\n" + }, + "id": { + "type": "string", + "description": "[OCID](/iaas/Content/General/Concepts/identifiers.htm) of the database insight resource.\n" + }, + "sql_identifier": { + "type": "string", + "description": "Unique SQL_ID for a SQL Statement.\nExample: `6rgjh9bjmy2s7`\n" + }, + "analysis_time_interval": { + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time.\nDefault is last 30 days represented by P30D.\nIf timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored.\nExamples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months), . Maximum value allowed is 25 months prior to current time (P25M).\n" + }, + "time_interval_start": { + "type": "string", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\nThe minimum allowed value is 2 years prior to the current day.\ntimeIntervalStart and timeIntervalEnd parameters are used together.\nIf analysisTimeInterval is specified, this parameter is ignored.\n", + "format": "date-time" + }, + "time_interval_end": { + "type": "string", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\ntimeIntervalStart and timeIntervalEnd are used together.\nIf timeIntervalEnd is not specified, current time is used as timeIntervalEnd.\n", + "format": "date-time" + }, + "page": { + "type": "string", + "description": "For list pagination. The value of the `opc-next-page` response header from\nthe previous \"List\" call. For important details about how pagination works,\nsee [List Pagination](/Content/API/Concepts/usingapi.htm#nine).\n" + }, + "opc_request_id": { + "type": "string", + "description": "Unique Oracle-assigned identifier for the request. If you need to contact\nOracle about a particular request, please provide the request ID.\n" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", + "sql_identifier" + ] + }, + "mutable": false + }, + { + "name": "test_named_credential", + "description": "Tests one named credential and returns status so admins can validate credential usability before operational use.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "test_named_credential", + "skills": [ + "credentials-and-authentication-preferred-named" + ], + "inputSchema": { + "type": "object", + "properties": { + "opc_request_id": { + "type": "string", + "description": "The client request ID for tracing." + }, + "named_credential_id": { + "type": "string", + "description": "The [OCID](/Content/General/Concepts/identifiers.htm) of the named credential." + }, + "test_named_credential_details": { + "type": "object", + "description": "The The [OCID](/Content/General/Concepts/identifiers.htm) of the database against which the credential is to be tested.", + "properties": { + "managedDatabaseId": { + "type": "string", + "description": "The [OCID](/Content/General/Concepts/identifiers.htm) of the Managed Database." + } + } + } + }, + "additionalProperties": false, + "required": [ + "named_credential_id", + "test_named_credential_details" + ] + }, + "mutable": true + }, + { + "name": "test_preferred_credential", + "description": "Tests one preferred credential and returns status so admins can confirm connectivity and authentication readiness.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "test_preferred_credential", + "skills": [ + "credentials-and-authentication-preferred-named" + ], + "inputSchema": { + "type": "object", + "properties": { + "opc_request_id": { + "type": "string", + "description": "The client request ID for tracing." + }, + "managed_database_id": { + "type": "string", + "description": "The [OCID](/Content/General/Concepts/identifiers.htm) of the Managed Database." + }, + "credential_name": { + "type": "string", + "description": "The name of the preferred credential. There are 3 built-in preferred credentials with display names and names as below: \n Basic Monitoring(MONITORING)\n Advanced diagnostics(PC_READ)\n Administrator(PC_WRITE)\n" + }, + "test_preferred_credential_details": { + "type": "object", + "description": "The status of the preferred credential test. The status is 'SUCCEEDED' if the preferred credential is working else the status is 'FAILED'.", + "properties": { + "type": { + "type": "string", + "description": "The type of preferred credential. Only 'BASIC' is supported currently.", + "enum": [ + "BASIC", + "NAMED_CREDENTIAL" + ] + } + } + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id", + "credential_name" + ] + }, + "mutable": true + }, + { + "name": "update_external_exadata_storage_connector", + "description": "Updates an external Exadata storage connector; on success, new connector settings are used for subsequent connectivity and data collection.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "update_external_exadata_storage_connector", + "skills": [ + "external-exadata-storage" + ], + "inputSchema": { + "properties": { + "external_exadata_storage_connector_id": { + "description": "The OCID of the connector to the Exadata storage server.", + "type": "string" + }, + "update_external_exadata_storage_connector_details": { + "$defs": { + "RestCredential": { + "additionalProperties": true, + "description": "The user credential information.", + "properties": { + "password": { + "description": "**[Required]** Gets the password of this RestCredential.\nThe password of the user.", + "title": "Password", + "type": "string" + }, + "sslTrustStoreLocation": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Gets the ssl_trust_store_location of this RestCredential.\nThe full path of the SSL truststore location in the agent.", + "title": "Ssltruststorelocation" + }, + "sslTrustStorePassword": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Gets the ssl_trust_store_password of this RestCredential.\nThe password of the SSL truststore location in the agent.", + "title": "Ssltruststorepassword" + }, + "sslTrustStoreType": { + "anyOf": [ + { + "enum": [ + "JKS", + "BCFKS" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Gets the ssl_trust_store_type of this RestCredential.\nThe SSL truststore type.\n\nAllowed values for this property are: \"JKS\", \"BCFKS\"", + "title": "Ssltruststoretype" + }, + "username": { + "description": "**[Required]** Gets the username of this RestCredential.\nThe name of the user.", + "title": "Username", + "type": "string" + } + }, + "required": [ + "username", + "password" + ], + "title": "RestCredential", + "type": "object" + } + }, + "additionalProperties": false, + "description": "The details required to update connections to the Exadata storage servers.", + "properties": { + "connectionUri": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Gets the connection_uri of this UpdateExternalExadataStorageConnectorDetails. The unique string of the connection. For example, \".", + "title": "Connectionuri" + }, + "connectorName": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Gets the connector_name of this UpdateExternalExadataStorageConnectorDetails.\nThe name of the Exadata storage server connector.", + "title": "Connectorname" + }, + "credentialInfo": { + "anyOf": [ + { + "$ref": "#/$defs/RestCredential" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Gets the credential_info of this UpdateExternalExadataStorageConnectorDetails." + } + }, + "title": "UpdateExternalExadataStorageConnectorDetails", + "type": "object" + } + }, + "required": [ + "external_exadata_storage_connector_id", + "update_external_exadata_storage_connector_details" + ], + "type": "object" + }, + "mutable": true + } + ] +} diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/registry.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/registry.py new file mode 100644 index 00000000..9d868e84 --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/registry.py @@ -0,0 +1,146 @@ +"""Immutable JSON registry for the unified Database Observability server.""" + +from __future__ import annotations + +import inspect +import json +from dataclasses import dataclass +from importlib.resources import files +from types import MappingProxyType +from typing import Any, Mapping + +import oci +from jsonschema import Draft202012Validator, SchemaError + + +class RegistryError(ValueError): + """Raised when packaged discovery metadata is invalid.""" + + +_CLIENTS = { + "opsi": {"OperationsInsightsClient": oci.opsi.OperationsInsightsClient}, + "dbm": { + "DbManagementClient": oci.database_management.DbManagementClient, + "DiagnosabilityClient": oci.database_management.DiagnosabilityClient, + "SqlTuningClient": oci.database_management.SqlTuningClient, + }, + "identity": {"IdentityClient": oci.identity.IdentityClient}, +} + + +@dataclass(frozen=True) +class Registry: + skills: tuple[Mapping[str, Any], ...] + tools: tuple[Mapping[str, Any], ...] + _skills: Mapping[str, Mapping[str, Any]] + _tools: Mapping[str, Mapping[str, Any]] + + def get_skill(self, name: str) -> Mapping[str, Any]: + try: + return self._skills[name] + except KeyError as exc: + raise RegistryError(f"Unknown skill: {name}") from exc + + def get_tool(self, name: str) -> Mapping[str, Any]: + try: + return self._tools[name] + except KeyError as exc: + raise RegistryError(f"Unknown tool: {name}") from exc + + def list_tools( + self, + skill_names: set[str], + keywords: list[str] | None = None, + ) -> list[Mapping[str, Any]]: + for skill_name in skill_names: + self.get_skill(skill_name) + selected = [tool for tool in self.tools if skill_names.intersection(tool["skills"])] + if keywords: + normalized_keywords = [keyword.strip().casefold() for keyword in keywords] + if any(not keyword for keyword in normalized_keywords): + raise RegistryError("Keywords must be non-empty strings") + selected = [ + tool + for tool in selected + if all( + keyword + in f"{tool['name'].replace('_', ' ')} {tool['description']}".casefold() + for keyword in normalized_keywords + ) + ] + return selected + + +def client_class(service: str, client: str) -> type[Any]: + try: + return _CLIENTS[service][client] + except KeyError as exc: + raise RegistryError(f"Unsupported SDK client binding: {service}/{client}") from exc + + +def _read_json(name: str) -> dict[str, Any]: + try: + return json.loads(files("oracle.oci_oracle_db_observability").joinpath("metadata", name).read_text()) + except (OSError, json.JSONDecodeError) as exc: + raise RegistryError(f"Unable to load registry file {name}: {exc}") from exc + + +def _freeze(value: Any) -> Any: + if isinstance(value, dict): + return MappingProxyType({key: _freeze(item) for key, item in value.items()}) + if isinstance(value, list): + return tuple(_freeze(item) for item in value) + return value + + +def to_jsonable(value: Any) -> Any: + """Copy immutable registry values into JSON-compatible response values.""" + if isinstance(value, Mapping): + return {key: to_jsonable(item) for key, item in value.items()} + if isinstance(value, tuple): + return [to_jsonable(item) for item in value] + return value + + +def _validate(skills: list[dict[str, Any]], tools: list[dict[str, Any]]) -> Registry: + by_skill = {skill.get("name"): skill for skill in skills} + if any(not isinstance(skill.get("name"), str) or not skill["name"] for skill in skills): + raise RegistryError("Skill names must be non-empty") + if len(by_skill) != len(skills): + raise RegistryError("Duplicate skill name") + by_tool = {tool.get("name"): tool for tool in tools} + if any(not isinstance(tool.get("name"), str) or not tool["name"] for tool in tools): + raise RegistryError("Tool names must be non-empty") + if len(by_tool) != len(tools): + raise RegistryError("Duplicate tool name") + referenced = {name for skill in skills for name in skill.get("tools", [])} + if referenced != set(by_tool): + raise RegistryError("Tools must be referenced by at least one skill, and skill references must resolve") + for tool in tools: + schema = tool.get("inputSchema") + if not isinstance(schema, dict) or schema.get("type") != "object": + raise RegistryError(f"Tool has invalid input schema: {tool.get('name')}") + if schema.get("additionalProperties") is True: + raise RegistryError(f"Tool has unrestricted input schema: {tool.get('name')}") + try: + Draft202012Validator.check_schema(schema) + except SchemaError as exc: + raise RegistryError(f"Tool has invalid JSON schema: {tool.get('name')}") from exc + if not set(tool.get("skills", [])) or not set(tool["skills"]).issubset(by_skill): + raise RegistryError(f"Tool has invalid skill membership: {tool.get('name')}") + if tool["name"] not in {name for skill in skills if skill["name"] in tool["skills"] for name in skill["tools"]}: + raise RegistryError(f"Tool/skill membership mismatch: {tool['name']}") + cls = client_class(tool.get("service"), tool.get("client")) + method = getattr(cls, tool.get("operation", ""), None) + if not callable(method) or tool["operation"].startswith("_"): + raise RegistryError(f"Tool has invalid SDK operation binding: {tool['name']}") + frozen_skills = tuple(_freeze(skill) for skill in skills) + frozen_tools = tuple(_freeze(tool) for tool in tools) + return Registry(frozen_skills, frozen_tools, MappingProxyType(dict(zip(by_skill, frozen_skills))), MappingProxyType(dict(zip(by_tool, frozen_tools)))) + + +def load_registry() -> Registry: + manifest = _read_json("manifest.json") + skills = _read_json(manifest["skills"])["skills"] + tools = _read_json(manifest["tools"])["tools"] + return _validate(skills, tools) diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/runtime.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/runtime.py new file mode 100644 index 00000000..82ef0581 --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/runtime.py @@ -0,0 +1,125 @@ +"""Single allowlisted OCI Python SDK dispatcher.""" +from __future__ import annotations + +import inspect +import json +import os +from functools import lru_cache +from typing import Any, Mapping, get_args, get_origin + +import oci +from jsonschema import Draft202012Validator +from fastmcp.server.dependencies import get_access_token +from oracle_mcp_common import IDCSHttpAuth, build_auth_context + +from . import __project__, __version__ +from .registry import client_class + +_USER_AGENT = f"{__project__.split('oracle.', 1)[1].removesuffix('-server')}/{__version__}" +_http_auth: IDCSHttpAuth | None = None + + +def configure_http_auth(policy: IDCSHttpAuth) -> None: + """Configure caller-scoped OCI authentication for HTTP transport.""" + global _http_auth + _http_auth = policy + + +def _client_context() -> tuple[dict[str, Any], Any, str | None]: + if _http_auth is not None: + token = get_access_token() + if token is None: + raise RuntimeError("HTTP requests require an authenticated IDCS access token.") + context = _http_auth.context_for(token.token) + tenancy_id = getattr(context.signer, "tenancy_id", None) or os.getenv("OCI_MCP_TENANCY_ID_OVERRIDE") + return ({**context.config, "additional_user_agent": _USER_AGENT}, context.signer, tenancy_id) + context = build_auth_context() + return ({**context.config, "additional_user_agent": _USER_AGENT}, context.signer, context.tenancy_id) + + +@lru_cache(maxsize=None) +def _stdio_client(service: str, client_name: str) -> Any: + config, signer, _ = _client_context() + return client_class(service, client_name)(config, signer=signer) + + +def _client(service: str, client_name: str) -> Any: + if _http_auth is None: + return _stdio_client(service, client_name) + config, signer, _ = _client_context() + return client_class(service, client_name)(config, signer=signer) + + +def identity_bootstrap_client() -> tuple[Any, str]: + """Create the Identity client and resolve the configured tenancy scope.""" + config, signer, tenancy_id = _client_context() + if not tenancy_id: + raise ValueError("Configured OCI authentication context is missing tenancy.") + client = client_class("identity", "IdentityClient")(config, signer=signer) + return client, tenancy_id + + +def serialize_response(response: Any) -> Any: + """Convert OCI SDK response data to a JSON-safe result.""" + data = getattr(response, "data", response) + try: + return json.loads(json.dumps(oci.util.to_dict(data), default=str)) + except Exception: + return str(data) + + +def _models_module(client: type[Any]) -> Any: + module = client.__module__.rsplit(".", 1)[0] + try: + return __import__(f"{module}.models", fromlist=["models"]) + except ImportError: + return None + + +def _type_name(annotation: Any) -> str | None: + if isinstance(annotation, str): + return annotation + if annotation is inspect.Signature.empty: + return None + if isinstance(annotation, type): + return annotation.__name__ + origin = get_origin(annotation) + args = [arg for arg in get_args(annotation) if arg is not type(None)] + return _type_name(args[0]) if origin and len(args) == 1 else None + + +def _coerce(value: Any, type_name: str | None, models: Any) -> Any: + if value is None or not type_name or not isinstance(value, dict) or models is None: + return value + model = getattr(models, type_name.rsplit(".", 1)[-1], None) + if not inspect.isclass(model): + return value + model = getattr(models, value.get("model_type", ""), model) + payload = {key: item for key, item in value.items() if key != "model_type"} + swagger = getattr(model, "swagger_types", {}) + payload = {key: _coerce(item, swagger.get(key), models) for key, item in payload.items()} + try: + return oci.util.from_dict(model, payload) + except (TypeError, ValueError): + return model(**payload) + + +def _coerce_arguments(client: Any, operation: str, arguments: Mapping[str, Any]) -> dict[str, Any]: + method = getattr(client, operation) + models = _models_module(client.__class__) + signature = inspect.signature(method) + return {key: _coerce(value, _type_name(signature.parameters[key].annotation) if key in signature.parameters else None, models) for key, value in arguments.items()} + + +def invoke_registered_tool(tool: Mapping[str, Any], arguments: dict[str, Any]) -> Any: + if not isinstance(arguments, dict): + raise ValueError("arguments must be a JSON object") + errors = sorted(Draft202012Validator(dict(tool["inputSchema"])).iter_errors(arguments), key=lambda error: list(error.path)) + if errors: + raise ValueError(f"Invalid arguments: {errors[0].message}") + client = _client(str(tool["service"]), str(tool["client"])) + try: + response = getattr(client, tool["operation"])(**_coerce_arguments(client, str(tool["operation"]), arguments)) + except Exception as exc: + raise RuntimeError(f"OCI operation {tool['name']} failed: {exc}") from exc + return serialize_response(response) diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/server.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/server.py new file mode 100644 index 00000000..d15dba8a --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/server.py @@ -0,0 +1,25 @@ +"""Unified DBO MCP process entry point.""" +from __future__ import annotations + +import os + +from fastmcp.utilities.auth import parse_scopes +from oracle_mcp_common import build_idcs_http_auth + +from .mcp import mcp +from .runtime import configure_http_auth + + +def main() -> None: + host, port = os.getenv("ORACLE_MCP_HOST"), os.getenv("ORACLE_MCP_PORT") + if not (host and port): + mcp.run() + return + policy = build_idcs_http_auth(parse_scopes(os.getenv("IDCS_REQUIRED_SCOPES")) or ["openid", "profile", "email", "oci_mcp.db_observability.invoke"]) + mcp.auth = policy.provider + configure_http_auth(policy) + mcp.run(transport="http", host=host, port=int(port)) + + +if __name__ == "__main__": + main() diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/tests/__init__.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/tests/__init__.py new file mode 100644 index 00000000..a2e95173 --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/tests/__init__.py @@ -0,0 +1 @@ +"""Unified DBO MCP tests.""" diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/tests/test_registry.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/tests/test_registry.py new file mode 100644 index 00000000..3fac90b4 --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/tests/test_registry.py @@ -0,0 +1,95 @@ +from __future__ import annotations + +import json + +import pytest + +from oracle.oci_oracle_db_observability.registry import RegistryError, _validate, load_registry +from oracle.oci_oracle_db_observability.registry import to_jsonable + + +def test_packaged_registry_has_expected_shape() -> None: + registry = load_registry() + + assert len(registry.skills) == 32 + assert len(registry.tools) == 225 + assert len({tool["name"] for tool in registry.tools}) == 225 + assert all(tool["inputSchema"]["type"] == "object" for tool in registry.tools) + assert all(tool["inputSchema"].get("additionalProperties") is not True for tool in registry.tools) + assert "retrieve_data" not in {tool["name"] for tool in registry.tools} + + +def test_tool_filtering_is_skill_scoped() -> None: + registry = load_registry() + + tools = registry.list_tools({"awr-historical-performance-analysis"}) + + assert tools + assert all("awr-historical-performance-analysis" in tool["skills"] for tool in tools) + + +def test_tool_filtering_requires_all_keywords_in_name_or_description() -> None: + registry = load_registry() + + tools = registry.list_tools( + {"database-insights"}, + ["resource", "usage"], + ) + + assert tools + assert all( + all( + keyword in f"{tool['name'].replace('_', ' ')} {tool['description']}".casefold() + for keyword in ("resource", "usage") + ) + for tool in tools + ) + + +def test_tool_filtering_rejects_blank_keywords() -> None: + with pytest.raises(RegistryError, match="Keywords must be non-empty"): + load_registry().list_tools({"database-insights"}, ["resource", " "]) + + +def test_unknown_skill_and_tool_are_rejected() -> None: + registry = load_registry() + + with pytest.raises(RegistryError, match="Unknown skill"): + registry.get_skill("missing") + with pytest.raises(RegistryError, match="Unknown tool"): + registry.get_tool("missing") + with pytest.raises(RegistryError, match="Unknown skill"): + registry.list_tools({"missing"}) + + +def test_duplicate_names_are_rejected() -> None: + registry = load_registry() + duplicate_skill = dict(registry.skills[0]) + duplicate_tool = dict(registry.tools[0]) + + with pytest.raises(RegistryError, match="Duplicate skill"): + _validate([registry.skills[0], duplicate_skill], []) + with pytest.raises(RegistryError, match="Duplicate tool"): + _validate(list(registry.skills), [duplicate_tool, duplicate_tool]) + + +def test_metadata_files_are_valid_json() -> None: + from importlib.resources import files + + metadata = files("oracle.oci_oracle_db_observability").joinpath("metadata") + for name in ("manifest.json", "skills.json", "tools.json"): + json.loads(metadata.joinpath(name).read_text(encoding="utf-8")) + + +def test_compartment_bootstrap_tool_is_not_registry_backed() -> None: + registry = load_registry() + + assert "list_compartments" not in {tool["name"] for tool in registry.tools} + assert "list_compartments" not in registry.get_skill("oci-common")["tools"] + + +def test_registry_values_can_be_returned_as_json() -> None: + schema = to_jsonable(load_registry().get_tool("summarize_database_insight_resource_usage")["inputSchema"]) + + assert isinstance(schema, dict) + assert json.loads(json.dumps(schema)) == schema diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/__init__.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/__init__.py deleted file mode 100644 index b8f69b97..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -""" -Copyright (c) 2026, Oracle and/or its affiliates. -Licensed under the Universal Permissive License v1.0 as shown at -https://oss.oracle.com/licenses/upl. -""" diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/auth.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/auth.py deleted file mode 100644 index d774a1d4..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/auth.py +++ /dev/null @@ -1,107 +0,0 @@ -""" -Copyright (c) 2026, Oracle and/or its affiliates. -Licensed under the Universal Permissive License v1.0 as shown at -https://oss.oracle.com/licenses/upl. -""" - -from __future__ import annotations - -import os -from logging import Logger -from typing import Any, Callable - -import oci -from fastmcp.server.dependencies import get_access_token - - -def _get_http_config_and_signer(project: str, version: str) -> tuple[dict[str, str] | None, oci.signer.Signer | None]: - if not (os.getenv("ORACLE_MCP_HOST") and os.getenv("ORACLE_MCP_PORT")): - return None, None - - token = get_access_token() - if token is None: - raise RuntimeError("HTTP requests require an authenticated IDCS access token.") - - domain = os.getenv("IDCS_DOMAIN") - client_id = os.getenv("IDCS_CLIENT_ID") - client_secret = os.getenv("IDCS_CLIENT_SECRET") - if not all((domain, client_id, client_secret)): - raise RuntimeError( - "HTTP requests require IDCS authentication. Set IDCS_DOMAIN, IDCS_CLIENT_ID, and IDCS_CLIENT_SECRET." - ) - - region = os.getenv("OCI_REGION") - if not region: - raise RuntimeError("HTTP requests require OCI_REGION.") - - user_agent_name = project.split("oracle.", 1)[1].split("-mcp-server", 1)[0] - config = {"region": region, "additional_user_agent": f"{user_agent_name}/{version}"} - return config, oci.auth.signers.TokenExchangeSigner( - token.token, - f"https://{domain}", - client_id, - client_secret, - region=config.get("region"), - ) - - -def get_oci_config(project: str, version: str) -> dict[str, str]: - """Resolve the OCI config used by this server without constructing a signer.""" - - user_agent_name = project.split("oracle.", 1)[1].split("-mcp-server", 1)[0] - if os.getenv("ORACLE_MCP_HOST") and os.getenv("ORACLE_MCP_PORT"): - region = os.getenv("OCI_REGION") - if not region: - raise RuntimeError("HTTP requests require OCI_REGION.") - return {"region": region, "additional_user_agent": f"{user_agent_name}/{version}"} - - config = oci.config.from_file( - file_location=os.getenv("OCI_CONFIG_FILE", oci.config.DEFAULT_LOCATION), - profile_name=os.getenv("OCI_CONFIG_PROFILE", oci.config.DEFAULT_PROFILE), - ) - config["additional_user_agent"] = f"{user_agent_name}/{version}" - return config - - -def build_client( - client_type: Callable[..., Any], - *, - project: str, - version: str, - logger: Logger, -) -> Any: - """Create an OCI SDK client with the resolved config and signer.""" - - config, signer = _get_http_config_and_signer(project, version) - if config is None: - config = get_oci_config(project, version) - token_file = config.get("security_token_file") - if token_file: - key_file = config.get("key_file") - if not key_file: - raise RuntimeError( - "Stdio transport OCI session-token profiles require both key_file and security_token_file." - ) - private_key = oci.signer.load_private_key_from_file(key_file) - with open(os.path.expanduser(token_file), "r", encoding="utf-8") as token: - signer = oci.auth.signers.SecurityTokenSigner(token.read(), private_key) - else: - try: - oci.config.validate_config(config) - except ValueError as exc: - raise RuntimeError( - "Stdio transport requires a valid OCI CLI profile using either API-key auth " - "or session-token auth. API-key profiles must include key_file, fingerprint, " - "user, tenancy, and region; session-token profiles must include security_token_file." - ) from exc - - kwargs: dict[str, object] = { - "circuit_breaker_strategy": oci.circuit_breaker.CircuitBreakerStrategy( - failure_threshold=int(os.getenv("OCI_CIRCUIT_BREAKER_FAILURE_THRESHOLD", "10")), - recovery_timeout=int(os.getenv("OCI_CIRCUIT_BREAKER_RECOVERY_TIMEOUT", "30")), - ), - "circuit_breaker_callback": lambda exc: logger.warning("Circuit breaker triggered: %s", exc), - } - if signer is not None: - kwargs["signer"] = signer - return client_type(config, **kwargs) diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/conversion.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/conversion.py deleted file mode 100644 index 3d2418cf..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/conversion.py +++ /dev/null @@ -1,223 +0,0 @@ -""" -Copyright (c) 2026, Oracle and/or its affiliates. -Licensed under the Universal Permissive License v1.0 as shown at -https://oss.oracle.com/licenses/upl. -""" - -from __future__ import annotations - -from collections.abc import Mapping -from datetime import date, datetime -import importlib -import re -from typing import Any - -import oci -from pydantic import BaseModel - -FORBIDDEN_REQUEST_FIELDS = frozenset( - { - "defined_tags", - "freeform_tags", - "system_tags", - "tag_filters", - "match_rule", - } -) - -_LIST_TYPE_RE = re.compile(r"list\[(.+)\]") - - -def to_plain_data(value: Any) -> Any: - """Convert SDK/Pydantic values into JSON-serializable Python data.""" - - if value is None or isinstance(value, str | int | float | bool): - return value - if isinstance(value, datetime | date): - return value.isoformat() - if isinstance(value, BaseModel): - return value.model_dump(by_alias=True, exclude_none=True) - if isinstance(value, Mapping): - return {key: to_plain_data(item) for key, item in value.items()} - if isinstance(value, list | tuple | set): - return [to_plain_data(item) for item in value] - try: - return oci.util.to_dict(value) - except Exception: - pass - if hasattr(value, "__dict__"): - return { - key.removeprefix("_"): to_plain_data(item) - for key, item in value.__dict__.items() - if not key.startswith("__") and item is not None - } - return value - - -def pydantic_to_sdk_model(value: Any, sdk_model_type: type[Any]) -> Any: - """Convert a Pydantic request model or plain mapping into an OCI SDK model.""" - - if value is None: - return None - if isinstance(value, sdk_model_type): - return value - if isinstance(value, BaseModel): - payload = value.model_dump(by_alias=False, exclude_none=True) - elif isinstance(value, Mapping): - payload = {key: to_plain_data(item) for key, item in value.items() if item is not None} - else: - return value - return sdk_model_type(**payload) - - -def _sdk_model_metadata(sdk_model_type: type[Any]) -> tuple[dict[str, str], dict[str, str]]: - try: - instance = sdk_model_type() - except Exception as exc: - raise ValueError(f"Unable to inspect OCI SDK model {sdk_model_type.__name__}.") from exc - return dict(getattr(instance, "swagger_types", {}) or {}), dict(getattr(instance, "attribute_map", {}) or {}) - - -def _payload_from_request_value(value: Any) -> dict[str, Any]: - if isinstance(value, BaseModel): - return value.model_dump(by_alias=False, exclude_none=True) - if isinstance(value, Mapping): - return {str(key): item for key, item in value.items() if item is not None} - raise ValueError(f"Request payload must be a mapping or Pydantic model, got {type(value).__name__}.") - - -def _wire_payload(payload: Mapping[str, Any], attribute_map: Mapping[str, str]) -> dict[str, Any]: - return { - attribute_map.get(key, key): item - for key, item in payload.items() - } - - -def _normalize_key(key: str, attribute_map: Mapping[str, str]) -> str: - if key in attribute_map: - return key - inverse_attribute_map = {wire_key: model_key for model_key, wire_key in attribute_map.items()} - return inverse_attribute_map.get(key, key) - - -def _sdk_models_module(sdk_model_type: type[Any]) -> Any: - module_name = sdk_model_type.__module__ - package_name = module_name.rsplit(".", 1)[0] - return importlib.import_module(package_name) - - -def _select_sdk_model_type( - payload: Mapping[str, Any], - sdk_model_type: type[Any], - attribute_map: Mapping[str, str], - path: str, -) -> type[Any]: - get_subtype = getattr(sdk_model_type, "get_subtype", None) - if get_subtype is None: - return sdk_model_type - - try: - subtype_name = get_subtype(_wire_payload(payload, attribute_map)) - except KeyError as exc: - raise ValueError(f"{path} is missing discriminator field {exc.args[0]!r}.") from exc - except Exception as exc: - raise ValueError(f"Unable to resolve OCI SDK subtype for {path}: {exc}") from exc - - module = _sdk_models_module(sdk_model_type) - subtype = getattr(module, subtype_name, None) - if not isinstance(subtype, type): - raise ValueError(f"{path} resolved unknown OCI SDK subtype {subtype_name!r}.") - return subtype - - -def _resolve_sdk_model_type(type_spec: str, sdk_models_module: Any) -> type[Any] | None: - type_name = type_spec.strip() - list_match = _LIST_TYPE_RE.fullmatch(type_name) - if list_match is not None: - type_name = list_match.group(1).strip() - if "[" in type_name or "(" in type_name: - return None - sdk_type = getattr(sdk_models_module, type_name, None) - return sdk_type if isinstance(sdk_type, type) else None - - -def _is_sdk_model_type(sdk_type: type[Any] | None) -> bool: - if sdk_type is None: - return False - try: - swagger_types, _ = _sdk_model_metadata(sdk_type) - except ValueError: - return False - return bool(swagger_types) - - -def _convert_sdk_field_value(value: Any, type_spec: str, sdk_models_module: Any, path: str) -> Any: - if value is None: - return None - - list_match = _LIST_TYPE_RE.fullmatch(type_spec.strip()) - if list_match is not None and isinstance(value, list | tuple): - inner_type_spec = list_match.group(1).strip() - return [ - _convert_sdk_field_value(item, inner_type_spec, sdk_models_module, f"{path}[{index}]") - for index, item in enumerate(value) - ] - - sdk_field_type = _resolve_sdk_model_type(type_spec, sdk_models_module) - if _is_sdk_model_type(sdk_field_type): - if isinstance(value, sdk_field_type): - return value - if isinstance(value, BaseModel | Mapping): - return _build_sdk_model( - _payload_from_request_value(value), - sdk_field_type, - path, - ) - - return to_plain_data(value) - - -def _build_sdk_model(payload: Mapping[str, Any], sdk_model_type: type[Any], path: str) -> Any: - _, base_attribute_map = _sdk_model_metadata(sdk_model_type) - selected_sdk_model_type = _select_sdk_model_type(payload, sdk_model_type, base_attribute_map, path) - swagger_types, attribute_map = _sdk_model_metadata(selected_sdk_model_type) - sdk_models_module = _sdk_models_module(selected_sdk_model_type) - - normalized_payload: dict[str, Any] = {} - unknown_fields: list[str] = [] - forbidden_fields: list[str] = [] - - for raw_key, item in payload.items(): - key = _normalize_key(raw_key, attribute_map) - if key in FORBIDDEN_REQUEST_FIELDS: - forbidden_fields.append(raw_key) - continue - if key not in swagger_types: - unknown_fields.append(raw_key) - continue - normalized_payload[key] = _convert_sdk_field_value( - item, - swagger_types[key], - sdk_models_module, - f"{path}.{key}", - ) - - if forbidden_fields: - fields = ", ".join(sorted(forbidden_fields)) - raise ValueError(f"{path} contains forbidden request tag mutation fields: {fields}.") - if unknown_fields: - fields = ", ".join(sorted(unknown_fields)) - raise ValueError(f"{path} contains unsupported fields for {selected_sdk_model_type.__name__}: {fields}.") - - return selected_sdk_model_type(**normalized_payload) - - -def polymorphic_request_to_sdk_model(value: Any, sdk_model_type: type[Any]) -> Any: - """Convert a request payload into the correct OCI SDK model or subtype.""" - - if value is None: - return None - if isinstance(value, sdk_model_type): - return value - payload = _payload_from_request_value(value) - return _build_sdk_model(payload, sdk_model_type, sdk_model_type.__name__) diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/__init__.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/__init__.py deleted file mode 100644 index 0cb6706b..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/__init__.py +++ /dev/null @@ -1,10 +0,0 @@ -""" -Copyright (c) 2026, Oracle and/or its affiliates. -Licensed under the Universal Permissive License v1.0 as shown at -https://oss.oracle.com/licenses/upl. -""" - -from __future__ import annotations - -__project__ = "oracle.oci-dbm-mcp-server" -__version__ = "1.0.0" diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/mcp.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/mcp.py deleted file mode 100644 index a8f3b40b..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/mcp.py +++ /dev/null @@ -1,21 +0,0 @@ -""" -Copyright (c) 2026, Oracle and/or its affiliates. -Licensed under the Universal Permissive License v1.0 as shown at -https://oss.oracle.com/licenses/upl. -""" - -from __future__ import annotations - -from fastmcp import FastMCP - -from . import __project__ - - -mcp = FastMCP( - name=__project__, - instructions=( - "Use this server for OCI Database Management workflows. " - "Mutating non-delete and non-drop tools are marked with MCP tool annotations and " - "should only be used when the user explicitly intends the change." - ), -) diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/metadata.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/metadata.py deleted file mode 100644 index b5d9b4b3..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/metadata.py +++ /dev/null @@ -1,1010 +0,0 @@ -""" -Copyright (c) 2026, Oracle and/or its affiliates. -Licensed under the Universal Permissive License v1.0 as shown at -https://oss.oracle.com/licenses/upl. -""" - -from __future__ import annotations - -BOOTSTRAP_TOOL_NAMES = frozenset({"get_compartment", "list_compartments"}) -REQUEST_MODEL_TYPES = { - ('change_cloud_exadata_infrastructure_compartment', 'change_cloud_exadata_infrastructure_compartment_details'): 'ChangeCloudExadataInfrastructureCompartmentDetails', - ('change_database_parameters', 'change_database_parameters_details'): 'ChangeDatabaseParametersDetails', - ('change_db_management_private_endpoint_compartment', 'change_db_management_private_endpoint_compartment_details'): 'ChangeDbManagementPrivateEndpointCompartmentDetails', - ('change_external_db_system_compartment', 'change_external_db_system_compartment_details'): 'ChangeExternalDbSystemCompartmentDetails', - ('change_external_exadata_infrastructure_compartment', 'change_external_exadata_infrastructure_compartment_details'): 'ChangeExternalExadataInfrastructureCompartmentDetails', - ('change_job_compartment', 'change_job_compartment_details'): 'ChangeJobCompartmentDetails', - ('change_managed_database_group_compartment', 'change_managed_database_group_compartment_details'): 'ChangeManagedDatabaseGroupCompartmentDetails', - ('change_named_credential_compartment', 'change_named_credential_compartment_details'): 'ChangeNamedCredentialCompartmentDetails', - ('change_plan_retention', 'change_plan_retention_details'): 'ChangePlanRetentionDetails', - ('change_space_budget', 'change_space_budget_details'): 'ChangeSpaceBudgetDetails', - ('change_sql_plan_baselines_attributes', 'change_sql_plan_baselines_attributes_details'): 'ChangeSqlPlanBaselinesAttributesDetails', - ('create_cloud_db_system', 'create_cloud_db_system_details'): 'CreateCloudDbSystemDetails', - ('create_cloud_db_system_connector', 'create_cloud_db_system_connector_details'): 'CreateCloudDbSystemConnectorDetails', - ('create_cloud_db_system_discovery', 'create_cloud_db_system_discovery_details'): 'CreateCloudDbSystemDiscoveryDetails', - ('create_cloud_exadata_infrastructure', 'create_cloud_exadata_infrastructure_details'): 'CreateCloudExadataInfrastructureDetails', - ('create_cloud_exadata_storage_connector', 'create_cloud_exadata_storage_connector_details'): 'CreateCloudExadataStorageConnectorDetails', - ('create_db_management_private_endpoint', 'create_db_management_private_endpoint_details'): 'CreateDbManagementPrivateEndpointDetails', - ('create_external_db_system', 'create_external_db_system_details'): 'CreateExternalDbSystemDetails', - ('create_external_db_system_connector', 'create_external_db_system_connector_details'): 'CreateExternalDbSystemConnectorDetails', - ('create_external_db_system_discovery', 'create_external_db_system_discovery_details'): 'CreateExternalDbSystemDiscoveryDetails', - ('create_external_exadata_infrastructure', 'create_external_exadata_infrastructure_details'): 'CreateExternalExadataInfrastructureDetails', - ('create_external_exadata_storage_connector', 'create_external_exadata_storage_connector_details'): 'CreateExternalExadataStorageConnectorDetails', - ('create_job', 'create_job_details'): 'CreateJobDetails', - ('create_managed_database_group', 'create_managed_database_group_details'): 'CreateManagedDatabaseGroupDetails', - ('create_named_credential', 'create_named_credential_details'): 'CreateNamedCredentialDetails', - ('create_sql_tuning_set', 'create_sql_tuning_set_details'): 'CreateSqlTuningSetDetails', - ('create_tablespace', 'create_tablespace_details'): 'CreateTablespaceDetails', - ('disable_automatic_initial_plan_capture', 'disable_automatic_initial_plan_capture_details'): 'DisableAutomaticInitialPlanCaptureDetails', - ('disable_automatic_spm_evolve_advisor_task', 'disable_automatic_spm_evolve_advisor_task_details'): 'DisableAutomaticSpmEvolveAdvisorTaskDetails', - ('disable_autonomous_database_management_feature', 'disable_autonomous_database_management_feature_details'): 'DisableAutonomousDatabaseManagementFeatureDetails', - ('disable_database_management_feature', 'disable_database_management_feature_details'): 'DisableDatabaseManagementFeatureDetails', - ('disable_external_container_database_management_feature', 'disable_external_container_database_management_feature_details'): 'DisableExternalContainerDatabaseManagementFeatureDetails', - ('disable_external_non_container_database_management_feature', 'disable_external_non_container_database_management_feature_details'): 'DisableExternalNonContainerDatabaseManagementFeatureDetails', - ('disable_external_pluggable_database_management_feature', 'disable_external_pluggable_database_management_feature_details'): 'DisableExternalPluggableDatabaseManagementFeatureDetails', - ('disable_high_frequency_automatic_spm_evolve_advisor_task', 'disable_high_frequency_automatic_spm_evolve_advisor_task_details'): 'DisableHighFrequencyAutomaticSpmEvolveAdvisorTaskDetails', - ('disable_pluggable_database_management_feature', 'disable_pluggable_database_management_feature_details'): 'DisablePluggableDatabaseManagementFeatureDetails', - ('disable_sql_plan_baselines_usage', 'disable_sql_plan_baselines_usage_details'): 'DisableSqlPlanBaselinesUsageDetails', - ('discover_cloud_exadata_infrastructure', 'discover_cloud_exadata_infrastructure_details'): 'DiscoverCloudExadataInfrastructureDetails', - ('discover_external_exadata_infrastructure', 'discover_external_exadata_infrastructure_details'): 'DiscoverExternalExadataInfrastructureDetails', - ('enable_automatic_initial_plan_capture', 'enable_automatic_initial_plan_capture_details'): 'EnableAutomaticInitialPlanCaptureDetails', - ('enable_automatic_spm_evolve_advisor_task', 'enable_automatic_spm_evolve_advisor_task_details'): 'EnableAutomaticSpmEvolveAdvisorTaskDetails', - ('enable_autonomous_database_management_feature', 'enable_autonomous_database_management_feature_details'): 'EnableAutonomousDatabaseManagementFeatureDetails', - ('enable_cloud_db_system_database_management', 'enable_cloud_db_system_database_management_details'): 'EnableCloudDbSystemDatabaseManagementDetails', - ('enable_cloud_db_system_stack_monitoring', 'enable_cloud_db_system_stack_monitoring_details'): 'EnableCloudDbSystemStackMonitoringDetails', - ('enable_cloud_exadata_infrastructure_management', 'enable_cloud_exadata_infrastructure_management_details'): 'EnableCloudExadataInfrastructureManagementDetails', - ('enable_database_management_feature', 'enable_database_management_feature_details'): 'EnableDatabaseManagementFeatureDetails', - ('enable_external_container_database_management_feature', 'enable_external_container_database_management_feature_details'): 'EnableExternalContainerDatabaseManagementFeatureDetails', - ('enable_external_db_system_database_management', 'enable_external_db_system_database_management_details'): 'EnableExternalDbSystemDatabaseManagementDetails', - ('enable_external_db_system_stack_monitoring', 'enable_external_db_system_stack_monitoring_details'): 'EnableExternalDbSystemStackMonitoringDetails', - ('enable_external_exadata_infrastructure_management', 'enable_external_exadata_infrastructure_management_details'): 'EnableExternalExadataInfrastructureManagementDetails', - ('enable_external_non_container_database_management_feature', 'enable_external_non_container_database_management_feature_details'): 'EnableExternalNonContainerDatabaseManagementFeatureDetails', - ('enable_external_pluggable_database_management_feature', 'enable_external_pluggable_database_management_feature_details'): 'EnableExternalPluggableDatabaseManagementFeatureDetails', - ('enable_high_frequency_automatic_spm_evolve_advisor_task', 'enable_high_frequency_automatic_spm_evolve_advisor_task_details'): 'EnableHighFrequencyAutomaticSpmEvolveAdvisorTaskDetails', - ('enable_pluggable_database_management_feature', 'enable_pluggable_database_management_feature_details'): 'EnablePluggableDatabaseManagementFeatureDetails', - ('enable_sql_plan_baselines_usage', 'enable_sql_plan_baselines_usage_details'): 'EnableSqlPlanBaselinesUsageDetails', - ('update_cloud_asm', 'update_cloud_asm_details'): 'UpdateCloudAsmDetails', - ('update_cloud_asm_instance', 'update_cloud_asm_instance_details'): 'UpdateCloudAsmInstanceDetails', - ('update_cloud_cluster', 'update_cloud_cluster_details'): 'UpdateCloudClusterDetails', - ('update_cloud_cluster_instance', 'update_cloud_cluster_instance_details'): 'UpdateCloudClusterInstanceDetails', - ('update_cloud_db_home', 'update_cloud_db_home_details'): 'UpdateCloudDbHomeDetails', - ('update_cloud_db_node', 'update_cloud_db_node_details'): 'UpdateCloudDbNodeDetails', - ('update_cloud_db_system', 'update_cloud_db_system_details'): 'UpdateCloudDbSystemDetails', - ('update_cloud_db_system_connector', 'update_cloud_db_system_connector_details'): 'UpdateCloudDbSystemConnectorDetails', - ('update_cloud_db_system_discovery', 'update_cloud_db_system_discovery_details'): 'UpdateCloudDbSystemDiscoveryDetails', - ('update_cloud_exadata_infrastructure', 'update_cloud_exadata_infrastructure_details'): 'UpdateCloudExadataInfrastructureDetails', - ('update_cloud_exadata_storage_connector', 'update_cloud_exadata_storage_connector_details'): 'UpdateCloudExadataStorageConnectorDetails', - ('update_cloud_exadata_storage_grid', 'update_cloud_exadata_storage_grid_details'): 'UpdateCloudExadataStorageGridDetails', - ('update_cloud_exadata_storage_server', 'update_cloud_exadata_storage_server_details'): 'UpdateCloudExadataStorageServerDetails', - ('update_cloud_listener', 'update_cloud_listener_details'): 'UpdateCloudListenerDetails', - ('update_db_management_private_endpoint', 'update_db_management_private_endpoint_details'): 'UpdateDbManagementPrivateEndpointDetails', - ('update_external_asm', 'update_external_asm_details'): 'UpdateExternalAsmDetails', - ('update_external_asm_instance', 'update_external_asm_instance_details'): 'UpdateExternalAsmInstanceDetails', - ('update_external_cluster', 'update_external_cluster_details'): 'UpdateExternalClusterDetails', - ('update_external_cluster_instance', 'update_external_cluster_instance_details'): 'UpdateExternalClusterInstanceDetails', - ('update_external_db_home', 'update_external_db_home_details'): 'UpdateExternalDbHomeDetails', - ('update_external_db_node', 'update_external_db_node_details'): 'UpdateExternalDbNodeDetails', - ('update_external_db_system', 'update_external_db_system_details'): 'UpdateExternalDbSystemDetails', - ('update_external_db_system_connector', 'update_external_db_system_connector_details'): 'UpdateExternalDbSystemConnectorDetails', - ('update_external_db_system_discovery', 'update_external_db_system_discovery_details'): 'UpdateExternalDbSystemDiscoveryDetails', - ('update_external_exadata_infrastructure', 'update_external_exadata_infrastructure_details'): 'UpdateExternalExadataInfrastructureDetails', - ('update_external_exadata_storage_connector', 'update_external_exadata_storage_connector_details'): 'UpdateExternalExadataStorageConnectorDetails', - ('update_external_exadata_storage_grid', 'update_external_exadata_storage_grid_details'): 'UpdateExternalExadataStorageGridDetails', - ('update_external_exadata_storage_server', 'update_external_exadata_storage_server_details'): 'UpdateExternalExadataStorageServerDetails', - ('update_external_listener', 'update_external_listener_details'): 'UpdateExternalListenerDetails', - ('update_job', 'update_job_details'): 'UpdateJobDetails', - ('update_managed_database', 'update_managed_database_details'): 'UpdateManagedDatabaseDetails', - ('update_managed_database_group', 'update_managed_database_group_details'): 'UpdateManagedDatabaseGroupDetails', - ('update_named_credential', 'update_named_credential_details'): 'UpdateNamedCredentialDetails', - ('update_preferred_credential', 'update_preferred_credential_details'): 'UpdatePreferredCredentialDetails', - ('update_tablespace', 'update_tablespace_details'): 'UpdateTablespaceDetails', -} -INCLUDED_METHOD_NAMES = ( - 'addm_tasks', - 'change_cloud_exadata_infrastructure_compartment', - 'change_database_parameters', - 'change_db_management_private_endpoint_compartment', - 'change_external_db_system_compartment', - 'change_external_exadata_infrastructure_compartment', - 'change_job_compartment', - 'change_managed_database_group_compartment', - 'change_named_credential_compartment', - 'change_plan_retention', - 'change_space_budget', - 'change_sql_plan_baselines_attributes', - 'check_cloud_db_system_connector_connection_status', - 'check_cloud_exadata_storage_connector', - 'check_external_db_system_connector_connection_status', - 'check_external_exadata_storage_connector', - 'create_cloud_db_system', - 'create_cloud_db_system_connector', - 'create_cloud_db_system_discovery', - 'create_cloud_exadata_infrastructure', - 'create_cloud_exadata_storage_connector', - 'create_db_management_private_endpoint', - 'create_external_db_system', - 'create_external_db_system_connector', - 'create_external_db_system_discovery', - 'create_external_exadata_infrastructure', - 'create_external_exadata_storage_connector', - 'create_job', - 'create_managed_database_group', - 'create_named_credential', - 'create_sql_tuning_set', - 'create_tablespace', - 'disable_automatic_initial_plan_capture', - 'disable_automatic_spm_evolve_advisor_task', - 'disable_autonomous_database_management_feature', - 'disable_cloud_db_system_database_management', - 'disable_cloud_db_system_stack_monitoring', - 'disable_cloud_exadata_infrastructure_management', - 'disable_database_management_feature', - 'disable_external_container_database_management_feature', - 'disable_external_db_system_database_management', - 'disable_external_db_system_stack_monitoring', - 'disable_external_exadata_infrastructure_management', - 'disable_external_non_container_database_management_feature', - 'disable_external_pluggable_database_management_feature', - 'disable_high_frequency_automatic_spm_evolve_advisor_task', - 'disable_pluggable_database_management_feature', - 'disable_sql_plan_baselines_usage', - 'discover_cloud_exadata_infrastructure', - 'discover_external_exadata_infrastructure', - 'enable_automatic_initial_plan_capture', - 'enable_automatic_spm_evolve_advisor_task', - 'enable_autonomous_database_management_feature', - 'enable_cloud_db_system_database_management', - 'enable_cloud_db_system_stack_monitoring', - 'enable_cloud_exadata_infrastructure_management', - 'enable_database_management_feature', - 'enable_external_container_database_management_feature', - 'enable_external_db_system_database_management', - 'enable_external_db_system_stack_monitoring', - 'enable_external_exadata_infrastructure_management', - 'enable_external_non_container_database_management_feature', - 'enable_external_pluggable_database_management_feature', - 'enable_high_frequency_automatic_spm_evolve_advisor_task', - 'enable_pluggable_database_management_feature', - 'enable_sql_plan_baselines_usage', - 'generate_awr_snapshot', - 'get_awr_db_report', - 'get_awr_db_sql_report', - 'get_cloud_asm', - 'get_cloud_asm_configuration', - 'get_cloud_asm_instance', - 'get_cloud_cluster', - 'get_cloud_cluster_instance', - 'get_cloud_db_home', - 'get_cloud_db_node', - 'get_cloud_db_system', - 'get_cloud_db_system_connector', - 'get_cloud_db_system_discovery', - 'get_cloud_exadata_infrastructure', - 'get_cloud_exadata_storage_connector', - 'get_cloud_exadata_storage_grid', - 'get_cloud_exadata_storage_server', - 'get_cloud_iorm_plan', - 'get_cloud_listener', - 'get_cloud_open_alert_history', - 'get_cluster_cache_metric', - 'get_database_fleet_backup_metrics', - 'get_database_fleet_dataguard_metrics', - 'get_database_fleet_ha_overview_metrics', - 'get_database_fleet_health_metrics', - 'get_database_ha_backup_details', - 'get_database_home_metrics', - 'get_dataguard_performance_metrics', - 'get_db_management_private_endpoint', - 'get_exadata_infrastructure_fleet_health_metrics', - 'get_execution_plan_stats_comparision', - 'get_external_asm', - 'get_external_asm_configuration', - 'get_external_asm_instance', - 'get_external_cluster', - 'get_external_cluster_instance', - 'get_external_db_home', - 'get_external_db_node', - 'get_external_db_system', - 'get_external_db_system_connector', - 'get_external_db_system_discovery', - 'get_external_exadata_infrastructure', - 'get_external_exadata_storage_connector', - 'get_external_exadata_storage_grid', - 'get_external_exadata_storage_server', - 'get_external_listener', - 'get_iorm_plan', - 'get_job', - 'get_job_execution', - 'get_job_run', - 'get_managed_database', - 'get_managed_database_group', - 'get_named_credential', - 'get_open_alert_history', - 'get_optimizer_statistics_advisor_execution', - 'get_optimizer_statistics_advisor_execution_script', - 'get_optimizer_statistics_collection_operation', - 'get_pdb_metrics', - 'get_peer_database_metrics', - 'get_preferred_credential', - 'get_sql_execution_plan', - 'get_sql_plan_baseline', - 'get_sql_plan_baseline_configuration', - 'get_sql_tuning_advisor_task_summary_report', - 'get_tablespace', - 'get_top_sql_cpu_activity', - 'get_user', - 'get_work_request', - 'list_alert_logs', - 'list_asm_properties', - 'list_associated_databases', - 'list_attention_logs', - 'list_awr_db_snapshots', - 'list_awr_dbs', - 'list_cloud_asm_disk_groups', - 'list_cloud_asm_instances', - 'list_cloud_asm_users', - 'list_cloud_asms', - 'list_cloud_cluster_instances', - 'list_cloud_clusters', - 'list_cloud_databases', - 'list_cloud_db_homes', - 'list_cloud_db_nodes', - 'list_cloud_db_system_connectors', - 'list_cloud_db_system_discoveries', - 'list_cloud_db_systems', - 'list_cloud_exadata_infrastructures', - 'list_cloud_exadata_storage_connectors', - 'list_cloud_exadata_storage_servers', - 'list_cloud_listener_services', - 'list_cloud_listeners', - 'list_consumer_group_privileges', - 'list_cursor_cache_statements', - 'list_data_access_containers', - 'list_database_parameters', - 'list_db_management_private_endpoints', - 'list_external_asm_disk_groups', - 'list_external_asm_instances', - 'list_external_asm_users', - 'list_external_asms', - 'list_external_cluster_instances', - 'list_external_clusters', - 'list_external_databases', - 'list_external_db_homes', - 'list_external_db_nodes', - 'list_external_db_system_connectors', - 'list_external_db_system_discoveries', - 'list_external_db_systems', - 'list_external_exadata_infrastructures', - 'list_external_exadata_storage_connectors', - 'list_external_exadata_storage_servers', - 'list_external_listener_services', - 'list_external_listeners', - 'list_job_executions', - 'list_job_runs', - 'list_jobs', - 'list_managed_database_groups', - 'list_managed_databases', - 'list_named_credentials', - 'list_object_privileges', - 'list_optimizer_statistics_advisor_executions', - 'list_optimizer_statistics_collection_aggregations', - 'list_optimizer_statistics_collection_operations', - 'list_preferred_credentials', - 'list_proxied_for_users', - 'list_proxy_users', - 'list_roles', - 'list_sql_plan_baseline_jobs', - 'list_sql_plan_baselines', - 'list_sql_tuning_advisor_task_findings', - 'list_sql_tuning_advisor_task_recommendations', - 'list_sql_tuning_advisor_tasks', - 'list_sql_tuning_sets', - 'list_system_privileges', - 'list_table_statistics', - 'list_tablespaces', - 'list_users', - 'list_work_request_errors', - 'list_work_request_logs', - 'list_work_requests', - 'summarize_alert_log_counts', - 'summarize_attention_log_counts', - 'summarize_awr_db_cpu_usages', - 'summarize_awr_db_metrics', - 'summarize_awr_db_parameter_changes', - 'summarize_awr_db_parameters', - 'summarize_awr_db_snapshot_ranges', - 'summarize_awr_db_sysstats', - 'summarize_awr_db_top_wait_events', - 'summarize_awr_db_wait_event_buckets', - 'summarize_awr_db_wait_events', - 'summarize_cloud_asm_metrics', - 'summarize_cloud_cluster_metrics', - 'summarize_cloud_db_node_metrics', - 'summarize_cloud_db_system_availability_metrics', - 'summarize_cloud_listener_metrics', - 'summarize_external_asm_metrics', - 'summarize_external_cluster_metrics', - 'summarize_external_db_node_metrics', - 'summarize_external_db_system_availability_metrics', - 'summarize_external_listener_metrics', - 'summarize_job_executions_statuses', - 'summarize_managed_database_availability_metrics', - 'summarize_sql_plan_baselines', - 'summarize_sql_plan_baselines_by_last_execution', - 'update_cloud_asm', - 'update_cloud_asm_instance', - 'update_cloud_cluster', - 'update_cloud_cluster_instance', - 'update_cloud_db_home', - 'update_cloud_db_node', - 'update_cloud_db_system', - 'update_cloud_db_system_connector', - 'update_cloud_db_system_discovery', - 'update_cloud_exadata_infrastructure', - 'update_cloud_exadata_storage_connector', - 'update_cloud_exadata_storage_grid', - 'update_cloud_exadata_storage_server', - 'update_cloud_listener', - 'update_db_management_private_endpoint', - 'update_external_asm', - 'update_external_asm_instance', - 'update_external_cluster', - 'update_external_cluster_instance', - 'update_external_db_home', - 'update_external_db_node', - 'update_external_db_system', - 'update_external_db_system_connector', - 'update_external_db_system_discovery', - 'update_external_exadata_infrastructure', - 'update_external_exadata_storage_connector', - 'update_external_exadata_storage_grid', - 'update_external_exadata_storage_server', - 'update_external_listener', - 'update_job', - 'update_managed_database', - 'update_managed_database_group', - 'update_named_credential', - 'update_preferred_credential', - 'update_tablespace', -) -MUTABLE_METHOD_NAMES = ( - 'change_cloud_exadata_infrastructure_compartment', - 'change_database_parameters', - 'change_db_management_private_endpoint_compartment', - 'change_external_db_system_compartment', - 'change_external_exadata_infrastructure_compartment', - 'change_job_compartment', - 'change_managed_database_group_compartment', - 'change_named_credential_compartment', - 'change_plan_retention', - 'change_space_budget', - 'change_sql_plan_baselines_attributes', - 'create_cloud_db_system', - 'create_cloud_db_system_connector', - 'create_cloud_db_system_discovery', - 'create_cloud_exadata_infrastructure', - 'create_cloud_exadata_storage_connector', - 'create_db_management_private_endpoint', - 'create_external_db_system', - 'create_external_db_system_connector', - 'create_external_db_system_discovery', - 'create_external_exadata_infrastructure', - 'create_external_exadata_storage_connector', - 'create_job', - 'create_managed_database_group', - 'create_named_credential', - 'create_sql_tuning_set', - 'create_tablespace', - 'disable_automatic_initial_plan_capture', - 'disable_automatic_spm_evolve_advisor_task', - 'disable_autonomous_database_management_feature', - 'disable_cloud_db_system_database_management', - 'disable_cloud_db_system_stack_monitoring', - 'disable_cloud_exadata_infrastructure_management', - 'disable_database_management_feature', - 'disable_external_container_database_management_feature', - 'disable_external_db_system_database_management', - 'disable_external_db_system_stack_monitoring', - 'disable_external_exadata_infrastructure_management', - 'disable_external_non_container_database_management_feature', - 'disable_external_pluggable_database_management_feature', - 'disable_high_frequency_automatic_spm_evolve_advisor_task', - 'disable_pluggable_database_management_feature', - 'disable_sql_plan_baselines_usage', - 'discover_cloud_exadata_infrastructure', - 'discover_external_exadata_infrastructure', - 'enable_automatic_initial_plan_capture', - 'enable_automatic_spm_evolve_advisor_task', - 'enable_autonomous_database_management_feature', - 'enable_cloud_db_system_database_management', - 'enable_cloud_db_system_stack_monitoring', - 'enable_cloud_exadata_infrastructure_management', - 'enable_database_management_feature', - 'enable_external_container_database_management_feature', - 'enable_external_db_system_database_management', - 'enable_external_db_system_stack_monitoring', - 'enable_external_exadata_infrastructure_management', - 'enable_external_non_container_database_management_feature', - 'enable_external_pluggable_database_management_feature', - 'enable_high_frequency_automatic_spm_evolve_advisor_task', - 'enable_pluggable_database_management_feature', - 'enable_sql_plan_baselines_usage', - 'generate_awr_snapshot', - 'update_cloud_asm', - 'update_cloud_asm_instance', - 'update_cloud_cluster', - 'update_cloud_cluster_instance', - 'update_cloud_db_home', - 'update_cloud_db_node', - 'update_cloud_db_system', - 'update_cloud_db_system_connector', - 'update_cloud_db_system_discovery', - 'update_cloud_exadata_infrastructure', - 'update_cloud_exadata_storage_connector', - 'update_cloud_exadata_storage_grid', - 'update_cloud_exadata_storage_server', - 'update_cloud_listener', - 'update_db_management_private_endpoint', - 'update_external_asm', - 'update_external_asm_instance', - 'update_external_cluster', - 'update_external_cluster_instance', - 'update_external_db_home', - 'update_external_db_node', - 'update_external_db_system', - 'update_external_db_system_connector', - 'update_external_db_system_discovery', - 'update_external_exadata_infrastructure', - 'update_external_exadata_storage_connector', - 'update_external_exadata_storage_grid', - 'update_external_exadata_storage_server', - 'update_external_listener', - 'update_job', - 'update_managed_database', - 'update_managed_database_group', - 'update_named_credential', - 'update_preferred_credential', - 'update_tablespace', -) -METHOD_CLIENTS = { - 'addm_tasks': 'DbManagementClient', - 'change_cloud_exadata_infrastructure_compartment': 'DbManagementClient', - 'change_database_parameters': 'DbManagementClient', - 'change_db_management_private_endpoint_compartment': 'DbManagementClient', - 'change_external_db_system_compartment': 'DbManagementClient', - 'change_external_exadata_infrastructure_compartment': 'DbManagementClient', - 'change_job_compartment': 'DbManagementClient', - 'change_managed_database_group_compartment': 'DbManagementClient', - 'change_named_credential_compartment': 'DbManagementClient', - 'change_plan_retention': 'DbManagementClient', - 'change_space_budget': 'DbManagementClient', - 'change_sql_plan_baselines_attributes': 'DbManagementClient', - 'check_cloud_db_system_connector_connection_status': 'DbManagementClient', - 'check_cloud_exadata_storage_connector': 'DbManagementClient', - 'check_external_db_system_connector_connection_status': 'DbManagementClient', - 'check_external_exadata_storage_connector': 'DbManagementClient', - 'create_cloud_db_system': 'DbManagementClient', - 'create_cloud_db_system_connector': 'DbManagementClient', - 'create_cloud_db_system_discovery': 'DbManagementClient', - 'create_cloud_exadata_infrastructure': 'DbManagementClient', - 'create_cloud_exadata_storage_connector': 'DbManagementClient', - 'create_db_management_private_endpoint': 'DbManagementClient', - 'create_external_db_system': 'DbManagementClient', - 'create_external_db_system_connector': 'DbManagementClient', - 'create_external_db_system_discovery': 'DbManagementClient', - 'create_external_exadata_infrastructure': 'DbManagementClient', - 'create_external_exadata_storage_connector': 'DbManagementClient', - 'create_job': 'DbManagementClient', - 'create_managed_database_group': 'DbManagementClient', - 'create_named_credential': 'DbManagementClient', - 'create_tablespace': 'DbManagementClient', - 'disable_automatic_initial_plan_capture': 'DbManagementClient', - 'disable_automatic_spm_evolve_advisor_task': 'DbManagementClient', - 'disable_autonomous_database_management_feature': 'DbManagementClient', - 'disable_cloud_db_system_database_management': 'DbManagementClient', - 'disable_cloud_db_system_stack_monitoring': 'DbManagementClient', - 'disable_cloud_exadata_infrastructure_management': 'DbManagementClient', - 'disable_database_management_feature': 'DbManagementClient', - 'disable_external_container_database_management_feature': 'DbManagementClient', - 'disable_external_db_system_database_management': 'DbManagementClient', - 'disable_external_db_system_stack_monitoring': 'DbManagementClient', - 'disable_external_exadata_infrastructure_management': 'DbManagementClient', - 'disable_external_non_container_database_management_feature': 'DbManagementClient', - 'disable_external_pluggable_database_management_feature': 'DbManagementClient', - 'disable_high_frequency_automatic_spm_evolve_advisor_task': 'DbManagementClient', - 'disable_pluggable_database_management_feature': 'DbManagementClient', - 'disable_sql_plan_baselines_usage': 'DbManagementClient', - 'discover_cloud_exadata_infrastructure': 'DbManagementClient', - 'discover_external_exadata_infrastructure': 'DbManagementClient', - 'enable_automatic_initial_plan_capture': 'DbManagementClient', - 'enable_automatic_spm_evolve_advisor_task': 'DbManagementClient', - 'enable_autonomous_database_management_feature': 'DbManagementClient', - 'enable_cloud_db_system_database_management': 'DbManagementClient', - 'enable_cloud_db_system_stack_monitoring': 'DbManagementClient', - 'enable_cloud_exadata_infrastructure_management': 'DbManagementClient', - 'enable_database_management_feature': 'DbManagementClient', - 'enable_external_container_database_management_feature': 'DbManagementClient', - 'enable_external_db_system_database_management': 'DbManagementClient', - 'enable_external_db_system_stack_monitoring': 'DbManagementClient', - 'enable_external_exadata_infrastructure_management': 'DbManagementClient', - 'enable_external_non_container_database_management_feature': 'DbManagementClient', - 'enable_external_pluggable_database_management_feature': 'DbManagementClient', - 'enable_high_frequency_automatic_spm_evolve_advisor_task': 'DbManagementClient', - 'enable_pluggable_database_management_feature': 'DbManagementClient', - 'enable_sql_plan_baselines_usage': 'DbManagementClient', - 'generate_awr_snapshot': 'DbManagementClient', - 'get_awr_db_report': 'DbManagementClient', - 'get_awr_db_sql_report': 'DbManagementClient', - 'get_cloud_asm': 'DbManagementClient', - 'get_cloud_asm_configuration': 'DbManagementClient', - 'get_cloud_asm_instance': 'DbManagementClient', - 'get_cloud_cluster': 'DbManagementClient', - 'get_cloud_cluster_instance': 'DbManagementClient', - 'get_cloud_db_home': 'DbManagementClient', - 'get_cloud_db_node': 'DbManagementClient', - 'get_cloud_db_system': 'DbManagementClient', - 'get_cloud_db_system_connector': 'DbManagementClient', - 'get_cloud_db_system_discovery': 'DbManagementClient', - 'get_cloud_exadata_infrastructure': 'DbManagementClient', - 'get_cloud_exadata_storage_connector': 'DbManagementClient', - 'get_cloud_exadata_storage_grid': 'DbManagementClient', - 'get_cloud_exadata_storage_server': 'DbManagementClient', - 'get_cloud_iorm_plan': 'DbManagementClient', - 'get_cloud_listener': 'DbManagementClient', - 'get_cloud_open_alert_history': 'DbManagementClient', - 'get_cluster_cache_metric': 'DbManagementClient', - 'get_database_fleet_backup_metrics': 'DbManagementClient', - 'get_database_fleet_dataguard_metrics': 'DbManagementClient', - 'get_database_fleet_ha_overview_metrics': 'DbManagementClient', - 'get_database_fleet_health_metrics': 'DbManagementClient', - 'get_database_ha_backup_details': 'DbManagementClient', - 'get_database_home_metrics': 'DbManagementClient', - 'get_dataguard_performance_metrics': 'DbManagementClient', - 'get_db_management_private_endpoint': 'DbManagementClient', - 'get_exadata_infrastructure_fleet_health_metrics': 'DbManagementClient', - 'get_external_asm': 'DbManagementClient', - 'get_external_asm_configuration': 'DbManagementClient', - 'get_external_asm_instance': 'DbManagementClient', - 'get_external_cluster': 'DbManagementClient', - 'get_external_cluster_instance': 'DbManagementClient', - 'get_external_db_home': 'DbManagementClient', - 'get_external_db_node': 'DbManagementClient', - 'get_external_db_system': 'DbManagementClient', - 'get_external_db_system_connector': 'DbManagementClient', - 'get_external_db_system_discovery': 'DbManagementClient', - 'get_external_exadata_infrastructure': 'DbManagementClient', - 'get_external_exadata_storage_connector': 'DbManagementClient', - 'get_external_exadata_storage_grid': 'DbManagementClient', - 'get_external_exadata_storage_server': 'DbManagementClient', - 'get_external_listener': 'DbManagementClient', - 'get_iorm_plan': 'DbManagementClient', - 'get_job': 'DbManagementClient', - 'get_job_execution': 'DbManagementClient', - 'get_job_run': 'DbManagementClient', - 'get_managed_database': 'DbManagementClient', - 'get_managed_database_group': 'DbManagementClient', - 'get_named_credential': 'DbManagementClient', - 'get_open_alert_history': 'DbManagementClient', - 'get_optimizer_statistics_advisor_execution': 'DbManagementClient', - 'get_optimizer_statistics_advisor_execution_script': 'DbManagementClient', - 'get_optimizer_statistics_collection_operation': 'DbManagementClient', - 'get_pdb_metrics': 'DbManagementClient', - 'get_peer_database_metrics': 'DbManagementClient', - 'get_preferred_credential': 'DbManagementClient', - 'get_sql_plan_baseline': 'DbManagementClient', - 'get_sql_plan_baseline_configuration': 'DbManagementClient', - 'get_tablespace': 'DbManagementClient', - 'get_top_sql_cpu_activity': 'DbManagementClient', - 'get_user': 'DbManagementClient', - 'get_work_request': 'DbManagementClient', - 'list_asm_properties': 'DbManagementClient', - 'list_associated_databases': 'DbManagementClient', - 'list_awr_db_snapshots': 'DbManagementClient', - 'list_awr_dbs': 'DbManagementClient', - 'list_cloud_asm_disk_groups': 'DbManagementClient', - 'list_cloud_asm_instances': 'DbManagementClient', - 'list_cloud_asm_users': 'DbManagementClient', - 'list_cloud_asms': 'DbManagementClient', - 'list_cloud_cluster_instances': 'DbManagementClient', - 'list_cloud_clusters': 'DbManagementClient', - 'list_cloud_databases': 'DbManagementClient', - 'list_cloud_db_homes': 'DbManagementClient', - 'list_cloud_db_nodes': 'DbManagementClient', - 'list_cloud_db_system_connectors': 'DbManagementClient', - 'list_cloud_db_system_discoveries': 'DbManagementClient', - 'list_cloud_db_systems': 'DbManagementClient', - 'list_cloud_exadata_infrastructures': 'DbManagementClient', - 'list_cloud_exadata_storage_connectors': 'DbManagementClient', - 'list_cloud_exadata_storage_servers': 'DbManagementClient', - 'list_cloud_listener_services': 'DbManagementClient', - 'list_cloud_listeners': 'DbManagementClient', - 'list_consumer_group_privileges': 'DbManagementClient', - 'list_cursor_cache_statements': 'DbManagementClient', - 'list_data_access_containers': 'DbManagementClient', - 'list_database_parameters': 'DbManagementClient', - 'list_db_management_private_endpoints': 'DbManagementClient', - 'list_external_asm_disk_groups': 'DbManagementClient', - 'list_external_asm_instances': 'DbManagementClient', - 'list_external_asm_users': 'DbManagementClient', - 'list_external_asms': 'DbManagementClient', - 'list_external_cluster_instances': 'DbManagementClient', - 'list_external_clusters': 'DbManagementClient', - 'list_external_databases': 'DbManagementClient', - 'list_external_db_homes': 'DbManagementClient', - 'list_external_db_nodes': 'DbManagementClient', - 'list_external_db_system_connectors': 'DbManagementClient', - 'list_external_db_system_discoveries': 'DbManagementClient', - 'list_external_db_systems': 'DbManagementClient', - 'list_external_exadata_infrastructures': 'DbManagementClient', - 'list_external_exadata_storage_connectors': 'DbManagementClient', - 'list_external_exadata_storage_servers': 'DbManagementClient', - 'list_external_listener_services': 'DbManagementClient', - 'list_external_listeners': 'DbManagementClient', - 'list_job_executions': 'DbManagementClient', - 'list_job_runs': 'DbManagementClient', - 'list_jobs': 'DbManagementClient', - 'list_managed_database_groups': 'DbManagementClient', - 'list_managed_databases': 'DbManagementClient', - 'list_named_credentials': 'DbManagementClient', - 'list_object_privileges': 'DbManagementClient', - 'list_optimizer_statistics_advisor_executions': 'DbManagementClient', - 'list_optimizer_statistics_collection_aggregations': 'DbManagementClient', - 'list_optimizer_statistics_collection_operations': 'DbManagementClient', - 'list_preferred_credentials': 'DbManagementClient', - 'list_proxied_for_users': 'DbManagementClient', - 'list_proxy_users': 'DbManagementClient', - 'list_roles': 'DbManagementClient', - 'list_sql_plan_baseline_jobs': 'DbManagementClient', - 'list_sql_plan_baselines': 'DbManagementClient', - 'list_system_privileges': 'DbManagementClient', - 'list_table_statistics': 'DbManagementClient', - 'list_tablespaces': 'DbManagementClient', - 'list_users': 'DbManagementClient', - 'list_work_request_errors': 'DbManagementClient', - 'list_work_request_logs': 'DbManagementClient', - 'list_work_requests': 'DbManagementClient', - 'summarize_awr_db_cpu_usages': 'DbManagementClient', - 'summarize_awr_db_metrics': 'DbManagementClient', - 'summarize_awr_db_parameter_changes': 'DbManagementClient', - 'summarize_awr_db_parameters': 'DbManagementClient', - 'summarize_awr_db_snapshot_ranges': 'DbManagementClient', - 'summarize_awr_db_sysstats': 'DbManagementClient', - 'summarize_awr_db_top_wait_events': 'DbManagementClient', - 'summarize_awr_db_wait_event_buckets': 'DbManagementClient', - 'summarize_awr_db_wait_events': 'DbManagementClient', - 'summarize_cloud_asm_metrics': 'DbManagementClient', - 'summarize_cloud_cluster_metrics': 'DbManagementClient', - 'summarize_cloud_db_node_metrics': 'DbManagementClient', - 'summarize_cloud_db_system_availability_metrics': 'DbManagementClient', - 'summarize_cloud_listener_metrics': 'DbManagementClient', - 'summarize_external_asm_metrics': 'DbManagementClient', - 'summarize_external_cluster_metrics': 'DbManagementClient', - 'summarize_external_db_node_metrics': 'DbManagementClient', - 'summarize_external_db_system_availability_metrics': 'DbManagementClient', - 'summarize_external_listener_metrics': 'DbManagementClient', - 'summarize_job_executions_statuses': 'DbManagementClient', - 'summarize_managed_database_availability_metrics': 'DbManagementClient', - 'summarize_sql_plan_baselines': 'DbManagementClient', - 'summarize_sql_plan_baselines_by_last_execution': 'DbManagementClient', - 'update_cloud_asm': 'DbManagementClient', - 'update_cloud_asm_instance': 'DbManagementClient', - 'update_cloud_cluster': 'DbManagementClient', - 'update_cloud_cluster_instance': 'DbManagementClient', - 'update_cloud_db_home': 'DbManagementClient', - 'update_cloud_db_node': 'DbManagementClient', - 'update_cloud_db_system': 'DbManagementClient', - 'update_cloud_db_system_connector': 'DbManagementClient', - 'update_cloud_db_system_discovery': 'DbManagementClient', - 'update_cloud_exadata_infrastructure': 'DbManagementClient', - 'update_cloud_exadata_storage_connector': 'DbManagementClient', - 'update_cloud_exadata_storage_grid': 'DbManagementClient', - 'update_cloud_exadata_storage_server': 'DbManagementClient', - 'update_cloud_listener': 'DbManagementClient', - 'update_db_management_private_endpoint': 'DbManagementClient', - 'update_external_asm': 'DbManagementClient', - 'update_external_asm_instance': 'DbManagementClient', - 'update_external_cluster': 'DbManagementClient', - 'update_external_cluster_instance': 'DbManagementClient', - 'update_external_db_home': 'DbManagementClient', - 'update_external_db_node': 'DbManagementClient', - 'update_external_db_system': 'DbManagementClient', - 'update_external_db_system_connector': 'DbManagementClient', - 'update_external_db_system_discovery': 'DbManagementClient', - 'update_external_exadata_infrastructure': 'DbManagementClient', - 'update_external_exadata_storage_connector': 'DbManagementClient', - 'update_external_exadata_storage_grid': 'DbManagementClient', - 'update_external_exadata_storage_server': 'DbManagementClient', - 'update_external_listener': 'DbManagementClient', - 'update_job': 'DbManagementClient', - 'update_managed_database': 'DbManagementClient', - 'update_managed_database_group': 'DbManagementClient', - 'update_named_credential': 'DbManagementClient', - 'update_preferred_credential': 'DbManagementClient', - 'update_tablespace': 'DbManagementClient', - 'list_alert_logs': 'DiagnosabilityClient', - 'list_attention_logs': 'DiagnosabilityClient', - 'summarize_alert_log_counts': 'DiagnosabilityClient', - 'summarize_attention_log_counts': 'DiagnosabilityClient', - 'create_sql_tuning_set': 'SqlTuningClient', - 'get_execution_plan_stats_comparision': 'SqlTuningClient', - 'get_sql_execution_plan': 'SqlTuningClient', - 'get_sql_tuning_advisor_task_summary_report': 'SqlTuningClient', - 'list_sql_tuning_advisor_task_findings': 'SqlTuningClient', - 'list_sql_tuning_advisor_task_recommendations': 'SqlTuningClient', - 'list_sql_tuning_advisor_tasks': 'SqlTuningClient', - 'list_sql_tuning_sets': 'SqlTuningClient', -} -TOOL_NAMES = frozenset(INCLUDED_METHOD_NAMES) | BOOTSTRAP_TOOL_NAMES -MUTABLE_TOOL_NAMES = frozenset(MUTABLE_METHOD_NAMES) - - -TOOL_DESCRIPTIONS = { - 'get_compartment': 'Retrieves an OCI compartment by OCID. Use this operation to validate or resolve compartment scope before listing Database Management resources.', - 'list_compartments': 'Lists OCI compartments under a root compartment. Use this operation to discover compartment IDs for subsequent Database Management queries.', - 'addm_tasks': 'Lists the metadata for each ADDM task whose end snapshot time falls within the provided start and end time. Details include the name of the ADDM task, description, user, status and creation date time. Use this operation to review ADDM task metadata for a specified AWR snapshot time range.', - 'change_cloud_exadata_infrastructure_compartment': 'Moves the Exadata infrastructure and its related resources (Exadata storage server, Exadata storage server connectors and Exadata storage server grid) to the specified compartment. Use this operation to move an existing Database Management resource to another compartment.', - 'change_database_parameters': 'Changes database parameter values. Dynamic parameter changes take effect immediately; static parameter changes require a database restart. Use this operation after confirming the target resource and desired setting change.', - 'change_db_management_private_endpoint_compartment': 'Moves the Database Management private endpoint and its dependent resources to the specified compartment. Use this operation to move an existing Database Management resource to another compartment.', - 'change_external_db_system_compartment': 'Moves the external DB system and its related resources (excluding databases) to the specified compartment. Use this operation to move an existing Database Management resource to another compartment.', - 'change_external_exadata_infrastructure_compartment': 'Moves the Exadata infrastructure and its related resources (Exadata storage server, Exadata storage server connectors and Exadata storage server grid) to the specified compartment. Use this operation to move an existing Database Management resource to another compartment.', - 'change_job_compartment': 'Moves a job. Use this operation to move an existing Database Management resource to another compartment.', - 'change_managed_database_group_compartment': 'Moves a Managed Database Group to a different compartment. The destination compartment must not have a Managed Database Group with the same name. Use this operation to move an existing Database Management resource to another compartment.', - 'change_named_credential_compartment': 'Moves a named credential to a different compartment. The destination compartment must not have a named credential with the same name. Use this operation to move an existing Database Management resource to another compartment.', - 'change_plan_retention': 'Changes the retention period of unused plans. The period can range between 5 and 523 weeks. The database purges plans that have not been used for longer than the plan retention period. Use this operation after confirming the target resource and desired setting change.', - 'change_space_budget': 'Changes the disk space limit for the SQL Management Base. The allowable range for this limit is between 1% and 50%. Use this operation after confirming the target resource and desired setting change.', - 'change_sql_plan_baselines_attributes': 'Changes one or more attributes of a single plan or all plans associated with a SQL statement. Use this operation after confirming the target resource and desired setting change.', - 'check_cloud_db_system_connector_connection_status': 'Checks the status of the cloud DB system component connection specified in this connector. This operation will refresh the connectionStatus and timeConnectionStatusLastUpdated fields. Use this operation to validate connectivity or credential status and inspect returned status fields.', - 'check_cloud_exadata_storage_connector': 'Checks the status of the Exadata storage server connection specified by exadataStorageConnectorId. Use this operation to validate connectivity or credential status and inspect returned status fields.', - 'check_external_db_system_connector_connection_status': 'Checks the status of the external DB system component connection specified in this connector. This operation will refresh the connectionStatus and timeConnectionStatusLastUpdated fields. Use this operation to validate connectivity or credential status and inspect returned status fields.', - 'check_external_exadata_storage_connector': 'Checks the status of the Exadata storage server connection specified by exadataStorageConnectorId. Use this operation to validate connectivity or credential status and inspect returned status fields.', - 'create_cloud_db_system': 'Creates a cloud DB system and its related resources. Use this operation when the required compartment, target, and configuration details are known.', - 'create_cloud_db_system_connector': 'Creates a new cloud connector. Use this operation when the required compartment, target, and configuration details are known.', - 'create_cloud_db_system_discovery': 'Creates a cloud DB system discovery resource and initiates the discovery process. Use this operation when the required compartment, target, and configuration details are known.', - 'create_cloud_exadata_infrastructure': 'Creates an OCI resource for the Exadata infrastructure and enables the Monitoring service for the Exadata infrastructure. The following resource/subresources are created: Infrastructure Storage server connectors Storage servers Storage grids Use this operation when the required compartment, target, and configuration details are known.', - 'create_cloud_exadata_storage_connector': 'Creates the Exadata storage server connector after validating the connection information. Use this operation when the required compartment, target, and configuration details are known.', - 'create_db_management_private_endpoint': 'Creates a new Database Management private endpoint. Use this operation when the required compartment, target, and configuration details are known.', - 'create_external_db_system': 'Creates an external DB system and its related resources. Use this operation when the required compartment, target, and configuration details are known.', - 'create_external_db_system_connector': 'Creates a new external connector. Use this operation when the required compartment, target, and configuration details are known.', - 'create_external_db_system_discovery': 'Creates an external DB system discovery resource and initiates the discovery process. Use this operation when the required compartment, target, and configuration details are known.', - 'create_external_exadata_infrastructure': 'Creates an OCI resource for the Exadata infrastructure and enables the Monitoring service for the Exadata infrastructure. The following resource/subresources are created: Infrastructure Storage server connectors Storage servers Storage grids Use this operation when the required compartment, target, and configuration details are known.', - 'create_external_exadata_storage_connector': 'Creates the Exadata storage server connector after validating the connection information. Use this operation when the required compartment, target, and configuration details are known.', - 'create_job': 'Creates a job to be executed on a Managed Database or Managed Database Group. Only one of the parameters, managedDatabaseId or managedDatabaseGroupId should be provided as input in CreateJobDetails resource in request body. Use this operation when the required compartment, target, and configuration details are known.', - 'create_managed_database_group': 'Creates a Managed Database Group. The group does not contain any Managed Databases when it is created, and they must be added later. Use this operation when the required compartment, target, and configuration details are known.', - 'create_named_credential': 'Creates a named credential. Use this operation when the required compartment, target, and configuration details are known.', - 'create_sql_tuning_set': 'Creates an empty Sql tuning set within the Managed Database specified by managedDatabaseId. Use this operation when the required compartment, target, and configuration details are known.', - 'create_tablespace': 'Creates a tablespace within the Managed Database specified by managedDatabaseId. Use this operation when the required compartment, target, and configuration details are known.', - 'disable_automatic_initial_plan_capture': 'Disables automatic initial plan capture. Use this operation to disable the feature for a known database, system, or Database Management resource.', - 'disable_automatic_spm_evolve_advisor_task': 'Disables the Automatic SPM Evolve Advisor task. One client controls both Automatic SQL Tuning Advisor and Automatic SPM Evolve Advisor. Thus, the same task enables or disables both. Use this operation to disable the feature for a known database, system, or Database Management resource.', - 'disable_autonomous_database_management_feature': 'Disables a Database Management feature for the specified Autonomous Database. Use this operation to disable the feature for a known database, system, or Database Management resource.', - 'disable_cloud_db_system_database_management': 'Disables Database Management service for all the components of the specified cloud DB system (except databases). Use this operation to disable the feature for a known database, system, or Database Management resource.', - 'disable_cloud_db_system_stack_monitoring': 'Disables Stack Monitoring for all the components of the specified cloud DB system (except databases). Use this operation to disable the feature for a known database, system, or Database Management resource.', - 'disable_cloud_exadata_infrastructure_management': 'Disables Database Management for the Exadata infrastructure specified by exadataInfrastructureId. It covers the following components: Exadata infrastructure Exadata storage grid Exadata storage server Note that Database Management will not be disabled for the VM Clusters within the Exadata infrastructure and should be disabled explicitly, if required. Use this operation to disable the feature for a known database, system, or Database Management resource.', - 'disable_database_management_feature': 'Disables a Database Management feature for the specified Oracle cloud database. Use this operation to disable the feature for a known database, system, or Database Management resource.', - 'disable_external_container_database_management_feature': 'Disables a Database Management feature for the specified external container database. Use this operation to disable the feature for a known database, system, or Database Management resource.', - 'disable_external_db_system_database_management': 'Disables Database Management service for all the components of the specified external DB system (except databases). Use this operation to disable the feature for a known database, system, or Database Management resource.', - 'disable_external_db_system_stack_monitoring': 'Disables Stack Monitoring for all the components of the specified external DB system (except databases). Use this operation to disable the feature for a known database, system, or Database Management resource.', - 'disable_external_exadata_infrastructure_management': 'Disables Database Management for the Exadata infrastructure specified by externalExadataInfrastructureId. It covers the following components: Exadata infrastructure Exadata storage grid Exadata storage server Note that Database Management will not be disabled for the DB systems within the Exadata infrastructure and should be disabled explicitly, if required. Use this operation to disable the feature for a known database, system, or Database Management resource.', - 'disable_external_non_container_database_management_feature': 'Disables a Database Management feature for the specified external non-container database. Use this operation to disable the feature for a known database, system, or Database Management resource.', - 'disable_external_pluggable_database_management_feature': 'Disables a Database Management feature for the specified external pluggable database. Use this operation to disable the feature for a known database, system, or Database Management resource.', - 'disable_high_frequency_automatic_spm_evolve_advisor_task': 'Disables the high-frequency Automatic SPM Evolve Advisor task. It is available only on Oracle Exadata Database Machine, Oracle Database Exadata Cloud Service (ExaCS) and Oracle Database Exadata Cloud@Customer (ExaCC). Use this operation to disable the feature for a known database, system, or Database Management resource.', - 'disable_pluggable_database_management_feature': 'Disables a Database Management feature for the specified Oracle cloud pluggable database. Use this operation to disable the feature for a known database, system, or Database Management resource.', - 'disable_sql_plan_baselines_usage': 'Disables the use of SQL plan baselines stored in SQL Management Base. When disabled, the optimizer does not use any SQL plan baselines. Use this operation to disable the feature for a known database, system, or Database Management resource.', - 'discover_cloud_exadata_infrastructure': 'Completes the Exadata system prechecking on the following: Verifies if the ASM connector is defined for each VM Cluster or return 400 status code with CONNECTOR_NOT_DEFINED error code. Verifies if the agents associated with ASM are valid and could be used for the Exadata storage servers or return 400 status code with INVALID_AGENT error code. Use this operation to start infrastructure discovery for the specified Database Management target.', - 'discover_external_exadata_infrastructure': 'Completes the Exadata system prechecking on the following: Verifies if the DB systems are valid RAC DB systems or return 400 status code with NON_RAC_DATABASE_SYSTEM error code. Verifies if the ASM connector defined for each DB system or return 400 status code with CONNECTOR_NOT_DEFINED error code. Use this operation to start infrastructure discovery for the specified Database Management target.', - 'enable_automatic_initial_plan_capture': 'Enables automatic initial plan capture. When enabled, the database checks whether executed SQL statements are eligible for automatic capture. It creates initial plan baselines for eligible statements. Use this operation to enable the feature for a known database, system, or Database Management resource.', - 'enable_automatic_spm_evolve_advisor_task': 'Enables the Automatic SPM Evolve Advisor task SYS_AUTO_SPM_EVOLVE_TASK for a managed database. The task runs daily in the maintenance window, evaluates alternative SQL plans from AWR and other sources, and adds better-performing plans to SQL plan baselines.', - 'enable_autonomous_database_management_feature': 'Enables a Database Management feature for the specified Autonomous Database. Use this operation to enable the feature for a known database, system, or Database Management resource.', - 'enable_cloud_db_system_database_management': 'Enables Database Management service for all the components of the specified cloud DB system (except databases). Use this operation to enable the feature for a known database, system, or Database Management resource.', - 'enable_cloud_db_system_stack_monitoring': 'Enables Stack Monitoring for all the components of the specified cloud DB system (except databases). Use this operation to enable the feature for a known database, system, or Database Management resource.', - 'enable_cloud_exadata_infrastructure_management': 'Enables Database Management for the Exadata infrastructure specified by exadataInfrastructureId. It covers the following components: Exadata infrastructure Exadata storage grid Exadata storage server Use this operation to enable the feature for a known database, system, or Database Management resource.', - 'enable_database_management_feature': 'Enables a Database Management feature for the specified cloud database. Use this operation to enable the feature for a known database, system, or Database Management resource.', - 'enable_external_container_database_management_feature': 'Enables a Database Management feature for the specified external container database. Use this operation to enable the feature for a known database, system, or Database Management resource.', - 'enable_external_db_system_database_management': 'Enables Database Management service for all the components of the specified external DB system (except databases). Use this operation to enable the feature for a known database, system, or Database Management resource.', - 'enable_external_db_system_stack_monitoring': 'Enables Stack Monitoring for all the components of the specified external DB system (except databases). Use this operation to enable the feature for a known database, system, or Database Management resource.', - 'enable_external_exadata_infrastructure_management': 'Enables Database Management for the Exadata infrastructure specified by externalExadataInfrastructureId. It covers the following components: Exadata infrastructure Exadata storage grid Exadata storage server Use this operation to enable the feature for a known database, system, or Database Management resource.', - 'enable_external_non_container_database_management_feature': 'Enables Database Management feature for the specified external non-container database. Use this operation to enable the feature for a known database, system, or Database Management resource.', - 'enable_external_pluggable_database_management_feature': 'Enables a Database Management feature for the specified external pluggable database. Use this operation to enable the feature for a known database, system, or Database Management resource.', - 'enable_high_frequency_automatic_spm_evolve_advisor_task': 'Enables the high-frequency Automatic SPM Evolve Advisor task. The high-frequency task runs every hour and runs for no longer than 30 minutes. These settings are not configurable. Use this operation to enable the feature for a known database, system, or Database Management resource.', - 'enable_pluggable_database_management_feature': 'Enables a Database Management feature for the specified Oracle cloud pluggable database. Use this operation to enable the feature for a known database, system, or Database Management resource.', - 'enable_sql_plan_baselines_usage': 'Enables the use of SQL plan baselines stored in SQL Management Base. When enabled, the optimizer uses SQL plan baselines to select plans to avoid potential performance regressions. Use this operation to enable the feature for a known database, system, or Database Management resource.', - 'generate_awr_snapshot': 'Creates an AWR snapshot for the target database. Use this operation to generate database diagnostic data for a known managed database.', - 'get_awr_db_report': 'Retrieves the AWR report for the specified database. Use this operation when generated report content is needed rather than resource inventory.', - 'get_awr_db_sql_report': 'Retrieves the SQL health check report for one SQL of the specified database. Use this operation when generated report content is needed rather than resource inventory.', - 'get_cloud_asm': 'Retrieves the details for the cloud ASM specified by cloudAsmId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_cloud_asm_configuration': 'Retrieves configuration details including disk groups for the cloud ASM specified by cloudAsmId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_cloud_asm_instance': 'Retrieves the details for the cloud ASM instance specified by cloudAsmInstanceId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_cloud_cluster': 'Retrieves the details for the cloud cluster specified by cloudClusterId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_cloud_cluster_instance': 'Retrieves the details for the cloud cluster instance specified by cloudClusterInstanceId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_cloud_db_home': 'Retrieves the details for the cloud DB home specified by cloudDbHomeId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_cloud_db_node': 'Retrieves the details for the cloud DB node specified by cloudDbNodeId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_cloud_db_system': 'Retrieves the details for the cloud DB system specified by cloudDbSystemId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_cloud_db_system_connector': 'Retrieves the details for the cloud connector specified by cloudDbSystemConnectorId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_cloud_db_system_discovery': 'Retrieves the details for the cloud DB system discovery resource specified by cloudDbSystemDiscoveryId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_cloud_exadata_infrastructure': 'Retrieves the details for the Exadata infrastructure specified by exadataInfrastructureId. It includes the VMCluster and storage grid within the Exadata infrastructure. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_cloud_exadata_storage_connector': 'Retrieves the details for the Exadata storage server connector specified by exadataStorageConnectorId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_cloud_exadata_storage_grid': 'Retrieves the details for the Exadata storage server grid specified by exadataStorageGridId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_cloud_exadata_storage_server': 'Retrieves the summary for the Exadata storage server specified by exadataStorageServerId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_cloud_iorm_plan': 'Retrieves the IORM plan from the specific Exadata storage server. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_cloud_listener': 'Retrieves the details for the cloud listener specified by cloudListenerId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_cloud_open_alert_history': 'Retrieves the open alerts from the specified Exadata storage server. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_cluster_cache_metric': 'Retrieves the metrics related to cluster cache for the Oracle Real Application Clusters (Oracle RAC) database specified by managedDatabaseId. Use this operation when metric data is needed for a known compartment, fleet, group, or database.', - 'get_database_fleet_backup_metrics': 'Retrieves the fleet of container databases (CDBs) and their backup details and metrics, in a compartment or Database Group. The databaseHostedIn query parameter must be provided to list either cloud or external databases. Either the CompartmentId or the ManagedDatabaseGroupId query parameters must be provided to retrieve the HA and backup metrics. Use this operation when metric data is needed for a known compartment, fleet, group, or database.', - 'get_database_fleet_dataguard_metrics': 'Retrieves the fleet of Oracle Data Guard-enabled container databases (CDBs) along with Data Guard metrics and standby databases, in a compartment or Database Group. Either the CompartmentId or the ManagedDatabaseGroupId query parameters must be provided to retrieve the list of databases and Data Guard metrics. Use this operation when metric data is needed for a known compartment, fleet, group, or database.', - 'get_database_fleet_ha_overview_metrics': 'Retrieves the fleet of container databases (CDBs) and their HA and backup metrics in a compartment or in a Database Group. Either the CompartmentId or the ManagedDatabaseGroupId query parameters must be provided to retrieve the HA and backup metrics. Use this operation when metric data is needed for a known compartment, fleet, group, or database.', - 'get_database_fleet_health_metrics': 'Retrieves the health metrics for a fleet of databases in a compartment or in a Managed Database Group. Either the CompartmentId or the ManagedDatabaseGroupId query parameters must be provided to retrieve the health metrics. Use this operation when metric data is needed for a known compartment, fleet, group, or database.', - 'get_database_ha_backup_details': 'Retrieves HA and backup details with metrics and backup history for a single database. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_database_home_metrics': 'Retrieves a summary of the activity and resource usage metrics like DB Time, CPU, User I/O, Wait, Storage, and Memory for a Managed Database. Use this operation when metric data is needed for a known compartment, fleet, group, or database.', - 'get_dataguard_performance_metrics': 'Retrieves a historical summary of the Database Guard performance metrics for Managed Databases. If the peerDatabaseCompartmentId is specified, then the metrics are only retrieved from the specified compartment. If the peerDatabaseCompartmentId is not specified, then the metrics are retrieved from the compartment of the Managed Database specified by the ManagedDatabaseId. Use this operation when metric data is needed for a known compartment, fleet, group, or database.', - 'get_db_management_private_endpoint': 'Retrieves the details of a specific Database Management private endpoint. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_exadata_infrastructure_fleet_health_metrics': 'Retrieves the health metrics for a fleet of Exadata infrastructure in a compartment. The CompartmentId query parameters must be provided to retrieve the health metrics. Use this operation when metric data is needed for a known compartment, fleet, group, or database.', - 'get_execution_plan_stats_comparision': 'Retrieves a comparison of the existing SQL execution plan and a new plan. A SQL tuning task may suggest a new execution plan for a SQL, and this API retrieves the comparison report of the statistics of the two plans. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_external_asm': 'Retrieves the details for the external ASM specified by externalAsmId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_external_asm_configuration': 'Retrieves configuration details including disk groups for the external ASM specified by externalAsmId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_external_asm_instance': 'Retrieves the details for the external ASM instance specified by externalAsmInstanceId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_external_cluster': 'Retrieves the details for the external cluster specified by externalClusterId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_external_cluster_instance': 'Retrieves the details for the external cluster instance specified by externalClusterInstanceId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_external_db_home': 'Retrieves the details for the external DB home specified by externalDbHomeId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_external_db_node': 'Retrieves the details for the external DB node specified by externalDbNodeId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_external_db_system': 'Retrieves the details for the external DB system specified by externalDbSystemId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_external_db_system_connector': 'Retrieves the details for the external connector specified by externalDbSystemConnectorId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_external_db_system_discovery': 'Retrieves the details for the external DB system discovery resource specified by externalDbSystemDiscoveryId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_external_exadata_infrastructure': 'Retrieves the details for the Exadata infrastructure specified by externalExadataInfrastructureId. It includes the DB systems and storage grid within the Exadata infrastructure. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_external_exadata_storage_connector': 'Retrieves the details for the Exadata storage server connector specified by exadataStorageConnectorId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_external_exadata_storage_grid': 'Retrieves the details for the Exadata storage server grid specified by exadataStorageGridId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_external_exadata_storage_server': 'Retrieves the summary for the Exadata storage server specified by exadataStorageServerId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_external_listener': 'Retrieves the details for the external listener specified by externalListenerId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_iorm_plan': 'Retrieves the IORM plan from the specific Exadata storage server. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_job': 'Retrieves the details of the job specified by jobId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_job_execution': 'Retrieves the details of the job execution specified by jobExecutionId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_job_run': 'Retrieves the details of the job run specified by jobRunId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_managed_database': 'Retrieves the details of the Managed Database specified by managedDatabaseId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_managed_database_group': 'Retrieves the details of the Managed Database Group specified by managedDatabaseGroupId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_named_credential': 'Retrieves the details for the named credential specified by namedCredentialId. Use this operation to inspect credential metadata, not secret values.', - 'get_open_alert_history': 'Retrieves the open alerts from the specified Exadata storage server. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_optimizer_statistics_advisor_execution': 'Retrieves a comprehensive report of the Optimizer Statistics Advisor execution, which includes details of the Managed Database, findings, recommendations, rationale, and examples. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_optimizer_statistics_advisor_execution_script': 'Retrieves the Oracle system-generated script for the specified Optimizer Statistics Advisor execution. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_optimizer_statistics_collection_operation': 'Retrieves a detailed report of the Optimizer Statistics Collection operation for the specified Managed Database. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_pdb_metrics': 'Retrieves a summary of the resource usage metrics such as CPU, User I/O, and Storage for each PDB within a specific CDB. If comparmentId is specified, then the metrics for each PDB (within the CDB) in the specified compartment are retrieved. If compartmentId is not specified, then the metrics for all the PDBs within the CDB are retrieved. Use this operation when metric data is needed for a known compartment, fleet, group, or database.', - 'get_peer_database_metrics': 'Retrieves comparative Data Guard performance metrics for peer Managed Databases over a requested time range. Use this operation to compare baseline and target values such as apply lag, transport lag, redo generation, and role-specific health indicators.', - 'get_preferred_credential': 'Retrieves the preferred credential details for a Managed Database based on credentialName. Use this operation to inspect credential metadata, not secret values.', - 'get_sql_execution_plan': 'Retrieves a SQL execution plan for the SQL being tuned. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_sql_plan_baseline': 'Retrieves the SQL plan baseline details for the specified planName. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_sql_plan_baseline_configuration': 'Retrieves the configuration details of SQL plan baselines for the specified Managed Database. The details include the settings for the capture and use of SQL plan baselines, SPM Evolve Advisor task, and SQL Management Base. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_sql_tuning_advisor_task_summary_report': 'Retrieves the summary report for the specified SQL Tuning Advisor task. Use this operation when generated report content is needed rather than resource inventory.', - 'get_tablespace': 'Retrieves the details of the tablespace specified by tablespaceName within the Managed Database specified by managedDatabaseId. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_top_sql_cpu_activity': 'Retrieves the SQL IDs with the top CPU activity from the Exadata storage server. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_user': 'Retrieves the details of the user specified by managedDatabaseId and userName. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'get_work_request': 'Retrieves the status of the work request with the given Work Request ID. Use this operation when the target identifier is already known; use a list operation to discover candidates.', - 'list_alert_logs': 'Lists the alert logs for the specified Managed Database. Use this operation to inspect diagnostic log entries before narrowing the database or time window.', - 'list_asm_properties': 'Retrieves the list of ASM properties for the specified managedDatabaseId. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_associated_databases': 'Retrieves the list of databases using a specific Database Management private endpoint. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_attention_logs': 'Lists the attention logs for the specified Managed Database. Use this operation to inspect diagnostic log entries before narrowing the database or time window.', - 'list_awr_db_snapshots': 'Lists AWR snapshots for the specified database in the AWR. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_awr_dbs': 'Retrieves the list of databases and their snapshot summary details available in the AWR of the specified Managed Database. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_cloud_asm_disk_groups': 'Lists ASM disk groups for the cloud ASM specified by cloudAsmId. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_cloud_asm_instances': 'Lists the ASM instances in the specified cloud ASM. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_cloud_asm_users': 'Lists ASM users for the cloud ASM specified by cloudAsmId. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_cloud_asms': 'Lists the ASMs in the specified cloud DB system. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_cloud_cluster_instances': 'Lists the cluster instances in the specified cloud cluster. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_cloud_clusters': 'Lists the clusters in the specified cloud DB system. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_cloud_databases': 'Lists the cloud databases in the specified compartment or in the specified DB system. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_cloud_db_homes': 'Lists the DB homes in the specified cloud DB system. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_cloud_db_nodes': 'Lists the cloud DB nodes in the specified cloud DB system. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_cloud_db_system_connectors': 'Lists the cloud connectors in the specified cloud DB system. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_cloud_db_system_discoveries': 'Lists the cloud DB system discovery resources in the specified compartment. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_cloud_db_systems': 'Lists the cloud DB systems in the specified compartment. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_cloud_exadata_infrastructures': 'Lists the Exadata infrastructure resources in the specified compartment. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_cloud_exadata_storage_connectors': 'Lists the Exadata storage server connectors for the specified Exadata infrastructure. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_cloud_exadata_storage_servers': 'Lists the Exadata storage servers for the specified Exadata infrastructure. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_cloud_listener_services': 'Lists the database services registered with the specified cloud listener for the specified Managed Database. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_cloud_listeners': 'Lists the listeners in the specified cloud DB system. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_consumer_group_privileges': 'Retrieves the list of consumer group privileges granted to a specific user. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_cursor_cache_statements': 'Lists the SQL statements from shared SQL area, also called the cursor cache. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_data_access_containers': "Retrieves the list of containers for a specific user. This is only applicable if ALL_CONTAINERS !='Y'. Use this operation to discover identifiers and inventory before calling get, update, or action operations.", - 'list_database_parameters': 'Retrieves the list of database parameters for the specified Managed Database. The parameters are listed in alphabetical order, along with their current values. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_db_management_private_endpoints': 'Retrieves a list of Database Management private endpoints. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_external_asm_disk_groups': 'Lists ASM disk groups for the external ASM specified by externalAsmId. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_external_asm_instances': 'Lists the ASM instances in the specified external ASM. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_external_asm_users': 'Lists ASM users for the external ASM specified by externalAsmId. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_external_asms': 'Lists the ASMs in the specified external DB system. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_external_cluster_instances': 'Lists the cluster instances in the specified external cluster. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_external_clusters': 'Lists the clusters in the specified external DB system. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_external_databases': 'Lists the external databases in the specified compartment or in the specified DB system. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_external_db_homes': 'Lists the DB homes in the specified external DB system. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_external_db_nodes': 'Lists the external DB nodes in the specified external DB system. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_external_db_system_connectors': 'Lists the external connectors in the specified external DB system. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_external_db_system_discoveries': 'Lists the external DB system discovery resources in the specified compartment. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_external_db_systems': 'Lists the external DB systems in the specified compartment. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_external_exadata_infrastructures': 'Lists the Exadata infrastructure resources in the specified compartment. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_external_exadata_storage_connectors': 'Lists the Exadata storage server connectors for the specified Exadata infrastructure. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_external_exadata_storage_servers': 'Lists the Exadata storage servers for the specified Exadata infrastructure. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_external_listener_services': 'Lists the database services registered with the specified external listener for the specified Managed Database. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_external_listeners': 'Lists the listeners in the specified external DB system. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_job_executions': 'Retrieves the job execution for a specific ID or the list of job executions for a job, job run, Managed Database or Managed Database Group in a specific compartment. Only one of the parameters, ID, jobId, jobRunId, managedDatabaseId or managedDatabaseGroupId should be provided. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_job_runs': 'Retrieves the job run for a specific ID or the list of job runs for a job, Managed Database or Managed Database Group in a specific compartment. Only one of the parameters, ID, jobId, managedDatabaseId, or managedDatabaseGroupId should be provided. If none of these parameters is provided, all the job runs in the compartment are listed. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_jobs': 'Retrieves the job for a specific ID or the list of jobs for a Managed Database or Managed Database Group in a specific compartment. Only one of the parameters, ID, managedDatabaseId or managedDatabaseGroupId, should be provided. If none of these parameters is provided, all the jobs in the compartment are listed. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_managed_database_groups': 'Retrieves the Managed Database Group for a specific ID or the list of Managed Database Groups in a specific compartment. Managed Database Groups can also be filtered based on the name parameter. Only one of the parameters, ID or name should be provided. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_managed_databases': 'Retrieves the Managed Database for a specific ID or the list of Managed Databases in a specific compartment. Managed Databases can be filtered based on the name parameter. Only one of the parameters, ID or name should be provided. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_named_credentials': 'Retrieves a single named credential specified by the name or all the named credentials in a specific compartment. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_object_privileges': 'Retrieves the list of object privileges granted to a specific user. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_optimizer_statistics_advisor_executions': 'Lists the details of the Optimizer Statistics Advisor task executions, such as their duration, and the number of findings, if any. Optionally, you can specify a date-time range (of seven days) to obtain the list of executions that fall within the specified time range. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_optimizer_statistics_collection_aggregations': 'Retrieves a list of the optimizer statistics collection operations per hour, grouped by task or object status for the specified Managed Database. You must specify a value for GroupByQueryParam to determine whether the data should be grouped by task status or task object status. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_optimizer_statistics_collection_operations': 'Lists the Optimizer Statistics Collection (Auto and Manual) task operation summary for the specified Managed Database. The summary includes the details of each operation and the number of tasks grouped by status: Completed, In Progress, Failed, and so on. Optionally, you can specify a date-time range (of seven days) to obtain the list of operations that fall within the specified time. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_preferred_credentials': 'Retrieves the list of preferred credentials for a given Managed Database. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_proxied_for_users': 'Retrieves the list of users on whose behalf the current user acts as proxy. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_proxy_users': 'Retrieves the list of proxy users for the current user. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_roles': 'Retrieves the list of roles granted to a specific user. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_sql_plan_baseline_jobs': 'Lists the database jobs used for loading SQL plan baselines in the specified Managed Database. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_sql_plan_baselines': 'Lists the SQL plan baselines for the specified Managed Database. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_sql_tuning_advisor_task_findings': 'Retrieves an array of the details of the findings that match specific filters. Use this operation to discover SQL tuning tasks, findings, recommendations, or tuning sets before selecting a specific item.', - 'list_sql_tuning_advisor_task_recommendations': 'Retrieves the findings and possible actions for a given object in a SQL tuning task. The task ID and object ID are used to retrieve the findings and recommendations. Use this operation to discover SQL tuning tasks, findings, recommendations, or tuning sets before selecting a specific item.', - 'list_sql_tuning_advisor_tasks': 'Lists the SQL Tuning Advisor tasks for the specified Managed Database. Use this operation to discover SQL tuning tasks, findings, recommendations, or tuning sets before selecting a specific item.', - 'list_sql_tuning_sets': 'Lists the SQL tuning sets for the specified Managed Database. Use this operation to discover SQL tuning tasks, findings, recommendations, or tuning sets before selecting a specific item.', - 'list_system_privileges': 'Retrieves the list of system privileges granted to a specific user. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_table_statistics': 'Lists the database table statistics grouped by different statuses such as Not Stale Stats, Stale Stats, and No Stats. This also includes the percentage of each status. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_tablespaces': 'Retrieves the list of tablespaces for the specified managedDatabaseId. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_users': 'Retrieves the list of users for the specified managedDatabaseId. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_work_request_errors': 'Returns a paginated list of errors for a given work request. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'list_work_request_logs': 'Returns a paginated list of logs for a given work request. Use this operation to inspect diagnostic log entries before narrowing the database or time window.', - 'list_work_requests': 'Lists the work requests in a specific compartment. Use this operation to discover identifiers and inventory before calling get, update, or action operations.', - 'summarize_alert_log_counts': 'Retrieves the counts of alert logs for the specified Managed Database. Use this operation for aggregate diagnostic log counts instead of individual log entries.', - 'summarize_attention_log_counts': 'Retrieves the counts of attention logs for the specified Managed Database. Use this operation for aggregate diagnostic log counts instead of individual log entries.', - 'summarize_awr_db_cpu_usages': 'Summarizes the AWR CPU resource limits and metrics for the specified database in AWR. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', - 'summarize_awr_db_metrics': 'Summarizes the metric samples for the specified database in the AWR. The metric samples are summarized based on the Time dimension for each metric. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', - 'summarize_awr_db_parameter_changes': 'Summarizes the database parameter change history for one database parameter of the specified database in AWR. One change history record contains the previous value, the changed value, and the corresponding time range. If the database parameter value was changed multiple times within the time range, then multiple change history records are created for the same parameter. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', - 'summarize_awr_db_parameters': 'Summarizes the database parameter history for the specified database in AWR. This includes the list of database parameters, with information on whether the parameter values were modified within the query time range. Note that each database parameter is only listed once. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', - 'summarize_awr_db_snapshot_ranges': 'Summarizes the AWR snapshot ranges that contain continuous snapshots, for the specified Managed Database. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', - 'summarize_awr_db_sysstats': 'Summarizes the AWR SYSSTAT sample data for the specified database in AWR. The statistical data is summarized based on the Time dimension for each statistic. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', - 'summarize_awr_db_top_wait_events': 'Summarizes the AWR top wait events. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', - 'summarize_awr_db_wait_event_buckets': 'Summarizes AWR wait event data into value buckets and frequency, for the specified database in the AWR. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', - 'summarize_awr_db_wait_events': 'Summarizes the AWR wait event sample data for the specified database in the AWR. The event data is summarized based on the Time dimension for each event. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', - 'summarize_cloud_asm_metrics': 'Retrieves metrics for the cloud ASM specified by cloudAsmId. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', - 'summarize_cloud_cluster_metrics': 'Retrieves metrics for the cloud cluster specified by cloudClusterId. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', - 'summarize_cloud_db_node_metrics': 'Retrieves metrics for the cloud DB node specified by cloudDbNodeId. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', - 'summarize_cloud_db_system_availability_metrics': 'Retrieves availability metrics for the components present in the cloud DB system specified by cloudDbSystemId. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', - 'summarize_cloud_listener_metrics': 'Retrieves metrics for the cloud listener specified by cloudListenerId. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', - 'summarize_external_asm_metrics': 'Retrieves metrics for the external ASM specified by externalAsmId. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', - 'summarize_external_cluster_metrics': 'Retrieves metrics for the external cluster specified by externalClusterId. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', - 'summarize_external_db_node_metrics': 'Retrieves metrics for the external DB node specified by externalDbNodeId. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', - 'summarize_external_db_system_availability_metrics': 'Retrieves availability metrics for the components present in the external DB system specified by externalDbSystemId. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', - 'summarize_external_listener_metrics': 'Retrieves metrics for the external listener specified by externalListenerId. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', - 'summarize_job_executions_statuses': 'Retrieves the number of job executions grouped by status for a job, Managed Database, or Database Group in a specific compartment. Only one of the parameters, jobId, managedDatabaseId, or managedDatabaseGroupId should be provided. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', - 'summarize_managed_database_availability_metrics': 'Retrieves the availability metrics related to managed database for the Oracle database specified by managedDatabaseId. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', - 'summarize_sql_plan_baselines': 'Retrieves the number of SQL plan baselines aggregated by their attributes. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', - 'summarize_sql_plan_baselines_by_last_execution': 'Retrieves the number of SQL plan baselines aggregated by the age of their last execution in weeks. Use this operation for aggregate status, count, performance, or availability summaries rather than resource metadata.', - 'update_cloud_asm': 'Updates the cloud ASM specified by cloudAsmId. Use this operation after confirming the target identifier and desired attributes.', - 'update_cloud_asm_instance': 'Updates the cloud ASM instance specified by cloudAsmInstanceId. Use this operation after confirming the target identifier and desired attributes.', - 'update_cloud_cluster': 'Updates the cloud cluster specified by cloudClusterId. Use this operation after confirming the target identifier and desired attributes.', - 'update_cloud_cluster_instance': 'Updates the cloud cluster instance specified by cloudClusterInstanceId. Use this operation after confirming the target identifier and desired attributes.', - 'update_cloud_db_home': 'Updates the cloud DB home specified by cloudDbHomeId. Use this operation after confirming the target identifier and desired attributes.', - 'update_cloud_db_node': 'Updates the cloud DB node specified by cloudDbNodeId. Use this operation after confirming the target identifier and desired attributes.', - 'update_cloud_db_system': 'Updates the cloud DB system specified by cloudDbSystemId. Use this operation after confirming the target identifier and desired attributes.', - 'update_cloud_db_system_connector': 'Updates the cloud connector specified by cloudDbSystemConnectorId. Use this operation after confirming the target identifier and desired attributes.', - 'update_cloud_db_system_discovery': 'Updates the cloud DB system discovery specified by cloudDbSystemDiscoveryId. Use this operation after confirming the target identifier and desired attributes.', - 'update_cloud_exadata_infrastructure': 'Updates the details for the Exadata infrastructure specified by exadataInfrastructureId. Use this operation after confirming the target identifier and desired attributes.', - 'update_cloud_exadata_storage_connector': 'Updates the Exadata storage server connector specified by exadataStorageConnectorId. Use this operation after confirming the target identifier and desired attributes.', - 'update_cloud_exadata_storage_grid': 'Updates the Exadata storage server grid specified by exadataStorageGridId. Use this operation after confirming the target identifier and desired attributes.', - 'update_cloud_exadata_storage_server': 'Updates the Exadata storage server specified by exadataStorageServerId. Use this operation after confirming the target identifier and desired attributes.', - 'update_cloud_listener': 'Updates the cloud listener specified by cloudListenerId. Use this operation after confirming the target identifier and desired attributes.', - 'update_db_management_private_endpoint': 'Updates one or more attributes of a specific Database Management private endpoint. Use this operation after confirming the target identifier and desired attributes.', - 'update_external_asm': 'Updates the external ASM specified by externalAsmId. Use this operation after confirming the target identifier and desired attributes.', - 'update_external_asm_instance': 'Updates the external ASM instance specified by externalAsmInstanceId. Use this operation after confirming the target identifier and desired attributes.', - 'update_external_cluster': 'Updates the external cluster specified by externalClusterId. Use this operation after confirming the target identifier and desired attributes.', - 'update_external_cluster_instance': 'Updates the external cluster instance specified by externalClusterInstanceId. Use this operation after confirming the target identifier and desired attributes.', - 'update_external_db_home': 'Updates the external DB home specified by externalDbHomeId. Use this operation after confirming the target identifier and desired attributes.', - 'update_external_db_node': 'Updates the external DB node specified by externalDbNodeId. Use this operation after confirming the target identifier and desired attributes.', - 'update_external_db_system': 'Updates the external DB system specified by externalDbSystemId. Use this operation after confirming the target identifier and desired attributes.', - 'update_external_db_system_connector': 'Updates the external connector specified by externalDbSystemConnectorId. Use this operation after confirming the target identifier and desired attributes.', - 'update_external_db_system_discovery': 'Updates the external DB system discovery specified by externalDbSystemDiscoveryId. Use this operation after confirming the target identifier and desired attributes.', - 'update_external_exadata_infrastructure': 'Updates the details for the Exadata infrastructure specified by externalExadataInfrastructureId. Use this operation after confirming the target identifier and desired attributes.', - 'update_external_exadata_storage_connector': 'Updates the Exadata storage server connector specified by exadataStorageConnectorId. Use this operation after confirming the target identifier and desired attributes.', - 'update_external_exadata_storage_grid': 'Updates the Exadata storage server grid specified by exadataStorageGridId. Use this operation after confirming the target identifier and desired attributes.', - 'update_external_exadata_storage_server': 'Updates the Exadata storage server specified by exadataStorageServerId. Use this operation after confirming the target identifier and desired attributes.', - 'update_external_listener': 'Updates the external listener specified by externalListenerId. Use this operation after confirming the target identifier and desired attributes.', - 'update_job': 'Updates the details of the recurring scheduled job specified by jobId. Note that non-recurring (one time) jobs cannot be updated. Use this operation after confirming the target identifier and desired attributes.', - 'update_managed_database': 'Updates the Managed Database specified by managedDatabaseId. Use this operation after confirming the target identifier and desired attributes.', - 'update_managed_database_group': 'Updates the Managed Database Group specified by managedDatabaseGroupId. Use this operation after confirming the target identifier and desired attributes.', - 'update_named_credential': 'Updates the named credential specified by namedCredentialId. Use this operation after confirming the target identifier and desired attributes.', - 'update_preferred_credential': 'Updates the preferred credential based on the credentialName. Use this operation after confirming the target identifier and desired attributes.', - 'update_tablespace': 'Updates the attributes of the tablespace specified by tablespaceName within the Managed Database specified by managedDatabaseId. Use this operation after confirming the target identifier and desired attributes.', -} diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/models.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/models.py deleted file mode 100644 index c5c3ba76..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/models.py +++ /dev/null @@ -1,8535 +0,0 @@ -""" -Copyright (c) 2026, Oracle and/or its affiliates. -Licensed under the Universal Permissive License v1.0 as shown at - -""" - -from __future__ import annotations - -from datetime import date, datetime -from typing import Any, Literal - -from pydantic import BaseModel, ConfigDict, Field - -from oracle.oci_oracle_db_observability.v1.conversion import to_plain_data - - -class DbmBaseModel(BaseModel): - """Base model for OCI DBM MCP schemas.""" - - model_config = ConfigDict( - alias_generator=None, - arbitrary_types_allowed=True, - extra="allow", - populate_by_name=True,) - - @classmethod - def from_oci(cls, value: Any): - return cls.model_validate(to_plain_data(value)) - - -class DbmRequestModel(DbmBaseModel): - """Base model for OCI DBM request schemas.""" - - model_config = ConfigDict( - alias_generator=None, - arbitrary_types_allowed=True, - extra="forbid", - populate_by_name=True,) - - -CompartmentAccessLevel = Literal["ANY", "ACCESSIBLE"] -CompartmentLifecycleState = Literal["CREATING", "ACTIVE", "INACTIVE", "DELETING", "DELETED", "UNKNOWN_ENUM_VALUE"] - - -class Compartment(DbmBaseModel): - """OCI Identity compartment metadata.""" - - id: str = Field(..., description="The OCID of the compartment.") - compartment_id: str | None = Field(None, alias="compartmentId", description="The OCID of the parent compartment.") - name: str | None = Field(None, description="The compartment name.") - description: str | None = Field(None, description="The compartment description.") - lifecycle_state: CompartmentLifecycleState | None = Field(None, alias="lifecycleState", description="The current lifecycle state of the compartment.") - time_created: datetime | None = Field(None, alias="timeCreated", description="The date and time the compartment was created.") - inactive_status: int | None = Field(None, alias="inactiveStatus", ge=0, description="The status of the compartment if it is inactive.") - freeform_tags: dict[str, str] | None = Field(None, alias="freeformTags", description="Free-form tags returned for the compartment.") - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias="definedTags", description="Defined tags returned for the compartment.") - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias="systemTags", description="System tags returned for the compartment.") - - -class CompartmentCollection(DbmBaseModel): - """Collection of OCI Identity compartments.""" - - items: list[Compartment] = Field(..., description="Compartments returned by the list request.") - count: int = Field(..., ge=0, description="Number of compartments returned.") - - -class ActivityTimeSeriesMetrics(DbmBaseModel): - """The response object representing activityMetric details for a specific Managed Database at a particular time.""" - - timestamp: datetime | None = Field(None, description='Gets the timestamp of this ActivityTimeSeriesMetrics.\nThe date and time the activity metric was created.') - cpu_time: MetricDataPoint | None = Field(None, alias='cpuTime', description='Gets the cpu_time of this ActivityTimeSeriesMetrics.') - wait_time: MetricDataPoint | None = Field(None, alias='waitTime', description='Gets the wait_time of this ActivityTimeSeriesMetrics.') - user_io_time: MetricDataPoint | None = Field(None, alias='userIoTime', description='Gets the user_io_time of this ActivityTimeSeriesMetrics.') - cpu_count: MetricDataPoint | None = Field(None, ge=0, alias='cpuCount', description='Gets the cpu_count of this ActivityTimeSeriesMetrics.') - cluster: MetricDataPoint | None = Field(None, description='Gets the cluster of this ActivityTimeSeriesMetrics.') - - -class AddDataFilesDetails(DbmRequestModel): - """The details required to add data files or temp files to the tablespace. -lease provide either credentialDetails or databaseCredential. It's recommended to provide databaseCredential""" - - credential_details: TablespaceAdminCredentialDetails | None = Field(None, alias='credentialDetails', description='Gets the credential_details of this AddDataFilesDetails.') - database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this AddDataFilesDetails.') - file_type: Literal['DATAFILE', 'TEMPFILE'] = Field(..., alias='fileType', description='**[Required]** Gets the file_type of this AddDataFilesDetails.\nSpecifies whether the file is a data file or temp file.\n\nAllowed values for this property are: "DATAFILE", "TEMPFILE"') - data_files: list[str] | None = Field(None, alias='dataFiles', description='Gets the data_files of this AddDataFilesDetails.\nThe list of data files or temp files added to the tablespace.') - file_count: int | None = Field(None, ge=0, alias='fileCount', description='Gets the file_count of this AddDataFilesDetails.\nThe number of data files or temp files to be added for the tablespace. This is for Oracle Managed Files only.') - file_size: TablespaceStorageSize | None = Field(None, alias='fileSize', description='Gets the file_size of this AddDataFilesDetails.\nThe size of each data file or temp file.') - is_reusable: bool | None = Field(None, alias='isReusable', description='Gets the is_reusable of this AddDataFilesDetails.\nSpecifies whether Oracle can reuse the data file or temp file. Reuse is only allowed when the file name is provided.') - is_auto_extensible: bool | None = Field(None, alias='isAutoExtensible', description='Gets the is_auto_extensible of this AddDataFilesDetails.\nSpecifies whether the data file or temp file can be extended automatically.') - auto_extend_next_size: TablespaceStorageSize | None = Field(None, alias='autoExtendNextSize', description='Gets the auto_extend_next_size of this AddDataFilesDetails.\nThe size of the next increment of disk space to be allocated automatically when more extents are required.') - auto_extend_max_size: TablespaceStorageSize | None = Field(None, alias='autoExtendMaxSize', description='Gets the auto_extend_max_size of this AddDataFilesDetails.\nThe maximum disk space allowed for automatic extension of the data files or temp files.') - is_max_size_unlimited: bool | None = Field(None, alias='isMaxSizeUnlimited', description='Gets the is_max_size_unlimited of this AddDataFilesDetails.\nSpecifies whether the disk space of the data file or temp file can be limited.') - - -class AddManagedDatabaseToManagedDatabaseGroupDetails(DbmRequestModel): - """The Managed Database details required to add it to a Managed Database Group.""" - - managed_database_id: str = Field(..., alias='managedDatabaseId', description='**[Required]** Gets the managed_database_id of this AddManagedDatabaseToManagedDatabaseGroupDetails. The OCID of the Managed Database.') - - -class AddmTaskSummary(DbmBaseModel): - """The object containing the ADDM task metadata.""" - - task_name: str | None = Field(None, alias='taskName', description='Gets the task_name of this AddmTaskSummary.\nThe name of the ADDM task.') - task_id: int = Field(..., alias='taskId', description='**[Required]** Gets the task_id of this AddmTaskSummary.\nThe ID number of the ADDM task.') - description: str | None = Field(None, description='Gets the description of this AddmTaskSummary.\nThe description of the ADDM task.') - db_user: str | None = Field(None, alias='dbUser', description='Gets the db_user of this AddmTaskSummary.\nThe database user who owns the ADDM task.') - status: Literal['INITIAL', 'EXECUTING', 'INTERRUPTED', 'COMPLETED', 'ERROR', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this AddmTaskSummary.\nThe status of the ADDM task.\n\nAllowed values for this property are: "INITIAL", "EXECUTING", "INTERRUPTED", "COMPLETED", "ERROR", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this AddmTaskSummary.\nThe creation date of the ADDM task.') - how_created: Literal['AUTO', 'MANUAL', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='howCreated', description='Gets the how_created of this AddmTaskSummary.\nA description of how the task was created.\n\nAllowed values for this property are: "AUTO", "MANUAL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - start_snapshot_time: datetime | None = Field(None, alias='startSnapshotTime', description='Gets the start_snapshot_time of this AddmTaskSummary.\nThe timestamp of the beginning AWR snapshot used in the ADDM task as defined by date-time RFC3339 format.') - end_snapshot_time: datetime | None = Field(None, alias='endSnapshotTime', description='Gets the end_snapshot_time of this AddmTaskSummary.\nThe timestamp of the ending AWR snapshot used in the ADDM task as defined by date-time RFC3339 format.') - begin_snapshot_id: int | None = Field(None, alias='beginSnapshotId', description='Gets the begin_snapshot_id of this AddmTaskSummary.\nThe ID number of the beginning AWR snapshot.') - end_snapshot_id: int | None = Field(None, alias='endSnapshotId', description='Gets the end_snapshot_id of this AddmTaskSummary.\nThe ID number of the ending AWR snapshot.') - findings: int | None = Field(None, description='Gets the findings of this AddmTaskSummary.\nThe number of ADDM findings.') - - -class AddmTasksCollection(DbmBaseModel): - """The list of ADDM task metadata.""" - - items: list[AddmTaskSummary] = Field(..., description='**[Required]** Gets the items of this AddmTasksCollection.\nThe list of ADDM task metadata.') - managed_database_id: str = Field(..., alias='managedDatabaseId', description='**[Required]** Gets the managed_database_id of this AddmTasksCollection. The OCID of the Managed Database.') - - -class AdvisorRule(DbmBaseModel): - """The details of the Optimizer Statistics Advisor rule.""" - - name: str = Field(..., description='**[Required]** Gets the name of this AdvisorRule.\nThe name of the rule.') - description: str = Field(..., description='**[Required]** Gets the description of this AdvisorRule.\nThe description of the rule.') - findings: list[RuleFinding] = Field(..., description='**[Required]** Gets the findings of this AdvisorRule.\nThe list of findings for the rule.') - - -class AlertLogCollection(DbmBaseModel): - """The list of alert logs.""" - - managed_database_id: str = Field(..., alias='managedDatabaseId', description='**[Required]** Gets the managed_database_id of this AlertLogCollection. The OCID of the Managed Database.') - items: list[AlertLogSummary] = Field(..., description='**[Required]** Gets the items of this AlertLogCollection.\nAn array of the alert logs.') - - -class AlertLogCountSummary(DbmBaseModel): - """The details for one alert log count entry.""" - - category: Literal['UNKNOWN', 'INCIDENT_ERROR', 'ERROR', 'WARNING', 'NOTIFICATION', 'TRACE', 'CRITICAL', 'SEVERE', 'IMPORTANT', 'NORMAL', 'OTHER', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the category of this AlertLogCountSummary.\nThe category of different alert logs.\n\nAllowed values for this property are: "UNKNOWN", "INCIDENT_ERROR", "ERROR", "WARNING", "NOTIFICATION", "TRACE", "CRITICAL", "SEVERE", "IMPORTANT", "NORMAL", "OTHER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - count: int = Field(..., ge=0, description='**[Required]** Gets the count of this AlertLogCountSummary.\nThe count of alert logs with specific category.') - - -class AlertLogCountsCollection(DbmBaseModel): - """The collection of the counts of different level or type of alert logs.""" - - managed_database_id: str = Field(..., alias='managedDatabaseId', description='**[Required]** Gets the managed_database_id of this AlertLogCountsCollection. The OCID of the Managed Database.') - items: list[AlertLogCountSummary] = Field(..., description='**[Required]** Gets the items of this AlertLogCountsCollection.\nAn array of the counts of different urgency or type of alert logs.') - - -class AlertLogSummary(DbmBaseModel): - """The detail for one alert log entry.""" - - message_level: Literal['CRITICAL', 'SEVERE', 'IMPORTANT', 'NORMAL', 'OTHER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='messageLevel', description='**[Required]** Gets the message_level of this AlertLogSummary.\nThe level of the alert log.\n\nAllowed values for this property are: "CRITICAL", "SEVERE", "IMPORTANT", "NORMAL", "OTHER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - message_type: Literal['UNKNOWN', 'INCIDENT_ERROR', 'ERROR', 'WARNING', 'NOTIFICATION', 'TRACE', 'OTHER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='messageType', description='**[Required]** Gets the message_type of this AlertLogSummary.\nThe type of alert log message.\n\nAllowed values for this property are: "UNKNOWN", "INCIDENT_ERROR", "ERROR", "WARNING", "NOTIFICATION", "TRACE", "OTHER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - message_content: str | None = Field(None, alias='messageContent', description='Gets the message_content of this AlertLogSummary.\nThe contents of the alert log message.') - timestamp: datetime | None = Field(None, description='Gets the timestamp of this AlertLogSummary.\nThe date and time the alert log was created.') - supplemental_detail: str | None = Field(None, alias='supplementalDetail', description='Gets the supplemental_detail of this AlertLogSummary.\nThe supplemental details of the alert log.') - file_location: str | None = Field(None, alias='fileLocation', description='Gets the file_location of this AlertLogSummary.\nThe alert log file location.') - - -class AllowedParameterValue(DbmBaseModel): - """A valid value for a database parameter.""" - - ordinal: float | None = Field(None, description='Gets the ordinal of this AllowedParameterValue.\nThe ordinal number in the list (1-based).') - value: str | None = Field(None, description='Gets the value of this AllowedParameterValue.\nThe parameter value at ordinal.') - is_default: bool | None = Field(None, alias='isDefault', description='Gets the is_default of this AllowedParameterValue.\nIndicates whether the given ordinal value is the default value for the parameter.') - - -class AsmConnectionCredentailsByName(DbmBaseModel): - """The existing named credential used to connect to the ASM instance.""" - - credential_type: Literal['NAME_REFERENCE', 'DETAILS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='credentialType', description='Gets the credential_type of this AsmConnectionCredentials.\nThe type of credential used to connect to the ASM instance.\n\nAllowed values for this property are: "NAME_REFERENCE", "DETAILS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - credential_name: str = Field(..., alias='credentialName', description='**[Required]** Gets the credential_name of this AsmConnectionCredentailsByName.\nThe name of the credential information that used to connect to the DB system resource.\nThe name should be in "x.y" format, where the length of "x" has a maximum of 64 characters,\nand length of "y" has a maximum of 199 characters. The name strings can contain letters,\nnumbers and the underscore character only. Other characters are not valid, except for\nthe "." character that separates the "x" and "y" portions of the name.\n*IMPORTANT* - The name must be unique within the OCI region the credential is being created in.\nIf you specify a name that duplicates the name of another credential within the same OCI region,\nyou may overwrite or corrupt the credential that is already using the name.\n\nFor example: inventorydb.abc112233445566778899') - - -class AsmConnectionCredentials(DbmBaseModel): - """The credentials used to connect to the ASM instance. Currently only the `DETAILS` type -is supported for creating MACS connector credentials.""" - - credential_type: Literal['NAME_REFERENCE', 'DETAILS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='credentialType', description='Gets the credential_type of this AsmConnectionCredentials.\nThe type of credential used to connect to the ASM instance.\n\nAllowed values for this property are: "NAME_REFERENCE", "DETAILS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class AsmConnectionCredentialsByDetails(DbmRequestModel): - """The credentials used to connect to the ASM instance.""" - - credential_type: Literal['NAME_REFERENCE', 'DETAILS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='credentialType', description='Gets the credential_type of this AsmConnectionCredentials.\nThe type of credential used to connect to the ASM instance.\n\nAllowed values for this property are: "NAME_REFERENCE", "DETAILS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - credential_name: str | None = Field(None, alias='credentialName', description='Gets the credential_name of this AsmConnectionCredentialsByDetails.\nThe name of the credential information that used to connect to the DB system resource.\nThe name should be in "x.y" format, where the length of "x" has a maximum of 64 characters,\nand length of "y" has a maximum of 199 characters. The name strings can contain letters,\nnumbers and the underscore character only. Other characters are not valid, except for\nthe "." character that separates the "x" and "y" portions of the name.\n*IMPORTANT* - The name must be unique within the OCI region the credential is being created in.\nIf you specify a name that duplicates the name of another credential within the same OCI region,\nyou may overwrite or corrupt the credential that is already using the name.\n\nFor example: inventorydb.abc112233445566778899') - user_name: str = Field(..., alias='userName', description='**[Required]** Gets the user_name of this AsmConnectionCredentialsByDetails.\nThe user name used to connect to the ASM instance.') - password_secret_id: str = Field(..., alias='passwordSecretId', description='**[Required]** Gets the password_secret_id of this AsmConnectionCredentialsByDetails. The OCID of the secret containing the user password.') - role: Literal['SYSASM', 'SYSDBA', 'SYSOPER', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the role of this AsmConnectionCredentialsByDetails.\nThe role of the user connecting to the ASM instance.\n\nAllowed values for this property are: "SYSASM", "SYSDBA", "SYSOPER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class AsmConnectionString(DbmBaseModel): - """The ASM instance connection string.""" - - hosts: list[str] = Field(..., description='**[Required]** Gets the hosts of this AsmConnectionString.\nThe list of host names of the ASM instances.') - port: int = Field(..., description='**[Required]** Gets the port of this AsmConnectionString.\nThe port used to connect to the ASM instance.') - service: str = Field(..., description='**[Required]** Gets the service of this AsmConnectionString.\nThe service name of the ASM instance.') - protocol: Literal['TCP', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the protocol of this AsmConnectionString.\nThe protocol used to connect to the ASM instance.\n\nAllowed values for this property are: "TCP", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class AsmProperty(DbmBaseModel): - """The details of ASM properties.""" - - disk_group: str = Field(..., alias='diskGroup', description='**[Required]** Gets the disk_group of this AsmProperty.\nThe name of the disk group.') - - -class AsmPropertyCollection(DbmBaseModel): - """A collection of ASM properties for a specific Managed Database.""" - - items: list[AsmPropertySummary] = Field(..., description='**[Required]** Gets the items of this AsmPropertyCollection.\nAn array of AsmPropertySummary resources.') - - -class AsmPropertySummary(DbmBaseModel): - """The summary of ASM properties.""" - - disk_group: str = Field(..., alias='diskGroup', description='**[Required]** Gets the disk_group of this AsmPropertySummary.\nThe name of the disk group.') - - -class AssociatedCloudComponent(DbmBaseModel): - """The details of the associated component.""" - - component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this AssociatedCloudComponent.\nThe identifier of the associated component.') - component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='componentType', description='Gets the component_type of this AssociatedCloudComponent.\nThe type of associated component.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - association_type: Literal['CONTAINS', 'USES', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='associationType', description='**[Required]** Gets the association_type of this AssociatedCloudComponent.\nThe association type.\n\nAllowed values for this property are: "CONTAINS", "USES", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class AssociatedComponent(DbmBaseModel): - """The details of the associated component.""" - - component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this AssociatedComponent.\nThe identifier of the associated component.') - component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='componentType', description='Gets the component_type of this AssociatedComponent.\nThe type of associated component.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - association_type: Literal['CONTAINS', 'USES', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='associationType', description='**[Required]** Gets the association_type of this AssociatedComponent.\nThe association type.\n\nAllowed values for this property are: "CONTAINS", "USES", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class AssociatedDatabaseCollection(DbmBaseModel): - """A collection of databases using a Database Management private endpoint.""" - - items: list[AssociatedDatabaseSummary] = Field(..., description='**[Required]** Gets the items of this AssociatedDatabaseCollection.\nA list of databases using a Database Management private endpoint.') - - -class AssociatedDatabaseSummary(DbmBaseModel): - """The summary of a database currently using a Database Management private endpoint.""" - - id: str = Field(..., description='**[Required]** Gets the id of this AssociatedDatabaseSummary. The OCID of the database.') - name: str = Field(..., description='**[Required]** Gets the name of this AssociatedDatabaseSummary.\nThe name of the database.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this AssociatedDatabaseSummary. The compartment OCID of the database.') - time_registered: datetime = Field(..., alias='timeRegistered', description='**[Required]** Gets the time_registered of this AssociatedDatabaseSummary.\nThe time when Database Management was enabled for the database.') - - -class AssociatedServiceDetails(DbmRequestModel): - """The details of the associated service that will be enabled or disabled for an external DB System.""" - - is_enabled: bool = Field(..., alias='isEnabled', description='**[Required]** Gets the is_enabled of this AssociatedServiceDetails.\nThe status of the associated service.') - metadata: str | None = Field(None, description='Gets the metadata of this AssociatedServiceDetails.\nThe associated service-specific inputs in JSON string format, which Database Management can identify.') - - -class AttentionLogCollection(DbmBaseModel): - """The list of attention logs.""" - - managed_database_id: str = Field(..., alias='managedDatabaseId', description='**[Required]** Gets the managed_database_id of this AttentionLogCollection. The OCID of the Managed Database.') - items: list[AttentionLogSummary] = Field(..., description='**[Required]** Gets the items of this AttentionLogCollection.\nAn array of the attention logs.') - - -class AttentionLogCountSummary(DbmBaseModel): - """The details for one attention log count entry.""" - - category: Literal['UNKNOWN', 'INCIDENT_ERROR', 'ERROR', 'WARNING', 'NOTIFICATION', 'TRACE', 'IMMEDIATE', 'SOON', 'DEFERRABLE', 'INFO', 'OTHER', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the category of this AttentionLogCountSummary.\nThe category of different attention logs.\n\nAllowed values for this property are: "UNKNOWN", "INCIDENT_ERROR", "ERROR", "WARNING", "NOTIFICATION", "TRACE", "IMMEDIATE", "SOON", "DEFERRABLE", "INFO", "OTHER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - count: int = Field(..., ge=0, description='**[Required]** Gets the count of this AttentionLogCountSummary.\nThe count of attention logs with specific category.') - - -class AttentionLogCountsCollection(DbmBaseModel): - """The collection of the counts of different urgency or type of attention logs.""" - - managed_database_id: str = Field(..., alias='managedDatabaseId', description='**[Required]** Gets the managed_database_id of this AttentionLogCountsCollection. The OCID of the Managed Database.') - items: list[AttentionLogCountSummary] = Field(..., description='**[Required]** Gets the items of this AttentionLogCountsCollection.\nAn array of the counts of different urgency or type of attention logs.') - - -class AttentionLogSummary(DbmBaseModel): - """The details for one attention log entry.""" - - message_urgency: Literal['IMMEDIATE', 'SOON', 'DEFERRABLE', 'INFO', 'OTHER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='messageUrgency', description='**[Required]** Gets the message_urgency of this AttentionLogSummary.\nThe urgency of the attention log.\n\nAllowed values for this property are: "IMMEDIATE", "SOON", "DEFERRABLE", "INFO", "OTHER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - message_type: Literal['UNKNOWN', 'INCIDENT_ERROR', 'ERROR', 'WARNING', 'NOTIFICATION', 'TRACE', 'OTHER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='messageType', description='**[Required]** Gets the message_type of this AttentionLogSummary.\nThe type of attention log message.\n\nAllowed values for this property are: "UNKNOWN", "INCIDENT_ERROR", "ERROR", "WARNING", "NOTIFICATION", "TRACE", "OTHER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - message_content: str | None = Field(None, alias='messageContent', description='Gets the message_content of this AttentionLogSummary.\nThe contents of the attention log message.') - timestamp: datetime | None = Field(None, description='Gets the timestamp of this AttentionLogSummary.\nThe date and time the attention log was created.') - scope: str | None = Field(None, description='Gets the scope of this AttentionLogSummary.\nThe database scope for the attention log.') - target_user: str | None = Field(None, alias='targetUser', description='Gets the target_user of this AttentionLogSummary.\nThe user who must act on the attention log message.') - cause: str | None = Field(None, description='Gets the cause of this AttentionLogSummary.\nThe cause of the attention log.') - action: str | None = Field(None, description='Gets the action of this AttentionLogSummary.\nThe recommended action to handle the attention log.') - supplemental_detail: str | None = Field(None, alias='supplementalDetail', description='Gets the supplemental_detail of this AttentionLogSummary.\nThe supplemental details of the attention log.') - file_location: str | None = Field(None, alias='fileLocation', description='Gets the file_location of this AttentionLogSummary.\nThe attention log file location.') - - -class AutomaticCaptureFilter(DbmBaseModel): - """An automatic capture filter that enables you to capture only those SQL statements -that you want, and exclude noncritical statements.""" - - name: Literal['AUTO_CAPTURE_SQL_TEXT', 'AUTO_CAPTURE_PARSING_SCHEMA_NAME', 'AUTO_CAPTURE_MODULE', 'AUTO_CAPTURE_ACTION', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the name of this AutomaticCaptureFilter.\nThe name of the automatic capture filter.\n\n- AUTO_CAPTURE_SQL_TEXT: Search pattern to apply to SQL text.\n- AUTO_CAPTURE_PARSING_SCHEMA_NAME: Parsing schema to include or exclude for SQL plan management auto capture.\n- AUTO_CAPTURE_MODULE: Module to include or exclude for SQL plan management auto capture.\n- AUTO_CAPTURE_ACTION: Action to include or exclude for SQL plan management automatic capture.\n\nAllowed values for this property are: "AUTO_CAPTURE_SQL_TEXT", "AUTO_CAPTURE_PARSING_SCHEMA_NAME", "AUTO_CAPTURE_MODULE", "AUTO_CAPTURE_ACTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - values_to_include: list[str] | None = Field(None, alias='valuesToInclude', description='Gets the values_to_include of this AutomaticCaptureFilter.\nA list of filter values to include.') - values_to_exclude: list[str] | None = Field(None, alias='valuesToExclude', description='Gets the values_to_exclude of this AutomaticCaptureFilter.\nA list of filter values to exclude.') - time_last_modified: datetime | None = Field(None, alias='timeLastModified', description='Gets the time_last_modified of this AutomaticCaptureFilter.\nThe time the filter value was last updated.') - modified_by: str | None = Field(None, alias='modifiedBy', description='Gets the modified_by of this AutomaticCaptureFilter.\nThe database user who last updated the filter value.') - - -class AutomaticCaptureFilterDetails(DbmRequestModel): - """The details of a capture filter used to include or exclude SQL statements -in the initial automatic plan capture.""" - - name: Literal['AUTO_CAPTURE_SQL_TEXT', 'AUTO_CAPTURE_PARSING_SCHEMA_NAME', 'AUTO_CAPTURE_MODULE', 'AUTO_CAPTURE_ACTION'] = Field(..., description='**[Required]** Gets the name of this AutomaticCaptureFilterDetails.\nThe name of the automatic capture filter.\n\n- AUTO_CAPTURE_SQL_TEXT: Search pattern to apply to SQL text.\n- AUTO_CAPTURE_PARSING_SCHEMA_NAME: Parsing schema to include or exclude for SQL plan management auto capture.\n- AUTO_CAPTURE_MODULE: Module to include or exclude for SQL plan management auto capture.\n- AUTO_CAPTURE_ACTION: Action to include or exclude for SQL plan management automatic capture.\n\nAllowed values for this property are: "AUTO_CAPTURE_SQL_TEXT", "AUTO_CAPTURE_PARSING_SCHEMA_NAME", "AUTO_CAPTURE_MODULE", "AUTO_CAPTURE_ACTION"') - values_to_include: list[str] | None = Field(None, alias='valuesToInclude', description='Gets the values_to_include of this AutomaticCaptureFilterDetails.\nA list of filter values to include.') - values_to_exclude: list[str] | None = Field(None, alias='valuesToExclude', description='Gets the values_to_exclude of this AutomaticCaptureFilterDetails.\nA list of filter values to exclude.') - - -class AutonomousDatabaseDiagnosticsAndManagementFeatureDetails(DbmRequestModel): - """The details required to enable the Diagnostics and Management feature.""" - - feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH'] = Field(..., description='**[Required]** Gets the feature of this AutonomousDatabaseFeatureDetails.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH"') - database_connection_details: DatabaseConnectionDetails = Field(..., alias='databaseConnectionDetails', description='**[Required]** Gets the database_connection_details of this AutonomousDatabaseFeatureDetails.') - connector_details: ConnectorDetails | None = Field(None, alias='connectorDetails', description='Gets the connector_details of this AutonomousDatabaseFeatureDetails.') - - -class AutonomousDatabaseFeatureDetails(DbmRequestModel): - """The details required to enable the specified Database Management feature for an Autonomous Database.""" - - feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH'] = Field(..., description='**[Required]** Gets the feature of this AutonomousDatabaseFeatureDetails.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH"') - database_connection_details: DatabaseConnectionDetails = Field(..., alias='databaseConnectionDetails', description='**[Required]** Gets the database_connection_details of this AutonomousDatabaseFeatureDetails.') - connector_details: ConnectorDetails | None = Field(None, alias='connectorDetails', description='Gets the connector_details of this AutonomousDatabaseFeatureDetails.') - - -class AutonomousDatabaseSqlWatchFeatureDetails(DbmRequestModel): - """The details required to enable the SQL Watch feature.""" - - feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH'] = Field(..., description='**[Required]** Gets the feature of this AutonomousDatabaseFeatureDetails.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH"') - database_connection_details: DatabaseConnectionDetails = Field(..., alias='databaseConnectionDetails', description='**[Required]** Gets the database_connection_details of this AutonomousDatabaseFeatureDetails.') - connector_details: ConnectorDetails | None = Field(None, alias='connectorDetails', description='Gets the connector_details of this AutonomousDatabaseFeatureDetails.') - - -class AwrDbCollection(DbmBaseModel): - """The result of AWR query.""" - - name: str = Field(..., description='**[Required]** Gets the name of this AwrQueryResult.\nThe name of the query result.') - version: str | None = Field(None, description='Gets the version of this AwrQueryResult.\nThe version of the query result.') - query_key: str | None = Field(None, alias='queryKey', description='Gets the query_key of this AwrQueryResult.\nThe ID assigned to the query instance.') - db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') - awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='**[Required]** Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - items: list[AwrDbSummary] | None = Field(None, description='Gets the items of this AwrDbCollection.\nA list of AWR summary data.') - - -class AwrDbCpuUsageCollection(DbmBaseModel): - """The AWR CPU usage data.""" - - name: str = Field(..., description='**[Required]** Gets the name of this AwrQueryResult.\nThe name of the query result.') - version: str | None = Field(None, description='Gets the version of this AwrQueryResult.\nThe version of the query result.') - query_key: str | None = Field(None, alias='queryKey', description='Gets the query_key of this AwrQueryResult.\nThe ID assigned to the query instance.') - db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') - awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='**[Required]** Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - num_cpu_cores: int | None = Field(None, alias='numCpuCores', description='Gets the num_cpu_cores of this AwrDbCpuUsageCollection.\nThe number of available CPU cores, which include subcores of multicore and single-core CPUs.') - cpu_count: int | None = Field(None, ge=0, alias='cpuCount', description='Gets the cpu_count of this AwrDbCpuUsageCollection.\nThe number of CPUs available for the database to use.') - num_cpus: float | None = Field(None, alias='numCpus', description='Gets the num_cpus of this AwrDbCpuUsageCollection.\nThe number of available CPUs or processors.') - items: list[AwrDbCpuUsageSummary] | None = Field(None, description='Gets the items of this AwrDbCpuUsageCollection.\nA list of AWR CPU usage summary data.') - - -class AwrDbCpuUsageSummary(DbmBaseModel): - """A summary of the AWR CPU resource limits and metrics.""" - - timestamp: datetime | None = Field(None, description='Gets the timestamp of this AwrDbCpuUsageSummary.\nThe timestamp for the CPU summary data.') - avg_value: float | None = Field(None, alias='avgValue', description='Gets the avg_value of this AwrDbCpuUsageSummary.\nThe average CPU usage per second.') - - -class AwrDbMetricCollection(DbmBaseModel): - """The AWR metrics time series summary data.""" - - name: str = Field(..., description='**[Required]** Gets the name of this AwrQueryResult.\nThe name of the query result.') - version: str | None = Field(None, description='Gets the version of this AwrQueryResult.\nThe version of the query result.') - query_key: str | None = Field(None, alias='queryKey', description='Gets the query_key of this AwrQueryResult.\nThe ID assigned to the query instance.') - db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') - awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='**[Required]** Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - items: list[AwrDbMetricSummary] | None = Field(None, description='Gets the items of this AwrDbMetricCollection.\nA list of AWR metric summary data.') - - -class AwrDbMetricSummary(DbmBaseModel): - """The summary of the AWR metric data for a particular metric at a specific time.""" - - name: str = Field(..., description='**[Required]** Gets the name of this AwrDbMetricSummary.\nThe name of the metric.') - timestamp: datetime | None = Field(None, description='Gets the timestamp of this AwrDbMetricSummary.\nThe time of the sampling.') - avg_value: float | None = Field(None, alias='avgValue', description='Gets the avg_value of this AwrDbMetricSummary.\nThe average value of the sampling period.') - min_value: float | None = Field(None, alias='minValue', description='Gets the min_value of this AwrDbMetricSummary.\nThe minimum value of the sampling period.') - max_value: float | None = Field(None, alias='maxValue', description='Gets the max_value of this AwrDbMetricSummary.\nThe maximum value of the sampling period.') - - -class AwrDbParameterChangeCollection(DbmBaseModel): - """The AWR database parameter change history.""" - - name: str = Field(..., description='**[Required]** Gets the name of this AwrQueryResult.\nThe name of the query result.') - version: str | None = Field(None, description='Gets the version of this AwrQueryResult.\nThe version of the query result.') - query_key: str | None = Field(None, alias='queryKey', description='Gets the query_key of this AwrQueryResult.\nThe ID assigned to the query instance.') - db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') - awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='**[Required]** Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - items: list[AwrDbParameterChangeSummary] | None = Field(None, description='Gets the items of this AwrDbParameterChangeCollection.\nA list of AWR database parameter change summary data.') - - -class AwrDbParameterChangeSummary(DbmBaseModel): - """A summary of the changes made to a single AWR database parameter.""" - - time_begin: datetime | None = Field(None, alias='timeBegin', description='Gets the time_begin of this AwrDbParameterChangeSummary.\nThe start time of the interval.') - time_end: datetime | None = Field(None, alias='timeEnd', description='Gets the time_end of this AwrDbParameterChangeSummary.\nThe end time of the interval.') - instance_number: int | None = Field(None, alias='instanceNumber', description='Gets the instance_number of this AwrDbParameterChangeSummary.\nThe database instance number.') - previous_value: str | None = Field(None, alias='previousValue', description='Gets the previous_value of this AwrDbParameterChangeSummary.\nThe previous value of the database parameter.') - value: str | None = Field(None, description='Gets the value of this AwrDbParameterChangeSummary.\nThe current value of the database parameter.') - snapshot_id: int = Field(..., alias='snapshotId', description='**[Required]** Gets the snapshot_id of this AwrDbParameterChangeSummary. AWR snapshot identifier for the snapshot where the parameter value changed. This value is not an OCID.') - value_modified: str | None = Field(None, alias='valueModified', description='Gets the value_modified of this AwrDbParameterChangeSummary.\nIndicates whether the parameter has been modified after instance startup:\n - MODIFIED - Parameter has been modified with ALTER SESSION\n - SYSTEM_MOD - Parameter has been modified with ALTER SYSTEM (which causes all the currently logged in sessions’ values to be modified)\n - FALSE - Parameter has not been modified after instance startup') - is_default: bool | None = Field(None, alias='isDefault', description='Gets the is_default of this AwrDbParameterChangeSummary.\nIndicates whether the parameter value in the end snapshot is the default.') - - -class AwrDbParameterCollection(DbmBaseModel): - """The AWR database parameter data.""" - - name: str = Field(..., description='**[Required]** Gets the name of this AwrQueryResult.\nThe name of the query result.') - version: str | None = Field(None, description='Gets the version of this AwrQueryResult.\nThe version of the query result.') - query_key: str | None = Field(None, alias='queryKey', description='Gets the query_key of this AwrQueryResult.\nThe ID assigned to the query instance.') - db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') - awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='**[Required]** Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - items: list[AwrDbParameterSummary] | None = Field(None, description='Gets the items of this AwrDbParameterCollection.\nA list of AWR database parameter summary data.') - - -class AwrDbParameterSummary(DbmBaseModel): - """The summary of the AWR change history data for a single database parameter.""" - - name: str = Field(..., description='**[Required]** Gets the name of this AwrDbParameterSummary.\nThe name of the parameter.') - instance_number: int | None = Field(None, alias='instanceNumber', description='Gets the instance_number of this AwrDbParameterSummary.\nThe database instance number.') - begin_value: str | None = Field(None, alias='beginValue', description='Gets the begin_value of this AwrDbParameterSummary.\nThe parameter value when the period began.') - end_value: str | None = Field(None, alias='endValue', description='Gets the end_value of this AwrDbParameterSummary.\nThe parameter value when the period ended.') - is_changed: bool | None = Field(None, alias='isChanged', description='Gets the is_changed of this AwrDbParameterSummary.\nIndicates whether the parameter value changed within the period.') - value_modified: str | None = Field(None, alias='valueModified', description='Gets the value_modified of this AwrDbParameterSummary.\nIndicates whether the parameter has been modified after instance startup:\n - MODIFIED - Parameter has been modified with ALTER SESSION\n - SYSTEM_MOD - Parameter has been modified with ALTER SYSTEM (which causes all the currently logged in sessions’ values to be modified)\n - FALSE - Parameter has not been modified after instance startup') - is_default: bool | None = Field(None, alias='isDefault', description='Gets the is_default of this AwrDbParameterSummary.\nIndicates whether the parameter value in the end snapshot is the default.') - - -class AwrDbReport(DbmBaseModel): - """The result of the AWR report.""" - - name: str = Field(..., description='**[Required]** Gets the name of this AwrQueryResult.\nThe name of the query result.') - version: str | None = Field(None, description='Gets the version of this AwrQueryResult.\nThe version of the query result.') - query_key: str | None = Field(None, alias='queryKey', description='Gets the query_key of this AwrQueryResult.\nThe ID assigned to the query instance.') - db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') - awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='**[Required]** Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - content: str | None = Field(None, description='Gets the content of this AwrDbReport.\nThe content of the report.') - format: Literal['HTML', 'TEXT', 'XML', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the format of this AwrDbReport.\nThe format of the report.\n\nAllowed values for this property are: "HTML", "TEXT", "XML", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class AwrDbSnapshotCollection(DbmBaseModel): - """The list of AWR snapshots for one database.""" - - name: str = Field(..., description='**[Required]** Gets the name of this AwrQueryResult.\nThe name of the query result.') - version: str | None = Field(None, description='Gets the version of this AwrQueryResult.\nThe version of the query result.') - query_key: str | None = Field(None, alias='queryKey', description='Gets the query_key of this AwrQueryResult.\nThe ID assigned to the query instance.') - db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') - awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='**[Required]** Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - items: list[AwrDbSnapshotSummary] | None = Field(None, description='Gets the items of this AwrDbSnapshotCollection.\nA list of AWR snapshot summary data.') - - -class AwrDbSnapshotRangeCollection(DbmBaseModel): - """The AWR snapshot range list.""" - - name: str = Field(..., description='**[Required]** Gets the name of this AwrQueryResult.\nThe name of the query result.') - version: str | None = Field(None, description='Gets the version of this AwrQueryResult.\nThe version of the query result.') - query_key: str | None = Field(None, alias='queryKey', description='Gets the query_key of this AwrQueryResult.\nThe ID assigned to the query instance.') - db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') - awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='**[Required]** Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - items: list[AwrDbSnapshotRangeSummary] | None = Field(None, description='Gets the items of this AwrDbSnapshotRangeCollection.\nA list of AWR snapshot range summary data.') - - -class AwrDbSnapshotRangeSummary(DbmBaseModel): - """The summary data for a range of AWR snapshots.""" - - awr_db_id: str = Field(..., alias='awrDbId', description='**[Required]** Gets the awr_db_id of this AwrDbSnapshotRangeSummary. Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.') - db_name: str = Field(..., alias='dbName', description='**[Required]** Gets the db_name of this AwrDbSnapshotRangeSummary.\nThe name of the database.') - db_unique_name: str | None = Field(None, alias='dbUniqueName', description='Gets the db_unique_name of this AwrDbSnapshotRangeSummary.\nThe unique name of the database.') - src_db_id: str | None = Field(None, alias='srcDbId', description='Gets the src_db_id of this AwrDbSnapshotRangeSummary.\nThe internal ID of the database where the AWR snapshot data was collected.') - src_db_name: str | None = Field(None, alias='srcDbName', description='Gets the src_db_name of this AwrDbSnapshotRangeSummary.\nThe name of the database where the AWR snapshot data was collected.') - instance_list: list[int] | None = Field(None, alias='instanceList', description='Gets the instance_list of this AwrDbSnapshotRangeSummary.\nThe database instance numbers.') - time_db_startup: datetime | None = Field(None, alias='timeDbStartup', description='Gets the time_db_startup of this AwrDbSnapshotRangeSummary.\nThe timestamp of the database startup.') - time_first_snapshot_begin: datetime | None = Field(None, alias='timeFirstSnapshotBegin', description='Gets the time_first_snapshot_begin of this AwrDbSnapshotRangeSummary.\nThe start time of the earliest snapshot.') - time_latest_snapshot_end: datetime | None = Field(None, alias='timeLatestSnapshotEnd', description='Gets the time_latest_snapshot_end of this AwrDbSnapshotRangeSummary.\nThe end time of the latest snapshot.') - first_snapshot_id: int | None = Field(None, alias='firstSnapshotId', description='Gets the first_snapshot_id of this AwrDbSnapshotRangeSummary. Earliest AWR snapshot identifier in the range. This value is not an OCID; use snapshot identifiers returned by AWR snapshot listing results.') - latest_snapshot_id: int | None = Field(None, alias='latestSnapshotId', description='Gets the latest_snapshot_id of this AwrDbSnapshotRangeSummary. Latest AWR snapshot identifier in the range. This value is not an OCID; use snapshot identifiers returned by AWR snapshot listing results.') - snapshot_count: int | None = Field(None, ge=0, alias='snapshotCount', description='Gets the snapshot_count of this AwrDbSnapshotRangeSummary.\nThe total number of snapshots.') - snapshot_interval_in_min: int | None = Field(None, alias='snapshotIntervalInMin', description='Gets the snapshot_interval_in_min of this AwrDbSnapshotRangeSummary.\nThe interval time between snapshots (in minutes).') - container_id: int | None = Field(None, alias='containerId', description='Gets the container_id of this AwrDbSnapshotRangeSummary. AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.') - db_version: str | None = Field(None, alias='dbVersion', description='Gets the db_version of this AwrDbSnapshotRangeSummary.\nThe version of the database.') - snapshot_timezone: str | None = Field(None, alias='snapshotTimezone', description='Gets the snapshot_timezone of this AwrDbSnapshotRangeSummary.\nThe time zone of the snapshot.') - - -class AwrDbSnapshotSummary(DbmBaseModel): - """The AWR snapshot summary of one snapshot.""" - - awr_db_id: str = Field(..., alias='awrDbId', description='**[Required]** Gets the awr_db_id of this AwrDbSnapshotSummary. Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.') - instance_number: int | None = Field(None, alias='instanceNumber', description='Gets the instance_number of this AwrDbSnapshotSummary.\nThe database instance number.') - time_db_startup: datetime | None = Field(None, alias='timeDbStartup', description='Gets the time_db_startup of this AwrDbSnapshotSummary.\nThe timestamp of the database startup.') - time_begin: datetime | None = Field(None, alias='timeBegin', description='Gets the time_begin of this AwrDbSnapshotSummary.\nThe start time of the snapshot.') - time_end: datetime | None = Field(None, alias='timeEnd', description='Gets the time_end of this AwrDbSnapshotSummary.\nThe end time of the snapshot.') - snapshot_id: int = Field(..., alias='snapshotId', description='**[Required]** Gets the snapshot_id of this AwrDbSnapshotSummary. AWR snapshot identifier within the selected AWR database. This value is not an OCID; use snapshot identifiers returned by AWR snapshot listing results.') - error_count: int | None = Field(None, ge=0, alias='errorCount', description='Gets the error_count of this AwrDbSnapshotSummary.\nThe total number of errors.') - - -class AwrDbSqlReport(DbmBaseModel): - """The result of the AWR SQL report.""" - - name: str = Field(..., description='**[Required]** Gets the name of this AwrQueryResult.\nThe name of the query result.') - version: str | None = Field(None, description='Gets the version of this AwrQueryResult.\nThe version of the query result.') - query_key: str | None = Field(None, alias='queryKey', description='Gets the query_key of this AwrQueryResult.\nThe ID assigned to the query instance.') - db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') - awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='**[Required]** Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - content: str | None = Field(None, description='Gets the content of this AwrDbSqlReport.\nThe content of the report.') - format: Literal['HTML', 'TEXT', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the format of this AwrDbSqlReport.\nThe format of the report.\n\nAllowed values for this property are: "HTML", "TEXT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class AwrDbSummary(DbmBaseModel): - """The AWR summary for a database.""" - - awr_db_id: str = Field(..., alias='awrDbId', description='**[Required]** Gets the awr_db_id of this AwrDbSummary. Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.') - db_name: str = Field(..., alias='dbName', description='**[Required]** Gets the db_name of this AwrDbSummary.\nThe name of the database.') - db_unique_name: str | None = Field(None, alias='dbUniqueName', description='Gets the db_unique_name of this AwrDbSummary.\nThe unique name of the database.') - src_db_id: str | None = Field(None, alias='srcDbId', description='Gets the src_db_id of this AwrDbSummary.\nThe internal ID of the database where the AWR snapshot data was collected.') - src_db_name: str | None = Field(None, alias='srcDbName', description='Gets the src_db_name of this AwrDbSummary.\nThe name of the database where the AWR snapshot data was collected.') - instance_list: list[int] | None = Field(None, alias='instanceList', description='Gets the instance_list of this AwrDbSummary.\nThe database instance numbers.') - time_db_startup: datetime | None = Field(None, alias='timeDbStartup', description='Gets the time_db_startup of this AwrDbSummary.\nThe timestamp of the database startup.') - time_first_snapshot_begin: datetime | None = Field(None, alias='timeFirstSnapshotBegin', description='Gets the time_first_snapshot_begin of this AwrDbSummary.\nThe start time of the earliest snapshot.') - time_latest_snapshot_end: datetime | None = Field(None, alias='timeLatestSnapshotEnd', description='Gets the time_latest_snapshot_end of this AwrDbSummary.\nThe end time of the latest snapshot.') - first_snapshot_id: int | None = Field(None, alias='firstSnapshotId', description='Gets the first_snapshot_id of this AwrDbSummary. Earliest AWR snapshot identifier in the range. This value is not an OCID; use snapshot identifiers returned by AWR snapshot listing results.') - latest_snapshot_id: int | None = Field(None, alias='latestSnapshotId', description='Gets the latest_snapshot_id of this AwrDbSummary. Latest AWR snapshot identifier in the range. This value is not an OCID; use snapshot identifiers returned by AWR snapshot listing results.') - snapshot_count: int | None = Field(None, ge=0, alias='snapshotCount', description='Gets the snapshot_count of this AwrDbSummary.\nThe total number of snapshots.') - snapshot_interval_in_min: int | None = Field(None, alias='snapshotIntervalInMin', description='Gets the snapshot_interval_in_min of this AwrDbSummary.\nThe interval time between snapshots (in minutes).') - container_id: int | None = Field(None, alias='containerId', description='Gets the container_id of this AwrDbSummary. AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.') - db_version: str | None = Field(None, alias='dbVersion', description='Gets the db_version of this AwrDbSummary.\nThe version of the database.') - snapshot_timezone: str | None = Field(None, alias='snapshotTimezone', description='Gets the snapshot_timezone of this AwrDbSummary.\nThe time zone of the snapshot.') - - -class AwrDbSysstatCollection(DbmBaseModel): - """The AWR SYSSTAT time series summary data.""" - - name: str = Field(..., description='**[Required]** Gets the name of this AwrQueryResult.\nThe name of the query result.') - version: str | None = Field(None, description='Gets the version of this AwrQueryResult.\nThe version of the query result.') - query_key: str | None = Field(None, alias='queryKey', description='Gets the query_key of this AwrQueryResult.\nThe ID assigned to the query instance.') - db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') - awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='**[Required]** Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - items: list[AwrDbSysstatSummary] | None = Field(None, description='Gets the items of this AwrDbSysstatCollection.\nA list of AWR SYSSTAT summary data.') - - -class AwrDbSysstatSummary(DbmBaseModel): - """The summary of the AWR SYSSTAT data.""" - - name: str = Field(..., description='**[Required]** Gets the name of this AwrDbSysstatSummary.\nThe name of the SYSSTAT.') - category: str | None = Field(None, description='Gets the category of this AwrDbSysstatSummary.\nThe name of the SYSSTAT category.') - time_begin: datetime | None = Field(None, alias='timeBegin', description='Gets the time_begin of this AwrDbSysstatSummary.\nThe start time of the SYSSTAT.') - time_end: datetime | None = Field(None, alias='timeEnd', description='Gets the time_end of this AwrDbSysstatSummary.\nThe end time of the SYSSTAT.') - avg_value: float | None = Field(None, alias='avgValue', description='Gets the avg_value of this AwrDbSysstatSummary.\nThe average value of the SYSSTAT.') - current_value: float | None = Field(None, alias='currentValue', description='Gets the current_value of this AwrDbSysstatSummary.\nThe last value of the SYSSTAT.') - - -class AwrDbTopWaitEventCollection(DbmBaseModel): - """The AWR top wait event data.""" - - name: str = Field(..., description='**[Required]** Gets the name of this AwrQueryResult.\nThe name of the query result.') - version: str | None = Field(None, description='Gets the version of this AwrQueryResult.\nThe version of the query result.') - query_key: str | None = Field(None, alias='queryKey', description='Gets the query_key of this AwrQueryResult.\nThe ID assigned to the query instance.') - db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') - awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='**[Required]** Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - items: list[AwrDbTopWaitEventSummary] | None = Field(None, description='Gets the items of this AwrDbTopWaitEventCollection.\nA list of AWR top event summary data.') - - -class AwrDbTopWaitEventSummary(DbmBaseModel): - """A summary of the AWR top wait event data for one event.""" - - name: str = Field(..., description='**[Required]** Gets the name of this AwrDbTopWaitEventSummary.\nThe name of the event.') - waits_per_sec: float | None = Field(None, alias='waitsPerSec', description='Gets the waits_per_sec of this AwrDbTopWaitEventSummary.\nThe wait count per second.') - avg_wait_time_per_sec: float | None = Field(None, alias='avgWaitTimePerSec', description='Gets the avg_wait_time_per_sec of this AwrDbTopWaitEventSummary.\nThe average wait time per second.') - - -class AwrDbWaitEventBucketCollection(DbmBaseModel): - """The percentage distribution of waits in the AWR wait event buckets.""" - - name: str = Field(..., description='**[Required]** Gets the name of this AwrQueryResult.\nThe name of the query result.') - version: str | None = Field(None, description='Gets the version of this AwrQueryResult.\nThe version of the query result.') - query_key: str | None = Field(None, alias='queryKey', description='Gets the query_key of this AwrQueryResult.\nThe ID assigned to the query instance.') - db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') - awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='**[Required]** Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - total_waits: int | None = Field(None, alias='totalWaits', description='Gets the total_waits of this AwrDbWaitEventBucketCollection.\nThe total waits of the database.') - items: list[AwrDbWaitEventBucketSummary] | None = Field(None, description='Gets the items of this AwrDbWaitEventBucketCollection.\nA list of AWR wait event buckets.') - - -class AwrDbWaitEventBucketSummary(DbmBaseModel): - """A summary of the AWR wait event bucket and waits percentage.""" - - category: str = Field(..., description='**[Required]** Gets the category of this AwrDbWaitEventBucketSummary.\nThe name of the wait event frequency category. Normally, it is the upper range of the waits within the AWR wait event bucket.') - percentage: float = Field(..., description='**[Required]** Gets the percentage of this AwrDbWaitEventBucketSummary.\nThe percentage of waits in a wait event bucket over the total waits of the database.') - - -class AwrDbWaitEventCollection(DbmBaseModel): - """The AWR wait event data.""" - - name: str = Field(..., description='**[Required]** Gets the name of this AwrQueryResult.\nThe name of the query result.') - version: str | None = Field(None, description='Gets the version of this AwrQueryResult.\nThe version of the query result.') - query_key: str | None = Field(None, alias='queryKey', description='Gets the query_key of this AwrQueryResult.\nThe ID assigned to the query instance.') - db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') - awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='**[Required]** Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - items: list[AwrDbWaitEventSummary] | None = Field(None, description='Gets the items of this AwrDbWaitEventCollection.\nA list of AWR wait events.') - - -class AwrDbWaitEventSummary(DbmBaseModel): - """The summary of the AWR wait event time series data for one event.""" - - name: str = Field(..., description='**[Required]** Gets the name of this AwrDbWaitEventSummary.\nThe name of the event.') - time_begin: datetime | None = Field(None, alias='timeBegin', description='Gets the time_begin of this AwrDbWaitEventSummary.\nThe begin time of the wait event.') - time_end: datetime | None = Field(None, alias='timeEnd', description='Gets the time_end of this AwrDbWaitEventSummary.\nThe end time of the wait event.') - waits_per_sec: float | None = Field(None, alias='waitsPerSec', description='Gets the waits_per_sec of this AwrDbWaitEventSummary.\nThe wait count per second.') - avg_wait_time_per_sec: float | None = Field(None, alias='avgWaitTimePerSec', description='Gets the avg_wait_time_per_sec of this AwrDbWaitEventSummary.\nThe average wait time per second.') - avg_wait_time_per_wait: float | None = Field(None, alias='avgWaitTimePerWait', description='Gets the avg_wait_time_per_wait of this AwrDbWaitEventSummary.\nThe average wait time in milliseconds per wait.') - snapshot_id: int | None = Field(None, alias='snapshotId', description='Gets the snapshot_id of this AwrDbWaitEventSummary. AWR snapshot identifier within the selected AWR database. This value is not an OCID; use snapshot identifiers returned by AWR snapshot listing results.') - - -class AwrQueryResult(DbmBaseModel): - """The AWR query result.""" - - name: str = Field(..., description='**[Required]** Gets the name of this AwrQueryResult.\nThe name of the query result.') - version: str | None = Field(None, description='Gets the version of this AwrQueryResult.\nThe version of the query result.') - query_key: str | None = Field(None, alias='queryKey', description='Gets the query_key of this AwrQueryResult.\nThe ID assigned to the query instance.') - db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') - awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='**[Required]** Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class BaseDatabaseHaDetails(DbmRequestModel): - """The common database details used by all HA metrics.""" - - db_id: str = Field(..., alias='dbId', description='**[Required]** Gets the db_id of this BaseDatabaseHaDetails. The OCID of the Managed Database.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this BaseDatabaseHaDetails. The OCID of the compartment where the Managed Database resides.') - database_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='databaseType', description='**[Required]** Gets the database_type of this BaseDatabaseHaDetails.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='databaseSubType', description='**[Required]** Gets the database_sub_type of this BaseDatabaseHaDetails.\nThe subtype of the Oracle Database. Indicates whether the database is a Container Database,\nPluggable Database, Non-container Database, Autonomous Database, or Autonomous Container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - deployment_type: Literal['ONPREMISE', 'BM', 'VM', 'EXADATA', 'EXADATA_CC', 'AUTONOMOUS', 'EXADATA_XS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='deploymentType', description='**[Required]** Gets the deployment_type of this BaseDatabaseHaDetails.\nThe infrastructure used to deploy the Oracle Database.\n\nAllowed values for this property are: "ONPREMISE", "BM", "VM", "EXADATA", "EXADATA_CC", "AUTONOMOUS", "EXADATA_XS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this BaseDatabaseHaDetails.\nThe Oracle Database version.') - workload_type: Literal['OLTP', 'DW', 'AJD', 'APEX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='workloadType', description='Gets the workload_type of this BaseDatabaseHaDetails.\nThe workload type of the Autonomous Database.\n\nAllowed values for this property are: "OLTP", "DW", "AJD", "APEX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_name: str = Field(..., alias='databaseName', description='**[Required]** Gets the database_name of this BaseDatabaseHaDetails.\nThe display name of the Managed Database.') - database_id: str | None = Field(None, alias='databaseId', description='Gets the database_id of this BaseDatabaseHaDetails.\nThe database ID of the Managed Database. Every database had its own ID and that value is captured here.') - db_unique_name: str | None = Field(None, alias='dbUniqueName', description='Gets the db_unique_name of this BaseDatabaseHaDetails.\nThe database unique name of the Managed Database.') - db_role: Literal['SNAPSHOT_STANDBY', 'LOGICAL_STANDBY', 'PHYSICAL_STANDBY', 'PRIMARY', 'FAR_SYNC', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dbRole', description='**[Required]** Gets the db_role of this BaseDatabaseHaDetails.\nThe database role of the Managed Database.\n\nAllowed values for this property are: "SNAPSHOT_STANDBY", "LOGICAL_STANDBY", "PHYSICAL_STANDBY", "PRIMARY", "FAR_SYNC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class BasicDatabaseConnectionStringDetails(DbmRequestModel): - """The details of the Oracle Database basic connection string.""" - - connection_type: Literal['BASIC', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='connectionType', description='**[Required]** Gets the connection_type of this DatabaseConnectionStringDetails.\nThe list of supported connection types:\n - BASIC: Basic connection details\n\nAllowed values for this property are: "BASIC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - service: str = Field(..., description='**[Required]** Gets the service of this BasicDatabaseConnectionStringDetails.\nThe service name of the database.') - port: int = Field(..., description='**[Required]** Gets the port of this BasicDatabaseConnectionStringDetails.\nThe port number used to connect to the database.') - protocol: Literal['TCP', 'TCPS', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the protocol of this BasicDatabaseConnectionStringDetails.\nThe protocol used to connect to the database.\n\nAllowed values for this property are: "TCP", "TCPS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class BasicNamedCredentialContent(DbmBaseModel): - """The details of the 'BASIC' named credential.""" - - credential_type: Literal['BASIC', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='credentialType', description='**[Required]** Gets the credential_type of this NamedCredentialContent.\nThe type of named credential. Only \'BASIC\' is supported currently.\n\nAllowed values for this property are: "BASIC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - user_name: str = Field(..., alias='userName', description='**[Required]** Gets the user_name of this BasicNamedCredentialContent.\nThe user name used to connect to the database.') - role: Literal['NORMAL', 'SYSDBA', 'SYSDG', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the role of this BasicNamedCredentialContent.\nThe role of the database user.\n\nAllowed values for this property are: "NORMAL", "SYSDBA", "SYSDG", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - password_secret_id: str = Field(..., alias='passwordSecretId', description='**[Required]** Gets the password_secret_id of this BasicNamedCredentialContent. The OCID of the Vault service secret that contains the database user password.') - password_secret_access_mode: Literal['USER_PRINCIPAL', 'RESOURCE_PRINCIPAL', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='passwordSecretAccessMode', description='**[Required]** Gets the password_secret_access_mode of this BasicNamedCredentialContent.\nThe mechanism used to access the password plain text value.\n\nAllowed values for this property are: "USER_PRINCIPAL", "RESOURCE_PRINCIPAL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class BasicPreferredCredential(DbmBaseModel): - """The details of the 'BASIC' preferred credential.""" - - type: Literal['BASIC', 'NAMED_CREDENTIAL', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the type of this PreferredCredential.\nThe type of preferred credential. Only \'BASIC\' is supported currently.\n\nAllowed values for this property are: "BASIC", "NAMED_CREDENTIAL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - credential_name: str | None = Field(None, alias='credentialName', description='Gets the credential_name of this PreferredCredential.\nThe name of the preferred credential.') - status: Literal['SET', 'NOT_SET', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this PreferredCredential.\nThe status of the preferred credential.\n\nAllowed values for this property are: "SET", "NOT_SET", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - is_accessible: bool | None = Field(None, alias='isAccessible', description='Gets the is_accessible of this PreferredCredential.\nIndicates whether the preferred credential is accessible.') - user_name: str | None = Field(None, alias='userName', description='Gets the user_name of this BasicPreferredCredential.\nThe user name used to connect to the database.') - role: Literal['NORMAL', 'SYSDBA', 'SYSDG', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the role of this BasicPreferredCredential.\nThe role of the database user.\n\nAllowed values for this property are: "NORMAL", "SYSDBA", "SYSDG", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - password_secret_id: str | None = Field(None, alias='passwordSecretId', description='Gets the password_secret_id of this BasicPreferredCredential. The OCID of the Vault service secret that contains the database user password.') - - -class ChangeCloudExadataInfrastructureCompartmentDetails(DbmRequestModel): - """The details required to change the compartment of the Exadata infrastructure.""" - - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ChangeCloudExadataInfrastructureCompartmentDetails. The OCID of the compartment to move the Exadata infrastructure and related components to.') - - -class ChangeDatabaseParameterDetails(DbmRequestModel): - """The value of a database parameter to change.""" - - name: str = Field(..., description='**[Required]** Gets the name of this ChangeDatabaseParameterDetails.\nThe parameter name.') - value: str = Field(..., description='**[Required]** Gets the value of this ChangeDatabaseParameterDetails.\nThe parameter value.') - update_comment: str | None = Field(None, alias='updateComment', description='Gets the update_comment of this ChangeDatabaseParameterDetails.\nA comment string to associate with the change in parameter value.\nIt cannot contain control characters or a line break.') - - -class ChangeDatabaseParametersDetails(DbmRequestModel): - """The details required to change database parameter values. -It takes either credentials or databaseCredential. It's recommended to provide databaseCredential""" - - credentials: DatabaseCredentials | None = Field(None, description='Gets the credentials of this ChangeDatabaseParametersDetails.') - database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this ChangeDatabaseParametersDetails.') - scope: Literal['MEMORY', 'SPFILE', 'BOTH'] = Field(..., description='**[Required]** Gets the scope of this ChangeDatabaseParametersDetails.\nThe clause used to specify when the parameter change takes effect.\n\nUse `MEMORY` to make the change in memory and affect it immediately.\nUse `SPFILE` to make the change in the server parameter file. The\nchange takes effect when the database is next shut down and started\nup again. Use `BOTH` to make the change in memory and in the server\nparameter file. The change takes effect immediately and persists\nafter the database is shut down and started up again.\n\nAllowed values for this property are: "MEMORY", "SPFILE", "BOTH"') - parameters: list[ChangeDatabaseParameterDetails] = Field(..., description='**[Required]** Gets the parameters of this ChangeDatabaseParametersDetails.\nA list of database parameters and their values.') - - -class ChangeDbManagementPrivateEndpointCompartmentDetails(DbmRequestModel): - """The details used to move the Database Management private endpoint to another compartment.""" - - compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this ChangeDbManagementPrivateEndpointCompartmentDetails. The OCID of the compartment to which the Database Management private endpoint needs to be moved.') - - -class ChangeExternalDbSystemCompartmentDetails(DbmRequestModel): - """The details required to change the compartment of an external DB system.""" - - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ChangeExternalDbSystemCompartmentDetails. The OCID of the compartment to move the external DB system to.') - - -class ChangeExternalExadataInfrastructureCompartmentDetails(DbmRequestModel): - """The details required to change the compartment of the Exadata infrastructure.""" - - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ChangeExternalExadataInfrastructureCompartmentDetails. The OCID of the compartment to move the Exadata infrastructure and related components to.') - - -class ChangeJobCompartmentDetails(DbmRequestModel): - """The details required to change the compartment of a job.""" - - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ChangeJobCompartmentDetails. The OCID of the compartment to which the job should be moved.') - - -class ChangeManagedDatabaseGroupCompartmentDetails(DbmRequestModel): - """The details required to change the compartment of a Managed Database Group.""" - - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ChangeManagedDatabaseGroupCompartmentDetails. The OCID of the compartment to which the Managed Database Group should be moved.') - - -class ChangeMysqlDatabaseManagementTypeDetails(DbmRequestModel): - """Details to change managed MySQL database management type.""" - - management_type: str = Field(..., alias='managementType', description='**[Required]** Gets the management_type of this ChangeMysqlDatabaseManagementTypeDetails.\nThe type of HeatWave management.') - operation: Literal['ENABLE_DBMGMT', 'UPDATE_DBMGMT_TYPE', 'DISABLE_DBMGMT'] | None = Field(None, description='Gets the operation of this ChangeMysqlDatabaseManagementTypeDetails.\nThe type of operation to perform: update managementType, enable or disable database management.\n\nAllowed values for this property are: "ENABLE_DBMGMT", "UPDATE_DBMGMT_TYPE", "DISABLE_DBMGMT"') - - -class ChangeNamedCredentialCompartmentDetails(DbmRequestModel): - """The details required to change the compartment of a named credential.""" - - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ChangeNamedCredentialCompartmentDetails. The OCID of the compartment to which the named credential should be moved.') - - -class ChangePlanRetentionDetails(DbmRequestModel): - """The details required to change the plan retention period. -It takes either credentials or databaseCredential. It's recommended to provide databaseCredential""" - - retention_weeks: int = Field(..., alias='retentionWeeks', description='**[Required]** Gets the retention_weeks of this ChangePlanRetentionDetails.\nThe retention period in weeks. It can range between 5 and 523 weeks.') - credentials: ManagedDatabaseCredential | None = Field(None, description='Gets the credentials of this ChangePlanRetentionDetails.') - database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this ChangePlanRetentionDetails.') - - -class ChangeSpaceBudgetDetails(DbmRequestModel): - """The details required to change the disk space limit for the SQL Management Base. -It takes either credentials or databaseCredential. It's recommended to provide databaseCredential""" - - space_budget_percent: float = Field(..., alias='spaceBudgetPercent', description='**[Required]** Gets the space_budget_percent of this ChangeSpaceBudgetDetails.\nThe maximum percent of `SYSAUX` space that the SQL Management Base can use.') - credentials: ManagedDatabaseCredential | None = Field(None, description='Gets the credentials of this ChangeSpaceBudgetDetails.') - database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this ChangeSpaceBudgetDetails.') - - -class ChangeSqlPlanBaselinesAttributesDetails(DbmRequestModel): - """The details required to change SQL plan baseline attributes. -It takes either credentials or databaseCredential. It's recommended to provide databaseCredential""" - - sql_handle: str | None = Field(None, alias='sqlHandle', description='Gets the sql_handle of this ChangeSqlPlanBaselinesAttributesDetails.\nThe SQL statement handle. It identifies plans associated with a SQL statement\nfor attribute changes. If `null` then `planName` must be specified.') - plan_name: str | None = Field(None, alias='planName', description="Gets the plan_name of this ChangeSqlPlanBaselinesAttributesDetails.\nThen plan name. It identifies a specific plan. If `null' then all plans associated\nwith a SQL statement identified by `sqlHandle' are considered for attribute changes.") - is_enabled: bool | None = Field(None, alias='isEnabled', description='Gets the is_enabled of this ChangeSqlPlanBaselinesAttributesDetails.\nIndicates whether the plan is available for use by the optimizer.') - is_fixed: bool | None = Field(None, alias='isFixed', description='Gets the is_fixed of this ChangeSqlPlanBaselinesAttributesDetails.\nIndicates whether the plan baseline is fixed. A fixed plan takes precedence over a non-fixed plan.') - is_auto_purged: bool | None = Field(None, alias='isAutoPurged', description='Gets the is_auto_purged of this ChangeSqlPlanBaselinesAttributesDetails.\nIndicates whether the plan is purged if it is not used for a time period.') - credentials: ManagedDatabaseCredential | None = Field(None, description='Gets the credentials of this ChangeSqlPlanBaselinesAttributesDetails.') - database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this ChangeSqlPlanBaselinesAttributesDetails.') - - -class ChildDatabase(DbmBaseModel): - """The child Managed Database of a Managed Database Group.""" - - id: str = Field(..., description='**[Required]** Gets the id of this ChildDatabase. The OCID of the Managed Database.') - name: str = Field(..., description='**[Required]** Gets the name of this ChildDatabase.\nThe name of the Managed Database.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ChildDatabase. The OCID of the compartment in which the Managed Database resides.') - deployment_type: Literal['ONPREMISE', 'BM', 'VM', 'EXADATA', 'EXADATA_CC', 'AUTONOMOUS', 'EXADATA_XS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='deploymentType', description='Gets the deployment_type of this ChildDatabase.\nThe infrastructure used to deploy the Oracle Database.\n\nAllowed values for this property are: "ONPREMISE", "BM", "VM", "EXADATA", "EXADATA_CC", "AUTONOMOUS", "EXADATA_XS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - workload_type: Literal['OLTP', 'DW', 'AJD', 'APEX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='workloadType', description='Gets the workload_type of this ChildDatabase.\nThe workload type of the Autonomous Database.\n\nAllowed values for this property are: "OLTP", "DW", "AJD", "APEX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseType', description='Gets the database_type of this ChildDatabase.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseSubType', description='Gets the database_sub_type of this ChildDatabase.\nThe subtype of the Oracle Database. Indicates whether the database is a Container Database,\nPluggable Database, Non-container Database, Autonomous Database, or Autonomous Container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_added: datetime = Field(..., alias='timeAdded', description='**[Required]** Gets the time_added of this ChildDatabase.\nThe date and time the Managed Database was added to the group.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ChildDatabase. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ChildDatabase. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ChildDatabase. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class CloneSqlTuningTaskDetails(DbmRequestModel): - """The request to clone and run a SQL tuning task. The new task uses the same inputs as the one being cloned. -It takes either credentialDetails or databaseCredential. It's recommended to provide databaseCredential""" - - task_name: str = Field(..., alias='taskName', description='**[Required]** Gets the task_name of this CloneSqlTuningTaskDetails.\nThe name of the SQL tuning task. The name is unique per user in a database, and it is case-sensitive.') - original_task_id: int = Field(..., alias='originalTaskId', description='**[Required]** Gets the original_task_id of this CloneSqlTuningTaskDetails. Identifier of the SQL tuning task being cloned. This value is not an OCID; use the identifier returned by SQL tuning task list, start, or clone operations.') - task_description: str | None = Field(None, alias='taskDescription', description='Gets the task_description of this CloneSqlTuningTaskDetails.\nThe description of the SQL tuning task.') - credential_details: SqlTuningTaskCredentialDetails | None = Field(None, alias='credentialDetails', description='Gets the credential_details of this CloneSqlTuningTaskDetails.') - database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this CloneSqlTuningTaskDetails.') - - -class CloudAsm(DbmBaseModel): - """The details of a cloud ASM.""" - - id: str = Field(..., description='**[Required]** Gets the id of this CloudAsm. The OCID of the cloud ASM.') - dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this CloudAsm. The OCID in DBaas service.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudAsm.\nThe user-friendly name for the cloud ASM. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this CloudAsm.\nThe name of the cloud ASM.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudAsm. The OCID of the compartment.') - cloud_db_system_id: str = Field(..., alias='cloudDbSystemId', description='**[Required]** Gets the cloud_db_system_id of this CloudAsm. The OCID of the cloud DB system that the ASM is a part of.') - cloud_connector_id: str | None = Field(None, alias='cloudConnectorId', description='Gets the cloud_connector_id of this CloudAsm. The OCID of the cloud connector.') - grid_home: str | None = Field(None, alias='gridHome', description='Gets the grid_home of this CloudAsm.\nThe directory in which ASM is installed. This is the same directory in which Oracle Grid Infrastructure is installed.') - is_cluster: bool | None = Field(None, alias='isCluster', description='Gets the is_cluster of this CloudAsm.\nIndicates whether the ASM is a cluster ASM or not.') - is_flex_enabled: bool | None = Field(None, alias='isFlexEnabled', description='Gets the is_flex_enabled of this CloudAsm.\nIndicates whether Oracle Flex ASM is enabled or not.') - lifecycle_state: Literal['CREATING', 'NOT_CONNECTED', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this CloudAsm.\nThe current lifecycle state of the cloud ASM.\n\nAllowed values for this property are: "CREATING", "NOT_CONNECTED", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this CloudAsm.\nAdditional information about the current lifecycle state.') - serviced_databases: list[CloudAsmServicedDatabase] | None = Field(None, alias='servicedDatabases', description='Gets the serviced_databases of this CloudAsm.\nThe list of databases that are serviced by the ASM.') - additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this CloudAsm.\nThe additional details of the cloud ASM defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this CloudAsm.\nThe date and time the cloud ASM was created.') - time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this CloudAsm.\nThe date and time the cloud ASM was last updated.') - version: str | None = Field(None, description='Gets the version of this CloudAsm.\nThe ASM version.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudAsm. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudAsm. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudAsm. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class CloudAsmCollection(DbmBaseModel): - """A collection of cloud ASMs.""" - - items: list[CloudAsmSummary] = Field(..., description='**[Required]** Gets the items of this CloudAsmCollection.\nAn array of cloud ASMs.') - - -class CloudAsmConfiguration(DbmBaseModel): - """The configuration details of an ASM.""" - - init_parameters: list[CloudAsmInstanceParameters] = Field(..., alias='initParameters', description='**[Required]** Gets the init_parameters of this CloudAsmConfiguration.\nAn array of initialization parameters for the cloud ASM instances.') - - -class CloudAsmConnectionCredentials(DbmBaseModel): - """The credentials used to connect to the Cloud ASM instance. Currently only the `DETAILS` type -is supported for creating MACS connector credentials.""" - - credential_type: Literal['NAME_REFERENCE', 'DETAILS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='credentialType', description='Gets the credential_type of this CloudAsmConnectionCredentials.\nThe type of credential used to connect to the ASM instance.\n\nAllowed values for this property are: "NAME_REFERENCE", "DETAILS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class CloudAsmConnectionCredentialsByDetails(DbmRequestModel): - """The credentials used to connect to the ASM instance.""" - - credential_type: Literal['NAME_REFERENCE', 'DETAILS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='credentialType', description='Gets the credential_type of this CloudAsmConnectionCredentials.\nThe type of credential used to connect to the ASM instance.\n\nAllowed values for this property are: "NAME_REFERENCE", "DETAILS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - credential_name: str | None = Field(None, alias='credentialName', description='Gets the credential_name of this CloudAsmConnectionCredentialsByDetails.\nThe name of the credential information that used to connect to the DB system resource.\nThe name should be in "x.y" format, where the length of "x" has a maximum of 64 characters,\nand length of "y" has a maximum of 199 characters. The name strings can contain letters,\nnumbers and the underscore character only. Other characters are not valid, except for\nthe "." character that separates the "x" and "y" portions of the name.\n*IMPORTANT* - The name must be unique within the OCI region the credential is being created in.\nIf you specify a name that duplicates the name of another credential within the same OCI region,\nyou may overwrite or corrupt the credential that is already using the name.\n\nFor example: inventorydb.abc112233445566778899') - user_name: str = Field(..., alias='userName', description='**[Required]** Gets the user_name of this CloudAsmConnectionCredentialsByDetails.\nThe user name used to connect to the ASM instance.') - password_secret_id: str = Field(..., alias='passwordSecretId', description='**[Required]** Gets the password_secret_id of this CloudAsmConnectionCredentialsByDetails. The OCID of the secret containing the user password.') - role: Literal['SYSASM', 'SYSDBA', 'SYSOPER', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the role of this CloudAsmConnectionCredentialsByDetails.\nThe role of the user connecting to the ASM instance.\n\nAllowed values for this property are: "SYSASM", "SYSDBA", "SYSOPER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class CloudAsmConnectionCredentialsByName(DbmBaseModel): - """The existing named credential used to connect to the ASM instance.""" - - credential_type: Literal['NAME_REFERENCE', 'DETAILS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='credentialType', description='Gets the credential_type of this CloudAsmConnectionCredentials.\nThe type of credential used to connect to the ASM instance.\n\nAllowed values for this property are: "NAME_REFERENCE", "DETAILS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - credential_name: str = Field(..., alias='credentialName', description='**[Required]** Gets the credential_name of this CloudAsmConnectionCredentialsByName.\nThe name of the credential information that used to connect to the DB system resource.\nThe name should be in "x.y" format, where the length of "x" has a maximum of 64 characters,\nand length of "y" has a maximum of 199 characters. The name strings can contain letters,\nnumbers and the underscore character only. Other characters are not valid, except for\nthe "." character that separates the "x" and "y" portions of the name.\n*IMPORTANT* - The name must be unique within the OCI region the credential is being created in.\nIf you specify a name that duplicates the name of another credential within the same OCI region,\nyou may overwrite or corrupt the credential that is already using the name.\n\nFor example: inventorydb.abc112233445566778899') - - -class CloudAsmConnectionInfo(DbmBaseModel): - """The details required to connect to a cloud ASM instance.""" - - component_type: Literal['DATABASE', 'ASM', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this CloudDbSystemConnectionInfo.\nThe component type.\n\nAllowed values for this property are: "DATABASE", "ASM", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - connection_string: AsmConnectionString = Field(..., alias='connectionString', description='**[Required]** Gets the connection_string of this CloudAsmConnectionInfo.') - connection_credentials: CloudAsmConnectionCredentials = Field(..., alias='connectionCredentials', description='**[Required]** Gets the connection_credentials of this CloudAsmConnectionInfo.') - - -class CloudAsmDiskGroupCollection(DbmBaseModel): - """A collection of cloud ASM disk groups.""" - - items: list[CloudAsmDiskGroupSummary] = Field(..., description='**[Required]** Gets the items of this CloudAsmDiskGroupCollection.\nAn array of cloud ASM disk groups.') - - -class CloudAsmDiskGroupSummary(DbmBaseModel): - """The summary of a cloud ASM disk group.""" - - name: str = Field(..., description='**[Required]** Gets the name of this CloudAsmDiskGroupSummary.\nThe name of the ASM disk group.') - mounting_instance_count: int | None = Field(None, ge=0, alias='mountingInstanceCount', description='Gets the mounting_instance_count of this CloudAsmDiskGroupSummary.\nThe number of ASM instances that have the disk group in mounted state.') - dismounting_instance_count: int | None = Field(None, ge=0, alias='dismountingInstanceCount', description='Gets the dismounting_instance_count of this CloudAsmDiskGroupSummary.\nThe number of ASM instances that have the disk group in dismounted state.') - redundancy_type: Literal['EXTEND', 'EXTERN', 'FLEX', 'HIGH', 'NORMAL', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='redundancyType', description='Gets the redundancy_type of this CloudAsmDiskGroupSummary.\nThe redundancy type of the disk group.\n\nAllowed values for this property are: "EXTEND", "EXTERN", "FLEX", "HIGH", "NORMAL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - is_sparse: bool | None = Field(None, alias='isSparse', description='Gets the is_sparse of this CloudAsmDiskGroupSummary.\nIndicates whether the disk group is a sparse disk group or not.') - databases: list[str] | None = Field(None, description='Gets the databases of this CloudAsmDiskGroupSummary.\nThe unique names of the databases using the disk group.') - total_size_in_mbs: int | None = Field(None, alias='totalSizeInMBs', description='Gets the total_size_in_mbs of this CloudAsmDiskGroupSummary.\nThe total capacity of the disk group (in megabytes).') - used_size_in_mbs: int | None = Field(None, alias='usedSizeInMBs', description='Gets the used_size_in_mbs of this CloudAsmDiskGroupSummary.\nThe used capacity of the disk group (in megabytes).') - used_percent: float | None = Field(None, alias='usedPercent', description='Gets the used_percent of this CloudAsmDiskGroupSummary.\nThe percentage of used space in the disk group.') - - -class CloudAsmInstance(DbmBaseModel): - """The details of a cloud ASM instance.""" - - id: str = Field(..., description='**[Required]** Gets the id of this CloudAsmInstance. The OCID of the cloud ASM instance.') - dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this CloudAsmInstance. The OCID in DBaas service.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudAsmInstance.\nThe user-friendly name for the ASM instance. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this CloudAsmInstance.\nThe name of the cloud ASM instance.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudAsmInstance. The OCID of the compartment.') - cloud_asm_id: str = Field(..., alias='cloudAsmId', description='**[Required]** Gets the cloud_asm_id of this CloudAsmInstance. The OCID of the cloud ASM that the ASM instance belongs to.') - cloud_db_system_id: str = Field(..., alias='cloudDbSystemId', description='**[Required]** Gets the cloud_db_system_id of this CloudAsmInstance. The OCID of the cloud DB system that the ASM instance is a part of.') - cloud_db_node_id: str | None = Field(None, alias='cloudDbNodeId', description='Gets the cloud_db_node_id of this CloudAsmInstance. The OCID of the cloud DB node on which the ASM instance is running.') - adr_home_directory: str | None = Field(None, alias='adrHomeDirectory', description='Gets the adr_home_directory of this CloudAsmInstance.\nThe Automatic Diagnostic Repository (ADR) home directory for the ASM instance.') - host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this CloudAsmInstance.\nThe name of the host on which the ASM instance is running.') - lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this CloudAsmInstance.\nThe current lifecycle state of the cloud ASM instance.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this CloudAsmInstance.\nAdditional information about the current lifecycle state.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this CloudAsmInstance.\nThe date and time the cloud ASM instance was created.') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this CloudAsmInstance.\nThe date and time the cloud ASM instance was last updated.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudAsmInstance. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudAsmInstance. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudAsmInstance. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class CloudAsmInstanceCollection(DbmBaseModel): - """A collection of cloud ASM instances.""" - - items: list[CloudAsmInstanceSummary] = Field(..., description='**[Required]** Gets the items of this CloudAsmInstanceCollection.\nAn array of cloud ASM instances.') - - -class CloudAsmInstanceParameters(DbmBaseModel): - """The initialization parameters for an ASM instance.""" - - asm_instance_id: str = Field(..., alias='asmInstanceId', description='**[Required]** Gets the asm_instance_id of this CloudAsmInstanceParameters. The OCID of the cloud ASM instance.') - asm_instance_display_name: str = Field(..., alias='asmInstanceDisplayName', description='**[Required]** Gets the asm_instance_display_name of this CloudAsmInstanceParameters.\nThe user-friendly name for the ASM instance. The name does not have to be unique.') - disk_discovery_path: str = Field(..., alias='diskDiscoveryPath', description='**[Required]** Gets the disk_discovery_path of this CloudAsmInstanceParameters.\nAn operating system-dependent value used to limit the set of disks considered for discovery.') - auto_mount_disk_groups: list[str] = Field(..., alias='autoMountDiskGroups', description='**[Required]** Gets the auto_mount_disk_groups of this CloudAsmInstanceParameters.\nThe list of disk group names that an ASM instance mounts at startup or when the `ALTER DISKGROUP ALL MOUNT` statement is issued.') - rebalance_power: int = Field(..., alias='rebalancePower', description='**[Required]** Gets the rebalance_power of this CloudAsmInstanceParameters.\nThe maximum power on an ASM instance for disk rebalancing.') - preferred_read_failure_groups: list[str] = Field(..., alias='preferredReadFailureGroups', description='**[Required]** Gets the preferred_read_failure_groups of this CloudAsmInstanceParameters.\nThe list of failure groups that contain preferred read disks.') - - -class CloudAsmInstanceSummary(DbmBaseModel): - """The summary of a cloud ASM instance.""" - - id: str = Field(..., description='**[Required]** Gets the id of this CloudAsmInstanceSummary. The OCID of the cloud ASM instance.') - dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this CloudAsmInstanceSummary. The OCID in DBaas service.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudAsmInstanceSummary.\nThe user-friendly name for the ASM instance. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this CloudAsmInstanceSummary.\nThe name of the cloud ASM instance.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudAsmInstanceSummary. The OCID of the compartment.') - cloud_asm_id: str = Field(..., alias='cloudAsmId', description='**[Required]** Gets the cloud_asm_id of this CloudAsmInstanceSummary. The OCID of the cloud ASM that the ASM instance belongs to.') - cloud_db_system_id: str = Field(..., alias='cloudDbSystemId', description='**[Required]** Gets the cloud_db_system_id of this CloudAsmInstanceSummary. The OCID of the cloud DB system that the ASM instance is a part of.') - cloud_db_node_id: str | None = Field(None, alias='cloudDbNodeId', description='Gets the cloud_db_node_id of this CloudAsmInstanceSummary. The OCID of the cloud DB node on which the ASM instance is running.') - adr_home_directory: str | None = Field(None, alias='adrHomeDirectory', description='Gets the adr_home_directory of this CloudAsmInstanceSummary.\nThe Automatic Diagnostic Repository (ADR) home directory for the ASM instance.') - host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this CloudAsmInstanceSummary.\nThe name of the host on which the ASM instance is running.') - lifecycle_state: str = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this CloudAsmInstanceSummary.\nThe current lifecycle state of the cloud ASM instance.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this CloudAsmInstanceSummary.\nAdditional information about the current lifecycle state.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this CloudAsmInstanceSummary.\nThe date and time the cloud ASM instance was created.') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this CloudAsmInstanceSummary.\nThe date and time the cloud ASM instance was last updated.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudAsmInstanceSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudAsmInstanceSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudAsmInstanceSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class CloudAsmServicedDatabase(DbmBaseModel): - """The details of a database serviced by a cloud ASM.""" - - disk_groups: list[str] | None = Field(None, alias='diskGroups', description='Gets the disk_groups of this CloudAsmServicedDatabase.\nThe list of ASM disk groups used by the database.') - id: str = Field(..., description='**[Required]** Gets the id of this CloudAsmServicedDatabase. The OCID of the cloud database.') - dbaas_id: str = Field(..., alias='dbaasId', description='**[Required]** Gets the dbaas_id of this CloudAsmServicedDatabase. The OCID of the existing Dbaas OCI resource matching the discovered DB system component.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudAsmServicedDatabase.\nThe user-friendly name for the database. The name does not have to be unique.') - db_unique_name: str | None = Field(None, alias='dbUniqueName', description='Gets the db_unique_name of this CloudAsmServicedDatabase.\nThe unique name of the cloud database.') - compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this CloudAsmServicedDatabase. The OCID of the compartment in which the cloud database resides.') - database_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseType', description='Gets the database_type of this CloudAsmServicedDatabase.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseSubType', description='Gets the database_sub_type of this CloudAsmServicedDatabase.\nThe subtype of Oracle Database. Indicates whether the database is a Container Database,\nPluggable Database, Non-container Database, Autonomous Database, or Autonomous Container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - is_managed: bool | None = Field(None, alias='isManaged', description='Gets the is_managed of this CloudAsmServicedDatabase.\nIndicates whether the database is a Managed Database or not.') - - -class CloudAsmSummary(DbmBaseModel): - """The summary of a cloud ASM.""" - - id: str = Field(..., description='**[Required]** Gets the id of this CloudAsmSummary. The OCID of the cloud ASM.') - dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this CloudAsmSummary. The OCID in DBaas service.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudAsmSummary.\nThe user-friendly name for the cloud ASM. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this CloudAsmSummary.\nThe name of the cloud ASM.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudAsmSummary. The OCID of the compartment.') - cloud_db_system_id: str = Field(..., alias='cloudDbSystemId', description='**[Required]** Gets the cloud_db_system_id of this CloudAsmSummary. The OCID of the cloud DB system that the ASM is a part of.') - cloud_connector_id: str | None = Field(None, alias='cloudConnectorId', description='Gets the cloud_connector_id of this CloudAsmSummary. The OCID of the cloud connector.') - lifecycle_state: str = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this CloudAsmSummary.\nThe current lifecycle state of the cloud ASM.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this CloudAsmSummary.\nAdditional information about the current lifecycle state.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this CloudAsmSummary.\nThe date and time the cloud ASM was created.') - time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this CloudAsmSummary.\nThe date and time the cloud ASM was last updated.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudAsmSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudAsmSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudAsmSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class CloudAsmUserCollection(DbmBaseModel): - """A collection of cloud ASM users.""" - - items: list[CloudAsmUserSummary] = Field(..., description='**[Required]** Gets the items of this CloudAsmUserCollection.\nAn array of cloud ASM users.') - - -class CloudAsmUserSummary(DbmBaseModel): - """The summary of an ASM user.""" - - name: str = Field(..., description='**[Required]** Gets the name of this CloudAsmUserSummary.\nThe name of the ASM user.') - privileges: list[str] = Field(..., description='**[Required]** Gets the privileges of this CloudAsmUserSummary.\nThe list of privileges of the ASM user.') - asm_id: str | None = Field(None, alias='asmId', description='Gets the asm_id of this CloudAsmUserSummary. The OCID of the cloud ASM.') - - -class CloudCluster(DbmBaseModel): - """The details of a cloud cluster.""" - - id: str = Field(..., description='**[Required]** Gets the id of this CloudCluster. The OCID of the cloud cluster.') - dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this CloudCluster. The OCID in DBaas service.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudCluster.\nThe user-friendly name for the cloud cluster. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this CloudCluster.\nThe name of the cloud cluster.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudCluster. The OCID of the compartment.') - cloud_db_system_id: str = Field(..., alias='cloudDbSystemId', description='**[Required]** Gets the cloud_db_system_id of this CloudCluster. The OCID of the cloud DB system that the cluster is a part of.') - cloud_connector_id: str | None = Field(None, alias='cloudConnectorId', description='Gets the cloud_connector_id of this CloudCluster. The OCID of the cloud connector.') - grid_home: str | None = Field(None, alias='gridHome', description='Gets the grid_home of this CloudCluster.\nThe directory in which Oracle Grid Infrastructure is installed.') - is_flex_cluster: bool | None = Field(None, alias='isFlexCluster', description='Gets the is_flex_cluster of this CloudCluster.\nIndicates whether the cluster is Oracle Flex Cluster or not.') - additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this CloudCluster.\nThe additional details of the cloud cluster defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') - lifecycle_state: Literal['CREATING', 'NOT_CONNECTED', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this CloudCluster.\nThe current lifecycle state of the cloud cluster.\n\nAllowed values for this property are: "CREATING", "NOT_CONNECTED", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this CloudCluster.\nAdditional information about the current lifecycle state.') - network_configurations: list[CloudClusterNetworkConfiguration] | None = Field(None, alias='networkConfigurations', description='Gets the network_configurations of this CloudCluster.\nThe list of network address configurations of the cloud cluster.') - vip_configurations: list[CloudClusterVipConfiguration] | None = Field(None, alias='vipConfigurations', description='Gets the vip_configurations of this CloudCluster.\nThe list of Virtual IP (VIP) configurations of the cloud cluster.') - scan_configurations: list[CloudClusterScanListenerConfiguration] | None = Field(None, alias='scanConfigurations', description='Gets the scan_configurations of this CloudCluster.\nThe list of Single Client Access Name (SCAN) configurations of the cloud cluster.') - ocr_file_location: str | None = Field(None, alias='ocrFileLocation', description='Gets the ocr_file_location of this CloudCluster.\nThe location of the Oracle Cluster Registry (OCR).') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this CloudCluster.\nThe date and time the cloud cluster was created.') - time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this CloudCluster.\nThe date and time the cloud cluster was last updated.') - version: str | None = Field(None, description='Gets the version of this CloudCluster.\nThe cluster version.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudCluster. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudCluster. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudCluster. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class CloudClusterCollection(DbmBaseModel): - """A collection of cloud clusters.""" - - items: list[CloudClusterSummary] = Field(..., description='**[Required]** Gets the items of this CloudClusterCollection.\nAn array of cloud clusters.') - - -class CloudClusterInstance(DbmBaseModel): - """The details of a cloud cluster instance.""" - - id: str = Field(..., description='**[Required]** Gets the id of this CloudClusterInstance. The OCID of the cloud cluster instance.') - dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this CloudClusterInstance. The OCID in DBaas service.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudClusterInstance.\nThe user-friendly name for the cluster instance. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this CloudClusterInstance.\nThe name of the cloud cluster instance.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudClusterInstance. The OCID of the compartment.') - cloud_cluster_id: str = Field(..., alias='cloudClusterId', description='**[Required]** Gets the cloud_cluster_id of this CloudClusterInstance. The OCID of the cloud cluster that the cluster instance belongs to.') - cloud_db_system_id: str = Field(..., alias='cloudDbSystemId', description='**[Required]** Gets the cloud_db_system_id of this CloudClusterInstance. The OCID of the cloud DB system that the cluster instance is a part of.') - cloud_db_node_id: str | None = Field(None, alias='cloudDbNodeId', description='Gets the cloud_db_node_id of this CloudClusterInstance. The OCID of the cloud DB node.') - cloud_connector_id: str | None = Field(None, alias='cloudConnectorId', description='Gets the cloud_connector_id of this CloudClusterInstance. The OCID of the cloud connector.') - host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this CloudClusterInstance.\nThe name of the host on which the cluster instance is running.') - node_role: Literal['HUB', 'LEAF', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='nodeRole', description='Gets the node_role of this CloudClusterInstance.\nThe role of the cluster node.\n\nAllowed values for this property are: "HUB", "LEAF", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - crs_base_directory: str | None = Field(None, alias='crsBaseDirectory', description='Gets the crs_base_directory of this CloudClusterInstance.\nThe Oracle base location of Cluster Ready Services (CRS).') - adr_home_directory: str | None = Field(None, alias='adrHomeDirectory', description='Gets the adr_home_directory of this CloudClusterInstance.\nThe Automatic Diagnostic Repository (ADR) home directory for the cluster instance.') - lifecycle_state: Literal['CREATING', 'NOT_CONNECTED', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this CloudClusterInstance.\nThe current lifecycle state of the cloud cluster instance.\n\nAllowed values for this property are: "CREATING", "NOT_CONNECTED", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this CloudClusterInstance.\nAdditional information about the current lifecycle state.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this CloudClusterInstance.\nThe date and time the cloud cluster instance was created.') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this CloudClusterInstance.\nThe date and time the cloud cluster instance was last updated.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudClusterInstance. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudClusterInstance. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudClusterInstance. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class CloudClusterInstanceCollection(DbmBaseModel): - """A collection of cloud cluster instances.""" - - items: list[CloudClusterInstanceSummary] = Field(..., description='**[Required]** Gets the items of this CloudClusterInstanceCollection.\nAn array of cloud cluster instances.') - - -class CloudClusterInstanceSummary(DbmBaseModel): - """The summary of a cloud cluster instance.""" - - id: str = Field(..., description='**[Required]** Gets the id of this CloudClusterInstanceSummary. The OCID of the cloud cluster instance.') - dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this CloudClusterInstanceSummary. The OCID in DBaas service.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudClusterInstanceSummary.\nThe user-friendly name for the cluster instance. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this CloudClusterInstanceSummary.\nThe name of the cloud cluster instance.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudClusterInstanceSummary. The OCID of the compartment.') - cloud_cluster_id: str = Field(..., alias='cloudClusterId', description='**[Required]** Gets the cloud_cluster_id of this CloudClusterInstanceSummary. The OCID of the cloud cluster that the cluster instance belongs to.') - cloud_db_system_id: str = Field(..., alias='cloudDbSystemId', description='**[Required]** Gets the cloud_db_system_id of this CloudClusterInstanceSummary. The OCID of the cloud DB system that the cluster instance is a part of.') - cloud_db_node_id: str | None = Field(None, alias='cloudDbNodeId', description='Gets the cloud_db_node_id of this CloudClusterInstanceSummary. The OCID of the cloud DB node.') - cloud_connector_id: str | None = Field(None, alias='cloudConnectorId', description='Gets the cloud_connector_id of this CloudClusterInstanceSummary. The OCID of the cloud connector.') - host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this CloudClusterInstanceSummary.\nThe name of the host on which the cluster instance is running.') - node_role: str | None = Field(None, alias='nodeRole', description='Gets the node_role of this CloudClusterInstanceSummary.\nThe role of the cluster node.') - crs_base_directory: str | None = Field(None, alias='crsBaseDirectory', description='Gets the crs_base_directory of this CloudClusterInstanceSummary.\nThe Oracle base location of Cluster Ready Services (CRS).') - adr_home_directory: str | None = Field(None, alias='adrHomeDirectory', description='Gets the adr_home_directory of this CloudClusterInstanceSummary.\nThe Automatic Diagnostic Repository (ADR) home directory for the cluster instance.') - lifecycle_state: str = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this CloudClusterInstanceSummary.\nThe current lifecycle state of the cloud cluster instance.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this CloudClusterInstanceSummary.\nAdditional information about the current lifecycle state.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this CloudClusterInstanceSummary.\nThe date and time the cloud cluster instance was created.') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this CloudClusterInstanceSummary.\nThe date and time the cloud cluster instance was last updated.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudClusterInstanceSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudClusterInstanceSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudClusterInstanceSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class CloudClusterNetworkConfiguration(DbmBaseModel): - """The details of a network address configuration in a cloud cluster.""" - - network_number: int | None = Field(None, alias='networkNumber', description='Gets the network_number of this CloudClusterNetworkConfiguration.\nThe network number.') - network_type: Literal['AUTOCONFIG', 'DHCP', 'STATIC', 'MIXED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='networkType', description='Gets the network_type of this CloudClusterNetworkConfiguration.\nThe network type.\n\nAllowed values for this property are: "AUTOCONFIG", "DHCP", "STATIC", "MIXED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - subnet: str | None = Field(None, description='Gets the subnet of this CloudClusterNetworkConfiguration.\nThe subnet for the network.') - - -class CloudClusterScanListenerConfiguration(DbmBaseModel): - """The details of a SCAN listener in a cloud cluster.""" - - scan_name: str | None = Field(None, alias='scanName', description='Gets the scan_name of this CloudClusterScanListenerConfiguration.\nThe name of the SCAN listener.') - network_number: int | None = Field(None, alias='networkNumber', description='Gets the network_number of this CloudClusterScanListenerConfiguration.\nThe network number from which SCAN VIPs are obtained.') - scan_port: int | None = Field(None, alias='scanPort', description='Gets the scan_port of this CloudClusterScanListenerConfiguration.\nThe port number of the SCAN listener.') - scan_protocol: Literal['TCP', 'TCPS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='scanProtocol', description='Gets the scan_protocol of this CloudClusterScanListenerConfiguration.\nThe protocol of the SCAN listener.\n\nAllowed values for this property are: "TCP", "TCPS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class CloudClusterSummary(DbmBaseModel): - """The summary of a cloud cluster.""" - - id: str = Field(..., description='**[Required]** Gets the id of this CloudClusterSummary. The OCID of the cloud cluster.') - dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this CloudClusterSummary. The OCID in DBaas service.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudClusterSummary.\nThe user-friendly name for the cloud cluster. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this CloudClusterSummary.\nThe name of the cloud cluster.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudClusterSummary. The OCID of the compartment.') - cloud_db_system_id: str = Field(..., alias='cloudDbSystemId', description='**[Required]** Gets the cloud_db_system_id of this CloudClusterSummary. The OCID of the cloud DB system that the cluster is a part of.') - cloud_connector_id: str | None = Field(None, alias='cloudConnectorId', description='Gets the cloud_connector_id of this CloudClusterSummary. The OCID of the cloud connector.') - lifecycle_state: str = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this CloudClusterSummary.\nThe current lifecycle state of the cloud cluster.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this CloudClusterSummary.\nAdditional information about the current lifecycle state.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this CloudClusterSummary.\nThe date and time the cloud cluster was created.') - time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this CloudClusterSummary.\nThe date and time the cloud cluster was last updated.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudClusterSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudClusterSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudClusterSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class CloudClusterVipConfiguration(DbmBaseModel): - """The details of the Virtual IP (VIP) address for a node in a cloud cluster.""" - - node_name: str | None = Field(None, alias='nodeName', description='Gets the node_name of this CloudClusterVipConfiguration.\nThe name of the node with the VIP.') - address: str | None = Field(None, description='Gets the address of this CloudClusterVipConfiguration.\nThe VIP name or IP address.') - network_number: int | None = Field(None, alias='networkNumber', description='Gets the network_number of this CloudClusterVipConfiguration.\nThe network number from which VIPs are obtained.') - - -class CloudDatabaseCollection(DbmBaseModel): - """A collection of cloud databases.""" - - items: list[CloudDatabaseSummary] = Field(..., description='**[Required]** Gets the items of this CloudDatabaseCollection.\nAn array of cloud databases.') - - -class CloudDatabaseConnectionInfo(DbmBaseModel): - """The details required to connect to a cloud Oracle Database.""" - - component_type: Literal['DATABASE', 'ASM', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this CloudDbSystemConnectionInfo.\nThe component type.\n\nAllowed values for this property are: "DATABASE", "ASM", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - connection_string: DatabaseConnectionString = Field(..., alias='connectionString', description='**[Required]** Gets the connection_string of this CloudDatabaseConnectionInfo.') - connection_credentials: DatabaseConnectionCredentials | None = Field(None, alias='connectionCredentials', description='Gets the connection_credentials of this CloudDatabaseConnectionInfo.') - - -class CloudDatabaseInstance(DbmBaseModel): - """The details of a cloud database instance.""" - - instance_number: int = Field(..., alias='instanceNumber', description='**[Required]** Gets the instance_number of this CloudDatabaseInstance.\nThe instance number of the database instance.') - instance_name: str = Field(..., alias='instanceName', description='**[Required]** Gets the instance_name of this CloudDatabaseInstance.\nThe name of the database instance.') - host_name: str = Field(..., alias='hostName', description='**[Required]** Gets the host_name of this CloudDatabaseInstance.\nThe name of the host machine.') - - -class CloudDatabaseSummary(DbmBaseModel): - """The summary of a cloud database.""" - - id: str = Field(..., description='**[Required]** Gets the id of this CloudDatabaseSummary. The OCID of the external DB system.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudDatabaseSummary.\nThe user-friendly name for the database. The name does not have to be unique.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudDatabaseSummary. The OCID of the compartment.') - db_unique_name: str | None = Field(None, alias='dbUniqueName', description='Gets the db_unique_name of this CloudDatabaseSummary.\nThe `DB_UNIQUE_NAME` of the external database.') - database_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseType', description='Gets the database_type of this CloudDatabaseSummary.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseSubType', description='Gets the database_sub_type of this CloudDatabaseSummary.\nThe subtype of Oracle Database. Indicates whether the database is a Container Database,\nPluggable Database, or Non-container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - parent_container_database_id: str | None = Field(None, alias='parentContainerDatabaseId', description='Gets the parent_container_database_id of this CloudDatabaseSummary. The OCID of the parent Container Database (CDB) if this is a Pluggable Database (PDB).') - cloud_db_home_id: str | None = Field(None, alias='cloudDbHomeId', description='Gets the cloud_db_home_id of this CloudDatabaseSummary. The OCID of the external DB home.') - db_system_info: CloudDbSystemBasicInfo | None = Field(None, alias='dbSystemInfo', description='Gets the db_system_info of this CloudDatabaseSummary.') - db_management_config: CloudDbSystemDatabaseManagementConfigDetails | None = Field(None, alias='dbManagementConfig', description='Gets the db_management_config of this CloudDatabaseSummary.') - instance_details: list[CloudDatabaseInstance] | None = Field(None, alias='instanceDetails', description='Gets the instance_details of this CloudDatabaseSummary.\nThe list of database instances if the database is a RAC database.') - lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this CloudDatabaseSummary.\nThe current lifecycle state of the external database resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this CloudDatabaseSummary.\nThe date and time the external DB system was created.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudDatabaseSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudDatabaseSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudDatabaseSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - dbmgmt_feature_configs: list[DatabaseFeatureConfiguration] | None = Field(None, alias='dbmgmtFeatureConfigs', description='Gets the dbmgmt_feature_configs of this CloudDatabaseSummary.\nThe list of feature configurations') - database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this CloudDatabaseSummary.\nThe Oracle database version.') - database_platform_name: str | None = Field(None, alias='databasePlatformName', description='Gets the database_platform_name of this CloudDatabaseSummary.\nThe operating system of database.') - - -class CloudDbHome(DbmBaseModel): - """The details of a cloud database home.""" - - id: str = Field(..., description='**[Required]** Gets the id of this CloudDbHome. The OCID of the cloud DB home.') - dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this CloudDbHome. The OCID of the cloud DB home in DBaas service.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudDbHome.\nThe user-friendly name for the cloud DB home. The name does not have to be unique.') - component_name: str | None = Field(None, alias='componentName', description='Gets the component_name of this CloudDbHome.\nThe name of the cloud DB home.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudDbHome. The OCID of the compartment.') - cloud_db_system_id: str = Field(..., alias='cloudDbSystemId', description='**[Required]** Gets the cloud_db_system_id of this CloudDbHome. The OCID of the cloud DB system that the DB home is a part of.') - home_directory: str | None = Field(None, alias='homeDirectory', description='Gets the home_directory of this CloudDbHome.\nThe location of the DB home.') - additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this CloudDbHome.\nThe additional details of the DB home defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') - lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this CloudDbHome.\nThe current lifecycle state of the cloud DB home.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this CloudDbHome.\nAdditional information about the current lifecycle state.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this CloudDbHome.\nThe date and time the cloud DB home was created.') - time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this CloudDbHome.\nThe date and time the cloud DB home was last updated.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudDbHome. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudDbHome. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudDbHome. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class CloudDbHomeCollection(DbmBaseModel): - """A collection of cloud database homes.""" - - items: list[CloudDbHomeSummary] = Field(..., description='**[Required]** Gets the items of this CloudDbHomeCollection.\nAn array of cloud DB homes.') - - -class CloudDbHomeSummary(DbmBaseModel): - """The summary of a cloud database home.""" - - id: str = Field(..., description='**[Required]** Gets the id of this CloudDbHomeSummary. The OCID of the cloud DB home.') - dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this CloudDbHomeSummary. The OCID of the cloud DB home in DBaas service.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudDbHomeSummary.\nThe user-friendly name for the cloud DB home. The name does not have to be unique.') - component_name: str | None = Field(None, alias='componentName', description='Gets the component_name of this CloudDbHomeSummary.\nThe name of the cloud DB home.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudDbHomeSummary. The OCID of the compartment.') - cloud_db_system_id: str = Field(..., alias='cloudDbSystemId', description='**[Required]** Gets the cloud_db_system_id of this CloudDbHomeSummary. The OCID of the cloud DB system that the DB home is a part of.') - home_directory: str | None = Field(None, alias='homeDirectory', description='Gets the home_directory of this CloudDbHomeSummary.\nThe location of the DB home.') - lifecycle_state: str = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this CloudDbHomeSummary.\nThe current lifecycle state of the cloud DB home.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this CloudDbHomeSummary.\nAdditional information about the current lifecycle state.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this CloudDbHomeSummary.\nThe date and time the cloud DB home was created.') - time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this CloudDbHomeSummary.\nThe date and time the cloud DB home was last updated.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudDbHomeSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudDbHomeSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudDbHomeSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class CloudDbNode(DbmBaseModel): - """The details of a cloud database node.""" - - id: str = Field(..., description='**[Required]** Gets the id of this CloudDbNode. The OCID of the cloud DB node.') - dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this CloudDbNode. The OCID of the cloud DB node in DBaas service.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudDbNode.\nThe user-friendly name for the cloud DB node. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this CloudDbNode.\nThe name of the cloud DB node.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudDbNode. The OCID of the compartment.') - cloud_db_system_id: str = Field(..., alias='cloudDbSystemId', description='**[Required]** Gets the cloud_db_system_id of this CloudDbNode. The OCID of the cloud DB system that the DB node is a part of.') - cloud_connector_id: str | None = Field(None, alias='cloudConnectorId', description='Gets the cloud_connector_id of this CloudDbNode. The OCID of the cloud connector.') - host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this CloudDbNode.\nThe host name for the DB node.') - cpu_core_count: float | None = Field(None, ge=0, alias='cpuCoreCount', description='Gets the cpu_core_count of this CloudDbNode.\nThe number of CPU cores available on the DB node.') - memory_size_in_gbs: float | None = Field(None, alias='memorySizeInGBs', description='Gets the memory_size_in_gbs of this CloudDbNode.\nThe total memory in gigabytes (GB) on the DB node.') - additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this CloudDbNode.\nThe additional details of the cloud DB node defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') - lifecycle_state: Literal['CREATING', 'NOT_CONNECTED', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this CloudDbNode.\nThe current lifecycle state of the cloud DB node.\n\nAllowed values for this property are: "CREATING", "NOT_CONNECTED", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this CloudDbNode.\nAdditional information about the current lifecycle state.') - domain_name: str | None = Field(None, alias='domainName', description='Gets the domain_name of this CloudDbNode.\nName of the domain.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this CloudDbNode.\nThe date and time the cloud DB node was created.') - time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this CloudDbNode.\nThe date and time the cloud DB node was last updated.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudDbNode. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudDbNode. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudDbNode. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class CloudDbNodeCollection(DbmBaseModel): - """A collection of cloud database nodes.""" - - items: list[CloudDbNodeSummary] = Field(..., description='**[Required]** Gets the items of this CloudDbNodeCollection.\nAn array of cloud DB nodes.') - - -class CloudDbNodeSummary(DbmBaseModel): - """The summary of a cloud database node.""" - - id: str = Field(..., description='**[Required]** Gets the id of this CloudDbNodeSummary. The OCID of the cloud DB node.') - dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this CloudDbNodeSummary. The OCID of the cloud DB node in DBaas service.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudDbNodeSummary.\nThe user-friendly name for the cloud DB node. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this CloudDbNodeSummary.\nThe name of the cloud DB node.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudDbNodeSummary. The OCID of the compartment.') - cloud_db_system_id: str = Field(..., alias='cloudDbSystemId', description='**[Required]** Gets the cloud_db_system_id of this CloudDbNodeSummary. The OCID of the cloud DB system that the DB node is a part of.') - cloud_connector_id: str | None = Field(None, alias='cloudConnectorId', description='Gets the cloud_connector_id of this CloudDbNodeSummary. The OCID of the cloud connector.') - host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this CloudDbNodeSummary.\nThe host name for the DB node.') - lifecycle_state: str = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this CloudDbNodeSummary.\nThe current lifecycle state of the cloud DB node.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this CloudDbNodeSummary.\nAdditional information about the current lifecycle state.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this CloudDbNodeSummary.\nThe date and time the cloud DB node was created.') - time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this CloudDbNodeSummary.\nThe date and time the cloud DB node was last updated.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudDbNodeSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudDbNodeSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudDbNodeSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class CloudDbSystem(DbmBaseModel): - """The details of a cloud DB system.""" - - id: str = Field(..., description='**[Required]** Gets the id of this CloudDbSystem. The OCID of the cloud DB system.') - dbaas_parent_infrastructure_id: str = Field(..., alias='dbaasParentInfrastructureId', description='**[Required]** Gets the dbaas_parent_infrastructure_id of this CloudDbSystem. The OCID of the parent cloud DB Infrastructure. For VM Dbsystems, it will be the DBSystem Id. For ExaCS and ExaCC, it will be the cloudVmClusterId and vmClusterId respectively.') - deployment_type: Literal['VM', 'EXADATA', 'EXADATA_CC', 'EXADATA_XS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='deploymentType', description='**[Required]** Gets the deployment_type of this CloudDbSystem.\nThe deployment type of cloud dbsystem.\n\nAllowed values for this property are: "VM", "EXADATA", "EXADATA_CC", "EXADATA_XS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudDbSystem.\nThe user-friendly name for the DB system. The name does not have to be unique.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudDbSystem. The OCID of the compartment.') - db_system_discovery_id: str | None = Field(None, alias='dbSystemDiscoveryId', description='Gets the db_system_discovery_id of this CloudDbSystem. The OCID of the DB system discovery.') - discovery_agent_id: str | None = Field(None, alias='discoveryAgentId', description='Gets the discovery_agent_id of this CloudDbSystem. The OCID of the management agent used during the discovery of the DB system.') - is_cluster: bool | None = Field(None, alias='isCluster', description='Gets the is_cluster of this CloudDbSystem.\nIndicates whether the DB system is a cluster DB system or not.') - home_directory: str | None = Field(None, alias='homeDirectory', description='Gets the home_directory of this CloudDbSystem.\nThe Oracle Grid home directory in case of cluster-based DB system and\nOracle home directory in case of single instance-based DB system.') - database_management_config: CloudDbSystemDatabaseManagementConfigDetails | None = Field(None, alias='databaseManagementConfig', description='Gets the database_management_config of this CloudDbSystem.') - stack_monitoring_config: CloudDbSystemStackMonitoringConfigDetails | None = Field(None, alias='stackMonitoringConfig', description='Gets the stack_monitoring_config of this CloudDbSystem.') - lifecycle_state: Literal['CREATING', 'ACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'INACTIVE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this CloudDbSystem.\nThe current lifecycle state of the cloud DB system resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "UPDATING", "DELETING", "DELETED", "INACTIVE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this CloudDbSystem.\nAdditional information about the current lifecycle state.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this CloudDbSystem.\nThe date and time the cloud DB system was created.') - time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this CloudDbSystem.\nThe date and time the cloud DB system was last updated.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudDbSystem. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudDbSystem. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudDbSystem. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class CloudDbSystemBasicInfo(DbmBaseModel): - """The basic information about a cloud DB system.""" - - id: str = Field(..., description='**[Required]** Gets the id of this CloudDbSystemBasicInfo. The OCID of the cloud DB system.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudDbSystemBasicInfo.\nThe user-friendly name for the cloud DB system. The name does not have to be unique.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudDbSystemBasicInfo. The OCID of the compartment.') - - -class CloudDbSystemCollection(DbmBaseModel): - """A collection of cloud DB systems.""" - - items: list[CloudDbSystemSummary] = Field(..., description='**[Required]** Gets the items of this CloudDbSystemCollection.\nAn array of cloud DB systems.') - - -class CloudDbSystemConnectionInfo(DbmBaseModel): - """The connection details required to connect to a cloud DB system component.""" - - component_type: Literal['DATABASE', 'ASM', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this CloudDbSystemConnectionInfo.\nThe component type.\n\nAllowed values for this property are: "DATABASE", "ASM", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class CloudDbSystemConnector(DbmBaseModel): - """The details of a cloud DB system connector.""" - - connector_type: Literal['MACS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this CloudDbSystemConnector.\nThe type of connector.\n\nAllowed values for this property are: "MACS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - id: str = Field(..., description='**[Required]** Gets the id of this CloudDbSystemConnector. The OCID of the cloud DB system connector.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudDbSystemConnector.\nThe user-friendly name for the cloud connector. The name does not have to be unique.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudDbSystemConnector. The OCID of the compartment.') - cloud_db_system_id: str = Field(..., alias='cloudDbSystemId', description='**[Required]** Gets the cloud_db_system_id of this CloudDbSystemConnector. The OCID of the cloud DB system that the connector is a part of.') - connection_status: str | None = Field(None, alias='connectionStatus', description='Gets the connection_status of this CloudDbSystemConnector.\nThe status of connectivity to the cloud DB system component.') - connection_failure_message: str | None = Field(None, alias='connectionFailureMessage', description='Gets the connection_failure_message of this CloudDbSystemConnector.\nThe error message indicating the reason for connection failure or `null` if\nthe connection was successful.') - lifecycle_state: Literal['CREATING', 'NOT_CONNECTED', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this CloudDbSystemConnector.\nThe current lifecycle state of the cloud DB system connector.\n\nAllowed values for this property are: "CREATING", "NOT_CONNECTED", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this CloudDbSystemConnector.\nAdditional information about the current lifecycle state.') - time_connection_status_last_updated: datetime | None = Field(None, alias='timeConnectionStatusLastUpdated', description='Gets the time_connection_status_last_updated of this CloudDbSystemConnector.\nThe date and time the connectionStatus of the cloud DB system connector was last updated.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this CloudDbSystemConnector.\nThe date and time the cloud DB system connector was created.') - time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this CloudDbSystemConnector.\nThe date and time the cloud DB system connector was last updated.') - - -class CloudDbSystemConnectorCollection(DbmBaseModel): - """A collection of cloud DB system connectors.""" - - items: list[CloudDbSystemConnectorSummary] = Field(..., description='**[Required]** Gets the items of this CloudDbSystemConnectorCollection.\nAn array of cloud DB system connectors.') - - -class CloudDbSystemConnectorSummary(DbmBaseModel): - """The summary of a cloud DB system connector.""" - - id: str = Field(..., description='**[Required]** Gets the id of this CloudDbSystemConnectorSummary. The OCID of the cloud DB system connector.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudDbSystemConnectorSummary.\nThe user-friendly name for the cloud connector. The name does not have to be unique.') - connector_type: Literal['MACS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this CloudDbSystemConnectorSummary.\nThe type of connector.\n\nAllowed values for this property are: "MACS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudDbSystemConnectorSummary. The OCID of the compartment.') - cloud_db_system_id: str = Field(..., alias='cloudDbSystemId', description='**[Required]** Gets the cloud_db_system_id of this CloudDbSystemConnectorSummary. The OCID of the cloud DB system that the connector is a part of.') - agent_id: str = Field(..., alias='agentId', description='**[Required]** Gets the agent_id of this CloudDbSystemConnectorSummary. The OCID of the management agent used for the cloud DB system connector.') - lifecycle_state: str = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this CloudDbSystemConnectorSummary.\nThe current lifecycle state of the cloud DB system connector.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this CloudDbSystemConnectorSummary.\nAdditional information about the current lifecycle state.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this CloudDbSystemConnectorSummary.\nThe date and time the cloud DB system connector was created.') - time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this CloudDbSystemConnectorSummary.\nThe date and time the cloud DB system connector was last updated.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudDbSystemConnectorSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudDbSystemConnectorSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudDbSystemConnectorSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class CloudDbSystemDatabaseManagementConfigDetails(DbmRequestModel): - """The configuration details of Database Management for a cloud DB system.""" - - is_enabled: bool = Field(..., alias='isEnabled', description='**[Required]** Gets the is_enabled of this CloudDbSystemDatabaseManagementConfigDetails.\nThe status of the associated service.') - metadata: str | None = Field(None, description='Gets the metadata of this CloudDbSystemDatabaseManagementConfigDetails.\nThe associated service-specific inputs in JSON string format, which Database Management can identify.') - - -class CloudDbSystemDiscovery(DbmBaseModel): - """The details of a cloud DB system discovery.""" - - id: str = Field(..., description='**[Required]** Gets the id of this CloudDbSystemDiscovery. The OCID of the cloud DB system discovery.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudDbSystemDiscovery.\nThe user-friendly name for the DB system. The name does not have to be unique.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudDbSystemDiscovery. The OCID of the compartment.') - agent_id: str = Field(..., alias='agentId', description='**[Required]** Gets the agent_id of this CloudDbSystemDiscovery. The OCID of the management agent used for the cloud DB system discovery.') - dbaas_parent_infrastructure_id: str = Field(..., alias='dbaasParentInfrastructureId', description='**[Required]** Gets the dbaas_parent_infrastructure_id of this CloudDbSystemDiscovery. The OCID of the parent cloud DB Infrastructure. For VM Dbsystems, it will be the DBSystem Id. For ExaCS and ExaCC, it will be the cloudVmClusterId and vmClusterId respectively.') - deployment_type: Literal['VM', 'EXADATA', 'EXADATA_CC', 'EXADATA_XS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='deploymentType', description='**[Required]** Gets the deployment_type of this CloudDbSystemDiscovery.\nThe deployment type of cloud dbsystem.\n\nAllowed values for this property are: "VM", "EXADATA", "EXADATA_CC", "EXADATA_XS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - grid_home: str | None = Field(None, alias='gridHome', description='Gets the grid_home of this CloudDbSystemDiscovery.\nThe directory in which Oracle Grid Infrastructure is installed.') - discovered_components: list[DiscoveredCloudDbSystemComponent] | None = Field(None, alias='discoveredComponents', description='Gets the discovered_components of this CloudDbSystemDiscovery.\nThe list of DB system components that were found in the DB system discovery.') - resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this CloudDbSystemDiscovery. The OCID of the existing OCI resource matching the discovered DB system.') - lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this CloudDbSystemDiscovery.\nThe current lifecycle state of the cloud DB system discovery resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this CloudDbSystemDiscovery.\nAdditional information about the current lifecycle state.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this CloudDbSystemDiscovery.\nThe date and time the cloud DB system discovery was created.') - time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this CloudDbSystemDiscovery.\nThe date and time the cloud DB system discovery was last updated.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudDbSystemDiscovery. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudDbSystemDiscovery. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudDbSystemDiscovery. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class CloudDbSystemDiscoveryCollection(DbmBaseModel): - """A collection of cloud DB system discovery summaries.""" - - items: list[CloudDbSystemDiscoverySummary] = Field(..., description='**[Required]** Gets the items of this CloudDbSystemDiscoveryCollection.\nAn array of cloud DB system discoveries.') - - -class CloudDbSystemDiscoveryConnector(DbmBaseModel): - """The connector details used to connect to the cloud DB system component.""" - - connector_type: Literal['MACS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this CloudDbSystemDiscoveryConnector.\nThe type of connector.\n\nAllowed values for this property are: "MACS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudDbSystemDiscoveryConnector.\nThe user-friendly name for the cloud connector. The name does not have to be unique.') - connection_status: str | None = Field(None, alias='connectionStatus', description='Gets the connection_status of this CloudDbSystemDiscoveryConnector.\nThe status of connectivity to the cloud DB system component.') - connection_failure_message: str | None = Field(None, alias='connectionFailureMessage', description='Gets the connection_failure_message of this CloudDbSystemDiscoveryConnector.\nThe error message indicating the reason for connection failure or `null` if\nthe connection was successful.') - time_connection_status_last_updated: datetime | None = Field(None, alias='timeConnectionStatusLastUpdated', description='Gets the time_connection_status_last_updated of this CloudDbSystemDiscoveryConnector.\nThe date and time the connectionStatus of the cloud DB system connector was last updated.') - - -class CloudDbSystemDiscoveryMacsConnector(DbmBaseModel): - """The details of a cloud DB system connector that uses the -Management Agent Cloud Service (MACS) -to connect to a cloud DB system component.""" - - - - connector_type: Literal['MACS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this CloudDbSystemDiscoveryConnector.\nThe type of connector.\n\nAllowed values for this property are: "MACS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudDbSystemDiscoveryConnector.\nThe user-friendly name for the cloud connector. The name does not have to be unique.') - connection_status: str | None = Field(None, alias='connectionStatus', description='Gets the connection_status of this CloudDbSystemDiscoveryConnector.\nThe status of connectivity to the cloud DB system component.') - connection_failure_message: str | None = Field(None, alias='connectionFailureMessage', description='Gets the connection_failure_message of this CloudDbSystemDiscoveryConnector.\nThe error message indicating the reason for connection failure or `null` if\nthe connection was successful.') - time_connection_status_last_updated: datetime | None = Field(None, alias='timeConnectionStatusLastUpdated', description='Gets the time_connection_status_last_updated of this CloudDbSystemDiscoveryConnector.\nThe date and time the connectionStatus of the cloud DB system connector was last updated.') - agent_id: str = Field(..., alias='agentId', description='**[Required]** Gets the agent_id of this CloudDbSystemDiscoveryMacsConnector. The OCID of the management agent used for the cloud DB system connector.') - connection_info: CloudDbSystemConnectionInfo | None = Field(None, alias='connectionInfo', description='Gets the connection_info of this CloudDbSystemDiscoveryMacsConnector.') - - -class CloudDbSystemDiscoverySummary(DbmBaseModel): - """The summary of a cloud DB system.""" - - id: str = Field(..., description='**[Required]** Gets the id of this CloudDbSystemDiscoverySummary. The OCID of the cloud DB system discovery.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudDbSystemDiscoverySummary.\nThe user-friendly name for the DB system. The name does not have to be unique.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudDbSystemDiscoverySummary. The OCID of the compartment.') - agent_id: str = Field(..., alias='agentId', description='**[Required]** Gets the agent_id of this CloudDbSystemDiscoverySummary. The OCID of the management agent used for the cloud DB system discovery.') - dbaas_parent_infrastructure_id: str = Field(..., alias='dbaasParentInfrastructureId', description='**[Required]** Gets the dbaas_parent_infrastructure_id of this CloudDbSystemDiscoverySummary. The OCID of the parent cloud DB Infrastructure. For VM Dbsystems, it will be the DBSystem Id. For ExaCS and ExaCC, it will be the cloudVmClusterId and vmClusterId respectively.') - deployment_type: Literal['VM', 'EXADATA', 'EXADATA_CC', 'EXADATA_XS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='deploymentType', description='**[Required]** Gets the deployment_type of this CloudDbSystemDiscoverySummary.\nThe deployment type of cloud dbsystem.\n\nAllowed values for this property are: "VM", "EXADATA", "EXADATA_CC", "EXADATA_XS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_state: str = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this CloudDbSystemDiscoverySummary.\nThe current lifecycle state of the cloud DB system discovery resource.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this CloudDbSystemDiscoverySummary.\nAdditional information about the current lifecycle state.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this CloudDbSystemDiscoverySummary.\nThe date and time the cloud DB system discovery was created.') - time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this CloudDbSystemDiscoverySummary.\nThe date and time the cloud DB system discovery was last updated.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudDbSystemDiscoverySummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudDbSystemDiscoverySummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudDbSystemDiscoverySummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class CloudDbSystemMacsConnector(DbmBaseModel): - """The details of a cloud DB system connector that uses the -Management Agent Cloud Service (MACS) -to connect to a cloud DB system component.""" - - - - connector_type: Literal['MACS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this CloudDbSystemConnector.\nThe type of connector.\n\nAllowed values for this property are: "MACS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - id: str = Field(..., description='**[Required]** Gets the id of this CloudDbSystemConnector. The OCID of the cloud DB system connector.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudDbSystemConnector.\nThe user-friendly name for the cloud connector. The name does not have to be unique.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudDbSystemConnector. The OCID of the compartment.') - cloud_db_system_id: str = Field(..., alias='cloudDbSystemId', description='**[Required]** Gets the cloud_db_system_id of this CloudDbSystemConnector. The OCID of the cloud DB system that the connector is a part of.') - connection_status: str | None = Field(None, alias='connectionStatus', description='Gets the connection_status of this CloudDbSystemConnector.\nThe status of connectivity to the cloud DB system component.') - connection_failure_message: str | None = Field(None, alias='connectionFailureMessage', description='Gets the connection_failure_message of this CloudDbSystemConnector.\nThe error message indicating the reason for connection failure or `null` if\nthe connection was successful.') - lifecycle_state: Literal['CREATING', 'NOT_CONNECTED', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this CloudDbSystemConnector.\nThe current lifecycle state of the cloud DB system connector.\n\nAllowed values for this property are: "CREATING", "NOT_CONNECTED", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this CloudDbSystemConnector.\nAdditional information about the current lifecycle state.') - time_connection_status_last_updated: datetime | None = Field(None, alias='timeConnectionStatusLastUpdated', description='Gets the time_connection_status_last_updated of this CloudDbSystemConnector.\nThe date and time the connectionStatus of the cloud DB system connector was last updated.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this CloudDbSystemConnector.\nThe date and time the cloud DB system connector was created.') - time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this CloudDbSystemConnector.\nThe date and time the cloud DB system connector was last updated.') - agent_id: str = Field(..., alias='agentId', description='**[Required]** Gets the agent_id of this CloudDbSystemMacsConnector. The OCID of the management agent used for the cloud DB system connector.') - connection_info: CloudDbSystemConnectionInfo | None = Field(None, alias='connectionInfo', description='Gets the connection_info of this CloudDbSystemMacsConnector.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudDbSystemMacsConnector. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudDbSystemMacsConnector. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudDbSystemMacsConnector. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class CloudDbSystemStackMonitoringConfigDetails(DbmRequestModel): - """The configuration details of Stack Monitoring for a cloud DB system.""" - - is_enabled: bool = Field(..., alias='isEnabled', description='**[Required]** Gets the is_enabled of this CloudDbSystemStackMonitoringConfigDetails.\nThe status of the associated service.') - metadata: str | None = Field(None, description='Gets the metadata of this CloudDbSystemStackMonitoringConfigDetails.\nThe associated service-specific inputs in JSON string format, which Database Management can identify.') - - -class CloudDbSystemSummary(DbmBaseModel): - """The summary of a cloud DB system.""" - - id: str = Field(..., description='**[Required]** Gets the id of this CloudDbSystemSummary. The OCID of the cloud DB system.') - dbaas_parent_infrastructure_id: str = Field(..., alias='dbaasParentInfrastructureId', description='**[Required]** Gets the dbaas_parent_infrastructure_id of this CloudDbSystemSummary. The OCID of the parent cloud DB Infrastructure. For VM Dbsystems, it will be the DBSystem Id. For ExaCS and ExaCC, it will be the cloudVmClusterId and vmClusterId respectively.') - deployment_type: Literal['VM', 'EXADATA', 'EXADATA_CC', 'EXADATA_XS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='deploymentType', description='**[Required]** Gets the deployment_type of this CloudDbSystemSummary.\nThe deployment type of cloud dbsystem.\n\nAllowed values for this property are: "VM", "EXADATA", "EXADATA_CC", "EXADATA_XS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudDbSystemSummary.\nThe user-friendly name for the DB system. The name does not have to be unique.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudDbSystemSummary. The OCID of the compartment.') - home_directory: str | None = Field(None, alias='homeDirectory', description='Gets the home_directory of this CloudDbSystemSummary.\nThe Oracle Grid home directory in case of cluster-based DB system and\nOracle home directory in case of single instance-based DB system.') - database_management_config: CloudDbSystemDatabaseManagementConfigDetails | None = Field(None, alias='databaseManagementConfig', description='Gets the database_management_config of this CloudDbSystemSummary.') - lifecycle_state: str = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this CloudDbSystemSummary.\nThe current lifecycle state of the cloud DB system resource.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this CloudDbSystemSummary.\nAdditional information about the current lifecycle state.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this CloudDbSystemSummary.\nThe date and time the cloud DB system was created.') - time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this CloudDbSystemSummary.\nThe date and time the cloud DB system was last updated.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudDbSystemSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudDbSystemSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudDbSystemSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class CloudExadataInfrastructure(DbmBaseModel): - """The details of the Exadata infrastructure.""" - - id: str = Field(..., description='**[Required]** Gets the id of this DbmResource. The OCID of the Exadata resource.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DbmResource.\nThe name of the Exadata resource. English letters, numbers, "-", "_" and "." only.') - version: str | None = Field(None, description='Gets the version of this DbmResource.\nThe version of the Exadata resource.') - internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this DbmResource.\nThe internal ID of the Exadata resource.') - status: str | None = Field(None, description='Gets the status of this DbmResource.\nThe status of the Exadata resource.') - lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DbmResource.\nThe current lifecycle state of the database resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DbmResource.\nThe timestamp of the creation of the Exadata resource.') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DbmResource.\nThe timestamp of the last update of the Exadata resource.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DbmResource.\nThe details of the lifecycle state of the Exadata resource.') - additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this DbmResource.\nThe additional details of the resource defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') - resource_type: Literal['INFRASTRUCTURE_SUMMARY', 'INFRASTRUCTURE', 'STORAGE_SERVER_SUMMARY', 'STORAGE_SERVER', 'STORAGE_GRID_SUMMARY', 'STORAGE_GRID', 'STORAGE_CONNECTOR_SUMMARY', 'STORAGE_CONNECTOR', 'DATABASE_SYSTEM_SUMMARY', 'DATABASE_SUMMARY', 'VM_CLUSTER_SUMMARY', 'CLOUD_INFRASTRUCTURE_SUMMARY', 'CLOUD_INFRASTRUCTURE', 'CLOUD_STORAGE_SERVER_SUMMARY', 'CLOUD_STORAGE_SERVER', 'CLOUD_STORAGE_GRID_SUMMARY', 'CLOUD_STORAGE_GRID', 'CLOUD_STORAGE_CONNECTOR_SUMMARY', 'CLOUD_STORAGE_CONNECTOR', 'MANAGED_DATABASE_SUMMARY', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceType', description='**[Required]** Gets the resource_type of this DbmResource.\nThe type of Exadata resource.\n\nAllowed values for this property are: "INFRASTRUCTURE_SUMMARY", "INFRASTRUCTURE", "STORAGE_SERVER_SUMMARY", "STORAGE_SERVER", "STORAGE_GRID_SUMMARY", "STORAGE_GRID", "STORAGE_CONNECTOR_SUMMARY", "STORAGE_CONNECTOR", "DATABASE_SYSTEM_SUMMARY", "DATABASE_SUMMARY", "VM_CLUSTER_SUMMARY", "CLOUD_INFRASTRUCTURE_SUMMARY", "CLOUD_INFRASTRUCTURE", "CLOUD_STORAGE_SERVER_SUMMARY", "CLOUD_STORAGE_SERVER", "CLOUD_STORAGE_GRID_SUMMARY", "CLOUD_STORAGE_GRID", "CLOUD_STORAGE_CONNECTOR_SUMMARY", "CLOUD_STORAGE_CONNECTOR", "MANAGED_DATABASE_SUMMARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - rack_size: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='rackSize', description='Gets the rack_size of this CloudExadataInfrastructure.\nThe rack size of the Exadata infrastructure.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this CloudExadataInfrastructure. The OCID of the compartment.') - license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='licenseModel', description='Gets the license_model of this CloudExadataInfrastructure.\nThe Oracle license model that applies to the database management resources.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - storage_grid: CloudExadataStorageGridSummary | None = Field(None, alias='storageGrid', description='Gets the storage_grid of this CloudExadataInfrastructure.') - deployment_type: Literal['EXADATA', 'EXADATA_CC', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='deploymentType', description='Gets the deployment_type of this CloudExadataInfrastructure.\nThe infrastructure deployment type.\n\nAllowed values for this property are: "EXADATA", "EXADATA_CC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - vm_clusters: list[ExadataVmClusterSummary] | None = Field(None, alias='vmClusters', description='Gets the vm_clusters of this CloudExadataInfrastructure.\nThe list of VM Clusters in the Exadata infrastructure.') - database_compartments: list[str] | None = Field(None, alias='databaseCompartments', description='Gets the database_compartments of this CloudExadataInfrastructure. The list of OCIDs] of the compartments.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudExadataInfrastructure. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudExadataInfrastructure. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudExadataInfrastructure. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class CloudExadataInfrastructureCollection(DbmBaseModel): - """A list of the Exadata infrastructure resources.""" - - items: list[CloudExadataInfrastructureSummary] = Field(..., description='**[Required]** Gets the items of this CloudExadataInfrastructureCollection.\nA list of Exadata infrastructures.') - - -class CloudExadataInfrastructureDiscovery(DbmBaseModel): - """The result of the Exadata infrastructure discovery.""" - - id: str | None = Field(None, description='Gets the id of this EntityDiscovered. The OCID of the entity discovered.') - agent_id: str | None = Field(None, alias='agentId', description='Gets the agent_id of this EntityDiscovered. The OCID of the agent used for monitoring.') - connector_id: str | None = Field(None, alias='connectorId', description='Gets the connector_id of this EntityDiscovered. The OCID of the associated connector.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this EntityDiscovered.\nThe name of the entity.') - version: str | None = Field(None, description='Gets the version of this EntityDiscovered.\nThe version of the entity.') - internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this EntityDiscovered.\nThe internal identifier of the entity.') - status: str | None = Field(None, description='Gets the status of this EntityDiscovered.\nThe status of the entity.') - discover_status: Literal['PREV_DISCOVERED', 'NEW_DISCOVERED', 'NOT_FOUND', 'DISCOVERING', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='discoverStatus', description='Gets the discover_status of this EntityDiscovered.\nThe status of the entity discovery.\n\nAllowed values for this property are: "PREV_DISCOVERED", "NEW_DISCOVERED", "NOT_FOUND", "DISCOVERING", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - discover_error_code: str | None = Field(None, alias='discoverErrorCode', description='Gets the discover_error_code of this EntityDiscovered.\nThe error code of the discovery.') - discover_error_msg: str | None = Field(None, alias='discoverErrorMsg', description='Gets the discover_error_msg of this EntityDiscovered.\nThe error message of the discovery.') - entity_type: Literal['STORAGE_SERVER_DISCOVER_SUMMARY', 'STORAGE_GRID_DISCOVER_SUMMARY', 'DATABASE_SYSTEM_DISCOVER_SUMMARY', 'INFRASTRUCTURE_DISCOVER_SUMMARY', 'INFRASTRUCTURE_DISCOVER', 'MANAGED_STORAGE_SERVER_DISCOVER_SUMMARY', 'MANAGED_STORAGE_GRID_DISCOVER_SUMMARY', 'VM_CLUSTER_DISCOVER_SUMMARY', 'MANAGED_INFRASTRUCTURE_DISCOVER_SUMMARY', 'CLOUD_INFRASTRUCTURE_DISCOVER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entityType', description='**[Required]** Gets the entity_type of this EntityDiscovered.\nThe type of discovered entities.\n\nAllowed values for this property are: "STORAGE_SERVER_DISCOVER_SUMMARY", "STORAGE_GRID_DISCOVER_SUMMARY", "DATABASE_SYSTEM_DISCOVER_SUMMARY", "INFRASTRUCTURE_DISCOVER_SUMMARY", "INFRASTRUCTURE_DISCOVER", "MANAGED_STORAGE_SERVER_DISCOVER_SUMMARY", "MANAGED_STORAGE_GRID_DISCOVER_SUMMARY", "VM_CLUSTER_DISCOVER_SUMMARY", "MANAGED_INFRASTRUCTURE_DISCOVER_SUMMARY", "CLOUD_INFRASTRUCTURE_DISCOVER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - discovery_key: str = Field(..., alias='discoveryKey', description='**[Required]** Gets the discovery_key of this CloudExadataInfrastructureDiscovery.\nThe unique key of the discovery request.') - license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='licenseModel', description='Gets the license_model of this CloudExadataInfrastructureDiscovery.\nThe Oracle license model that applies to the database management resources.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this CloudExadataInfrastructureDiscovery. The OCID of the compartment.') - rack_size: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='rackSize', description='Gets the rack_size of this CloudExadataInfrastructureDiscovery.\nThe size of the Exadata infrastructure.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - grid_home_path: str | None = Field(None, alias='gridHomePath', description='Gets the grid_home_path of this CloudExadataInfrastructureDiscovery.\nThe Oracle home path of the Exadata infrastructure.') - vm_clusters: list[VMClusterDiscoverySummary] | None = Field(None, alias='vmClusters', description='Gets the vm_clusters of this CloudExadataInfrastructureDiscovery.\nThe list of VM Clusters in the Exadata infrastructure.') - storage_grid: StorageGridDiscoverySummary | None = Field(None, alias='storageGrid', description='Gets the storage_grid of this CloudExadataInfrastructureDiscovery.') - storage_servers: list[StorageServerDiscoverySummary] | None = Field(None, alias='storageServers', description='Gets the storage_servers of this CloudExadataInfrastructureDiscovery.\nThe list of storage servers in the Exadata infrastructure.') - - -class CloudExadataInfrastructureSummary(DbmBaseModel): - """The Exadata infrastructure.""" - - id: str = Field(..., description='**[Required]** Gets the id of this DbmResource. The OCID of the Exadata resource.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DbmResource.\nThe name of the Exadata resource. English letters, numbers, "-", "_" and "." only.') - version: str | None = Field(None, description='Gets the version of this DbmResource.\nThe version of the Exadata resource.') - internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this DbmResource.\nThe internal ID of the Exadata resource.') - status: str | None = Field(None, description='Gets the status of this DbmResource.\nThe status of the Exadata resource.') - lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DbmResource.\nThe current lifecycle state of the database resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DbmResource.\nThe timestamp of the creation of the Exadata resource.') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DbmResource.\nThe timestamp of the last update of the Exadata resource.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DbmResource.\nThe details of the lifecycle state of the Exadata resource.') - additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this DbmResource.\nThe additional details of the resource defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') - resource_type: Literal['INFRASTRUCTURE_SUMMARY', 'INFRASTRUCTURE', 'STORAGE_SERVER_SUMMARY', 'STORAGE_SERVER', 'STORAGE_GRID_SUMMARY', 'STORAGE_GRID', 'STORAGE_CONNECTOR_SUMMARY', 'STORAGE_CONNECTOR', 'DATABASE_SYSTEM_SUMMARY', 'DATABASE_SUMMARY', 'VM_CLUSTER_SUMMARY', 'CLOUD_INFRASTRUCTURE_SUMMARY', 'CLOUD_INFRASTRUCTURE', 'CLOUD_STORAGE_SERVER_SUMMARY', 'CLOUD_STORAGE_SERVER', 'CLOUD_STORAGE_GRID_SUMMARY', 'CLOUD_STORAGE_GRID', 'CLOUD_STORAGE_CONNECTOR_SUMMARY', 'CLOUD_STORAGE_CONNECTOR', 'MANAGED_DATABASE_SUMMARY', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceType', description='**[Required]** Gets the resource_type of this DbmResource.\nThe type of Exadata resource.\n\nAllowed values for this property are: "INFRASTRUCTURE_SUMMARY", "INFRASTRUCTURE", "STORAGE_SERVER_SUMMARY", "STORAGE_SERVER", "STORAGE_GRID_SUMMARY", "STORAGE_GRID", "STORAGE_CONNECTOR_SUMMARY", "STORAGE_CONNECTOR", "DATABASE_SYSTEM_SUMMARY", "DATABASE_SUMMARY", "VM_CLUSTER_SUMMARY", "CLOUD_INFRASTRUCTURE_SUMMARY", "CLOUD_INFRASTRUCTURE", "CLOUD_STORAGE_SERVER_SUMMARY", "CLOUD_STORAGE_SERVER", "CLOUD_STORAGE_GRID_SUMMARY", "CLOUD_STORAGE_GRID", "CLOUD_STORAGE_CONNECTOR_SUMMARY", "CLOUD_STORAGE_CONNECTOR", "MANAGED_DATABASE_SUMMARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - rack_size: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='rackSize', description='Gets the rack_size of this CloudExadataInfrastructureSummary.\nThe rack size of the Exadata infrastructure.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - infrastructure_type: Literal['EXADATA', 'EXADATA_CC', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='infrastructureType', description='Gets the infrastructure_type of this CloudExadataInfrastructureSummary.\nThe type of the Exadata infrastructure.\n\nAllowed values for this property are: "EXADATA", "EXADATA_CC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudExadataInfrastructureSummary. The OCID of the compartment.') - license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='licenseModel', description='Gets the license_model of this CloudExadataInfrastructureSummary.\nThe Oracle license model that applies to the database management resources.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - grid_home_path: str | None = Field(None, alias='gridHomePath', description='Gets the grid_home_path of this CloudExadataInfrastructureSummary.\nThe Oracle grid home path.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudExadataInfrastructureSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudExadataInfrastructureSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudExadataInfrastructureSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class CloudExadataStorageConnector(DbmBaseModel): - """The details of the Exadata storage server connector.""" - - id: str = Field(..., description='**[Required]** Gets the id of this DbmResource. The OCID of the Exadata resource.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DbmResource.\nThe name of the Exadata resource. English letters, numbers, "-", "_" and "." only.') - version: str | None = Field(None, description='Gets the version of this DbmResource.\nThe version of the Exadata resource.') - internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this DbmResource.\nThe internal ID of the Exadata resource.') - status: str | None = Field(None, description='Gets the status of this DbmResource.\nThe status of the Exadata resource.') - lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DbmResource.\nThe current lifecycle state of the database resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DbmResource.\nThe timestamp of the creation of the Exadata resource.') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DbmResource.\nThe timestamp of the last update of the Exadata resource.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DbmResource.\nThe details of the lifecycle state of the Exadata resource.') - additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this DbmResource.\nThe additional details of the resource defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') - resource_type: Literal['INFRASTRUCTURE_SUMMARY', 'INFRASTRUCTURE', 'STORAGE_SERVER_SUMMARY', 'STORAGE_SERVER', 'STORAGE_GRID_SUMMARY', 'STORAGE_GRID', 'STORAGE_CONNECTOR_SUMMARY', 'STORAGE_CONNECTOR', 'DATABASE_SYSTEM_SUMMARY', 'DATABASE_SUMMARY', 'VM_CLUSTER_SUMMARY', 'CLOUD_INFRASTRUCTURE_SUMMARY', 'CLOUD_INFRASTRUCTURE', 'CLOUD_STORAGE_SERVER_SUMMARY', 'CLOUD_STORAGE_SERVER', 'CLOUD_STORAGE_GRID_SUMMARY', 'CLOUD_STORAGE_GRID', 'CLOUD_STORAGE_CONNECTOR_SUMMARY', 'CLOUD_STORAGE_CONNECTOR', 'MANAGED_DATABASE_SUMMARY', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceType', description='**[Required]** Gets the resource_type of this DbmResource.\nThe type of Exadata resource.\n\nAllowed values for this property are: "INFRASTRUCTURE_SUMMARY", "INFRASTRUCTURE", "STORAGE_SERVER_SUMMARY", "STORAGE_SERVER", "STORAGE_GRID_SUMMARY", "STORAGE_GRID", "STORAGE_CONNECTOR_SUMMARY", "STORAGE_CONNECTOR", "DATABASE_SYSTEM_SUMMARY", "DATABASE_SUMMARY", "VM_CLUSTER_SUMMARY", "CLOUD_INFRASTRUCTURE_SUMMARY", "CLOUD_INFRASTRUCTURE", "CLOUD_STORAGE_SERVER_SUMMARY", "CLOUD_STORAGE_SERVER", "CLOUD_STORAGE_GRID_SUMMARY", "CLOUD_STORAGE_GRID", "CLOUD_STORAGE_CONNECTOR_SUMMARY", "CLOUD_STORAGE_CONNECTOR", "MANAGED_DATABASE_SUMMARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - exadata_infrastructure_id: str | None = Field(None, alias='exadataInfrastructureId', description='Gets the exadata_infrastructure_id of this CloudExadataStorageConnector. The OCID of the Exadata infrastructure.') - agent_id: str | None = Field(None, alias='agentId', description='Gets the agent_id of this CloudExadataStorageConnector. The OCID of the agent for the Exadata storage server.') - connection_uri: str | None = Field(None, alias='connectionUri', description='Gets the connection_uri of this CloudExadataStorageConnector. The unique string of the connection. For example, ".') - storage_server_id: str | None = Field(None, alias='storageServerId', description='Gets the storage_server_id of this CloudExadataStorageConnector. The OCID of the Exadata storage server.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudExadataStorageConnector. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudExadataStorageConnector. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudExadataStorageConnector. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class CloudExadataStorageConnectorCollection(DbmBaseModel): - """The Exadata storage server connector list.""" - - items: list[CloudExadataStorageConnectorSummary] = Field(..., description='**[Required]** Gets the items of this CloudExadataStorageConnectorCollection.\nA list of Exadata storage server connectors.') - - -class CloudExadataStorageConnectorStatus(DbmBaseModel): - """The status of an Exadata storage server connector.""" - - id: str | None = Field(None, description='Gets the id of this CloudExadataStorageConnectorStatus. The OCID of the Exadata storage server connector.') - status: Literal['SUCCEEDED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the status of this CloudExadataStorageConnectorStatus.\nThe connection status of the connector.\n\nAllowed values for this property are: "SUCCEEDED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - error_message: str | None = Field(None, alias='errorMessage', description='Gets the error_message of this CloudExadataStorageConnectorStatus.\nThe error message indicating the reason for failure or `null` if the connection was successful.') - - -class CloudExadataStorageConnectorSummary(DbmBaseModel): - """The connector of the Exadata storage server.""" - - id: str = Field(..., description='**[Required]** Gets the id of this DbmResource. The OCID of the Exadata resource.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DbmResource.\nThe name of the Exadata resource. English letters, numbers, "-", "_" and "." only.') - version: str | None = Field(None, description='Gets the version of this DbmResource.\nThe version of the Exadata resource.') - internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this DbmResource.\nThe internal ID of the Exadata resource.') - status: str | None = Field(None, description='Gets the status of this DbmResource.\nThe status of the Exadata resource.') - lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DbmResource.\nThe current lifecycle state of the database resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DbmResource.\nThe timestamp of the creation of the Exadata resource.') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DbmResource.\nThe timestamp of the last update of the Exadata resource.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DbmResource.\nThe details of the lifecycle state of the Exadata resource.') - additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this DbmResource.\nThe additional details of the resource defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') - resource_type: Literal['INFRASTRUCTURE_SUMMARY', 'INFRASTRUCTURE', 'STORAGE_SERVER_SUMMARY', 'STORAGE_SERVER', 'STORAGE_GRID_SUMMARY', 'STORAGE_GRID', 'STORAGE_CONNECTOR_SUMMARY', 'STORAGE_CONNECTOR', 'DATABASE_SYSTEM_SUMMARY', 'DATABASE_SUMMARY', 'VM_CLUSTER_SUMMARY', 'CLOUD_INFRASTRUCTURE_SUMMARY', 'CLOUD_INFRASTRUCTURE', 'CLOUD_STORAGE_SERVER_SUMMARY', 'CLOUD_STORAGE_SERVER', 'CLOUD_STORAGE_GRID_SUMMARY', 'CLOUD_STORAGE_GRID', 'CLOUD_STORAGE_CONNECTOR_SUMMARY', 'CLOUD_STORAGE_CONNECTOR', 'MANAGED_DATABASE_SUMMARY', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceType', description='**[Required]** Gets the resource_type of this DbmResource.\nThe type of Exadata resource.\n\nAllowed values for this property are: "INFRASTRUCTURE_SUMMARY", "INFRASTRUCTURE", "STORAGE_SERVER_SUMMARY", "STORAGE_SERVER", "STORAGE_GRID_SUMMARY", "STORAGE_GRID", "STORAGE_CONNECTOR_SUMMARY", "STORAGE_CONNECTOR", "DATABASE_SYSTEM_SUMMARY", "DATABASE_SUMMARY", "VM_CLUSTER_SUMMARY", "CLOUD_INFRASTRUCTURE_SUMMARY", "CLOUD_INFRASTRUCTURE", "CLOUD_STORAGE_SERVER_SUMMARY", "CLOUD_STORAGE_SERVER", "CLOUD_STORAGE_GRID_SUMMARY", "CLOUD_STORAGE_GRID", "CLOUD_STORAGE_CONNECTOR_SUMMARY", "CLOUD_STORAGE_CONNECTOR", "MANAGED_DATABASE_SUMMARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - connection_uri: str | None = Field(None, alias='connectionUri', description='Gets the connection_uri of this CloudExadataStorageConnectorSummary. The unique string of the connection. For example, ".') - storage_server_id: str | None = Field(None, alias='storageServerId', description='Gets the storage_server_id of this CloudExadataStorageConnectorSummary. The OCID of the Exadata storage server.') - agent_id: str | None = Field(None, alias='agentId', description='Gets the agent_id of this CloudExadataStorageConnectorSummary. The OCID of the agent for the Exadata storage server.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudExadataStorageConnectorSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudExadataStorageConnectorSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudExadataStorageConnectorSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class CloudExadataStorageGrid(DbmBaseModel): - """The details of the Exadata storage server grid.""" - - id: str = Field(..., description='**[Required]** Gets the id of this DbmResource. The OCID of the Exadata resource.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DbmResource.\nThe name of the Exadata resource. English letters, numbers, "-", "_" and "." only.') - version: str | None = Field(None, description='Gets the version of this DbmResource.\nThe version of the Exadata resource.') - internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this DbmResource.\nThe internal ID of the Exadata resource.') - status: str | None = Field(None, description='Gets the status of this DbmResource.\nThe status of the Exadata resource.') - lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DbmResource.\nThe current lifecycle state of the database resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DbmResource.\nThe timestamp of the creation of the Exadata resource.') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DbmResource.\nThe timestamp of the last update of the Exadata resource.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DbmResource.\nThe details of the lifecycle state of the Exadata resource.') - additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this DbmResource.\nThe additional details of the resource defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') - resource_type: Literal['INFRASTRUCTURE_SUMMARY', 'INFRASTRUCTURE', 'STORAGE_SERVER_SUMMARY', 'STORAGE_SERVER', 'STORAGE_GRID_SUMMARY', 'STORAGE_GRID', 'STORAGE_CONNECTOR_SUMMARY', 'STORAGE_CONNECTOR', 'DATABASE_SYSTEM_SUMMARY', 'DATABASE_SUMMARY', 'VM_CLUSTER_SUMMARY', 'CLOUD_INFRASTRUCTURE_SUMMARY', 'CLOUD_INFRASTRUCTURE', 'CLOUD_STORAGE_SERVER_SUMMARY', 'CLOUD_STORAGE_SERVER', 'CLOUD_STORAGE_GRID_SUMMARY', 'CLOUD_STORAGE_GRID', 'CLOUD_STORAGE_CONNECTOR_SUMMARY', 'CLOUD_STORAGE_CONNECTOR', 'MANAGED_DATABASE_SUMMARY', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceType', description='**[Required]** Gets the resource_type of this DbmResource.\nThe type of Exadata resource.\n\nAllowed values for this property are: "INFRASTRUCTURE_SUMMARY", "INFRASTRUCTURE", "STORAGE_SERVER_SUMMARY", "STORAGE_SERVER", "STORAGE_GRID_SUMMARY", "STORAGE_GRID", "STORAGE_CONNECTOR_SUMMARY", "STORAGE_CONNECTOR", "DATABASE_SYSTEM_SUMMARY", "DATABASE_SUMMARY", "VM_CLUSTER_SUMMARY", "CLOUD_INFRASTRUCTURE_SUMMARY", "CLOUD_INFRASTRUCTURE", "CLOUD_STORAGE_SERVER_SUMMARY", "CLOUD_STORAGE_SERVER", "CLOUD_STORAGE_GRID_SUMMARY", "CLOUD_STORAGE_GRID", "CLOUD_STORAGE_CONNECTOR_SUMMARY", "CLOUD_STORAGE_CONNECTOR", "MANAGED_DATABASE_SUMMARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - exadata_infrastructure_id: str | None = Field(None, alias='exadataInfrastructureId', description='Gets the exadata_infrastructure_id of this CloudExadataStorageGrid. The OCID of the Exadata infrastructure.') - server_count: float | None = Field(None, ge=0, alias='serverCount', description='Gets the server_count of this CloudExadataStorageGrid.\nThe number of Exadata storage servers in the Exadata infrastructure.') - storage_servers: list[CloudExadataStorageServerSummary] | None = Field(None, alias='storageServers', description='Gets the storage_servers of this CloudExadataStorageGrid.\nA list of monitored Exadata storage servers.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudExadataStorageGrid. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudExadataStorageGrid. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudExadataStorageGrid. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class CloudExadataStorageGridSummary(DbmBaseModel): - """The Exadata storage server grid of the Exadata infrastructure.""" - - id: str = Field(..., description='**[Required]** Gets the id of this DbmResource. The OCID of the Exadata resource.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DbmResource.\nThe name of the Exadata resource. English letters, numbers, "-", "_" and "." only.') - version: str | None = Field(None, description='Gets the version of this DbmResource.\nThe version of the Exadata resource.') - internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this DbmResource.\nThe internal ID of the Exadata resource.') - status: str | None = Field(None, description='Gets the status of this DbmResource.\nThe status of the Exadata resource.') - lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DbmResource.\nThe current lifecycle state of the database resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DbmResource.\nThe timestamp of the creation of the Exadata resource.') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DbmResource.\nThe timestamp of the last update of the Exadata resource.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DbmResource.\nThe details of the lifecycle state of the Exadata resource.') - additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this DbmResource.\nThe additional details of the resource defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') - resource_type: Literal['INFRASTRUCTURE_SUMMARY', 'INFRASTRUCTURE', 'STORAGE_SERVER_SUMMARY', 'STORAGE_SERVER', 'STORAGE_GRID_SUMMARY', 'STORAGE_GRID', 'STORAGE_CONNECTOR_SUMMARY', 'STORAGE_CONNECTOR', 'DATABASE_SYSTEM_SUMMARY', 'DATABASE_SUMMARY', 'VM_CLUSTER_SUMMARY', 'CLOUD_INFRASTRUCTURE_SUMMARY', 'CLOUD_INFRASTRUCTURE', 'CLOUD_STORAGE_SERVER_SUMMARY', 'CLOUD_STORAGE_SERVER', 'CLOUD_STORAGE_GRID_SUMMARY', 'CLOUD_STORAGE_GRID', 'CLOUD_STORAGE_CONNECTOR_SUMMARY', 'CLOUD_STORAGE_CONNECTOR', 'MANAGED_DATABASE_SUMMARY', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceType', description='**[Required]** Gets the resource_type of this DbmResource.\nThe type of Exadata resource.\n\nAllowed values for this property are: "INFRASTRUCTURE_SUMMARY", "INFRASTRUCTURE", "STORAGE_SERVER_SUMMARY", "STORAGE_SERVER", "STORAGE_GRID_SUMMARY", "STORAGE_GRID", "STORAGE_CONNECTOR_SUMMARY", "STORAGE_CONNECTOR", "DATABASE_SYSTEM_SUMMARY", "DATABASE_SUMMARY", "VM_CLUSTER_SUMMARY", "CLOUD_INFRASTRUCTURE_SUMMARY", "CLOUD_INFRASTRUCTURE", "CLOUD_STORAGE_SERVER_SUMMARY", "CLOUD_STORAGE_SERVER", "CLOUD_STORAGE_GRID_SUMMARY", "CLOUD_STORAGE_GRID", "CLOUD_STORAGE_CONNECTOR_SUMMARY", "CLOUD_STORAGE_CONNECTOR", "MANAGED_DATABASE_SUMMARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - server_count: int | None = Field(None, ge=0, alias='serverCount', description='Gets the server_count of this CloudExadataStorageGridSummary.\nThe number of Exadata storage servers in the Exadata infrastructure.') - - -class CloudExadataStorageServer(DbmBaseModel): - """The details of the Exadata storage server.""" - - id: str = Field(..., description='**[Required]** Gets the id of this DbmResource. The OCID of the Exadata resource.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DbmResource.\nThe name of the Exadata resource. English letters, numbers, "-", "_" and "." only.') - version: str | None = Field(None, description='Gets the version of this DbmResource.\nThe version of the Exadata resource.') - internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this DbmResource.\nThe internal ID of the Exadata resource.') - status: str | None = Field(None, description='Gets the status of this DbmResource.\nThe status of the Exadata resource.') - lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DbmResource.\nThe current lifecycle state of the database resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DbmResource.\nThe timestamp of the creation of the Exadata resource.') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DbmResource.\nThe timestamp of the last update of the Exadata resource.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DbmResource.\nThe details of the lifecycle state of the Exadata resource.') - additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this DbmResource.\nThe additional details of the resource defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') - resource_type: Literal['INFRASTRUCTURE_SUMMARY', 'INFRASTRUCTURE', 'STORAGE_SERVER_SUMMARY', 'STORAGE_SERVER', 'STORAGE_GRID_SUMMARY', 'STORAGE_GRID', 'STORAGE_CONNECTOR_SUMMARY', 'STORAGE_CONNECTOR', 'DATABASE_SYSTEM_SUMMARY', 'DATABASE_SUMMARY', 'VM_CLUSTER_SUMMARY', 'CLOUD_INFRASTRUCTURE_SUMMARY', 'CLOUD_INFRASTRUCTURE', 'CLOUD_STORAGE_SERVER_SUMMARY', 'CLOUD_STORAGE_SERVER', 'CLOUD_STORAGE_GRID_SUMMARY', 'CLOUD_STORAGE_GRID', 'CLOUD_STORAGE_CONNECTOR_SUMMARY', 'CLOUD_STORAGE_CONNECTOR', 'MANAGED_DATABASE_SUMMARY', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceType', description='**[Required]** Gets the resource_type of this DbmResource.\nThe type of Exadata resource.\n\nAllowed values for this property are: "INFRASTRUCTURE_SUMMARY", "INFRASTRUCTURE", "STORAGE_SERVER_SUMMARY", "STORAGE_SERVER", "STORAGE_GRID_SUMMARY", "STORAGE_GRID", "STORAGE_CONNECTOR_SUMMARY", "STORAGE_CONNECTOR", "DATABASE_SYSTEM_SUMMARY", "DATABASE_SUMMARY", "VM_CLUSTER_SUMMARY", "CLOUD_INFRASTRUCTURE_SUMMARY", "CLOUD_INFRASTRUCTURE", "CLOUD_STORAGE_SERVER_SUMMARY", "CLOUD_STORAGE_SERVER", "CLOUD_STORAGE_GRID_SUMMARY", "CLOUD_STORAGE_GRID", "CLOUD_STORAGE_CONNECTOR_SUMMARY", "CLOUD_STORAGE_CONNECTOR", "MANAGED_DATABASE_SUMMARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - exadata_infrastructure_id: str | None = Field(None, alias='exadataInfrastructureId', description='Gets the exadata_infrastructure_id of this CloudExadataStorageServer. The OCID of the Exadata infrastructure.') - storage_grid_id: str | None = Field(None, alias='storageGridId', description='Gets the storage_grid_id of this CloudExadataStorageServer. The OCID of the Exadata storage server grid.') - make_model: str | None = Field(None, alias='makeModel', description='Gets the make_model of this CloudExadataStorageServer.\nThe make model of the Exadata storage server.') - ip_address: str | None = Field(None, alias='ipAddress', description='Gets the ip_address of this CloudExadataStorageServer.\nThe IP address of the Exadata storage server.') - cpu_count: float | None = Field(None, ge=0, alias='cpuCount', description='Gets the cpu_count of this CloudExadataStorageServer.\nThe CPU count of the Exadata storage server.') - memory_gb: float | None = Field(None, alias='memoryGB', description='Gets the memory_gb of this CloudExadataStorageServer.\nThe Exadata storage server memory size in GB.') - max_hard_disk_iops: int | None = Field(None, alias='maxHardDiskIOPS', description='Gets the max_hard_disk_iops of this CloudExadataStorageServer.\nThe maximum hard disk IO operations per second of the Exadata storage server.') - max_hard_disk_throughput: int | None = Field(None, alias='maxHardDiskThroughput', description='Gets the max_hard_disk_throughput of this CloudExadataStorageServer.\nThe maximum hard disk IO throughput in MB/s of the Exadata storage server.') - max_flash_disk_iops: int | None = Field(None, alias='maxFlashDiskIOPS', description='Gets the max_flash_disk_iops of this CloudExadataStorageServer.\nThe maximum flash disk IO operations per second of the Exadata storage server.') - max_flash_disk_throughput: int | None = Field(None, alias='maxFlashDiskThroughput', description='Gets the max_flash_disk_throughput of this CloudExadataStorageServer.\nThe maximum flash disk IO throughput in MB/s of the Exadata storage server.') - connector: CloudExadataStorageConnectorSummary | None = Field(None, description='Gets the connector of this CloudExadataStorageServer.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudExadataStorageServer. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudExadataStorageServer. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudExadataStorageServer. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class CloudExadataStorageServerCollection(DbmBaseModel): - """The Exadata storage server list.""" - - items: list[CloudExadataStorageServerSummary] = Field(..., description='**[Required]** Gets the items of this CloudExadataStorageServerCollection.\nA list of Exadata storage servers.') - - -class CloudExadataStorageServerSummary(DbmBaseModel): - """The Exadata storage server of the Exadata infrastructure.""" - - id: str = Field(..., description='**[Required]** Gets the id of this DbmResource. The OCID of the Exadata resource.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DbmResource.\nThe name of the Exadata resource. English letters, numbers, "-", "_" and "." only.') - version: str | None = Field(None, description='Gets the version of this DbmResource.\nThe version of the Exadata resource.') - internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this DbmResource.\nThe internal ID of the Exadata resource.') - status: str | None = Field(None, description='Gets the status of this DbmResource.\nThe status of the Exadata resource.') - lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DbmResource.\nThe current lifecycle state of the database resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DbmResource.\nThe timestamp of the creation of the Exadata resource.') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DbmResource.\nThe timestamp of the last update of the Exadata resource.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DbmResource.\nThe details of the lifecycle state of the Exadata resource.') - additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this DbmResource.\nThe additional details of the resource defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') - resource_type: Literal['INFRASTRUCTURE_SUMMARY', 'INFRASTRUCTURE', 'STORAGE_SERVER_SUMMARY', 'STORAGE_SERVER', 'STORAGE_GRID_SUMMARY', 'STORAGE_GRID', 'STORAGE_CONNECTOR_SUMMARY', 'STORAGE_CONNECTOR', 'DATABASE_SYSTEM_SUMMARY', 'DATABASE_SUMMARY', 'VM_CLUSTER_SUMMARY', 'CLOUD_INFRASTRUCTURE_SUMMARY', 'CLOUD_INFRASTRUCTURE', 'CLOUD_STORAGE_SERVER_SUMMARY', 'CLOUD_STORAGE_SERVER', 'CLOUD_STORAGE_GRID_SUMMARY', 'CLOUD_STORAGE_GRID', 'CLOUD_STORAGE_CONNECTOR_SUMMARY', 'CLOUD_STORAGE_CONNECTOR', 'MANAGED_DATABASE_SUMMARY', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceType', description='**[Required]** Gets the resource_type of this DbmResource.\nThe type of Exadata resource.\n\nAllowed values for this property are: "INFRASTRUCTURE_SUMMARY", "INFRASTRUCTURE", "STORAGE_SERVER_SUMMARY", "STORAGE_SERVER", "STORAGE_GRID_SUMMARY", "STORAGE_GRID", "STORAGE_CONNECTOR_SUMMARY", "STORAGE_CONNECTOR", "DATABASE_SYSTEM_SUMMARY", "DATABASE_SUMMARY", "VM_CLUSTER_SUMMARY", "CLOUD_INFRASTRUCTURE_SUMMARY", "CLOUD_INFRASTRUCTURE", "CLOUD_STORAGE_SERVER_SUMMARY", "CLOUD_STORAGE_SERVER", "CLOUD_STORAGE_GRID_SUMMARY", "CLOUD_STORAGE_GRID", "CLOUD_STORAGE_CONNECTOR_SUMMARY", "CLOUD_STORAGE_CONNECTOR", "MANAGED_DATABASE_SUMMARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - make_model: str | None = Field(None, alias='makeModel', description='Gets the make_model of this CloudExadataStorageServerSummary.\nThe make model of the Exadata storage server.') - ip_address: str | None = Field(None, alias='ipAddress', description='Gets the ip_address of this CloudExadataStorageServerSummary.\nThe IP address of the Exadata storage server.') - cpu_count: int | None = Field(None, ge=0, alias='cpuCount', description='Gets the cpu_count of this CloudExadataStorageServerSummary.\nThe CPU count of the Exadata storage server.') - memory_gb: float | None = Field(None, alias='memoryGB', description='Gets the memory_gb of this CloudExadataStorageServerSummary.\nThe Exadata storage server memory size in GB.') - max_hard_disk_iops: int | None = Field(None, alias='maxHardDiskIOPS', description='Gets the max_hard_disk_iops of this CloudExadataStorageServerSummary.\nThe maximum hard disk IO operations per second of the Exadata storage server.') - max_hard_disk_throughput: int | None = Field(None, alias='maxHardDiskThroughput', description='Gets the max_hard_disk_throughput of this CloudExadataStorageServerSummary.\nThe maximum hard disk IO throughput in MB/s of the Exadata storage server.') - max_flash_disk_iops: int | None = Field(None, alias='maxFlashDiskIOPS', description='Gets the max_flash_disk_iops of this CloudExadataStorageServerSummary.\nThe maximum flash disk IO operations per second of the Exadata storage server.') - max_flash_disk_throughput: int | None = Field(None, alias='maxFlashDiskThroughput', description='Gets the max_flash_disk_throughput of this CloudExadataStorageServerSummary.\nThe maximum flash disk IO throughput in MB/s of the Exadata storage server.') - connector_id: str | None = Field(None, alias='connectorId', description='Gets the connector_id of this CloudExadataStorageServerSummary. The OCID of the connector.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudExadataStorageServerSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudExadataStorageServerSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudExadataStorageServerSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class CloudIormPlan(DbmBaseModel): - """The IORM plan from an Exadata storage server.""" - - plan_status: Literal['ACTIVE', 'INACTIVE', 'OTHER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='planStatus', description='**[Required]** Gets the plan_status of this CloudIormPlan.\nThe status of the IORM plan.\n\nAllowed values for this property are: "ACTIVE", "INACTIVE", "OTHER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - plan_objective: Literal['AUTO', 'HIGH_THROUGHPUT', 'LOW_LATENCY', 'BALANCED', 'BASIC', 'OTHER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='planObjective', description='**[Required]** Gets the plan_objective of this CloudIormPlan.\nThe objective of the IORM plan.\n\nAllowed values for this property are: "AUTO", "HIGH_THROUGHPUT", "LOW_LATENCY", "BALANCED", "BASIC", "OTHER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - db_plan: DatabasePlan | None = Field(None, alias='dbPlan', description='Gets the db_plan of this CloudIormPlan.') - - -class CloudListener(DbmBaseModel): - """The details of a cloud listener.""" - - id: str = Field(..., description='**[Required]** Gets the id of this CloudListener. The OCID of the cloud listener.') - dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this CloudListener. The OCID in DBaas service.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudListener.\nThe user-friendly name for the cloud listener. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this CloudListener.\nThe name of the cloud listener.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudListener. The OCID of the compartment.') - cloud_db_system_id: str = Field(..., alias='cloudDbSystemId', description='**[Required]** Gets the cloud_db_system_id of this CloudListener. The OCID of the cloud DB system that the listener is a part of.') - cloud_connector_id: str | None = Field(None, alias='cloudConnectorId', description='Gets the cloud_connector_id of this CloudListener. The OCID of the cloud connector.') - cloud_db_node_id: str | None = Field(None, alias='cloudDbNodeId', description='Gets the cloud_db_node_id of this CloudListener. The OCID of the cloud DB node.') - cloud_db_home_id: str | None = Field(None, alias='cloudDbHomeId', description='Gets the cloud_db_home_id of this CloudListener. The OCID of the cloud DB home.') - listener_alias: str | None = Field(None, alias='listenerAlias', description='Gets the listener_alias of this CloudListener.\nThe listener alias.') - listener_type: Literal['ASM', 'LOCAL', 'SCAN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='listenerType', description='Gets the listener_type of this CloudListener.\nThe type of listener.\n\nAllowed values for this property are: "ASM", "LOCAL", "SCAN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this CloudListener.\nThe additional details of the cloud listener defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') - lifecycle_state: Literal['CREATING', 'NOT_CONNECTED', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this CloudListener.\nThe current lifecycle state of the cloud listener.\n\nAllowed values for this property are: "CREATING", "NOT_CONNECTED", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this CloudListener.\nAdditional information about the current lifecycle state.') - listener_ora_location: str | None = Field(None, alias='listenerOraLocation', description='Gets the listener_ora_location of this CloudListener.\nThe location of the listener configuration file listener.ora.') - oracle_home: str | None = Field(None, alias='oracleHome', description='Gets the oracle_home of this CloudListener.\nThe Oracle home location of the listener.') - host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this CloudListener.\nThe name of the host on which the cloud listener is running.') - adr_home_directory: str | None = Field(None, alias='adrHomeDirectory', description='Gets the adr_home_directory of this CloudListener.\nThe directory that stores tracing and logging incidents when Automatic Diagnostic Repository (ADR) is enabled.') - log_directory: str | None = Field(None, alias='logDirectory', description='Gets the log_directory of this CloudListener.\nThe destination directory of the listener log file.') - trace_directory: str | None = Field(None, alias='traceDirectory', description='Gets the trace_directory of this CloudListener.\nThe destination directory of the listener trace file.') - version: str | None = Field(None, description='Gets the version of this CloudListener.\nThe listener version.') - endpoints: list[CloudListenerEndpoint] | None = Field(None, description='Gets the endpoints of this CloudListener.\nThe list of protocol addresses the listener is configured to listen on.') - serviced_databases: list[CloudListenerServicedDatabase] | None = Field(None, alias='servicedDatabases', description='Gets the serviced_databases of this CloudListener.\nThe list of databases that are serviced by the listener.') - serviced_asms: list[CloudServicedAsm] | None = Field(None, alias='servicedAsms', description='Gets the serviced_asms of this CloudListener.\nThe list of ASMs that are serviced by the listener.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this CloudListener.\nThe date and time the cloud listener was created.') - time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this CloudListener.\nThe date and time the cloud listener was last updated.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudListener. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudListener. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudListener. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class CloudListenerCollection(DbmBaseModel): - """A collection of cloud listeners.""" - - items: list[CloudListenerSummary] = Field(..., description='**[Required]** Gets the items of this CloudListenerCollection.\nAn array of cloud listeners.') - - -class CloudListenerEndpoint(DbmBaseModel): - """The protocol address that a cloud listener is configured to listen on.""" - - protocol: Literal['IPC', 'TCP', 'TCPS', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the protocol of this CloudListenerEndpoint.\nThe listener protocol.\n\nAllowed values for this property are: "IPC", "TCP", "TCPS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - services: list[str] | None = Field(None, description='Gets the services of this CloudListenerEndpoint.\nThe list of services registered with the listener.') - - -class CloudListenerIpcEndpoint(DbmBaseModel): - """An `IPC`-based protocol address.""" - - protocol: Literal['IPC', 'TCP', 'TCPS', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the protocol of this CloudListenerEndpoint.\nThe listener protocol.\n\nAllowed values for this property are: "IPC", "TCP", "TCPS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - services: list[str] | None = Field(None, description='Gets the services of this CloudListenerEndpoint.\nThe list of services registered with the listener.') - key: str = Field(..., description='**[Required]** Gets the key of this CloudListenerIpcEndpoint.\nThe unique name of the service.') - - -class CloudListenerServiceCollection(DbmBaseModel): - """A collection of cloud listener services.""" - - items: list[CloudListenerServiceSummary] = Field(..., description='**[Required]** Gets the items of this CloudListenerServiceCollection.\nAn array of cloud listener services.') - - -class CloudListenerServiceSummary(DbmBaseModel): - """The summary of a service registered with a cloud listener.""" - - name: str = Field(..., description='**[Required]** Gets the name of this CloudListenerServiceSummary.\nThe name of the service.') - listener_id: str | None = Field(None, alias='listenerId', description='Gets the listener_id of this CloudListenerServiceSummary. The OCID of the cloud listener.') - managed_database_id: str | None = Field(None, alias='managedDatabaseId', description='Gets the managed_database_id of this CloudListenerServiceSummary. The OCID of the Managed Database.') - - -class CloudListenerServicedDatabase(DbmBaseModel): - """The details of a database serviced by a cloud listener.""" - - id: str = Field(..., description='**[Required]** Gets the id of this CloudListenerServicedDatabase. The OCID of the cloud database.') - dbaas_id: str = Field(..., alias='dbaasId', description='**[Required]** Gets the dbaas_id of this CloudListenerServicedDatabase. The OCID of the existing Dbaas OCI resource matching the discovered DB system component.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudListenerServicedDatabase.\nThe user-friendly name for the database. The name does not have to be unique.') - db_unique_name: str | None = Field(None, alias='dbUniqueName', description='Gets the db_unique_name of this CloudListenerServicedDatabase.\nThe unique name of the cloud database.') - compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this CloudListenerServicedDatabase. The OCID of the compartment in which the cloud database resides.') - database_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseType', description='Gets the database_type of this CloudListenerServicedDatabase.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseSubType', description='Gets the database_sub_type of this CloudListenerServicedDatabase.\nThe subtype of Oracle Database. Indicates whether the database is a Container Database,\nPluggable Database, Non-container Database, Autonomous Database, or Autonomous Container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - is_managed: bool | None = Field(None, alias='isManaged', description='Gets the is_managed of this CloudListenerServicedDatabase.\nIndicates whether the database is a Managed Database or not.') - - -class CloudListenerSummary(DbmBaseModel): - """The summary of a cloud listener.""" - - id: str = Field(..., description='**[Required]** Gets the id of this CloudListenerSummary. The OCID of the cloud listener.') - dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this CloudListenerSummary. The OCID in DBaas service.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudListenerSummary.\nThe user-friendly name for the cloud listener. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this CloudListenerSummary.\nThe name of the cloud listener.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CloudListenerSummary. The OCID of the compartment.') - cloud_db_system_id: str = Field(..., alias='cloudDbSystemId', description='**[Required]** Gets the cloud_db_system_id of this CloudListenerSummary. The OCID of the cloud DB system that the listener is a member of.') - cloud_connector_id: str | None = Field(None, alias='cloudConnectorId', description='Gets the cloud_connector_id of this CloudListenerSummary. The OCID of the cloud connector.') - cloud_db_node_id: str | None = Field(None, alias='cloudDbNodeId', description='Gets the cloud_db_node_id of this CloudListenerSummary. The OCID of the cloud DB node on which the listener is running.') - listener_type: str | None = Field(None, alias='listenerType', description='Gets the listener_type of this CloudListenerSummary.\nThe type of listener.') - lifecycle_state: str = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this CloudListenerSummary.\nThe current lifecycle state of the cloud listener.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this CloudListenerSummary.\nAdditional information about the current lifecycle state.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this CloudListenerSummary.\nThe date and time the cloud listener was created.') - time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this CloudListenerSummary.\nThe date and time the cloud listener was last updated.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CloudListenerSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CloudListenerSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CloudListenerSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class CloudListenerTcpEndpoint(DbmBaseModel): - """A `TCP`-based protocol address.""" - - protocol: Literal['IPC', 'TCP', 'TCPS', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the protocol of this CloudListenerEndpoint.\nThe listener protocol.\n\nAllowed values for this property are: "IPC", "TCP", "TCPS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - services: list[str] | None = Field(None, description='Gets the services of this CloudListenerEndpoint.\nThe list of services registered with the listener.') - host: str = Field(..., description='**[Required]** Gets the host of this CloudListenerTcpEndpoint.\nThe host name or IP address.') - port: int = Field(..., description='**[Required]** Gets the port of this CloudListenerTcpEndpoint.\nThe port number.') - - -class CloudListenerTcpsEndpoint(DbmBaseModel): - """A `TCPS`-based protocol address.""" - - protocol: Literal['IPC', 'TCP', 'TCPS', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the protocol of this CloudListenerEndpoint.\nThe listener protocol.\n\nAllowed values for this property are: "IPC", "TCP", "TCPS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - services: list[str] | None = Field(None, description='Gets the services of this CloudListenerEndpoint.\nThe list of services registered with the listener.') - host: str = Field(..., description='**[Required]** Gets the host of this CloudListenerTcpsEndpoint.\nThe host name or IP address.') - port: int = Field(..., description='**[Required]** Gets the port of this CloudListenerTcpsEndpoint.\nThe port number.') - - -class CloudOpenAlertHistory(DbmBaseModel): - """The existing open alerts in the Exadata storage server.""" - - alerts: list[OpenAlertSummary] = Field(..., description='**[Required]** Gets the alerts of this CloudOpenAlertHistory.\nA list of open alerts.') - - -class CloudServicedAsm(DbmBaseModel): - """The details of ASM serviced by a cloud listener.""" - - id: str = Field(..., description='**[Required]** Gets the id of this CloudServicedAsm. The OCID of the cloud ASM.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudServicedAsm.\nThe user-friendly name for the cloud ASM. The name does not have to be unique.') - compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this CloudServicedAsm. The OCID of the compartment in which the cloud ASM resides.') - - -class CloudServicedDatabase(DbmBaseModel): - """The details of a database serviced by a cloud DB system component such as a listener or ASM.""" - - id: str = Field(..., description='**[Required]** Gets the id of this CloudServicedDatabase. The OCID of the cloud database.') - dbaas_id: str = Field(..., alias='dbaasId', description='**[Required]** Gets the dbaas_id of this CloudServicedDatabase. The OCID of the existing Dbaas OCI resource matching the discovered DB system component.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CloudServicedDatabase.\nThe user-friendly name for the database. The name does not have to be unique.') - db_unique_name: str | None = Field(None, alias='dbUniqueName', description='Gets the db_unique_name of this CloudServicedDatabase.\nThe unique name of the cloud database.') - compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this CloudServicedDatabase. The OCID of the compartment in which the cloud database resides.') - database_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseType', description='Gets the database_type of this CloudServicedDatabase.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseSubType', description='Gets the database_sub_type of this CloudServicedDatabase.\nThe subtype of Oracle Database. Indicates whether the database is a Container Database,\nPluggable Database, Non-container Database, Autonomous Database, or Autonomous Container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - is_managed: bool | None = Field(None, alias='isManaged', description='Gets the is_managed of this CloudServicedDatabase.\nIndicates whether the database is a Managed Database or not.') - - -class ClusterCacheMetric(DbmBaseModel): - """The response containing the cluster cache metrics for the -Oracle Real Application Clusters (Oracle RAC) database.""" - - cluster_cache_metrics: list[TimeSeriesMetricDefinition] = Field(..., alias='clusterCacheMetrics', description='**[Required]** Gets the cluster_cache_metrics of this ClusterCacheMetric.\nA list of cluster cache metrics for a specific Managed Database.') - - -class ConfigureAutomaticCaptureFiltersDetails(DbmRequestModel): - """The details required to configure automatic capture filters. -It takes either credentials or databaseCredential. It's recommended to provide databaseCredential""" - - auto_capture_filters: list[AutomaticCaptureFilterDetails] = Field(..., alias='autoCaptureFilters', description='**[Required]** Gets the auto_capture_filters of this ConfigureAutomaticCaptureFiltersDetails.\nThe filters used in automatic initial plan capture.') - credentials: ManagedDatabaseCredential | None = Field(None, description='Gets the credentials of this ConfigureAutomaticCaptureFiltersDetails.') - database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this ConfigureAutomaticCaptureFiltersDetails.') - - -class ConfigureAutomaticSpmEvolveAdvisorTaskDetails(DbmRequestModel): - """The configuration details of the Automatic SPM Evolve Advisor task. -It takes either credentials or databaseCredential. It's recommended to provide databaseCredential""" - - task_parameters: SpmEvolveTaskParameters = Field(..., alias='taskParameters', description='**[Required]** Gets the task_parameters of this ConfigureAutomaticSpmEvolveAdvisorTaskDetails.') - credentials: ManagedDatabaseCredential | None = Field(None, description='Gets the credentials of this ConfigureAutomaticSpmEvolveAdvisorTaskDetails.') - database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this ConfigureAutomaticSpmEvolveAdvisorTaskDetails.') - - -class ConnectorDetails(DbmRequestModel): - """The connector details required to connect to an Oracle cloud database.""" - - connector_type: Literal['PE', 'MACS', 'EXTERNAL', 'DIRECT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this ConnectorDetails.\nThe list of supported connection types:\n - PE: Private endpoint\n - MACS: Management agent\n - EXTERNAL: External database connector\n\n - DIRECT: Direct connection\n\nAllowed values for this property are: "PE", "MACS", "EXTERNAL", "DIRECT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class ConsumerGroupPrivilegeCollection(DbmBaseModel): - """A collection of consumer group privileges granted to the current user.""" - - items: list[ConsumerGroupPrivilegeSummary] = Field(..., description='**[Required]** Gets the items of this ConsumerGroupPrivilegeCollection.\nAn array of consumer group privileges.') - - -class ConsumerGroupPrivilegeSummary(DbmBaseModel): - """A summary of consumer group privileges.""" - - name: str | None = Field(None, description='Gets the name of this ConsumerGroupPrivilegeSummary.\nThe name of the granted consumer group privilege.') - grant_option: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='grantOption', description='Gets the grant_option of this ConsumerGroupPrivilegeSummary.\nIndicates whether the privilege is granted with the GRANT option (YES) or not (NO).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - initial_group: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='initialGroup', description='Gets the initial_group of this ConsumerGroupPrivilegeSummary.\nIndicates whether the consumer group is designated as the default for this user or role (YES) or not (NO).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class CpuUtilizationAggregateMetrics(DbmBaseModel): - """The CPU utilization metrics for Autonomous Databases.""" - - cpu_utilization: MetricDataPoint | None = Field(None, alias='cpuUtilization', description='Gets the cpu_utilization of this CpuUtilizationAggregateMetrics.') - cpu_statistics: MetricStatisticsDefinition | None = Field(None, alias='cpuStatistics', description='Gets the cpu_statistics of this CpuUtilizationAggregateMetrics.') - - -class CreateCloudDbSystemConnectorDetails(DbmRequestModel): - """The details required to create a cloud DB system connector.""" - - connector_type: Literal['MACS'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this CreateCloudDbSystemConnectorDetails.\nThe type of connector.\n\nAllowed values for this property are: "MACS"') - display_name: str | None = Field(None, alias='displayName', description='Gets the display_name of this CreateCloudDbSystemConnectorDetails.\nThe user-friendly name for the cloud connector. The name does not have to be unique.') - cloud_db_system_id: str = Field(..., alias='cloudDbSystemId', description='**[Required]** Gets the cloud_db_system_id of this CreateCloudDbSystemConnectorDetails. The OCID of the cloud DB system.') - - -class CreateCloudDbSystemDetails(DbmRequestModel): - """The details required to create a cloud DB system.""" - - display_name: str | None = Field(None, alias='displayName', description='Gets the display_name of this CreateCloudDbSystemDetails.\nThe user-friendly name for the DB system. The name does not have to be unique.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CreateCloudDbSystemDetails. The OCID of the compartment in which the cloud DB system resides.') - db_system_discovery_id: str = Field(..., alias='dbSystemDiscoveryId', description='**[Required]** Gets the db_system_discovery_id of this CreateCloudDbSystemDetails. The OCID of the DB system discovery.') - database_management_config: CloudDbSystemDatabaseManagementConfigDetails | None = Field(None, alias='databaseManagementConfig', description='Gets the database_management_config of this CreateCloudDbSystemDetails.') - stack_monitoring_config: CloudDbSystemStackMonitoringConfigDetails | None = Field(None, alias='stackMonitoringConfig', description='Gets the stack_monitoring_config of this CreateCloudDbSystemDetails.') - - -class CreateCloudDbSystemDiscoveryDetails(DbmRequestModel): - """The details required to create a cloud DB system discovery resource.""" - - display_name: str | None = Field(None, alias='displayName', description='Gets the display_name of this CreateCloudDbSystemDiscoveryDetails.\nThe user-friendly name for the DB system. The name does not have to be unique.') - agent_id: str = Field(..., alias='agentId', description='**[Required]** Gets the agent_id of this CreateCloudDbSystemDiscoveryDetails. The OCID of the management agent used for the cloud DB system discovery.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CreateCloudDbSystemDiscoveryDetails. The OCID of the compartment in which the cloud DB system resides.') - dbaas_parent_infrastructure_id: str = Field(..., alias='dbaasParentInfrastructureId', description='**[Required]** Gets the dbaas_parent_infrastructure_id of this CreateCloudDbSystemDiscoveryDetails. The OCID of the parent cloud DB Infrastructure. For VM Dbsystems, it will be the DBSystem Id. For ExaCS and ExaCC, it will be the cloudVmClusterId and vmClusterId respectively.') - deployment_type: Literal['VM', 'EXADATA', 'EXADATA_CC', 'EXADATA_XS'] = Field(..., alias='deploymentType', description='**[Required]** Gets the deployment_type of this CreateCloudDbSystemDiscoveryDetails.\nThe deployment type of cloud dbsystem.\n\nAllowed values for this property are: "VM", "EXADATA", "EXADATA_CC", "EXADATA_XS"') - - -class CreateCloudDbSystemMacsConnectorDetails(DbmRequestModel): - """The details for creating a cloud connector that is used to connect to a cloud DB system component -using the Management Agent Cloud Service (MACS).""" - - - - connector_type: Literal['MACS'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this CreateCloudDbSystemConnectorDetails.\nThe type of connector.\n\nAllowed values for this property are: "MACS"') - display_name: str | None = Field(None, alias='displayName', description='Gets the display_name of this CreateCloudDbSystemConnectorDetails.\nThe user-friendly name for the cloud connector. The name does not have to be unique.') - cloud_db_system_id: str = Field(..., alias='cloudDbSystemId', description='**[Required]** Gets the cloud_db_system_id of this CreateCloudDbSystemConnectorDetails. The OCID of the cloud DB system.') - agent_id: str = Field(..., alias='agentId', description='**[Required]** Gets the agent_id of this CreateCloudDbSystemMacsConnectorDetails. The OCID of the management agent used for the cloud DB system connector.') - connection_info: CloudDbSystemConnectionInfo | None = Field(None, alias='connectionInfo', description='Gets the connection_info of this CreateCloudDbSystemMacsConnectorDetails.') - - -class CreateCloudExadataInfrastructureDetails(DbmRequestModel): - """The details required to create the Exadata infrastructure.""" - - discovery_key: str | None = Field(None, alias='discoveryKey', description='Gets the discovery_key of this CreateCloudExadataInfrastructureDetails.\nThe unique key of the discovery request.') - license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE'] | None = Field(None, alias='licenseModel', description='Gets the license_model of this CreateCloudExadataInfrastructureDetails.\nThe Oracle license model that applies to the database management resources.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE"') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CreateCloudExadataInfrastructureDetails. The OCID of the compartment.') - display_name: str | None = Field(None, alias='displayName', description='Gets the display_name of this CreateCloudExadataInfrastructureDetails.\nThe name of the Exadata infrastructure.') - vm_cluster_ids: list[str] = Field(..., alias='vmClusterIds', description='**[Required]** Gets the vm_cluster_ids of this CreateCloudExadataInfrastructureDetails.\nThe list of VM Clusters in the Exadata infrastructure.') - storage_server_names: list[str] | None = Field(None, alias='storageServerNames', description='Gets the storage_server_names of this CreateCloudExadataInfrastructureDetails.\nThe list of all the Exadata storage server names to be included for monitoring purposes. If not specified, all the Exadata storage servers associated with the VM Clusters are included.') - - -class CreateCloudExadataStorageConnectorDetails(DbmRequestModel): - """The details required to create the connector to the Exadata storage server.""" - - storage_server_id: str = Field(..., alias='storageServerId', description='**[Required]** Gets the storage_server_id of this CreateCloudExadataStorageConnectorDetails. The OCID of the Exadata storage server.') - agent_id: str = Field(..., alias='agentId', description='**[Required]** Gets the agent_id of this CreateCloudExadataStorageConnectorDetails. The OCID of the agent for the Exadata storage server.') - display_name: str | None = Field(None, alias='displayName', description='Gets the display_name of this CreateCloudExadataStorageConnectorDetails.\nThe name of the Exadata storage server connector.') - connection_uri: str = Field(..., alias='connectionUri', description='**[Required]** Gets the connection_uri of this CreateCloudExadataStorageConnectorDetails. The unique string of the connection. For example, ".') - credential_info: RestCredential = Field(..., alias='credentialInfo', description='**[Required]** Gets the credential_info of this CreateCloudExadataStorageConnectorDetails.') - - -class CreateDbManagementPrivateEndpointDetails(DbmRequestModel): - """The details used to create a new Database Management private endpoint.""" - - name: str = Field(..., description='**[Required]** Gets the name of this CreateDbManagementPrivateEndpointDetails.\nThe display name of the Database Management private endpoint.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CreateDbManagementPrivateEndpointDetails. The OCID of the compartment.') - is_cluster: bool | None = Field(None, alias='isCluster', description='Gets the is_cluster of this CreateDbManagementPrivateEndpointDetails.\nSpecifies whether the Database Management private endpoint will be used for Oracle Databases in a cluster.') - is_dns_resolution_enabled: bool | None = Field(None, alias='isDnsResolutionEnabled', description='Gets the is_dns_resolution_enabled of this CreateDbManagementPrivateEndpointDetails.\nSpecifies whether the Database Management private endpoint has DNS proxy server enabled to resolve private host name.') - subnet_id: str = Field(..., alias='subnetId', description='**[Required]** Gets the subnet_id of this CreateDbManagementPrivateEndpointDetails. The OCID of the subnet.') - description: str | None = Field(None, description='Gets the description of this CreateDbManagementPrivateEndpointDetails.\nThe description of the private endpoint.') - nsg_ids: list[str] | None = Field(None, alias='nsgIds', description='Gets the nsg_ids of this CreateDbManagementPrivateEndpointDetails.\nThe OCIDs of the Network Security Groups to which the Database Management private endpoint belongs.') - - -class CreateExternalDbSystemConnectorDetails(DbmRequestModel): - """The details required to create an external DB system connector.""" - - connector_type: Literal['MACS'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this CreateExternalDbSystemConnectorDetails.\nThe type of connector.\n\nAllowed values for this property are: "MACS"') - display_name: str | None = Field(None, alias='displayName', description='Gets the display_name of this CreateExternalDbSystemConnectorDetails.\nThe user-friendly name for the external connector. The name does not have to be unique.') - external_db_system_id: str = Field(..., alias='externalDbSystemId', description='**[Required]** Gets the external_db_system_id of this CreateExternalDbSystemConnectorDetails. The OCID of the external DB system.') - - -class CreateExternalDbSystemDetails(DbmRequestModel): - """The details required to create an external DB system.""" - - display_name: str | None = Field(None, alias='displayName', description='Gets the display_name of this CreateExternalDbSystemDetails.\nThe user-friendly name for the DB system. The name does not have to be unique.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CreateExternalDbSystemDetails. The OCID of the compartment in which the external DB system resides.') - db_system_discovery_id: str = Field(..., alias='dbSystemDiscoveryId', description='**[Required]** Gets the db_system_discovery_id of this CreateExternalDbSystemDetails. The OCID of the DB system discovery.') - database_management_config: ExternalDbSystemDatabaseManagementConfigDetails | None = Field(None, alias='databaseManagementConfig', description='Gets the database_management_config of this CreateExternalDbSystemDetails.') - stack_monitoring_config: AssociatedServiceDetails | None = Field(None, alias='stackMonitoringConfig', description='Gets the stack_monitoring_config of this CreateExternalDbSystemDetails.') - - -class CreateExternalDbSystemDiscoveryDetails(DbmRequestModel): - """The details required to create an external DB system discovery resource.""" - - display_name: str | None = Field(None, alias='displayName', description='Gets the display_name of this CreateExternalDbSystemDiscoveryDetails.\nThe user-friendly name for the DB system. The name does not have to be unique.') - agent_id: str = Field(..., alias='agentId', description='**[Required]** Gets the agent_id of this CreateExternalDbSystemDiscoveryDetails. The OCID of the management agent used for the external DB system discovery.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CreateExternalDbSystemDiscoveryDetails. The OCID of the compartment in which the external DB system resides.') - - -class CreateExternalDbSystemMacsConnectorDetails(DbmRequestModel): - """The details for creating an external connector that is used to connect to an external DB system component -using the Management Agent Cloud Service (MACS).""" - - - - connector_type: Literal['MACS'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this CreateExternalDbSystemConnectorDetails.\nThe type of connector.\n\nAllowed values for this property are: "MACS"') - display_name: str | None = Field(None, alias='displayName', description='Gets the display_name of this CreateExternalDbSystemConnectorDetails.\nThe user-friendly name for the external connector. The name does not have to be unique.') - external_db_system_id: str = Field(..., alias='externalDbSystemId', description='**[Required]** Gets the external_db_system_id of this CreateExternalDbSystemConnectorDetails. The OCID of the external DB system.') - agent_id: str = Field(..., alias='agentId', description='**[Required]** Gets the agent_id of this CreateExternalDbSystemMacsConnectorDetails. The OCID of the management agent used for the external DB system connector.') - connection_info: ExternalDbSystemConnectionInfo | None = Field(None, alias='connectionInfo', description='Gets the connection_info of this CreateExternalDbSystemMacsConnectorDetails.') - - -class CreateExternalExadataInfrastructureDetails(DbmRequestModel): - """The details required to create the external Exadata infrastructure.""" - - discovery_key: str | None = Field(None, alias='discoveryKey', description='Gets the discovery_key of this CreateExternalExadataInfrastructureDetails.\nThe unique key of the discovery request.') - license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE'] | None = Field(None, alias='licenseModel', description='Gets the license_model of this CreateExternalExadataInfrastructureDetails.\nThe Oracle license model that applies to the database management resources.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE"') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CreateExternalExadataInfrastructureDetails. The OCID of the compartment.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CreateExternalExadataInfrastructureDetails.\nThe name of the Exadata infrastructure.') - db_system_ids: list[str] = Field(..., alias='dbSystemIds', description='**[Required]** Gets the db_system_ids of this CreateExternalExadataInfrastructureDetails.\nThe list of DB systems in the Exadata infrastructure.') - storage_server_names: list[str] | None = Field(None, alias='storageServerNames', description='Gets the storage_server_names of this CreateExternalExadataInfrastructureDetails.\nThe list of all the Exadata storage server names to be included for monitoring purposes. If not specified, all the Exadata storage servers associated with the DB systems are included.') - - -class CreateExternalExadataStorageConnectorDetails(DbmRequestModel): - """The details required to create the connector to the Exadata storage server.""" - - storage_server_id: str = Field(..., alias='storageServerId', description='**[Required]** Gets the storage_server_id of this CreateExternalExadataStorageConnectorDetails. The OCID of the Exadata storage server.') - agent_id: str = Field(..., alias='agentId', description='**[Required]** Gets the agent_id of this CreateExternalExadataStorageConnectorDetails. The OCID of the agent for the Exadata storage server.') - connector_name: str = Field(..., alias='connectorName', description='**[Required]** Gets the connector_name of this CreateExternalExadataStorageConnectorDetails.\nThe name of the Exadata storage server connector.') - connection_uri: str = Field(..., alias='connectionUri', description='**[Required]** Gets the connection_uri of this CreateExternalExadataStorageConnectorDetails. The unique string of the connection. For example, ".') - credential_info: RestCredential = Field(..., alias='credentialInfo', description='**[Required]** Gets the credential_info of this CreateExternalExadataStorageConnectorDetails.') - - -class CreateExternalMySqlDatabaseConnectorDetails(DbmRequestModel): - """Details for creating an external database connector.""" - - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CreateExternalMySqlDatabaseConnectorDetails.\nOCID of compartment for the External MySQL Database.') - connector_details: CreateMySqlDatabaseConnectorDetails = Field(..., alias='connectorDetails', description='**[Required]** Gets the connector_details of this CreateExternalMySqlDatabaseConnectorDetails.') - - -class CreateExternalMySqlDatabaseDetails(DbmRequestModel): - """Details for creating an external database.""" - - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CreateExternalMySqlDatabaseDetails.\nOCID of compartment for the External MySQL Database.') - db_name: str = Field(..., alias='dbName', description='**[Required]** Gets the db_name of this CreateExternalMySqlDatabaseDetails.\nName of the External MySQL Database.') - - -class CreateJobDetails(DbmRequestModel): - """The details required to create a job.""" - - name: str = Field(..., description='**[Required]** Gets the name of this CreateJobDetails.\nThe name of the job. Valid characters are uppercase or lowercase letters,\nnumbers, and "_". The name of the job cannot be modified. It must be unique\nin the compartment and must begin with an alphabetic character.') - description: str | None = Field(None, description='Gets the description of this CreateJobDetails.\nThe description of the job.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CreateJobDetails. The OCID of the compartment in which the job resides.') - managed_database_group_id: str | None = Field(None, alias='managedDatabaseGroupId', description='Gets the managed_database_group_id of this CreateJobDetails. The OCID of the Managed Database Group where the job has to be executed.') - managed_database_id: str | None = Field(None, alias='managedDatabaseId', description='Gets the managed_database_id of this CreateJobDetails. The OCID of the Managed Database where the job has to be executed.') - database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB'] | None = Field(None, alias='databaseSubType', description='Gets the database_sub_type of this CreateJobDetails.\nThe subtype of the Oracle Database where the job has to be executed. Only applicable when managedDatabaseGroupId is provided.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB"') - schedule_type: str = Field(..., alias='scheduleType', description='**[Required]** Gets the schedule_type of this CreateJobDetails.\nThe schedule type of the job.') - job_type: Literal['SQL'] = Field(..., alias='jobType', description='**[Required]** Gets the job_type of this CreateJobDetails.\nThe type of job.\n\nAllowed values for this property are: "SQL"') - timeout: str | None = Field(None, description='Gets the timeout of this CreateJobDetails.\nThe job timeout duration, which is expressed like "1h 10m 15s".') - result_location: JobExecutionResultLocation | None = Field(None, alias='resultLocation', description='Gets the result_location of this CreateJobDetails.') - schedule_details: JobScheduleDetails | None = Field(None, alias='scheduleDetails', description='Gets the schedule_details of this CreateJobDetails.') - - -class CreateManagedDatabaseGroupDetails(DbmRequestModel): - """The details required to create a Managed Database Group.""" - - name: str = Field(..., description='**[Required]** Gets the name of this CreateManagedDatabaseGroupDetails.\nThe name of the Managed Database Group. Valid characters are uppercase or\nlowercase letters, numbers, and "_". The name of the Managed Database Group\ncannot be modified. It must be unique in the compartment and must begin with\nan alphabetic character.') - description: str | None = Field(None, description='Gets the description of this CreateManagedDatabaseGroupDetails.\nThe information specified by the user about the Managed Database Group.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CreateManagedDatabaseGroupDetails. The OCID of the compartment in which the Managed Database Group resides.') - - -class CreateMySqlDatabaseConnectorDetails(DbmRequestModel): - """Create Details of external database connector.""" - - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this CreateMySqlDatabaseConnectorDetails.\nExternal MySQL Database Connector Name.') - macs_agent_id: str = Field(..., alias='macsAgentId', description='**[Required]** Gets the macs_agent_id of this CreateMySqlDatabaseConnectorDetails.\nAgent Id of the MACS agent.') - host_name: str = Field(..., alias='hostName', description='**[Required]** Gets the host_name of this CreateMySqlDatabaseConnectorDetails.\nHost name for Connector.') - port: int = Field(..., description='**[Required]** Gets the port of this CreateMySqlDatabaseConnectorDetails.\nPort number to connect to External MySQL Database.') - network_protocol: Literal['TCP', 'TCPS', 'SOCKETS'] = Field(..., alias='networkProtocol', description='**[Required]** Gets the network_protocol of this CreateMySqlDatabaseConnectorDetails.\nProtocol to be used to connect to External MySQL Database; TCP, TCP with SSL or Socket.\n\nAllowed values for this property are: "TCP", "TCPS", "SOCKETS"') - external_database_id: str = Field(..., alias='externalDatabaseId', description='**[Required]** Gets the external_database_id of this CreateMySqlDatabaseConnectorDetails.\nOCID of MySQL Database resource.') - credential_type: Literal['MYSQL_EXTERNAL_NON_SSL_CREDENTIALS', 'MYSQL_EXTERNAL_SSL_CREDENTIALS', 'MYSQL_EXTERNAL_SOCKET_CREDENTIALS'] = Field(..., alias='credentialType', description='**[Required]** Gets the credential_type of this CreateMySqlDatabaseConnectorDetails.\nType of the credential.\n\nAllowed values for this property are: "MYSQL_EXTERNAL_NON_SSL_CREDENTIALS", "MYSQL_EXTERNAL_SSL_CREDENTIALS", "MYSQL_EXTERNAL_SOCKET_CREDENTIALS"') - ssl_secret_id: str = Field(..., alias='sslSecretId', description='**[Required]** Gets the ssl_secret_id of this CreateMySqlDatabaseConnectorDetails.\nIf using existing SSL secret to connect, OCID for the secret resource.') - - -class CreateNamedCredentialDetails(DbmRequestModel): - """The details required to create a named credential.""" - - name: str = Field(..., description='**[Required]** Gets the name of this CreateNamedCredentialDetails.\nThe name of the named credential. Valid characters are uppercase or\nlowercase letters, numbers, and "_". The name of the named credential\ncannot be modified. It must be unique in the compartment and must begin with\nan alphabetic character.') - description: str | None = Field(None, description='Gets the description of this CreateNamedCredentialDetails.\nThe information specified by the user about the named credential.') - scope: Literal['RESOURCE', 'GLOBAL'] = Field(..., description='**[Required]** Gets the scope of this CreateNamedCredentialDetails.\nThe scope of the named credential.\n\nAllowed values for this property are: "RESOURCE", "GLOBAL"') - type: Literal['ORACLE_DB'] = Field(..., description='**[Required]** Gets the type of this CreateNamedCredentialDetails.\nThe type of resource associated with the named credential.\n\nAllowed values for this property are: "ORACLE_DB"') - content: NamedCredentialContent = Field(..., description='**[Required]** Gets the content of this CreateNamedCredentialDetails.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CreateNamedCredentialDetails. The OCID of the compartment in which the named credential resides.') - associated_resource: str | None = Field(None, alias='associatedResource', description='Gets the associated_resource of this CreateNamedCredentialDetails. The OCID of the resource that is associated to the named credential.') - - -class CreateSqlJobDetails(DbmRequestModel): - """The details specific to the SQL job request.""" - - name: str = Field(..., description='**[Required]** Gets the name of this CreateJobDetails.\nThe name of the job. Valid characters are uppercase or lowercase letters,\nnumbers, and "_". The name of the job cannot be modified. It must be unique\nin the compartment and must begin with an alphabetic character.') - description: str | None = Field(None, description='Gets the description of this CreateJobDetails.\nThe description of the job.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this CreateJobDetails. The OCID of the compartment in which the job resides.') - managed_database_group_id: str | None = Field(None, alias='managedDatabaseGroupId', description='Gets the managed_database_group_id of this CreateJobDetails. The OCID of the Managed Database Group where the job has to be executed.') - managed_database_id: str | None = Field(None, alias='managedDatabaseId', description='Gets the managed_database_id of this CreateJobDetails. The OCID of the Managed Database where the job has to be executed.') - database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB'] | None = Field(None, alias='databaseSubType', description='Gets the database_sub_type of this CreateJobDetails.\nThe subtype of the Oracle Database where the job has to be executed. Only applicable when managedDatabaseGroupId is provided.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB"') - schedule_type: str = Field(..., alias='scheduleType', description='**[Required]** Gets the schedule_type of this CreateJobDetails.\nThe schedule type of the job.') - job_type: Literal['SQL'] = Field(..., alias='jobType', description='**[Required]** Gets the job_type of this CreateJobDetails.\nThe type of job.\n\nAllowed values for this property are: "SQL"') - timeout: str | None = Field(None, description='Gets the timeout of this CreateJobDetails.\nThe job timeout duration, which is expressed like "1h 10m 15s".') - result_location: JobExecutionResultLocation | None = Field(None, alias='resultLocation', description='Gets the result_location of this CreateJobDetails.') - schedule_details: JobScheduleDetails | None = Field(None, alias='scheduleDetails', description='Gets the schedule_details of this CreateJobDetails.') - sql_text: str | None = Field(None, alias='sqlText', description='Gets the sql_text of this CreateSqlJobDetails.\nThe SQL text to be executed as part of the job.') - in_binds: JobInBindsDetails | None = Field(None, alias='inBinds', description='Gets the in_binds of this CreateSqlJobDetails.') - out_binds: JobOutBindsDetails | None = Field(None, alias='outBinds', description='Gets the out_binds of this CreateSqlJobDetails.') - sql_type: str | None = Field(None, alias='sqlType', description='Gets the sql_type of this CreateSqlJobDetails.') - operation_type: str = Field(..., alias='operationType', description='**[Required]** Gets the operation_type of this CreateSqlJobDetails.\nThe SQL operation type.') - user_name: str | None = Field(None, alias='userName', description='Gets the user_name of this CreateSqlJobDetails.\nThe database user name used to execute the SQL job. If the job is being executed on a\nManaged Database Group, then the user name should exist on all the databases in the\ngroup with the same password.') - password: str | None = Field(None, description='Gets the password of this CreateSqlJobDetails.\nThe password for the database user name used to execute the SQL job.') - secret_id: str | None = Field(None, alias='secretId', description='Gets the secret_id of this CreateSqlJobDetails. The OCID of the secret containing the user password.') - named_credential_id: str | None = Field(None, alias='namedCredentialId', description='Gets the named_credential_id of this CreateSqlJobDetails. The OCID of the Named Credentials containing password secret.') - role: str | None = Field(None, description='Gets the role of this CreateSqlJobDetails.\nThe role of the database user. Indicates whether the database user is a normal user or sysdba.') - - -class CreateSqlTuningSetDetails(DbmRequestModel): - """Create an empty Sql tuning sets. -It takes either credentialDetails or databaseCredential. It's recommended to provide databaseCredential""" - - credential_details: SqlTuningSetAdminCredentialDetails | None = Field(None, alias='credentialDetails', description='Gets the credential_details of this CreateSqlTuningSetDetails.') - database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this CreateSqlTuningSetDetails.') - name: str = Field(..., description='**[Required]** Gets the name of this CreateSqlTuningSetDetails.\nA unique Sql tuning set name.') - owner: str | None = Field(None, description='Gets the owner of this CreateSqlTuningSetDetails.\nOwner of the Sql tuning set.') - description: str | None = Field(None, description='Gets the description of this CreateSqlTuningSetDetails.\nThe description of the Sql tuning set.') - show_sql_only: int | None = Field(None, alias='showSqlOnly', description='Gets the show_sql_only of this CreateSqlTuningSetDetails.\nFlag to indicate whether to create the Sql tuning set or just display the plsql used to create Sql tuning set.') - - -class CreateTablespaceDetails(DbmRequestModel): - """The details required to create a tablespace. -It takes either credentialDetails or databaseCredential. It's recommended to provide databaseCredential""" - - credential_details: TablespaceAdminCredentialDetails | None = Field(None, alias='credentialDetails', description='Gets the credential_details of this CreateTablespaceDetails.') - database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this CreateTablespaceDetails.') - name: str = Field(..., description='**[Required]** Gets the name of this CreateTablespaceDetails.\nThe name of the tablespace. It must be unique within a database.') - type: Literal['PERMANENT', 'TEMPORARY'] | None = Field(None, description='Gets the type of this CreateTablespaceDetails.\nThe type of tablespace.\n\nAllowed values for this property are: "PERMANENT", "TEMPORARY"') - is_bigfile: bool | None = Field(None, alias='isBigfile', description='Gets the is_bigfile of this CreateTablespaceDetails.\nSpecifies whether the tablespace is a bigfile or smallfile tablespace.\nA bigfile tablespace contains only one data file or temp file, which can contain up to approximately 4 billion (232) blocks.\nA smallfile tablespace is a traditional Oracle tablespace, which can contain 1022 data files or temp files, each of which can contain up to approximately 4 million (222) blocks.') - data_files: list[str] | None = Field(None, alias='dataFiles', description='Gets the data_files of this CreateTablespaceDetails.\nThe list of data files or temp files created for the tablespace.') - file_count: int | None = Field(None, ge=0, alias='fileCount', description='Gets the file_count of this CreateTablespaceDetails.\nThe number of data files or temp files created for the tablespace. This is for Oracle Managed Files only.') - file_size: TablespaceStorageSize | None = Field(None, alias='fileSize', description='Gets the file_size of this CreateTablespaceDetails.\nThe size of each data file or temp file.') - is_reusable: bool | None = Field(None, alias='isReusable', description='Gets the is_reusable of this CreateTablespaceDetails.\nSpecifies whether Oracle can reuse the data file or temp file. Reuse is only allowed when the file name is provided.') - is_auto_extensible: bool | None = Field(None, alias='isAutoExtensible', description='Gets the is_auto_extensible of this CreateTablespaceDetails.\nSpecifies whether the data file or temp file can be extended automatically.') - auto_extend_next_size: TablespaceStorageSize | None = Field(None, alias='autoExtendNextSize', description='Gets the auto_extend_next_size of this CreateTablespaceDetails.\nThe size of the next increment of disk space to be allocated automatically when more extents are required.') - auto_extend_max_size: TablespaceStorageSize | None = Field(None, alias='autoExtendMaxSize', description='Gets the auto_extend_max_size of this CreateTablespaceDetails.\nThe maximum disk space allowed for automatic extension of the data files or temp files.') - is_max_size_unlimited: bool | None = Field(None, alias='isMaxSizeUnlimited', description='Gets the is_max_size_unlimited of this CreateTablespaceDetails.\nSpecifies whether the disk space of the data file or temp file can be limited.') - block_size_in_kilobytes: int | None = Field(None, alias='blockSizeInKilobytes', description='Gets the block_size_in_kilobytes of this CreateTablespaceDetails.\nBlock size for the tablespace.') - is_encrypted: bool | None = Field(None, alias='isEncrypted', description='Gets the is_encrypted of this CreateTablespaceDetails.\nIndicates whether the tablespace is encrypted.') - encryption_algorithm: str | None = Field(None, alias='encryptionAlgorithm', description='Gets the encryption_algorithm of this CreateTablespaceDetails.\nThe name of the encryption algorithm to be used for tablespace encryption.') - default_compress: Literal['NO_COMPRESS', 'BASIC_COMPRESS'] | None = Field(None, alias='defaultCompress', description='Gets the default_compress of this CreateTablespaceDetails.\nThe default compression of data for all tables created in the tablespace.\n\nAllowed values for this property are: "NO_COMPRESS", "BASIC_COMPRESS"') - status: Literal['READ_ONLY', 'READ_WRITE'] | None = Field(None, description='Gets the status of this CreateTablespaceDetails.\nThe status of the tablespace.\n\nAllowed values for this property are: "READ_ONLY", "READ_WRITE"') - extent_management: Literal['AUTOALLOCATE', 'UNIFORM'] | None = Field(None, alias='extentManagement', description='Gets the extent_management of this CreateTablespaceDetails.\nSpecifies how the extents of the tablespace should be managed.\n\nAllowed values for this property are: "AUTOALLOCATE", "UNIFORM"') - extent_uniform_size: TablespaceStorageSize | None = Field(None, alias='extentUniformSize', description='Gets the extent_uniform_size of this CreateTablespaceDetails.\nThe size of the extent when the tablespace is managed with uniform extents of a specific size.') - segment_management: Literal['AUTO', 'MANUAL'] | None = Field(None, alias='segmentManagement', description='Gets the segment_management of this CreateTablespaceDetails.\nSpecifies whether tablespace segment management should be automatic or manual.\n\nAllowed values for this property are: "AUTO", "MANUAL"') - is_default: bool | None = Field(None, alias='isDefault', description='Gets the is_default of this CreateTablespaceDetails.\nSpecifies whether the tablespace is the default tablespace.') - - -class CursorCacheStatementCollection(DbmBaseModel): - """The list of SQL statements in the cursor cache.""" - - items: list[CursorCacheStatementSummary] = Field(..., description='**[Required]** Gets the items of this CursorCacheStatementCollection.\nA list of SQL statements in the cursor cache.') - - -class CursorCacheStatementSummary(DbmBaseModel): - """The summary of a SQL statement in the cursor cache.""" - - sql_id: str = Field(..., alias='sqlId', description='**[Required]** Gets the sql_id of this CursorCacheStatementSummary.\nThe SQL statement identifier. Identifies a SQL statement in the cursor cache.') - schema_name: str = Field(..., alias='schema', description='**[Required]** Gets the schema of this CursorCacheStatementSummary.\nThe name of the parsing schema.') - sql_text: str = Field(..., alias='sqlText', description='**[Required]** Gets the sql_text of this CursorCacheStatementSummary.\nThe first thousand characters of the SQL text.') - - -class DataAccessContainerCollection(DbmBaseModel): - """A collection of specific containers for the current user. This is only applicable if ALL_CONTAINERS !='Y'.""" - - items: list[DataAccessContainerSummary] = Field(..., description='**[Required]** Gets the items of this DataAccessContainerCollection.\nAn array of container resources.') - - -class DataAccessContainerSummary(DbmBaseModel): - """A summary of the ContainerDataAccess user.""" - - name: str | None = Field(None, description='Gets the name of this DataAccessContainerSummary.\nThe name of the container included in the attribute.') - - -class DataPoints(DbmBaseModel): - """The aggregated datapoints of the metric.""" - - timestamp: datetime | None = Field(None, description='Gets the timestamp of this DataPoints.\nThe data point date and time in UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".') - value: float | None = Field(None, description='Gets the value of this DataPoints.\nThe value of the metric.') - - -class DatabaseBackupMetrics(DbmBaseModel): - """The details of the backup metrics for a single database.""" - - retention_period_in_days: str = Field(..., alias='retentionPeriodInDays', description='**[Required]** Gets the retention_period_in_days of this DatabaseBackupMetrics.\nThe retention period of the database.') - is_automatic_backup_enabled: bool = Field(..., alias='isAutomaticBackupEnabled', description='**[Required]** Gets the is_automatic_backup_enabled of this DatabaseBackupMetrics.\nIndicates whether automatic backup is enabled or not. This is only applicable for cloud databases.') - time_series_metrics: list[MetricsAggregationRange] = Field(..., alias='timeSeriesMetrics', description='**[Required]** Gets the time_series_metrics of this DatabaseBackupMetrics.\nThe array of metric values for different timestamps.') - is_dataguard_enabled: bool = Field(..., alias='isDataguardEnabled', description='**[Required]** Gets the is_dataguard_enabled of this DatabaseBackupMetrics.\nIndicates whether Data Guard is enabled for the database.') - last_backup_summary: DatabaseBackupSummary = Field(..., alias='lastBackupSummary', description='**[Required]** Gets the last_backup_summary of this DatabaseBackupMetrics.') - metrics: list[HaMetricDefinition] = Field(..., description='**[Required]** Gets the metrics of this DatabaseBackupMetrics.\nA list of database health metrics such as BackupDuration and BackupSize.') - db_id: str = Field(..., alias='dbId', description='**[Required]** Gets the db_id of this DatabaseBackupMetrics. The OCID of the Managed Database.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this DatabaseBackupMetrics. The OCID of the compartment where the Managed Database resides.') - database_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='databaseType', description='**[Required]** Gets the database_type of this DatabaseBackupMetrics.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='databaseSubType', description='**[Required]** Gets the database_sub_type of this DatabaseBackupMetrics.\nThe subtype of the Oracle Database. Indicates whether the database is a Container Database,\nPluggable Database, Non-container Database, Autonomous Database, or Autonomous Container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - deployment_type: Literal['ONPREMISE', 'BM', 'VM', 'EXADATA', 'EXADATA_CC', 'AUTONOMOUS', 'EXADATA_XS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='deploymentType', description='**[Required]** Gets the deployment_type of this DatabaseBackupMetrics.\nThe infrastructure used to deploy the Oracle Database.\n\nAllowed values for this property are: "ONPREMISE", "BM", "VM", "EXADATA", "EXADATA_CC", "AUTONOMOUS", "EXADATA_XS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this DatabaseBackupMetrics.\nThe Oracle Database version.') - workload_type: Literal['OLTP', 'DW', 'AJD', 'APEX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='workloadType', description='Gets the workload_type of this DatabaseBackupMetrics.\nThe workload type of the Autonomous Database.\n\nAllowed values for this property are: "OLTP", "DW", "AJD", "APEX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_name: str = Field(..., alias='databaseName', description='**[Required]** Gets the database_name of this DatabaseBackupMetrics.\nThe display name of the Managed Database.') - database_id: str | None = Field(None, alias='databaseId', description='Gets the database_id of this DatabaseBackupMetrics.\nThe database ID of the Managed Database. Every database had its own ID and that value is captured here.') - db_unique_name: str | None = Field(None, alias='dbUniqueName', description='Gets the db_unique_name of this DatabaseBackupMetrics.\nThe database unique name of the Managed Database.') - db_role: Literal['SNAPSHOT_STANDBY', 'LOGICAL_STANDBY', 'PHYSICAL_STANDBY', 'PRIMARY', 'FAR_SYNC', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dbRole', description='**[Required]** Gets the db_role of this DatabaseBackupMetrics.\nThe database role of the Managed Database.\n\nAllowed values for this property are: "SNAPSHOT_STANDBY", "LOGICAL_STANDBY", "PHYSICAL_STANDBY", "PRIMARY", "FAR_SYNC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class DatabaseBackupSummary(DbmBaseModel): - """The summary of the High Availability (HA) and backup for a database.""" - - backup_status: str = Field(..., alias='backupStatus', description='**[Required]** Gets the backup_status of this DatabaseBackupSummary.\nThe backup status of the database.') - time_backup_completed: datetime = Field(..., alias='timeBackupCompleted', description='**[Required]** Gets the time_backup_completed of this DatabaseBackupSummary.\nThe database backup completion date and time in UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".') - backup_duration_in_seconds: int = Field(..., alias='backupDurationInSeconds', description='**[Required]** Gets the backup_duration_in_seconds of this DatabaseBackupSummary.\nThe backup duration of the database in seconds.') - backup_type: str = Field(..., alias='backupType', description='**[Required]** Gets the backup_type of this DatabaseBackupSummary.\nThe backup type of the database (FULL/INCREMENTAL).') - backup_destination: Literal['DISK', 'TAPE', 'NFS', 'LOCAL', 'DBRS', 'OBJECT_STORE', 'RECOVERY_APPLIANCE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='backupDestination', description='**[Required]** Gets the backup_destination of this DatabaseBackupSummary.\nThe backup destination of the database.\n\nAllowed values for this property are: "DISK", "TAPE", "NFS", "LOCAL", "DBRS", "OBJECT_STORE", "RECOVERY_APPLIANCE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - backup_size_in_gbs: float = Field(..., alias='backupSizeInGBs', description='**[Required]** Gets the backup_size_in_gbs of this DatabaseBackupSummary.\nThe backup size of the database.') - - -class DatabaseConnectionCredentailsByName(DbmBaseModel): - """The existing named credential used to connect to the database.""" - - credential_type: Literal['NAME_REFERENCE', 'DETAILS', 'SSL_DETAILS', 'NAMED_CREDENTIALS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='credentialType', description='Gets the credential_type of this DatabaseConnectionCredentials.\nThe type of credential used to connect to the database.\n\nAllowed values for this property are: "NAME_REFERENCE", "DETAILS", "SSL_DETAILS", "NAMED_CREDENTIALS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - credential_name: str = Field(..., alias='credentialName', description='**[Required]** Gets the credential_name of this DatabaseConnectionCredentailsByName.\nThe name of the credential information that used to connect to the DB system resource.\nThe name should be in "x.y" format, where the length of "x" has a maximum of 64 characters,\nand length of "y" has a maximum of 199 characters. The name strings can contain letters,\nnumbers and the underscore character only. Other characters are not valid, except for\nthe "." character that separates the "x" and "y" portions of the name.\n*IMPORTANT* - The name must be unique within the OCI region the credential is being created in.\nIf you specify a name that duplicates the name of another credential within the same OCI region,\nyou may overwrite or corrupt the credential that is already using the name.\n\nFor example: inventorydb.abc112233445566778899') - - -class DatabaseConnectionCredentials(DbmBaseModel): - """The credentials used to connect to the database. Currently only the `DETAILS` type -is supported for creating MACS connector credentials.""" - - credential_type: Literal['NAME_REFERENCE', 'DETAILS', 'SSL_DETAILS', 'NAMED_CREDENTIALS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='credentialType', description='Gets the credential_type of this DatabaseConnectionCredentials.\nThe type of credential used to connect to the database.\n\nAllowed values for this property are: "NAME_REFERENCE", "DETAILS", "SSL_DETAILS", "NAMED_CREDENTIALS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class DatabaseConnectionCredentialsByDetails(DbmRequestModel): - """The credentials used to connect to the database.""" - - credential_type: Literal['NAME_REFERENCE', 'DETAILS', 'SSL_DETAILS', 'NAMED_CREDENTIALS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='credentialType', description='Gets the credential_type of this DatabaseConnectionCredentials.\nThe type of credential used to connect to the database.\n\nAllowed values for this property are: "NAME_REFERENCE", "DETAILS", "SSL_DETAILS", "NAMED_CREDENTIALS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - credential_name: str | None = Field(None, alias='credentialName', description='Gets the credential_name of this DatabaseConnectionCredentialsByDetails.\nThe name of the credential information that used to connect to the DB system resource.\nThe name should be in "x.y" format, where the length of "x" has a maximum of 64 characters,\nand length of "y" has a maximum of 199 characters. The name strings can contain letters,\nnumbers and the underscore character only. Other characters are not valid, except for\nthe "." character that separates the "x" and "y" portions of the name.\n*IMPORTANT* - The name must be unique within the OCI region the credential is being created in.\nIf you specify a name that duplicates the name of another credential within the same OCI region,\nyou may overwrite or corrupt the credential that is already using the name.\n\nFor example: inventorydb.abc112233445566778899') - user_name: str = Field(..., alias='userName', description='**[Required]** Gets the user_name of this DatabaseConnectionCredentialsByDetails.\nThe user name used to connect to the database.') - password_secret_id: str = Field(..., alias='passwordSecretId', description='**[Required]** Gets the password_secret_id of this DatabaseConnectionCredentialsByDetails. The OCID of the secret containing the user password.') - role: Literal['SYSDBA', 'NORMAL', 'SYSDG', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the role of this DatabaseConnectionCredentialsByDetails.\nThe role of the user connecting to the database.\n\nAllowed values for this property are: "SYSDBA", "NORMAL", "SYSDG", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class DatabaseConnectionDetails(DbmRequestModel): - """The connection details required to connect to the database.""" - - connection_string: DatabaseConnectionStringDetails = Field(..., alias='connectionString', description='**[Required]** Gets the connection_string of this DatabaseConnectionDetails.') - connection_credentials: DatabaseConnectionCredentials = Field(..., alias='connectionCredentials', description='**[Required]** Gets the connection_credentials of this DatabaseConnectionDetails.') - - -class DatabaseConnectionString(DbmBaseModel): - """The Oracle Database connection string.""" - - host_name: str = Field(..., alias='hostName', description='**[Required]** Gets the host_name of this DatabaseConnectionString.\nThe host name of the database or the SCAN name in case of a RAC database.') - port: int = Field(..., description='**[Required]** Gets the port of this DatabaseConnectionString.\nThe port used to connect to the database.') - service: str = Field(..., description='**[Required]** Gets the service of this DatabaseConnectionString.\nThe service name of the database.') - protocol: Literal['TCP', 'TCPS', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the protocol of this DatabaseConnectionString.\nThe protocol used to connect to the database.\n\nAllowed values for this property are: "TCP", "TCPS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class DatabaseConnectionStringDetails(DbmRequestModel): - """The details of the Oracle Database connection string.""" - - connection_type: Literal['BASIC', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='connectionType', description='**[Required]** Gets the connection_type of this DatabaseConnectionStringDetails.\nThe list of supported connection types:\n - BASIC: Basic connection details\n\nAllowed values for this property are: "BASIC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class DatabaseCredentialDetails(DbmRequestModel): - """The credential to connect to the database to perform tablespace administration tasks.""" - - credential_type: Literal['SECRET', 'PASSWORD', 'NAMED_CREDENTIAL', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='credentialType', description='**[Required]** Gets the credential_type of this DatabaseCredentialDetails.\nThe type of the credential for tablespace administration tasks.\n\nAllowed values for this property are: "SECRET", "PASSWORD", "NAMED_CREDENTIAL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class DatabaseCredentials(DbmBaseModel): - """The database credentials used to perform management activity. -Provide one of the following attribute set. -(userName, password, role) OR (userName, secretId, role) OR (namedCredentialId)""" - - user_name: str | None = Field(None, alias='userName', description='Gets the user_name of this DatabaseCredentials.\nThe database user name used to perform management activity.') - password: str | None = Field(None, description='Gets the password of this DatabaseCredentials.\nThe password for the database user name.') - secret_id: str | None = Field(None, alias='secretId', description='Gets the secret_id of this DatabaseCredentials. The OCID of the secret containing the user password.') - role: Literal['NORMAL', 'SYSDBA'] | None = Field(None, description='Gets the role of this DatabaseCredentials.\nThe role of the database user. Indicates whether the database user is a normal user or sysdba.\n\nAllowed values for this property are: "NORMAL", "SYSDBA"') - - -class DatabaseDiagnosticsAndManagementFeatureConfiguration(DbmBaseModel): - """The details required to enable the Diagnostics and Management feature.""" - - feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the feature of this DatabaseFeatureConfiguration.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - feature_status: Literal['ENABLED', 'NOT_ENABLED', 'UNSUPPORTED', 'FAILED_ENABLING', 'FAILED_DISABLING', 'FAILED', 'ENABLED_WITH_WARNINGS', 'PENDING_DISABLE', 'ENABLING', 'DISABLING', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='featureStatus', description='**[Required]** Gets the feature_status of this DatabaseFeatureConfiguration.\nThe list of statuses for Database Management features.\n\nAllowed values for this property are: "ENABLED", "NOT_ENABLED", "UNSUPPORTED", "FAILED_ENABLING", "FAILED_DISABLING", "FAILED", "ENABLED_WITH_WARNINGS", "PENDING_DISABLE", "ENABLING", "DISABLING", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - connector_details: ConnectorDetails | None = Field(None, alias='connectorDetails', description='Gets the connector_details of this DatabaseFeatureConfiguration.') - database_connection_details: DatabaseConnectionDetails | None = Field(None, alias='databaseConnectionDetails', description='Gets the database_connection_details of this DatabaseFeatureConfiguration.') - license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='licenseModel', description='Gets the license_model of this DatabaseDiagnosticsAndManagementFeatureConfiguration.\nThe Oracle license model that applies to the external database.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class DatabaseDiagnosticsAndManagementFeatureDetails(DbmRequestModel): - """The details required to enable the Diagnostics and Management feature.""" - - feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH'] = Field(..., description='**[Required]** Gets the feature of this DatabaseFeatureDetails.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH"') - database_connection_details: DatabaseConnectionDetails = Field(..., alias='databaseConnectionDetails', description='**[Required]** Gets the database_connection_details of this DatabaseFeatureDetails.') - connector_details: ConnectorDetails = Field(..., alias='connectorDetails', description='**[Required]** Gets the connector_details of this DatabaseFeatureDetails.') - management_type: Literal['BASIC', 'ADVANCED'] = Field(..., alias='managementType', description='**[Required]** Gets the management_type of this DatabaseDiagnosticsAndManagementFeatureDetails.\nThe management type for the database. Use "BASIC" for basic management. Use "ADVANCED" for full management.\n\nAllowed values for this property are: "BASIC", "ADVANCED"') - is_auto_enable_pluggable_database: bool | None = Field(None, alias='isAutoEnablePluggableDatabase', description='Gets the is_auto_enable_pluggable_database of this DatabaseDiagnosticsAndManagementFeatureDetails.\nIndicates whether Diagnostics & Management should be enabled automatically for all the pluggable databases in the container database.') - can_enable_all_current_pdbs: bool | None = Field(None, alias='canEnableAllCurrentPdbs', description='Gets the can_enable_all_current_pdbs of this DatabaseDiagnosticsAndManagementFeatureDetails.\nIndicates whether Diagnostics & Management should be enabled for all the current pluggable databases in the container database.') - - -class DatabaseFeatureConfiguration(DbmBaseModel): - """The details of an external database feature configuration.""" - - feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the feature of this DatabaseFeatureConfiguration.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - feature_status: Literal['ENABLED', 'NOT_ENABLED', 'UNSUPPORTED', 'FAILED_ENABLING', 'FAILED_DISABLING', 'FAILED', 'ENABLED_WITH_WARNINGS', 'PENDING_DISABLE', 'ENABLING', 'DISABLING', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='featureStatus', description='**[Required]** Gets the feature_status of this DatabaseFeatureConfiguration.\nThe list of statuses for Database Management features.\n\nAllowed values for this property are: "ENABLED", "NOT_ENABLED", "UNSUPPORTED", "FAILED_ENABLING", "FAILED_DISABLING", "FAILED", "ENABLED_WITH_WARNINGS", "PENDING_DISABLE", "ENABLING", "DISABLING", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - connector_details: ConnectorDetails | None = Field(None, alias='connectorDetails', description='Gets the connector_details of this DatabaseFeatureConfiguration.') - database_connection_details: DatabaseConnectionDetails | None = Field(None, alias='databaseConnectionDetails', description='Gets the database_connection_details of this DatabaseFeatureConfiguration.') - - -class DatabaseFeatureDetails(DbmRequestModel): - """The details required to enable the specified Database Management feature.""" - - feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH'] = Field(..., description='**[Required]** Gets the feature of this DatabaseFeatureDetails.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH"') - database_connection_details: DatabaseConnectionDetails = Field(..., alias='databaseConnectionDetails', description='**[Required]** Gets the database_connection_details of this DatabaseFeatureDetails.') - connector_details: ConnectorDetails = Field(..., alias='connectorDetails', description='**[Required]** Gets the connector_details of this DatabaseFeatureDetails.') - - -class DatabaseFleetBackupMetrics(DbmBaseModel): - """The details of the backup metrics for the fleet of databases.""" - - backup_metrics: list[DatabaseBackupMetrics] = Field(..., alias='backupMetrics', description='**[Required]** Gets the backup_metrics of this DatabaseFleetBackupMetrics.\nA list of backup metrics for the databases present in the fleet.') - - -class DatabaseFleetDataguardMetrics(DbmBaseModel): - """The list of Oracle Data Guard-enabled databases in the fleet.""" - - dataguard_metrics: list[DataguardMetrics] = Field(..., alias='dataguardMetrics', description='**[Required]** Gets the dataguard_metrics of this DatabaseFleetDataguardMetrics.\nThe Data Guard usage metrics for the Oracle Data Guard-enabled databases.') - - -class DatabaseFleetHaOverviewMetrics(DbmBaseModel): - """The details of the HA metrics for the fleet of databases.""" - - ha_metrics: list[DatabaseHaMetrics] = Field(..., alias='haMetrics', description='**[Required]** Gets the ha_metrics of this DatabaseFleetHaOverviewMetrics.\nA list of the databases present in the fleet and their HA usage metrics.') - - -class DatabaseFleetHealthMetrics(DbmBaseModel): - """The details of the fleet health metrics.""" - - compare_baseline_time: str = Field(..., alias='compareBaselineTime', description='**[Required]** Gets the compare_baseline_time of this DatabaseFleetHealthMetrics.\nThe baseline date and time in UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".\nThis is the date and time against which percentage change is calculated.') - compare_target_time: str = Field(..., alias='compareTargetTime', description='**[Required]** Gets the compare_target_time of this DatabaseFleetHealthMetrics.\nThe target date and time in UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".\nAll the metrics are returned for the target date and time and the percentage change\nis calculated against the baseline date and time.') - compare_type: Literal['HOUR', 'DAY', 'WEEK', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='compareType', description='Gets the compare_type of this DatabaseFleetHealthMetrics.\nThe time window used for metrics comparison.\n\nAllowed values for this property are: "HOUR", "DAY", "WEEK", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - fleet_summary: FleetSummary | None = Field(None, alias='fleetSummary', description='Gets the fleet_summary of this DatabaseFleetHealthMetrics.') - fleet_databases: list[DatabaseUsageMetrics] = Field(..., alias='fleetDatabases', description='**[Required]** Gets the fleet_databases of this DatabaseFleetHealthMetrics.\nA list of the databases present in the fleet and their usage metrics.') - - -class DatabaseHaBackupDetails(DbmRequestModel): - """The database HA and backup details.""" - - flash_back_on: str | None = Field(None, alias='flashBackOn', description='Gets the flash_back_on of this DatabaseHaBackupDetails.\nIndicates whether flashback is enabled for the database.') - flash_back_time: datetime | None = Field(None, alias='flashBackTime', description='Gets the flash_back_time of this DatabaseHaBackupDetails.\nThe oldest flashback date and time in UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".') - recovery_window_goal_in_days: int | None = Field(None, alias='recoveryWindowGoalInDays', description='Gets the recovery_window_goal_in_days of this DatabaseHaBackupDetails.\nThe configured number of days intended to recover a protected database from a backup.') - last_full_backup_summary: DatabaseBackupSummary | None = Field(None, alias='lastFullBackupSummary', description='Gets the last_full_backup_summary of this DatabaseHaBackupDetails.') - backup_history: list[DatabaseBackupSummary] | None = Field(None, alias='backupHistory', description='Gets the backup_history of this DatabaseHaBackupDetails.\nA list of database backups.') - metrics: list[HaMetricDefinition] | None = Field(None, description='Gets the metrics of this DatabaseHaBackupDetails.\nA list of database backup metrics such as BackupSize and BackupDuration.') - db_id: str = Field(..., alias='dbId', description='**[Required]** Gets the db_id of this DatabaseHaBackupDetails. The OCID of the Managed Database.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this DatabaseHaBackupDetails. The OCID of the compartment where the Managed Database resides.') - database_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='databaseType', description='**[Required]** Gets the database_type of this DatabaseHaBackupDetails.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='databaseSubType', description='**[Required]** Gets the database_sub_type of this DatabaseHaBackupDetails.\nThe subtype of the Oracle Database. Indicates whether the database is a Container Database,\nPluggable Database, Non-container Database, Autonomous Database, or Autonomous Container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - deployment_type: Literal['ONPREMISE', 'BM', 'VM', 'EXADATA', 'EXADATA_CC', 'AUTONOMOUS', 'EXADATA_XS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='deploymentType', description='**[Required]** Gets the deployment_type of this DatabaseHaBackupDetails.\nThe infrastructure used to deploy the Oracle Database.\n\nAllowed values for this property are: "ONPREMISE", "BM", "VM", "EXADATA", "EXADATA_CC", "AUTONOMOUS", "EXADATA_XS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this DatabaseHaBackupDetails.\nThe Oracle Database version.') - workload_type: Literal['OLTP', 'DW', 'AJD', 'APEX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='workloadType', description='Gets the workload_type of this DatabaseHaBackupDetails.\nThe workload type of the Autonomous Database.\n\nAllowed values for this property are: "OLTP", "DW", "AJD", "APEX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_name: str = Field(..., alias='databaseName', description='**[Required]** Gets the database_name of this DatabaseHaBackupDetails.\nThe display name of the Managed Database.') - database_id: str | None = Field(None, alias='databaseId', description='Gets the database_id of this DatabaseHaBackupDetails.\nThe database ID of the Managed Database. Every database had its own ID and that value is captured here.') - db_unique_name: str | None = Field(None, alias='dbUniqueName', description='Gets the db_unique_name of this DatabaseHaBackupDetails.\nThe database unique name of the Managed Database.') - db_role: Literal['SNAPSHOT_STANDBY', 'LOGICAL_STANDBY', 'PHYSICAL_STANDBY', 'PRIMARY', 'FAR_SYNC', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dbRole', description='**[Required]** Gets the db_role of this DatabaseHaBackupDetails.\nThe database role of the Managed Database.\n\nAllowed values for this property are: "SNAPSHOT_STANDBY", "LOGICAL_STANDBY", "PHYSICAL_STANDBY", "PRIMARY", "FAR_SYNC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class DatabaseHaMetrics(DbmBaseModel): - """The details of the HA metrics for a single database.""" - - is_dataguard_enabled: bool = Field(..., alias='isDataguardEnabled', description='**[Required]** Gets the is_dataguard_enabled of this DatabaseHaMetrics.\nIndicates whether Data Guard is enabled for the database.') - last_backup_summary: DatabaseBackupSummary = Field(..., alias='lastBackupSummary', description='**[Required]** Gets the last_backup_summary of this DatabaseHaMetrics.') - metrics: list[HaMetricDefinition] = Field(..., description='**[Required]** Gets the metrics of this DatabaseHaMetrics.\nA list of database health metrics such as BackupDuration and BackupSize.') - db_id: str = Field(..., alias='dbId', description='**[Required]** Gets the db_id of this DatabaseHaMetrics. The OCID of the Managed Database.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this DatabaseHaMetrics. The OCID of the compartment where the Managed Database resides.') - database_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='databaseType', description='**[Required]** Gets the database_type of this DatabaseHaMetrics.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='databaseSubType', description='**[Required]** Gets the database_sub_type of this DatabaseHaMetrics.\nThe subtype of the Oracle Database. Indicates whether the database is a Container Database,\nPluggable Database, Non-container Database, Autonomous Database, or Autonomous Container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - deployment_type: Literal['ONPREMISE', 'BM', 'VM', 'EXADATA', 'EXADATA_CC', 'AUTONOMOUS', 'EXADATA_XS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='deploymentType', description='**[Required]** Gets the deployment_type of this DatabaseHaMetrics.\nThe infrastructure used to deploy the Oracle Database.\n\nAllowed values for this property are: "ONPREMISE", "BM", "VM", "EXADATA", "EXADATA_CC", "AUTONOMOUS", "EXADATA_XS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this DatabaseHaMetrics.\nThe Oracle Database version.') - workload_type: Literal['OLTP', 'DW', 'AJD', 'APEX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='workloadType', description='Gets the workload_type of this DatabaseHaMetrics.\nThe workload type of the Autonomous Database.\n\nAllowed values for this property are: "OLTP", "DW", "AJD", "APEX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_name: str = Field(..., alias='databaseName', description='**[Required]** Gets the database_name of this DatabaseHaMetrics.\nThe display name of the Managed Database.') - database_id: str | None = Field(None, alias='databaseId', description='Gets the database_id of this DatabaseHaMetrics.\nThe database ID of the Managed Database. Every database had its own ID and that value is captured here.') - db_unique_name: str | None = Field(None, alias='dbUniqueName', description='Gets the db_unique_name of this DatabaseHaMetrics.\nThe database unique name of the Managed Database.') - db_role: Literal['SNAPSHOT_STANDBY', 'LOGICAL_STANDBY', 'PHYSICAL_STANDBY', 'PRIMARY', 'FAR_SYNC', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dbRole', description='**[Required]** Gets the db_role of this DatabaseHaMetrics.\nThe database role of the Managed Database.\n\nAllowed values for this property are: "SNAPSHOT_STANDBY", "LOGICAL_STANDBY", "PHYSICAL_STANDBY", "PRIMARY", "FAR_SYNC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class DatabaseHomeMetricDefinition(DbmBaseModel): - """The response containing the CPU, Storage, Wait, DB Time, and Memory metrics for a specific Managed Database.""" - - activity_time_series_metrics: list[ActivityTimeSeriesMetrics] = Field(..., alias='activityTimeSeriesMetrics', description='**[Required]** Gets the activity_time_series_metrics of this DatabaseHomeMetricDefinition.\nA list of the active session metrics for CPU and Wait time for a specific Managed Database.') - db_time_aggregate_metrics: DatabaseTimeAggregateMetrics = Field(..., alias='dbTimeAggregateMetrics', description='**[Required]** Gets the db_time_aggregate_metrics of this DatabaseHomeMetricDefinition.') - io_aggregate_metrics: DatabaseIOAggregateMetrics = Field(..., alias='ioAggregateMetrics', description='**[Required]** Gets the io_aggregate_metrics of this DatabaseHomeMetricDefinition.') - memory_aggregate_metrics: MemoryAggregateMetrics = Field(..., alias='memoryAggregateMetrics', description='**[Required]** Gets the memory_aggregate_metrics of this DatabaseHomeMetricDefinition.') - db_storage_aggregate_metrics: DatabaseStorageAggregateMetrics = Field(..., alias='dbStorageAggregateMetrics', description='**[Required]** Gets the db_storage_aggregate_metrics of this DatabaseHomeMetricDefinition.') - cpu_utilization_aggregate_metrics: CpuUtilizationAggregateMetrics | None = Field(None, alias='cpuUtilizationAggregateMetrics', description='Gets the cpu_utilization_aggregate_metrics of this DatabaseHomeMetricDefinition.') - statements_aggregate_metrics: StatementsAggregateMetrics | None = Field(None, alias='statementsAggregateMetrics', description='Gets the statements_aggregate_metrics of this DatabaseHomeMetricDefinition.') - failed_connections_aggregate_metrics: FailedConnectionsAggregateMetrics | None = Field(None, alias='failedConnectionsAggregateMetrics', description='Gets the failed_connections_aggregate_metrics of this DatabaseHomeMetricDefinition.') - - -class DatabaseHomeMetrics(DbmBaseModel): - """The response containing the metric collection for a specific Managed Database.""" - - database_home_metrics: DatabaseHomeMetricDefinition = Field(..., alias='databaseHomeMetrics', description='**[Required]** Gets the database_home_metrics of this DatabaseHomeMetrics.') - database_instance_home_metrics: list[DatabaseInstanceHomeMetricsDefinition] | None = Field(None, alias='databaseInstanceHomeMetrics', description='Gets the database_instance_home_metrics of this DatabaseHomeMetrics.\nThe metrics for the RAC database instances.') - - -class DatabaseIOAggregateMetrics(DbmBaseModel): - """The database Input/Output metric details.""" - - iops: list[MetricDataPoint] | None = Field(None, description='Gets the iops of this DatabaseIOAggregateMetrics.\nThe Input/Output Operations Per Second metrics grouped by IOType for a specific Managed Database.') - io_throughput: list[MetricDataPoint] | None = Field(None, alias='ioThroughput', description='Gets the io_throughput of this DatabaseIOAggregateMetrics.\nThe IOThroughput metrics grouped by IOType for a specific Managed Database.') - iops_statistics: list[MetricStatisticsDefinition] | None = Field(None, alias='iopsStatistics', description='Gets the iops_statistics of this DatabaseIOAggregateMetrics.\nThe Input/Output metric statistics such as min, max, mean, lowerQuartile, and upperQuartile.') - io_throughput_statistics: list[MetricStatisticsDefinition] | None = Field(None, alias='ioThroughputStatistics', description='Gets the io_throughput_statistics of this DatabaseIOAggregateMetrics.\nThe IOThroughput metric statistics such as min, max, mean, lowerQuartile, and upperQuartile.') - - -class DatabaseInstanceHomeMetricsDefinition(DbmBaseModel): - """The response containing the CPU, Wait, DB Time, and Memory metrics -for a specific Oracle Real Application Clusters (Oracle RAC) database -instance.""" - - instance_name: str = Field(..., alias='instanceName', description='**[Required]** Gets the instance_name of this DatabaseInstanceHomeMetricsDefinition.\nThe name of the Oracle Real Application Clusters (Oracle RAC)\ndatabase instance to which the corresponding metrics belong.') - instance_number: int = Field(..., alias='instanceNumber', description='**[Required]** Gets the instance_number of this DatabaseInstanceHomeMetricsDefinition.\nThe number of Oracle Real Application Clusters (Oracle RAC)\ndatabase instance to which the corresponding metrics belong.') - activity_time_series_metrics: list[ActivityTimeSeriesMetrics] = Field(..., alias='activityTimeSeriesMetrics', description='**[Required]** Gets the activity_time_series_metrics of this DatabaseInstanceHomeMetricsDefinition.\nA list of the active session metrics for CPU and Wait time for\na specific Oracle Real Application Clusters (Oracle RAC)\ndatabase instance.') - db_time_aggregate_metrics: DatabaseTimeAggregateMetrics = Field(..., alias='dbTimeAggregateMetrics', description='**[Required]** Gets the db_time_aggregate_metrics of this DatabaseInstanceHomeMetricsDefinition.') - io_aggregate_metrics: DatabaseIOAggregateMetrics = Field(..., alias='ioAggregateMetrics', description='**[Required]** Gets the io_aggregate_metrics of this DatabaseInstanceHomeMetricsDefinition.') - memory_aggregate_metrics: MemoryAggregateMetrics = Field(..., alias='memoryAggregateMetrics', description='**[Required]** Gets the memory_aggregate_metrics of this DatabaseInstanceHomeMetricsDefinition.') - cpu_utilization_aggregate_metrics: CpuUtilizationAggregateMetrics | None = Field(None, alias='cpuUtilizationAggregateMetrics', description='Gets the cpu_utilization_aggregate_metrics of this DatabaseInstanceHomeMetricsDefinition.') - - -class DatabaseLifecycleFeatureConfiguration(DbmBaseModel): - """The details required to enable the Database Lifecycle Management feature.""" - - feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the feature of this DatabaseFeatureConfiguration.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - feature_status: Literal['ENABLED', 'NOT_ENABLED', 'UNSUPPORTED', 'FAILED_ENABLING', 'FAILED_DISABLING', 'FAILED', 'ENABLED_WITH_WARNINGS', 'PENDING_DISABLE', 'ENABLING', 'DISABLING', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='featureStatus', description='**[Required]** Gets the feature_status of this DatabaseFeatureConfiguration.\nThe list of statuses for Database Management features.\n\nAllowed values for this property are: "ENABLED", "NOT_ENABLED", "UNSUPPORTED", "FAILED_ENABLING", "FAILED_DISABLING", "FAILED", "ENABLED_WITH_WARNINGS", "PENDING_DISABLE", "ENABLING", "DISABLING", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - connector_details: ConnectorDetails | None = Field(None, alias='connectorDetails', description='Gets the connector_details of this DatabaseFeatureConfiguration.') - database_connection_details: DatabaseConnectionDetails | None = Field(None, alias='databaseConnectionDetails', description='Gets the database_connection_details of this DatabaseFeatureConfiguration.') - license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='licenseModel', description='Gets the license_model of this DatabaseLifecycleFeatureConfiguration.\nThe Oracle license model that applies to the external database.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class DatabaseLifecycleManagementFeatureDetails(DbmRequestModel): - """The details required to enable the Database Lifecycle Management feature.""" - - feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH'] = Field(..., description='**[Required]** Gets the feature of this DatabaseFeatureDetails.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH"') - database_connection_details: DatabaseConnectionDetails = Field(..., alias='databaseConnectionDetails', description='**[Required]** Gets the database_connection_details of this DatabaseFeatureDetails.') - connector_details: ConnectorDetails = Field(..., alias='connectorDetails', description='**[Required]** Gets the connector_details of this DatabaseFeatureDetails.') - - -class DatabaseManagementConfig(DbmBaseModel): - """The configuration of the Database Management service.""" - - database_management_status: Literal['ENABLING', 'ENABLED', 'DISABLING', 'NOT_ENABLED', 'FAILED_ENABLING', 'FAILED_DISABLING', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='databaseManagementStatus', description='**[Required]** Gets the database_management_status of this DatabaseManagementConfig.\nThe status of the Database Management service.\n\nAllowed values for this property are: "ENABLING", "ENABLED", "DISABLING", "NOT_ENABLED", "FAILED_ENABLING", "FAILED_DISABLING", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - connector_id: str | None = Field(None, alias='connectorId', description='Gets the connector_id of this DatabaseManagementConfig. The OCID of the external database connector.') - license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='licenseModel', description='**[Required]** Gets the license_model of this DatabaseManagementConfig.\nThe Oracle license model that applies to the external database.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class DatabaseNamedCredentialConnectionDetails(DbmRequestModel): - """User provides a named credential OCID, which will be used to retrieve the password to connect to the database.""" - - credential_type: Literal['NAME_REFERENCE', 'DETAILS', 'SSL_DETAILS', 'NAMED_CREDENTIALS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='credentialType', description='Gets the credential_type of this DatabaseConnectionCredentials.\nThe type of credential used to connect to the database.\n\nAllowed values for this property are: "NAME_REFERENCE", "DETAILS", "SSL_DETAILS", "NAMED_CREDENTIALS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - named_credential_id: str = Field(..., alias='namedCredentialId', description='**[Required]** Gets the named_credential_id of this DatabaseNamedCredentialConnectionDetails. The OCID of the Named Credential where the database password metadata is stored.') - - -class DatabaseNamedCredentialDetails(DbmRequestModel): - """User provides a named credential OCID, which will be used to retrieve the password to connect to the database.""" - - credential_type: Literal['SECRET', 'PASSWORD', 'NAMED_CREDENTIAL', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='credentialType', description='**[Required]** Gets the credential_type of this DatabaseCredentialDetails.\nThe type of the credential for tablespace administration tasks.\n\nAllowed values for this property are: "SECRET", "PASSWORD", "NAMED_CREDENTIAL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - named_credential_id: str = Field(..., alias='namedCredentialId', description='**[Required]** Gets the named_credential_id of this DatabaseNamedCredentialDetails. The OCID of the named credential where the database password metadata is stored.') - - -class DatabaseParameterSummary(DbmBaseModel): - """A summary of the database parameter.""" - - name: str = Field(..., description='**[Required]** Gets the name of this DatabaseParameterSummary.\nThe parameter name.') - type: Literal['BOOLEAN', 'STRING', 'INTEGER', 'FILENAME', 'BIG_INTEGER', 'RESERVED', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the type of this DatabaseParameterSummary.\nThe parameter type.\n\nAllowed values for this property are: "BOOLEAN", "STRING", "INTEGER", "FILENAME", "BIG_INTEGER", "RESERVED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - value: str = Field(..., description='**[Required]** Gets the value of this DatabaseParameterSummary.\nThe parameter value.') - display_value: str = Field(..., alias='displayValue', description='**[Required]** Gets the display_value of this DatabaseParameterSummary.\nThe parameter value in a user-friendly format. For example, if the `value` property shows the value 262144 for a big integer parameter, then the `displayValue` property will show the value 256K.') - number: float | None = Field(None, description='Gets the number of this DatabaseParameterSummary.\nThe parameter number.') - is_default: bool | None = Field(None, alias='isDefault', description='Gets the is_default of this DatabaseParameterSummary.\nIndicates whether the parameter is set to the default value (`TRUE`) or the parameter value was specified in the parameter file (`FALSE`).') - is_session_modifiable: bool | None = Field(None, alias='isSessionModifiable', description='Gets the is_session_modifiable of this DatabaseParameterSummary.\nIndicates whether the parameter can be changed with `ALTER SESSION` (`TRUE`) or not (`FALSE`)') - is_system_modifiable: Literal['IMMEDIATE', 'DEFERRED', 'FALSE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='isSystemModifiable', description='Gets the is_system_modifiable of this DatabaseParameterSummary.\nIndicates whether the parameter can be changed with `ALTER SYSTEM` and when the change takes effect:\n- IMMEDIATE: Parameter can be changed with `ALTER SYSTEM` regardless of the type of parameter file used to start the instance. The change takes effect immediately.\n- DEFERRED: Parameter can be changed with `ALTER SYSTEM` regardless of the type of parameter file used to start the instance. The change takes effect in subsequent sessions.\n- FALSE: Parameter cannot be changed with `ALTER SYSTEM` unless a server parameter file was used to start the instance. The change takes effect in subsequent instances.\n\nAllowed values for this property are: "IMMEDIATE", "DEFERRED", "FALSE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - is_pdb_modifiable: bool | None = Field(None, alias='isPdbModifiable', description='Gets the is_pdb_modifiable of this DatabaseParameterSummary.\nIndicates whether the parameter can be modified on a per-PDB basis (`TRUE`) or not (`FALSE`). In a non-CDB, the value of this property is `null`.') - is_instance_modifiable: bool | None = Field(None, alias='isInstanceModifiable', description='Gets the is_instance_modifiable of this DatabaseParameterSummary.\nFor parameters that can be changed with `ALTER SYSTEM`, indicates whether the value of the parameter can be different for every instance (`TRUE`) or whether the parameter must have the same value for all Real Application Clusters instances (`FALSE`). For other parameters, this is always `FALSE`.') - is_modified: Literal['MODIFIED', 'FALSE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='isModified', description='Gets the is_modified of this DatabaseParameterSummary.\nIndicates how the parameter was modified. If an `ALTER SYSTEM` was performed, the value will be `MODIFIED`.\n\nAllowed values for this property are: "MODIFIED", "FALSE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - is_adjusted: bool | None = Field(None, alias='isAdjusted', description='Gets the is_adjusted of this DatabaseParameterSummary.\nIndicates whether Oracle adjusted the input value to a more suitable value.') - is_deprecated: bool | None = Field(None, alias='isDeprecated', description='Gets the is_deprecated of this DatabaseParameterSummary.\nIndicates whether the parameter has been deprecated (`TRUE`) or not (`FALSE`).') - is_basic: bool | None = Field(None, alias='isBasic', description='Gets the is_basic of this DatabaseParameterSummary.\nIndicates whether the parameter is a basic parameter (`TRUE`) or not (`FALSE`).') - description: str | None = Field(None, description='Gets the description of this DatabaseParameterSummary.\nThe description of the parameter.') - ordinal: float | None = Field(None, description='Gets the ordinal of this DatabaseParameterSummary.\nThe position (ordinal number) of the parameter value. Useful only for parameters whose values are lists of strings.') - update_comment: str | None = Field(None, alias='updateComment', description='Gets the update_comment of this DatabaseParameterSummary.\nThe comments associated with the most recent update.') - container_id: float | None = Field(None, alias='containerId', description='Gets the container_id of this DatabaseParameterSummary.\nThe ID of the database container to which the data pertains.\nPossible values include:\n- `0`: This value is used for data that pertain to the entire CDB. This value is also used for data in non-CDBs.\n- `1`: This value is used for data that pertain to only the root container.\n- `n`: Where n is the applicable container ID for the data.') - category: str | None = Field(None, description='Gets the category of this DatabaseParameterSummary.\nThe parameter category.') - constraint: Literal['UNIQUE', 'IDENTICAL', 'NONE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the constraint of this DatabaseParameterSummary.\nApplicable in case of Oracle Real Application Clusters (Oracle RAC) databases.\nA `UNIQUE` parameter is one which is unique to each Oracle Real Application\nClusters (Oracle RAC) instance. For example, the parameter `INSTANCE_NUMBER`\nmust have different values in each instance. An `IDENTICAL` parameter must\nhave the same value for every instance. For example, the parameter\n`DB_BLOCK_SIZE` must have the same value in all instances.\n\nAllowed values for this property are: "UNIQUE", "IDENTICAL", "NONE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - sid: str | None = Field(None, description='Gets the sid of this DatabaseParameterSummary.\nThe database instance SID for which the parameter is defined.') - is_specified: bool | None = Field(None, alias='isSpecified', description='Gets the is_specified of this DatabaseParameterSummary.\nIndicates whether the parameter was specified in the server parameter file (`TRUE`) or not (`FALSE`). Applicable only when the parameter source is `SPFILE`.') - allowed_values: list[AllowedParameterValue] | None = Field(None, alias='allowedValues', description='Gets the allowed_values of this DatabaseParameterSummary.\nA list of allowed values for this parameter.') - - -class DatabaseParameterUpdateStatus(DbmBaseModel): - """The result of database parameter update.""" - - status: Literal['SUCCEEDED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DatabaseParameterUpdateStatus.\nThe status of the parameter update.\n\nAllowed values for this property are: "SUCCEEDED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - error_code: str | None = Field(None, ge=0, alias='errorCode', description='Gets the error_code of this DatabaseParameterUpdateStatus.\nAn error code that defines the failure or `null` if the parameter\nwas updated successfully.') - error_message: str | None = Field(None, alias='errorMessage', description='Gets the error_message of this DatabaseParameterUpdateStatus.\nThe error message indicating the reason for failure or `null` if\nthe parameter was updated successfully.') - - -class DatabaseParametersCollection(DbmBaseModel): - """A collection of database parameters.""" - - database_name: str = Field(..., alias='databaseName', description='**[Required]** Gets the database_name of this DatabaseParametersCollection.\nThe name of the Managed Database.') - database_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='databaseType', description='**[Required]** Gets the database_type of this DatabaseParametersCollection.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='databaseSubType', description='**[Required]** Gets the database_sub_type of this DatabaseParametersCollection.\nThe subtype of the Oracle Database. Indicates whether the database\nis a Container Database, Pluggable Database, or a Non-container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_version: str = Field(..., alias='databaseVersion', description='**[Required]** Gets the database_version of this DatabaseParametersCollection.\nThe Oracle Database version.') - items: list[DatabaseParameterSummary] = Field(..., description='**[Required]** Gets the items of this DatabaseParametersCollection.\nAn array of DatabaseParameterSummary objects.') - - -class DatabasePasswordCredentialDetails(DbmRequestModel): - """User provides a password to be used to connect to the database.""" - - credential_type: Literal['SECRET', 'PASSWORD', 'NAMED_CREDENTIAL', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='credentialType', description='**[Required]** Gets the credential_type of this DatabaseCredentialDetails.\nThe type of the credential for tablespace administration tasks.\n\nAllowed values for this property are: "SECRET", "PASSWORD", "NAMED_CREDENTIAL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - password: str = Field(..., description="**[Required]** Gets the password of this DatabasePasswordCredentialDetails.\nThe database user's password encoded using BASE64 scheme.") - username: str | None = Field(None, description='Gets the username of this DatabasePasswordCredentialDetails.\nThe user to connect to the database.') - role: Literal['NORMAL', 'SYSDBA', 'SYSDG', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the role of this DatabasePasswordCredentialDetails.\nThe role of the database user.\n\nAllowed values for this property are: "NORMAL", "SYSDBA", "SYSDG", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class DatabasePlan(DbmBaseModel): - """The resource allocation directives must all use the share attribute, or they must all use the level and allocation attributes. -If you use the share attribute to allocate I/O resources, then the database plan can have a maximum of 1024 directives. -If you use the level and allocation attributes to allocate I/O resources, then the database plan can have -a maximum of 32 directives. -Only one directive is allowed for each database name and each profile name.""" - - items: list[DatabasePlanDirective] = Field(..., description='**[Required]** Gets the items of this DatabasePlan.\nA list of DatabasePlanDirectives.') - - -class DatabasePlanDirective(DbmBaseModel): - """Manages resource allocation among databases. Besides the name, at least one other property must be available.""" - - name: str = Field(..., description='**[Required]** Gets the name of this DatabasePlanDirective.\nThe name of a database or a profile.') - share: int | None = Field(None, description='Gets the share of this DatabasePlanDirective.\nThe relative priority of a database in the database plan. A higher share value implies\nhigher priority and more access to the I/O resources.\nUse either share or (level, allocation). All plan directives in a database plan\nshould use the same setting.\nShare-based resource allocation is the recommended method for a database plan.') - level: int | None = Field(None, description='Gets the level of this DatabasePlanDirective.\nThe allocation level. Valid values are from 1 to 8. Resources are allocated to level 1 first,\nand then remaining resources are allocated to level 2, and so on.') - allocation: int | None = Field(None, description='Gets the allocation of this DatabasePlanDirective.\nThe resource allocation as a percentage (0-100) within the level.') - limit: int | None = Field(None, description='Gets the limit of this DatabasePlanDirective.\nThe maximum I/O utilization limit as a percentage of the available resources.') - is_flash_cache_on: bool | None = Field(None, alias='isFlashCacheOn', description='Gets the is_flash_cache_on of this DatabasePlanDirective.\nControls use of Exadata Smart Flash Cache by a database.\nThis ensures that cache space is reserved for mission-critical databases.\nflashcache=off is invalid in a directive that contains the flashcachemin, flashcachelimit, or flashcachesize attributes.') - is_pmem_cache_on: bool | None = Field(None, alias='isPmemCacheOn', description='Gets the is_pmem_cache_on of this DatabasePlanDirective.\nControls use of the persistent memory (PMEM) cache by a database. This ensures that cache space\nis reserved for mission-critical databases.\npmemcache=off is invalid in a directive that contains the pmemcachemin, pmemcachelimit, or pmemcachesize attributes.') - is_flash_log_on: bool | None = Field(None, alias='isFlashLogOn', description='Gets the is_flash_log_on of this DatabasePlanDirective.\nControls use of Exadata Smart Flash Log by a database.\nThis ensures that Exadata Smart Flash Log is reserved for mission-critical databases.') - is_pmem_log_on: bool | None = Field(None, alias='isPmemLogOn', description='Gets the is_pmem_log_on of this DatabasePlanDirective.\nControls use of persistent memory logging (PMEM log) by a database.\nThis ensures that PMEM log is reserved for mission-critical databases.') - flash_cache_limit: str | None = Field(None, alias='flashCacheLimit', description='Gets the flash_cache_limit of this DatabasePlanDirective.\nDefines a soft limit for space usage in Exadata Smart Flash Cache.\nIf the cache is not full, the limit can be exceeded.\nYou specify the value for flashcachelimit in bytes. You can also use the suffixes M (megabytes),\nG (gigabytes), or T (terabytes) to specify larger values. For example, 300M, 150G, or 1T.\nThe value for flashcachelimit must be at least 4 MB.\nThe flashcachelimit and flashcachesize attributes cannot be specified in the same directive.\nThe value for flashcachelimit cannot be smaller than flashcachemin, if it is specified.') - flash_cache_min: str | None = Field(None, alias='flashCacheMin', description='Gets the flash_cache_min of this DatabasePlanDirective.\nSpecifies a minimum guaranteed space allocation in Exadata Smart Flash Cache.\nYou specify the value for flashcachemin in bytes. You can also use the suffixes\nM (megabytes), G (gigabytes), or T (terabytes) to specify larger values. For example, 300M, 150G, or 1T.\nThe value for flashcachemin must be at least 4 MB.\nIn any plan, the sum of all flashcachemin values cannot exceed the size of Exadata Smart Flash Cache.\nIf flashcachelimit is specified, then the value for flashcachemin cannot exceed flashcachelimit.\nIf flashcachesize is specified, then the value for flashcachemin cannot exceed flashcachesize.') - flash_cache_size: str | None = Field(None, alias='flashCacheSize', description='Gets the flash_cache_size of this DatabasePlanDirective.\nDefines a hard limit for space usage in Exadata Smart Flash Cache.\nThe limit cannot be exceeded, even if the cache is not full.\nIn an IORM plan, if the size of Exadata Smart Flash Cache can accommodate all of the flashcachemin\nand flashcachesize allocations, then each flashcachesize definition represents a guaranteed space allocation.\nHowever, starting with Oracle Exadata System Software release 19.2.0 you can use the flashcachesize\nattribute to over-provision space in Exadata Smart Flash Cache. Consequently,\nif the size of Exadata Smart Flash Cache cannot accommodate all of the flashcachemin and flashcachesize\nallocations, then only flashcachemin is guaranteed.') - pmem_cache_limit: str | None = Field(None, alias='pmemCacheLimit', description='Gets the pmem_cache_limit of this DatabasePlanDirective.\nDefines a soft limit for space usage in the persistent memory (PMEM) cache.\nIf the cache is not full, the limit can be exceeded.\nYou specify the value for pmemcachelimit in bytes. You can also use the suffixes M (megabytes),\nG (gigabytes), or T (terabytes) to specify larger values. For example, 300M, 150G, or 1T.\nThe value for pmemcachelimit must be at least 4 MB.\nThe pmemcachelimit and pmemcachesize attributes cannot be specified in the same directive.\nThe value for pmemcachelimit cannot be smaller than pmemcachemin, if it is specified.') - pmem_cache_min: str | None = Field(None, alias='pmemCacheMin', description='Gets the pmem_cache_min of this DatabasePlanDirective.\nSpecifies a minimum guaranteed space allocation in the persistent memory (PMEM) cache.') - pmem_cache_size: str | None = Field(None, alias='pmemCacheSize', description='Gets the pmem_cache_size of this DatabasePlanDirective.\nDefines a hard limit for space usage in the persistent memory (PMEM) cache.\nThe limit cannot be exceeded, even if the cache is not full.\nIn an IORM plan, if the size of the PMEM cache can accommodate all of the pmemcachemin and\npmemcachesize allocations, then each pmemcachesize definition represents a guaranteed space allocation.\nHowever, you can use the pmemcachesize attribute to over-provision space in the PMEM cache.\nConsequently, if the PMEM cache size cannot accommodate all of the pmemcachemin and pmemcachesize\nallocations, then only pmemcachemin is guaranteed.') - asm_cluster: str | None = Field(None, alias='asmCluster', description='Gets the asm_cluster of this DatabasePlanDirective.\nStarting with Oracle Exadata System Software release 19.1.0, you can use the asmcluster attribute to\ndistinguish between databases with the same name running in different Oracle ASM clusters.') - type: Literal['DATABASE', 'PROFILE', 'OTHER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the type of this DatabasePlanDirective.\nEnables you to create a profile or template, to ease management and configuration of resource plans\nin environments with many databases.\n\n- type=database: Specifies a directive that applies to a specific database.\nIf type in not specified, then the directive defaults to the database type.\n- type=profile: Specifies a directive that applies to a profile rather than a specific database.\n\n To associate a database with an IORM profile, you must set the database initialization\n parameter db_performance_profile to the value of the profile name. Databases that map to a profile inherit the settings specified in the profile.\n\nAllowed values for this property are: "DATABASE", "PROFILE", "OTHER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - role: Literal['PRIMARY', 'STANDBY', 'NONE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the role of this DatabasePlanDirective.\nEnables you to specify different plan directives based on the Oracle Data Guard database role.\n\nAllowed values for this property are: "PRIMARY", "STANDBY", "NONE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class DatabaseSecretCredentialDetails(DbmRequestModel): - """User provides a secret OCID, which will be used to retrieve the password to connect to the database.""" - - credential_type: Literal['SECRET', 'PASSWORD', 'NAMED_CREDENTIAL', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='credentialType', description='**[Required]** Gets the credential_type of this DatabaseCredentialDetails.\nThe type of the credential for tablespace administration tasks.\n\nAllowed values for this property are: "SECRET", "PASSWORD", "NAMED_CREDENTIAL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - password_secret_id: str = Field(..., alias='passwordSecretId', description='**[Required]** Gets the password_secret_id of this DatabaseSecretCredentialDetails. The OCID of the Secret where the database password is stored.') - username: str | None = Field(None, description='Gets the username of this DatabaseSecretCredentialDetails.\nThe user to connect to the database.') - role: Literal['NORMAL', 'SYSDBA', 'SYSDG', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the role of this DatabaseSecretCredentialDetails.\nThe role of the database user.\n\nAllowed values for this property are: "NORMAL", "SYSDBA", "SYSDG", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class DatabaseSqlWatchFeatureConfiguration(DbmBaseModel): - """The details required to enable the SQL Watch feature.""" - - feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the feature of this DatabaseFeatureConfiguration.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - feature_status: Literal['ENABLED', 'NOT_ENABLED', 'UNSUPPORTED', 'FAILED_ENABLING', 'FAILED_DISABLING', 'FAILED', 'ENABLED_WITH_WARNINGS', 'PENDING_DISABLE', 'ENABLING', 'DISABLING', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='featureStatus', description='**[Required]** Gets the feature_status of this DatabaseFeatureConfiguration.\nThe list of statuses for Database Management features.\n\nAllowed values for this property are: "ENABLED", "NOT_ENABLED", "UNSUPPORTED", "FAILED_ENABLING", "FAILED_DISABLING", "FAILED", "ENABLED_WITH_WARNINGS", "PENDING_DISABLE", "ENABLING", "DISABLING", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - connector_details: ConnectorDetails | None = Field(None, alias='connectorDetails', description='Gets the connector_details of this DatabaseFeatureConfiguration.') - database_connection_details: DatabaseConnectionDetails | None = Field(None, alias='databaseConnectionDetails', description='Gets the database_connection_details of this DatabaseFeatureConfiguration.') - - -class DatabaseSqlWatchFeatureDetails(DbmRequestModel): - """The details required to enable the SQL Watch feature.""" - - feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH'] = Field(..., description='**[Required]** Gets the feature of this DatabaseFeatureDetails.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH"') - database_connection_details: DatabaseConnectionDetails = Field(..., alias='databaseConnectionDetails', description='**[Required]** Gets the database_connection_details of this DatabaseFeatureDetails.') - connector_details: ConnectorDetails = Field(..., alias='connectorDetails', description='**[Required]** Gets the connector_details of this DatabaseFeatureDetails.') - can_enable_all_current_pdbs: bool | None = Field(None, alias='canEnableAllCurrentPdbs', description='Gets the can_enable_all_current_pdbs of this DatabaseSqlWatchFeatureDetails.\nIndicates whether SQL Watch should be enabled for all the current pluggable databases in the container database.') - is_auto_enable_pluggable_database: bool | None = Field(None, alias='isAutoEnablePluggableDatabase', description='Gets the is_auto_enable_pluggable_database of this DatabaseSqlWatchFeatureDetails.\nIndicates whether SQL Watch should be enabled automatically for all the pluggable databases in the container database.') - - -class DatabaseSslConnectionCredentials(DbmBaseModel): - """The SSL connection credential details used to connect to the database.""" - - credential_type: Literal['NAME_REFERENCE', 'DETAILS', 'SSL_DETAILS', 'NAMED_CREDENTIALS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='credentialType', description='Gets the credential_type of this DatabaseConnectionCredentials.\nThe type of credential used to connect to the database.\n\nAllowed values for this property are: "NAME_REFERENCE", "DETAILS", "SSL_DETAILS", "NAMED_CREDENTIALS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - credential_name: str | None = Field(None, alias='credentialName', description='Gets the credential_name of this DatabaseSslConnectionCredentials.\nThe name of the credential information that used to connect to the DB system resource.\nThe name should be in "x.y" format, where the length of "x" has a maximum of 64 characters,\nand length of "y" has a maximum of 199 characters. The name strings can contain letters,\nnumbers and the underscore character only. Other characters are not valid, except for\nthe "." character that separates the "x" and "y" portions of the name.\n*IMPORTANT* - The name must be unique within the OCI region the credential is being created in.\nIf you specify a name that duplicates the name of another credential within the same OCI region,\nyou may overwrite or corrupt the credential that is already using the name.\n\nFor example: inventorydb.abc112233445566778899') - user_name: str = Field(..., alias='userName', description='**[Required]** Gets the user_name of this DatabaseSslConnectionCredentials.\nThe user name used to connect to the database.') - password_secret_id: str = Field(..., alias='passwordSecretId', description='**[Required]** Gets the password_secret_id of this DatabaseSslConnectionCredentials. The OCID of the secret containing the user password.') - role: Literal['SYSDBA', 'NORMAL', 'SYSDG', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the role of this DatabaseSslConnectionCredentials.\nThe role of the user connecting to the database.\n\nAllowed values for this property are: "SYSDBA", "NORMAL", "SYSDG", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - ssl_secret_id: str = Field(..., alias='sslSecretId', description='**[Required]** Gets the ssl_secret_id of this DatabaseSslConnectionCredentials. The OCID of the secret containing the SSL keystore and truststore details.') - - -class DatabaseStorageAggregateMetrics(DbmBaseModel): - """The database storage metric values.""" - - storage_allocated: MetricDataPoint | None = Field(None, alias='storageAllocated', description='Gets the storage_allocated of this DatabaseStorageAggregateMetrics.') - storage_used: MetricDataPoint | None = Field(None, alias='storageUsed', description='Gets the storage_used of this DatabaseStorageAggregateMetrics.') - storage_used_by_table_space: list[MetricDataPoint] | None = Field(None, alias='storageUsedByTableSpace', description='Gets the storage_used_by_table_space of this DatabaseStorageAggregateMetrics.\nA list of the storage metrics grouped by TableSpace for a specific Managed Database.') - - -class DatabaseTimeAggregateMetrics(DbmBaseModel): - """The database time metric details.""" - - cpu_count: MetricDataPoint | None = Field(None, ge=0, alias='cpuCount', description='Gets the cpu_count of this DatabaseTimeAggregateMetrics.') - cpu_time: MetricDataPoint | None = Field(None, alias='cpuTime', description='Gets the cpu_time of this DatabaseTimeAggregateMetrics.') - wait_time: MetricDataPoint | None = Field(None, alias='waitTime', description='Gets the wait_time of this DatabaseTimeAggregateMetrics.') - user_io_time: MetricDataPoint | None = Field(None, alias='userIoTime', description='Gets the user_io_time of this DatabaseTimeAggregateMetrics.') - cluster: MetricDataPoint | None = Field(None, description='Gets the cluster of this DatabaseTimeAggregateMetrics.') - - -class DatabaseUsageMetrics(DbmBaseModel): - """The list of aggregated metrics for Managed Databases in the fleet.""" - - db_id: str | None = Field(None, alias='dbId', description='Gets the db_id of this DatabaseUsageMetrics. The OCID of the Managed Database.') - compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this DatabaseUsageMetrics. The OCID of the compartment where the Managed Database resides.') - database_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseType', description='Gets the database_type of this DatabaseUsageMetrics.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseSubType', description='Gets the database_sub_type of this DatabaseUsageMetrics.\nThe subtype of the Oracle Database. Indicates whether the database is a Container Database,\nPluggable Database, Non-container Database, Autonomous Database, or Autonomous Container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - deployment_type: Literal['ONPREMISE', 'BM', 'VM', 'EXADATA', 'EXADATA_CC', 'AUTONOMOUS', 'EXADATA_XS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='deploymentType', description='Gets the deployment_type of this DatabaseUsageMetrics.\nThe infrastructure used to deploy the Oracle Database.\n\nAllowed values for this property are: "ONPREMISE", "BM", "VM", "EXADATA", "EXADATA_CC", "AUTONOMOUS", "EXADATA_XS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this DatabaseUsageMetrics.\nThe Oracle Database version.') - workload_type: Literal['OLTP', 'DW', 'AJD', 'APEX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='workloadType', description='Gets the workload_type of this DatabaseUsageMetrics.\nThe workload type of the Autonomous Database.\n\nAllowed values for this property are: "OLTP", "DW", "AJD", "APEX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_name: str | None = Field(None, alias='databaseName', description='Gets the database_name of this DatabaseUsageMetrics.\nThe display name of the Managed Database.') - database_container_id: str | None = Field(None, alias='databaseContainerId', description='Gets the database_container_id of this DatabaseUsageMetrics. The OCID of the parent Container Database, in the case of a Pluggable Database.') - database_id: str | None = Field(None, alias='databaseId', description='Gets the database_id of this DatabaseUsageMetrics.\nThe Database id of the Managed Database. Every database had its own id and that value is captured here.') - primary_db_id: str | None = Field(None, alias='primaryDbId', description='Gets the primary_db_id of this DatabaseUsageMetrics.\nThe Primary Database id of the Managed Database.') - primary_db_unique_name: str | None = Field(None, alias='primaryDbUniqueName', description='Gets the primary_db_unique_name of this DatabaseUsageMetrics.\nThe Primary Database unique name of the Managed Database.') - db_unique_name: str | None = Field(None, alias='dbUniqueName', description='Gets the db_unique_name of this DatabaseUsageMetrics.\nThe Database unique name of the Managed Database.') - db_role: Literal['SNAPSHOT_STANDBY', 'LOGICAL_STANDBY', 'PHYSICAL_STANDBY', 'PRIMARY', 'FAR_SYNC', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='dbRole', description='Gets the db_role of this DatabaseUsageMetrics.\nThe Database role of the Managed Database.\n\nAllowed values for this property are: "SNAPSHOT_STANDBY", "LOGICAL_STANDBY", "PHYSICAL_STANDBY", "PRIMARY", "FAR_SYNC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - metrics: list[FleetMetricDefinition] | None = Field(None, description='Gets the metrics of this DatabaseUsageMetrics.\nA list of the database health metrics like CPU, Storage, and Memory.') - - -class Datafile(DbmBaseModel): - """The details of a data file.""" - - name: str = Field(..., description='**[Required]** Gets the name of this Datafile.\nThe filename (including the path) of the data file or temp file.') - status: Literal['AVAILABLE', 'INVALID', 'OFFLINE', 'ONLINE', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this Datafile.\nThe status of the file. INVALID status is used when the file number is not in use, for example, a file in a tablespace that was removed.\n\nAllowed values for this property are: "AVAILABLE", "INVALID", "OFFLINE", "ONLINE", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - online_status: Literal['SYSOFF', 'SYSTEM', 'OFFLINE', 'ONLINE', 'RECOVER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='onlineStatus', description='Gets the online_status of this Datafile.\nThe online status of the file.\n\nAllowed values for this property are: "SYSOFF", "SYSTEM", "OFFLINE", "ONLINE", "RECOVER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - is_auto_extensible: bool | None = Field(None, alias='isAutoExtensible', description='Gets the is_auto_extensible of this Datafile.\nIndicates whether the data file is auto-extensible.') - lost_write_protect: Literal['ENABLED', 'PROTECT_OFF', 'SUSPEND', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lostWriteProtect', description='Gets the lost_write_protect of this Datafile.\nThe lost write protection status of the file.\n\nAllowed values for this property are: "ENABLED", "PROTECT_OFF", "SUSPEND", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - shared: Literal['SHARED', 'LOCAL_FOR_RIM', 'LOCAL_FOR_ALL', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the shared of this Datafile.\nType of tablespace this file belongs to. If it\'s for a shared tablespace, for a local temporary tablespace for RIM (read-only) instances, or for local temporary tablespace for all instance types.\n\nAllowed values for this property are: "SHARED", "LOCAL_FOR_RIM", "LOCAL_FOR_ALL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - instance_id: float | None = Field(None, alias='instanceId', description='Gets the instance_id of this Datafile.\nInstance ID of the instance to which the temp file belongs. This column has a NULL value for temp files that belong to shared tablespaces.') - max_size_kb: float | None = Field(None, alias='maxSizeKB', description='Gets the max_size_kb of this Datafile.\nThe maximum file size in KB.') - allocated_size_kb: float | None = Field(None, alias='allocatedSizeKB', description='Gets the allocated_size_kb of this Datafile.\nThe allocated file size in KB.') - user_size_kb: float | None = Field(None, alias='userSizeKB', description='Gets the user_size_kb of this Datafile.\nThe size of the file available for user data in KB. The actual size of the file minus the USER_BYTES value is used to store file-related metadata.') - increment_by: float | None = Field(None, alias='incrementBy', description='Gets the increment_by of this Datafile.\nThe number of blocks used as auto-extension increment.') - free_space_kb: float | None = Field(None, alias='freeSpaceKB', description='Gets the free_space_kb of this Datafile.\nThe free space available in the data file in KB.') - used_space_kb: float | None = Field(None, alias='usedSpaceKB', description='Gets the used_space_kb of this Datafile.\nThe total space used in the data file in KB.') - used_percent_available: float | None = Field(None, alias='usedPercentAvailable', description='Gets the used_percent_available of this Datafile.\nThe percentage of used space out of the maximum available space in the file.') - used_percent_allocated: float | None = Field(None, alias='usedPercentAllocated', description='Gets the used_percent_allocated of this Datafile.\nThe percentage of used space out of the total allocated space in the file.') - - -class DataguardMetrics(DbmBaseModel): - """The Data Guard usage metrics for a single database.""" - - fast_start_fail_over: str = Field(..., alias='fastStartFailOver', description='**[Required]** Gets the fast_start_fail_over of this DataguardMetrics.\nThe Fast-Start Failover status of the primary database.') - protection_mode: str = Field(..., alias='protectionMode', description='**[Required]** Gets the protection_mode of this DataguardMetrics.\nThe protection mode of the primary Database.') - metrics: list[HaMetricDefinition] = Field(..., description='**[Required]** Gets the metrics of this DataguardMetrics.\nA list of primary or standby database metrics.') - stand_by_databases: list[StandByDatabaseDataguardMetrics] = Field(..., alias='standByDatabases', description='**[Required]** Gets the stand_by_databases of this DataguardMetrics.\nA list of standby databases and their metrics') - db_id: str = Field(..., alias='dbId', description='**[Required]** Gets the db_id of this DataguardMetrics. The OCID of the Managed Database.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this DataguardMetrics. The OCID of the compartment where the Managed Database resides.') - database_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='databaseType', description='**[Required]** Gets the database_type of this DataguardMetrics.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='databaseSubType', description='**[Required]** Gets the database_sub_type of this DataguardMetrics.\nThe subtype of the Oracle Database. Indicates whether the database is a Container Database,\nPluggable Database, Non-container Database, Autonomous Database, or Autonomous Container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - deployment_type: Literal['ONPREMISE', 'BM', 'VM', 'EXADATA', 'EXADATA_CC', 'AUTONOMOUS', 'EXADATA_XS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='deploymentType', description='**[Required]** Gets the deployment_type of this DataguardMetrics.\nThe infrastructure used to deploy the Oracle Database.\n\nAllowed values for this property are: "ONPREMISE", "BM", "VM", "EXADATA", "EXADATA_CC", "AUTONOMOUS", "EXADATA_XS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this DataguardMetrics.\nThe Oracle Database version.') - workload_type: Literal['OLTP', 'DW', 'AJD', 'APEX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='workloadType', description='Gets the workload_type of this DataguardMetrics.\nThe workload type of the Autonomous Database.\n\nAllowed values for this property are: "OLTP", "DW", "AJD", "APEX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_name: str = Field(..., alias='databaseName', description='**[Required]** Gets the database_name of this DataguardMetrics.\nThe display name of the Managed Database.') - database_id: str | None = Field(None, alias='databaseId', description='Gets the database_id of this DataguardMetrics.\nThe database ID of the Managed Database. Every database had its own ID and that value is captured here.') - db_unique_name: str | None = Field(None, alias='dbUniqueName', description='Gets the db_unique_name of this DataguardMetrics.\nThe database unique name of the Managed Database.') - db_role: Literal['SNAPSHOT_STANDBY', 'LOGICAL_STANDBY', 'PHYSICAL_STANDBY', 'PRIMARY', 'FAR_SYNC', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dbRole', description='**[Required]** Gets the db_role of this DataguardMetrics.\nThe database role of the Managed Database.\n\nAllowed values for this property are: "SNAPSHOT_STANDBY", "LOGICAL_STANDBY", "PHYSICAL_STANDBY", "PRIMARY", "FAR_SYNC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class DataguardPerformanceMetrics(DbmBaseModel): - """A summary of Data Guard performance metrics for Managed Databases.""" - - metrics_data: list[PerformanceMetricsData] = Field(..., alias='metricsData', description='**[Required]** Gets the metrics_data of this DataguardPerformanceMetrics.\nA summary of Data Guard performance metrics such as ApplyLag, TransportLag and RedoApplyRate, for Managed Databases.') - - -class DbManagementAnalyticsMetric(DbmBaseModel): - """The metric details of a Database Management resource.""" - - metric_name: str | None = Field(None, alias='metricName', description='Gets the metric_name of this DbManagementAnalyticsMetric.\nThe name of the metric.') - duration_in_seconds: int | None = Field(None, alias='durationInSeconds', description='Gets the duration_in_seconds of this DbManagementAnalyticsMetric.\nThe duration of the returned aggregated data in seconds.') - metadata: dict[str, str] | None = Field(None, description='Gets the metadata of this DbManagementAnalyticsMetric.\nThe additional information about the metric.\n\nExample: `"unit": "bytes"`') - dimensions: dict[str, str] | None = Field(None, description='Gets the dimensions of this DbManagementAnalyticsMetric.\nThe qualifiers provided in the definition of the returned metric.') - start_timestamp_in_epoch_seconds: int | None = Field(None, alias='startTimestampInEpochSeconds', description='Gets the start_timestamp_in_epoch_seconds of this DbManagementAnalyticsMetric.\nThe start time associated with the value of the metric.') - mean: float | None = Field(None, description='Gets the mean of this DbManagementAnalyticsMetric.\nThe mean value of the metric.') - - -class DbManagementPrivateEndpoint(DbmBaseModel): - """A Database Management private endpoint allows Database Management to connect to databases in a Virtual Cloud Network (VCN).""" - - id: str = Field(..., description='**[Required]** Gets the id of this DbManagementPrivateEndpoint. The OCID of the Database Management private endpoint.') - name: str = Field(..., description='**[Required]** Gets the name of this DbManagementPrivateEndpoint.\nThe display name of the Database Management private endpoint.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this DbManagementPrivateEndpoint. The OCID of the compartment.') - is_cluster: bool | None = Field(None, alias='isCluster', description='Gets the is_cluster of this DbManagementPrivateEndpoint.\nSpecifies whether the Database Management private endpoint can be used for Oracle Databases in a cluster.') - is_dns_resolution_enabled: bool | None = Field(None, alias='isDnsResolutionEnabled', description='Gets the is_dns_resolution_enabled of this DbManagementPrivateEndpoint.\nSpecifies whether the Database Management private endpoint has DNS proxy server enabled to resolve private host name.') - vcn_id: str = Field(..., alias='vcnId', description='**[Required]** Gets the vcn_id of this DbManagementPrivateEndpoint. The OCID of the VCN.') - subnet_id: str = Field(..., alias='subnetId', description='**[Required]** Gets the subnet_id of this DbManagementPrivateEndpoint. The OCID of the subnet.') - private_ip: str | None = Field(None, alias='privateIp', description='Gets the private_ip of this DbManagementPrivateEndpoint.\nThe IP addresses assigned to the Database Management private endpoint.') - description: str | None = Field(None, description='Gets the description of this DbManagementPrivateEndpoint.\nThe description of the Database Management private endpoint.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DbManagementPrivateEndpoint. The date and time the Database Managament private endpoint was created, in the format defined by RFC3339.') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DbManagementPrivateEndpoint.\nThe current lifecycle state of the Database Management private endpoint.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - nsg_ids: list[str] | None = Field(None, alias='nsgIds', description='Gets the nsg_ids of this DbManagementPrivateEndpoint.\nThe OCIDs of the Network Security Groups to which the Database Management private endpoint belongs.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this DbManagementPrivateEndpoint. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this DbManagementPrivateEndpoint. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this DbManagementPrivateEndpoint. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class DbManagementPrivateEndpointCollection(DbmBaseModel): - """A collection of Database Management private endpoint objects.""" - - items: list[DbManagementPrivateEndpointSummary] = Field(..., description='**[Required]** Gets the items of this DbManagementPrivateEndpointCollection.\nA list of DbManagementPrivateEndpointSummary objects.') - - -class DbManagementPrivateEndpointSummary(DbmBaseModel): - """The summary of a Database Management private endpoint.""" - - id: str = Field(..., description='**[Required]** Gets the id of this DbManagementPrivateEndpointSummary. The OCID of the Database Management private endpoint.') - name: str = Field(..., description='**[Required]** Gets the name of this DbManagementPrivateEndpointSummary.\nThe display name of the Database Management private endpoint.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this DbManagementPrivateEndpointSummary. The OCID of the compartment.') - vcn_id: str = Field(..., alias='vcnId', description='**[Required]** Gets the vcn_id of this DbManagementPrivateEndpointSummary. The OCID of the VCN.') - subnet_id: str = Field(..., alias='subnetId', description='**[Required]** Gets the subnet_id of this DbManagementPrivateEndpointSummary. The OCID of the subnet.') - description: str | None = Field(None, description='Gets the description of this DbManagementPrivateEndpointSummary.\nThe description of the private endpoint.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DbManagementPrivateEndpointSummary. The date and time the private endpoint was created, in the format defined by RFC3339.') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DbManagementPrivateEndpointSummary.\nThe current lifecycle state of the private endpoint.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this DbManagementPrivateEndpointSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this DbManagementPrivateEndpointSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this DbManagementPrivateEndpointSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class DbmResource(DbmBaseModel): - """The base Exadata resource.""" - - id: str = Field(..., description='**[Required]** Gets the id of this DbmResource. The OCID of the Exadata resource.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DbmResource.\nThe name of the Exadata resource. English letters, numbers, "-", "_" and "." only.') - version: str | None = Field(None, description='Gets the version of this DbmResource.\nThe version of the Exadata resource.') - internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this DbmResource.\nThe internal ID of the Exadata resource.') - status: str | None = Field(None, description='Gets the status of this DbmResource.\nThe status of the Exadata resource.') - lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DbmResource.\nThe current lifecycle state of the database resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DbmResource.\nThe timestamp of the creation of the Exadata resource.') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DbmResource.\nThe timestamp of the last update of the Exadata resource.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DbmResource.\nThe details of the lifecycle state of the Exadata resource.') - additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this DbmResource.\nThe additional details of the resource defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') - resource_type: Literal['INFRASTRUCTURE_SUMMARY', 'INFRASTRUCTURE', 'STORAGE_SERVER_SUMMARY', 'STORAGE_SERVER', 'STORAGE_GRID_SUMMARY', 'STORAGE_GRID', 'STORAGE_CONNECTOR_SUMMARY', 'STORAGE_CONNECTOR', 'DATABASE_SYSTEM_SUMMARY', 'DATABASE_SUMMARY', 'VM_CLUSTER_SUMMARY', 'CLOUD_INFRASTRUCTURE_SUMMARY', 'CLOUD_INFRASTRUCTURE', 'CLOUD_STORAGE_SERVER_SUMMARY', 'CLOUD_STORAGE_SERVER', 'CLOUD_STORAGE_GRID_SUMMARY', 'CLOUD_STORAGE_GRID', 'CLOUD_STORAGE_CONNECTOR_SUMMARY', 'CLOUD_STORAGE_CONNECTOR', 'MANAGED_DATABASE_SUMMARY', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceType', description='**[Required]** Gets the resource_type of this DbmResource.\nThe type of Exadata resource.\n\nAllowed values for this property are: "INFRASTRUCTURE_SUMMARY", "INFRASTRUCTURE", "STORAGE_SERVER_SUMMARY", "STORAGE_SERVER", "STORAGE_GRID_SUMMARY", "STORAGE_GRID", "STORAGE_CONNECTOR_SUMMARY", "STORAGE_CONNECTOR", "DATABASE_SYSTEM_SUMMARY", "DATABASE_SUMMARY", "VM_CLUSTER_SUMMARY", "CLOUD_INFRASTRUCTURE_SUMMARY", "CLOUD_INFRASTRUCTURE", "CLOUD_STORAGE_SERVER_SUMMARY", "CLOUD_STORAGE_SERVER", "CLOUD_STORAGE_GRID_SUMMARY", "CLOUD_STORAGE_GRID", "CLOUD_STORAGE_CONNECTOR_SUMMARY", "CLOUD_STORAGE_CONNECTOR", "MANAGED_DATABASE_SUMMARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class DirectConnectorDetails(DbmRequestModel): - """The connector details required to connect to an Autonomous Database.""" - - connector_type: Literal['PE', 'MACS', 'EXTERNAL', 'DIRECT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this ConnectorDetails.\nThe list of supported connection types:\n - PE: Private endpoint\n - MACS: Management agent\n - EXTERNAL: External database connector\n\n - DIRECT: Direct connection\n\nAllowed values for this property are: "PE", "MACS", "EXTERNAL", "DIRECT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class DisableAutomaticInitialPlanCaptureDetails(DbmRequestModel): - """The details required to disable automatic initial plan capture. -It takes either credentials or databaseCredential. It's recommended to provide databaseCredential""" - - credentials: ManagedDatabaseCredential | None = Field(None, description='Gets the credentials of this DisableAutomaticInitialPlanCaptureDetails.') - database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this DisableAutomaticInitialPlanCaptureDetails.') - - -class DisableAutomaticSpmEvolveAdvisorTaskDetails(DbmRequestModel): - """The details required to disable Automatic SPM Evolve Advisor task. -It takes either credentials or databaseCredential. It's recommended to provide databaseCredential""" - - credentials: ManagedDatabaseCredential | None = Field(None, description='Gets the credentials of this DisableAutomaticSpmEvolveAdvisorTaskDetails.') - database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this DisableAutomaticSpmEvolveAdvisorTaskDetails.') - - -class DisableAutonomousDatabaseManagementFeatureDetails(DbmRequestModel): - """The details required to disable a Database Management feature for an Autonomous Database.""" - - feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH'] = Field(..., description='**[Required]** Gets the feature of this DisableAutonomousDatabaseManagementFeatureDetails.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH"') - - -class DisableDatabaseManagementFeatureDetails(DbmRequestModel): - """The details required to disable Database Management features for an Oracle cloud database.""" - - feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH'] = Field(..., description='**[Required]** Gets the feature of this DisableDatabaseManagementFeatureDetails.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH"') - can_disable_all_pdbs: bool | None = Field(None, alias='canDisableAllPdbs', description='Gets the can_disable_all_pdbs of this DisableDatabaseManagementFeatureDetails.\nIndicates whether Diagnostics & Management should be disabled for the pluggable databases before disabling it for the container database.') - - -class DisableExternalContainerDatabaseManagementFeatureDetails(DbmRequestModel): - """The details required to disable a Database Management feature for an external container database.""" - - feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH'] = Field(..., description='**[Required]** Gets the feature of this DisableExternalContainerDatabaseManagementFeatureDetails.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH"') - can_disable_all_pdbs: bool | None = Field(None, alias='canDisableAllPdbs', description='Gets the can_disable_all_pdbs of this DisableExternalContainerDatabaseManagementFeatureDetails.\nIndicates whether Diagnostics & Management should be disabled for the pluggable databases before disabling it for the container database.') - - -class DisableExternalNonContainerDatabaseManagementFeatureDetails(DbmRequestModel): - """The details required to disable a Database Management feature for an external non-container database.""" - - feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH'] = Field(..., description='**[Required]** Gets the feature of this DisableExternalNonContainerDatabaseManagementFeatureDetails.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH"') - - -class DisableExternalPluggableDatabaseManagementFeatureDetails(DbmRequestModel): - """The details required to disable a Database Management feature for an external pluggable database.""" - - feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH'] = Field(..., description='**[Required]** Gets the feature of this DisableExternalPluggableDatabaseManagementFeatureDetails.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH"') - - -class DisableHighFrequencyAutomaticSpmEvolveAdvisorTaskDetails(DbmRequestModel): - """The details required to disable high frequency Automatic SPM Evolve Advisor task. -It takes either credentials or databaseCredential. It's recommended to provide databaseCredential""" - - credentials: ManagedDatabaseCredential | None = Field(None, description='Gets the credentials of this DisableHighFrequencyAutomaticSpmEvolveAdvisorTaskDetails.') - database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this DisableHighFrequencyAutomaticSpmEvolveAdvisorTaskDetails.') - - -class DisablePluggableDatabaseManagementFeatureDetails(DbmRequestModel): - """The details required to disable a Database Management feature for an Oracle cloud pluggable database.""" - - feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH'] = Field(..., description='**[Required]** Gets the feature of this DisablePluggableDatabaseManagementFeatureDetails.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH"') - - -class DisableSqlPlanBaselinesUsageDetails(DbmRequestModel): - """The details required to disable SQL plan baseline usage. -It takes either credentials or databaseCredential. It's recommended to provide databaseCredential""" - - credentials: ManagedDatabaseCredential | None = Field(None, description='Gets the credentials of this DisableSqlPlanBaselinesUsageDetails.') - database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this DisableSqlPlanBaselinesUsageDetails.') - - -class DiscoverCloudExadataInfrastructureDetails(DbmRequestModel): - """The connection details and the discovery options for the Exadata discovery.""" - - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this DiscoverCloudExadataInfrastructureDetails. The OCID of the compartment.') - discovery_type: Literal['NEW', 'OVERRIDE'] = Field(..., alias='discoveryType', description='**[Required]** Gets the discovery_type of this DiscoverCloudExadataInfrastructureDetails.\nThe type of discovery.\n\nAllowed values for this property are: "NEW", "OVERRIDE"') - vm_cluster_ids: list[str] = Field(..., alias='vmClusterIds', description='**[Required]** Gets the vm_cluster_ids of this DiscoverCloudExadataInfrastructureDetails.\nThe list of VM Clusters in the Exadata infrastructure.') - exadata_infrastructure_id: str | None = Field(None, alias='exadataInfrastructureId', description='Gets the exadata_infrastructure_id of this DiscoverCloudExadataInfrastructureDetails. The OCID of the Exadata infrastructure. This is applicable for rediscovery only.') - - -class DiscoverExternalExadataInfrastructureDetails(DbmRequestModel): - """The connection details and the discovery options for the Exadata discovery.""" - - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this DiscoverExternalExadataInfrastructureDetails. The OCID of the compartment.') - discovery_type: Literal['NEW', 'OVERRIDE'] = Field(..., alias='discoveryType', description='**[Required]** Gets the discovery_type of this DiscoverExternalExadataInfrastructureDetails.\nThe type of discovery.\n\nAllowed values for this property are: "NEW", "OVERRIDE"') - db_system_ids: list[str] = Field(..., alias='dbSystemIds', description='**[Required]** Gets the db_system_ids of this DiscoverExternalExadataInfrastructureDetails.\nThe list of the DB system identifiers.') - exadata_infrastructure_id: str | None = Field(None, alias='exadataInfrastructureId', description='Gets the exadata_infrastructure_id of this DiscoverExternalExadataInfrastructureDetails. The OCID of the Exadata infrastructure. This is applicable for rediscovery only.') - - -class DiscoveredCloudAsm(DbmBaseModel): - """The details of an ASM discovered in a cloud DB system discovery run.""" - - component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this DiscoveredCloudDbSystemComponent.\nThe identifier of the discovered DB system component.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DiscoveredCloudDbSystemComponent.\nThe user-friendly name for the discovered DB system component. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this DiscoveredCloudDbSystemComponent.\nThe name of the discovered DB system component.') - component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this DiscoveredCloudDbSystemComponent.\nThe cloud DB system component type.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this DiscoveredCloudDbSystemComponent. The OCID of the existing OCI resource matching the discovered DB system component.') - dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this DiscoveredCloudDbSystemComponent. The OCID of the existing Dbaas OCI resource matching the discovered DB system component.') - is_selected_for_monitoring: bool | None = Field(None, alias='isSelectedForMonitoring', description='Gets the is_selected_for_monitoring of this DiscoveredCloudDbSystemComponent.\nIndicates whether the DB system component should be provisioned as an OCI resource or not.') - status: Literal['NEW', 'EXISTING', 'EXISTING_BASIC', 'EXISTING_PE', 'EXISTING_BASIC_PE', 'MARKED_FOR_UPGRADE', 'MARKED_FOR_MIGRATION', 'MARKED_FOR_UPGRADE_MIGRATION', 'MARKED_FOR_DELETION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DiscoveredCloudDbSystemComponent.\nThe state of the discovered DB system component.\n\nAllowed values for this property are: "NEW", "EXISTING", "EXISTING_BASIC", "EXISTING_PE", "EXISTING_BASIC_PE", "MARKED_FOR_UPGRADE", "MARKED_FOR_MIGRATION", "MARKED_FOR_UPGRADE_MIGRATION", "MARKED_FOR_DELETION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - associated_components: list[AssociatedCloudComponent] | None = Field(None, alias='associatedComponents', description='Gets the associated_components of this DiscoveredCloudDbSystemComponent.\nThe list of associated components.') - grid_home: str | None = Field(None, alias='gridHome', description='Gets the grid_home of this DiscoveredCloudAsm.\nThe directory in which ASM is installed. This is the same directory in which Oracle Grid Infrastructure is installed.') - is_flex_enabled: bool | None = Field(None, alias='isFlexEnabled', description='Gets the is_flex_enabled of this DiscoveredCloudAsm.\nIndicates whether Oracle Flex ASM is enabled or not.') - version: str | None = Field(None, description='Gets the version of this DiscoveredCloudAsm.\nThe ASM version.') - asm_instances: list[DiscoveredCloudAsmInstance] | None = Field(None, alias='asmInstances', description='Gets the asm_instances of this DiscoveredCloudAsm.\nThe list of asm instances for the cloud Asm.') - connector: CloudDbSystemDiscoveryConnector | None = Field(None, description='Gets the connector of this DiscoveredCloudAsm.') - - -class DiscoveredCloudAsmInstance(DbmBaseModel): - """The details of an ASM instance discovered in a cloud DB system discovery run.""" - - component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this DiscoveredCloudDbSystemComponent.\nThe identifier of the discovered DB system component.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DiscoveredCloudDbSystemComponent.\nThe user-friendly name for the discovered DB system component. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this DiscoveredCloudDbSystemComponent.\nThe name of the discovered DB system component.') - component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this DiscoveredCloudDbSystemComponent.\nThe cloud DB system component type.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this DiscoveredCloudDbSystemComponent. The OCID of the existing OCI resource matching the discovered DB system component.') - dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this DiscoveredCloudDbSystemComponent. The OCID of the existing Dbaas OCI resource matching the discovered DB system component.') - is_selected_for_monitoring: bool | None = Field(None, alias='isSelectedForMonitoring', description='Gets the is_selected_for_monitoring of this DiscoveredCloudDbSystemComponent.\nIndicates whether the DB system component should be provisioned as an OCI resource or not.') - status: Literal['NEW', 'EXISTING', 'EXISTING_BASIC', 'EXISTING_PE', 'EXISTING_BASIC_PE', 'MARKED_FOR_UPGRADE', 'MARKED_FOR_MIGRATION', 'MARKED_FOR_UPGRADE_MIGRATION', 'MARKED_FOR_DELETION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DiscoveredCloudDbSystemComponent.\nThe state of the discovered DB system component.\n\nAllowed values for this property are: "NEW", "EXISTING", "EXISTING_BASIC", "EXISTING_PE", "EXISTING_BASIC_PE", "MARKED_FOR_UPGRADE", "MARKED_FOR_MIGRATION", "MARKED_FOR_UPGRADE_MIGRATION", "MARKED_FOR_DELETION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - associated_components: list[AssociatedCloudComponent] | None = Field(None, alias='associatedComponents', description='Gets the associated_components of this DiscoveredCloudDbSystemComponent.\nThe list of associated components.') - host_name: str = Field(..., alias='hostName', description='**[Required]** Gets the host_name of this DiscoveredCloudAsmInstance.\nThe name of the host on which the ASM instance is running.') - instance_name: str | None = Field(None, alias='instanceName', description='Gets the instance_name of this DiscoveredCloudAsmInstance.\nThe name of the ASM instance.') - adr_home_directory: str | None = Field(None, alias='adrHomeDirectory', description='Gets the adr_home_directory of this DiscoveredCloudAsmInstance.\nThe Automatic Diagnostic Repository (ADR) home directory for the ASM instance.') - - -class DiscoveredCloudCluster(DbmBaseModel): - """The details of a cloud cluster discovered in a cloud DB system discovery run.""" - - component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this DiscoveredCloudDbSystemComponent.\nThe identifier of the discovered DB system component.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DiscoveredCloudDbSystemComponent.\nThe user-friendly name for the discovered DB system component. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this DiscoveredCloudDbSystemComponent.\nThe name of the discovered DB system component.') - component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this DiscoveredCloudDbSystemComponent.\nThe cloud DB system component type.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this DiscoveredCloudDbSystemComponent. The OCID of the existing OCI resource matching the discovered DB system component.') - dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this DiscoveredCloudDbSystemComponent. The OCID of the existing Dbaas OCI resource matching the discovered DB system component.') - is_selected_for_monitoring: bool | None = Field(None, alias='isSelectedForMonitoring', description='Gets the is_selected_for_monitoring of this DiscoveredCloudDbSystemComponent.\nIndicates whether the DB system component should be provisioned as an OCI resource or not.') - status: Literal['NEW', 'EXISTING', 'EXISTING_BASIC', 'EXISTING_PE', 'EXISTING_BASIC_PE', 'MARKED_FOR_UPGRADE', 'MARKED_FOR_MIGRATION', 'MARKED_FOR_UPGRADE_MIGRATION', 'MARKED_FOR_DELETION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DiscoveredCloudDbSystemComponent.\nThe state of the discovered DB system component.\n\nAllowed values for this property are: "NEW", "EXISTING", "EXISTING_BASIC", "EXISTING_PE", "EXISTING_BASIC_PE", "MARKED_FOR_UPGRADE", "MARKED_FOR_MIGRATION", "MARKED_FOR_UPGRADE_MIGRATION", "MARKED_FOR_DELETION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - associated_components: list[AssociatedCloudComponent] | None = Field(None, alias='associatedComponents', description='Gets the associated_components of this DiscoveredCloudDbSystemComponent.\nThe list of associated components.') - grid_home: str | None = Field(None, alias='gridHome', description='Gets the grid_home of this DiscoveredCloudCluster.\nThe directory in which Oracle Grid Infrastructure is installed.') - version: str | None = Field(None, description='Gets the version of this DiscoveredCloudCluster.\nThe version of Oracle Clusterware running in the cluster.') - is_flex_cluster: bool | None = Field(None, alias='isFlexCluster', description='Gets the is_flex_cluster of this DiscoveredCloudCluster.\nIndicates whether the cluster is an Oracle Flex Cluster or not.') - network_configurations: list[CloudClusterNetworkConfiguration] | None = Field(None, alias='networkConfigurations', description='Gets the network_configurations of this DiscoveredCloudCluster.\nThe list of network address configurations of the cloud cluster.') - vip_configurations: list[CloudClusterVipConfiguration] | None = Field(None, alias='vipConfigurations', description='Gets the vip_configurations of this DiscoveredCloudCluster.\nThe list of Virtual IP (VIP) configurations of the cloud cluster.') - scan_configurations: list[CloudClusterScanListenerConfiguration] | None = Field(None, alias='scanConfigurations', description='Gets the scan_configurations of this DiscoveredCloudCluster.\nThe list of Single Client Access Name (SCAN) configurations of the cloud cluster.') - ocr_file_location: str | None = Field(None, alias='ocrFileLocation', description='Gets the ocr_file_location of this DiscoveredCloudCluster.\nThe location of the Oracle Cluster Registry (OCR) file.') - cluster_instances: list[DiscoveredCloudClusterInstance] | None = Field(None, alias='clusterInstances', description='Gets the cluster_instances of this DiscoveredCloudCluster.\nThe list of cluster instances for the cloud cluster.') - - -class DiscoveredCloudClusterInstance(DbmBaseModel): - """The details of a cloud cluster instance discovered in a cloud DB system discovery run.""" - - component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this DiscoveredCloudDbSystemComponent.\nThe identifier of the discovered DB system component.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DiscoveredCloudDbSystemComponent.\nThe user-friendly name for the discovered DB system component. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this DiscoveredCloudDbSystemComponent.\nThe name of the discovered DB system component.') - component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this DiscoveredCloudDbSystemComponent.\nThe cloud DB system component type.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this DiscoveredCloudDbSystemComponent. The OCID of the existing OCI resource matching the discovered DB system component.') - dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this DiscoveredCloudDbSystemComponent. The OCID of the existing Dbaas OCI resource matching the discovered DB system component.') - is_selected_for_monitoring: bool | None = Field(None, alias='isSelectedForMonitoring', description='Gets the is_selected_for_monitoring of this DiscoveredCloudDbSystemComponent.\nIndicates whether the DB system component should be provisioned as an OCI resource or not.') - status: Literal['NEW', 'EXISTING', 'EXISTING_BASIC', 'EXISTING_PE', 'EXISTING_BASIC_PE', 'MARKED_FOR_UPGRADE', 'MARKED_FOR_MIGRATION', 'MARKED_FOR_UPGRADE_MIGRATION', 'MARKED_FOR_DELETION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DiscoveredCloudDbSystemComponent.\nThe state of the discovered DB system component.\n\nAllowed values for this property are: "NEW", "EXISTING", "EXISTING_BASIC", "EXISTING_PE", "EXISTING_BASIC_PE", "MARKED_FOR_UPGRADE", "MARKED_FOR_MIGRATION", "MARKED_FOR_UPGRADE_MIGRATION", "MARKED_FOR_DELETION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - associated_components: list[AssociatedCloudComponent] | None = Field(None, alias='associatedComponents', description='Gets the associated_components of this DiscoveredCloudDbSystemComponent.\nThe list of associated components.') - host_name: str = Field(..., alias='hostName', description='**[Required]** Gets the host_name of this DiscoveredCloudClusterInstance.\nThe name of the host on which the cluster instance is running.') - cluster_id: str | None = Field(None, alias='clusterId', description='Gets the cluster_id of this DiscoveredCloudClusterInstance.\nThe unique identifier of the Oracle cluster.') - node_role: Literal['HUB', 'LEAF', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='nodeRole', description='Gets the node_role of this DiscoveredCloudClusterInstance.\nThe role of the cluster node.\n\nAllowed values for this property are: "HUB", "LEAF", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - crs_base_directory: str | None = Field(None, alias='crsBaseDirectory', description='Gets the crs_base_directory of this DiscoveredCloudClusterInstance.\nThe Oracle base location of Cluster Ready Services (CRS).') - adr_home_directory: str | None = Field(None, alias='adrHomeDirectory', description='Gets the adr_home_directory of this DiscoveredCloudClusterInstance.\nThe Automatic Diagnostic Repository (ADR) home directory for the cluster instance.') - connector: CloudDbSystemDiscoveryConnector | None = Field(None, description='Gets the connector of this DiscoveredCloudClusterInstance.') - - -class DiscoveredCloudDatabase(DbmBaseModel): - """The details of a cloud Oracle Database discovered in a cloud DB system discovery run.""" - - component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this DiscoveredCloudDbSystemComponent.\nThe identifier of the discovered DB system component.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DiscoveredCloudDbSystemComponent.\nThe user-friendly name for the discovered DB system component. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this DiscoveredCloudDbSystemComponent.\nThe name of the discovered DB system component.') - component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this DiscoveredCloudDbSystemComponent.\nThe cloud DB system component type.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this DiscoveredCloudDbSystemComponent. The OCID of the existing OCI resource matching the discovered DB system component.') - dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this DiscoveredCloudDbSystemComponent. The OCID of the existing Dbaas OCI resource matching the discovered DB system component.') - is_selected_for_monitoring: bool | None = Field(None, alias='isSelectedForMonitoring', description='Gets the is_selected_for_monitoring of this DiscoveredCloudDbSystemComponent.\nIndicates whether the DB system component should be provisioned as an OCI resource or not.') - status: Literal['NEW', 'EXISTING', 'EXISTING_BASIC', 'EXISTING_PE', 'EXISTING_BASIC_PE', 'MARKED_FOR_UPGRADE', 'MARKED_FOR_MIGRATION', 'MARKED_FOR_UPGRADE_MIGRATION', 'MARKED_FOR_DELETION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DiscoveredCloudDbSystemComponent.\nThe state of the discovered DB system component.\n\nAllowed values for this property are: "NEW", "EXISTING", "EXISTING_BASIC", "EXISTING_PE", "EXISTING_BASIC_PE", "MARKED_FOR_UPGRADE", "MARKED_FOR_MIGRATION", "MARKED_FOR_UPGRADE_MIGRATION", "MARKED_FOR_DELETION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - associated_components: list[AssociatedCloudComponent] | None = Field(None, alias='associatedComponents', description='Gets the associated_components of this DiscoveredCloudDbSystemComponent.\nThe list of associated components.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this DiscoveredCloudDatabase. The OCID of the compartment.') - db_unique_name: str = Field(..., alias='dbUniqueName', description='**[Required]** Gets the db_unique_name of this DiscoveredCloudDatabase.\nThe `DB_UNIQUE_NAME` of the cloud database.') - db_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='dbType', description='Gets the db_type of this DiscoveredCloudDatabase.\nThe type of Oracle Database. Indicates whether the database is a Container Database,\nPluggable Database, or a Non-container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - is_cluster: bool | None = Field(None, alias='isCluster', description='Gets the is_cluster of this DiscoveredCloudDatabase.\nIndicates whether the Oracle Database is part of a cluster.') - db_edition: str | None = Field(None, alias='dbEdition', description='Gets the db_edition of this DiscoveredCloudDatabase.\nThe Oracle Database edition.') - db_id: str | None = Field(None, alias='dbId', description='Gets the db_id of this DiscoveredCloudDatabase.\nThe Oracle Database ID.') - db_packs: str | None = Field(None, alias='dbPacks', description='Gets the db_packs of this DiscoveredCloudDatabase.\nThe database packs licensed for the cloud Oracle Database.') - db_role: Literal['LOGICAL_STANDBY', 'PHYSICAL_STANDBY', 'SNAPSHOT_STANDBY', 'PRIMARY', 'FAR_SYNC', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='dbRole', description='Gets the db_role of this DiscoveredCloudDatabase.\nThe role of the Oracle Database in Oracle Data Guard configuration.\n\nAllowed values for this property are: "LOGICAL_STANDBY", "PHYSICAL_STANDBY", "SNAPSHOT_STANDBY", "PRIMARY", "FAR_SYNC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - db_version: str | None = Field(None, alias='dbVersion', description='Gets the db_version of this DiscoveredCloudDatabase.\nThe Oracle Database version.') - pluggable_databases: list[DiscoveredCloudPluggableDatabase] | None = Field(None, alias='pluggableDatabases', description='Gets the pluggable_databases of this DiscoveredCloudDatabase.\nThe list of Pluggable Databases.') - db_instances: list[DiscoveredCloudDbInstance] | None = Field(None, alias='dbInstances', description='Gets the db_instances of this DiscoveredCloudDatabase.\nThe list of database instances.') - can_enable_all_current_pdbs: bool | None = Field(None, alias='canEnableAllCurrentPdbs', description='Gets the can_enable_all_current_pdbs of this DiscoveredCloudDatabase.\nIndicates whether Diagnostics & Management should be enabled for all the current pluggable databases in the container database.') - is_auto_enable_pluggable_database: bool | None = Field(None, alias='isAutoEnablePluggableDatabase', description='Gets the is_auto_enable_pluggable_database of this DiscoveredCloudDatabase.\nIndicates whether Diagnostics & Management should be enabled automatically for all the pluggable databases in the container database.') - connector: CloudDbSystemDiscoveryConnector | None = Field(None, description='Gets the connector of this DiscoveredCloudDatabase.') - - -class DiscoveredCloudDbHome(DbmBaseModel): - """The details of an Oracle DB home discovered in a cloud DB system discovery run.""" - - component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this DiscoveredCloudDbSystemComponent.\nThe identifier of the discovered DB system component.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DiscoveredCloudDbSystemComponent.\nThe user-friendly name for the discovered DB system component. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this DiscoveredCloudDbSystemComponent.\nThe name of the discovered DB system component.') - component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this DiscoveredCloudDbSystemComponent.\nThe cloud DB system component type.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this DiscoveredCloudDbSystemComponent. The OCID of the existing OCI resource matching the discovered DB system component.') - dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this DiscoveredCloudDbSystemComponent. The OCID of the existing Dbaas OCI resource matching the discovered DB system component.') - is_selected_for_monitoring: bool | None = Field(None, alias='isSelectedForMonitoring', description='Gets the is_selected_for_monitoring of this DiscoveredCloudDbSystemComponent.\nIndicates whether the DB system component should be provisioned as an OCI resource or not.') - status: Literal['NEW', 'EXISTING', 'EXISTING_BASIC', 'EXISTING_PE', 'EXISTING_BASIC_PE', 'MARKED_FOR_UPGRADE', 'MARKED_FOR_MIGRATION', 'MARKED_FOR_UPGRADE_MIGRATION', 'MARKED_FOR_DELETION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DiscoveredCloudDbSystemComponent.\nThe state of the discovered DB system component.\n\nAllowed values for this property are: "NEW", "EXISTING", "EXISTING_BASIC", "EXISTING_PE", "EXISTING_BASIC_PE", "MARKED_FOR_UPGRADE", "MARKED_FOR_MIGRATION", "MARKED_FOR_UPGRADE_MIGRATION", "MARKED_FOR_DELETION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - associated_components: list[AssociatedCloudComponent] | None = Field(None, alias='associatedComponents', description='Gets the associated_components of this DiscoveredCloudDbSystemComponent.\nThe list of associated components.') - home_directory: str = Field(..., alias='homeDirectory', description='**[Required]** Gets the home_directory of this DiscoveredCloudDbHome.\nThe location of the DB home.') - - -class DiscoveredCloudDbInstance(DbmBaseModel): - """The details of an Oracle DB instance discovered in a cloud DB system discovery run.""" - - component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this DiscoveredCloudDbSystemComponent.\nThe identifier of the discovered DB system component.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DiscoveredCloudDbSystemComponent.\nThe user-friendly name for the discovered DB system component. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this DiscoveredCloudDbSystemComponent.\nThe name of the discovered DB system component.') - component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this DiscoveredCloudDbSystemComponent.\nThe cloud DB system component type.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this DiscoveredCloudDbSystemComponent. The OCID of the existing OCI resource matching the discovered DB system component.') - dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this DiscoveredCloudDbSystemComponent. The OCID of the existing Dbaas OCI resource matching the discovered DB system component.') - is_selected_for_monitoring: bool | None = Field(None, alias='isSelectedForMonitoring', description='Gets the is_selected_for_monitoring of this DiscoveredCloudDbSystemComponent.\nIndicates whether the DB system component should be provisioned as an OCI resource or not.') - status: Literal['NEW', 'EXISTING', 'EXISTING_BASIC', 'EXISTING_PE', 'EXISTING_BASIC_PE', 'MARKED_FOR_UPGRADE', 'MARKED_FOR_MIGRATION', 'MARKED_FOR_UPGRADE_MIGRATION', 'MARKED_FOR_DELETION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DiscoveredCloudDbSystemComponent.\nThe state of the discovered DB system component.\n\nAllowed values for this property are: "NEW", "EXISTING", "EXISTING_BASIC", "EXISTING_PE", "EXISTING_BASIC_PE", "MARKED_FOR_UPGRADE", "MARKED_FOR_MIGRATION", "MARKED_FOR_UPGRADE_MIGRATION", "MARKED_FOR_DELETION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - associated_components: list[AssociatedCloudComponent] | None = Field(None, alias='associatedComponents', description='Gets the associated_components of this DiscoveredCloudDbSystemComponent.\nThe list of associated components.') - instance_name: str = Field(..., alias='instanceName', description='**[Required]** Gets the instance_name of this DiscoveredCloudDbInstance.\nThe name of the DB instance.') - host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this DiscoveredCloudDbInstance.\nThe name of the host on which the DB instance is running.') - node_name: str | None = Field(None, alias='nodeName', description='Gets the node_name of this DiscoveredCloudDbInstance.\nThe name of the DB instance node.') - oracle_home: str | None = Field(None, alias='oracleHome', description='Gets the oracle_home of this DiscoveredCloudDbInstance.\nThe Oracle home location of the DB instance.') - adr_home_directory: str | None = Field(None, alias='adrHomeDirectory', description='Gets the adr_home_directory of this DiscoveredCloudDbInstance.\nThe Automatic Diagnostic Repository (ADR) home directory for the DB instance.') - - -class DiscoveredCloudDbNode(DbmBaseModel): - """The details of an Oracle DB node discovered in a cloud DB system discovery run.""" - - component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this DiscoveredCloudDbSystemComponent.\nThe identifier of the discovered DB system component.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DiscoveredCloudDbSystemComponent.\nThe user-friendly name for the discovered DB system component. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this DiscoveredCloudDbSystemComponent.\nThe name of the discovered DB system component.') - component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this DiscoveredCloudDbSystemComponent.\nThe cloud DB system component type.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this DiscoveredCloudDbSystemComponent. The OCID of the existing OCI resource matching the discovered DB system component.') - dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this DiscoveredCloudDbSystemComponent. The OCID of the existing Dbaas OCI resource matching the discovered DB system component.') - is_selected_for_monitoring: bool | None = Field(None, alias='isSelectedForMonitoring', description='Gets the is_selected_for_monitoring of this DiscoveredCloudDbSystemComponent.\nIndicates whether the DB system component should be provisioned as an OCI resource or not.') - status: Literal['NEW', 'EXISTING', 'EXISTING_BASIC', 'EXISTING_PE', 'EXISTING_BASIC_PE', 'MARKED_FOR_UPGRADE', 'MARKED_FOR_MIGRATION', 'MARKED_FOR_UPGRADE_MIGRATION', 'MARKED_FOR_DELETION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DiscoveredCloudDbSystemComponent.\nThe state of the discovered DB system component.\n\nAllowed values for this property are: "NEW", "EXISTING", "EXISTING_BASIC", "EXISTING_PE", "EXISTING_BASIC_PE", "MARKED_FOR_UPGRADE", "MARKED_FOR_MIGRATION", "MARKED_FOR_UPGRADE_MIGRATION", "MARKED_FOR_DELETION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - associated_components: list[AssociatedCloudComponent] | None = Field(None, alias='associatedComponents', description='Gets the associated_components of this DiscoveredCloudDbSystemComponent.\nThe list of associated components.') - host_name: str = Field(..., alias='hostName', description='**[Required]** Gets the host_name of this DiscoveredCloudDbNode.\nThe name of the host on which the ASM instance is running.') - cpu_core_count: float | None = Field(None, ge=0, alias='cpuCoreCount', description='Gets the cpu_core_count of this DiscoveredCloudDbNode.\nThe number of CPU cores available on the DB node.') - memory_size_in_gbs: float | None = Field(None, alias='memorySizeInGBs', description='Gets the memory_size_in_gbs of this DiscoveredCloudDbNode.\nThe total memory in gigabytes (GB) on the DB node.') - connector: CloudDbSystemDiscoveryConnector | None = Field(None, description='Gets the connector of this DiscoveredCloudDbNode.') - - -class DiscoveredCloudDbSystemComponent(DbmBaseModel): - """The details of a cloud DB system component.""" - - component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this DiscoveredCloudDbSystemComponent.\nThe identifier of the discovered DB system component.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DiscoveredCloudDbSystemComponent.\nThe user-friendly name for the discovered DB system component. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this DiscoveredCloudDbSystemComponent.\nThe name of the discovered DB system component.') - component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this DiscoveredCloudDbSystemComponent.\nThe cloud DB system component type.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this DiscoveredCloudDbSystemComponent. The OCID of the existing OCI resource matching the discovered DB system component.') - dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this DiscoveredCloudDbSystemComponent. The OCID of the existing Dbaas OCI resource matching the discovered DB system component.') - is_selected_for_monitoring: bool | None = Field(None, alias='isSelectedForMonitoring', description='Gets the is_selected_for_monitoring of this DiscoveredCloudDbSystemComponent.\nIndicates whether the DB system component should be provisioned as an OCI resource or not.') - status: Literal['NEW', 'EXISTING', 'EXISTING_BASIC', 'EXISTING_PE', 'EXISTING_BASIC_PE', 'MARKED_FOR_UPGRADE', 'MARKED_FOR_MIGRATION', 'MARKED_FOR_UPGRADE_MIGRATION', 'MARKED_FOR_DELETION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DiscoveredCloudDbSystemComponent.\nThe state of the discovered DB system component.\n\nAllowed values for this property are: "NEW", "EXISTING", "EXISTING_BASIC", "EXISTING_PE", "EXISTING_BASIC_PE", "MARKED_FOR_UPGRADE", "MARKED_FOR_MIGRATION", "MARKED_FOR_UPGRADE_MIGRATION", "MARKED_FOR_DELETION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - associated_components: list[AssociatedCloudComponent] | None = Field(None, alias='associatedComponents', description='Gets the associated_components of this DiscoveredCloudDbSystemComponent.\nThe list of associated components.') - - -class DiscoveredCloudListener(DbmBaseModel): - """The details of an Oracle listener discovered in a cloud DB system discovery run.""" - - component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this DiscoveredCloudDbSystemComponent.\nThe identifier of the discovered DB system component.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DiscoveredCloudDbSystemComponent.\nThe user-friendly name for the discovered DB system component. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this DiscoveredCloudDbSystemComponent.\nThe name of the discovered DB system component.') - component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this DiscoveredCloudDbSystemComponent.\nThe cloud DB system component type.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this DiscoveredCloudDbSystemComponent. The OCID of the existing OCI resource matching the discovered DB system component.') - dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this DiscoveredCloudDbSystemComponent. The OCID of the existing Dbaas OCI resource matching the discovered DB system component.') - is_selected_for_monitoring: bool | None = Field(None, alias='isSelectedForMonitoring', description='Gets the is_selected_for_monitoring of this DiscoveredCloudDbSystemComponent.\nIndicates whether the DB system component should be provisioned as an OCI resource or not.') - status: Literal['NEW', 'EXISTING', 'EXISTING_BASIC', 'EXISTING_PE', 'EXISTING_BASIC_PE', 'MARKED_FOR_UPGRADE', 'MARKED_FOR_MIGRATION', 'MARKED_FOR_UPGRADE_MIGRATION', 'MARKED_FOR_DELETION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DiscoveredCloudDbSystemComponent.\nThe state of the discovered DB system component.\n\nAllowed values for this property are: "NEW", "EXISTING", "EXISTING_BASIC", "EXISTING_PE", "EXISTING_BASIC_PE", "MARKED_FOR_UPGRADE", "MARKED_FOR_MIGRATION", "MARKED_FOR_UPGRADE_MIGRATION", "MARKED_FOR_DELETION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - associated_components: list[AssociatedCloudComponent] | None = Field(None, alias='associatedComponents', description='Gets the associated_components of this DiscoveredCloudDbSystemComponent.\nThe list of associated components.') - db_node_name: str | None = Field(None, alias='dbNodeName', description='Gets the db_node_name of this DiscoveredCloudListener.\nThe name of the DB node.') - oracle_home: str | None = Field(None, alias='oracleHome', description='Gets the oracle_home of this DiscoveredCloudListener.\nThe Oracle home location of the listener.') - listener_alias: str | None = Field(None, alias='listenerAlias', description='Gets the listener_alias of this DiscoveredCloudListener.\nThe listener alias.') - adr_home_directory: str | None = Field(None, alias='adrHomeDirectory', description='Gets the adr_home_directory of this DiscoveredCloudListener.\nThe directory that stores tracing and logging incidents when Automatic Diagnostic Repository (ADR) is enabled.') - log_directory: str | None = Field(None, alias='logDirectory', description='Gets the log_directory of this DiscoveredCloudListener.\nThe destination directory of the listener log file.') - trace_directory: str | None = Field(None, alias='traceDirectory', description='Gets the trace_directory of this DiscoveredCloudListener.\nThe destination directory of the listener trace file.') - version: str | None = Field(None, description='Gets the version of this DiscoveredCloudListener.\nThe listener version.') - listener_type: Literal['ASM', 'LOCAL', 'SCAN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='listenerType', description='Gets the listener_type of this DiscoveredCloudListener.\nThe type of listener.\n\nAllowed values for this property are: "ASM", "LOCAL", "SCAN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this DiscoveredCloudListener.\nThe name of the host on which the cloud listener is running.') - endpoints: list[CloudListenerEndpoint] | None = Field(None, description='Gets the endpoints of this DiscoveredCloudListener.\nThe list of protocol addresses the listener is configured to listen on.') - connector: CloudDbSystemDiscoveryConnector | None = Field(None, description='Gets the connector of this DiscoveredCloudListener.') - - -class DiscoveredCloudPluggableDatabase(DbmBaseModel): - """The details of a cloud Pluggable Database (PDB) discovered in a cloud DB system discovery run.""" - - component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this DiscoveredCloudDbSystemComponent.\nThe identifier of the discovered DB system component.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DiscoveredCloudDbSystemComponent.\nThe user-friendly name for the discovered DB system component. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this DiscoveredCloudDbSystemComponent.\nThe name of the discovered DB system component.') - component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this DiscoveredCloudDbSystemComponent.\nThe cloud DB system component type.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this DiscoveredCloudDbSystemComponent. The OCID of the existing OCI resource matching the discovered DB system component.') - dbaas_id: str | None = Field(None, alias='dbaasId', description='Gets the dbaas_id of this DiscoveredCloudDbSystemComponent. The OCID of the existing Dbaas OCI resource matching the discovered DB system component.') - is_selected_for_monitoring: bool | None = Field(None, alias='isSelectedForMonitoring', description='Gets the is_selected_for_monitoring of this DiscoveredCloudDbSystemComponent.\nIndicates whether the DB system component should be provisioned as an OCI resource or not.') - status: Literal['NEW', 'EXISTING', 'EXISTING_BASIC', 'EXISTING_PE', 'EXISTING_BASIC_PE', 'MARKED_FOR_UPGRADE', 'MARKED_FOR_MIGRATION', 'MARKED_FOR_UPGRADE_MIGRATION', 'MARKED_FOR_DELETION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DiscoveredCloudDbSystemComponent.\nThe state of the discovered DB system component.\n\nAllowed values for this property are: "NEW", "EXISTING", "EXISTING_BASIC", "EXISTING_PE", "EXISTING_BASIC_PE", "MARKED_FOR_UPGRADE", "MARKED_FOR_MIGRATION", "MARKED_FOR_UPGRADE_MIGRATION", "MARKED_FOR_DELETION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - associated_components: list[AssociatedCloudComponent] | None = Field(None, alias='associatedComponents', description='Gets the associated_components of this DiscoveredCloudDbSystemComponent.\nThe list of associated components.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this DiscoveredCloudPluggableDatabase. The OCID of the compartment.') - container_database_id: str = Field(..., alias='containerDatabaseId', description='**[Required]** Gets the container_database_id of this DiscoveredCloudPluggableDatabase.\nThe unique identifier of the parent Container Database (CDB).') - guid: str | None = Field(None, description='Gets the guid of this DiscoveredCloudPluggableDatabase.\nThe unique identifier of the PDB.') - connector: CloudDbSystemDiscoveryConnector | None = Field(None, description='Gets the connector of this DiscoveredCloudPluggableDatabase.') - - -class DiscoveredExternalAsm(DbmBaseModel): - """The details of an ASM discovered in an external DB system discovery run.""" - - component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this DiscoveredExternalDbSystemComponent.\nThe identifier of the discovered DB system component.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DiscoveredExternalDbSystemComponent.\nThe user-friendly name for the discovered DB system component. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this DiscoveredExternalDbSystemComponent.\nThe name of the discovered DB system component.') - component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this DiscoveredExternalDbSystemComponent.\nThe external DB system component type.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this DiscoveredExternalDbSystemComponent. The OCID of the existing OCI resource matching the discovered DB system component.') - is_selected_for_monitoring: bool | None = Field(None, alias='isSelectedForMonitoring', description='Gets the is_selected_for_monitoring of this DiscoveredExternalDbSystemComponent.\nIndicates whether the DB system component should be provisioned as an OCI resource or not.') - status: Literal['NEW', 'EXISTING', 'MARKED_FOR_DELETION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DiscoveredExternalDbSystemComponent.\nThe state of the discovered DB system component.\n\nAllowed values for this property are: "NEW", "EXISTING", "MARKED_FOR_DELETION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - associated_components: list[AssociatedComponent] | None = Field(None, alias='associatedComponents', description='Gets the associated_components of this DiscoveredExternalDbSystemComponent.\nThe list of associated components.') - grid_home: str | None = Field(None, alias='gridHome', description='Gets the grid_home of this DiscoveredExternalAsm.\nThe directory in which ASM is installed. This is the same directory in which Oracle Grid Infrastructure is installed.') - is_flex_enabled: bool | None = Field(None, alias='isFlexEnabled', description='Gets the is_flex_enabled of this DiscoveredExternalAsm.\nIndicates whether Oracle Flex ASM is enabled or not.') - version: str | None = Field(None, description='Gets the version of this DiscoveredExternalAsm.\nThe ASM version.') - asm_instances: list[DiscoveredExternalAsmInstance] | None = Field(None, alias='asmInstances', description='Gets the asm_instances of this DiscoveredExternalAsm.') - connector: ExternalDbSystemDiscoveryConnector | None = Field(None, description='Gets the connector of this DiscoveredExternalAsm.') - - -class DiscoveredExternalAsmInstance(DbmBaseModel): - """The details of an ASM instance discovered in an external DB system discovery run.""" - - component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this DiscoveredExternalDbSystemComponent.\nThe identifier of the discovered DB system component.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DiscoveredExternalDbSystemComponent.\nThe user-friendly name for the discovered DB system component. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this DiscoveredExternalDbSystemComponent.\nThe name of the discovered DB system component.') - component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this DiscoveredExternalDbSystemComponent.\nThe external DB system component type.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this DiscoveredExternalDbSystemComponent. The OCID of the existing OCI resource matching the discovered DB system component.') - is_selected_for_monitoring: bool | None = Field(None, alias='isSelectedForMonitoring', description='Gets the is_selected_for_monitoring of this DiscoveredExternalDbSystemComponent.\nIndicates whether the DB system component should be provisioned as an OCI resource or not.') - status: Literal['NEW', 'EXISTING', 'MARKED_FOR_DELETION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DiscoveredExternalDbSystemComponent.\nThe state of the discovered DB system component.\n\nAllowed values for this property are: "NEW", "EXISTING", "MARKED_FOR_DELETION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - associated_components: list[AssociatedComponent] | None = Field(None, alias='associatedComponents', description='Gets the associated_components of this DiscoveredExternalDbSystemComponent.\nThe list of associated components.') - host_name: str = Field(..., alias='hostName', description='**[Required]** Gets the host_name of this DiscoveredExternalAsmInstance.\nThe name of the host on which the ASM instance is running.') - instance_name: str | None = Field(None, alias='instanceName', description='Gets the instance_name of this DiscoveredExternalAsmInstance.\nThe name of the ASM instance.') - adr_home_directory: str | None = Field(None, alias='adrHomeDirectory', description='Gets the adr_home_directory of this DiscoveredExternalAsmInstance.\nThe Automatic Diagnostic Repository (ADR) home directory for the ASM instance.') - - -class DiscoveredExternalCluster(DbmBaseModel): - """The details of an external cluster discovered in an external DB system discovery run.""" - - component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this DiscoveredExternalDbSystemComponent.\nThe identifier of the discovered DB system component.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DiscoveredExternalDbSystemComponent.\nThe user-friendly name for the discovered DB system component. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this DiscoveredExternalDbSystemComponent.\nThe name of the discovered DB system component.') - component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this DiscoveredExternalDbSystemComponent.\nThe external DB system component type.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this DiscoveredExternalDbSystemComponent. The OCID of the existing OCI resource matching the discovered DB system component.') - is_selected_for_monitoring: bool | None = Field(None, alias='isSelectedForMonitoring', description='Gets the is_selected_for_monitoring of this DiscoveredExternalDbSystemComponent.\nIndicates whether the DB system component should be provisioned as an OCI resource or not.') - status: Literal['NEW', 'EXISTING', 'MARKED_FOR_DELETION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DiscoveredExternalDbSystemComponent.\nThe state of the discovered DB system component.\n\nAllowed values for this property are: "NEW", "EXISTING", "MARKED_FOR_DELETION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - associated_components: list[AssociatedComponent] | None = Field(None, alias='associatedComponents', description='Gets the associated_components of this DiscoveredExternalDbSystemComponent.\nThe list of associated components.') - grid_home: str | None = Field(None, alias='gridHome', description='Gets the grid_home of this DiscoveredExternalCluster.\nThe directory in which Oracle Grid Infrastructure is installed.') - version: str | None = Field(None, description='Gets the version of this DiscoveredExternalCluster.\nThe version of Oracle Clusterware running in the cluster.') - is_flex_cluster: bool | None = Field(None, alias='isFlexCluster', description='Gets the is_flex_cluster of this DiscoveredExternalCluster.\nIndicates whether the cluster is an Oracle Flex Cluster or not.') - network_configurations: list[ExternalClusterNetworkConfiguration] | None = Field(None, alias='networkConfigurations', description='Gets the network_configurations of this DiscoveredExternalCluster.\nThe list of network address configurations of the external cluster.') - vip_configurations: list[ExternalClusterVipConfiguration] | None = Field(None, alias='vipConfigurations', description='Gets the vip_configurations of this DiscoveredExternalCluster.\nThe list of Virtual IP (VIP) configurations of the external cluster.') - scan_configurations: list[ExternalClusterScanListenerConfiguration] | None = Field(None, alias='scanConfigurations', description='Gets the scan_configurations of this DiscoveredExternalCluster.\nThe list of Single Client Access Name (SCAN) configurations of the external cluster.') - ocr_file_location: str | None = Field(None, alias='ocrFileLocation', description='Gets the ocr_file_location of this DiscoveredExternalCluster.\nThe location of the Oracle Cluster Registry (OCR) file.') - cluster_instances: list[DiscoveredExternalClusterInstance] | None = Field(None, alias='clusterInstances', description='Gets the cluster_instances of this DiscoveredExternalCluster.') - - -class DiscoveredExternalClusterInstance(DbmBaseModel): - """The details of an external cluster instance discovered in an external DB system discovery run.""" - - component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this DiscoveredExternalDbSystemComponent.\nThe identifier of the discovered DB system component.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DiscoveredExternalDbSystemComponent.\nThe user-friendly name for the discovered DB system component. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this DiscoveredExternalDbSystemComponent.\nThe name of the discovered DB system component.') - component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this DiscoveredExternalDbSystemComponent.\nThe external DB system component type.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this DiscoveredExternalDbSystemComponent. The OCID of the existing OCI resource matching the discovered DB system component.') - is_selected_for_monitoring: bool | None = Field(None, alias='isSelectedForMonitoring', description='Gets the is_selected_for_monitoring of this DiscoveredExternalDbSystemComponent.\nIndicates whether the DB system component should be provisioned as an OCI resource or not.') - status: Literal['NEW', 'EXISTING', 'MARKED_FOR_DELETION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DiscoveredExternalDbSystemComponent.\nThe state of the discovered DB system component.\n\nAllowed values for this property are: "NEW", "EXISTING", "MARKED_FOR_DELETION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - associated_components: list[AssociatedComponent] | None = Field(None, alias='associatedComponents', description='Gets the associated_components of this DiscoveredExternalDbSystemComponent.\nThe list of associated components.') - host_name: str = Field(..., alias='hostName', description='**[Required]** Gets the host_name of this DiscoveredExternalClusterInstance.\nThe name of the host on which the cluster instance is running.') - cluster_id: str | None = Field(None, alias='clusterId', description='Gets the cluster_id of this DiscoveredExternalClusterInstance.\nThe unique identifier of the Oracle cluster.') - node_role: Literal['HUB', 'LEAF', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='nodeRole', description='Gets the node_role of this DiscoveredExternalClusterInstance.\nThe role of the cluster node.\n\nAllowed values for this property are: "HUB", "LEAF", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - crs_base_directory: str | None = Field(None, alias='crsBaseDirectory', description='Gets the crs_base_directory of this DiscoveredExternalClusterInstance.\nThe Oracle base location of Cluster Ready Services (CRS).') - adr_home_directory: str | None = Field(None, alias='adrHomeDirectory', description='Gets the adr_home_directory of this DiscoveredExternalClusterInstance.\nThe Automatic Diagnostic Repository (ADR) home directory for the cluster instance.') - connector: ExternalDbSystemDiscoveryConnector | None = Field(None, description='Gets the connector of this DiscoveredExternalClusterInstance.') - - -class DiscoveredExternalDatabase(DbmBaseModel): - """The details of an external Oracle Database discovered in an external DB system discovery run.""" - - component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this DiscoveredExternalDbSystemComponent.\nThe identifier of the discovered DB system component.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DiscoveredExternalDbSystemComponent.\nThe user-friendly name for the discovered DB system component. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this DiscoveredExternalDbSystemComponent.\nThe name of the discovered DB system component.') - component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this DiscoveredExternalDbSystemComponent.\nThe external DB system component type.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this DiscoveredExternalDbSystemComponent. The OCID of the existing OCI resource matching the discovered DB system component.') - is_selected_for_monitoring: bool | None = Field(None, alias='isSelectedForMonitoring', description='Gets the is_selected_for_monitoring of this DiscoveredExternalDbSystemComponent.\nIndicates whether the DB system component should be provisioned as an OCI resource or not.') - status: Literal['NEW', 'EXISTING', 'MARKED_FOR_DELETION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DiscoveredExternalDbSystemComponent.\nThe state of the discovered DB system component.\n\nAllowed values for this property are: "NEW", "EXISTING", "MARKED_FOR_DELETION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - associated_components: list[AssociatedComponent] | None = Field(None, alias='associatedComponents', description='Gets the associated_components of this DiscoveredExternalDbSystemComponent.\nThe list of associated components.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this DiscoveredExternalDatabase. The OCID of the compartment.') - db_unique_name: str = Field(..., alias='dbUniqueName', description='**[Required]** Gets the db_unique_name of this DiscoveredExternalDatabase.\nThe `DB_UNIQUE_NAME` of the external database.') - db_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='dbType', description='Gets the db_type of this DiscoveredExternalDatabase.\nThe type of Oracle Database. Indicates whether the database is a Container Database,\nPluggable Database, or a Non-container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - is_cluster: bool | None = Field(None, alias='isCluster', description='Gets the is_cluster of this DiscoveredExternalDatabase.\nIndicates whether the Oracle Database is part of a cluster.') - db_edition: str | None = Field(None, alias='dbEdition', description='Gets the db_edition of this DiscoveredExternalDatabase.\nThe Oracle Database edition.') - db_id: str | None = Field(None, alias='dbId', description='Gets the db_id of this DiscoveredExternalDatabase.\nThe Oracle Database ID.') - db_packs: str | None = Field(None, alias='dbPacks', description='Gets the db_packs of this DiscoveredExternalDatabase.\nThe database packs licensed for the external Oracle Database.') - db_role: Literal['LOGICAL_STANDBY', 'PHYSICAL_STANDBY', 'SNAPSHOT_STANDBY', 'PRIMARY', 'FAR_SYNC', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='dbRole', description='Gets the db_role of this DiscoveredExternalDatabase.\nThe role of the Oracle Database in Oracle Data Guard configuration.\n\nAllowed values for this property are: "LOGICAL_STANDBY", "PHYSICAL_STANDBY", "SNAPSHOT_STANDBY", "PRIMARY", "FAR_SYNC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - db_version: str | None = Field(None, alias='dbVersion', description='Gets the db_version of this DiscoveredExternalDatabase.\nThe Oracle Database version.') - pluggable_databases: list[DiscoveredExternalPluggableDatabase] | None = Field(None, alias='pluggableDatabases', description='Gets the pluggable_databases of this DiscoveredExternalDatabase.\nThe list of Pluggable Databases.') - db_instances: list[DiscoveredExternalDbInstance] | None = Field(None, alias='dbInstances', description='Gets the db_instances of this DiscoveredExternalDatabase.\nThe list of database instances.') - connector: ExternalDbSystemDiscoveryConnector | None = Field(None, description='Gets the connector of this DiscoveredExternalDatabase.') - can_enable_all_current_pdbs: bool | None = Field(None, alias='canEnableAllCurrentPdbs', description='Gets the can_enable_all_current_pdbs of this DiscoveredExternalDatabase.\nIndicates whether Diagnostics & Management should be enabled for all the current pluggable databases in the container database.') - is_auto_enable_pluggable_database: bool | None = Field(None, alias='isAutoEnablePluggableDatabase', description='Gets the is_auto_enable_pluggable_database of this DiscoveredExternalDatabase.\nIndicates whether Diagnostics & Management should be enabled automatically for all the pluggable databases in the container database.') - - -class DiscoveredExternalDbHome(DbmBaseModel): - """The details of an Oracle DB home discovered in an external DB system discovery run.""" - - component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this DiscoveredExternalDbSystemComponent.\nThe identifier of the discovered DB system component.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DiscoveredExternalDbSystemComponent.\nThe user-friendly name for the discovered DB system component. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this DiscoveredExternalDbSystemComponent.\nThe name of the discovered DB system component.') - component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this DiscoveredExternalDbSystemComponent.\nThe external DB system component type.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this DiscoveredExternalDbSystemComponent. The OCID of the existing OCI resource matching the discovered DB system component.') - is_selected_for_monitoring: bool | None = Field(None, alias='isSelectedForMonitoring', description='Gets the is_selected_for_monitoring of this DiscoveredExternalDbSystemComponent.\nIndicates whether the DB system component should be provisioned as an OCI resource or not.') - status: Literal['NEW', 'EXISTING', 'MARKED_FOR_DELETION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DiscoveredExternalDbSystemComponent.\nThe state of the discovered DB system component.\n\nAllowed values for this property are: "NEW", "EXISTING", "MARKED_FOR_DELETION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - associated_components: list[AssociatedComponent] | None = Field(None, alias='associatedComponents', description='Gets the associated_components of this DiscoveredExternalDbSystemComponent.\nThe list of associated components.') - home_directory: str = Field(..., alias='homeDirectory', description='**[Required]** Gets the home_directory of this DiscoveredExternalDbHome.\nThe location of the DB home.') - - -class DiscoveredExternalDbInstance(DbmBaseModel): - """The details of an Oracle DB instance discovered in an external DB system discovery run.""" - - component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this DiscoveredExternalDbSystemComponent.\nThe identifier of the discovered DB system component.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DiscoveredExternalDbSystemComponent.\nThe user-friendly name for the discovered DB system component. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this DiscoveredExternalDbSystemComponent.\nThe name of the discovered DB system component.') - component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this DiscoveredExternalDbSystemComponent.\nThe external DB system component type.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this DiscoveredExternalDbSystemComponent. The OCID of the existing OCI resource matching the discovered DB system component.') - is_selected_for_monitoring: bool | None = Field(None, alias='isSelectedForMonitoring', description='Gets the is_selected_for_monitoring of this DiscoveredExternalDbSystemComponent.\nIndicates whether the DB system component should be provisioned as an OCI resource or not.') - status: Literal['NEW', 'EXISTING', 'MARKED_FOR_DELETION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DiscoveredExternalDbSystemComponent.\nThe state of the discovered DB system component.\n\nAllowed values for this property are: "NEW", "EXISTING", "MARKED_FOR_DELETION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - associated_components: list[AssociatedComponent] | None = Field(None, alias='associatedComponents', description='Gets the associated_components of this DiscoveredExternalDbSystemComponent.\nThe list of associated components.') - instance_name: str = Field(..., alias='instanceName', description='**[Required]** Gets the instance_name of this DiscoveredExternalDbInstance.\nThe name of the DB instance.') - host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this DiscoveredExternalDbInstance.\nThe name of the host on which the DB instance is running.') - node_name: str | None = Field(None, alias='nodeName', description='Gets the node_name of this DiscoveredExternalDbInstance.\nThe name of the DB instance node.') - oracle_home: str | None = Field(None, alias='oracleHome', description='Gets the oracle_home of this DiscoveredExternalDbInstance.\nThe Oracle home location of the DB instance.') - adr_home_directory: str | None = Field(None, alias='adrHomeDirectory', description='Gets the adr_home_directory of this DiscoveredExternalDbInstance.\nThe Automatic Diagnostic Repository (ADR) home directory for the DB instance.') - - -class DiscoveredExternalDbNode(DbmBaseModel): - """The details of an Oracle DB node discovered in an external DB system discovery run.""" - - component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this DiscoveredExternalDbSystemComponent.\nThe identifier of the discovered DB system component.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DiscoveredExternalDbSystemComponent.\nThe user-friendly name for the discovered DB system component. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this DiscoveredExternalDbSystemComponent.\nThe name of the discovered DB system component.') - component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this DiscoveredExternalDbSystemComponent.\nThe external DB system component type.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this DiscoveredExternalDbSystemComponent. The OCID of the existing OCI resource matching the discovered DB system component.') - is_selected_for_monitoring: bool | None = Field(None, alias='isSelectedForMonitoring', description='Gets the is_selected_for_monitoring of this DiscoveredExternalDbSystemComponent.\nIndicates whether the DB system component should be provisioned as an OCI resource or not.') - status: Literal['NEW', 'EXISTING', 'MARKED_FOR_DELETION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DiscoveredExternalDbSystemComponent.\nThe state of the discovered DB system component.\n\nAllowed values for this property are: "NEW", "EXISTING", "MARKED_FOR_DELETION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - associated_components: list[AssociatedComponent] | None = Field(None, alias='associatedComponents', description='Gets the associated_components of this DiscoveredExternalDbSystemComponent.\nThe list of associated components.') - host_name: str = Field(..., alias='hostName', description='**[Required]** Gets the host_name of this DiscoveredExternalDbNode.\nThe name of the host on which the ASM instance is running.') - cpu_core_count: float | None = Field(None, ge=0, alias='cpuCoreCount', description='Gets the cpu_core_count of this DiscoveredExternalDbNode.\nThe number of CPU cores available on the DB node.') - memory_size_in_gbs: float | None = Field(None, alias='memorySizeInGBs', description='Gets the memory_size_in_gbs of this DiscoveredExternalDbNode.\nThe total memory in gigabytes (GB) on the DB node.') - connector: ExternalDbSystemDiscoveryConnector | None = Field(None, description='Gets the connector of this DiscoveredExternalDbNode.') - - -class DiscoveredExternalDbSystemComponent(DbmBaseModel): - """The details of an external DB system component.""" - - component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this DiscoveredExternalDbSystemComponent.\nThe identifier of the discovered DB system component.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DiscoveredExternalDbSystemComponent.\nThe user-friendly name for the discovered DB system component. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this DiscoveredExternalDbSystemComponent.\nThe name of the discovered DB system component.') - component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this DiscoveredExternalDbSystemComponent.\nThe external DB system component type.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this DiscoveredExternalDbSystemComponent. The OCID of the existing OCI resource matching the discovered DB system component.') - is_selected_for_monitoring: bool | None = Field(None, alias='isSelectedForMonitoring', description='Gets the is_selected_for_monitoring of this DiscoveredExternalDbSystemComponent.\nIndicates whether the DB system component should be provisioned as an OCI resource or not.') - status: Literal['NEW', 'EXISTING', 'MARKED_FOR_DELETION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DiscoveredExternalDbSystemComponent.\nThe state of the discovered DB system component.\n\nAllowed values for this property are: "NEW", "EXISTING", "MARKED_FOR_DELETION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - associated_components: list[AssociatedComponent] | None = Field(None, alias='associatedComponents', description='Gets the associated_components of this DiscoveredExternalDbSystemComponent.\nThe list of associated components.') - - -class DiscoveredExternalListener(DbmBaseModel): - """The details of an Oracle listener discovered in an external DB system discovery run.""" - - component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this DiscoveredExternalDbSystemComponent.\nThe identifier of the discovered DB system component.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DiscoveredExternalDbSystemComponent.\nThe user-friendly name for the discovered DB system component. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this DiscoveredExternalDbSystemComponent.\nThe name of the discovered DB system component.') - component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this DiscoveredExternalDbSystemComponent.\nThe external DB system component type.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this DiscoveredExternalDbSystemComponent. The OCID of the existing OCI resource matching the discovered DB system component.') - is_selected_for_monitoring: bool | None = Field(None, alias='isSelectedForMonitoring', description='Gets the is_selected_for_monitoring of this DiscoveredExternalDbSystemComponent.\nIndicates whether the DB system component should be provisioned as an OCI resource or not.') - status: Literal['NEW', 'EXISTING', 'MARKED_FOR_DELETION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DiscoveredExternalDbSystemComponent.\nThe state of the discovered DB system component.\n\nAllowed values for this property are: "NEW", "EXISTING", "MARKED_FOR_DELETION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - associated_components: list[AssociatedComponent] | None = Field(None, alias='associatedComponents', description='Gets the associated_components of this DiscoveredExternalDbSystemComponent.\nThe list of associated components.') - db_node_name: str | None = Field(None, alias='dbNodeName', description='Gets the db_node_name of this DiscoveredExternalListener.\nThe name of the DB node.') - oracle_home: str | None = Field(None, alias='oracleHome', description='Gets the oracle_home of this DiscoveredExternalListener.\nThe Oracle home location of the listener.') - listener_alias: str | None = Field(None, alias='listenerAlias', description='Gets the listener_alias of this DiscoveredExternalListener.\nThe listener alias.') - adr_home_directory: str | None = Field(None, alias='adrHomeDirectory', description='Gets the adr_home_directory of this DiscoveredExternalListener.\nThe directory that stores tracing and logging incidents when Automatic Diagnostic Repository (ADR) is enabled.') - log_directory: str | None = Field(None, alias='logDirectory', description='Gets the log_directory of this DiscoveredExternalListener.\nThe destination directory of the listener log file.') - trace_directory: str | None = Field(None, alias='traceDirectory', description='Gets the trace_directory of this DiscoveredExternalListener.\nThe destination directory of the listener trace file.') - version: str | None = Field(None, description='Gets the version of this DiscoveredExternalListener.\nThe listener version.') - listener_type: Literal['ASM', 'LOCAL', 'SCAN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='listenerType', description='Gets the listener_type of this DiscoveredExternalListener.\nThe type of listener.\n\nAllowed values for this property are: "ASM", "LOCAL", "SCAN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this DiscoveredExternalListener.\nThe name of the host on which the external listener is running.') - endpoints: list[ExternalListenerEndpoint] | None = Field(None, description='Gets the endpoints of this DiscoveredExternalListener.\nThe list of protocol addresses the listener is configured to listen on.') - connector: ExternalDbSystemDiscoveryConnector | None = Field(None, description='Gets the connector of this DiscoveredExternalListener.') - - -class DiscoveredExternalPluggableDatabase(DbmBaseModel): - """The details of an external Pluggable Database (PDB) discovered in an external DB system discovery run.""" - - component_id: str = Field(..., alias='componentId', description='**[Required]** Gets the component_id of this DiscoveredExternalDbSystemComponent.\nThe identifier of the discovered DB system component.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DiscoveredExternalDbSystemComponent.\nThe user-friendly name for the discovered DB system component. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this DiscoveredExternalDbSystemComponent.\nThe name of the discovered DB system component.') - component_type: Literal['ASM', 'ASM_INSTANCE', 'CLUSTER', 'CLUSTER_INSTANCE', 'DATABASE', 'DATABASE_INSTANCE', 'DATABASE_HOME', 'DATABASE_NODE', 'DBSYSTEM', 'LISTENER', 'PLUGGABLE_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this DiscoveredExternalDbSystemComponent.\nThe external DB system component type.\n\nAllowed values for this property are: "ASM", "ASM_INSTANCE", "CLUSTER", "CLUSTER_INSTANCE", "DATABASE", "DATABASE_INSTANCE", "DATABASE_HOME", "DATABASE_NODE", "DBSYSTEM", "LISTENER", "PLUGGABLE_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this DiscoveredExternalDbSystemComponent. The OCID of the existing OCI resource matching the discovered DB system component.') - is_selected_for_monitoring: bool | None = Field(None, alias='isSelectedForMonitoring', description='Gets the is_selected_for_monitoring of this DiscoveredExternalDbSystemComponent.\nIndicates whether the DB system component should be provisioned as an OCI resource or not.') - status: Literal['NEW', 'EXISTING', 'MARKED_FOR_DELETION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this DiscoveredExternalDbSystemComponent.\nThe state of the discovered DB system component.\n\nAllowed values for this property are: "NEW", "EXISTING", "MARKED_FOR_DELETION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - associated_components: list[AssociatedComponent] | None = Field(None, alias='associatedComponents', description='Gets the associated_components of this DiscoveredExternalDbSystemComponent.\nThe list of associated components.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this DiscoveredExternalPluggableDatabase. The OCID of the compartment.') - container_database_id: str = Field(..., alias='containerDatabaseId', description='**[Required]** Gets the container_database_id of this DiscoveredExternalPluggableDatabase.\nThe unique identifier of the parent Container Database (CDB).') - guid: str | None = Field(None, description='Gets the guid of this DiscoveredExternalPluggableDatabase.\nThe unique identifier of the PDB.') - connector: ExternalDbSystemDiscoveryConnector | None = Field(None, description='Gets the connector of this DiscoveredExternalPluggableDatabase.') - - -class DropSqlPlanBaselinesDetails(DbmRequestModel): - """The details required to drop SQL plan baselines. -It takes either credentials or databaseCredential. It's recommended to provide databaseCredential""" - - sql_handle: str | None = Field(None, alias='sqlHandle', description='Gets the sql_handle of this DropSqlPlanBaselinesDetails.\nThe SQL statement handle. It identifies plans associated with a SQL statement\nthat are to be dropped. If `null` then `planName` must be specified.') - plan_name: str | None = Field(None, alias='planName', description="Gets the plan_name of this DropSqlPlanBaselinesDetails.\nThe plan name. It identifies a specific plan. If `null' then all plans\nassociated with the SQL statement identified by `sqlHandle' are dropped.") - credentials: ManagedDatabaseCredential | None = Field(None, description='Gets the credentials of this DropSqlPlanBaselinesDetails.') - database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this DropSqlPlanBaselinesDetails.') - - -class DropSqlTuningSetDetails(DbmRequestModel): - """The details required to drop a Sql tuning set. -It takes either credentialDetails or databaseCredential. It's recommended to provide databaseCredential""" - - credential_details: SqlTuningSetAdminCredentialDetails | None = Field(None, alias='credentialDetails', description='Gets the credential_details of this DropSqlTuningSetDetails.') - database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this DropSqlTuningSetDetails.') - name: str = Field(..., description='**[Required]** Gets the name of this DropSqlTuningSetDetails.\nA unique Sql tuning set name.') - owner: str | None = Field(None, description='Gets the owner of this DropSqlTuningSetDetails.\nOwner of the Sql tuning set.') - show_sql_only: int | None = Field(None, alias='showSqlOnly', description='Gets the show_sql_only of this DropSqlTuningSetDetails.\nFlag to indicate whether to drop the Sql tuning set or just display the plsql used to drop Sql tuning set.') - - -class DropSqlTuningTaskDetails(DbmRequestModel): - """The request to drop a SQL tuning task. -It takes either credentialDetails or databaseCredential. It's recommended to provide databaseCredential""" - - task_id: int = Field(..., alias='taskId', description='**[Required]** Gets the task_id of this DropSqlTuningTaskDetails. Identifier of the SQL tuning task being dropped. This value is not an OCID; use the identifier returned by SQL tuning task list, start, or clone operations.') - credential_details: SqlTuningTaskCredentialDetails | None = Field(None, alias='credentialDetails', description='Gets the credential_details of this DropSqlTuningTaskDetails.') - database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this DropSqlTuningTaskDetails.') - - -class DropSqlsInSqlTuningSetDetails(DbmRequestModel): - """Drops the selected list of Sql statements from the current Sql tuning set. -The basicFilter parameter specifies the Sql predicate to filter the Sql from the Sql tuning set defined on attributes of the SQLSET_ROW. -If a valid filter criteria is specified, then, Sql statements matching this filter criteria will be deleted from the current Sql tuning set. -If filter criteria is not specified, then, all Sql statements will be deleted from the current Sql tuning set. -It takes either credentialDetails or databaseCredential. It's recommended to provide databaseCredential""" - - credential_details: SqlTuningSetAdminCredentialDetails | None = Field(None, alias='credentialDetails', description='Gets the credential_details of this DropSqlsInSqlTuningSetDetails.') - database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this DropSqlsInSqlTuningSetDetails.') - show_sql_only: int | None = Field(None, alias='showSqlOnly', description='Gets the show_sql_only of this DropSqlsInSqlTuningSetDetails.\nFlag to indicate whether to drop the Sql statements or just display the plsql used to drop the Sql statements.') - owner: str | None = Field(None, description='Gets the owner of this DropSqlsInSqlTuningSetDetails.\nThe owner of the Sql tuning set.') - name: str = Field(..., description='**[Required]** Gets the name of this DropSqlsInSqlTuningSetDetails.\nThe name of the Sql tuning set.') - basic_filter: str | None = Field(None, alias='basicFilter', description='Gets the basic_filter of this DropSqlsInSqlTuningSetDetails. Specifies the Sql predicate to filter the Sql from the Sql tuning set defined on attributes of the SQLSET_ROW. User could use any combination of the following columns with appropriate values as Sql predicate Refer to the documentation.') - - -class DropTablespaceDetails(DbmRequestModel): - """The details required to drop a tablespace. -It takes either credentialDetails or databaseCredential. It's recommended to provide databaseCredential""" - - credential_details: TablespaceAdminCredentialDetails | None = Field(None, alias='credentialDetails', description='Gets the credential_details of this DropTablespaceDetails.') - database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this DropTablespaceDetails.') - is_including_contents: bool | None = Field(None, alias='isIncludingContents', description='Gets the is_including_contents of this DropTablespaceDetails.\nSpecifies whether all the contents of the tablespace being dropped should be dropped.') - is_dropping_data_files: bool | None = Field(None, alias='isDroppingDataFiles', description='Gets the is_dropping_data_files of this DropTablespaceDetails.\nSpecifies whether all the associated data files of the tablespace being dropped should be dropped.') - is_cascade_constraints: bool | None = Field(None, alias='isCascadeConstraints', description='Gets the is_cascade_constraints of this DropTablespaceDetails.\nSpecifies whether all the constraints on the tablespace being dropped should be dropped.') - - -class EnableAutomaticInitialPlanCaptureDetails(DbmRequestModel): - """The details required to enable automatic initial plan capture. -It takes either credentials or databaseCredential. It's recommended to provide databaseCredential""" - - credentials: ManagedDatabaseCredential | None = Field(None, description='Gets the credentials of this EnableAutomaticInitialPlanCaptureDetails.') - database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this EnableAutomaticInitialPlanCaptureDetails.') - - -class EnableAutomaticSpmEvolveAdvisorTaskDetails(DbmRequestModel): - """The details required to enable Automatic SPM Evolve Advisor task. -It takes either credentials or databaseCredential. It's recommended to provide databaseCredential""" - - credentials: ManagedDatabaseCredential | None = Field(None, description='Gets the credentials of this EnableAutomaticSpmEvolveAdvisorTaskDetails.') - database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this EnableAutomaticSpmEvolveAdvisorTaskDetails.') - - -class EnableAutonomousDatabaseManagementFeatureDetails(DbmRequestModel): - """The details required to enable a Database Management feature for an Autonomous Database.""" - - feature_details: AutonomousDatabaseFeatureDetails = Field(..., alias='featureDetails', description='**[Required]** Gets the feature_details of this EnableAutonomousDatabaseManagementFeatureDetails.') - - -class EnableCloudDbSystemDatabaseManagementDetails(DbmRequestModel): - """The details required to enable Database Management for a cloud DB system.""" - - is_enabled: bool = Field(..., alias='isEnabled', description='**[Required]** Gets the is_enabled of this EnableCloudDbSystemDatabaseManagementDetails.\nThe status of the associated service.') - metadata: str | None = Field(None, description='Gets the metadata of this EnableCloudDbSystemDatabaseManagementDetails.\nThe associated service-specific inputs in JSON string format, which Database Management can identify.') - - -class EnableCloudDbSystemStackMonitoringDetails(DbmRequestModel): - """The details required to enable Stack Monitoring for a cloud DB system.""" - - is_enabled: bool = Field(..., alias='isEnabled', description='**[Required]** Gets the is_enabled of this EnableCloudDbSystemStackMonitoringDetails.\nThe status of the associated service.') - metadata: str | None = Field(None, description='Gets the metadata of this EnableCloudDbSystemStackMonitoringDetails.\nThe associated service-specific inputs in JSON string format, which Database Management can identify.') - - -class EnableCloudExadataInfrastructureManagementDetails(DbmRequestModel): - """The details required to enable Database Management on the Exadata infrastructure.""" - - license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE'] = Field(..., alias='licenseModel', description='**[Required]** Gets the license_model of this EnableCloudExadataInfrastructureManagementDetails.\nThe Oracle license model that applies to the database management resources.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE"') - - -class EnableDatabaseManagementFeatureDetails(DbmRequestModel): - """The details required to enable Database Management features for an Oracle cloud database.""" - - feature_details: DatabaseFeatureDetails = Field(..., alias='featureDetails', description='**[Required]** Gets the feature_details of this EnableDatabaseManagementFeatureDetails.') - - -class EnableExternalContainerDatabaseManagementFeatureDetails(DbmRequestModel): - """The details required to enable a Database Management feature for an external container database.""" - - feature_details: ExternalDatabaseFeatureDetails = Field(..., alias='featureDetails', description='**[Required]** Gets the feature_details of this EnableExternalContainerDatabaseManagementFeatureDetails.') - - -class EnableExternalDatabaseManagementDetails(DbmRequestModel): - """Detail to enable or disable database management.""" - - connector_id: str = Field(..., alias='connectorId', description='**[Required]** Gets the connector_id of this EnableExternalDatabaseManagementDetails.\nOCID of External MySQL Database connector.') - - -class EnableExternalDbSystemDatabaseManagementDetails(DbmRequestModel): - """The details required to enable Database Management for an external DB system.""" - - license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE'] = Field(..., alias='licenseModel', description='**[Required]** Gets the license_model of this EnableExternalDbSystemDatabaseManagementDetails.\nThe Oracle license model that applies to the external database.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE"') - - -class EnableExternalDbSystemStackMonitoringDetails(DbmRequestModel): - """The details required to enable Stack Monitoring for an external DB system.""" - - is_enabled: bool = Field(..., alias='isEnabled', description='**[Required]** Gets the is_enabled of this EnableExternalDbSystemStackMonitoringDetails.\nThe status of the associated service.') - metadata: str | None = Field(None, description='Gets the metadata of this EnableExternalDbSystemStackMonitoringDetails.\nThe associated service-specific inputs in JSON string format, which Database Management can identify.') - - -class EnableExternalExadataInfrastructureManagementDetails(DbmRequestModel): - """The details required to enable Database Management on the Exadata infrastructure.""" - - license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE'] = Field(..., alias='licenseModel', description='**[Required]** Gets the license_model of this EnableExternalExadataInfrastructureManagementDetails.\nThe Oracle license model.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE"') - - -class EnableExternalNonContainerDatabaseManagementFeatureDetails(DbmRequestModel): - """The details required to enable a Database Management feature for an external non-container database.""" - - feature_details: ExternalDatabaseFeatureDetails = Field(..., alias='featureDetails', description='**[Required]** Gets the feature_details of this EnableExternalNonContainerDatabaseManagementFeatureDetails.') - - -class EnableExternalPluggableDatabaseManagementFeatureDetails(DbmRequestModel): - """The details required to enable a Database Management feature for an external pluggable database.""" - - feature_details: ExternalPluggableDatabaseFeatureDetails = Field(..., alias='featureDetails', description='**[Required]** Gets the feature_details of this EnableExternalPluggableDatabaseManagementFeatureDetails.') - - -class EnableHighFrequencyAutomaticSpmEvolveAdvisorTaskDetails(DbmRequestModel): - """The details required to enable high frequency Automatic SPM Evolve Advisor task. -It takes either credentials or databaseCredential. It's recommended to provide databaseCredential""" - - credentials: ManagedDatabaseCredential | None = Field(None, description='Gets the credentials of this EnableHighFrequencyAutomaticSpmEvolveAdvisorTaskDetails.') - database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this EnableHighFrequencyAutomaticSpmEvolveAdvisorTaskDetails.') - - -class EnablePluggableDatabaseManagementFeatureDetails(DbmRequestModel): - """The details required to enable a Database Management feature for an Oracle cloud pluggable database.""" - - feature_details: DatabaseFeatureDetails = Field(..., alias='featureDetails', description='**[Required]** Gets the feature_details of this EnablePluggableDatabaseManagementFeatureDetails.') - - -class EnableSqlPlanBaselinesUsageDetails(DbmRequestModel): - """The details required to enable SQL plan baseline usage. -It takes either credentials or databaseCredential. It's recommended to provide databaseCredential""" - - credentials: ManagedDatabaseCredential | None = Field(None, description='Gets the credentials of this EnableSqlPlanBaselinesUsageDetails.') - database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this EnableSqlPlanBaselinesUsageDetails.') - - -class EntityDiscovered(DbmBaseModel): - """The details of the base entity discovery.""" - - id: str | None = Field(None, description='Gets the id of this EntityDiscovered. The OCID of the entity discovered.') - agent_id: str | None = Field(None, alias='agentId', description='Gets the agent_id of this EntityDiscovered. The OCID of the agent used for monitoring.') - connector_id: str | None = Field(None, alias='connectorId', description='Gets the connector_id of this EntityDiscovered. The OCID of the associated connector.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this EntityDiscovered.\nThe name of the entity.') - version: str | None = Field(None, description='Gets the version of this EntityDiscovered.\nThe version of the entity.') - internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this EntityDiscovered.\nThe internal identifier of the entity.') - status: str | None = Field(None, description='Gets the status of this EntityDiscovered.\nThe status of the entity.') - discover_status: Literal['PREV_DISCOVERED', 'NEW_DISCOVERED', 'NOT_FOUND', 'DISCOVERING', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='discoverStatus', description='Gets the discover_status of this EntityDiscovered.\nThe status of the entity discovery.\n\nAllowed values for this property are: "PREV_DISCOVERED", "NEW_DISCOVERED", "NOT_FOUND", "DISCOVERING", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - discover_error_code: str | None = Field(None, alias='discoverErrorCode', description='Gets the discover_error_code of this EntityDiscovered.\nThe error code of the discovery.') - discover_error_msg: str | None = Field(None, alias='discoverErrorMsg', description='Gets the discover_error_msg of this EntityDiscovered.\nThe error message of the discovery.') - entity_type: Literal['STORAGE_SERVER_DISCOVER_SUMMARY', 'STORAGE_GRID_DISCOVER_SUMMARY', 'DATABASE_SYSTEM_DISCOVER_SUMMARY', 'INFRASTRUCTURE_DISCOVER_SUMMARY', 'INFRASTRUCTURE_DISCOVER', 'MANAGED_STORAGE_SERVER_DISCOVER_SUMMARY', 'MANAGED_STORAGE_GRID_DISCOVER_SUMMARY', 'VM_CLUSTER_DISCOVER_SUMMARY', 'MANAGED_INFRASTRUCTURE_DISCOVER_SUMMARY', 'CLOUD_INFRASTRUCTURE_DISCOVER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entityType', description='**[Required]** Gets the entity_type of this EntityDiscovered.\nThe type of discovered entities.\n\nAllowed values for this property are: "STORAGE_SERVER_DISCOVER_SUMMARY", "STORAGE_GRID_DISCOVER_SUMMARY", "DATABASE_SYSTEM_DISCOVER_SUMMARY", "INFRASTRUCTURE_DISCOVER_SUMMARY", "INFRASTRUCTURE_DISCOVER", "MANAGED_STORAGE_SERVER_DISCOVER_SUMMARY", "MANAGED_STORAGE_GRID_DISCOVER_SUMMARY", "VM_CLUSTER_DISCOVER_SUMMARY", "MANAGED_INFRASTRUCTURE_DISCOVER_SUMMARY", "CLOUD_INFRASTRUCTURE_DISCOVER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class ExadataFleetMetricDefinition(DbmBaseModel): - """The Exadata infrastructure metric details.""" - - metric_name: str | None = Field(None, alias='metricName', description='Gets the metric_name of this ExadataFleetMetricDefinition.\nThe name of the metric.') - baseline_value: float | None = Field(None, alias='baselineValue', description='Gets the baseline_value of this ExadataFleetMetricDefinition.\nThe baseline value of the metric.') - target_value: float | None = Field(None, alias='targetValue', description='Gets the target_value of this ExadataFleetMetricDefinition.\nThe target value of the metric.') - unit: str | None = Field(None, description='Gets the unit of this ExadataFleetMetricDefinition.\nThe unit of the value.') - timestamp: datetime | None = Field(None, description='Gets the timestamp of this ExadataFleetMetricDefinition.\nThe data point date and time in UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".') - percentage_change: float | None = Field(None, alias='percentageChange', description='Gets the percentage_change of this ExadataFleetMetricDefinition.\nThe percentage change in the metric aggregated value compared to the baseline value.') - dimensions: list[ExadataMetricDimensionDefinition] | None = Field(None, description='Gets the dimensions of this ExadataFleetMetricDefinition.\nThe dimensions of the metric.') - - -class ExadataFleetMetricSummaryDefinition(DbmBaseModel): - """A summary of the fleet metrics, which provides the metric aggregated value of the Exadata infrastructures in the fleet.""" - - metric_name: str | None = Field(None, alias='metricName', description='Gets the metric_name of this ExadataFleetMetricSummaryDefinition.\nThe name of the metric.') - baseline_value: float | None = Field(None, alias='baselineValue', description='Gets the baseline_value of this ExadataFleetMetricSummaryDefinition.\nThe metric aggregated value at the baseline date and time.') - target_value: float | None = Field(None, alias='targetValue', description='Gets the target_value of this ExadataFleetMetricSummaryDefinition.\nThe metric aggregated value at the target date and time.') - unit: str | None = Field(None, description='Gets the unit of this ExadataFleetMetricSummaryDefinition.\nThe unit of the value.') - percentage_change: float | None = Field(None, alias='percentageChange', description='Gets the percentage_change of this ExadataFleetMetricSummaryDefinition.\nThe percentage change in the metric aggregated value compared to the baseline value.') - dimensions: list[ExadataMetricDimensionDefinition] | None = Field(None, description='Gets the dimensions of this ExadataFleetMetricSummaryDefinition.\nThe unique dimension key and values of the baseline metric.') - - -class ExadataInfrastructureDiscoverySummary(DbmBaseModel): - """The summary of the Exadata system infrastructure discovery.""" - - id: str | None = Field(None, description='Gets the id of this EntityDiscovered. The OCID of the entity discovered.') - agent_id: str | None = Field(None, alias='agentId', description='Gets the agent_id of this EntityDiscovered. The OCID of the agent used for monitoring.') - connector_id: str | None = Field(None, alias='connectorId', description='Gets the connector_id of this EntityDiscovered. The OCID of the associated connector.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this EntityDiscovered.\nThe name of the entity.') - version: str | None = Field(None, description='Gets the version of this EntityDiscovered.\nThe version of the entity.') - internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this EntityDiscovered.\nThe internal identifier of the entity.') - status: str | None = Field(None, description='Gets the status of this EntityDiscovered.\nThe status of the entity.') - discover_status: Literal['PREV_DISCOVERED', 'NEW_DISCOVERED', 'NOT_FOUND', 'DISCOVERING', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='discoverStatus', description='Gets the discover_status of this EntityDiscovered.\nThe status of the entity discovery.\n\nAllowed values for this property are: "PREV_DISCOVERED", "NEW_DISCOVERED", "NOT_FOUND", "DISCOVERING", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - discover_error_code: str | None = Field(None, alias='discoverErrorCode', description='Gets the discover_error_code of this EntityDiscovered.\nThe error code of the discovery.') - discover_error_msg: str | None = Field(None, alias='discoverErrorMsg', description='Gets the discover_error_msg of this EntityDiscovered.\nThe error message of the discovery.') - entity_type: Literal['STORAGE_SERVER_DISCOVER_SUMMARY', 'STORAGE_GRID_DISCOVER_SUMMARY', 'DATABASE_SYSTEM_DISCOVER_SUMMARY', 'INFRASTRUCTURE_DISCOVER_SUMMARY', 'INFRASTRUCTURE_DISCOVER', 'MANAGED_STORAGE_SERVER_DISCOVER_SUMMARY', 'MANAGED_STORAGE_GRID_DISCOVER_SUMMARY', 'VM_CLUSTER_DISCOVER_SUMMARY', 'MANAGED_INFRASTRUCTURE_DISCOVER_SUMMARY', 'CLOUD_INFRASTRUCTURE_DISCOVER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entityType', description='**[Required]** Gets the entity_type of this EntityDiscovered.\nThe type of discovered entities.\n\nAllowed values for this property are: "STORAGE_SERVER_DISCOVER_SUMMARY", "STORAGE_GRID_DISCOVER_SUMMARY", "DATABASE_SYSTEM_DISCOVER_SUMMARY", "INFRASTRUCTURE_DISCOVER_SUMMARY", "INFRASTRUCTURE_DISCOVER", "MANAGED_STORAGE_SERVER_DISCOVER_SUMMARY", "MANAGED_STORAGE_GRID_DISCOVER_SUMMARY", "VM_CLUSTER_DISCOVER_SUMMARY", "MANAGED_INFRASTRUCTURE_DISCOVER_SUMMARY", "CLOUD_INFRASTRUCTURE_DISCOVER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - rack_size: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='rackSize', description='Gets the rack_size of this ExadataInfrastructureDiscoverySummary.\nThe size of the Exadata infrastructure.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class ExadataInfrastructureFleetHealthMetrics(DbmBaseModel): - """The details of the fleet health metrics.""" - - compare_baseline_time: str = Field(..., alias='compareBaselineTime', description='**[Required]** Gets the compare_baseline_time of this ExadataInfrastructureFleetHealthMetrics.\nThe baseline date and time in UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".\nThis is the date and time against which percentage change is calculated.') - compare_target_time: str = Field(..., alias='compareTargetTime', description='**[Required]** Gets the compare_target_time of this ExadataInfrastructureFleetHealthMetrics.\nThe target date and time in UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".\nAll the metrics are returned for the target date and time and the percentage change\nis calculated against the baseline date and time.') - compare_type: Literal['HOUR', 'DAY', 'WEEK', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='compareType', description='Gets the compare_type of this ExadataInfrastructureFleetHealthMetrics.\nThe time window used for metrics comparison.\n\nAllowed values for this property are: "HOUR", "DAY", "WEEK", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - exadata_infrastructure_fleet_summary: ExadataInfrastructureFleetSummary | None = Field(None, alias='exadataInfrastructureFleetSummary', description='Gets the exadata_infrastructure_fleet_summary of this ExadataInfrastructureFleetHealthMetrics.') - fleet_exadata_infrastructures: list[ExadataInfrastructureUsageMetrics] = Field(..., alias='fleetExadataInfrastructures', description='**[Required]** Gets the fleet_exadata_infrastructures of this ExadataInfrastructureFleetHealthMetrics.\nA list of the Exadata infrastructures present in the fleet and their usage metrics.') - - -class ExadataInfrastructureFleetStatusByCategory(DbmBaseModel): - """The number of Exadata infrastructures in the fleet, grouped by deployment type and rack-size.""" - - deployment_type: Literal['ONPREMISE', 'EXADATA', 'EXADATA_CC', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='deploymentType', description='Gets the deployment_type of this ExadataInfrastructureFleetStatusByCategory.\nThe infrastructure deployment type.\n\nAllowed values for this property are: "ONPREMISE", "EXADATA", "EXADATA_CC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - rack_size: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'OTHER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='rackSize', description='Gets the rack_size of this ExadataInfrastructureFleetStatusByCategory.\nThe size of the Exadata infrastructure.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", "OTHER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - inventory_count: int | None = Field(None, ge=0, alias='inventoryCount', description='Gets the inventory_count of this ExadataInfrastructureFleetStatusByCategory.\nThe number of Exadata infrastructures in the fleet.') - - -class ExadataInfrastructureFleetSummary(DbmBaseModel): - """A summary of the inventory count grouped by Exadata infrastructure deployment type, and the metrics that -describe the aggregated usage of CPU, storage, and so on of all Exadata infrastructures in the fleet.""" - - aggregated_metrics: list[ExadataFleetMetricSummaryDefinition] | None = Field(None, alias='aggregatedMetrics', description='Gets the aggregated_metrics of this ExadataInfrastructureFleetSummary.\nA list of Exadata infrastructures present in the fleet and their usage metrics.') - inventory: list[ExadataInfrastructureFleetStatusByCategory] | None = Field(None, description='Gets the inventory of this ExadataInfrastructureFleetSummary.\nA list of the Exadata infrastructures in the fleet.') - - -class ExadataInfrastructureLifecycleStateValues(DbmBaseModel): - """the lifecycle state values for the Exadata infrastructure.""" - - state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the state of this ExadataInfrastructureLifecycleStateValues.\nThe current lifecycle state of the Exadata infrastructure resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class ExadataInfrastructureUsageMetrics(DbmBaseModel): - """The list of aggregated metrics for Exadata infrastructures in the fleet.""" - - infrastructure_id: str | None = Field(None, alias='infrastructureId', description='Gets the infrastructure_id of this ExadataInfrastructureUsageMetrics. The OCID of the Exadata infrastructure.') - compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this ExadataInfrastructureUsageMetrics. The OCID of the compartment where the Exadata infrastructure resides.') - deployment_type: Literal['ONPREMISE', 'EXADATA', 'EXADATA_CC', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='deploymentType', description='Gets the deployment_type of this ExadataInfrastructureUsageMetrics.\nThe Exadata infrastructure deployment type.\n\nAllowed values for this property are: "ONPREMISE", "EXADATA", "EXADATA_CC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - infrastructure_name: str | None = Field(None, alias='infrastructureName', description='Gets the infrastructure_name of this ExadataInfrastructureUsageMetrics.\nThe display name of the Exadata infrastructure.') - state: str | None = Field(None, description='Gets the state of this ExadataInfrastructureUsageMetrics.\nThe lifecycle state of the Exadata infrastructure.') - number_of_db_systems: int | None = Field(None, alias='numberOfDbSystems', description='Gets the number_of_db_systems of this ExadataInfrastructureUsageMetrics.\nThe number of Database Systems created on the Exadata infrastructure.') - rack_size: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'OTHER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='rackSize', description='Gets the rack_size of this ExadataInfrastructureUsageMetrics.\nThe size of the Exadata infrastructure.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", "OTHER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - storage_server_count: int | None = Field(None, ge=0, alias='storageServerCount', description='Gets the storage_server_count of this ExadataInfrastructureUsageMetrics.\nThe number of storage server for the Exadata infrastructure.') - metrics: list[ExadataFleetMetricDefinition] | None = Field(None, description='Gets the metrics of this ExadataInfrastructureUsageMetrics.\nA list of the health metrics like CPU, Storage, and Memory.') - - -class ExadataMetricDimensionDefinition(DbmBaseModel): - """The metric dimension details.""" - - dimension_name: str | None = Field(None, alias='dimensionName', description='Gets the dimension_name of this ExadataMetricDimensionDefinition.\nThe name of the dimension.') - dimension_value: str | None = Field(None, alias='dimensionValue', description='Gets the dimension_value of this ExadataMetricDimensionDefinition.\nThe value of the dimension.') - - -class ExadataVmClusterSummary(DbmBaseModel): - """The VM Clusters of the Exadata infrastructure.""" - - id: str = Field(..., description='**[Required]** Gets the id of this DbmResource. The OCID of the Exadata resource.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DbmResource.\nThe name of the Exadata resource. English letters, numbers, "-", "_" and "." only.') - version: str | None = Field(None, description='Gets the version of this DbmResource.\nThe version of the Exadata resource.') - internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this DbmResource.\nThe internal ID of the Exadata resource.') - status: str | None = Field(None, description='Gets the status of this DbmResource.\nThe status of the Exadata resource.') - lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DbmResource.\nThe current lifecycle state of the database resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DbmResource.\nThe timestamp of the creation of the Exadata resource.') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DbmResource.\nThe timestamp of the last update of the Exadata resource.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DbmResource.\nThe details of the lifecycle state of the Exadata resource.') - additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this DbmResource.\nThe additional details of the resource defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') - resource_type: Literal['INFRASTRUCTURE_SUMMARY', 'INFRASTRUCTURE', 'STORAGE_SERVER_SUMMARY', 'STORAGE_SERVER', 'STORAGE_GRID_SUMMARY', 'STORAGE_GRID', 'STORAGE_CONNECTOR_SUMMARY', 'STORAGE_CONNECTOR', 'DATABASE_SYSTEM_SUMMARY', 'DATABASE_SUMMARY', 'VM_CLUSTER_SUMMARY', 'CLOUD_INFRASTRUCTURE_SUMMARY', 'CLOUD_INFRASTRUCTURE', 'CLOUD_STORAGE_SERVER_SUMMARY', 'CLOUD_STORAGE_SERVER', 'CLOUD_STORAGE_GRID_SUMMARY', 'CLOUD_STORAGE_GRID', 'CLOUD_STORAGE_CONNECTOR_SUMMARY', 'CLOUD_STORAGE_CONNECTOR', 'MANAGED_DATABASE_SUMMARY', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceType', description='**[Required]** Gets the resource_type of this DbmResource.\nThe type of Exadata resource.\n\nAllowed values for this property are: "INFRASTRUCTURE_SUMMARY", "INFRASTRUCTURE", "STORAGE_SERVER_SUMMARY", "STORAGE_SERVER", "STORAGE_GRID_SUMMARY", "STORAGE_GRID", "STORAGE_CONNECTOR_SUMMARY", "STORAGE_CONNECTOR", "DATABASE_SYSTEM_SUMMARY", "DATABASE_SUMMARY", "VM_CLUSTER_SUMMARY", "CLOUD_INFRASTRUCTURE_SUMMARY", "CLOUD_INFRASTRUCTURE", "CLOUD_STORAGE_SERVER_SUMMARY", "CLOUD_STORAGE_SERVER", "CLOUD_STORAGE_GRID_SUMMARY", "CLOUD_STORAGE_GRID", "CLOUD_STORAGE_CONNECTOR_SUMMARY", "CLOUD_STORAGE_CONNECTOR", "MANAGED_DATABASE_SUMMARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this ExadataVmClusterSummary. The OCID of the compartment.') - license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='licenseModel', description='Gets the license_model of this ExadataVmClusterSummary.\nThe Oracle license model that applies to the database management resources.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - home_directory: str | None = Field(None, alias='homeDirectory', description='Gets the home_directory of this ExadataVmClusterSummary.\nThe Oracle home directory.') - deployment_type: Literal['EXADATA', 'EXADATA_CC', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='deploymentType', description='Gets the deployment_type of this ExadataVmClusterSummary.\nThe infrastructure deployment type.\n\nAllowed values for this property are: "EXADATA", "EXADATA_CC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class ExecutionPlanStatsComparision(DbmBaseModel): - """The comparison report of the SQL execution plan statistics in the original and modified plan.""" - - original: SqlTuningTaskPlanStats = Field(..., description='**[Required]** Gets the original of this ExecutionPlanStatsComparision.') - modified: SqlTuningTaskPlanStats = Field(..., description='**[Required]** Gets the modified of this ExecutionPlanStatsComparision.') - - -class ExternalAsm(DbmBaseModel): - """The details of an external ASM.""" - - id: str = Field(..., description='**[Required]** Gets the id of this ExternalAsm. The OCID of the external ASM.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalAsm.\nThe user-friendly name for the external ASM. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this ExternalAsm.\nThe name of the external ASM.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalAsm. The OCID of the compartment.') - external_db_system_id: str = Field(..., alias='externalDbSystemId', description='**[Required]** Gets the external_db_system_id of this ExternalAsm. The OCID of the external DB system that the ASM is a part of.') - external_connector_id: str | None = Field(None, alias='externalConnectorId', description='Gets the external_connector_id of this ExternalAsm. The OCID of the external connector.') - grid_home: str | None = Field(None, alias='gridHome', description='Gets the grid_home of this ExternalAsm.\nThe directory in which ASM is installed. This is the same directory in which Oracle Grid Infrastructure is installed.') - is_cluster: bool | None = Field(None, alias='isCluster', description='Gets the is_cluster of this ExternalAsm.\nIndicates whether the ASM is a cluster ASM or not.') - is_flex_enabled: bool | None = Field(None, alias='isFlexEnabled', description='Gets the is_flex_enabled of this ExternalAsm.\nIndicates whether Oracle Flex ASM is enabled or not.') - lifecycle_state: Literal['CREATING', 'NOT_CONNECTED', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ExternalAsm.\nThe current lifecycle state of the external ASM.\n\nAllowed values for this property are: "CREATING", "NOT_CONNECTED", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExternalAsm.\nAdditional information about the current lifecycle state.') - serviced_databases: list[ExternalAsmServicedDatabase] | None = Field(None, alias='servicedDatabases', description='Gets the serviced_databases of this ExternalAsm.\nThe list of databases that are serviced by the ASM.') - additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this ExternalAsm.\nThe additional details of the external ASM defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ExternalAsm.\nThe date and time the external ASM was created.') - time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this ExternalAsm.\nThe date and time the external ASM was last updated.') - version: str | None = Field(None, description='Gets the version of this ExternalAsm.\nThe ASM version.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalAsm. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalAsm. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalAsm. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class ExternalAsmCollection(DbmBaseModel): - """A collection of external ASMs.""" - - items: list[ExternalAsmSummary] = Field(..., description='**[Required]** Gets the items of this ExternalAsmCollection.\nAn array of external ASMs.') - - -class ExternalAsmConfiguration(DbmBaseModel): - """The configuration details of an ASM.""" - - init_parameters: list[ExternalAsmInstanceParameters] = Field(..., alias='initParameters', description='**[Required]** Gets the init_parameters of this ExternalAsmConfiguration.\nAn array of initialization parameters for the external ASM instances.') - - -class ExternalAsmConnectionInfo(DbmBaseModel): - """The details required to connect to an external ASM instance.""" - - component_type: Literal['DATABASE', 'ASM', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this ExternalDbSystemConnectionInfo.\nThe component type.\n\nAllowed values for this property are: "DATABASE", "ASM", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - connection_string: AsmConnectionString = Field(..., alias='connectionString', description='**[Required]** Gets the connection_string of this ExternalAsmConnectionInfo.') - connection_credentials: AsmConnectionCredentials = Field(..., alias='connectionCredentials', description='**[Required]** Gets the connection_credentials of this ExternalAsmConnectionInfo.') - - -class ExternalAsmDiskGroupCollection(DbmBaseModel): - """A collection of external ASM disk groups.""" - - items: list[ExternalAsmDiskGroupSummary] = Field(..., description='**[Required]** Gets the items of this ExternalAsmDiskGroupCollection.\nAn array of external ASM disk groups.') - - -class ExternalAsmDiskGroupSummary(DbmBaseModel): - """The summary of an external ASM disk group.""" - - name: str = Field(..., description='**[Required]** Gets the name of this ExternalAsmDiskGroupSummary.\nThe name of the ASM disk group.') - mounting_instance_count: int | None = Field(None, ge=0, alias='mountingInstanceCount', description='Gets the mounting_instance_count of this ExternalAsmDiskGroupSummary.\nThe number of ASM instances that have the disk group in mounted state.') - dismounting_instance_count: int | None = Field(None, ge=0, alias='dismountingInstanceCount', description='Gets the dismounting_instance_count of this ExternalAsmDiskGroupSummary.\nThe number of ASM instances that have the disk group in dismounted state.') - redundancy_type: Literal['EXTEND', 'EXTERN', 'FLEX', 'HIGH', 'NORMAL', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='redundancyType', description='Gets the redundancy_type of this ExternalAsmDiskGroupSummary.\nThe redundancy type of the disk group.\n\nAllowed values for this property are: "EXTEND", "EXTERN", "FLEX", "HIGH", "NORMAL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - is_sparse: bool | None = Field(None, alias='isSparse', description='Gets the is_sparse of this ExternalAsmDiskGroupSummary.\nIndicates whether the disk group is a sparse disk group or not.') - databases: list[str] | None = Field(None, description='Gets the databases of this ExternalAsmDiskGroupSummary.\nThe unique names of the databases using the disk group.') - total_size_in_mbs: int | None = Field(None, alias='totalSizeInMBs', description='Gets the total_size_in_mbs of this ExternalAsmDiskGroupSummary.\nThe total capacity of the disk group (in megabytes).') - used_size_in_mbs: int | None = Field(None, alias='usedSizeInMBs', description='Gets the used_size_in_mbs of this ExternalAsmDiskGroupSummary.\nThe used capacity of the disk group (in megabytes).') - used_percent: float | None = Field(None, alias='usedPercent', description='Gets the used_percent of this ExternalAsmDiskGroupSummary.\nThe percentage of used space in the disk group.') - - -class ExternalAsmInstance(DbmBaseModel): - """The details of an external ASM instance.""" - - id: str = Field(..., description='**[Required]** Gets the id of this ExternalAsmInstance. The OCID of the external ASM instance.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalAsmInstance.\nThe user-friendly name for the ASM instance. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this ExternalAsmInstance.\nThe name of the external ASM instance.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalAsmInstance. The OCID of the compartment.') - external_asm_id: str = Field(..., alias='externalAsmId', description='**[Required]** Gets the external_asm_id of this ExternalAsmInstance. The OCID of the external ASM that the ASM instance belongs to.') - external_db_system_id: str = Field(..., alias='externalDbSystemId', description='**[Required]** Gets the external_db_system_id of this ExternalAsmInstance. The OCID of the external DB system that the ASM instance is a part of.') - external_db_node_id: str | None = Field(None, alias='externalDbNodeId', description='Gets the external_db_node_id of this ExternalAsmInstance. The OCID of the external DB node on which the ASM instance is running.') - adr_home_directory: str | None = Field(None, alias='adrHomeDirectory', description='Gets the adr_home_directory of this ExternalAsmInstance.\nThe Automatic Diagnostic Repository (ADR) home directory for the ASM instance.') - host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this ExternalAsmInstance.\nThe name of the host on which the ASM instance is running.') - lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ExternalAsmInstance.\nThe current lifecycle state of the external ASM instance.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExternalAsmInstance.\nAdditional information about the current lifecycle state.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this ExternalAsmInstance.\nThe date and time the external ASM instance was created.') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this ExternalAsmInstance.\nThe date and time the external ASM instance was last updated.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalAsmInstance. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalAsmInstance. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalAsmInstance. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class ExternalAsmInstanceCollection(DbmBaseModel): - """A collection of external ASM instances.""" - - items: list[ExternalAsmInstanceSummary] = Field(..., description='**[Required]** Gets the items of this ExternalAsmInstanceCollection.\nAn array of external ASM instances.') - - -class ExternalAsmInstanceParameters(DbmBaseModel): - """The initialization parameters for an ASM instance.""" - - asm_instance_id: str = Field(..., alias='asmInstanceId', description='**[Required]** Gets the asm_instance_id of this ExternalAsmInstanceParameters. The OCID of the external ASM instance.') - asm_instance_display_name: str = Field(..., alias='asmInstanceDisplayName', description='**[Required]** Gets the asm_instance_display_name of this ExternalAsmInstanceParameters.\nThe user-friendly name for the ASM instance. The name does not have to be unique.') - disk_discovery_path: str = Field(..., alias='diskDiscoveryPath', description='**[Required]** Gets the disk_discovery_path of this ExternalAsmInstanceParameters.\nAn operating system-dependent value used to limit the set of disks considered for discovery.') - auto_mount_disk_groups: list[str] = Field(..., alias='autoMountDiskGroups', description='**[Required]** Gets the auto_mount_disk_groups of this ExternalAsmInstanceParameters.\nThe list of disk group names that an ASM instance mounts at startup or when the `ALTER DISKGROUP ALL MOUNT` statement is issued.') - rebalance_power: int = Field(..., alias='rebalancePower', description='**[Required]** Gets the rebalance_power of this ExternalAsmInstanceParameters.\nThe maximum power on an ASM instance for disk rebalancing.') - preferred_read_failure_groups: list[str] = Field(..., alias='preferredReadFailureGroups', description='**[Required]** Gets the preferred_read_failure_groups of this ExternalAsmInstanceParameters.\nThe list of failure groups that contain preferred read disks.') - - -class ExternalAsmInstanceSummary(DbmBaseModel): - """The summary of an external ASM instance.""" - - id: str = Field(..., description='**[Required]** Gets the id of this ExternalAsmInstanceSummary. The OCID of the external ASM instance.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalAsmInstanceSummary.\nThe user-friendly name for the ASM instance. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this ExternalAsmInstanceSummary.\nThe name of the external ASM instance.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalAsmInstanceSummary. The OCID of the compartment.') - external_asm_id: str = Field(..., alias='externalAsmId', description='**[Required]** Gets the external_asm_id of this ExternalAsmInstanceSummary. The OCID of the external ASM that the ASM instance belongs to.') - external_db_system_id: str = Field(..., alias='externalDbSystemId', description='**[Required]** Gets the external_db_system_id of this ExternalAsmInstanceSummary. The OCID of the external DB system that the ASM instance is a part of.') - external_db_node_id: str | None = Field(None, alias='externalDbNodeId', description='Gets the external_db_node_id of this ExternalAsmInstanceSummary. The OCID of the external DB node on which the ASM instance is running.') - adr_home_directory: str | None = Field(None, alias='adrHomeDirectory', description='Gets the adr_home_directory of this ExternalAsmInstanceSummary.\nThe Automatic Diagnostic Repository (ADR) home directory for the ASM instance.') - host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this ExternalAsmInstanceSummary.\nThe name of the host on which the ASM instance is running.') - lifecycle_state: str = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ExternalAsmInstanceSummary.\nThe current lifecycle state of the external ASM instance.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExternalAsmInstanceSummary.\nAdditional information about the current lifecycle state.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this ExternalAsmInstanceSummary.\nThe date and time the external ASM instance was created.') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this ExternalAsmInstanceSummary.\nThe date and time the external ASM instance was last updated.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalAsmInstanceSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalAsmInstanceSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalAsmInstanceSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class ExternalAsmServicedDatabase(DbmBaseModel): - """The details of a database serviced by an external ASM.""" - - disk_groups: list[str] | None = Field(None, alias='diskGroups', description='Gets the disk_groups of this ExternalAsmServicedDatabase.\nThe list of ASM disk groups used by the database.') - id: str = Field(..., description='**[Required]** Gets the id of this ExternalAsmServicedDatabase. The OCID of the external database.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalAsmServicedDatabase.\nThe user-friendly name for the database. The name does not have to be unique.') - db_unique_name: str | None = Field(None, alias='dbUniqueName', description='Gets the db_unique_name of this ExternalAsmServicedDatabase.\nThe unique name of the external database.') - compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this ExternalAsmServicedDatabase. The OCID of the compartment in which the external database resides.') - database_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseType', description='Gets the database_type of this ExternalAsmServicedDatabase.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseSubType', description='Gets the database_sub_type of this ExternalAsmServicedDatabase.\nThe subtype of Oracle Database. Indicates whether the database is a Container Database,\nPluggable Database, Non-container Database, Autonomous Database, or Autonomous Container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - is_managed: bool | None = Field(None, alias='isManaged', description='Gets the is_managed of this ExternalAsmServicedDatabase.\nIndicates whether the database is a Managed Database or not.') - - -class ExternalAsmSummary(DbmBaseModel): - """The summary of an external ASM.""" - - id: str = Field(..., description='**[Required]** Gets the id of this ExternalAsmSummary. The OCID of the external ASM.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalAsmSummary.\nThe user-friendly name for the external ASM. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this ExternalAsmSummary.\nThe name of the external ASM.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalAsmSummary. The OCID of the compartment.') - external_db_system_id: str = Field(..., alias='externalDbSystemId', description='**[Required]** Gets the external_db_system_id of this ExternalAsmSummary. The OCID of the external DB system that the ASM is a part of.') - external_connector_id: str | None = Field(None, alias='externalConnectorId', description='Gets the external_connector_id of this ExternalAsmSummary. The OCID of the external connector.') - lifecycle_state: str = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ExternalAsmSummary.\nThe current lifecycle state of the external ASM.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExternalAsmSummary.\nAdditional information about the current lifecycle state.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ExternalAsmSummary.\nThe date and time the external ASM was created.') - time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this ExternalAsmSummary.\nThe date and time the external ASM was last updated.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalAsmSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalAsmSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalAsmSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class ExternalAsmUserCollection(DbmBaseModel): - """A collection of external ASM users.""" - - items: list[ExternalAsmUserSummary] = Field(..., description='**[Required]** Gets the items of this ExternalAsmUserCollection.\nAn array of external ASM users.') - - -class ExternalAsmUserSummary(DbmBaseModel): - """The summary of an ASM user.""" - - name: str = Field(..., description='**[Required]** Gets the name of this ExternalAsmUserSummary.\nThe name of the ASM user.') - privileges: list[str] = Field(..., description='**[Required]** Gets the privileges of this ExternalAsmUserSummary.\nThe list of privileges of the ASM user.') - asm_id: str | None = Field(None, alias='asmId', description='Gets the asm_id of this ExternalAsmUserSummary. The OCID of the external ASM.') - - -class ExternalCluster(DbmBaseModel): - """The details of an external cluster.""" - - id: str = Field(..., description='**[Required]** Gets the id of this ExternalCluster. The OCID of the external cluster.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalCluster.\nThe user-friendly name for the external cluster. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this ExternalCluster.\nThe name of the external cluster.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalCluster. The OCID of the compartment.') - external_db_system_id: str = Field(..., alias='externalDbSystemId', description='**[Required]** Gets the external_db_system_id of this ExternalCluster. The OCID of the external DB system that the cluster is a part of.') - external_connector_id: str | None = Field(None, alias='externalConnectorId', description='Gets the external_connector_id of this ExternalCluster. The OCID of the external connector.') - grid_home: str | None = Field(None, alias='gridHome', description='Gets the grid_home of this ExternalCluster.\nThe directory in which Oracle Grid Infrastructure is installed.') - is_flex_cluster: bool | None = Field(None, alias='isFlexCluster', description='Gets the is_flex_cluster of this ExternalCluster.\nIndicates whether the cluster is Oracle Flex Cluster or not.') - additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this ExternalCluster.\nThe additional details of the external cluster defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') - lifecycle_state: Literal['CREATING', 'NOT_CONNECTED', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ExternalCluster.\nThe current lifecycle state of the external cluster.\n\nAllowed values for this property are: "CREATING", "NOT_CONNECTED", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExternalCluster.\nAdditional information about the current lifecycle state.') - network_configurations: list[ExternalClusterNetworkConfiguration] | None = Field(None, alias='networkConfigurations', description='Gets the network_configurations of this ExternalCluster.\nThe list of network address configurations of the external cluster.') - vip_configurations: list[ExternalClusterVipConfiguration] | None = Field(None, alias='vipConfigurations', description='Gets the vip_configurations of this ExternalCluster.\nThe list of Virtual IP (VIP) configurations of the external cluster.') - scan_configurations: list[ExternalClusterScanListenerConfiguration] | None = Field(None, alias='scanConfigurations', description='Gets the scan_configurations of this ExternalCluster.\nThe list of Single Client Access Name (SCAN) configurations of the external cluster.') - ocr_file_location: str | None = Field(None, alias='ocrFileLocation', description='Gets the ocr_file_location of this ExternalCluster.\nThe location of the Oracle Cluster Registry (OCR).') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ExternalCluster.\nThe date and time the external cluster was created.') - time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this ExternalCluster.\nThe date and time the external cluster was last updated.') - version: str | None = Field(None, description='Gets the version of this ExternalCluster.\nThe cluster version.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalCluster. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalCluster. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalCluster. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class ExternalClusterCollection(DbmBaseModel): - """A collection of external clusters.""" - - items: list[ExternalClusterSummary] = Field(..., description='**[Required]** Gets the items of this ExternalClusterCollection.\nAn array of external clusters.') - - -class ExternalClusterInstance(DbmBaseModel): - """The details of an external cluster instance.""" - - id: str = Field(..., description='**[Required]** Gets the id of this ExternalClusterInstance. The OCID of the external cluster instance.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalClusterInstance.\nThe user-friendly name for the cluster instance. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this ExternalClusterInstance.\nThe name of the external cluster instance.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalClusterInstance. The OCID of the compartment.') - external_cluster_id: str = Field(..., alias='externalClusterId', description='**[Required]** Gets the external_cluster_id of this ExternalClusterInstance. The OCID of the external cluster that the cluster instance belongs to.') - external_db_system_id: str = Field(..., alias='externalDbSystemId', description='**[Required]** Gets the external_db_system_id of this ExternalClusterInstance. The OCID of the external DB system that the cluster instance is a part of.') - external_db_node_id: str | None = Field(None, alias='externalDbNodeId', description='Gets the external_db_node_id of this ExternalClusterInstance. The OCID of the external DB node.') - external_connector_id: str | None = Field(None, alias='externalConnectorId', description='Gets the external_connector_id of this ExternalClusterInstance. The OCID of the external connector.') - host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this ExternalClusterInstance.\nThe name of the host on which the cluster instance is running.') - node_role: Literal['HUB', 'LEAF', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='nodeRole', description='Gets the node_role of this ExternalClusterInstance.\nThe role of the cluster node.\n\nAllowed values for this property are: "HUB", "LEAF", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - crs_base_directory: str | None = Field(None, alias='crsBaseDirectory', description='Gets the crs_base_directory of this ExternalClusterInstance.\nThe Oracle base location of Cluster Ready Services (CRS).') - adr_home_directory: str | None = Field(None, alias='adrHomeDirectory', description='Gets the adr_home_directory of this ExternalClusterInstance.\nThe Automatic Diagnostic Repository (ADR) home directory for the cluster instance.') - lifecycle_state: Literal['CREATING', 'NOT_CONNECTED', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ExternalClusterInstance.\nThe current lifecycle state of the external cluster instance.\n\nAllowed values for this property are: "CREATING", "NOT_CONNECTED", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExternalClusterInstance.\nAdditional information about the current lifecycle state.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this ExternalClusterInstance.\nThe date and time the external cluster instance was created.') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this ExternalClusterInstance.\nThe date and time the external cluster instance was last updated.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalClusterInstance. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalClusterInstance. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalClusterInstance. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class ExternalClusterInstanceCollection(DbmBaseModel): - """A collection of external cluster instances.""" - - items: list[ExternalClusterInstanceSummary] = Field(..., description='**[Required]** Gets the items of this ExternalClusterInstanceCollection.\nAn array of external cluster instances.') - - -class ExternalClusterInstanceSummary(DbmBaseModel): - """The summary of an external cluster instance.""" - - id: str = Field(..., description='**[Required]** Gets the id of this ExternalClusterInstanceSummary. The OCID of the external cluster instance.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalClusterInstanceSummary.\nThe user-friendly name for the cluster instance. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this ExternalClusterInstanceSummary.\nThe name of the external cluster instance.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalClusterInstanceSummary. The OCID of the compartment.') - external_cluster_id: str = Field(..., alias='externalClusterId', description='**[Required]** Gets the external_cluster_id of this ExternalClusterInstanceSummary. The OCID of the external cluster that the cluster instance belongs to.') - external_db_system_id: str = Field(..., alias='externalDbSystemId', description='**[Required]** Gets the external_db_system_id of this ExternalClusterInstanceSummary. The OCID of the external DB system that the cluster instance is a part of.') - external_db_node_id: str | None = Field(None, alias='externalDbNodeId', description='Gets the external_db_node_id of this ExternalClusterInstanceSummary. The OCID of the external DB node.') - external_connector_id: str | None = Field(None, alias='externalConnectorId', description='Gets the external_connector_id of this ExternalClusterInstanceSummary. The OCID of the external connector.') - host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this ExternalClusterInstanceSummary.\nThe name of the host on which the cluster instance is running.') - node_role: str | None = Field(None, alias='nodeRole', description='Gets the node_role of this ExternalClusterInstanceSummary.\nThe role of the cluster node.') - crs_base_directory: str | None = Field(None, alias='crsBaseDirectory', description='Gets the crs_base_directory of this ExternalClusterInstanceSummary.\nThe Oracle base location of Cluster Ready Services (CRS).') - adr_home_directory: str | None = Field(None, alias='adrHomeDirectory', description='Gets the adr_home_directory of this ExternalClusterInstanceSummary.\nThe Automatic Diagnostic Repository (ADR) home directory for the cluster instance.') - lifecycle_state: str = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ExternalClusterInstanceSummary.\nThe current lifecycle state of the external cluster instance.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExternalClusterInstanceSummary.\nAdditional information about the current lifecycle state.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this ExternalClusterInstanceSummary.\nThe date and time the external cluster instance was created.') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this ExternalClusterInstanceSummary.\nThe date and time the external cluster instance was last updated.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalClusterInstanceSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalClusterInstanceSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalClusterInstanceSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class ExternalClusterNetworkConfiguration(DbmBaseModel): - """The details of a network address configuration in an external cluster.""" - - network_number: int | None = Field(None, alias='networkNumber', description='Gets the network_number of this ExternalClusterNetworkConfiguration.\nThe network number.') - network_type: Literal['AUTOCONFIG', 'DHCP', 'STATIC', 'MIXED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='networkType', description='Gets the network_type of this ExternalClusterNetworkConfiguration.\nThe network type.\n\nAllowed values for this property are: "AUTOCONFIG", "DHCP", "STATIC", "MIXED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - subnet: str | None = Field(None, description='Gets the subnet of this ExternalClusterNetworkConfiguration.\nThe subnet for the network.') - - -class ExternalClusterScanListenerConfiguration(DbmBaseModel): - """The details of a SCAN listener in an external cluster.""" - - scan_name: str | None = Field(None, alias='scanName', description='Gets the scan_name of this ExternalClusterScanListenerConfiguration.\nThe name of the SCAN listener.') - network_number: int | None = Field(None, alias='networkNumber', description='Gets the network_number of this ExternalClusterScanListenerConfiguration.\nThe network number from which SCAN VIPs are obtained.') - scan_port: int | None = Field(None, alias='scanPort', description='Gets the scan_port of this ExternalClusterScanListenerConfiguration.\nThe port number of the SCAN listener.') - scan_protocol: Literal['TCP', 'TCPS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='scanProtocol', description='Gets the scan_protocol of this ExternalClusterScanListenerConfiguration.\nThe protocol of the SCAN listener.\n\nAllowed values for this property are: "TCP", "TCPS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class ExternalClusterSummary(DbmBaseModel): - """The summary of an external cluster.""" - - id: str = Field(..., description='**[Required]** Gets the id of this ExternalClusterSummary. The OCID of the external cluster.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalClusterSummary.\nThe user-friendly name for the external cluster. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this ExternalClusterSummary.\nThe name of the external cluster.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalClusterSummary. The OCID of the compartment.') - external_db_system_id: str = Field(..., alias='externalDbSystemId', description='**[Required]** Gets the external_db_system_id of this ExternalClusterSummary. The OCID of the external DB system that the cluster is a part of.') - external_connector_id: str | None = Field(None, alias='externalConnectorId', description='Gets the external_connector_id of this ExternalClusterSummary. The OCID of the external connector.') - lifecycle_state: str = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ExternalClusterSummary.\nThe current lifecycle state of the external cluster.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExternalClusterSummary.\nAdditional information about the current lifecycle state.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ExternalClusterSummary.\nThe date and time the external cluster was created.') - time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this ExternalClusterSummary.\nThe date and time the external cluster was last updated.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalClusterSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalClusterSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalClusterSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class ExternalClusterVipConfiguration(DbmBaseModel): - """The details of the Virtual IP (VIP) address for a node in an external cluster.""" - - node_name: str | None = Field(None, alias='nodeName', description='Gets the node_name of this ExternalClusterVipConfiguration.\nThe name of the node with the VIP.') - address: str | None = Field(None, description='Gets the address of this ExternalClusterVipConfiguration.\nThe VIP name or IP address.') - network_number: int | None = Field(None, alias='networkNumber', description='Gets the network_number of this ExternalClusterVipConfiguration.\nThe network number from which VIPs are obtained.') - - -class ExternalConnectorDetails(DbmRequestModel): - """The details of the external database connector used to connect to the external database.""" - - connector_type: Literal['PE', 'MACS', 'EXTERNAL', 'DIRECT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this ConnectorDetails.\nThe list of supported connection types:\n - PE: Private endpoint\n - MACS: Management agent\n - EXTERNAL: External database connector\n\n - DIRECT: Direct connection\n\nAllowed values for this property are: "PE", "MACS", "EXTERNAL", "DIRECT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_connector_id: str = Field(..., alias='databaseConnectorId', description='**[Required]** Gets the database_connector_id of this ExternalConnectorDetails. The OCID of the external database connector.') - - -class ExternalDatabaseCollection(DbmBaseModel): - """A collection of external databases.""" - - items: list[ExternalDatabaseSummary] = Field(..., description='**[Required]** Gets the items of this ExternalDatabaseCollection.\nAn array of external databases.') - - -class ExternalDatabaseConnectionInfo(DbmBaseModel): - """The details required to connect to an external Oracle Database. -It takes either connectionCredentials or databaseCredential. It's recommended to provide databaseCredential""" - - component_type: Literal['DATABASE', 'ASM', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this ExternalDbSystemConnectionInfo.\nThe component type.\n\nAllowed values for this property are: "DATABASE", "ASM", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - connection_string: DatabaseConnectionString = Field(..., alias='connectionString', description='**[Required]** Gets the connection_string of this ExternalDatabaseConnectionInfo.') - connection_credentials: DatabaseConnectionCredentials | None = Field(None, alias='connectionCredentials', description='Gets the connection_credentials of this ExternalDatabaseConnectionInfo.') - database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this ExternalDatabaseConnectionInfo.') - - -class ExternalDatabaseDiagnosticsAndManagementFeatureDetails(DbmRequestModel): - """The details required to enable the Diagnostics and Management feature.""" - - feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH'] = Field(..., description='**[Required]** Gets the feature of this ExternalDatabaseFeatureDetails.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH"') - connector_details: ConnectorDetails = Field(..., alias='connectorDetails', description='**[Required]** Gets the connector_details of this ExternalDatabaseFeatureDetails.') - license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE'] = Field(..., alias='licenseModel', description='**[Required]** Gets the license_model of this ExternalDatabaseDiagnosticsAndManagementFeatureDetails.\nThe Oracle license model that applies to the external database.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE"') - can_enable_all_current_pdbs: bool | None = Field(None, alias='canEnableAllCurrentPdbs', description='Gets the can_enable_all_current_pdbs of this ExternalDatabaseDiagnosticsAndManagementFeatureDetails.\nIndicates whether Diagnostics & Management should be enabled for all the current pluggable databases in the container database.') - is_auto_enable_pluggable_database: bool | None = Field(None, alias='isAutoEnablePluggableDatabase', description='Gets the is_auto_enable_pluggable_database of this ExternalDatabaseDiagnosticsAndManagementFeatureDetails.\nIndicates whether Diagnostics & Management should be enabled automatically for all the pluggable databases in the container database.') - - -class ExternalDatabaseFeatureDetails(DbmRequestModel): - """The details required to enable the specified Database Management feature.""" - - feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH'] = Field(..., description='**[Required]** Gets the feature of this ExternalDatabaseFeatureDetails.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH"') - connector_details: ConnectorDetails = Field(..., alias='connectorDetails', description='**[Required]** Gets the connector_details of this ExternalDatabaseFeatureDetails.') - - -class ExternalDatabaseInstance(DbmBaseModel): - """The details of an external database instance.""" - - instance_number: int = Field(..., alias='instanceNumber', description='**[Required]** Gets the instance_number of this ExternalDatabaseInstance.\nThe instance number of the database instance.') - instance_name: str = Field(..., alias='instanceName', description='**[Required]** Gets the instance_name of this ExternalDatabaseInstance.\nThe name of the database instance.') - host_name: str = Field(..., alias='hostName', description='**[Required]** Gets the host_name of this ExternalDatabaseInstance.\nThe name of the host machine.') - - -class ExternalDatabaseLifecycleManagementFeatureDetails(DbmRequestModel): - """The details required to enable the Database Lifecycle Management feature.""" - - feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH'] = Field(..., description='**[Required]** Gets the feature of this ExternalDatabaseFeatureDetails.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH"') - connector_details: ConnectorDetails = Field(..., alias='connectorDetails', description='**[Required]** Gets the connector_details of this ExternalDatabaseFeatureDetails.') - license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE'] = Field(..., alias='licenseModel', description='**[Required]** Gets the license_model of this ExternalDatabaseLifecycleManagementFeatureDetails.\nThe Oracle license model that applies to the external database.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE"') - - -class ExternalDatabaseSqlWatchFeatureDetails(DbmRequestModel): - """The details required to enable the SQL Watch feature.""" - - feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH'] = Field(..., description='**[Required]** Gets the feature of this ExternalDatabaseFeatureDetails.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH"') - connector_details: ConnectorDetails = Field(..., alias='connectorDetails', description='**[Required]** Gets the connector_details of this ExternalDatabaseFeatureDetails.') - - -class ExternalDatabaseSummary(DbmBaseModel): - """The summary of an external database.""" - - id: str = Field(..., description='**[Required]** Gets the id of this ExternalDatabaseSummary. The OCID of the external DB system.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalDatabaseSummary.\nThe user-friendly name for the database. The name does not have to be unique.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalDatabaseSummary. The OCID of the compartment.') - db_unique_name: str | None = Field(None, alias='dbUniqueName', description='Gets the db_unique_name of this ExternalDatabaseSummary.\nThe `DB_UNIQUE_NAME` of the external database.') - database_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseType', description='Gets the database_type of this ExternalDatabaseSummary.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseSubType', description='Gets the database_sub_type of this ExternalDatabaseSummary.\nThe subtype of Oracle Database. Indicates whether the database is a Container Database,\nPluggable Database, or Non-container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - external_container_database_id: str | None = Field(None, alias='externalContainerDatabaseId', description='Gets the external_container_database_id of this ExternalDatabaseSummary. The OCID of the parent Container Database (CDB) if this is a Pluggable Database (PDB).') - external_db_home_id: str | None = Field(None, alias='externalDbHomeId', description='Gets the external_db_home_id of this ExternalDatabaseSummary. The OCID of the external DB home.') - db_system_info: ExternalDbSystemBasicInfo | None = Field(None, alias='dbSystemInfo', description='Gets the db_system_info of this ExternalDatabaseSummary.') - db_management_config: DatabaseManagementConfig | None = Field(None, alias='dbManagementConfig', description='Gets the db_management_config of this ExternalDatabaseSummary.') - instance_details: list[ExternalDatabaseInstance] | None = Field(None, alias='instanceDetails', description='Gets the instance_details of this ExternalDatabaseSummary.\nThe list of database instances if the database is a RAC database.') - lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ExternalDatabaseSummary.\nThe current lifecycle state of the external database resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ExternalDatabaseSummary.\nThe date and time the external DB system was created.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalDatabaseSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalDatabaseSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalDatabaseSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - dbmgmt_feature_configs: list[DatabaseFeatureConfiguration] | None = Field(None, alias='dbmgmtFeatureConfigs', description='Gets the dbmgmt_feature_configs of this ExternalDatabaseSummary.\nThe list of feature configurations') - database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this ExternalDatabaseSummary.\nThe Oracle database version.') - database_platform_name: str | None = Field(None, alias='databasePlatformName', description='Gets the database_platform_name of this ExternalDatabaseSummary.\nThe operating system of database.') - - -class ExternalDatabaseSystemDiscoverySummary(DbmBaseModel): - """The summary of the DB system discovery.""" - - id: str | None = Field(None, description='Gets the id of this EntityDiscovered. The OCID of the entity discovered.') - agent_id: str | None = Field(None, alias='agentId', description='Gets the agent_id of this EntityDiscovered. The OCID of the agent used for monitoring.') - connector_id: str | None = Field(None, alias='connectorId', description='Gets the connector_id of this EntityDiscovered. The OCID of the associated connector.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this EntityDiscovered.\nThe name of the entity.') - version: str | None = Field(None, description='Gets the version of this EntityDiscovered.\nThe version of the entity.') - internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this EntityDiscovered.\nThe internal identifier of the entity.') - status: str | None = Field(None, description='Gets the status of this EntityDiscovered.\nThe status of the entity.') - discover_status: Literal['PREV_DISCOVERED', 'NEW_DISCOVERED', 'NOT_FOUND', 'DISCOVERING', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='discoverStatus', description='Gets the discover_status of this EntityDiscovered.\nThe status of the entity discovery.\n\nAllowed values for this property are: "PREV_DISCOVERED", "NEW_DISCOVERED", "NOT_FOUND", "DISCOVERING", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - discover_error_code: str | None = Field(None, alias='discoverErrorCode', description='Gets the discover_error_code of this EntityDiscovered.\nThe error code of the discovery.') - discover_error_msg: str | None = Field(None, alias='discoverErrorMsg', description='Gets the discover_error_msg of this EntityDiscovered.\nThe error message of the discovery.') - entity_type: Literal['STORAGE_SERVER_DISCOVER_SUMMARY', 'STORAGE_GRID_DISCOVER_SUMMARY', 'DATABASE_SYSTEM_DISCOVER_SUMMARY', 'INFRASTRUCTURE_DISCOVER_SUMMARY', 'INFRASTRUCTURE_DISCOVER', 'MANAGED_STORAGE_SERVER_DISCOVER_SUMMARY', 'MANAGED_STORAGE_GRID_DISCOVER_SUMMARY', 'VM_CLUSTER_DISCOVER_SUMMARY', 'MANAGED_INFRASTRUCTURE_DISCOVER_SUMMARY', 'CLOUD_INFRASTRUCTURE_DISCOVER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entityType', description='**[Required]** Gets the entity_type of this EntityDiscovered.\nThe type of discovered entities.\n\nAllowed values for this property are: "STORAGE_SERVER_DISCOVER_SUMMARY", "STORAGE_GRID_DISCOVER_SUMMARY", "DATABASE_SYSTEM_DISCOVER_SUMMARY", "INFRASTRUCTURE_DISCOVER_SUMMARY", "INFRASTRUCTURE_DISCOVER", "MANAGED_STORAGE_SERVER_DISCOVER_SUMMARY", "MANAGED_STORAGE_GRID_DISCOVER_SUMMARY", "VM_CLUSTER_DISCOVER_SUMMARY", "MANAGED_INFRASTRUCTURE_DISCOVER_SUMMARY", "CLOUD_INFRASTRUCTURE_DISCOVER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - oracle_home: str | None = Field(None, alias='oracleHome', description='Gets the oracle_home of this ExternalDatabaseSystemDiscoverySummary.\nThe Oracle home path.') - asm_connector_name: str | None = Field(None, alias='asmConnectorName', description='Gets the asm_connector_name of this ExternalDatabaseSystemDiscoverySummary.\nThe display name of the ASM connector.') - license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='licenseModel', description='Gets the license_model of this ExternalDatabaseSystemDiscoverySummary.\nThe Oracle license model that applies to the database management resources.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this ExternalDatabaseSystemDiscoverySummary. The OCID of the compartment.') - - -class ExternalDbHome(DbmBaseModel): - """The details of an external database home.""" - - id: str = Field(..., description='**[Required]** Gets the id of this ExternalDbHome. The OCID of the external DB home.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalDbHome.\nThe user-friendly name for the external DB home. The name does not have to be unique.') - component_name: str | None = Field(None, alias='componentName', description='Gets the component_name of this ExternalDbHome.\nThe name of the external DB home.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalDbHome. The OCID of the compartment.') - external_db_system_id: str = Field(..., alias='externalDbSystemId', description='**[Required]** Gets the external_db_system_id of this ExternalDbHome. The OCID of the external DB system that the DB home is a part of.') - home_directory: str | None = Field(None, alias='homeDirectory', description='Gets the home_directory of this ExternalDbHome.\nThe location of the DB home.') - additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this ExternalDbHome.\nThe additional details of the DB home defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') - lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ExternalDbHome.\nThe current lifecycle state of the external DB home.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExternalDbHome.\nAdditional information about the current lifecycle state.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ExternalDbHome.\nThe date and time the external DB home was created.') - time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this ExternalDbHome.\nThe date and time the external DB home was last updated.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalDbHome. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalDbHome. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalDbHome. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class ExternalDbHomeCollection(DbmBaseModel): - """A collection of external database homes.""" - - items: list[ExternalDbHomeSummary] = Field(..., description='**[Required]** Gets the items of this ExternalDbHomeCollection.\nAn array of external DB homes.') - - -class ExternalDbHomeSummary(DbmBaseModel): - """The summary of an external database home.""" - - id: str = Field(..., description='**[Required]** Gets the id of this ExternalDbHomeSummary. The OCID of the external DB home.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalDbHomeSummary.\nThe user-friendly name for the external DB home. The name does not have to be unique.') - component_name: str | None = Field(None, alias='componentName', description='Gets the component_name of this ExternalDbHomeSummary.\nThe name of the external DB home.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalDbHomeSummary. The OCID of the compartment.') - external_db_system_id: str = Field(..., alias='externalDbSystemId', description='**[Required]** Gets the external_db_system_id of this ExternalDbHomeSummary. The OCID of the external DB system that the DB home is a part of.') - home_directory: str | None = Field(None, alias='homeDirectory', description='Gets the home_directory of this ExternalDbHomeSummary.\nThe location of the DB home.') - lifecycle_state: str = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ExternalDbHomeSummary.\nThe current lifecycle state of the external DB home.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExternalDbHomeSummary.\nAdditional information about the current lifecycle state.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ExternalDbHomeSummary.\nThe date and time the external DB home was created.') - time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this ExternalDbHomeSummary.\nThe date and time the external DB home was last updated.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalDbHomeSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalDbHomeSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalDbHomeSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class ExternalDbNode(DbmBaseModel): - """The details of an external database node.""" - - id: str = Field(..., description='**[Required]** Gets the id of this ExternalDbNode. The OCID of the external DB node.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalDbNode.\nThe user-friendly name for the external DB node. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this ExternalDbNode.\nThe name of the external DB node.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalDbNode. The OCID of the compartment.') - external_db_system_id: str = Field(..., alias='externalDbSystemId', description='**[Required]** Gets the external_db_system_id of this ExternalDbNode. The OCID of the external DB system that the DB node is a part of.') - external_connector_id: str | None = Field(None, alias='externalConnectorId', description='Gets the external_connector_id of this ExternalDbNode. The OCID of the external connector.') - host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this ExternalDbNode.\nThe host name for the DB node.') - cpu_core_count: float | None = Field(None, ge=0, alias='cpuCoreCount', description='Gets the cpu_core_count of this ExternalDbNode.\nThe number of CPU cores available on the DB node.') - memory_size_in_gbs: float | None = Field(None, alias='memorySizeInGBs', description='Gets the memory_size_in_gbs of this ExternalDbNode.\nThe total memory in gigabytes (GB) on the DB node.') - additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this ExternalDbNode.\nThe additional details of the external DB node defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') - lifecycle_state: Literal['CREATING', 'NOT_CONNECTED', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ExternalDbNode.\nThe current lifecycle state of the external DB node.\n\nAllowed values for this property are: "CREATING", "NOT_CONNECTED", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExternalDbNode.\nAdditional information about the current lifecycle state.') - domain_name: str | None = Field(None, alias='domainName', description='Gets the domain_name of this ExternalDbNode.\nName of the domain.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ExternalDbNode.\nThe date and time the external DB node was created.') - time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this ExternalDbNode.\nThe date and time the external DB node was last updated.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalDbNode. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalDbNode. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalDbNode. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class ExternalDbNodeCollection(DbmBaseModel): - """A collection of external database nodes.""" - - items: list[ExternalDbNodeSummary] = Field(..., description='**[Required]** Gets the items of this ExternalDbNodeCollection.\nAn array of external DB nodes.') - - -class ExternalDbNodeSummary(DbmBaseModel): - """The summary of an external database node.""" - - id: str = Field(..., description='**[Required]** Gets the id of this ExternalDbNodeSummary. The OCID of the external DB node.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalDbNodeSummary.\nThe user-friendly name for the external DB node. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this ExternalDbNodeSummary.\nThe name of the external DB node.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalDbNodeSummary. The OCID of the compartment.') - external_db_system_id: str = Field(..., alias='externalDbSystemId', description='**[Required]** Gets the external_db_system_id of this ExternalDbNodeSummary. The OCID of the external DB system that the DB node is a part of.') - external_connector_id: str | None = Field(None, alias='externalConnectorId', description='Gets the external_connector_id of this ExternalDbNodeSummary. The OCID of the external connector.') - host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this ExternalDbNodeSummary.\nThe host name for the DB node.') - lifecycle_state: str = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ExternalDbNodeSummary.\nThe current lifecycle state of the external DB node.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExternalDbNodeSummary.\nAdditional information about the current lifecycle state.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ExternalDbNodeSummary.\nThe date and time the external DB node was created.') - time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this ExternalDbNodeSummary.\nThe date and time the external DB node was last updated.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalDbNodeSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalDbNodeSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalDbNodeSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class ExternalDbSystem(DbmBaseModel): - """The details of an external DB system.""" - - id: str = Field(..., description='**[Required]** Gets the id of this ExternalDbSystem. The OCID of the external DB system.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalDbSystem.\nThe user-friendly name for the DB system. The name does not have to be unique.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalDbSystem. The OCID of the compartment.') - db_system_discovery_id: str | None = Field(None, alias='dbSystemDiscoveryId', description='Gets the db_system_discovery_id of this ExternalDbSystem. The OCID of the DB system discovery.') - discovery_agent_id: str | None = Field(None, alias='discoveryAgentId', description='Gets the discovery_agent_id of this ExternalDbSystem. The OCID of the management agent used during the discovery of the DB system.') - is_cluster: bool | None = Field(None, alias='isCluster', description='Gets the is_cluster of this ExternalDbSystem.\nIndicates whether the DB system is a cluster DB system or not.') - home_directory: str | None = Field(None, alias='homeDirectory', description='Gets the home_directory of this ExternalDbSystem.\nThe Oracle Grid home directory in case of cluster-based DB system and\nOracle home directory in case of single instance-based DB system.') - database_management_config: ExternalDbSystemDatabaseManagementConfigDetails | None = Field(None, alias='databaseManagementConfig', description='Gets the database_management_config of this ExternalDbSystem.') - stack_monitoring_config: ExternalDbSystemStackMonitoringConfigDetails | None = Field(None, alias='stackMonitoringConfig', description='Gets the stack_monitoring_config of this ExternalDbSystem.') - lifecycle_state: Literal['CREATING', 'ACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'INACTIVE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ExternalDbSystem.\nThe current lifecycle state of the external DB system resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "UPDATING", "DELETING", "DELETED", "INACTIVE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExternalDbSystem.\nAdditional information about the current lifecycle state.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ExternalDbSystem.\nThe date and time the external DB system was created.') - time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this ExternalDbSystem.\nThe date and time the external DB system was last updated.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalDbSystem. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalDbSystem. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalDbSystem. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class ExternalDbSystemBasicInfo(DbmBaseModel): - """The basic information about an external DB system.""" - - id: str = Field(..., description='**[Required]** Gets the id of this ExternalDbSystemBasicInfo. The OCID of the external DB system.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalDbSystemBasicInfo.\nThe user-friendly name for the DB system. The name does not have to be unique.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalDbSystemBasicInfo. The OCID of the compartment.') - exadata_infra_info: ExternalExadataInfraBasicInfo | None = Field(None, alias='exadataInfraInfo', description='Gets the exadata_infra_info of this ExternalDbSystemBasicInfo.') - - -class ExternalDbSystemCollection(DbmBaseModel): - """A collection of external DB systems.""" - - items: list[ExternalDbSystemSummary] = Field(..., description='**[Required]** Gets the items of this ExternalDbSystemCollection.\nAn array of external DB systems.') - - -class ExternalDbSystemConnectionInfo(DbmBaseModel): - """The connection details required to connect to an external DB system component.""" - - component_type: Literal['DATABASE', 'ASM', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='componentType', description='**[Required]** Gets the component_type of this ExternalDbSystemConnectionInfo.\nThe component type.\n\nAllowed values for this property are: "DATABASE", "ASM", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class ExternalDbSystemConnector(DbmBaseModel): - """The details of an external DB system connector.""" - - connector_type: Literal['MACS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this ExternalDbSystemConnector.\nThe type of connector.\n\nAllowed values for this property are: "MACS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - id: str = Field(..., description='**[Required]** Gets the id of this ExternalDbSystemConnector. The OCID of the external DB system connector.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalDbSystemConnector.\nThe user-friendly name for the external connector. The name does not have to be unique.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalDbSystemConnector. The OCID of the compartment.') - external_db_system_id: str = Field(..., alias='externalDbSystemId', description='**[Required]** Gets the external_db_system_id of this ExternalDbSystemConnector. The OCID of the external DB system that the connector is a part of.') - connection_status: str | None = Field(None, alias='connectionStatus', description='Gets the connection_status of this ExternalDbSystemConnector.\nThe status of connectivity to the external DB system component.') - connection_failure_message: str | None = Field(None, alias='connectionFailureMessage', description='Gets the connection_failure_message of this ExternalDbSystemConnector.\nThe error message indicating the reason for connection failure or `null` if\nthe connection was successful.') - lifecycle_state: Literal['CREATING', 'NOT_CONNECTED', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ExternalDbSystemConnector.\nThe current lifecycle state of the external DB system connector.\n\nAllowed values for this property are: "CREATING", "NOT_CONNECTED", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExternalDbSystemConnector.\nAdditional information about the current lifecycle state.') - time_connection_status_last_updated: datetime | None = Field(None, alias='timeConnectionStatusLastUpdated', description='Gets the time_connection_status_last_updated of this ExternalDbSystemConnector.\nThe date and time the connectionStatus of the external DB system connector was last updated.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ExternalDbSystemConnector.\nThe date and time the external DB system connector was created.') - time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this ExternalDbSystemConnector.\nThe date and time the external DB system connector was last updated.') - - -class ExternalDbSystemConnectorCollection(DbmBaseModel): - """A collection of external DB system connectors.""" - - items: list[ExternalDbSystemConnectorSummary] = Field(..., description='**[Required]** Gets the items of this ExternalDbSystemConnectorCollection.\nAn array of external DB system connectors.') - - -class ExternalDbSystemConnectorSummary(DbmBaseModel): - """The summary of an external DB system connector.""" - - id: str = Field(..., description='**[Required]** Gets the id of this ExternalDbSystemConnectorSummary. The OCID of the external DB system connector.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalDbSystemConnectorSummary.\nThe user-friendly name for the external connector. The name does not have to be unique.') - connector_type: Literal['MACS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this ExternalDbSystemConnectorSummary.\nThe type of connector.\n\nAllowed values for this property are: "MACS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalDbSystemConnectorSummary. The OCID of the compartment.') - external_db_system_id: str = Field(..., alias='externalDbSystemId', description='**[Required]** Gets the external_db_system_id of this ExternalDbSystemConnectorSummary. The OCID of the external DB system that the connector is a part of.') - agent_id: str = Field(..., alias='agentId', description='**[Required]** Gets the agent_id of this ExternalDbSystemConnectorSummary. The OCID of the management agent used for the external DB system connector.') - lifecycle_state: str = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ExternalDbSystemConnectorSummary.\nThe current lifecycle state of the external DB system connector.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExternalDbSystemConnectorSummary.\nAdditional information about the current lifecycle state.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ExternalDbSystemConnectorSummary.\nThe date and time the external DB system connector was created.') - time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this ExternalDbSystemConnectorSummary.\nThe date and time the external DB system connector was last updated.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalDbSystemConnectorSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalDbSystemConnectorSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalDbSystemConnectorSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class ExternalDbSystemDatabaseManagementConfigDetails(DbmRequestModel): - """The details required to enable Database Management for an external DB system.""" - - license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='licenseModel', description='**[Required]** Gets the license_model of this ExternalDbSystemDatabaseManagementConfigDetails.\nThe Oracle license model that applies to the external database.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class ExternalDbSystemDiscovery(DbmBaseModel): - """The details of an external DB system discovery.""" - - id: str = Field(..., description='**[Required]** Gets the id of this ExternalDbSystemDiscovery. The OCID of the external DB system discovery.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalDbSystemDiscovery.\nThe user-friendly name for the DB system. The name does not have to be unique.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalDbSystemDiscovery. The OCID of the compartment.') - agent_id: str = Field(..., alias='agentId', description='**[Required]** Gets the agent_id of this ExternalDbSystemDiscovery. The OCID of the management agent used for the external DB system discovery.') - grid_home: str | None = Field(None, alias='gridHome', description='Gets the grid_home of this ExternalDbSystemDiscovery.\nThe directory in which Oracle Grid Infrastructure is installed.') - discovered_components: list[DiscoveredExternalDbSystemComponent] | None = Field(None, alias='discoveredComponents', description='Gets the discovered_components of this ExternalDbSystemDiscovery.\nThe list of DB system components that were found in the DB system discovery.') - resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this ExternalDbSystemDiscovery. The OCID of the existing OCI resource matching the discovered DB system.') - lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ExternalDbSystemDiscovery.\nThe current lifecycle state of the external DB system discovery resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExternalDbSystemDiscovery.\nAdditional information about the current lifecycle state.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ExternalDbSystemDiscovery.\nThe date and time the external DB system discovery was created.') - time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this ExternalDbSystemDiscovery.\nThe date and time the external DB system discovery was last updated.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalDbSystemDiscovery. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalDbSystemDiscovery. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalDbSystemDiscovery. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class ExternalDbSystemDiscoveryCollection(DbmBaseModel): - """A collection of external DB system discovery summaries.""" - - items: list[ExternalDbSystemDiscoverySummary] = Field(..., description='**[Required]** Gets the items of this ExternalDbSystemDiscoveryCollection.\nAn array of external DB system discoveries.') - - -class ExternalDbSystemDiscoveryConnector(DbmBaseModel): - """The connector details used to connect to the external DB system component.""" - - connector_type: Literal['MACS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this ExternalDbSystemDiscoveryConnector.\nThe type of connector.\n\nAllowed values for this property are: "MACS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalDbSystemDiscoveryConnector.\nThe user-friendly name for the external connector. The name does not have to be unique.') - connection_status: str | None = Field(None, alias='connectionStatus', description='Gets the connection_status of this ExternalDbSystemDiscoveryConnector.\nThe status of connectivity to the external DB system component.') - connection_failure_message: str | None = Field(None, alias='connectionFailureMessage', description='Gets the connection_failure_message of this ExternalDbSystemDiscoveryConnector.\nThe error message indicating the reason for connection failure or `null` if\nthe connection was successful.') - time_connection_status_last_updated: datetime | None = Field(None, alias='timeConnectionStatusLastUpdated', description='Gets the time_connection_status_last_updated of this ExternalDbSystemDiscoveryConnector.\nThe date and time the connectionStatus of the external DB system connector was last updated.') - - -class ExternalDbSystemDiscoveryMacsConnector(DbmBaseModel): - """The details of an external DB system connector that uses the -Management Agent Cloud Service (MACS) -to connect to an external DB system component.""" - - - - connector_type: Literal['MACS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this ExternalDbSystemDiscoveryConnector.\nThe type of connector.\n\nAllowed values for this property are: "MACS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalDbSystemDiscoveryConnector.\nThe user-friendly name for the external connector. The name does not have to be unique.') - connection_status: str | None = Field(None, alias='connectionStatus', description='Gets the connection_status of this ExternalDbSystemDiscoveryConnector.\nThe status of connectivity to the external DB system component.') - connection_failure_message: str | None = Field(None, alias='connectionFailureMessage', description='Gets the connection_failure_message of this ExternalDbSystemDiscoveryConnector.\nThe error message indicating the reason for connection failure or `null` if\nthe connection was successful.') - time_connection_status_last_updated: datetime | None = Field(None, alias='timeConnectionStatusLastUpdated', description='Gets the time_connection_status_last_updated of this ExternalDbSystemDiscoveryConnector.\nThe date and time the connectionStatus of the external DB system connector was last updated.') - agent_id: str = Field(..., alias='agentId', description='**[Required]** Gets the agent_id of this ExternalDbSystemDiscoveryMacsConnector. The OCID of the management agent used for the external DB system connector.') - connection_info: ExternalDbSystemConnectionInfo | None = Field(None, alias='connectionInfo', description='Gets the connection_info of this ExternalDbSystemDiscoveryMacsConnector.') - - -class ExternalDbSystemDiscoverySummary(DbmBaseModel): - """The summary of an external DB system.""" - - id: str = Field(..., description='**[Required]** Gets the id of this ExternalDbSystemDiscoverySummary. The OCID of the external DB system discovery.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalDbSystemDiscoverySummary.\nThe user-friendly name for the DB system. The name does not have to be unique.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalDbSystemDiscoverySummary. The OCID of the compartment.') - agent_id: str = Field(..., alias='agentId', description='**[Required]** Gets the agent_id of this ExternalDbSystemDiscoverySummary. The OCID of the management agent used for the external DB system discovery.') - lifecycle_state: str = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ExternalDbSystemDiscoverySummary.\nThe current lifecycle state of the external DB system discovery resource.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExternalDbSystemDiscoverySummary.\nAdditional information about the current lifecycle state.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ExternalDbSystemDiscoverySummary.\nThe date and time the external DB system discovery was created.') - time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this ExternalDbSystemDiscoverySummary.\nThe date and time the external DB system discovery was last updated.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalDbSystemDiscoverySummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalDbSystemDiscoverySummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalDbSystemDiscoverySummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class ExternalDbSystemMacsConnector(DbmBaseModel): - """The details of an external DB system connector that uses the -Management Agent Cloud Service (MACS) -to connect to an external DB system component.""" - - - - connector_type: Literal['MACS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this ExternalDbSystemConnector.\nThe type of connector.\n\nAllowed values for this property are: "MACS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - id: str = Field(..., description='**[Required]** Gets the id of this ExternalDbSystemConnector. The OCID of the external DB system connector.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalDbSystemConnector.\nThe user-friendly name for the external connector. The name does not have to be unique.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalDbSystemConnector. The OCID of the compartment.') - external_db_system_id: str = Field(..., alias='externalDbSystemId', description='**[Required]** Gets the external_db_system_id of this ExternalDbSystemConnector. The OCID of the external DB system that the connector is a part of.') - connection_status: str | None = Field(None, alias='connectionStatus', description='Gets the connection_status of this ExternalDbSystemConnector.\nThe status of connectivity to the external DB system component.') - connection_failure_message: str | None = Field(None, alias='connectionFailureMessage', description='Gets the connection_failure_message of this ExternalDbSystemConnector.\nThe error message indicating the reason for connection failure or `null` if\nthe connection was successful.') - lifecycle_state: Literal['CREATING', 'NOT_CONNECTED', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ExternalDbSystemConnector.\nThe current lifecycle state of the external DB system connector.\n\nAllowed values for this property are: "CREATING", "NOT_CONNECTED", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExternalDbSystemConnector.\nAdditional information about the current lifecycle state.') - time_connection_status_last_updated: datetime | None = Field(None, alias='timeConnectionStatusLastUpdated', description='Gets the time_connection_status_last_updated of this ExternalDbSystemConnector.\nThe date and time the connectionStatus of the external DB system connector was last updated.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ExternalDbSystemConnector.\nThe date and time the external DB system connector was created.') - time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this ExternalDbSystemConnector.\nThe date and time the external DB system connector was last updated.') - agent_id: str = Field(..., alias='agentId', description='**[Required]** Gets the agent_id of this ExternalDbSystemMacsConnector. The OCID of the management agent used for the external DB system connector.') - connection_info: ExternalDbSystemConnectionInfo | None = Field(None, alias='connectionInfo', description='Gets the connection_info of this ExternalDbSystemMacsConnector.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalDbSystemMacsConnector. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalDbSystemMacsConnector. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalDbSystemMacsConnector. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class ExternalDbSystemStackMonitoringConfigDetails(DbmRequestModel): - """The configuration details of Stack Monitoring for an external DB system.""" - - is_enabled: bool = Field(..., alias='isEnabled', description='**[Required]** Gets the is_enabled of this ExternalDbSystemStackMonitoringConfigDetails.\nThe status of the associated service.') - metadata: str | None = Field(None, description='Gets the metadata of this ExternalDbSystemStackMonitoringConfigDetails.\nThe associated service-specific inputs in JSON string format, which Database Management can identify.') - - -class ExternalDbSystemSummary(DbmBaseModel): - """The summary of an external DB system.""" - - id: str = Field(..., description='**[Required]** Gets the id of this ExternalDbSystemSummary. The OCID of the external DB system.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalDbSystemSummary.\nThe user-friendly name for the DB system. The name does not have to be unique.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalDbSystemSummary. The OCID of the compartment.') - home_directory: str | None = Field(None, alias='homeDirectory', description='Gets the home_directory of this ExternalDbSystemSummary.\nThe Oracle Grid home directory in case of cluster-based DB system and\nOracle home directory in case of single instance-based DB system.') - database_management_config: ExternalDbSystemDatabaseManagementConfigDetails | None = Field(None, alias='databaseManagementConfig', description='Gets the database_management_config of this ExternalDbSystemSummary.') - lifecycle_state: str = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ExternalDbSystemSummary.\nThe current lifecycle state of the external DB system resource.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExternalDbSystemSummary.\nAdditional information about the current lifecycle state.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ExternalDbSystemSummary.\nThe date and time the external DB system was created.') - time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this ExternalDbSystemSummary.\nThe date and time the external DB system was last updated.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalDbSystemSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalDbSystemSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalDbSystemSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class ExternalExadataDatabaseSystemSummary(DbmBaseModel): - """The DB systems of the Exadata infrastructure.""" - - id: str = Field(..., description='**[Required]** Gets the id of this DbmResource. The OCID of the Exadata resource.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DbmResource.\nThe name of the Exadata resource. English letters, numbers, "-", "_" and "." only.') - version: str | None = Field(None, description='Gets the version of this DbmResource.\nThe version of the Exadata resource.') - internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this DbmResource.\nThe internal ID of the Exadata resource.') - status: str | None = Field(None, description='Gets the status of this DbmResource.\nThe status of the Exadata resource.') - lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DbmResource.\nThe current lifecycle state of the database resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DbmResource.\nThe timestamp of the creation of the Exadata resource.') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DbmResource.\nThe timestamp of the last update of the Exadata resource.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DbmResource.\nThe details of the lifecycle state of the Exadata resource.') - additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this DbmResource.\nThe additional details of the resource defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') - resource_type: Literal['INFRASTRUCTURE_SUMMARY', 'INFRASTRUCTURE', 'STORAGE_SERVER_SUMMARY', 'STORAGE_SERVER', 'STORAGE_GRID_SUMMARY', 'STORAGE_GRID', 'STORAGE_CONNECTOR_SUMMARY', 'STORAGE_CONNECTOR', 'DATABASE_SYSTEM_SUMMARY', 'DATABASE_SUMMARY', 'VM_CLUSTER_SUMMARY', 'CLOUD_INFRASTRUCTURE_SUMMARY', 'CLOUD_INFRASTRUCTURE', 'CLOUD_STORAGE_SERVER_SUMMARY', 'CLOUD_STORAGE_SERVER', 'CLOUD_STORAGE_GRID_SUMMARY', 'CLOUD_STORAGE_GRID', 'CLOUD_STORAGE_CONNECTOR_SUMMARY', 'CLOUD_STORAGE_CONNECTOR', 'MANAGED_DATABASE_SUMMARY', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceType', description='**[Required]** Gets the resource_type of this DbmResource.\nThe type of Exadata resource.\n\nAllowed values for this property are: "INFRASTRUCTURE_SUMMARY", "INFRASTRUCTURE", "STORAGE_SERVER_SUMMARY", "STORAGE_SERVER", "STORAGE_GRID_SUMMARY", "STORAGE_GRID", "STORAGE_CONNECTOR_SUMMARY", "STORAGE_CONNECTOR", "DATABASE_SYSTEM_SUMMARY", "DATABASE_SUMMARY", "VM_CLUSTER_SUMMARY", "CLOUD_INFRASTRUCTURE_SUMMARY", "CLOUD_INFRASTRUCTURE", "CLOUD_STORAGE_SERVER_SUMMARY", "CLOUD_STORAGE_SERVER", "CLOUD_STORAGE_GRID_SUMMARY", "CLOUD_STORAGE_GRID", "CLOUD_STORAGE_CONNECTOR_SUMMARY", "CLOUD_STORAGE_CONNECTOR", "MANAGED_DATABASE_SUMMARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this ExternalExadataDatabaseSystemSummary. The OCID of the compartment.') - license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='licenseModel', description='Gets the license_model of this ExternalExadataDatabaseSystemSummary.\nThe Oracle license model that applies to the database management resources.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class ExternalExadataInfraBasicInfo(DbmBaseModel): - """The basic information about an external Exadata Infrastructure.""" - - id: str = Field(..., description='**[Required]** Gets the id of this ExternalExadataInfraBasicInfo. The OCID of the external Exadata Infrastructure.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalExadataInfraBasicInfo.\nThe user-friendly name for the Exadata Infrastructure. The name does not have to be unique.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalExadataInfraBasicInfo. The OCID of the compartment.') - - -class ExternalExadataInfrastructure(DbmBaseModel): - """The details of the Exadata infrastructure.""" - - id: str = Field(..., description='**[Required]** Gets the id of this DbmResource. The OCID of the Exadata resource.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DbmResource.\nThe name of the Exadata resource. English letters, numbers, "-", "_" and "." only.') - version: str | None = Field(None, description='Gets the version of this DbmResource.\nThe version of the Exadata resource.') - internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this DbmResource.\nThe internal ID of the Exadata resource.') - status: str | None = Field(None, description='Gets the status of this DbmResource.\nThe status of the Exadata resource.') - lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DbmResource.\nThe current lifecycle state of the database resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DbmResource.\nThe timestamp of the creation of the Exadata resource.') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DbmResource.\nThe timestamp of the last update of the Exadata resource.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DbmResource.\nThe details of the lifecycle state of the Exadata resource.') - additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this DbmResource.\nThe additional details of the resource defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') - resource_type: Literal['INFRASTRUCTURE_SUMMARY', 'INFRASTRUCTURE', 'STORAGE_SERVER_SUMMARY', 'STORAGE_SERVER', 'STORAGE_GRID_SUMMARY', 'STORAGE_GRID', 'STORAGE_CONNECTOR_SUMMARY', 'STORAGE_CONNECTOR', 'DATABASE_SYSTEM_SUMMARY', 'DATABASE_SUMMARY', 'VM_CLUSTER_SUMMARY', 'CLOUD_INFRASTRUCTURE_SUMMARY', 'CLOUD_INFRASTRUCTURE', 'CLOUD_STORAGE_SERVER_SUMMARY', 'CLOUD_STORAGE_SERVER', 'CLOUD_STORAGE_GRID_SUMMARY', 'CLOUD_STORAGE_GRID', 'CLOUD_STORAGE_CONNECTOR_SUMMARY', 'CLOUD_STORAGE_CONNECTOR', 'MANAGED_DATABASE_SUMMARY', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceType', description='**[Required]** Gets the resource_type of this DbmResource.\nThe type of Exadata resource.\n\nAllowed values for this property are: "INFRASTRUCTURE_SUMMARY", "INFRASTRUCTURE", "STORAGE_SERVER_SUMMARY", "STORAGE_SERVER", "STORAGE_GRID_SUMMARY", "STORAGE_GRID", "STORAGE_CONNECTOR_SUMMARY", "STORAGE_CONNECTOR", "DATABASE_SYSTEM_SUMMARY", "DATABASE_SUMMARY", "VM_CLUSTER_SUMMARY", "CLOUD_INFRASTRUCTURE_SUMMARY", "CLOUD_INFRASTRUCTURE", "CLOUD_STORAGE_SERVER_SUMMARY", "CLOUD_STORAGE_SERVER", "CLOUD_STORAGE_GRID_SUMMARY", "CLOUD_STORAGE_GRID", "CLOUD_STORAGE_CONNECTOR_SUMMARY", "CLOUD_STORAGE_CONNECTOR", "MANAGED_DATABASE_SUMMARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - rack_size: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='rackSize', description='Gets the rack_size of this ExternalExadataInfrastructure.\nThe rack size of the Exadata infrastructure.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this ExternalExadataInfrastructure. The OCID of the compartment.') - license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='licenseModel', description='Gets the license_model of this ExternalExadataInfrastructure.\nThe Oracle license model that applies to the database management resources.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - storage_grid: ExternalExadataStorageGridSummary | None = Field(None, alias='storageGrid', description='Gets the storage_grid of this ExternalExadataInfrastructure.') - database_systems: list[ExternalExadataDatabaseSystemSummary] | None = Field(None, alias='databaseSystems', description='Gets the database_systems of this ExternalExadataInfrastructure.\nA list of DB systems.') - database_compartments: list[str] | None = Field(None, alias='databaseCompartments', description='Gets the database_compartments of this ExternalExadataInfrastructure. The list of OCIDs] of the compartments.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalExadataInfrastructure. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalExadataInfrastructure. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalExadataInfrastructure. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class ExternalExadataInfrastructureCollection(DbmBaseModel): - """A list of the Exadata infrastructure resources.""" - - items: list[ExternalExadataInfrastructureSummary] = Field(..., description='**[Required]** Gets the items of this ExternalExadataInfrastructureCollection.\nA list of Exadata infrastructures.') - - -class ExternalExadataInfrastructureDiscovery(DbmBaseModel): - """The result of the Exadata infrastructure discovery.""" - - id: str | None = Field(None, description='Gets the id of this EntityDiscovered. The OCID of the entity discovered.') - agent_id: str | None = Field(None, alias='agentId', description='Gets the agent_id of this EntityDiscovered. The OCID of the agent used for monitoring.') - connector_id: str | None = Field(None, alias='connectorId', description='Gets the connector_id of this EntityDiscovered. The OCID of the associated connector.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this EntityDiscovered.\nThe name of the entity.') - version: str | None = Field(None, description='Gets the version of this EntityDiscovered.\nThe version of the entity.') - internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this EntityDiscovered.\nThe internal identifier of the entity.') - status: str | None = Field(None, description='Gets the status of this EntityDiscovered.\nThe status of the entity.') - discover_status: Literal['PREV_DISCOVERED', 'NEW_DISCOVERED', 'NOT_FOUND', 'DISCOVERING', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='discoverStatus', description='Gets the discover_status of this EntityDiscovered.\nThe status of the entity discovery.\n\nAllowed values for this property are: "PREV_DISCOVERED", "NEW_DISCOVERED", "NOT_FOUND", "DISCOVERING", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - discover_error_code: str | None = Field(None, alias='discoverErrorCode', description='Gets the discover_error_code of this EntityDiscovered.\nThe error code of the discovery.') - discover_error_msg: str | None = Field(None, alias='discoverErrorMsg', description='Gets the discover_error_msg of this EntityDiscovered.\nThe error message of the discovery.') - entity_type: Literal['STORAGE_SERVER_DISCOVER_SUMMARY', 'STORAGE_GRID_DISCOVER_SUMMARY', 'DATABASE_SYSTEM_DISCOVER_SUMMARY', 'INFRASTRUCTURE_DISCOVER_SUMMARY', 'INFRASTRUCTURE_DISCOVER', 'MANAGED_STORAGE_SERVER_DISCOVER_SUMMARY', 'MANAGED_STORAGE_GRID_DISCOVER_SUMMARY', 'VM_CLUSTER_DISCOVER_SUMMARY', 'MANAGED_INFRASTRUCTURE_DISCOVER_SUMMARY', 'CLOUD_INFRASTRUCTURE_DISCOVER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entityType', description='**[Required]** Gets the entity_type of this EntityDiscovered.\nThe type of discovered entities.\n\nAllowed values for this property are: "STORAGE_SERVER_DISCOVER_SUMMARY", "STORAGE_GRID_DISCOVER_SUMMARY", "DATABASE_SYSTEM_DISCOVER_SUMMARY", "INFRASTRUCTURE_DISCOVER_SUMMARY", "INFRASTRUCTURE_DISCOVER", "MANAGED_STORAGE_SERVER_DISCOVER_SUMMARY", "MANAGED_STORAGE_GRID_DISCOVER_SUMMARY", "VM_CLUSTER_DISCOVER_SUMMARY", "MANAGED_INFRASTRUCTURE_DISCOVER_SUMMARY", "CLOUD_INFRASTRUCTURE_DISCOVER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - discovery_key: str = Field(..., alias='discoveryKey', description='**[Required]** Gets the discovery_key of this ExternalExadataInfrastructureDiscovery.\nThe unique key of the discovery request.') - license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='licenseModel', description='Gets the license_model of this ExternalExadataInfrastructureDiscovery.\nThe Oracle license model that applies to the database management resources.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this ExternalExadataInfrastructureDiscovery. The OCID of the compartment.') - rack_size: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='rackSize', description='Gets the rack_size of this ExternalExadataInfrastructureDiscovery.\nThe size of the Exadata infrastructure.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - grid_home_path: str | None = Field(None, alias='gridHomePath', description='Gets the grid_home_path of this ExternalExadataInfrastructureDiscovery.\nThe Oracle home path of the Exadata infrastructure.') - db_systems: list[ExternalDatabaseSystemDiscoverySummary] | None = Field(None, alias='dbSystems', description='Gets the db_systems of this ExternalExadataInfrastructureDiscovery.\nThe list of DB systems in the Exadata infrastructure.') - storage_grid: ExternalStorageGridDiscoverySummary | None = Field(None, alias='storageGrid', description='Gets the storage_grid of this ExternalExadataInfrastructureDiscovery.') - storage_servers: list[ExternalStorageServerDiscoverySummary] | None = Field(None, alias='storageServers', description='Gets the storage_servers of this ExternalExadataInfrastructureDiscovery.\nThe list of storage servers in the Exadata infrastructure.') - - -class ExternalExadataInfrastructureDiscoverySummary(DbmBaseModel): - """The summary of the Exadata system infrastructure discovery.""" - - id: str | None = Field(None, description='Gets the id of this EntityDiscovered. The OCID of the entity discovered.') - agent_id: str | None = Field(None, alias='agentId', description='Gets the agent_id of this EntityDiscovered. The OCID of the agent used for monitoring.') - connector_id: str | None = Field(None, alias='connectorId', description='Gets the connector_id of this EntityDiscovered. The OCID of the associated connector.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this EntityDiscovered.\nThe name of the entity.') - version: str | None = Field(None, description='Gets the version of this EntityDiscovered.\nThe version of the entity.') - internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this EntityDiscovered.\nThe internal identifier of the entity.') - status: str | None = Field(None, description='Gets the status of this EntityDiscovered.\nThe status of the entity.') - discover_status: Literal['PREV_DISCOVERED', 'NEW_DISCOVERED', 'NOT_FOUND', 'DISCOVERING', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='discoverStatus', description='Gets the discover_status of this EntityDiscovered.\nThe status of the entity discovery.\n\nAllowed values for this property are: "PREV_DISCOVERED", "NEW_DISCOVERED", "NOT_FOUND", "DISCOVERING", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - discover_error_code: str | None = Field(None, alias='discoverErrorCode', description='Gets the discover_error_code of this EntityDiscovered.\nThe error code of the discovery.') - discover_error_msg: str | None = Field(None, alias='discoverErrorMsg', description='Gets the discover_error_msg of this EntityDiscovered.\nThe error message of the discovery.') - entity_type: Literal['STORAGE_SERVER_DISCOVER_SUMMARY', 'STORAGE_GRID_DISCOVER_SUMMARY', 'DATABASE_SYSTEM_DISCOVER_SUMMARY', 'INFRASTRUCTURE_DISCOVER_SUMMARY', 'INFRASTRUCTURE_DISCOVER', 'MANAGED_STORAGE_SERVER_DISCOVER_SUMMARY', 'MANAGED_STORAGE_GRID_DISCOVER_SUMMARY', 'VM_CLUSTER_DISCOVER_SUMMARY', 'MANAGED_INFRASTRUCTURE_DISCOVER_SUMMARY', 'CLOUD_INFRASTRUCTURE_DISCOVER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entityType', description='**[Required]** Gets the entity_type of this EntityDiscovered.\nThe type of discovered entities.\n\nAllowed values for this property are: "STORAGE_SERVER_DISCOVER_SUMMARY", "STORAGE_GRID_DISCOVER_SUMMARY", "DATABASE_SYSTEM_DISCOVER_SUMMARY", "INFRASTRUCTURE_DISCOVER_SUMMARY", "INFRASTRUCTURE_DISCOVER", "MANAGED_STORAGE_SERVER_DISCOVER_SUMMARY", "MANAGED_STORAGE_GRID_DISCOVER_SUMMARY", "VM_CLUSTER_DISCOVER_SUMMARY", "MANAGED_INFRASTRUCTURE_DISCOVER_SUMMARY", "CLOUD_INFRASTRUCTURE_DISCOVER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - rack_size: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='rackSize', description='Gets the rack_size of this ExternalExadataInfrastructureDiscoverySummary.\nThe size of the Exadata infrastructure.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class ExternalExadataInfrastructureSummary(DbmBaseModel): - """The Exadata infrastructure.""" - - id: str = Field(..., description='**[Required]** Gets the id of this DbmResource. The OCID of the Exadata resource.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DbmResource.\nThe name of the Exadata resource. English letters, numbers, "-", "_" and "." only.') - version: str | None = Field(None, description='Gets the version of this DbmResource.\nThe version of the Exadata resource.') - internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this DbmResource.\nThe internal ID of the Exadata resource.') - status: str | None = Field(None, description='Gets the status of this DbmResource.\nThe status of the Exadata resource.') - lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DbmResource.\nThe current lifecycle state of the database resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DbmResource.\nThe timestamp of the creation of the Exadata resource.') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DbmResource.\nThe timestamp of the last update of the Exadata resource.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DbmResource.\nThe details of the lifecycle state of the Exadata resource.') - additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this DbmResource.\nThe additional details of the resource defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') - resource_type: Literal['INFRASTRUCTURE_SUMMARY', 'INFRASTRUCTURE', 'STORAGE_SERVER_SUMMARY', 'STORAGE_SERVER', 'STORAGE_GRID_SUMMARY', 'STORAGE_GRID', 'STORAGE_CONNECTOR_SUMMARY', 'STORAGE_CONNECTOR', 'DATABASE_SYSTEM_SUMMARY', 'DATABASE_SUMMARY', 'VM_CLUSTER_SUMMARY', 'CLOUD_INFRASTRUCTURE_SUMMARY', 'CLOUD_INFRASTRUCTURE', 'CLOUD_STORAGE_SERVER_SUMMARY', 'CLOUD_STORAGE_SERVER', 'CLOUD_STORAGE_GRID_SUMMARY', 'CLOUD_STORAGE_GRID', 'CLOUD_STORAGE_CONNECTOR_SUMMARY', 'CLOUD_STORAGE_CONNECTOR', 'MANAGED_DATABASE_SUMMARY', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceType', description='**[Required]** Gets the resource_type of this DbmResource.\nThe type of Exadata resource.\n\nAllowed values for this property are: "INFRASTRUCTURE_SUMMARY", "INFRASTRUCTURE", "STORAGE_SERVER_SUMMARY", "STORAGE_SERVER", "STORAGE_GRID_SUMMARY", "STORAGE_GRID", "STORAGE_CONNECTOR_SUMMARY", "STORAGE_CONNECTOR", "DATABASE_SYSTEM_SUMMARY", "DATABASE_SUMMARY", "VM_CLUSTER_SUMMARY", "CLOUD_INFRASTRUCTURE_SUMMARY", "CLOUD_INFRASTRUCTURE", "CLOUD_STORAGE_SERVER_SUMMARY", "CLOUD_STORAGE_SERVER", "CLOUD_STORAGE_GRID_SUMMARY", "CLOUD_STORAGE_GRID", "CLOUD_STORAGE_CONNECTOR_SUMMARY", "CLOUD_STORAGE_CONNECTOR", "MANAGED_DATABASE_SUMMARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - rack_size: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='rackSize', description='Gets the rack_size of this ExternalExadataInfrastructureSummary.\nThe rack size of the Exadata infrastructure.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalExadataInfrastructureSummary. The OCID of the compartment.') - license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='licenseModel', description='Gets the license_model of this ExternalExadataInfrastructureSummary.\nThe Oracle license model that applies to the database management resources.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - grid_home_path: str | None = Field(None, alias='gridHomePath', description='Gets the grid_home_path of this ExternalExadataInfrastructureSummary.\nThe Oracle grid home path.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalExadataInfrastructureSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalExadataInfrastructureSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalExadataInfrastructureSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class ExternalExadataStorageConnector(DbmBaseModel): - """The details of the Exadata storage server connector.""" - - id: str = Field(..., description='**[Required]** Gets the id of this DbmResource. The OCID of the Exadata resource.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DbmResource.\nThe name of the Exadata resource. English letters, numbers, "-", "_" and "." only.') - version: str | None = Field(None, description='Gets the version of this DbmResource.\nThe version of the Exadata resource.') - internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this DbmResource.\nThe internal ID of the Exadata resource.') - status: str | None = Field(None, description='Gets the status of this DbmResource.\nThe status of the Exadata resource.') - lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DbmResource.\nThe current lifecycle state of the database resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DbmResource.\nThe timestamp of the creation of the Exadata resource.') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DbmResource.\nThe timestamp of the last update of the Exadata resource.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DbmResource.\nThe details of the lifecycle state of the Exadata resource.') - additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this DbmResource.\nThe additional details of the resource defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') - resource_type: Literal['INFRASTRUCTURE_SUMMARY', 'INFRASTRUCTURE', 'STORAGE_SERVER_SUMMARY', 'STORAGE_SERVER', 'STORAGE_GRID_SUMMARY', 'STORAGE_GRID', 'STORAGE_CONNECTOR_SUMMARY', 'STORAGE_CONNECTOR', 'DATABASE_SYSTEM_SUMMARY', 'DATABASE_SUMMARY', 'VM_CLUSTER_SUMMARY', 'CLOUD_INFRASTRUCTURE_SUMMARY', 'CLOUD_INFRASTRUCTURE', 'CLOUD_STORAGE_SERVER_SUMMARY', 'CLOUD_STORAGE_SERVER', 'CLOUD_STORAGE_GRID_SUMMARY', 'CLOUD_STORAGE_GRID', 'CLOUD_STORAGE_CONNECTOR_SUMMARY', 'CLOUD_STORAGE_CONNECTOR', 'MANAGED_DATABASE_SUMMARY', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceType', description='**[Required]** Gets the resource_type of this DbmResource.\nThe type of Exadata resource.\n\nAllowed values for this property are: "INFRASTRUCTURE_SUMMARY", "INFRASTRUCTURE", "STORAGE_SERVER_SUMMARY", "STORAGE_SERVER", "STORAGE_GRID_SUMMARY", "STORAGE_GRID", "STORAGE_CONNECTOR_SUMMARY", "STORAGE_CONNECTOR", "DATABASE_SYSTEM_SUMMARY", "DATABASE_SUMMARY", "VM_CLUSTER_SUMMARY", "CLOUD_INFRASTRUCTURE_SUMMARY", "CLOUD_INFRASTRUCTURE", "CLOUD_STORAGE_SERVER_SUMMARY", "CLOUD_STORAGE_SERVER", "CLOUD_STORAGE_GRID_SUMMARY", "CLOUD_STORAGE_GRID", "CLOUD_STORAGE_CONNECTOR_SUMMARY", "CLOUD_STORAGE_CONNECTOR", "MANAGED_DATABASE_SUMMARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - exadata_infrastructure_id: str | None = Field(None, alias='exadataInfrastructureId', description='Gets the exadata_infrastructure_id of this ExternalExadataStorageConnector. The OCID of the Exadata infrastructure.') - agent_id: str | None = Field(None, alias='agentId', description='Gets the agent_id of this ExternalExadataStorageConnector. The OCID of the agent for the Exadata storage server.') - connection_uri: str | None = Field(None, alias='connectionUri', description='Gets the connection_uri of this ExternalExadataStorageConnector. The unique string of the connection. For example, ".') - storage_server_id: str | None = Field(None, alias='storageServerId', description='Gets the storage_server_id of this ExternalExadataStorageConnector. The OCID of the Exadata storage server.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalExadataStorageConnector. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalExadataStorageConnector. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalExadataStorageConnector. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class ExternalExadataStorageConnectorCollection(DbmBaseModel): - """The Exadata storage server connector list.""" - - items: list[ExternalExadataStorageConnectorSummary] = Field(..., description='**[Required]** Gets the items of this ExternalExadataStorageConnectorCollection.\nA list of Exadata storage server connectors.') - - -class ExternalExadataStorageConnectorStatus(DbmBaseModel): - """The status of an Exadata storage server connector.""" - - id: str | None = Field(None, description='Gets the id of this ExternalExadataStorageConnectorStatus. The OCID of the Exadata storage server connector.') - status: Literal['SUCCEEDED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the status of this ExternalExadataStorageConnectorStatus.\nThe connection status of the connector.\n\nAllowed values for this property are: "SUCCEEDED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - error_message: str | None = Field(None, alias='errorMessage', description='Gets the error_message of this ExternalExadataStorageConnectorStatus.\nThe error message indicating the reason for failure or `null` if the connection was successful.') - - -class ExternalExadataStorageConnectorSummary(DbmBaseModel): - """The connector of the Exadata storage server.""" - - id: str = Field(..., description='**[Required]** Gets the id of this DbmResource. The OCID of the Exadata resource.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DbmResource.\nThe name of the Exadata resource. English letters, numbers, "-", "_" and "." only.') - version: str | None = Field(None, description='Gets the version of this DbmResource.\nThe version of the Exadata resource.') - internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this DbmResource.\nThe internal ID of the Exadata resource.') - status: str | None = Field(None, description='Gets the status of this DbmResource.\nThe status of the Exadata resource.') - lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DbmResource.\nThe current lifecycle state of the database resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DbmResource.\nThe timestamp of the creation of the Exadata resource.') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DbmResource.\nThe timestamp of the last update of the Exadata resource.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DbmResource.\nThe details of the lifecycle state of the Exadata resource.') - additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this DbmResource.\nThe additional details of the resource defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') - resource_type: Literal['INFRASTRUCTURE_SUMMARY', 'INFRASTRUCTURE', 'STORAGE_SERVER_SUMMARY', 'STORAGE_SERVER', 'STORAGE_GRID_SUMMARY', 'STORAGE_GRID', 'STORAGE_CONNECTOR_SUMMARY', 'STORAGE_CONNECTOR', 'DATABASE_SYSTEM_SUMMARY', 'DATABASE_SUMMARY', 'VM_CLUSTER_SUMMARY', 'CLOUD_INFRASTRUCTURE_SUMMARY', 'CLOUD_INFRASTRUCTURE', 'CLOUD_STORAGE_SERVER_SUMMARY', 'CLOUD_STORAGE_SERVER', 'CLOUD_STORAGE_GRID_SUMMARY', 'CLOUD_STORAGE_GRID', 'CLOUD_STORAGE_CONNECTOR_SUMMARY', 'CLOUD_STORAGE_CONNECTOR', 'MANAGED_DATABASE_SUMMARY', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceType', description='**[Required]** Gets the resource_type of this DbmResource.\nThe type of Exadata resource.\n\nAllowed values for this property are: "INFRASTRUCTURE_SUMMARY", "INFRASTRUCTURE", "STORAGE_SERVER_SUMMARY", "STORAGE_SERVER", "STORAGE_GRID_SUMMARY", "STORAGE_GRID", "STORAGE_CONNECTOR_SUMMARY", "STORAGE_CONNECTOR", "DATABASE_SYSTEM_SUMMARY", "DATABASE_SUMMARY", "VM_CLUSTER_SUMMARY", "CLOUD_INFRASTRUCTURE_SUMMARY", "CLOUD_INFRASTRUCTURE", "CLOUD_STORAGE_SERVER_SUMMARY", "CLOUD_STORAGE_SERVER", "CLOUD_STORAGE_GRID_SUMMARY", "CLOUD_STORAGE_GRID", "CLOUD_STORAGE_CONNECTOR_SUMMARY", "CLOUD_STORAGE_CONNECTOR", "MANAGED_DATABASE_SUMMARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - connection_uri: str | None = Field(None, alias='connectionUri', description='Gets the connection_uri of this ExternalExadataStorageConnectorSummary. The unique string of the connection. For example, ".') - storage_server_id: str | None = Field(None, alias='storageServerId', description='Gets the storage_server_id of this ExternalExadataStorageConnectorSummary. The OCID of the Exadata storage server.') - agent_id: str | None = Field(None, alias='agentId', description='Gets the agent_id of this ExternalExadataStorageConnectorSummary. The OCID of the agent for the Exadata storage server.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalExadataStorageConnectorSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalExadataStorageConnectorSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalExadataStorageConnectorSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class ExternalExadataStorageGrid(DbmBaseModel): - """The details of the Exadata storage server grid.""" - - id: str = Field(..., description='**[Required]** Gets the id of this DbmResource. The OCID of the Exadata resource.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DbmResource.\nThe name of the Exadata resource. English letters, numbers, "-", "_" and "." only.') - version: str | None = Field(None, description='Gets the version of this DbmResource.\nThe version of the Exadata resource.') - internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this DbmResource.\nThe internal ID of the Exadata resource.') - status: str | None = Field(None, description='Gets the status of this DbmResource.\nThe status of the Exadata resource.') - lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DbmResource.\nThe current lifecycle state of the database resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DbmResource.\nThe timestamp of the creation of the Exadata resource.') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DbmResource.\nThe timestamp of the last update of the Exadata resource.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DbmResource.\nThe details of the lifecycle state of the Exadata resource.') - additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this DbmResource.\nThe additional details of the resource defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') - resource_type: Literal['INFRASTRUCTURE_SUMMARY', 'INFRASTRUCTURE', 'STORAGE_SERVER_SUMMARY', 'STORAGE_SERVER', 'STORAGE_GRID_SUMMARY', 'STORAGE_GRID', 'STORAGE_CONNECTOR_SUMMARY', 'STORAGE_CONNECTOR', 'DATABASE_SYSTEM_SUMMARY', 'DATABASE_SUMMARY', 'VM_CLUSTER_SUMMARY', 'CLOUD_INFRASTRUCTURE_SUMMARY', 'CLOUD_INFRASTRUCTURE', 'CLOUD_STORAGE_SERVER_SUMMARY', 'CLOUD_STORAGE_SERVER', 'CLOUD_STORAGE_GRID_SUMMARY', 'CLOUD_STORAGE_GRID', 'CLOUD_STORAGE_CONNECTOR_SUMMARY', 'CLOUD_STORAGE_CONNECTOR', 'MANAGED_DATABASE_SUMMARY', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceType', description='**[Required]** Gets the resource_type of this DbmResource.\nThe type of Exadata resource.\n\nAllowed values for this property are: "INFRASTRUCTURE_SUMMARY", "INFRASTRUCTURE", "STORAGE_SERVER_SUMMARY", "STORAGE_SERVER", "STORAGE_GRID_SUMMARY", "STORAGE_GRID", "STORAGE_CONNECTOR_SUMMARY", "STORAGE_CONNECTOR", "DATABASE_SYSTEM_SUMMARY", "DATABASE_SUMMARY", "VM_CLUSTER_SUMMARY", "CLOUD_INFRASTRUCTURE_SUMMARY", "CLOUD_INFRASTRUCTURE", "CLOUD_STORAGE_SERVER_SUMMARY", "CLOUD_STORAGE_SERVER", "CLOUD_STORAGE_GRID_SUMMARY", "CLOUD_STORAGE_GRID", "CLOUD_STORAGE_CONNECTOR_SUMMARY", "CLOUD_STORAGE_CONNECTOR", "MANAGED_DATABASE_SUMMARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - exadata_infrastructure_id: str | None = Field(None, alias='exadataInfrastructureId', description='Gets the exadata_infrastructure_id of this ExternalExadataStorageGrid. The OCID of the Exadata infrastructure.') - server_count: float | None = Field(None, ge=0, alias='serverCount', description='Gets the server_count of this ExternalExadataStorageGrid.\nThe number of Exadata storage servers in the Exadata infrastructure.') - storage_servers: list[ExternalExadataStorageServerSummary] | None = Field(None, alias='storageServers', description='Gets the storage_servers of this ExternalExadataStorageGrid.\nA list of monitored Exadata storage servers.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalExadataStorageGrid. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalExadataStorageGrid. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalExadataStorageGrid. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class ExternalExadataStorageGridSummary(DbmBaseModel): - """The Exadata storage server grid of the Exadata infrastructure.""" - - id: str = Field(..., description='**[Required]** Gets the id of this DbmResource. The OCID of the Exadata resource.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DbmResource.\nThe name of the Exadata resource. English letters, numbers, "-", "_" and "." only.') - version: str | None = Field(None, description='Gets the version of this DbmResource.\nThe version of the Exadata resource.') - internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this DbmResource.\nThe internal ID of the Exadata resource.') - status: str | None = Field(None, description='Gets the status of this DbmResource.\nThe status of the Exadata resource.') - lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DbmResource.\nThe current lifecycle state of the database resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DbmResource.\nThe timestamp of the creation of the Exadata resource.') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DbmResource.\nThe timestamp of the last update of the Exadata resource.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DbmResource.\nThe details of the lifecycle state of the Exadata resource.') - additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this DbmResource.\nThe additional details of the resource defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') - resource_type: Literal['INFRASTRUCTURE_SUMMARY', 'INFRASTRUCTURE', 'STORAGE_SERVER_SUMMARY', 'STORAGE_SERVER', 'STORAGE_GRID_SUMMARY', 'STORAGE_GRID', 'STORAGE_CONNECTOR_SUMMARY', 'STORAGE_CONNECTOR', 'DATABASE_SYSTEM_SUMMARY', 'DATABASE_SUMMARY', 'VM_CLUSTER_SUMMARY', 'CLOUD_INFRASTRUCTURE_SUMMARY', 'CLOUD_INFRASTRUCTURE', 'CLOUD_STORAGE_SERVER_SUMMARY', 'CLOUD_STORAGE_SERVER', 'CLOUD_STORAGE_GRID_SUMMARY', 'CLOUD_STORAGE_GRID', 'CLOUD_STORAGE_CONNECTOR_SUMMARY', 'CLOUD_STORAGE_CONNECTOR', 'MANAGED_DATABASE_SUMMARY', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceType', description='**[Required]** Gets the resource_type of this DbmResource.\nThe type of Exadata resource.\n\nAllowed values for this property are: "INFRASTRUCTURE_SUMMARY", "INFRASTRUCTURE", "STORAGE_SERVER_SUMMARY", "STORAGE_SERVER", "STORAGE_GRID_SUMMARY", "STORAGE_GRID", "STORAGE_CONNECTOR_SUMMARY", "STORAGE_CONNECTOR", "DATABASE_SYSTEM_SUMMARY", "DATABASE_SUMMARY", "VM_CLUSTER_SUMMARY", "CLOUD_INFRASTRUCTURE_SUMMARY", "CLOUD_INFRASTRUCTURE", "CLOUD_STORAGE_SERVER_SUMMARY", "CLOUD_STORAGE_SERVER", "CLOUD_STORAGE_GRID_SUMMARY", "CLOUD_STORAGE_GRID", "CLOUD_STORAGE_CONNECTOR_SUMMARY", "CLOUD_STORAGE_CONNECTOR", "MANAGED_DATABASE_SUMMARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - server_count: float | None = Field(None, ge=0, alias='serverCount', description='Gets the server_count of this ExternalExadataStorageGridSummary.\nThe number of Exadata storage servers in the Exadata infrastructure.') - - -class ExternalExadataStorageServer(DbmBaseModel): - """The details of the Exadata storage server.""" - - id: str = Field(..., description='**[Required]** Gets the id of this DbmResource. The OCID of the Exadata resource.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DbmResource.\nThe name of the Exadata resource. English letters, numbers, "-", "_" and "." only.') - version: str | None = Field(None, description='Gets the version of this DbmResource.\nThe version of the Exadata resource.') - internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this DbmResource.\nThe internal ID of the Exadata resource.') - status: str | None = Field(None, description='Gets the status of this DbmResource.\nThe status of the Exadata resource.') - lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DbmResource.\nThe current lifecycle state of the database resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DbmResource.\nThe timestamp of the creation of the Exadata resource.') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DbmResource.\nThe timestamp of the last update of the Exadata resource.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DbmResource.\nThe details of the lifecycle state of the Exadata resource.') - additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this DbmResource.\nThe additional details of the resource defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') - resource_type: Literal['INFRASTRUCTURE_SUMMARY', 'INFRASTRUCTURE', 'STORAGE_SERVER_SUMMARY', 'STORAGE_SERVER', 'STORAGE_GRID_SUMMARY', 'STORAGE_GRID', 'STORAGE_CONNECTOR_SUMMARY', 'STORAGE_CONNECTOR', 'DATABASE_SYSTEM_SUMMARY', 'DATABASE_SUMMARY', 'VM_CLUSTER_SUMMARY', 'CLOUD_INFRASTRUCTURE_SUMMARY', 'CLOUD_INFRASTRUCTURE', 'CLOUD_STORAGE_SERVER_SUMMARY', 'CLOUD_STORAGE_SERVER', 'CLOUD_STORAGE_GRID_SUMMARY', 'CLOUD_STORAGE_GRID', 'CLOUD_STORAGE_CONNECTOR_SUMMARY', 'CLOUD_STORAGE_CONNECTOR', 'MANAGED_DATABASE_SUMMARY', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceType', description='**[Required]** Gets the resource_type of this DbmResource.\nThe type of Exadata resource.\n\nAllowed values for this property are: "INFRASTRUCTURE_SUMMARY", "INFRASTRUCTURE", "STORAGE_SERVER_SUMMARY", "STORAGE_SERVER", "STORAGE_GRID_SUMMARY", "STORAGE_GRID", "STORAGE_CONNECTOR_SUMMARY", "STORAGE_CONNECTOR", "DATABASE_SYSTEM_SUMMARY", "DATABASE_SUMMARY", "VM_CLUSTER_SUMMARY", "CLOUD_INFRASTRUCTURE_SUMMARY", "CLOUD_INFRASTRUCTURE", "CLOUD_STORAGE_SERVER_SUMMARY", "CLOUD_STORAGE_SERVER", "CLOUD_STORAGE_GRID_SUMMARY", "CLOUD_STORAGE_GRID", "CLOUD_STORAGE_CONNECTOR_SUMMARY", "CLOUD_STORAGE_CONNECTOR", "MANAGED_DATABASE_SUMMARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - exadata_infrastructure_id: str | None = Field(None, alias='exadataInfrastructureId', description='Gets the exadata_infrastructure_id of this ExternalExadataStorageServer. The OCID of the Exadata infrastructure.') - storage_grid_id: str | None = Field(None, alias='storageGridId', description='Gets the storage_grid_id of this ExternalExadataStorageServer. The OCID of the Exadata storage server grid.') - make_model: str | None = Field(None, alias='makeModel', description='Gets the make_model of this ExternalExadataStorageServer.\nThe make model of the Exadata storage server.') - ip_address: str | None = Field(None, alias='ipAddress', description='Gets the ip_address of this ExternalExadataStorageServer.\nThe IP address of the Exadata storage server.') - cpu_count: float | None = Field(None, ge=0, alias='cpuCount', description='Gets the cpu_count of this ExternalExadataStorageServer.\nThe CPU count of the Exadata storage server.') - memory_gb: float | None = Field(None, alias='memoryGB', description='Gets the memory_gb of this ExternalExadataStorageServer.\nThe Exadata storage server memory size in GB.') - max_hard_disk_iops: int | None = Field(None, alias='maxHardDiskIOPS', description='Gets the max_hard_disk_iops of this ExternalExadataStorageServer.\nThe maximum hard disk IO operations per second of the Exadata storage server.') - max_hard_disk_throughput: int | None = Field(None, alias='maxHardDiskThroughput', description='Gets the max_hard_disk_throughput of this ExternalExadataStorageServer.\nThe maximum hard disk IO throughput in MB/s of the Exadata storage server.') - max_flash_disk_iops: int | None = Field(None, alias='maxFlashDiskIOPS', description='Gets the max_flash_disk_iops of this ExternalExadataStorageServer.\nThe maximum flash disk IO operations per second of the Exadata storage server.') - max_flash_disk_throughput: int | None = Field(None, alias='maxFlashDiskThroughput', description='Gets the max_flash_disk_throughput of this ExternalExadataStorageServer.\nThe maximum flash disk IO throughput in MB/s of the Exadata storage server.') - connector: ExternalExadataStorageConnectorSummary | None = Field(None, description='Gets the connector of this ExternalExadataStorageServer.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalExadataStorageServer. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalExadataStorageServer. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalExadataStorageServer. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class ExternalExadataStorageServerCollection(DbmBaseModel): - """The Exadata storage server list.""" - - items: list[ExternalExadataStorageServerSummary] = Field(..., description='**[Required]** Gets the items of this ExternalExadataStorageServerCollection.\nA list of Exadata storage servers.') - - -class ExternalExadataStorageServerSummary(DbmBaseModel): - """The Exadata storage server of the Exadata infrastructure.""" - - id: str = Field(..., description='**[Required]** Gets the id of this DbmResource. The OCID of the Exadata resource.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this DbmResource.\nThe name of the Exadata resource. English letters, numbers, "-", "_" and "." only.') - version: str | None = Field(None, description='Gets the version of this DbmResource.\nThe version of the Exadata resource.') - internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this DbmResource.\nThe internal ID of the Exadata resource.') - status: str | None = Field(None, description='Gets the status of this DbmResource.\nThe status of the Exadata resource.') - lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DbmResource.\nThe current lifecycle state of the database resource.\n\nAllowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DbmResource.\nThe timestamp of the creation of the Exadata resource.') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DbmResource.\nThe timestamp of the last update of the Exadata resource.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DbmResource.\nThe details of the lifecycle state of the Exadata resource.') - additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this DbmResource.\nThe additional details of the resource defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') - resource_type: Literal['INFRASTRUCTURE_SUMMARY', 'INFRASTRUCTURE', 'STORAGE_SERVER_SUMMARY', 'STORAGE_SERVER', 'STORAGE_GRID_SUMMARY', 'STORAGE_GRID', 'STORAGE_CONNECTOR_SUMMARY', 'STORAGE_CONNECTOR', 'DATABASE_SYSTEM_SUMMARY', 'DATABASE_SUMMARY', 'VM_CLUSTER_SUMMARY', 'CLOUD_INFRASTRUCTURE_SUMMARY', 'CLOUD_INFRASTRUCTURE', 'CLOUD_STORAGE_SERVER_SUMMARY', 'CLOUD_STORAGE_SERVER', 'CLOUD_STORAGE_GRID_SUMMARY', 'CLOUD_STORAGE_GRID', 'CLOUD_STORAGE_CONNECTOR_SUMMARY', 'CLOUD_STORAGE_CONNECTOR', 'MANAGED_DATABASE_SUMMARY', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceType', description='**[Required]** Gets the resource_type of this DbmResource.\nThe type of Exadata resource.\n\nAllowed values for this property are: "INFRASTRUCTURE_SUMMARY", "INFRASTRUCTURE", "STORAGE_SERVER_SUMMARY", "STORAGE_SERVER", "STORAGE_GRID_SUMMARY", "STORAGE_GRID", "STORAGE_CONNECTOR_SUMMARY", "STORAGE_CONNECTOR", "DATABASE_SYSTEM_SUMMARY", "DATABASE_SUMMARY", "VM_CLUSTER_SUMMARY", "CLOUD_INFRASTRUCTURE_SUMMARY", "CLOUD_INFRASTRUCTURE", "CLOUD_STORAGE_SERVER_SUMMARY", "CLOUD_STORAGE_SERVER", "CLOUD_STORAGE_GRID_SUMMARY", "CLOUD_STORAGE_GRID", "CLOUD_STORAGE_CONNECTOR_SUMMARY", "CLOUD_STORAGE_CONNECTOR", "MANAGED_DATABASE_SUMMARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - make_model: str | None = Field(None, alias='makeModel', description='Gets the make_model of this ExternalExadataStorageServerSummary.\nThe make model of the Exadata storage server.') - ip_address: str | None = Field(None, alias='ipAddress', description='Gets the ip_address of this ExternalExadataStorageServerSummary.\nThe IP address of the Exadata storage server.') - cpu_count: float | None = Field(None, ge=0, alias='cpuCount', description='Gets the cpu_count of this ExternalExadataStorageServerSummary.\nThe CPU count of the Exadata storage server.') - memory_gb: float | None = Field(None, alias='memoryGB', description='Gets the memory_gb of this ExternalExadataStorageServerSummary.\nThe Exadata storage server memory size in GB.') - max_hard_disk_iops: int | None = Field(None, alias='maxHardDiskIOPS', description='Gets the max_hard_disk_iops of this ExternalExadataStorageServerSummary.\nThe maximum hard disk IO operations per second of the Exadata storage server.') - max_hard_disk_throughput: int | None = Field(None, alias='maxHardDiskThroughput', description='Gets the max_hard_disk_throughput of this ExternalExadataStorageServerSummary.\nThe maximum hard disk IO throughput in MB/s of the Exadata storage server.') - max_flash_disk_iops: int | None = Field(None, alias='maxFlashDiskIOPS', description='Gets the max_flash_disk_iops of this ExternalExadataStorageServerSummary.\nThe maximum flash disk IO operations per second of the Exadata storage server.') - max_flash_disk_throughput: int | None = Field(None, alias='maxFlashDiskThroughput', description='Gets the max_flash_disk_throughput of this ExternalExadataStorageServerSummary.\nThe maximum flash disk IO throughput in MB/s of the Exadata storage server.') - connector_id: str | None = Field(None, alias='connectorId', description='Gets the connector_id of this ExternalExadataStorageServerSummary. The OCID of the connector.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalExadataStorageServerSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalExadataStorageServerSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalExadataStorageServerSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class ExternalListener(DbmBaseModel): - """The details of an external listener.""" - - id: str = Field(..., description='**[Required]** Gets the id of this ExternalListener. The OCID of the external listener.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalListener.\nThe user-friendly name for the external listener. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this ExternalListener.\nThe name of the external listener.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalListener. The OCID of the compartment.') - external_db_system_id: str = Field(..., alias='externalDbSystemId', description='**[Required]** Gets the external_db_system_id of this ExternalListener. The OCID of the external DB system that the listener is a part of.') - external_connector_id: str | None = Field(None, alias='externalConnectorId', description='Gets the external_connector_id of this ExternalListener. The OCID of the external connector.') - external_db_node_id: str | None = Field(None, alias='externalDbNodeId', description='Gets the external_db_node_id of this ExternalListener. The OCID of the external DB node.') - external_db_home_id: str | None = Field(None, alias='externalDbHomeId', description='Gets the external_db_home_id of this ExternalListener. The OCID of the external DB home.') - listener_alias: str | None = Field(None, alias='listenerAlias', description='Gets the listener_alias of this ExternalListener.\nThe listener alias.') - listener_type: Literal['ASM', 'LOCAL', 'SCAN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='listenerType', description='Gets the listener_type of this ExternalListener.\nThe type of listener.\n\nAllowed values for this property are: "ASM", "LOCAL", "SCAN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this ExternalListener.\nThe additional details of the external listener defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') - lifecycle_state: Literal['CREATING', 'NOT_CONNECTED', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ExternalListener.\nThe current lifecycle state of the external listener.\n\nAllowed values for this property are: "CREATING", "NOT_CONNECTED", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExternalListener.\nAdditional information about the current lifecycle state.') - listener_ora_location: str | None = Field(None, alias='listenerOraLocation', description='Gets the listener_ora_location of this ExternalListener.\nThe location of the listener configuration file listener.ora.') - oracle_home: str | None = Field(None, alias='oracleHome', description='Gets the oracle_home of this ExternalListener.\nThe Oracle home location of the listener.') - host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this ExternalListener.\nThe name of the host on which the external listener is running.') - adr_home_directory: str | None = Field(None, alias='adrHomeDirectory', description='Gets the adr_home_directory of this ExternalListener.\nThe directory that stores tracing and logging incidents when Automatic Diagnostic Repository (ADR) is enabled.') - log_directory: str | None = Field(None, alias='logDirectory', description='Gets the log_directory of this ExternalListener.\nThe destination directory of the listener log file.') - trace_directory: str | None = Field(None, alias='traceDirectory', description='Gets the trace_directory of this ExternalListener.\nThe destination directory of the listener trace file.') - version: str | None = Field(None, description='Gets the version of this ExternalListener.\nThe listener version.') - endpoints: list[ExternalListenerEndpoint] | None = Field(None, description='Gets the endpoints of this ExternalListener.\nThe list of protocol addresses the listener is configured to listen on.') - serviced_databases: list[ExternalListenerServicedDatabase] | None = Field(None, alias='servicedDatabases', description='Gets the serviced_databases of this ExternalListener.\nThe list of databases that are serviced by the listener.') - serviced_asms: list[ExternalServicedAsm] | None = Field(None, alias='servicedAsms', description='Gets the serviced_asms of this ExternalListener.\nThe list of ASMs that are serviced by the listener.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ExternalListener.\nThe date and time the external listener was created.') - time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this ExternalListener.\nThe date and time the external listener was last updated.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalListener. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalListener. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalListener. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class ExternalListenerCollection(DbmBaseModel): - """A collection of external listeners.""" - - items: list[ExternalListenerSummary] = Field(..., description='**[Required]** Gets the items of this ExternalListenerCollection.\nAn array of external listeners.') - - -class ExternalListenerEndpoint(DbmBaseModel): - """The protocol address that an external listener is configured to listen on.""" - - protocol: Literal['IPC', 'TCP', 'TCPS', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the protocol of this ExternalListenerEndpoint.\nThe listener protocol.\n\nAllowed values for this property are: "IPC", "TCP", "TCPS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - services: list[str] | None = Field(None, description='Gets the services of this ExternalListenerEndpoint.\nThe list of services registered with the listener.') - - -class ExternalListenerIpcEndpoint(DbmBaseModel): - """An `IPC`-based protocol address.""" - - protocol: Literal['IPC', 'TCP', 'TCPS', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the protocol of this ExternalListenerEndpoint.\nThe listener protocol.\n\nAllowed values for this property are: "IPC", "TCP", "TCPS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - services: list[str] | None = Field(None, description='Gets the services of this ExternalListenerEndpoint.\nThe list of services registered with the listener.') - key: str = Field(..., description='**[Required]** Gets the key of this ExternalListenerIpcEndpoint.\nThe unique name of the service.') - - -class ExternalListenerServiceCollection(DbmBaseModel): - """A collection of external listener services.""" - - items: list[ExternalListenerServiceSummary] = Field(..., description='**[Required]** Gets the items of this ExternalListenerServiceCollection.\nAn array of external listener services.') - - -class ExternalListenerServiceSummary(DbmBaseModel): - """The summary of a service registered with an external listener.""" - - name: str = Field(..., description='**[Required]** Gets the name of this ExternalListenerServiceSummary.\nThe name of the service.') - listener_id: str | None = Field(None, alias='listenerId', description='Gets the listener_id of this ExternalListenerServiceSummary. The OCID of the external listener.') - managed_database_id: str | None = Field(None, alias='managedDatabaseId', description='Gets the managed_database_id of this ExternalListenerServiceSummary. The OCID of the Managed Database.') - - -class ExternalListenerServicedDatabase(DbmBaseModel): - """The details of a database serviced by an external listener.""" - - id: str = Field(..., description='**[Required]** Gets the id of this ExternalListenerServicedDatabase. The OCID of the external database.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalListenerServicedDatabase.\nThe user-friendly name for the database. The name does not have to be unique.') - db_unique_name: str | None = Field(None, alias='dbUniqueName', description='Gets the db_unique_name of this ExternalListenerServicedDatabase.\nThe unique name of the external database.') - compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this ExternalListenerServicedDatabase. The OCID of the compartment in which the external database resides.') - database_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseType', description='Gets the database_type of this ExternalListenerServicedDatabase.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseSubType', description='Gets the database_sub_type of this ExternalListenerServicedDatabase.\nThe subtype of Oracle Database. Indicates whether the database is a Container Database,\nPluggable Database, Non-container Database, Autonomous Database, or Autonomous Container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - is_managed: bool | None = Field(None, alias='isManaged', description='Gets the is_managed of this ExternalListenerServicedDatabase.\nIndicates whether the database is a Managed Database or not.') - - -class ExternalListenerSummary(DbmBaseModel): - """The summary of an external listener.""" - - id: str = Field(..., description='**[Required]** Gets the id of this ExternalListenerSummary. The OCID of the external listener.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalListenerSummary.\nThe user-friendly name for the external listener. The name does not have to be unique.') - component_name: str = Field(..., alias='componentName', description='**[Required]** Gets the component_name of this ExternalListenerSummary.\nThe name of the external listener.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalListenerSummary. The OCID of the compartment.') - external_db_system_id: str = Field(..., alias='externalDbSystemId', description='**[Required]** Gets the external_db_system_id of this ExternalListenerSummary. The OCID of the external DB system that the listener is a member of.') - external_connector_id: str | None = Field(None, alias='externalConnectorId', description='Gets the external_connector_id of this ExternalListenerSummary. The OCID of the external connector.') - external_db_node_id: str | None = Field(None, alias='externalDbNodeId', description='Gets the external_db_node_id of this ExternalListenerSummary. The OCID of the external DB node on which the listener is running.') - listener_type: str | None = Field(None, alias='listenerType', description='Gets the listener_type of this ExternalListenerSummary.\nThe type of listener.') - lifecycle_state: str = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ExternalListenerSummary.\nThe current lifecycle state of the external listener.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExternalListenerSummary.\nAdditional information about the current lifecycle state.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ExternalListenerSummary.\nThe date and time the external listener was created.') - time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this ExternalListenerSummary.\nThe date and time the external listener was last updated.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ExternalListenerSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ExternalListenerSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalListenerSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class ExternalListenerTcpEndpoint(DbmBaseModel): - """A `TCP`-based protocol address.""" - - protocol: Literal['IPC', 'TCP', 'TCPS', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the protocol of this ExternalListenerEndpoint.\nThe listener protocol.\n\nAllowed values for this property are: "IPC", "TCP", "TCPS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - services: list[str] | None = Field(None, description='Gets the services of this ExternalListenerEndpoint.\nThe list of services registered with the listener.') - host: str = Field(..., description='**[Required]** Gets the host of this ExternalListenerTcpEndpoint.\nThe host name or IP address.') - port: int = Field(..., description='**[Required]** Gets the port of this ExternalListenerTcpEndpoint.\nThe port number.') - - -class ExternalListenerTcpsEndpoint(DbmBaseModel): - """A `TCPS`-based protocol address.""" - - protocol: Literal['IPC', 'TCP', 'TCPS', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the protocol of this ExternalListenerEndpoint.\nThe listener protocol.\n\nAllowed values for this property are: "IPC", "TCP", "TCPS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - services: list[str] | None = Field(None, description='Gets the services of this ExternalListenerEndpoint.\nThe list of services registered with the listener.') - host: str = Field(..., description='**[Required]** Gets the host of this ExternalListenerTcpsEndpoint.\nThe host name or IP address.') - port: int = Field(..., description='**[Required]** Gets the port of this ExternalListenerTcpsEndpoint.\nThe port number.') - - -class ExternalMySqlDatabase(DbmBaseModel): - """External database.""" - - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalMySqlDatabase.\nOCID of compartment for the External MySQL Database.') - external_database_id: str | None = Field(None, alias='externalDatabaseId', description='Gets the external_database_id of this ExternalMySqlDatabase.\nOCID of External MySQL Database.') - db_name: str = Field(..., alias='dbName', description='**[Required]** Gets the db_name of this ExternalMySqlDatabase.\nDisplay Name of the External MySQL Database.') - management_state: Literal['ENABLED', 'DISABLED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='managementState', description='Gets the management_state of this ExternalMySqlDatabase.\nIndicates database management state.\n\nAllowed values for this property are: "ENABLED", "DISABLED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class ExternalMySqlDatabaseCollection(DbmBaseModel): - """The collection of external MySQL Databases.""" - - items: list[ExternalMySqlDatabaseSummary] = Field(..., description='**[Required]** Gets the items of this ExternalMySqlDatabaseCollection.\nThe list of external MySQL Database records.') - - -class ExternalMySqlDatabaseConnector(DbmBaseModel): - """Details of external database connector.""" - - name: str | None = Field(None, description='Gets the name of this ExternalMySqlDatabaseConnector.\nExternal MySQL Database Connector Name.') - compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this ExternalMySqlDatabaseConnector.\nOCID of compartment for the External MySQL connector.') - associated_services: str | None = Field(None, alias='associatedServices', description='Gets the associated_services of this ExternalMySqlDatabaseConnector.\nOCI Services associated with this connector.') - external_database_id: str | None = Field(None, alias='externalDatabaseId', description='Gets the external_database_id of this ExternalMySqlDatabaseConnector.\nOCID of MySQL Database resource') - id: str = Field(..., description='**[Required]** Gets the id of this ExternalMySqlDatabaseConnector.\nOCID of MySQL Database Connector.') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this ExternalMySqlDatabaseConnector.\nConnector update time.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this ExternalMySqlDatabaseConnector.\nConnector creation time.') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this ExternalMySqlDatabaseConnector.\nIndicates lifecycle state of the resource.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - source_database: str | None = Field(None, alias='sourceDatabase', description='Gets the source_database of this ExternalMySqlDatabaseConnector.\nName of MySQL Database.') - source_database_type: Literal['EXTERNAL', 'MDS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='sourceDatabaseType', description='Gets the source_database_type of this ExternalMySqlDatabaseConnector.\nType of MySQL Database.\n\nAllowed values for this property are: "EXTERNAL", "MDS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - macs_agent_id: str | None = Field(None, alias='macsAgentId', description='Gets the macs_agent_id of this ExternalMySqlDatabaseConnector.\nAgent Id of the MACS agent.') - connection_status: str | None = Field(None, alias='connectionStatus', description='Gets the connection_status of this ExternalMySqlDatabaseConnector.\nConnection Status') - time_connection_status_updated: datetime | None = Field(None, alias='timeConnectionStatusUpdated', description='Gets the time_connection_status_updated of this ExternalMySqlDatabaseConnector.\nTime when connection status was last updated.') - host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this ExternalMySqlDatabaseConnector.\nHost name for Connector.') - port: int | None = Field(None, description='Gets the port of this ExternalMySqlDatabaseConnector.\nConnector port.') - connector_type: Literal['MACS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='connectorType', description='Gets the connector_type of this ExternalMySqlDatabaseConnector.\nConnector Type.\n\nAllowed values for this property are: "MACS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - network_protocol: Literal['TCP', 'TCPS', 'SOCKETS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='networkProtocol', description='Gets the network_protocol of this ExternalMySqlDatabaseConnector.\nNetwork Protocol.\n\nAllowed values for this property are: "TCP", "TCPS", "SOCKETS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - credential_type: Literal['MYSQL_EXTERNAL_NON_SSL_CREDENTIALS', 'MYSQL_EXTERNAL_SSL_CREDENTIALS', 'MYSQL_EXTERNAL_SOCKET_CREDENTIALS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='credentialType', description='Gets the credential_type of this ExternalMySqlDatabaseConnector.\nCredential type used to connect to database.\n\nAllowed values for this property are: "MYSQL_EXTERNAL_NON_SSL_CREDENTIALS", "MYSQL_EXTERNAL_SSL_CREDENTIALS", "MYSQL_EXTERNAL_SOCKET_CREDENTIALS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - ssl_secret_id: str | None = Field(None, alias='sslSecretId', description='Gets the ssl_secret_id of this ExternalMySqlDatabaseConnector.\nOCID of the SSL secret, if TCPS with SSL is used to connect to database.') - ssl_secret_name: str | None = Field(None, alias='sslSecretName', description='Gets the ssl_secret_name of this ExternalMySqlDatabaseConnector.\nName of the SSL secret, if TCPS with SSL is used to connect to database.') - - -class ExternalMySqlDatabaseSummary(DbmBaseModel): - """External database summary record.""" - - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ExternalMySqlDatabaseSummary.\nOCID of compartment for the External MySQL Database.') - external_database_id: str | None = Field(None, alias='externalDatabaseId', description='Gets the external_database_id of this ExternalMySqlDatabaseSummary.\nOCID of External MySQL Database.') - connector_id: str | None = Field(None, alias='connectorId', description='Gets the connector_id of this ExternalMySqlDatabaseSummary.\nThe OCID of the enabled MySQL Database Connector.') - db_name: str = Field(..., alias='dbName', description='**[Required]** Gets the db_name of this ExternalMySqlDatabaseSummary.\nDisplay name of the External MySQL Database.') - deployment_type: Literal['ONPREMISE', 'MDS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='deploymentType', description='Gets the deployment_type of this ExternalMySqlDatabaseSummary.\nThe deployment type of the Mysql Database.\n\nAllowed values for this property are: "ONPREMISE", "MDS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - management_state: Literal['ENABLED', 'DISABLED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='managementState', description='Gets the management_state of this ExternalMySqlDatabaseSummary.\nIndicates database management state.\n\nAllowed values for this property are: "ENABLED", "DISABLED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this ExternalMySqlDatabaseSummary.\nIndicates lifecycle state of the resource.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExternalMySqlDatabaseSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class ExternalPluggableDatabaseDiagnosticsAndManagementFeatureDetails(DbmRequestModel): - """The details required to enable the Diagnostics and Management feature.""" - - feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH'] = Field(..., description='**[Required]** Gets the feature of this ExternalPluggableDatabaseFeatureDetails.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH"') - connector_details: ConnectorDetails = Field(..., alias='connectorDetails', description='**[Required]** Gets the connector_details of this ExternalPluggableDatabaseFeatureDetails.') - - -class ExternalPluggableDatabaseFeatureDetails(DbmRequestModel): - """The details required to enable the specified Database Management feature.""" - - feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH'] = Field(..., description='**[Required]** Gets the feature of this ExternalPluggableDatabaseFeatureDetails.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH"') - connector_details: ConnectorDetails = Field(..., alias='connectorDetails', description='**[Required]** Gets the connector_details of this ExternalPluggableDatabaseFeatureDetails.') - - -class ExternalPluggableDatabaseLifecycleManagementFeatureDetails(DbmRequestModel): - """The details required to enable the Database Lifecycle Management feature.""" - - feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH'] = Field(..., description='**[Required]** Gets the feature of this ExternalPluggableDatabaseFeatureDetails.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH"') - connector_details: ConnectorDetails = Field(..., alias='connectorDetails', description='**[Required]** Gets the connector_details of this ExternalPluggableDatabaseFeatureDetails.') - - -class ExternalPluggableDatabaseSqlWatchFeatureDetails(DbmRequestModel): - """The details required to enable the SQL watch feature.""" - - feature: Literal['DIAGNOSTICS_AND_MANAGEMENT', 'DB_LIFECYCLE_MANAGEMENT', 'SQLWATCH'] = Field(..., description='**[Required]** Gets the feature of this ExternalPluggableDatabaseFeatureDetails.\nThe name of the Database Management feature.\n\nAllowed values for this property are: "DIAGNOSTICS_AND_MANAGEMENT", "DB_LIFECYCLE_MANAGEMENT", "SQLWATCH"') - connector_details: ConnectorDetails = Field(..., alias='connectorDetails', description='**[Required]** Gets the connector_details of this ExternalPluggableDatabaseFeatureDetails.') - - -class ExternalServicedAsm(DbmBaseModel): - """The details of ASM serviced by an external listener.""" - - id: str = Field(..., description='**[Required]** Gets the id of this ExternalServicedAsm. The OCID of the external ASM.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalServicedAsm.\nThe user-friendly name for the external ASM. The name does not have to be unique.') - compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this ExternalServicedAsm. The OCID of the compartment in which the external ASM resides.') - - -class ExternalServicedDatabase(DbmBaseModel): - """The details of a database serviced by an external DB system component such as a listener or ASM.""" - - id: str = Field(..., description='**[Required]** Gets the id of this ExternalServicedDatabase. The OCID of the external database.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this ExternalServicedDatabase.\nThe user-friendly name for the database. The name does not have to be unique.') - db_unique_name: str | None = Field(None, alias='dbUniqueName', description='Gets the db_unique_name of this ExternalServicedDatabase.\nThe unique name of the external database.') - compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this ExternalServicedDatabase. The OCID of the compartment in which the external database resides.') - database_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseType', description='Gets the database_type of this ExternalServicedDatabase.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseSubType', description='Gets the database_sub_type of this ExternalServicedDatabase.\nThe subtype of Oracle Database. Indicates whether the database is a Container Database,\nPluggable Database, Non-container Database, Autonomous Database, or Autonomous Container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - is_managed: bool | None = Field(None, alias='isManaged', description='Gets the is_managed of this ExternalServicedDatabase.\nIndicates whether the database is a Managed Database or not.') - - -class ExternalStorageGridDiscoverySummary(DbmBaseModel): - """The summary of the Exadata storage server grid discovery.""" - - id: str | None = Field(None, description='Gets the id of this EntityDiscovered. The OCID of the entity discovered.') - agent_id: str | None = Field(None, alias='agentId', description='Gets the agent_id of this EntityDiscovered. The OCID of the agent used for monitoring.') - connector_id: str | None = Field(None, alias='connectorId', description='Gets the connector_id of this EntityDiscovered. The OCID of the associated connector.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this EntityDiscovered.\nThe name of the entity.') - version: str | None = Field(None, description='Gets the version of this EntityDiscovered.\nThe version of the entity.') - internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this EntityDiscovered.\nThe internal identifier of the entity.') - status: str | None = Field(None, description='Gets the status of this EntityDiscovered.\nThe status of the entity.') - discover_status: Literal['PREV_DISCOVERED', 'NEW_DISCOVERED', 'NOT_FOUND', 'DISCOVERING', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='discoverStatus', description='Gets the discover_status of this EntityDiscovered.\nThe status of the entity discovery.\n\nAllowed values for this property are: "PREV_DISCOVERED", "NEW_DISCOVERED", "NOT_FOUND", "DISCOVERING", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - discover_error_code: str | None = Field(None, alias='discoverErrorCode', description='Gets the discover_error_code of this EntityDiscovered.\nThe error code of the discovery.') - discover_error_msg: str | None = Field(None, alias='discoverErrorMsg', description='Gets the discover_error_msg of this EntityDiscovered.\nThe error message of the discovery.') - entity_type: Literal['STORAGE_SERVER_DISCOVER_SUMMARY', 'STORAGE_GRID_DISCOVER_SUMMARY', 'DATABASE_SYSTEM_DISCOVER_SUMMARY', 'INFRASTRUCTURE_DISCOVER_SUMMARY', 'INFRASTRUCTURE_DISCOVER', 'MANAGED_STORAGE_SERVER_DISCOVER_SUMMARY', 'MANAGED_STORAGE_GRID_DISCOVER_SUMMARY', 'VM_CLUSTER_DISCOVER_SUMMARY', 'MANAGED_INFRASTRUCTURE_DISCOVER_SUMMARY', 'CLOUD_INFRASTRUCTURE_DISCOVER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entityType', description='**[Required]** Gets the entity_type of this EntityDiscovered.\nThe type of discovered entities.\n\nAllowed values for this property are: "STORAGE_SERVER_DISCOVER_SUMMARY", "STORAGE_GRID_DISCOVER_SUMMARY", "DATABASE_SYSTEM_DISCOVER_SUMMARY", "INFRASTRUCTURE_DISCOVER_SUMMARY", "INFRASTRUCTURE_DISCOVER", "MANAGED_STORAGE_SERVER_DISCOVER_SUMMARY", "MANAGED_STORAGE_GRID_DISCOVER_SUMMARY", "VM_CLUSTER_DISCOVER_SUMMARY", "MANAGED_INFRASTRUCTURE_DISCOVER_SUMMARY", "CLOUD_INFRASTRUCTURE_DISCOVER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - count_of_storage_servers_discovered: int | None = Field(None, alias='countOfStorageServersDiscovered', description='Gets the count_of_storage_servers_discovered of this ExternalStorageGridDiscoverySummary.\nThe total number of Exadata storage servers discovered.') - - -class ExternalStorageServerDiscoverySummary(DbmBaseModel): - """The summary of the Exadata storage server discovery.""" - - id: str | None = Field(None, description='Gets the id of this EntityDiscovered. The OCID of the entity discovered.') - agent_id: str | None = Field(None, alias='agentId', description='Gets the agent_id of this EntityDiscovered. The OCID of the agent used for monitoring.') - connector_id: str | None = Field(None, alias='connectorId', description='Gets the connector_id of this EntityDiscovered. The OCID of the associated connector.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this EntityDiscovered.\nThe name of the entity.') - version: str | None = Field(None, description='Gets the version of this EntityDiscovered.\nThe version of the entity.') - internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this EntityDiscovered.\nThe internal identifier of the entity.') - status: str | None = Field(None, description='Gets the status of this EntityDiscovered.\nThe status of the entity.') - discover_status: Literal['PREV_DISCOVERED', 'NEW_DISCOVERED', 'NOT_FOUND', 'DISCOVERING', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='discoverStatus', description='Gets the discover_status of this EntityDiscovered.\nThe status of the entity discovery.\n\nAllowed values for this property are: "PREV_DISCOVERED", "NEW_DISCOVERED", "NOT_FOUND", "DISCOVERING", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - discover_error_code: str | None = Field(None, alias='discoverErrorCode', description='Gets the discover_error_code of this EntityDiscovered.\nThe error code of the discovery.') - discover_error_msg: str | None = Field(None, alias='discoverErrorMsg', description='Gets the discover_error_msg of this EntityDiscovered.\nThe error message of the discovery.') - entity_type: Literal['STORAGE_SERVER_DISCOVER_SUMMARY', 'STORAGE_GRID_DISCOVER_SUMMARY', 'DATABASE_SYSTEM_DISCOVER_SUMMARY', 'INFRASTRUCTURE_DISCOVER_SUMMARY', 'INFRASTRUCTURE_DISCOVER', 'MANAGED_STORAGE_SERVER_DISCOVER_SUMMARY', 'MANAGED_STORAGE_GRID_DISCOVER_SUMMARY', 'VM_CLUSTER_DISCOVER_SUMMARY', 'MANAGED_INFRASTRUCTURE_DISCOVER_SUMMARY', 'CLOUD_INFRASTRUCTURE_DISCOVER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entityType', description='**[Required]** Gets the entity_type of this EntityDiscovered.\nThe type of discovered entities.\n\nAllowed values for this property are: "STORAGE_SERVER_DISCOVER_SUMMARY", "STORAGE_GRID_DISCOVER_SUMMARY", "DATABASE_SYSTEM_DISCOVER_SUMMARY", "INFRASTRUCTURE_DISCOVER_SUMMARY", "INFRASTRUCTURE_DISCOVER", "MANAGED_STORAGE_SERVER_DISCOVER_SUMMARY", "MANAGED_STORAGE_GRID_DISCOVER_SUMMARY", "VM_CLUSTER_DISCOVER_SUMMARY", "MANAGED_INFRASTRUCTURE_DISCOVER_SUMMARY", "CLOUD_INFRASTRUCTURE_DISCOVER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - ip_address: str | None = Field(None, alias='ipAddress', description='Gets the ip_address of this ExternalStorageServerDiscoverySummary.\nThe IP address of the Exadata storage server.') - make_model: str | None = Field(None, alias='makeModel', description='Gets the make_model of this ExternalStorageServerDiscoverySummary.\nThe make model of the Exadata storage server.') - cpu_count: int | None = Field(None, ge=0, alias='cpuCount', description='Gets the cpu_count of this ExternalStorageServerDiscoverySummary.\nThe CPU count of the Exadata storage server.') - memory_gb: float | None = Field(None, alias='memoryGB', description='Gets the memory_gb of this ExternalStorageServerDiscoverySummary.\nThe memory size in GB of the Exadata storage server.') - connector_name: str | None = Field(None, alias='connectorName', description='Gets the connector_name of this ExternalStorageServerDiscoverySummary.\nThe name of the Exadata storage server connector in case of rediscovery.') - - -class FailedConnectionsAggregateMetrics(DbmBaseModel): - """The failed connection metrics for Autonomous Databases on Shared Exadata Infrastructure.""" - - failed_connections: MetricDataPoint | None = Field(None, alias='failedConnections', description='Gets the failed_connections of this FailedConnectionsAggregateMetrics.') - - -class FetchSqlTuningSetDetails(DbmRequestModel): - """The details required to fetch the Sql tuning set details. -It takes either credentialDetails or databaseCredential. It's recommended to provide databaseCredential""" - - credential_details: SqlTuningSetAdminCredentialDetails | None = Field(None, alias='credentialDetails', description='Gets the credential_details of this FetchSqlTuningSetDetails.') - database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this FetchSqlTuningSetDetails.') - owner: str = Field(..., description='**[Required]** Gets the owner of this FetchSqlTuningSetDetails.\nThe owner of the Sql tuning set.') - name: str = Field(..., description='**[Required]** Gets the name of this FetchSqlTuningSetDetails.\nThe name of the Sql tuning set.') - basic_filter: str | None = Field(None, alias='basicFilter', description='Gets the basic_filter of this FetchSqlTuningSetDetails. Specifies the Sql predicate to filter the Sql from the Sql tuning set defined on attributes of the SQLSET_ROW. User could use any combination of the following columns with appropriate values as Sql predicate Refer to the documentation.') - recursive_sql: Literal['HAS_RECURSIVE_SQL', 'NO_RECURSIVE_SQL'] | None = Field(None, alias='recursiveSql', description='Gets the recursive_sql of this FetchSqlTuningSetDetails.\nSpecifies that the filter must include recursive Sql in the Sql tuning set.\n\nAllowed values for this property are: "HAS_RECURSIVE_SQL", "NO_RECURSIVE_SQL"') - result_percentage: float | None = Field(None, alias='resultPercentage', description='Gets the result_percentage of this FetchSqlTuningSetDetails.\nSpecifies a filter that picks the top n% according to the supplied ranking measure.\nNote that this parameter applies only if one ranking measure is supplied.') - result_limit: int | None = Field(None, alias='resultLimit', description='Gets the result_limit of this FetchSqlTuningSetDetails.\nThe top limit Sql from the filtered source, ranked by the ranking measure.') - ranking_measure1: Literal['ELAPSED_TIME', 'CPU_TIME', 'OPTIMIZER_COST', 'BUFFER_GETS', 'DISK_READS', 'DIRECT_WRITES'] | None = Field(None, alias='rankingMeasure1', description='Gets the ranking_measure1 of this FetchSqlTuningSetDetails.\nSpecifies an ORDER BY clause on the selected Sql. User can specify upto three ranking measures.\n\nAllowed values for this property are: "ELAPSED_TIME", "CPU_TIME", "OPTIMIZER_COST", "BUFFER_GETS", "DISK_READS", "DIRECT_WRITES"') - ranking_measure2: Literal['ELAPSED_TIME', 'CPU_TIME', 'OPTIMIZER_COST', 'BUFFER_GETS', 'DISK_READS', 'DIRECT_WRITES'] | None = Field(None, alias='rankingMeasure2', description='Gets the ranking_measure2 of this FetchSqlTuningSetDetails.\nSpecifies an ORDER BY clause on the selected Sql. User can specify upto three ranking measures.\n\nAllowed values for this property are: "ELAPSED_TIME", "CPU_TIME", "OPTIMIZER_COST", "BUFFER_GETS", "DISK_READS", "DIRECT_WRITES"') - ranking_measure3: Literal['ELAPSED_TIME', 'CPU_TIME', 'OPTIMIZER_COST', 'BUFFER_GETS', 'DISK_READS', 'DIRECT_WRITES'] | None = Field(None, alias='rankingMeasure3', description='Gets the ranking_measure3 of this FetchSqlTuningSetDetails.\nSpecifies an ORDER BY clause on the selected Sql. User can specify upto three ranking measures.\n\nAllowed values for this property are: "ELAPSED_TIME", "CPU_TIME", "OPTIMIZER_COST", "BUFFER_GETS", "DISK_READS", "DIRECT_WRITES"') - - -class FindingSchemaOrOperation(DbmBaseModel): - """The findings of the Optimizer Statistics Advisor.""" - - operations: list[str] | None = Field(None, description='Gets the operations of this FindingSchemaOrOperation.\nThe list of operation details.') - schemas: list[SchemaDefinition] | None = Field(None, description='Gets the schemas of this FindingSchemaOrOperation.\nThe names of the impacted database schemas and their objects.') - - -class FleetMetricDefinition(DbmBaseModel): - """The database metric details.""" - - metric_name: str | None = Field(None, alias='metricName', description='Gets the metric_name of this FleetMetricDefinition.\nThe name of the metric.') - baseline_value: float | None = Field(None, alias='baselineValue', description='Gets the baseline_value of this FleetMetricDefinition.\nThe baseline value of the metric.') - target_value: float | None = Field(None, alias='targetValue', description='Gets the target_value of this FleetMetricDefinition.\nThe target value of the metric.') - unit: str | None = Field(None, description='Gets the unit of this FleetMetricDefinition.\nThe unit of the value.') - timestamp: datetime | None = Field(None, description='Gets the timestamp of this FleetMetricDefinition.\nThe data point date and time in UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".') - percentage_change: float | None = Field(None, alias='percentageChange', description='Gets the percentage_change of this FleetMetricDefinition.\nThe percentage change in the metric aggregated value compared to the baseline value.') - dimensions: list[MetricDimensionDefinition] | None = Field(None, description='Gets the dimensions of this FleetMetricDefinition.\nThe dimensions of the metric.') - - -class FleetMetricSummaryDefinition(DbmBaseModel): - """A summary of the fleet metrics, which provides the metric aggregated value of the databases in the fleet.""" - - metric_name: str | None = Field(None, alias='metricName', description='Gets the metric_name of this FleetMetricSummaryDefinition.\nThe name of the metric.') - baseline_value: float | None = Field(None, alias='baselineValue', description='Gets the baseline_value of this FleetMetricSummaryDefinition.\nThe metric aggregated value at the baseline date and time.') - target_value: float | None = Field(None, alias='targetValue', description='Gets the target_value of this FleetMetricSummaryDefinition.\nThe metric aggregated value at the target date and time.') - unit: str | None = Field(None, description='Gets the unit of this FleetMetricSummaryDefinition.\nThe unit of the value.') - percentage_change: float | None = Field(None, alias='percentageChange', description='Gets the percentage_change of this FleetMetricSummaryDefinition.\nThe percentage change in the metric aggregated value compared to the baseline value.') - dimensions: list[MetricDimensionDefinition] | None = Field(None, description='Gets the dimensions of this FleetMetricSummaryDefinition.\nThe unique dimension key and values of the baseline metric.') - - -class FleetStatusByCategory(DbmBaseModel): - """The number of databases in the fleet, grouped by database type and sub type.""" - - database_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseType', description='Gets the database_type of this FleetStatusByCategory.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseSubType', description='Gets the database_sub_type of this FleetStatusByCategory.\nThe subtype of the Oracle Database. Indicates whether the database is a Container Database,\nPluggable Database, Non-container Database, Autonomous Database, or Autonomous Container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - deployment_type: Literal['ONPREMISE', 'BM', 'VM', 'EXADATA', 'EXADATA_CC', 'AUTONOMOUS', 'EXADATA_XS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='deploymentType', description='Gets the deployment_type of this FleetStatusByCategory.\nThe infrastructure used to deploy the Oracle Database.\n\nAllowed values for this property are: "ONPREMISE", "BM", "VM", "EXADATA", "EXADATA_CC", "AUTONOMOUS", "EXADATA_XS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - inventory_count: int | None = Field(None, ge=0, alias='inventoryCount', description='Gets the inventory_count of this FleetStatusByCategory.\nThe number of databases in the fleet.') - - -class FleetSummary(DbmBaseModel): - """A summary of the inventory count grouped by database type and subtype, and the metrics that -describe the aggregated usage of CPU, storage, and so on of all the databases in the fleet.""" - - aggregated_metrics: list[FleetMetricSummaryDefinition] | None = Field(None, alias='aggregatedMetrics', description='Gets the aggregated_metrics of this FleetSummary.\nA list of databases present in the fleet and their usage metrics.') - inventory: list[FleetStatusByCategory] | None = Field(None, description='Gets the inventory of this FleetSummary.\nA list of the databases in the fleet, grouped by database type and subtype.') - - -class HaMetricDefinition(DbmBaseModel): - """The metric definition for HA and backup metrics.""" - - metric_name: str = Field(..., alias='metricName', description='**[Required]** Gets the metric_name of this HaMetricDefinition.\nThe name of the metric.') - metadata: dict[str, str] = Field(..., description='**[Required]** Gets the metadata of this HaMetricDefinition.\nThe metadata qualifiers provided in the definition of the returned metric.\nAvailable metadata vary by metric.') - dimensions: dict[str, str] = Field(..., description='**[Required]** Gets the dimensions of this HaMetricDefinition.\nThe dimension qualifiers provided in the definition of the returned metric.\nAvailable dimensions vary by metric namespace. Each dimension takes the form of a key-value pair.\nExample: `{"resourceId": "ocid1.instance.region1.phx.exampleuniqueID"}`') - timestamp: datetime = Field(..., description='**[Required]** Gets the timestamp of this HaMetricDefinition.\nThe data point date and time in UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".') - value: float = Field(..., description='**[Required]** Gets the value of this HaMetricDefinition.\nThe target value of the metric.') - - -class HeatWaveClusterUsageMetrics(DbmBaseModel): - """The list of aggregated metrics for a HeatWave cluster in the fleet.""" - - status: Literal['UP', 'DOWN', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the status of this HeatWaveClusterUsageMetrics.\nThe status of the HeatWave cluster. Indicates whether the status of the cluster is UP, DOWN, or UNKNOWN at the current time.\n\nAllowed values for this property are: "UP", "DOWN", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - db_system_id: str = Field(..., alias='dbSystemId', description='**[Required]** Gets the db_system_id of this HeatWaveClusterUsageMetrics.\nThe OCID of the MySQL Database System associated with the HeatWave cluster.') - db_system_name: str = Field(..., alias='dbSystemName', description='**[Required]** Gets the db_system_name of this HeatWaveClusterUsageMetrics.\nThe name of the MySQL Database System associated with the HeatWave cluster.') - heat_wave_cluster_display_name: str = Field(..., alias='heatWaveClusterDisplayName', description='**[Required]** Gets the heat_wave_cluster_display_name of this HeatWaveClusterUsageMetrics.\nThe name of the HeatWave cluster.') - node_count: int = Field(..., ge=0, alias='nodeCount', description='**[Required]** Gets the node_count of this HeatWaveClusterUsageMetrics.\nThe number of nodes in the HeatWave cluster.') - is_lakehouse_enabled: bool = Field(..., alias='isLakehouseEnabled', description='**[Required]** Gets the is_lakehouse_enabled of this HeatWaveClusterUsageMetrics.\nIndicates whether Lakehouse is enabled for the HeatWave cluster or not.') - heat_wave_node_shape: str = Field(..., alias='heatWaveNodeShape', description='**[Required]** Gets the heat_wave_node_shape of this HeatWaveClusterUsageMetrics.\nThe shape of the nodes in the HeatWave cluster.') - memory_size: int = Field(..., alias='memorySize', description='**[Required]** Gets the memory_size of this HeatWaveClusterUsageMetrics.\nThe total memory belonging to the HeatWave cluster in GBs.') - metrics: list[HeatWaveFleetMetricDefinition] = Field(..., description='**[Required]** Gets the metrics of this HeatWaveClusterUsageMetrics.\nA list of the HeatWave cluster health metrics like CPU and Memory.') - - -class HeatWaveFleetByCategory(DbmBaseModel): - """The number of HeatWave clusters in the fleet, grouped by shape and Lakehouse-enabled status.""" - - name: str = Field(..., description='**[Required]** Gets the name of this HeatWaveFleetByCategory.\nThe name of the HeatWave fleet category.') - value: str = Field(..., description='**[Required]** Gets the value of this HeatWaveFleetByCategory.\nThe value of the HeatWave fleet category.') - count: int = Field(..., ge=0, description='**[Required]** Gets the count of this HeatWaveFleetByCategory.\nThe number of matching HeatWave clusters.') - - -class HeatWaveFleetMetricDefinition(DbmBaseModel): - """An aggregated metric for a HeatWave cluster.""" - - metric_name: str = Field(..., alias='metricName', description='**[Required]** Gets the metric_name of this HeatWaveFleetMetricDefinition.\nThe name of the metric.') - metric_value: float = Field(..., alias='metricValue', description='**[Required]** Gets the metric_value of this HeatWaveFleetMetricDefinition.\nThe value of the metric.') - timestamp: datetime = Field(..., description='**[Required]** Gets the timestamp of this HeatWaveFleetMetricDefinition.\nThe data point date and time in UTC in ISO-8601 format.') - dimensions: list[MetricDimensionDefinition] = Field(..., description='**[Required]** Gets the dimensions of this HeatWaveFleetMetricDefinition.\nThe dimensions of the metric.') - unit: str = Field(..., description='**[Required]** Gets the unit of this HeatWaveFleetMetricDefinition.\nThe unit of the metric value.') - - -class HeatWaveFleetMetricSummaryDefinition(DbmBaseModel): - """A summary of the fleet metrics, which provides the metric aggregated value of the HeatWave clusters in the fleet.""" - - metric_name: str = Field(..., alias='metricName', description='**[Required]** Gets the metric_name of this HeatWaveFleetMetricSummaryDefinition.\nThe name of the metric.') - metric_value: float = Field(..., alias='metricValue', description='**[Required]** Gets the metric_value of this HeatWaveFleetMetricSummaryDefinition.\nThe aggregated metric value.') - dimensions: list[MetricDimensionDefinition] = Field(..., description='**[Required]** Gets the dimensions of this HeatWaveFleetMetricSummaryDefinition.\nThe unique dimension key and values of the metric.') - unit: str = Field(..., description='**[Required]** Gets the unit of this HeatWaveFleetMetricSummaryDefinition.\nThe unit of the metric value.') - - -class HeatWaveFleetMetrics(DbmBaseModel): - """The details of the HeatWave cluster fleet health metrics.""" - - start_time: str = Field(..., alias='startTime', description='**[Required]** Gets the start_time of this HeatWaveFleetMetrics.\nThe beginning of the time range during which metric data is retrieved.') - end_time: str = Field(..., alias='endTime', description='**[Required]** Gets the end_time of this HeatWaveFleetMetrics.\nThe end of the time range during which metric data is retrieved.') - fleet_clusters: list[HeatWaveClusterUsageMetrics] = Field(..., alias='fleetClusters', description='**[Required]** Gets the fleet_clusters of this HeatWaveFleetMetrics.\nThe list of HeatWave clusters in the fleet and their usage metrics.') - fleet_summary: list[HeatWaveFleetSummary] = Field(..., alias='fleetSummary', description='**[Required]** Gets the fleet_summary of this HeatWaveFleetMetrics.\nThe number of HeatWave clusters in the fleet and a summary of the metrics that provide the aggregated usage of CPU, storage, and so on of all the clusters.') - - -class HeatWaveFleetSummary(DbmBaseModel): - """The inventory count of HeatWave clusters in the fleet and a summary of the metrics that provide the aggregated usage of CPU, storage, and so on of all the clusters.""" - - aggregated_metrics: list[HeatWaveFleetMetricSummaryDefinition] = Field(..., alias='aggregatedMetrics', description='**[Required]** Gets the aggregated_metrics of this HeatWaveFleetSummary.\nThe usage metrics for the HeatWave clusters in the fleet.') - inventory: list[HeatWaveFleetByCategory] = Field(..., description='**[Required]** Gets the inventory of this HeatWaveFleetSummary.\nThe number of HeatWave clusters in the fleet, grouped by cluster type or other properties.') - - -class HeatWaveNode(DbmBaseModel): - """The information about an individual HeatWave node.""" - - id: str = Field(..., description='**[Required]** Gets the id of this HeatWaveNode.\nThe ID associated with the HeatWave node.') - status: Literal['UP', 'DOWN', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the status of this HeatWaveNode.\nThe status of the HeatWave node. Indicates whether the status of the node is UP, DOWN, or UNKNOWN at the current time.\n\nAllowed values for this property are: "UP", "DOWN", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this HeatWaveNode.\nThe date and time the HeatWave node was created.') - - -class HistoricAddmResult(DbmBaseModel): - """The details of the historic ADDM task.""" - - is_newly_created: bool | None = Field(None, alias='isNewlyCreated', description='Gets the is_newly_created of this HistoricAddmResult.\nSpecifies whether the ADDM task returned had already existed or was newly created by the api call.') - task_name: str | None = Field(None, alias='taskName', description='Gets the task_name of this HistoricAddmResult.\nThe name of the historic ADDM task.') - task_id: int = Field(..., alias='taskId', description='**[Required]** Gets the task_id of this HistoricAddmResult.\nThe ID of the historic ADDM task.') - description: str | None = Field(None, description='Gets the description of this HistoricAddmResult.\nThe description of the ADDM task.') - db_user: str | None = Field(None, alias='dbUser', description='Gets the db_user of this HistoricAddmResult.\nThe database user who owns the historic ADDM task.') - status: Literal['INITIAL', 'EXECUTING', 'INTERRUPTED', 'COMPLETED', 'ERROR', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this HistoricAddmResult.\nThe status of the ADDM task.\n\nAllowed values for this property are: "INITIAL", "EXECUTING", "INTERRUPTED", "COMPLETED", "ERROR", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this HistoricAddmResult.\nThe creation date of the ADDM task.') - how_created: Literal['AUTO', 'MANUAL', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='howCreated', description='Gets the how_created of this HistoricAddmResult.\nA description of how the task was created.\n\nAllowed values for this property are: "AUTO", "MANUAL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - start_snapshot_time: datetime | None = Field(None, alias='startSnapshotTime', description='Gets the start_snapshot_time of this HistoricAddmResult.\nThe timestamp of the beginning AWR snapshot used in the ADDM task as defined by date-time RFC3339 format.') - end_snapshot_time: datetime | None = Field(None, alias='endSnapshotTime', description='Gets the end_snapshot_time of this HistoricAddmResult.\nThe timestamp of the ending AWR snapshot used in the ADDM task as defined by date-time RFC3339 format.') - begin_snapshot_id: int | None = Field(None, alias='beginSnapshotId', description='Gets the begin_snapshot_id of this HistoricAddmResult.\nThe ID number of the beginning AWR snapshot.') - end_snapshot_id: int | None = Field(None, alias='endSnapshotId', description='Gets the end_snapshot_id of this HistoricAddmResult.\nThe ID number of the ending AWR snapshot.') - findings: int | None = Field(None, description='Gets the findings of this HistoricAddmResult.\nThe number of ADDM findings.') - - -class ImplementOptimizerStatisticsAdvisorRecommendationsDetails(DbmRequestModel): - """The request details object to implement the Optimizer Statistics Advisor task recommendations.""" - - task_name: str = Field(..., alias='taskName', description='**[Required]** Gets the task_name of this ImplementOptimizerStatisticsAdvisorRecommendationsDetails.\nThe name of the task.') - job_details: ImplementOptimizerStatisticsAdvisorRecommendationsJob = Field(..., alias='jobDetails', description='**[Required]** Gets the job_details of this ImplementOptimizerStatisticsAdvisorRecommendationsDetails.') - - -class ImplementOptimizerStatisticsAdvisorRecommendationsJob(DbmBaseModel): - """The job request details to implement the Optimizer Statistics Advisor task recommendations.""" - - name: str = Field(..., description='**[Required]** Gets the name of this ImplementOptimizerStatisticsAdvisorRecommendationsJob.\nThe name of the job. Valid characters are uppercase or lowercase letters,\nnumbers, and "_". The name of the job cannot be modified. It must be unique\nin the compartment and must begin with an alphabetic character.') - description: str | None = Field(None, description='Gets the description of this ImplementOptimizerStatisticsAdvisorRecommendationsJob.\nThe name of the execution.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ImplementOptimizerStatisticsAdvisorRecommendationsJob. The OCID of the compartment in which the job resides.') - result_location: JobExecutionResultLocation = Field(..., alias='resultLocation', description='**[Required]** Gets the result_location of this ImplementOptimizerStatisticsAdvisorRecommendationsJob.') - credentials: ManagedDatabaseCredential | None = Field(None, description='Gets the credentials of this ImplementOptimizerStatisticsAdvisorRecommendationsJob.') - database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this ImplementOptimizerStatisticsAdvisorRecommendationsJob.') - - -class InstanceDetails(DbmRequestModel): - """The details of the Oracle Real Application Clusters (Oracle RAC) database instance.""" - - id: int = Field(..., description='**[Required]** Gets the id of this InstanceDetails.\nThe ID of the Oracle RAC database instance.') - name: str = Field(..., description='**[Required]** Gets the name of this InstanceDetails.\nThe name of the Oracle RAC database instance.') - host_name: str = Field(..., alias='hostName', description='**[Required]** Gets the host_name of this InstanceDetails.\nThe name of the host of the Oracle RAC database instance.') - status: Literal['UP', 'DOWN', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the status of this InstanceDetails.\nThe status of the Oracle RAC database instance.\n\nAllowed values for this property are: "UP", "DOWN", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class IormPlan(DbmBaseModel): - """The IORM plan from an Exadata storage server.""" - - plan_status: Literal['ACTIVE', 'INACTIVE', 'OTHER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='planStatus', description='**[Required]** Gets the plan_status of this IormPlan.\nThe status of the IORM plan.\n\nAllowed values for this property are: "ACTIVE", "INACTIVE", "OTHER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - plan_objective: Literal['AUTO', 'HIGH_THROUGHPUT', 'LOW_LATENCY', 'BALANCED', 'BASIC', 'OTHER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='planObjective', description='**[Required]** Gets the plan_objective of this IormPlan.\nThe objective of the IORM plan.\n\nAllowed values for this property are: "AUTO", "HIGH_THROUGHPUT", "LOW_LATENCY", "BALANCED", "BASIC", "OTHER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - db_plan: DatabasePlan | None = Field(None, alias='dbPlan', description='Gets the db_plan of this IormPlan.') - - -class Job(DbmBaseModel): - """The details of the job.""" - - id: str = Field(..., description='**[Required]** Gets the id of this Job. The OCID of the job.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this Job. The OCID of the compartment in which the job resides.') - name: str = Field(..., description='**[Required]** Gets the name of this Job.\nThe display name of the job.') - description: str | None = Field(None, description='Gets the description of this Job.\nThe description of the job.') - managed_database_group_id: str | None = Field(None, alias='managedDatabaseGroupId', description='Gets the managed_database_group_id of this Job. The OCID of the Managed Database Group where the job has to be executed.') - managed_database_id: str | None = Field(None, alias='managedDatabaseId', description='Gets the managed_database_id of this Job. The OCID of the Managed Database where the job has to be executed.') - managed_databases_details: list[JobDatabase] | None = Field(None, alias='managedDatabasesDetails', description='Gets the managed_databases_details of this Job.\nThe details of the Managed Databases where the job has to be executed.') - database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseSubType', description='Gets the database_sub_type of this Job.\nThe subtype of the Oracle Database where the job has to be executed. Applicable only when managedDatabaseGroupId is provided.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - schedule_type: Literal['IMMEDIATE', 'LATER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='scheduleType', description='**[Required]** Gets the schedule_type of this Job.\nThe schedule type of the job.\n\nAllowed values for this property are: "IMMEDIATE", "LATER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - job_type: Literal['SQL', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='jobType', description='**[Required]** Gets the job_type of this Job.\nThe type of job.\n\nAllowed values for this property are: "SQL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_state: Literal['ACTIVE', 'INACTIVE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this Job.\nThe lifecycle state of the job.\n\nAllowed values for this property are: "ACTIVE", "INACTIVE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - timeout: str | None = Field(None, description='Gets the timeout of this Job.\nThe job timeout duration, which is expressed like "1h 10m 15s".') - result_location: JobExecutionResultLocation | None = Field(None, alias='resultLocation', description='Gets the result_location of this Job.') - schedule_details: JobScheduleDetails | None = Field(None, alias='scheduleDetails', description='Gets the schedule_details of this Job.') - submission_error_message: str | None = Field(None, alias='submissionErrorMessage', description='Gets the submission_error_message of this Job.\nThe error message that is returned if the job submission fails. Null is returned in all other scenarios.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this Job.\nThe date and time when the job was created.') - time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this Job.\nThe date and time when the job was last updated.') - - -class JobCollection(DbmBaseModel): - """A collection of job objects.""" - - items: list[JobSummary] = Field(..., description='**[Required]** Gets the items of this JobCollection.\nA list of JobSummary objects.') - - -class JobDatabase(DbmBaseModel): - """The Managed Database on which the job is executed.""" - - id: str = Field(..., description='**[Required]** Gets the id of this JobDatabase. The OCID of the Managed Database.') - name: str = Field(..., description='**[Required]** Gets the name of this JobDatabase.\nThe name of the Managed Database.') - database_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseType', description='Gets the database_type of this JobDatabase.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseSubType', description='Gets the database_sub_type of this JobDatabase.\nThe subtype of the Oracle Database. Indicates whether the database is a Container Database, Pluggable Database, or a Non-container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - deployment_type: Literal['ONPREMISE', 'BM', 'VM', 'EXADATA', 'EXADATA_CC', 'AUTONOMOUS', 'EXADATA_XS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='deploymentType', description='Gets the deployment_type of this JobDatabase.\nA list of the supported infrastructure that can be used to deploy the database.\n\nAllowed values for this property are: "ONPREMISE", "BM", "VM", "EXADATA", "EXADATA_CC", "AUTONOMOUS", "EXADATA_XS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - is_cluster: bool | None = Field(None, alias='isCluster', description='Gets the is_cluster of this JobDatabase.\nIndicates whether the Oracle Database is part of a cluster.') - workload_type: Literal['OLTP', 'DW', 'AJD', 'APEX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='workloadType', description='Gets the workload_type of this JobDatabase.\nThe workload type of the Autonomous Database.\n\nAllowed values for this property are: "OLTP", "DW", "AJD", "APEX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class JobExecution(DbmBaseModel): - """The details of a job execution.""" - - id: str = Field(..., description='**[Required]** Gets the id of this JobExecution.\nThe identifier of the job execution.') - name: str = Field(..., description='**[Required]** Gets the name of this JobExecution.\nThe name of the job execution.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this JobExecution. The OCID of the compartment in which the parent job resides.') - managed_database_group_id: str | None = Field(None, alias='managedDatabaseGroupId', description='Gets the managed_database_group_id of this JobExecution. The OCID of the Managed Database Group where the parent job has to be executed.') - managed_database_id: str = Field(..., alias='managedDatabaseId', description='**[Required]** Gets the managed_database_id of this JobExecution. The OCID of the Managed Database associated with the job execution.') - managed_database_name: str = Field(..., alias='managedDatabaseName', description='**[Required]** Gets the managed_database_name of this JobExecution.\nThe name of the Managed Database associated with the job execution.') - database_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseType', description='Gets the database_type of this JobExecution.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseSubType', description='Gets the database_sub_type of this JobExecution.\nThe subtype of the Oracle Database. Indicates whether the database is a Container Database, Pluggable Database, or a Non-container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - deployment_type: Literal['ONPREMISE', 'BM', 'VM', 'EXADATA', 'EXADATA_CC', 'AUTONOMOUS', 'EXADATA_XS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='deploymentType', description='Gets the deployment_type of this JobExecution.\nA list of the supported infrastructure that can be used to deploy the database.\n\nAllowed values for this property are: "ONPREMISE", "BM", "VM", "EXADATA", "EXADATA_CC", "AUTONOMOUS", "EXADATA_XS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - is_cluster: bool | None = Field(None, alias='isCluster', description='Gets the is_cluster of this JobExecution.\nIndicates whether the Oracle Database is part of a cluster.') - workload_type: Literal['OLTP', 'DW', 'AJD', 'APEX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='workloadType', description='Gets the workload_type of this JobExecution.\nThe workload type of the Autonomous Database.\n\nAllowed values for this property are: "OLTP", "DW", "AJD", "APEX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - job_id: str = Field(..., alias='jobId', description='**[Required]** Gets the job_id of this JobExecution. The OCID of the parent job.') - job_name: str = Field(..., alias='jobName', description='**[Required]** Gets the job_name of this JobExecution.\nThe name of the parent job.') - job_run_id: str = Field(..., alias='jobRunId', description='**[Required]** Gets the job_run_id of this JobExecution.\nThe identifier of the associated job run.') - status: Literal['SUCCEEDED', 'FAILED', 'IN_PROGRESS', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the status of this JobExecution.\nThe status of the job execution.\n\nAllowed values for this property are: "SUCCEEDED", "FAILED", "IN_PROGRESS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - error_message: str | None = Field(None, alias='errorMessage', description='Gets the error_message of this JobExecution.\nThe error message that is returned if the job execution fails. Null is returned if the job is\nstill running or if the job execution is successful.') - result_details: JobExecutionResultDetails | None = Field(None, alias='resultDetails', description='Gets the result_details of this JobExecution.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this JobExecution.\nThe date and time when the job execution was created.') - time_completed: datetime | None = Field(None, alias='timeCompleted', description='Gets the time_completed of this JobExecution.\nThe date and time when the job execution completed.') - user_name: str | None = Field(None, alias='userName', description='Gets the user_name of this JobExecution.\nThe database user name used to execute the SQL job.') - sql_text: str | None = Field(None, alias='sqlText', description='Gets the sql_text of this JobExecution.\nThe SQL text executed as part of the job.') - in_binds: JobInBindsDetails | None = Field(None, alias='inBinds', description='Gets the in_binds of this JobExecution.') - out_binds: JobOutBindsDetails | None = Field(None, alias='outBinds', description='Gets the out_binds of this JobExecution.') - schedule_details: JobScheduleDetails | None = Field(None, alias='scheduleDetails', description='Gets the schedule_details of this JobExecution.') - - -class JobExecutionCollection(DbmBaseModel): - """A collection of job execution objects.""" - - items: list[JobExecutionSummary] = Field(..., description='**[Required]** Gets the items of this JobExecutionCollection.\nA list of JobExecutionSummary objects.') - - -class JobExecutionResultDetails(DbmRequestModel): - """The job execution result details.""" - - type: Literal['OBJECT_STORAGE', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the type of this JobExecutionResultDetails.\nThe type of job execution result.\n\nAllowed values for this property are: "OBJECT_STORAGE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class JobExecutionResultLocation(DbmBaseModel): - """The location of the job execution result.""" - - type: Literal['OBJECT_STORAGE', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the type of this JobExecutionResultLocation.\nThe type of the job execution result location.\n\nAllowed values for this property are: "OBJECT_STORAGE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class JobExecutionSummary(DbmBaseModel): - """A summary of a job execution on a Managed Database.""" - - id: str = Field(..., description='**[Required]** Gets the id of this JobExecutionSummary.\nThe identifier of the job execution.') - name: str = Field(..., description='**[Required]** Gets the name of this JobExecutionSummary.\nThe name of the job execution.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this JobExecutionSummary. The OCID of the compartment in which the parent job resides.') - managed_database_group_id: str | None = Field(None, alias='managedDatabaseGroupId', description='Gets the managed_database_group_id of this JobExecutionSummary. The OCID of the Managed Database Group where the parent job has to be executed.') - managed_database_id: str = Field(..., alias='managedDatabaseId', description='**[Required]** Gets the managed_database_id of this JobExecutionSummary. The OCID of Managed Database associated with the job execution.') - managed_database_name: str = Field(..., alias='managedDatabaseName', description='**[Required]** Gets the managed_database_name of this JobExecutionSummary.\nThe name of the Managed Database associated with the job execution.') - database_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseType', description='Gets the database_type of this JobExecutionSummary.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseSubType', description='Gets the database_sub_type of this JobExecutionSummary.\nThe subtype of the Oracle Database. Indicates whether the database is a Container Database, Pluggable Database, or a Non-container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - deployment_type: Literal['ONPREMISE', 'BM', 'VM', 'EXADATA', 'EXADATA_CC', 'AUTONOMOUS', 'EXADATA_XS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='deploymentType', description='Gets the deployment_type of this JobExecutionSummary.\nA list of the supported infrastructure that can be used to deploy the database.\n\nAllowed values for this property are: "ONPREMISE", "BM", "VM", "EXADATA", "EXADATA_CC", "AUTONOMOUS", "EXADATA_XS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - is_cluster: bool | None = Field(None, alias='isCluster', description='Gets the is_cluster of this JobExecutionSummary.\nIndicates whether the Oracle Database is part of a cluster.') - workload_type: Literal['OLTP', 'DW', 'AJD', 'APEX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='workloadType', description='Gets the workload_type of this JobExecutionSummary.\nThe workload type of the Autonomous Database.\n\nAllowed values for this property are: "OLTP", "DW", "AJD", "APEX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - job_id: str = Field(..., alias='jobId', description='**[Required]** Gets the job_id of this JobExecutionSummary. The OCID of the parent job.') - job_name: str = Field(..., alias='jobName', description='**[Required]** Gets the job_name of this JobExecutionSummary.\nThe name of the parent job.') - status: str = Field(..., description='**[Required]** Gets the status of this JobExecutionSummary.\nThe status of the job execution.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this JobExecutionSummary.\nThe date and time when the job execution was created.') - time_completed: datetime | None = Field(None, alias='timeCompleted', description='Gets the time_completed of this JobExecutionSummary.\nThe date and time when the job execution was completed.') - - -class JobExecutionsStatusSummary(DbmBaseModel): - """A summary of the status of the job executions.""" - - status: Literal['SUCCEEDED', 'FAILED', 'IN_PROGRESS', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the status of this JobExecutionsStatusSummary.\nThe status of the job execution.\n\nAllowed values for this property are: "SUCCEEDED", "FAILED", "IN_PROGRESS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - count: int = Field(..., ge=0, description='**[Required]** Gets the count of this JobExecutionsStatusSummary.\nThe number of job executions of a particular status.') - - -class JobExecutionsStatusSummaryCollection(DbmBaseModel): - """A collection of job execution status summary objects.""" - - items: list[JobExecutionsStatusSummary] = Field(..., description='**[Required]** Gets the items of this JobExecutionsStatusSummaryCollection.\nA list of JobExecutionsSummary objects.') - - -class JobInBind(DbmBaseModel): - """The details of the job in-bind variable.""" - - position: int = Field(..., description='**[Required]** Gets the position of this JobInBind.\nThe position of the in-bind variable.') - data_type: Literal['NUMBER', 'STRING', 'CLOB', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dataType', description='**[Required]** Gets the data_type of this JobInBind.\nThe datatype of the in-bind variable.\n\nAllowed values for this property are: "NUMBER", "STRING", "CLOB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - values: list[str] = Field(..., description='**[Required]** Gets the values of this JobInBind.\nThe values for the in-bind variable.') - array_type_name: str | None = Field(None, alias='arrayTypeName', description='Gets the array_type_name of this JobInBind.\nThe Oracle schema object name for the predefined type of array.') - - -class JobInBindsDetails(DbmRequestModel): - """A collection of job in-bind variables.""" - - items: list[JobInBind] = Field(..., description='**[Required]** Gets the items of this JobInBindsDetails.\nA list of JobInBind objects.') - - -class JobOutBind(DbmBaseModel): - """The details of the job out-bind variable.""" - - position: int = Field(..., description='**[Required]** Gets the position of this JobOutBind.\nThe position of the out-bind variable.') - data_type: Literal['NUMBER', 'STRING', 'CLOB', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dataType', description='**[Required]** Gets the data_type of this JobOutBind.\nThe datatype of the out-bind variable.\n\nAllowed values for this property are: "NUMBER", "STRING", "CLOB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class JobOutBindsDetails(DbmRequestModel): - """A collection of job out-bind variables.""" - - items: list[JobOutBind] = Field(..., description='**[Required]** Gets the items of this JobOutBindsDetails.\nA list of JobOutBind objects.') - - -class JobRun(DbmBaseModel): - """The details of a specific job run.""" - - id: str = Field(..., description='**[Required]** Gets the id of this JobRun.\nThe identifier of the job run.') - name: str = Field(..., description='**[Required]** Gets the name of this JobRun.\nThe name of the job run.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this JobRun. The OCID of the compartment in which the parent job resides.') - job_id: str = Field(..., alias='jobId', description='**[Required]** Gets the job_id of this JobRun. The OCID of the parent job.') - job_name: str = Field(..., alias='jobName', description='**[Required]** Gets the job_name of this JobRun.\nThe name of the parent job.') - managed_database_group_id: str | None = Field(None, alias='managedDatabaseGroupId', description='Gets the managed_database_group_id of this JobRun. The OCID of the Managed Database Group where the parent job has to be executed.') - managed_database_id: str | None = Field(None, alias='managedDatabaseId', description='Gets the managed_database_id of this JobRun. The OCID of Managed Database where the parent job has to be executed.') - run_status: Literal['COMPLETED', 'FAILED', 'IN_PROGRESS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='runStatus', description='**[Required]** Gets the run_status of this JobRun.\nThe status of the job run.\n\nAllowed values for this property are: "COMPLETED", "FAILED", "IN_PROGRESS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_submitted: datetime = Field(..., alias='timeSubmitted', description='**[Required]** Gets the time_submitted of this JobRun.\nThe date and time when the job run was submitted.') - time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this JobRun.\nThe date and time when the job run was last updated.') - - -class JobRunCollection(DbmBaseModel): - """A collection of job run objects.""" - - items: list[JobRunSummary] = Field(..., description='**[Required]** Gets the items of this JobRunCollection.\nA list of JobRunSummary objects.') - - -class JobRunSummary(DbmBaseModel): - """A summary of a specific job run.""" - - id: str = Field(..., description='**[Required]** Gets the id of this JobRunSummary.\nThe identifier of the job run.') - name: str = Field(..., description='**[Required]** Gets the name of this JobRunSummary.\nThe name of the job run.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this JobRunSummary. The OCID of the compartment in which the parent job resides.') - job_id: str = Field(..., alias='jobId', description='**[Required]** Gets the job_id of this JobRunSummary. The OCID of the parent job.') - job_name: str = Field(..., alias='jobName', description='**[Required]** Gets the job_name of this JobRunSummary.\nThe name of the parent job.') - managed_database_group_id: str | None = Field(None, alias='managedDatabaseGroupId', description='Gets the managed_database_group_id of this JobRunSummary. The OCID of the Managed Database Group where the parent job has to be executed.') - managed_database_id: str | None = Field(None, alias='managedDatabaseId', description='Gets the managed_database_id of this JobRunSummary. The OCID of the Managed Database where the parent job has to be executed.') - run_status: str = Field(..., alias='runStatus', description='**[Required]** Gets the run_status of this JobRunSummary.\nThe status of the job run.') - time_submitted: datetime = Field(..., alias='timeSubmitted', description='**[Required]** Gets the time_submitted of this JobRunSummary.\nThe date and time when the job run was submitted.') - time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this JobRunSummary.\nThe date and time when the job run was last updated.') - - -class JobScheduleDetails(DbmRequestModel): - """The details of the job schedule.""" - - start_time: str | None = Field(None, alias='startTime', description='Gets the start_time of this JobScheduleDetails.\nThe start time of the scheduled job in UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".') - end_time: str | None = Field(None, alias='endTime', description='Gets the end_time of this JobScheduleDetails.\nThe end time of the scheduled job in UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".') - interval_type: Literal['DAILY', 'HOURLY', 'WEEKLY', 'MONTHLY', 'NEVER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='intervalType', description='Gets the interval_type of this JobScheduleDetails.\nThe interval type for a recurring scheduled job. For a non-recurring (one time) job, NEVER must be specified as the interval type.\n\nAllowed values for this property are: "DAILY", "HOURLY", "WEEKLY", "MONTHLY", "NEVER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - interval_value: str | None = Field(None, alias='intervalValue', description='Gets the interval_value of this JobScheduleDetails.\nThe value for the interval period for a recurring scheduled job.') - - -class JobSummary(DbmBaseModel): - """A summary of the job.""" - - id: str = Field(..., description='**[Required]** Gets the id of this JobSummary. The OCID of the job.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this JobSummary. The OCID of the compartment in which the job resides.') - name: str = Field(..., description='**[Required]** Gets the name of this JobSummary.\nThe display name of the job.') - description: str | None = Field(None, description='Gets the description of this JobSummary.\nThe description of the job.') - managed_database_group_id: str | None = Field(None, alias='managedDatabaseGroupId', description='Gets the managed_database_group_id of this JobSummary. The OCID of the Managed Database Group where the job has to be executed.') - managed_database_id: str | None = Field(None, alias='managedDatabaseId', description='Gets the managed_database_id of this JobSummary. The OCID of the Managed Database where the job has to be executed.') - database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseSubType', description='Gets the database_sub_type of this JobSummary.\nThe subtype of the Oracle Database where the job has to be executed. Only applicable when managedDatabaseGroupId is provided.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - schedule_type: str = Field(..., alias='scheduleType', description='**[Required]** Gets the schedule_type of this JobSummary.\nThe schedule type of the job.') - schedule_details: JobScheduleDetails | None = Field(None, alias='scheduleDetails', description='Gets the schedule_details of this JobSummary.') - job_type: Literal['SQL', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='jobType', description='**[Required]** Gets the job_type of this JobSummary.\nThe type of job.\n\nAllowed values for this property are: "SQL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_state: str = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this JobSummary.\nThe lifecycle state of the job.') - timeout: str | None = Field(None, description='Gets the timeout of this JobSummary.\nThe job timeout duration, which is expressed like "1h 10m 15s".') - submission_error_message: str | None = Field(None, alias='submissionErrorMessage', description='Gets the submission_error_message of this JobSummary.\nThe error message that is returned if the job submission fails. Null is returned in all other scenarios.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this JobSummary.\nThe date and time when the job was created.') - time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this JobSummary.\nThe date and time when the job was last updated.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this JobSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this JobSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this JobSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class LoadSqlPlanBaselinesFromAwrDetails(DbmRequestModel): - """The details required to load plans from Automatic Workload Repository (AWR). -It takes either credentials or databaseCredential. It's recommended to provide databaseCredential""" - - job_name: str = Field(..., alias='jobName', description='**[Required]** Gets the job_name of this LoadSqlPlanBaselinesFromAwrDetails.\nThe name of the database job used for loading SQL plan baselines.') - job_description: str | None = Field(None, alias='jobDescription', description='Gets the job_description of this LoadSqlPlanBaselinesFromAwrDetails.\nThe description of the job.') - begin_snapshot: int = Field(..., alias='beginSnapshot', description='**[Required]** Gets the begin_snapshot of this LoadSqlPlanBaselinesFromAwrDetails.\nThe begin snapshot.') - end_snapshot: int = Field(..., alias='endSnapshot', description='**[Required]** Gets the end_snapshot of this LoadSqlPlanBaselinesFromAwrDetails.\nThe end snapshot.') - sql_text_filter: str | None = Field(None, alias='sqlTextFilter', description="Gets the sql_text_filter of this LoadSqlPlanBaselinesFromAwrDetails.\nA filter applied to AWR to select only qualifying plans to be loaded.\nBy default all plans in AWR are selected. The filter can take the form of\nany `WHERE` clause predicate that can be specified against the column\n`DBA_HIST_SQLTEXT.SQL_TEXT`. An example is `sql_text like 'SELECT %'`.") - is_fixed: bool | None = Field(None, alias='isFixed', description='Gets the is_fixed of this LoadSqlPlanBaselinesFromAwrDetails.\nIndicates whether the plans are loaded as fixed plans (`true`) or non-fixed plans (`false`).\nBy default, they are loaded as non-fixed plans.') - is_enabled: bool | None = Field(None, alias='isEnabled', description='Gets the is_enabled of this LoadSqlPlanBaselinesFromAwrDetails.\nIndicates whether the loaded plans are enabled (`true`) or not (`false`).\nBy default, they are enabled.') - credentials: ManagedDatabaseCredential | None = Field(None, description='Gets the credentials of this LoadSqlPlanBaselinesFromAwrDetails.') - database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this LoadSqlPlanBaselinesFromAwrDetails.') - - -class LoadSqlPlanBaselinesFromCursorCacheDetails(DbmRequestModel): - """The details of SQL statements and plans to be loaded from cursor cache. You can specify -the plans to load using SQL ID, plan identifier, or filterName and filterValue pair. -You can also control the SQL plan baseline into which the plans are loaded using either -SQL text or SQL handle. -It takes either credentials or databaseCredential. It's recommended to provide databaseCredential""" - - job_name: str = Field(..., alias='jobName', description='**[Required]** Gets the job_name of this LoadSqlPlanBaselinesFromCursorCacheDetails.\nThe name of the database job used for loading SQL plan baselines.') - job_description: str | None = Field(None, alias='jobDescription', description='Gets the job_description of this LoadSqlPlanBaselinesFromCursorCacheDetails.\nThe description of the job.') - sql_id: str | None = Field(None, alias='sqlId', description='Gets the sql_id of this LoadSqlPlanBaselinesFromCursorCacheDetails.\nThe SQL statement identifier. Identifies a SQL statement in the cursor cache.') - plan_hash: float | None = Field(None, alias='planHash', description='Gets the plan_hash of this LoadSqlPlanBaselinesFromCursorCacheDetails.\nThe plan identifier. By default, all plans present in the cursor cache\nfor the SQL statement identified by `sqlId` are captured.') - sql_text: str | None = Field(None, alias='sqlText', description='Gets the sql_text of this LoadSqlPlanBaselinesFromCursorCacheDetails.\nThe SQL text to use in identifying the SQL plan baseline into which the plans\nare loaded. If the SQL plan baseline does not exist, it is created.') - sql_handle: str | None = Field(None, alias='sqlHandle', description='Gets the sql_handle of this LoadSqlPlanBaselinesFromCursorCacheDetails.\nThe SQL handle to use in identifying the SQL plan baseline into which\nthe plans are loaded.') - filter_name: Literal['SQL_TEXT', 'PARSING_SCHEMA_NAME', 'MODULE', 'ACTION'] | None = Field(None, alias='filterName', description='Gets the filter_name of this LoadSqlPlanBaselinesFromCursorCacheDetails.\nThe name of the filter.\n\n- SQL_TEXT: Search pattern to apply to SQL text.\n- PARSING_SCHEMA_NAME: Name of the parsing schema.\n- MODULE: Name of the module.\n- ACTION: Name of the action.\n\nAllowed values for this property are: "SQL_TEXT", "PARSING_SCHEMA_NAME", "MODULE", "ACTION"') - filter_value: str | None = Field(None, alias='filterValue', description='Gets the filter_value of this LoadSqlPlanBaselinesFromCursorCacheDetails.\nThe filter value. It is upper-cased except when it is enclosed in\ndouble quotes or filter name is `SQL_TEXT`.') - is_fixed: bool | None = Field(None, alias='isFixed', description='Gets the is_fixed of this LoadSqlPlanBaselinesFromCursorCacheDetails.\nIndicates whether the plans are loaded as fixed plans (`true`) or non-fixed plans (`false`).\nBy default, they are loaded as non-fixed plans.') - is_enabled: bool | None = Field(None, alias='isEnabled', description='Gets the is_enabled of this LoadSqlPlanBaselinesFromCursorCacheDetails.\nIndicates whether the loaded plans are enabled (`true`) or not (`false`).\nBy default, they are enabled.') - credentials: ManagedDatabaseCredential | None = Field(None, description='Gets the credentials of this LoadSqlPlanBaselinesFromCursorCacheDetails.') - database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this LoadSqlPlanBaselinesFromCursorCacheDetails.') - - -class LoadSqlTuningSetDetails(DbmRequestModel): - """The details required to load the Sql statements into the Sql tuning set. -It takes either credentialDetails or databaseCredential. It's recommended to provide databaseCredential""" - - credential_details: SqlTuningSetAdminCredentialDetails | None = Field(None, alias='credentialDetails', description='Gets the credential_details of this LoadSqlTuningSetDetails.') - database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this LoadSqlTuningSetDetails.') - show_sql_only: int | None = Field(None, alias='showSqlOnly', description='Gets the show_sql_only of this LoadSqlTuningSetDetails.\nFlag to indicate whether to create the Sql tuning set or just display the plsql used to create Sql tuning set.') - owner: str | None = Field(None, description='Gets the owner of this LoadSqlTuningSetDetails.\nThe owner of the Sql tuning set.') - name: str = Field(..., description='**[Required]** Gets the name of this LoadSqlTuningSetDetails.\nThe name of the Sql tuning set.') - load_type: Literal['INCREMENTAL_CURSOR_CACHE', 'CURRENT_CURSOR_CACHE', 'AWR'] = Field(..., alias='loadType', description='**[Required]** Gets the load_type of this LoadSqlTuningSetDetails.\nSpecifies the loading method into the Sql tuning set.\n\nAllowed values for this property are: "INCREMENTAL_CURSOR_CACHE", "CURRENT_CURSOR_CACHE", "AWR"') - basic_filter: str | None = Field(None, alias='basicFilter', description='Gets the basic_filter of this LoadSqlTuningSetDetails. Specifies the Sql predicate to filter the Sql from the Sql tuning set defined on attributes of the SQLSET_ROW. User could use any combination of the following columns with appropriate values as Sql predicate Refer to the documentation.') - recursive_sql: Literal['HAS_RECURSIVE_SQL', 'NO_RECURSIVE_SQL'] | None = Field(None, alias='recursiveSql', description='Gets the recursive_sql of this LoadSqlTuningSetDetails.\nSpecifies that the filter must include recursive Sql in the Sql tuning set.\n\nAllowed values for this property are: "HAS_RECURSIVE_SQL", "NO_RECURSIVE_SQL"') - result_percentage: float | None = Field(None, alias='resultPercentage', description='Gets the result_percentage of this LoadSqlTuningSetDetails.\nSpecifies a filter that picks the top n% according to the supplied ranking measure.\nNote that this parameter applies only if one ranking measure is supplied.') - result_limit: int | None = Field(None, alias='resultLimit', description='Gets the result_limit of this LoadSqlTuningSetDetails.\nThe top limit Sql from the filtered source, ranked by the ranking measure.') - ranking_measure1: Literal['ELAPSED_TIME', 'CPU_TIME', 'OPTIMIZER_COST', 'BUFFER_GETS', 'DISK_READS', 'DIRECT_WRITES'] | None = Field(None, alias='rankingMeasure1', description='Gets the ranking_measure1 of this LoadSqlTuningSetDetails.\nSpecifies an ORDER BY clause on the selected Sql. User can specify upto three ranking measures.\n\nAllowed values for this property are: "ELAPSED_TIME", "CPU_TIME", "OPTIMIZER_COST", "BUFFER_GETS", "DISK_READS", "DIRECT_WRITES"') - ranking_measure2: Literal['ELAPSED_TIME', 'CPU_TIME', 'OPTIMIZER_COST', 'BUFFER_GETS', 'DISK_READS', 'DIRECT_WRITES'] | None = Field(None, alias='rankingMeasure2', description='Gets the ranking_measure2 of this LoadSqlTuningSetDetails.\nSpecifies an ORDER BY clause on the selected Sql. User can specify upto three ranking measures.\n\nAllowed values for this property are: "ELAPSED_TIME", "CPU_TIME", "OPTIMIZER_COST", "BUFFER_GETS", "DISK_READS", "DIRECT_WRITES"') - ranking_measure3: Literal['ELAPSED_TIME', 'CPU_TIME', 'OPTIMIZER_COST', 'BUFFER_GETS', 'DISK_READS', 'DIRECT_WRITES'] | None = Field(None, alias='rankingMeasure3', description='Gets the ranking_measure3 of this LoadSqlTuningSetDetails.\nSpecifies an ORDER BY clause on the selected Sql. User can specify upto three ranking measures.\n\nAllowed values for this property are: "ELAPSED_TIME", "CPU_TIME", "OPTIMIZER_COST", "BUFFER_GETS", "DISK_READS", "DIRECT_WRITES"') - total_time_limit: int | None = Field(None, alias='totalTimeLimit', description='Gets the total_time_limit of this LoadSqlTuningSetDetails.\nDefines the total amount of time, in seconds, to execute.') - repeat_interval: int | None = Field(None, alias='repeatInterval', description='Gets the repeat_interval of this LoadSqlTuningSetDetails.\nDefines the amount of time, in seconds, to pause between sampling.') - capture_option: Literal['INSERT', 'UPDATE', 'MERGE'] | None = Field(None, alias='captureOption', description='Gets the capture_option of this LoadSqlTuningSetDetails.\nSpecifies whether to insert new statements, update existing statements, or both.\n\nAllowed values for this property are: "INSERT", "UPDATE", "MERGE"') - capture_mode: Literal['MODE_REPLACE_OLD_STATS', 'MODE_ACCUMULATE_STATS'] | None = Field(None, alias='captureMode', description='Gets the capture_mode of this LoadSqlTuningSetDetails.\nSpecifies the capture mode. Note that this parameter is applicable only for UPDATE and MERGE capture options.\nCapture mode can take one of the following values\n - MODE_REPLACE_OLD_STATS\n Replaces statistics when the number of executions is greater than the number stored in the Sql tuning set\n - MODE_ACCUMULATE_STATS\n Adds new values to current values for Sql that is already stored.\n Note that this mode detects if a statement has been aged out, so the final value for a statistics is the sum of the statistics of all cursors that statement existed under.\n\nAllowed values for this property are: "MODE_REPLACE_OLD_STATS", "MODE_ACCUMULATE_STATS"') - attribute_list: str | None = Field(None, alias='attributeList', description='Gets the attribute_list of this LoadSqlTuningSetDetails.\nSpecifies the list of Sql statement attributes to return in the result.\nNote that this parameter cannot be made an enum since custom value can take a list of comma separated attribute names.\nAttribute list can take one of the following values.\n TYPICAL - Specifies BASIC plus Sql plan (without row source statistics) and without object reference list (default).\n BASIC - Specifies all attributes (such as execution statistics and binds) except the plans. The execution context is always part of the result.\n ALL - Specifies all attributes.\n CUSTOM - Comma-separated list of the following attribute names.\n - EXECUTION_STATISTICS\n - BIND_LIST\n - OBJECT_LIST\n - SQL_PLAN\n - SQL_PLAN_STATISTICS\nUsage examples:\n 1. "attributeList": "TYPICAL"\n 2. "attributeList": "ALL"\n 3. "attributeList": "EXECUTION_STATISTICS,OBJECT_LIST,SQL_PLAN"') - load_option: Literal['INSERT', 'UPDATE', 'MERGE'] | None = Field(None, alias='loadOption', description='Gets the load_option of this LoadSqlTuningSetDetails.\nSpecifies which statements are loaded into the Sql tuning set.\nThe possible values are.\n - INSERT (default)\n Adds only new statements.\n - UPDATE\n Updates existing the Sql statements and ignores any new statements.\n - MERGE\n Inserts new statements and updates the information of the existing ones.\n\nAllowed values for this property are: "INSERT", "UPDATE", "MERGE"') - update_option: Literal['REPLACE', 'ACCUMULATE'] | None = Field(None, alias='updateOption', description='Gets the update_option of this LoadSqlTuningSetDetails.\nSpecifies how existing Sql statements are updated.\nThis parameter is applicable only if load_option is specified with UPDATE or MERGE as an option.\nUpdate option can take one of the following values.\n REPLACE (default) - Updates the statement using the new statistics, bind list, object list, and so on.\n ACCUMULATE - Combines attributes when possible (for example, statistics such as elapsed_time), otherwise replaces the existing values (for example, module and action) with the provided values.\n Following Sql statement attributes can be accumulated.\n elapsed_time\n buffer_gets\n direct_writes\n disk_reads\n row_processed\n fetches\n executions\n end_of_fetch_count\n stat_period\n active_stat_period\n\nAllowed values for this property are: "REPLACE", "ACCUMULATE"') - update_attributes: str | None = Field(None, alias='updateAttributes', description='Gets the update_attributes of this LoadSqlTuningSetDetails.\nSpecifies the list of Sql statement attributes to update during a merge or update.\nNote that this parameter cannot be made an enum since custom value can take a list of comma separated attribute names.\nUpdate attributes can take one of the following values.\n NULL (default) - Specifies the content of the input cursor except the execution context. On other terms, it is equivalent to ALL without execution contexts such as module and action.\n BASIC - Specifies statistics and binds only.\n TYPICAL - Specifies BASIC with Sql plans (without row source statistics) and without an object reference list.\n ALL - Specifies all attributes, including the execution context attributes such as module and action.\n CUSTOM - List of comma separated attribute names to update\n EXECUTION_CONTEXT\n EXECUTION_STATISTICS\n SQL_BINDS\n SQL_PLAN\n SQL_PLAN_STATISTICS (similar to SQL_PLAN with added row source statistics)\nUsage examples:\n 1. "updateAttributes": "TYPICAL"\n 2. "updateAttributes": "BASIC"\n 3. "updateAttributes": "EXECUTION_STATISTICS,SQL_PLAN_STATISTICS,SQL_PLAN"\n 4. "updateAttributes": "EXECUTION_STATISTICS,SQL_PLAN"') - update_condition: Literal['OLD', 'NEW', 'NULL'] | None = Field(None, alias='updateCondition', description='Gets the update_condition of this LoadSqlTuningSetDetails.\nSpecifies when to perform the update.\nThe procedure only performs the update when the specified condition is satisfied.\nThe condition can refer to either the data source or destination.\nThe condition must use the following prefixes to refer to attributes from the source or the destination:\nOLD — Refers to statement attributes from the SQL tuning set (destination).\nNEW — Refers to statement attributes from the input statements (source).\nNULL — No updates are performed.\n\nAllowed values for this property are: "OLD", "NEW", "NULL"') - is_ignore_null: bool | None = Field(None, alias='isIgnoreNull', description='Gets the is_ignore_null of this LoadSqlTuningSetDetails.\nSpecifies whether to update attributes when the new value is NULL.\nIf TRUE, then the procedure does not update an attribute when the new value is NULL.\nThat is, do not override with NULL values unless intentional.\nPossible values - true or false') - commit_rows: int | None = Field(None, alias='commitRows', description='Gets the commit_rows of this LoadSqlTuningSetDetails.\nSpecifies whether to commit statements after DML.\nIf a value is provided, then the load commits after each specified number of statements is inserted.\nIf NULL is provided, then the load commits only once, at the end of the operation.') - begin_snapshot: int | None = Field(None, alias='beginSnapshot', description='Gets the begin_snapshot of this LoadSqlTuningSetDetails.\nDefines the beginning AWR snapshot (non-inclusive).') - end_snapshot: int | None = Field(None, alias='endSnapshot', description='Gets the end_snapshot of this LoadSqlTuningSetDetails.\nDefines the ending AWR snapshot (inclusive).') - baseline_name: str | None = Field(None, alias='baselineName', description='Gets the baseline_name of this LoadSqlTuningSetDetails.\nSpecifies the name of the AWR baseline period.\nWhen loading the sql statements from AWR, following inputs has to be provided:\nbeginSnapshot and endSnapshot\nOR\nbaselineName') - - -class MacsConnectorDetails(DbmRequestModel): - """The management agent details required to connect to an Oracle cloud Database.""" - - connector_type: Literal['PE', 'MACS', 'EXTERNAL', 'DIRECT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this ConnectorDetails.\nThe list of supported connection types:\n - PE: Private endpoint\n - MACS: Management agent\n - EXTERNAL: External database connector\n\n - DIRECT: Direct connection\n\nAllowed values for this property are: "PE", "MACS", "EXTERNAL", "DIRECT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - management_agent_id: str = Field(..., alias='managementAgentId', description='**[Required]** Gets the management_agent_id of this MacsConnectorDetails. The OCID of the management agent.') - - -class ManagedDatabase(DbmBaseModel): - """The details of a Managed Database.""" - - id: str = Field(..., description='**[Required]** Gets the id of this ManagedDatabase. The OCID of the Managed Database.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ManagedDatabase. The OCID of the compartment.') - name: str = Field(..., description='**[Required]** Gets the name of this ManagedDatabase.\nThe name of the Managed Database.') - database_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='databaseType', description='**[Required]** Gets the database_type of this ManagedDatabase.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='databaseSubType', description='**[Required]** Gets the database_sub_type of this ManagedDatabase.\nThe subtype of the Oracle Database. Indicates whether the database is a Container Database,\nPluggable Database, Non-container Database, Autonomous Database, or Autonomous Container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - deployment_type: Literal['ONPREMISE', 'BM', 'VM', 'EXADATA', 'EXADATA_CC', 'AUTONOMOUS', 'EXADATA_XS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='deploymentType', description='Gets the deployment_type of this ManagedDatabase.\nThe infrastructure used to deploy the Oracle Database.\n\nAllowed values for this property are: "ONPREMISE", "BM", "VM", "EXADATA", "EXADATA_CC", "AUTONOMOUS", "EXADATA_XS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - management_option: Literal['BASIC', 'ADVANCED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='managementOption', description='Gets the management_option of this ManagedDatabase.\nThe management option used when enabling Database Management.\n\nAllowed values for this property are: "BASIC", "ADVANCED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - workload_type: Literal['OLTP', 'DW', 'AJD', 'APEX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='workloadType', description='Gets the workload_type of this ManagedDatabase.\nThe workload type of the Autonomous Database.\n\nAllowed values for this property are: "OLTP", "DW", "AJD", "APEX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - is_cluster: bool = Field(..., alias='isCluster', description='**[Required]** Gets the is_cluster of this ManagedDatabase.\nIndicates whether the Oracle Database is part of a cluster.') - parent_container_id: str | None = Field(None, alias='parentContainerId', description='Gets the parent_container_id of this ManagedDatabase. The OCID of the parent Container Database if Managed Database is a Pluggable Database.') - managed_database_groups: list[ParentGroup] | None = Field(None, alias='managedDatabaseGroups', description='Gets the managed_database_groups of this ManagedDatabase.\nA list of Managed Database Groups that the Managed Database belongs to.') - db_system_id: str | None = Field(None, alias='dbSystemId', description='Gets the db_system_id of this ManagedDatabase. The OCID of the DB system that this Managed Database is part of.') - storage_system_id: str | None = Field(None, alias='storageSystemId', description='Gets the storage_system_id of this ManagedDatabase. The OCID of the storage DB system.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ManagedDatabase.\nThe date and time the Managed Database was created.') - database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this ManagedDatabase.\nThe Oracle Database version.') - database_status: Literal['UP', 'DOWN', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseStatus', description='Gets the database_status of this ManagedDatabase.\nThe status of the Oracle Database. Indicates whether the status of the database\nis UP, DOWN, or UNKNOWN at the current time.\n\nAllowed values for this property are: "UP", "DOWN", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - parent_container_name: str | None = Field(None, alias='parentContainerName', description='Gets the parent_container_name of this ManagedDatabase.\nThe name of the parent Container Database.') - parent_container_compartment_id: str | None = Field(None, alias='parentContainerCompartmentId', description='Gets the parent_container_compartment_id of this ManagedDatabase. The OCID of the compartment in which the parent Container Database resides, if the Managed Database is a Pluggable Database (PDB).') - instance_count: int | None = Field(None, ge=0, alias='instanceCount', description='Gets the instance_count of this ManagedDatabase.\nThe number of Oracle Real Application Clusters (Oracle RAC) database instances.') - instance_details: list[InstanceDetails] | None = Field(None, alias='instanceDetails', description='Gets the instance_details of this ManagedDatabase.\nThe details of the Oracle Real Application Clusters (Oracle RAC) database instances.') - pdb_count: int | None = Field(None, ge=0, alias='pdbCount', description='Gets the pdb_count of this ManagedDatabase.\nThe number of PDBs in the Container Database.') - pdb_status: list[PdbStatusDetails] | None = Field(None, alias='pdbStatus', description='Gets the pdb_status of this ManagedDatabase.\nThe status of the PDB in the Container Database.') - additional_details: dict[str, str] | None = Field(None, alias='additionalDetails', description='Gets the additional_details of this ManagedDatabase.\nThe additional details specific to a type of database defined in `{"key": "value"}` format.\nExample: `{"bar-key": "value"}`') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ManagedDatabase. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ManagedDatabase. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ManagedDatabase. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - dbmgmt_feature_configs: list[DatabaseFeatureConfiguration] | None = Field(None, alias='dbmgmtFeatureConfigs', description='Gets the dbmgmt_feature_configs of this ManagedDatabase.\nThe list of feature configurations') - database_platform_name: str | None = Field(None, alias='databasePlatformName', description='Gets the database_platform_name of this ManagedDatabase.\nThe operating system of database.') - - -class ManagedDatabaseCollection(DbmBaseModel): - """A collection of Managed Database objects.""" - - items: list[ManagedDatabaseSummary] = Field(..., description='**[Required]** Gets the items of this ManagedDatabaseCollection.\nAn array of ManagedDatabaseSummary resources.') - - -class ManagedDatabaseCredential(DbmBaseModel): - """The credential used to connect to the Managed Database and obtain the details of the optimizer statistics tasks.""" - - credential_type: Literal['SECRET', 'PASSWORD'] = Field(..., alias='credentialType', description='**[Required]** Gets the credential_type of this ManagedDatabaseCredential.\nIndicates the type of credential required to retrieve the details of the optimizer statistics tasks.\n\nAllowed values for this property are: "SECRET", "PASSWORD"') - username: str = Field(..., description='**[Required]** Gets the username of this ManagedDatabaseCredential.\nThe user name used to connect to the database.') - role: Literal['NORMAL', 'SYSDBA'] = Field(..., description='**[Required]** Gets the role of this ManagedDatabaseCredential.\nThe role of the database user.\n\nAllowed values for this property are: "NORMAL", "SYSDBA"') - - -class ManagedDatabaseGroup(DbmBaseModel): - """The details of a Managed Database Group.""" - - name: str = Field(..., description='**[Required]** Gets the name of this ManagedDatabaseGroup.\nThe name of the Managed Database Group.') - id: str = Field(..., description='**[Required]** Gets the id of this ManagedDatabaseGroup. The OCID of the Managed Database Group.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ManagedDatabaseGroup. The OCID of the compartment.') - description: str | None = Field(None, description='Gets the description of this ManagedDatabaseGroup.\nThe information specified by the user about the Managed Database Group.') - managed_databases: list[ChildDatabase] = Field(..., alias='managedDatabases', description='**[Required]** Gets the managed_databases of this ManagedDatabaseGroup.\nA list of Managed Databases in the Managed Database Group.') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ManagedDatabaseGroup.\nThe current lifecycle state of the Managed Database Group.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ManagedDatabaseGroup.\nThe date and time the Managed Database Group was created.') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this ManagedDatabaseGroup.\nThe date and time the Managed Database Group was last updated.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ManagedDatabaseGroup. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ManagedDatabaseGroup. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ManagedDatabaseGroup. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class ManagedDatabaseGroupCollection(DbmBaseModel): - """A collection of Managed Database Group resources.""" - - items: list[ManagedDatabaseGroupSummary] = Field(..., description='**[Required]** Gets the items of this ManagedDatabaseGroupCollection.\nAn array of ManagedDatabaseGroupSummary resources.') - - -class ManagedDatabaseGroupSummary(DbmBaseModel): - """A group of Managed Databases that will be managed together.""" - - name: str = Field(..., description='**[Required]** Gets the name of this ManagedDatabaseGroupSummary.\nThe name of the Managed Database Group.') - id: str = Field(..., description='**[Required]** Gets the id of this ManagedDatabaseGroupSummary. The OCID of the Managed Database Group.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ManagedDatabaseGroupSummary. The OCID of the compartment.') - description: str | None = Field(None, description='Gets the description of this ManagedDatabaseGroupSummary.\nThe information specified by the user about the Managed Database Group.') - managed_database_count: int = Field(..., ge=0, alias='managedDatabaseCount', description='**[Required]** Gets the managed_database_count of this ManagedDatabaseGroupSummary.\nThe number of Managed Databases in the Managed Database Group.') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this ManagedDatabaseGroupSummary.\nThe current lifecycle state of the Managed Database Group.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ManagedDatabaseGroupSummary.\nThe date and time the Managed Database Group was created.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ManagedDatabaseGroupSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ManagedDatabaseGroupSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ManagedDatabaseGroupSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class ManagedDatabasePasswordCredential(DbmBaseModel): - """User provides a password to be used to connect to the database.""" - - credential_type: Literal['SECRET', 'PASSWORD'] = Field(..., alias='credentialType', description='**[Required]** Gets the credential_type of this ManagedDatabaseCredential.\nIndicates the type of credential required to retrieve the details of the optimizer statistics tasks.\n\nAllowed values for this property are: "SECRET", "PASSWORD"') - username: str = Field(..., description='**[Required]** Gets the username of this ManagedDatabaseCredential.\nThe user name used to connect to the database.') - role: Literal['NORMAL', 'SYSDBA'] = Field(..., description='**[Required]** Gets the role of this ManagedDatabaseCredential.\nThe role of the database user.\n\nAllowed values for this property are: "NORMAL", "SYSDBA"') - password: str = Field(..., description="**[Required]** Gets the password of this ManagedDatabasePasswordCredential.\nThe database user's password encoded using BASE64 scheme.") - - -class ManagedDatabaseSecretCredential(DbmBaseModel): - """User provides a secret OCID, which will be used to retrieve the password to connect to the database.""" - - credential_type: Literal['SECRET', 'PASSWORD'] = Field(..., alias='credentialType', description='**[Required]** Gets the credential_type of this ManagedDatabaseCredential.\nIndicates the type of credential required to retrieve the details of the optimizer statistics tasks.\n\nAllowed values for this property are: "SECRET", "PASSWORD"') - username: str = Field(..., description='**[Required]** Gets the username of this ManagedDatabaseCredential.\nThe user name used to connect to the database.') - role: Literal['NORMAL', 'SYSDBA'] = Field(..., description='**[Required]** Gets the role of this ManagedDatabaseCredential.\nThe role of the database user.\n\nAllowed values for this property are: "NORMAL", "SYSDBA"') - password_secret_id: str = Field(..., alias='passwordSecretId', description='**[Required]** Gets the password_secret_id of this ManagedDatabaseSecretCredential. The OCID of the Secret where the database password is stored.') - - -class ManagedDatabaseSummary(DbmBaseModel): - """A summary of the Managed Database.""" - - id: str = Field(..., description='**[Required]** Gets the id of this ManagedDatabaseSummary. The OCID of the Managed Database.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ManagedDatabaseSummary. The OCID of the compartment.') - name: str = Field(..., description='**[Required]** Gets the name of this ManagedDatabaseSummary.\nThe name of the Managed Database.') - database_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='databaseType', description='**[Required]** Gets the database_type of this ManagedDatabaseSummary.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='databaseSubType', description='**[Required]** Gets the database_sub_type of this ManagedDatabaseSummary.\nThe subtype of the Oracle Database. Indicates whether the database is a Container Database,\nPluggable Database, Non-container Database, Autonomous Database, or Autonomous Container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - deployment_type: Literal['ONPREMISE', 'BM', 'VM', 'EXADATA', 'EXADATA_CC', 'AUTONOMOUS', 'EXADATA_XS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='deploymentType', description='Gets the deployment_type of this ManagedDatabaseSummary.\nThe infrastructure used to deploy the Oracle Database.\n\nAllowed values for this property are: "ONPREMISE", "BM", "VM", "EXADATA", "EXADATA_CC", "AUTONOMOUS", "EXADATA_XS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - management_option: Literal['BASIC', 'ADVANCED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='managementOption', description='Gets the management_option of this ManagedDatabaseSummary.\nThe management option used when enabling Database Management.\n\nAllowed values for this property are: "BASIC", "ADVANCED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - workload_type: Literal['OLTP', 'DW', 'AJD', 'APEX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='workloadType', description='Gets the workload_type of this ManagedDatabaseSummary.\nThe workload type of the Autonomous Database.\n\nAllowed values for this property are: "OLTP", "DW", "AJD", "APEX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - is_cluster: bool = Field(..., alias='isCluster', description='**[Required]** Gets the is_cluster of this ManagedDatabaseSummary.\nIndicates whether the Oracle Database is part of a cluster.') - parent_container_id: str | None = Field(None, alias='parentContainerId', description='Gets the parent_container_id of this ManagedDatabaseSummary. The OCID of the parent Container Database if the Managed Database is a Pluggable Database.') - db_system_id: str | None = Field(None, alias='dbSystemId', description='Gets the db_system_id of this ManagedDatabaseSummary. The OCID of the DB system that this Managed Database is part of.') - storage_system_id: str | None = Field(None, alias='storageSystemId', description='Gets the storage_system_id of this ManagedDatabaseSummary. The OCID of the storage DB system.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ManagedDatabaseSummary.\nThe date and time the Managed Database was created.') - database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this ManagedDatabaseSummary.\nThe Oracle Database version.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this ManagedDatabaseSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this ManagedDatabaseSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ManagedDatabaseSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - dbmgmt_feature_configs: list[DatabaseFeatureConfiguration] | None = Field(None, alias='dbmgmtFeatureConfigs', description='Gets the dbmgmt_feature_configs of this ManagedDatabaseSummary.\nThe list of feature configurations') - database_platform_name: str | None = Field(None, alias='databasePlatformName', description='Gets the database_platform_name of this ManagedDatabaseSummary.\nThe operating system of database.') - - -class ManagedMySqlDatabase(DbmBaseModel): - """The details of the Managed MySQL Database.""" - - id: str = Field(..., description='**[Required]** Gets the id of this ManagedMySqlDatabase.\nThe OCID of the Managed MySQL Database.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ManagedMySqlDatabase.\nThe OCID of the compartment.') - db_name: str = Field(..., alias='dbName', description='**[Required]** Gets the db_name of this ManagedMySqlDatabase.\nThe name of the MySQL Database.') - db_version: str = Field(..., alias='dbVersion', description='**[Required]** Gets the db_version of this ManagedMySqlDatabase.\nThe version of the MySQL Database.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ManagedMySqlDatabase.\nThe date and time the Managed MySQL Database was created.') - name: str = Field(..., description='**[Required]** Gets the name of this ManagedMySqlDatabase.\nThe name of the Managed MySQL Database.') - heat_wave_management_type: Literal['BASIC', 'FULL', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='heatWaveManagementType', description='Gets the heat_wave_management_type of this ManagedMySqlDatabase.\nThe customer\'s selected type for HeatWave management.\n\nAllowed values for this property are: "BASIC", "FULL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - heat_wave_cluster_display_name: str | None = Field(None, alias='heatWaveClusterDisplayName', description='Gets the heat_wave_cluster_display_name of this ManagedMySqlDatabase.\nThe name of the HeatWave cluster.') - is_heat_wave_enabled: bool | None = Field(None, alias='isHeatWaveEnabled', description='Gets the is_heat_wave_enabled of this ManagedMySqlDatabase.\nIndicates whether HeatWave is enabled for the MySQL Database System or not.') - is_lakehouse_enabled: bool | None = Field(None, alias='isLakehouseEnabled', description='Gets the is_lakehouse_enabled of this ManagedMySqlDatabase.\nIndicates whether HeatWave Lakehouse is enabled for the MySQL Database System or not.') - heat_wave_node_shape: str | None = Field(None, alias='heatWaveNodeShape', description='Gets the heat_wave_node_shape of this ManagedMySqlDatabase.\nThe shape of the nodes in the HeatWave cluster.') - heat_wave_memory_size: int | None = Field(None, alias='heatWaveMemorySize', description='Gets the heat_wave_memory_size of this ManagedMySqlDatabase.\nThe total memory belonging to the HeatWave cluster in GBs.') - heat_wave_nodes: list[HeatWaveNode] | None = Field(None, alias='heatWaveNodes', description='Gets the heat_wave_nodes of this ManagedMySqlDatabase.\nThe information about individual HeatWave nodes in the cluster.') - is_heat_wave_active: bool | None = Field(None, alias='isHeatWaveActive', description='Gets the is_heat_wave_active of this ManagedMySqlDatabase.\nIndicates whether the HeatWave cluster is active or not.') - time_created_heat_wave: datetime | None = Field(None, alias='timeCreatedHeatWave', description='Gets the time_created_heat_wave of this ManagedMySqlDatabase.\nThe date and time the Managed MySQL Database was created.') - database_type: Literal['EXTERNAL', 'MDS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseType', description='Gets the database_type of this ManagedMySqlDatabase.\nThe type of the MySQL Database. Indicates whether the database\nis external or MDS.\n\nAllowed values for this property are: "EXTERNAL", "MDS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - management_state: Literal['ENABLED', 'DISABLED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='managementState', description='Gets the management_state of this ManagedMySqlDatabase.\nIndicates database management status.\n\nAllowed values for this property are: "ENABLED", "DISABLED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this ManagedMySqlDatabase.\nIndicates lifecycle state of the resource.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this ManagedMySqlDatabase.\nThe date and time the Managed MySQL Database was updated.') - - -class ManagedMySqlDatabaseBinaryLogInformation(DbmBaseModel): - """Information pertaining to the binary logs of a MySQL server.""" - - binary_logging: str = Field(..., alias='binaryLogging', description='**[Required]** Gets the binary_logging of this ManagedMySqlDatabaseBinaryLogInformation.\nThe status of binary logging on the MySQL server.') - binary_log_format: str | None = Field(None, alias='binaryLogFormat', description='Gets the binary_log_format of this ManagedMySqlDatabaseBinaryLogInformation.\nThe binary logging format used by the MySQL server.') - binary_log_compression: str | None = Field(None, alias='binaryLogCompression', description='Gets the binary_log_compression of this ManagedMySqlDatabaseBinaryLogInformation.\nIndicates whether compression is enabled for transactions written to binary log files on the MySQL server.') - binary_log_compression_percent: int | None = Field(None, alias='binaryLogCompressionPercent', description='Gets the binary_log_compression_percent of this ManagedMySqlDatabaseBinaryLogInformation.\nThe compression ratio for the binary log, expressed as a percentage.') - binary_log_name: str | None = Field(None, alias='binaryLogName', description='Gets the binary_log_name of this ManagedMySqlDatabaseBinaryLogInformation.\nThe name of the binary log file.') - binary_log_position: int | None = Field(None, alias='binaryLogPosition', description='Gets the binary_log_position of this ManagedMySqlDatabaseBinaryLogInformation.\nThe position within the binary log file.') - - -class ManagedMySqlDatabaseCollection(DbmBaseModel): - """A collection of Managed MySQL Database objects.""" - - items: list[ManagedMySqlDatabaseSummary] = Field(..., description='**[Required]** Gets the items of this ManagedMySqlDatabaseCollection.\nAn array of ManagedMySqlDatabaseSummary resources.') - - -class ManagedMySqlDatabaseGeneralReplicationInformation(DbmBaseModel): - """General information about the replication of a MySQL server.""" - - instance_type: str | None = Field(None, alias='instanceType', description='Gets the instance_type of this ManagedMySqlDatabaseGeneralReplicationInformation.\nThe type of the instance for example, Source, Replica, Primary Group Member, and Secondary Group Member. If the instance is replicating from one or more sources and has one or more replicas, which means, it belongs to a replication chain, the instance type can be Replica/Source.') - host_name: str | None = Field(None, alias='hostName', description="Gets the host_name of this ManagedMySqlDatabaseGeneralReplicationInformation.\nThis server's host name.") - port: int | None = Field(None, description='Gets the port of this ManagedMySqlDatabaseGeneralReplicationInformation.\nThe number of the port on which the server listens for TCP/IP connections.') - server_id: int = Field(..., alias='serverId', description="**[Required]** Gets the server_id of this ManagedMySqlDatabaseGeneralReplicationInformation.\nThis server's ID.") - server_uuid: str = Field(..., alias='serverUuid', description="**[Required]** Gets the server_uuid of this ManagedMySqlDatabaseGeneralReplicationInformation.\nThis server's Universally Unique Identifier (UUID).") - seconds_behind_source_max: int | None = Field(None, alias='secondsBehindSourceMax', description='Gets the seconds_behind_source_max of this ManagedMySqlDatabaseGeneralReplicationInformation.\nThe number of seconds the replica is behind the source. When multiple sources are involved, this is the maximum value across all sources.') - fetch_status_summary: str | None = Field(None, alias='fetchStatusSummary', description='Gets the fetch_status_summary of this ManagedMySqlDatabaseGeneralReplicationInformation.\nA summary of the current status of fetch operations.') - apply_status_summary: str | None = Field(None, alias='applyStatusSummary', description='Gets the apply_status_summary of this ManagedMySqlDatabaseGeneralReplicationInformation.\nA summary of the current status of apply operations.') - is_high_availability_enabled: bool | None = Field(None, alias='isHighAvailabilityEnabled', description='Gets the is_high_availability_enabled of this ManagedMySqlDatabaseGeneralReplicationInformation.\nSpecifies if high availability is enabled on this server.') - high_availability_member_state: str | None = Field(None, alias='highAvailabilityMemberState', description='Gets the high_availability_member_state of this ManagedMySqlDatabaseGeneralReplicationInformation.\nThe state of this server as a group replication member.') - inbound_replications_count: int | None = Field(None, ge=0, alias='inboundReplicationsCount', description='Gets the inbound_replications_count of this ManagedMySqlDatabaseGeneralReplicationInformation.\nThe number of sources this server is replicating from.') - read_only: Literal['ON', 'SUPER', 'OFF', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='readOnly', description='**[Required]** Gets the read_only of this ManagedMySqlDatabaseGeneralReplicationInformation.\nIf the value is ON, the instance is configured as read_only. If the value is SUPER, the instance is configured as super_read_only. If the value is OFF, the instance is neither read_only nor super_read_only.\n\nAllowed values for this property are: "ON", "SUPER", "OFF", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - gtid_mode: str | None = Field(None, alias='gtidMode', description='Gets the gtid_mode of this ManagedMySqlDatabaseGeneralReplicationInformation.\nThe Global Transaction Identifier (GTID) mode of this server.') - executed_gtid_set: str | None = Field(None, alias='executedGtidSet', description='Gets the executed_gtid_set of this ManagedMySqlDatabaseGeneralReplicationInformation.\nThe set of global transaction identifiers for transactions that have been executed on this source server.') - binary_logging: str | None = Field(None, alias='binaryLogging', description='Gets the binary_logging of this ManagedMySqlDatabaseGeneralReplicationInformation.\nThe status of binary logging on this server.') - binary_log_format: str | None = Field(None, alias='binaryLogFormat', description='Gets the binary_log_format of this ManagedMySqlDatabaseGeneralReplicationInformation.\nThe binary logging format used by this server.') - outbound_replications_count: int | None = Field(None, ge=0, alias='outboundReplicationsCount', description='Gets the outbound_replications_count of this ManagedMySqlDatabaseGeneralReplicationInformation.\nThe number of replicas replicating from this server.') - - -class ManagedMySqlDatabaseHighAvailabilityMemberCollection(DbmBaseModel): - """Information pertaining to high availability of a MySQL server.""" - - group_name: str | None = Field(None, alias='groupName', description='Gets the group_name of this ManagedMySqlDatabaseHighAvailabilityMemberCollection.\nThe name of the group to which this server instance belongs.') - single_primary_mode: str | None = Field(None, alias='singlePrimaryMode', description='Gets the single_primary_mode of this ManagedMySqlDatabaseHighAvailabilityMemberCollection.\nIndicates if the replication group is running in single-primary mode.') - group_auto_increment: int | None = Field(None, alias='groupAutoIncrement', description='Gets the group_auto_increment of this ManagedMySqlDatabaseHighAvailabilityMemberCollection.\nThe interval between successive values for auto-incremented columns for transactions that execute on this server instance.') - flow_control: str | None = Field(None, alias='flowControl', description='Gets the flow_control of this ManagedMySqlDatabaseHighAvailabilityMemberCollection.\nThe mode used for flow control.') - member_state: str | None = Field(None, alias='memberState', description='Gets the member_state of this ManagedMySqlDatabaseHighAvailabilityMemberCollection.\nThe state of this server as a group replication member.') - member_role: str | None = Field(None, alias='memberRole', description='Gets the member_role of this ManagedMySqlDatabaseHighAvailabilityMemberCollection.\nThe role of this server as a group replication member.') - view_id: str | None = Field(None, alias='viewId', description='Gets the view_id of this ManagedMySqlDatabaseHighAvailabilityMemberCollection.\nThe current view identifier for this group.') - transactions_in_gtid_executed: int | None = Field(None, alias='transactionsInGtidExecuted', description='Gets the transactions_in_gtid_executed of this ManagedMySqlDatabaseHighAvailabilityMemberCollection.\nThe number of transactions that were replicated within the cluster.') - items: list[ManagedMySqlDatabaseHighAvailabilityMemberSummary] = Field(..., description='**[Required]** Gets the items of this ManagedMySqlDatabaseHighAvailabilityMemberCollection.\nA list of MySqlHighAvailabilityMember records.') - status_summary: MySqlHighAvailabilityStatusSummary | None = Field(None, alias='statusSummary', description='Gets the status_summary of this ManagedMySqlDatabaseHighAvailabilityMemberCollection.') - - -class ManagedMySqlDatabaseHighAvailabilityMemberSummary(DbmBaseModel): - """Information about a member of a MySQL server group replication for high availability.""" - - member_host: str = Field(..., alias='memberHost', description='**[Required]** Gets the member_host of this ManagedMySqlDatabaseHighAvailabilityMemberSummary.\nThe host name of the group member that clients use to connect to it.') - member_port: int = Field(..., alias='memberPort', description='**[Required]** Gets the member_port of this ManagedMySqlDatabaseHighAvailabilityMemberSummary.\nThe port number of the group member that clients use to connect to it.') - member_state: str | None = Field(None, alias='memberState', description='Gets the member_state of this ManagedMySqlDatabaseHighAvailabilityMemberSummary.\nThe current state of the group member.') - member_role: str | None = Field(None, alias='memberRole', description='Gets the member_role of this ManagedMySqlDatabaseHighAvailabilityMemberSummary.\nThe current role of the group member in the group.') - member_uuid: str = Field(..., alias='memberUuid', description='**[Required]** Gets the member_uuid of this ManagedMySqlDatabaseHighAvailabilityMemberSummary.\nThe Universally Unique Identifier (UUID) of the member server.') - - -class ManagedMySqlDatabaseInboundReplicationCollection(DbmBaseModel): - """The collection of inbound replication records for a specific MySQL server.""" - - inbound_replications_count: int | None = Field(None, ge=0, alias='inboundReplicationsCount', description='Gets the inbound_replications_count of this ManagedMySqlDatabaseInboundReplicationCollection.\nThe number of sources this server is replicating from.') - replica_uuid: str | None = Field(None, alias='replicaUuid', description='Gets the replica_uuid of this ManagedMySqlDatabaseInboundReplicationCollection.\nThe Universally Unique Identifier (UUID) value of this replica server.') - replica_server_id: int | None = Field(None, alias='replicaServerId', description='Gets the replica_server_id of this ManagedMySqlDatabaseInboundReplicationCollection.\nThe server ID value of this replica.') - parallel_workers: int | None = Field(None, alias='parallelWorkers', description='Gets the parallel_workers of this ManagedMySqlDatabaseInboundReplicationCollection.\nThe number of applier threads for executing replication transactions in parallel.') - preserve_commit_order: str | None = Field(None, alias='preserveCommitOrder', description='Gets the preserve_commit_order of this ManagedMySqlDatabaseInboundReplicationCollection.\nFor multi-threaded replicas, indicates if transactions are executed and committed on the replica in the same order as they appear in the relay log.') - items: list[ManagedMySqlDatabaseInboundReplicationSummary] = Field(..., description='**[Required]** Gets the items of this ManagedMySqlDatabaseInboundReplicationCollection.\nA list of ManagedMySqlDatabaseInboundReplicationSummary records.') - - -class ManagedMySqlDatabaseInboundReplicationSummary(DbmBaseModel): - """Inbound replication information of a MySQL replica.""" - - source_host: str = Field(..., alias='sourceHost', description='**[Required]** Gets the source_host of this ManagedMySqlDatabaseInboundReplicationSummary.\nThe host name or IP address of the source this replica is connected to.') - source_port: int = Field(..., alias='sourcePort', description='**[Required]** Gets the source_port of this ManagedMySqlDatabaseInboundReplicationSummary.\nThe port used to connect to the source.') - fetch_status: str | None = Field(None, alias='fetchStatus', description='Gets the fetch_status of this ManagedMySqlDatabaseInboundReplicationSummary.\nThe current status of fetch operations.') - apply_status: str | None = Field(None, alias='applyStatus', description='Gets the apply_status of this ManagedMySqlDatabaseInboundReplicationSummary.\nThe current status of apply operations.') - desired_delay_seconds: int | None = Field(None, alias='desiredDelaySeconds', description='Gets the desired_delay_seconds of this ManagedMySqlDatabaseInboundReplicationSummary.\nThe desired number of seconds that the replica must lag the source.') - remaining_delay_seconds: int | None = Field(None, alias='remainingDelaySeconds', description='Gets the remaining_delay_seconds of this ManagedMySqlDatabaseInboundReplicationSummary.\nIf the replica is waiting for the desired delay seconds to pass since the source applied an event, this field contains the number of delay seconds remaining.') - channel_name: str | None = Field(None, alias='channelName', description='Gets the channel_name of this ManagedMySqlDatabaseInboundReplicationSummary.\nThe name of the replication channel.') - source_uuid: str = Field(..., alias='sourceUuid', description='**[Required]** Gets the source_uuid of this ManagedMySqlDatabaseInboundReplicationSummary.\nThe Universally Unique Identifier (UUID) value from the source server.') - source_server_id: int | None = Field(None, alias='sourceServerId', description='Gets the source_server_id of this ManagedMySqlDatabaseInboundReplicationSummary.\nThe server ID value from the source server.') - gtid_assignment: str | None = Field(None, alias='gtidAssignment', description="Gets the gtid_assignment of this ManagedMySqlDatabaseInboundReplicationSummary.\nIndicates whether the channel assigns global transaction identifiers (GTIDs) to anonymous replicated transactions. OFF means no GTIDs are assigned. LOCAL means a GTID is assigned that includes this replica's own universally unique identifier (UUID). A UUID as value indicates that a GTID is assigned, which includes that manually set UUID value.") - applier_filters: list[MySqlReplicationApplierFilter] | None = Field(None, alias='applierFilters', description='Gets the applier_filters of this ManagedMySqlDatabaseInboundReplicationSummary.\nA list of MySqlReplicationApplierFilter records.') - seconds_behind_source: int | None = Field(None, alias='secondsBehindSource', description='Gets the seconds_behind_source of this ManagedMySqlDatabaseInboundReplicationSummary.\nThe number of seconds the replica is behind the source server.') - retrieved_gtid_set: str | None = Field(None, alias='retrievedGtidSet', description='Gets the retrieved_gtid_set of this ManagedMySqlDatabaseInboundReplicationSummary.\nThe set of global transaction IDs corresponding to all transactions received by this replica from the source server. Empty if GTIDs are not in use.') - relay_log_storage_space_used: int | None = Field(None, alias='relayLogStorageSpaceUsed', description='Gets the relay_log_storage_space_used of this ManagedMySqlDatabaseInboundReplicationSummary.\nThe total size in bytes of all the existing relay log files pertaining to this channel.') - transactions_received: int | None = Field(None, alias='transactionsReceived', description='Gets the transactions_received of this ManagedMySqlDatabaseInboundReplicationSummary.\nThe number of transactions received by this replica from the source server.') - apply_delay: float | None = Field(None, alias='applyDelay', description='Gets the apply_delay of this ManagedMySqlDatabaseInboundReplicationSummary.\nThe time in seconds that the current transaction took between being committed on the source and being applied on the replica.') - busy_workers: int | None = Field(None, alias='busyWorkers', description='Gets the busy_workers of this ManagedMySqlDatabaseInboundReplicationSummary.\nThe number of workers currently busy applying transactions from the source server.') - fetch_error: MySqlFetchError | None = Field(None, alias='fetchError', description='Gets the fetch_error of this ManagedMySqlDatabaseInboundReplicationSummary.') - apply_error: MySqlApplyError | None = Field(None, alias='applyError', description='Gets the apply_error of this ManagedMySqlDatabaseInboundReplicationSummary.') - - -class ManagedMySqlDatabaseOutboundReplicationCollection(DbmBaseModel): - """The collection of outbound replication records of a MySQL server.""" - - outbound_replications_count: int | None = Field(None, ge=0, alias='outboundReplicationsCount', description='Gets the outbound_replications_count of this ManagedMySqlDatabaseOutboundReplicationCollection.\nThe number of outbound replications from the MySQL server.') - items: list[ManagedMySqlDatabaseOutboundReplicationSummary] = Field(..., description='**[Required]** Gets the items of this ManagedMySqlDatabaseOutboundReplicationCollection.\nThe list of ManagedMySqlDatabaseOutboundReplicationSummary records.') - - -class ManagedMySqlDatabaseOutboundReplicationSummary(DbmBaseModel): - """An outbound replication record of a MySQL server.""" - - replica_host: str | None = Field(None, alias='replicaHost', description='Gets the replica_host of this ManagedMySqlDatabaseOutboundReplicationSummary.\nThe host name of the replica server, as specified on the replica with the --report-host option. This can differ from the machine name as configured in the operating system.') - replica_port: int | None = Field(None, alias='replicaPort', description='Gets the replica_port of this ManagedMySqlDatabaseOutboundReplicationSummary.\nThe port on the replica server, as specified on the replica with the --report-port option. A zero in this column means that the replica port (--report-port) was not set.') - replica_uuid: str = Field(..., alias='replicaUuid', description='**[Required]** Gets the replica_uuid of this ManagedMySqlDatabaseOutboundReplicationSummary.\nThe Universally Unique Identifier (UUID) value of the replica server.') - replica_server_id: int = Field(..., alias='replicaServerId', description='**[Required]** Gets the replica_server_id of this ManagedMySqlDatabaseOutboundReplicationSummary.\nThe server ID value of the replica.') - - -class ManagedMySqlDatabaseSummary(DbmBaseModel): - """The details of the Managed MySQL Database.""" - - id: str = Field(..., description='**[Required]** Gets the id of this ManagedMySqlDatabaseSummary.\nThe OCID of the Managed MySQL Database.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ManagedMySqlDatabaseSummary.\nThe OCID of the compartment.') - db_name: str = Field(..., alias='dbName', description='**[Required]** Gets the db_name of this ManagedMySqlDatabaseSummary.\nThe name of the MySQL Database.') - db_version: str = Field(..., alias='dbVersion', description='**[Required]** Gets the db_version of this ManagedMySqlDatabaseSummary.\nThe version of the MySQL Database.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this ManagedMySqlDatabaseSummary.\nThe date and time the Managed MySQL Database was created.') - name: str = Field(..., description='**[Required]** Gets the name of this ManagedMySqlDatabaseSummary.\nThe name of the Managed MySQL Database.') - database_type: Literal['EXTERNAL', 'MDS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseType', description='Gets the database_type of this ManagedMySqlDatabaseSummary.\nThe type of the MySQL Database. Indicates whether the database\nis external or MDS.\n\nAllowed values for this property are: "EXTERNAL", "MDS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - management_state: Literal['ENABLED', 'DISABLED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='managementState', description='Gets the management_state of this ManagedMySqlDatabaseSummary.\nIndicates database management status.\n\nAllowed values for this property are: "ENABLED", "DISABLED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this ManagedMySqlDatabaseSummary.\nIndicates lifecycle state of the resource.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - heat_wave_management_type: str | None = Field(None, alias='heatWaveManagementType', description="Gets the heat_wave_management_type of this ManagedMySqlDatabaseSummary.\nThe customer's selected type for HeatWave management.") - - -class MemoryAggregateMetrics(DbmBaseModel): - """The memory aggregate metric details.""" - - memory_usage: list[MetricDataPoint] | None = Field(None, alias='memoryUsage', description='Gets the memory_usage of this MemoryAggregateMetrics.\nThe Memory Usage metrics grouped by memorypool for a specific Managed Database.') - - -class MetricDataPoint(DbmBaseModel): - """The metric values with dimension details.""" - - value: float | None = Field(None, description='Gets the value of this MetricDataPoint.\nThe value of the metric.') - unit: str | None = Field(None, description='Gets the unit of this MetricDataPoint.\nThe unit of the metric value.') - dimensions: list[MetricDimensionDefinition] | None = Field(None, description='Gets the dimensions of this MetricDataPoint.\nThe dimensions of the metric.') - - -class MetricDimensionDefinition(DbmBaseModel): - """The metric dimension details.""" - - dimension_name: str | None = Field(None, alias='dimensionName', description='Gets the dimension_name of this MetricDimensionDefinition.\nThe name of the dimension.') - dimension_value: str | None = Field(None, alias='dimensionValue', description='Gets the dimension_value of this MetricDimensionDefinition.\nThe value of the dimension.') - - -class MetricStatisticsDefinition(DbmBaseModel): - """The metric statistics values with dimension details.""" - - min: float | None = Field(None, description='Gets the min of this MetricStatisticsDefinition.\nThe minimum value of the metric.') - max: float | None = Field(None, description='Gets the max of this MetricStatisticsDefinition.\nThe maximum value of the metric.') - median: float | None = Field(None, description='Gets the median of this MetricStatisticsDefinition.\nThe median value of the metric.') - lower_quartile: float | None = Field(None, alias='lowerQuartile', description='Gets the lower_quartile of this MetricStatisticsDefinition.\nThe first quartile value of the metric.') - upper_quartile: float | None = Field(None, alias='upperQuartile', description='Gets the upper_quartile of this MetricStatisticsDefinition.\nThe third quartile value of the metric.') - unit: str | None = Field(None, description='Gets the unit of this MetricStatisticsDefinition.\nThe unit of the metric value.') - dimensions: list[MetricDimensionDefinition] | None = Field(None, description='Gets the dimensions of this MetricStatisticsDefinition.\nThe dimensions of the metric.') - - -class MetricsAggregationRange(DbmBaseModel): - """The set of aggregated data returned for a metric.""" - - header: DbManagementAnalyticsMetric | None = Field(None, description='Gets the header of this MetricsAggregationRange.') - metrics: list[DbManagementAnalyticsMetric] | None = Field(None, description='Gets the metrics of this MetricsAggregationRange.\nThe list of metrics returned for the specified request. Each of the metrics\nhas a `metricName` and additional properties like `metadata`, `dimensions`.\nIf a property is not set, then use the value from `header`.\n\nSuppose `m` be an item in the `metrics` array:\n- If `m.metricName` is not set, use `header.metricName` instead\n- If `m.durationInSeconds` is not set, use `header.durationInSeconds` instead\n- If `m.dimensions` is not set, use `header.dimensions` instead\n- If `m.metadata` is not set, use `header.metadata` instead') - range_start_time_in_epoch_seconds: int | None = Field(None, alias='rangeStartTimeInEpochSeconds', description='Gets the range_start_time_in_epoch_seconds of this MetricsAggregationRange.\nThe beginning of the time range (inclusive) of the returned metric data.') - range_end_time_in_epoch_seconds: int | None = Field(None, alias='rangeEndTimeInEpochSeconds', description='Gets the range_end_time_in_epoch_seconds of this MetricsAggregationRange.\nThe end of the time range (exclusive) of the returned metric data.') - - -class MetricsAggregationRangeCollection(DbmBaseModel): - """The collection of metrics.""" - - items: list[MetricsAggregationRange] = Field(..., description='**[Required]** Gets the items of this MetricsAggregationRangeCollection.\nThe metric data.') - start_time: str | None = Field(None, alias='startTime', description="Gets the start_time of this MetricsAggregationRangeCollection.\nThe beginning of the metric data query time range. Expressed in UTC in\nISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`.") - end_time: str | None = Field(None, alias='endTime', description="Gets the end_time of this MetricsAggregationRangeCollection.\nThe end of the metric data query time range. Expressed in UTC in\nISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`.") - - -class ModifyAutonomousDatabaseManagementFeatureDetails(DbmRequestModel): - """The details required to modify a Database Management feature for an Autonomous Database.""" - - feature_details: AutonomousDatabaseFeatureDetails = Field(..., alias='featureDetails', description='**[Required]** Gets the feature_details of this ModifyAutonomousDatabaseManagementFeatureDetails.') - - -class ModifyDatabaseManagementFeatureDetails(DbmRequestModel): - """The details required to modify a Database Management feature for an Oracle cloud database.""" - - feature_details: DatabaseFeatureDetails = Field(..., alias='featureDetails', description='**[Required]** Gets the feature_details of this ModifyDatabaseManagementFeatureDetails.') - - -class ModifyPluggableDatabaseManagementFeatureDetails(DbmRequestModel): - """The details required to modify a Database Management feature for an Oracle cloud pluggable database.""" - - feature_details: DatabaseFeatureDetails = Field(..., alias='featureDetails', description='**[Required]** Gets the feature_details of this ModifyPluggableDatabaseManagementFeatureDetails.') - - -class ModifySnapshotSettingsDetails(DbmRequestModel): - """Details to modify the AWR snapshot settings for a database.""" - - retention: int | None = Field(None, description='Gets the retention of this ModifySnapshotSettingsDetails.\nThe retention time in minutes. Acceptable values are 0, 1440 to 52596000 (inclusive), and null.') - interval: int | None = Field(None, description='Gets the interval of this ModifySnapshotSettingsDetails.\nThe interval time in minutes. Acceptable values are 0, 10 to 527040 (inclusive), and null.') - - -class MySqlApplyError(DbmBaseModel): - """Error from the apply operation of a MySQL server replication channel.""" - - last_error_number: int | None = Field(None, alias='lastErrorNumber', description='Gets the last_error_number of this MySqlApplyError.\nThe error number of the most recent error that caused the SQL or coordinator thread to stop.') - last_error_message: str | None = Field(None, alias='lastErrorMessage', description='Gets the last_error_message of this MySqlApplyError.\nThe error message of the most recent error that caused the SQL or coordinator thread to stop.') - time_last_error: datetime | None = Field(None, alias='timeLastError', description='Gets the time_last_error of this MySqlApplyError.\nThe timestamp when the most recent SQL or coordinator error occurred.') - worker_errors: list[MySqlApplyErrorWorker] | None = Field(None, alias='workerErrors', description='Gets the worker_errors of this MySqlApplyError.\nA list of MySqlApplyErrorWorker records.') - - -class MySqlApplyErrorWorker(DbmBaseModel): - """If the replica is multi-threaded, error from worker threads. Otherwise, error from the applier thread.""" - - last_error_number: int = Field(..., alias='lastErrorNumber', description='**[Required]** Gets the last_error_number of this MySqlApplyErrorWorker.\nThe error number of the most recent error that caused the worker thread to stop.') - last_error_message: str = Field(..., alias='lastErrorMessage', description='**[Required]** Gets the last_error_message of this MySqlApplyErrorWorker.\nThe error message of the most recent error that caused the worker thread to stop.') - time_last_error: datetime = Field(..., alias='timeLastError', description='**[Required]** Gets the time_last_error of this MySqlApplyErrorWorker.\nThe timestamp when the most recent worker error occurred.') - - -class MySqlChannelApplyError(DbmBaseModel): - """MySQL server replication channel name and error from its apply operation.""" - - channel_name: str | None = Field(None, alias='channelName', description='Gets the channel_name of this MySqlChannelApplyError.\nThe name of the replication channel.') - apply_error: MySqlApplyError = Field(..., alias='applyError', description='**[Required]** Gets the apply_error of this MySqlChannelApplyError.') - - -class MySqlChannelFetchError(DbmBaseModel): - """MySQL server replication channel name and error from its fetch operation.""" - - channel_name: str | None = Field(None, alias='channelName', description='Gets the channel_name of this MySqlChannelFetchError.\nThe name of the replication channel.') - fetch_error: MySqlFetchError = Field(..., alias='fetchError', description='**[Required]** Gets the fetch_error of this MySqlChannelFetchError.') - - -class MySqlConfigurationDataCollection(DbmBaseModel): - """The collection of configuration records for a specific MySQL Database.""" - - items: list[MySqlConfigurationDataSummary] = Field(..., description='**[Required]** Gets the items of this MySqlConfigurationDataCollection.\nThe list of ConfigurationDataSummary records.') - - -class MySqlConfigurationDataSummary(DbmBaseModel): - """The configuration variables for a MySQL Database.""" - - name: str = Field(..., description='**[Required]** Gets the name of this MySqlConfigurationDataSummary.\nThe name of the configuration variable') - value: str = Field(..., description='**[Required]** Gets the value of this MySqlConfigurationDataSummary.\nThe value of the variable.') - source: Literal['COMPILED', 'GLOBAL', 'SERVER', 'EXPLICIT', 'EXTRA', 'USER', 'LOGIN', 'COMMAND_LINE', 'PERSISTED', 'DYNAMIC', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the source of this MySqlConfigurationDataSummary.\nThe source from which the variable was most recently set.\n\nAllowed values for this property are: "COMPILED", "GLOBAL", "SERVER", "EXPLICIT", "EXTRA", "USER", "LOGIN", "COMMAND_LINE", "PERSISTED", "DYNAMIC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - min_value: float = Field(..., alias='minValue', description='**[Required]** Gets the min_value of this MySqlConfigurationDataSummary.\nThe minimum value of the variable.') - max_value: float = Field(..., alias='maxValue', description='**[Required]** Gets the max_value of this MySqlConfigurationDataSummary.\nThe maximum value of the variable.') - type: str = Field(..., description='**[Required]** Gets the type of this MySqlConfigurationDataSummary.\nThe type of variable.') - default_value: str = Field(..., alias='defaultValue', description='**[Required]** Gets the default_value of this MySqlConfigurationDataSummary.\nThe default value of the variable.') - time_set: datetime = Field(..., alias='timeSet', description='**[Required]** Gets the time_set of this MySqlConfigurationDataSummary.\nThe time when the value of the variable was set.') - host_set: str = Field(..., alias='hostSet', description='**[Required]** Gets the host_set of this MySqlConfigurationDataSummary.\nThe host from where the value of the variable was set. This is empty for a MySQL Database System.') - user_set: str = Field(..., alias='userSet', description='**[Required]** Gets the user_set of this MySqlConfigurationDataSummary.\nThe user who sets the value of the variable. This is empty for a MySQL Database System.') - is_dynamic: bool = Field(..., alias='isDynamic', description='**[Required]** Gets the is_dynamic of this MySqlConfigurationDataSummary.\nIndicates whether the variable can be set dynamically or not.') - is_init: bool = Field(..., alias='isInit', description='**[Required]** Gets the is_init of this MySqlConfigurationDataSummary.\nIndicates whether the variable is set at server startup.') - is_configurable: bool = Field(..., alias='isConfigurable', description='**[Required]** Gets the is_configurable of this MySqlConfigurationDataSummary.\nIndicates whether the variable is configurable.') - path: str = Field(..., description='**[Required]** Gets the path of this MySqlConfigurationDataSummary.\nThe path name of the option file (VARIABLE_PATH), if the variable was set in an option file. If the variable was not set in an') - description: str = Field(..., description='**[Required]** Gets the description of this MySqlConfigurationDataSummary.\nThe description of the variable.') - possible_values: str = Field(..., alias='possibleValues', description='**[Required]** Gets the possible_values of this MySqlConfigurationDataSummary.\nThe comma-separated list of possible values for the variable in value:valueDescription format.') - supported_versions: str = Field(..., alias='supportedVersions', description='**[Required]** Gets the supported_versions of this MySqlConfigurationDataSummary.\nThe comma-separated list of MySQL versions that support the variable.') - - -class MySqlConnectorCollection(DbmBaseModel): - """The collection of external MySQL Database connectors.""" - - items: list[MySqlDatabaseConnectorSummary] = Field(..., description='**[Required]** Gets the items of this MySqlConnectorCollection.\nThe list of external MySQL Database connector records.') - - -class MySqlDataCollection(DbmBaseModel): - """The collection of SQL performance data records for a specific Managed MySQL Database.""" - - items: list[MySqlDataSummary] = Field(..., description='**[Required]** Gets the items of this MySqlDataCollection.\nThe list of SQLDataSummary records.') - - -class MySqlDataSummary(DbmBaseModel): - """The SQL performance data record for a specific SQL query.""" - - schema_name: str = Field(..., alias='schemaName', description='**[Required]** Gets the schema_name of this MySqlDataSummary.\nThe name of the default schema when executing the query. If a schema is not set as the default, then the value is NULL.') - digest: str = Field(..., description='**[Required]** Gets the digest of this MySqlDataSummary.\nThe digest information of the normalized query.') - digest_text: str = Field(..., alias='digestText', description='**[Required]** Gets the digest_text of this MySqlDataSummary.\nThe normalized query.') - count_star: float = Field(..., alias='countStar', description='**[Required]** Gets the count_star of this MySqlDataSummary.\nThe number Of times the query has been executed.') - sum_timer_wait: float = Field(..., alias='sumTimerWait', description='**[Required]** Gets the sum_timer_wait of this MySqlDataSummary.\nThe total amount of time that has been spent executing the query.') - min_timer_wait: float = Field(..., alias='minTimerWait', description='**[Required]** Gets the min_timer_wait of this MySqlDataSummary.\nThe fastest the query has been executed.') - avg_timer_wait: float = Field(..., alias='avgTimerWait', description='**[Required]** Gets the avg_timer_wait of this MySqlDataSummary.\nThe average execution time.') - max_timer_wait: float = Field(..., alias='maxTimerWait', description='**[Required]** Gets the max_timer_wait of this MySqlDataSummary.\nThe slowest the query has been executed.') - max_controlled_memory: int | None = Field(None, alias='maxControlledMemory', description='Gets the max_controlled_memory of this MySqlDataSummary.\nThe maximum amount of controlled memory used by a statement during execution.') - max_total_memory: int | None = Field(None, alias='maxTotalMemory', description='Gets the max_total_memory of this MySqlDataSummary.\nThe maximum amount of memory used by a statement during execution.') - sum_cpu_time: int | None = Field(None, alias='sumCpuTime', description='Gets the sum_cpu_time of this MySqlDataSummary.\nThe total amount of time spent on CPU for this statement.') - sum_lock_time: float = Field(..., alias='sumLockTime', description='**[Required]** Gets the sum_lock_time of this MySqlDataSummary.\nThe total amount of time that has been spent waiting for table locks.') - sum_errors: float = Field(..., alias='sumErrors', description='**[Required]** Gets the sum_errors of this MySqlDataSummary.\nThe total number of errors that have been encountered executing the query.') - sum_warnings: float = Field(..., alias='sumWarnings', description='**[Required]** Gets the sum_warnings of this MySqlDataSummary.\nThe total number of warnings that have been encountered executing the query.') - sum_rows_affected: float = Field(..., alias='sumRowsAffected', description='**[Required]** Gets the sum_rows_affected of this MySqlDataSummary.\nThe total number of rows that have been modified by the query.') - sum_rows_sent: float = Field(..., alias='sumRowsSent', description='**[Required]** Gets the sum_rows_sent of this MySqlDataSummary.\nThe total number of rows that have been returned (sent) to the client.') - sum_rows_examined: float = Field(..., alias='sumRowsExamined', description='**[Required]** Gets the sum_rows_examined of this MySqlDataSummary.\nThe total number of rows that have been examined by the query.') - sum_created_temp_disk_tables: float = Field(..., alias='sumCreatedTempDiskTables', description='**[Required]** Gets the sum_created_temp_disk_tables of this MySqlDataSummary.\nThe total number of On-Disk internal temporary tables that have been created by the query.') - sum_created_temp_tables: float = Field(..., alias='sumCreatedTempTables', description='**[Required]** Gets the sum_created_temp_tables of this MySqlDataSummary.\nThe total number of internal temporary tables (in memory or on disk), which have been created by the query.') - sum_select_full_join: float = Field(..., alias='sumSelectFullJoin', description='**[Required]** Gets the sum_select_full_join of this MySqlDataSummary.\nThe total number of joins that have performed full table scans as there was no join condition or no index for the join condition. This is the same as the select_full_join status variable.') - sum_select_full_range_join: float = Field(..., alias='sumSelectFullRangeJoin', description='**[Required]** Gets the sum_select_full_range_join of this MySqlDataSummary.\nThe total number of joins that use a full range search. This is the same as the select_full_range_join status variable.') - sum_select_range: float = Field(..., alias='sumSelectRange', description='**[Required]** Gets the sum_select_range of this MySqlDataSummary.\nThe total number of times the query has used a range search. This is the same as the select_range status variable.') - sum_select_range_check: float = Field(..., alias='sumSelectRangeCheck', description='**[Required]** Gets the sum_select_range_check of this MySqlDataSummary.\nThe total number of joins by the query where the join does not have an index that checks for the index usage after each row. This is the same as the select_range_check status variable.') - sum_select_scan: float = Field(..., alias='sumSelectScan', description='**[Required]** Gets the sum_select_scan of this MySqlDataSummary.\nThe total number of times the query has performed a full table scan on the first table in the join. This is the same as the select_scan status variable.') - sum_sort_merge_passes: float = Field(..., alias='sumSortMergePasses', description='**[Required]** Gets the sum_sort_merge_passes of this MySqlDataSummary.\nThe total number of sort merge passes that have been done to sort the result of the query. This is the same as the sort_merge_passes status variable.') - sum_sort_range: float = Field(..., alias='sumSortRange', description='**[Required]** Gets the sum_sort_range of this MySqlDataSummary.\nThe total number of times a sort was done using ranges. This is the same as the sort_range status variable.') - sum_sort_rows: float = Field(..., alias='sumSortRows', description='**[Required]** Gets the sum_sort_rows of this MySqlDataSummary.\nThe total number of rows sorted. This is the same as the sort_rowsStatus variable.') - sum_sort_scan: float = Field(..., alias='sumSortScan', description='**[Required]** Gets the sum_sort_scan of this MySqlDataSummary.\nThe total number of times a sort was done by scanning the table. This is the same as the sort_scan status variable.') - sum_no_index_used: float = Field(..., alias='sumNoIndexUsed', description='**[Required]** Gets the sum_no_index_used of this MySqlDataSummary.\nThe total number of times no index was used to execute the query.') - sum_no_good_index_used: float = Field(..., alias='sumNoGoodIndexUsed', description='**[Required]** Gets the sum_no_good_index_used of this MySqlDataSummary.\nThe total number of times no good index was used. This means that the extra column in The EXPLAIN output includes “Range Checked For Each Record.”') - first_seen: datetime = Field(..., alias='firstSeen', description='**[Required]** Gets the first_seen of this MySqlDataSummary.\nThe date and time the query was first seen. If the table is truncated, the first seen value is reset.') - last_seen: datetime = Field(..., alias='lastSeen', description='**[Required]** Gets the last_seen of this MySqlDataSummary.\nThe date and time the query was last seen.') - quantile95: float = Field(..., description='**[Required]** Gets the quantile95 of this MySqlDataSummary.\nThe 95th percentile of the query latency. That is, 95% of the queries complete in the time given or in less time.') - quantile99: float = Field(..., description='**[Required]** Gets the quantile99 of this MySqlDataSummary.\nThe 99th percentile of the query latency.') - quantile999: float = Field(..., description='**[Required]** Gets the quantile999 of this MySqlDataSummary.\nThe 99.9th percentile of the query latency.') - heat_wave_offloaded: float | None = Field(None, alias='heatWaveOffloaded', description='Gets the heat_wave_offloaded of this MySqlDataSummary.\nThe number of query executions offloaded to HeatWave.') - heat_wave_out_of_memory: float | None = Field(None, alias='heatWaveOutOfMemory', description='Gets the heat_wave_out_of_memory of this MySqlDataSummary.\nThe number of query executions with HeatWave out-of-memory errors.') - - -class MySqlDatabaseConnectorSummary(DbmBaseModel): - """Details of external database connector.""" - - name: str | None = Field(None, description='Gets the name of this MySqlDatabaseConnectorSummary.\nExternal MySQL Database Connector Name') - compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this MySqlDatabaseConnectorSummary.\nOCID of compartment for the External MySQL connector.') - associated_services: str | None = Field(None, alias='associatedServices', description='Gets the associated_services of this MySqlDatabaseConnectorSummary.\nOCI Services associated with this connector.') - id: str = Field(..., description='**[Required]** Gets the id of this MySqlDatabaseConnectorSummary.\nOCID of MySQL Database Connector.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this MySqlDatabaseConnectorSummary.\nConnector creation time.') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this MySqlDatabaseConnectorSummary.\nConnector update time.') - source_database: str | None = Field(None, alias='sourceDatabase', description='Gets the source_database of this MySqlDatabaseConnectorSummary.\nName of MySQL Database.') - source_database_type: Literal['EXTERNAL', 'MDS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='sourceDatabaseType', description='Gets the source_database_type of this MySqlDatabaseConnectorSummary.\nType of MySQL Database.\n\nAllowed values for this property are: "EXTERNAL", "MDS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - connection_status: str | None = Field(None, alias='connectionStatus', description='Gets the connection_status of this MySqlDatabaseConnectorSummary.\nConnection Status.') - time_connection_status_updated: datetime | None = Field(None, alias='timeConnectionStatusUpdated', description='Gets the time_connection_status_updated of this MySqlDatabaseConnectorSummary.\nTime when connection status was last updated.') - host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this MySqlDatabaseConnectorSummary.\nHost name for Connector.') - macs_agent_id: str | None = Field(None, alias='macsAgentId', description='Gets the macs_agent_id of this MySqlDatabaseConnectorSummary.\nAgent Id of the MACS agent.') - port: int | None = Field(None, description='Gets the port of this MySqlDatabaseConnectorSummary.\nConnector port.') - connector_type: Literal['MACS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='connectorType', description='Gets the connector_type of this MySqlDatabaseConnectorSummary.\nConnector Type.\n\nAllowed values for this property are: "MACS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - network_protocol: Literal['TCP', 'TCPS', 'SOCKETS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='networkProtocol', description='Gets the network_protocol of this MySqlDatabaseConnectorSummary.\nNetwork Protocol.\n\nAllowed values for this property are: "TCP", "TCPS", "SOCKETS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - credential_type: Literal['MYSQL_EXTERNAL_NON_SSL_CREDENTIALS', 'MYSQL_EXTERNAL_SSL_CREDENTIALS', 'MYSQL_EXTERNAL_SOCKET_CREDENTIALS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='credentialType', description='Gets the credential_type of this MySqlDatabaseConnectorSummary.\nCredential type used to connect to database.\n\nAllowed values for this property are: "MYSQL_EXTERNAL_NON_SSL_CREDENTIALS", "MYSQL_EXTERNAL_SSL_CREDENTIALS", "MYSQL_EXTERNAL_SOCKET_CREDENTIALS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this MySqlDatabaseConnectorSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this MySqlDatabaseConnectorSummary.\nIndicates lifecycle state of the resource.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class MySqlDatabaseUsageMetrics(DbmBaseModel): - """The list of aggregated metrics for Managed MySQL Databases in the fleet.""" - - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this MySqlDatabaseUsageMetrics.\nThe OCID of the compartment where the Managed MySQL Database resides.') - database_name: str = Field(..., alias='databaseName', description='**[Required]** Gets the database_name of this MySqlDatabaseUsageMetrics.\nThe display name of the Managed MySQL Database.') - database_type: str = Field(..., alias='databaseType', description='**[Required]** Gets the database_type of this MySqlDatabaseUsageMetrics.\nIndicates MySQL Database type, ONPREMISE or MySQL Database System.') - mds_deployment_type: str = Field(..., alias='mdsDeploymentType', description='**[Required]** Gets the mds_deployment_type of this MySqlDatabaseUsageMetrics.\nThe type of MySQL Database System.') - mdslifecycle_state: str = Field(..., alias='mdslifecycleState', description='**[Required]** Gets the mdslifecycle_state of this MySqlDatabaseUsageMetrics.\nThe lifecycle state of the MySQL Database System.') - database_version: str = Field(..., alias='databaseVersion', description='**[Required]** Gets the database_version of this MySqlDatabaseUsageMetrics.\nThe version of the MySQL Database.') - db_id: str = Field(..., alias='dbId', description='**[Required]** Gets the db_id of this MySqlDatabaseUsageMetrics.\nThe OCID of the Managed MySQL Database.') - database_status: Literal['UP', 'DOWN', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='databaseStatus', description='**[Required]** Gets the database_status of this MySqlDatabaseUsageMetrics.\nThe status of the MySQL Database. Indicates whether the status of the database\nis UP, DOWN, or UNKNOWN at the current time.\n\nAllowed values for this property are: "UP", "DOWN", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - heat_wave_management_type: str | None = Field(None, alias='heatWaveManagementType', description="Gets the heat_wave_management_type of this MySqlDatabaseUsageMetrics.\nThe customer's selected type for HeatWave management.") - is_heat_wave_enabled: bool | None = Field(None, alias='isHeatWaveEnabled', description='Gets the is_heat_wave_enabled of this MySqlDatabaseUsageMetrics.\nIndicates whether HeatWave is enabled for the MySQL Database System or not.') - heat_wave_cluster_display_name: str | None = Field(None, alias='heatWaveClusterDisplayName', description='Gets the heat_wave_cluster_display_name of this MySqlDatabaseUsageMetrics.\nThe name of the HeatWave cluster.') - heat_wave_node_count: int | None = Field(None, ge=0, alias='heatWaveNodeCount', description='Gets the heat_wave_node_count of this MySqlDatabaseUsageMetrics.\nThe number of nodes in the HeatWave cluster.') - metrics: list[MySqlFleetMetricDefinition] = Field(..., description='**[Required]** Gets the metrics of this MySqlDatabaseUsageMetrics.\nA list of the database health metrics like CPU, Storage, and Memory.') - - -class MySqlDigestErrorSummary(DbmBaseModel): - """Consists of the error and the number of times it is encountered.""" - - error: MySqlQueryMessage = Field(..., description='**[Required]** Gets the error of this MySqlDigestErrorSummary.') - occurrence_count: int = Field(..., ge=0, alias='occurrenceCount', description='**[Required]** Gets the occurrence_count of this MySqlDigestErrorSummary.\nThe number of times a MySQL error is encountered.') - - -class MySqlDigestErrorsCollection(DbmBaseModel): - """The collection of errors for a given digest.""" - - items: list[MySqlDigestErrorSummary] = Field(..., description='**[Required]** Gets the items of this MySqlDigestErrorsCollection.\nThe unique set of errors for a given digest.') - - -class MySqlFetchError(DbmBaseModel): - """Error from the fetch operation of a MySQL server replication channel.""" - - last_error_number: int = Field(..., alias='lastErrorNumber', description='**[Required]** Gets the last_error_number of this MySqlFetchError.\nThe error number of the most recent error that caused the I/O thread to stop.') - last_error_message: str = Field(..., alias='lastErrorMessage', description='**[Required]** Gets the last_error_message of this MySqlFetchError.\nThe error message of the most recent error that caused the I/O thread to stop.') - time_last_error: datetime = Field(..., alias='timeLastError', description='**[Required]** Gets the time_last_error of this MySqlFetchError.\nThe timestamp when the most recent I/O error occurred.') - - -class MySqlFleetByCategory(DbmBaseModel): - """The number of MySQL Databases in the fleet, grouped by database type and sub type.""" - - database_type: str = Field(..., alias='databaseType', description='**[Required]** Gets the database_type of this MySqlFleetByCategory.\nThe type of the MySQL Database. Indicates whether the database is on premises or Oracle Cloud. Allowed values are: MDS and ONPREMISE') - mds_deployment_type: str = Field(..., alias='mdsDeploymentType', description='**[Required]** Gets the mds_deployment_type of this MySqlFleetByCategory.\nThe type of MySQL Database installation. Allowed values are: STANDALONE, HEATWAVE and HA') - inventory_count: int = Field(..., ge=0, alias='inventoryCount', description='**[Required]** Gets the inventory_count of this MySqlFleetByCategory.\nThe number of MySQL Databases.') - - -class MySqlFleetMetricDefinition(DbmBaseModel): - """The list of aggregated metrics for the Managed MySQL Databases in the fleet.""" - - metric_value: int = Field(..., alias='metricValue', description='**[Required]** Gets the metric_value of this MySqlFleetMetricDefinition.\nThe value of the metric.') - metric_value_double: float | None = Field(None, alias='metricValueDouble', description='Gets the metric_value_double of this MySqlFleetMetricDefinition.\nThe value of the metric.') - metric_name: str = Field(..., alias='metricName', description='**[Required]** Gets the metric_name of this MySqlFleetMetricDefinition.\nThe name of the metric.') - timestamp: datetime = Field(..., description='**[Required]** Gets the timestamp of this MySqlFleetMetricDefinition.\nThe data point date and time in UTC in ISO-8601 format.') - dimensions: list[MetricDimensionDefinition] = Field(..., description='**[Required]** Gets the dimensions of this MySqlFleetMetricDefinition.\nThe dimensions of the metric.') - unit: str = Field(..., description='**[Required]** Gets the unit of this MySqlFleetMetricDefinition.\nThe unit of the metric value.') - - -class MySqlFleetMetricSummaryDefinition(DbmBaseModel): - """A summary of the fleet metrics, which provides the metric aggregated value of the MySQL Databases in the fleet.""" - - metric_value: float = Field(..., alias='metricValue', description='**[Required]** Gets the metric_value of this MySqlFleetMetricSummaryDefinition.\nThe aggregated metric value.') - dimensions: list[MetricDimensionDefinition] = Field(..., description='**[Required]** Gets the dimensions of this MySqlFleetMetricSummaryDefinition.\nThe unique dimension key and values of the metric.') - metric_name: str = Field(..., alias='metricName', description='**[Required]** Gets the metric_name of this MySqlFleetMetricSummaryDefinition.\nThe name of the metric.') - unit: str = Field(..., description='**[Required]** Gets the unit of this MySqlFleetMetricSummaryDefinition.\nThe unit of the metric value.') - - -class MySqlFleetMetrics(DbmBaseModel): - """The details of the MySQL Database fleet health metrics.""" - - start_time: str = Field(..., alias='startTime', description='**[Required]** Gets the start_time of this MySqlFleetMetrics.\nThe beginning of the time range during which metric data is retrieved.') - end_time: str = Field(..., alias='endTime', description='**[Required]** Gets the end_time of this MySqlFleetMetrics.\nThe end of the time range during which metric data is retrieved.') - fleet_databases: list[MySqlDatabaseUsageMetrics] = Field(..., alias='fleetDatabases', description='**[Required]** Gets the fleet_databases of this MySqlFleetMetrics.\nThe list of MySQL Databases in the fleet and their usage metrics.') - fleet_summary: list[MySqlFleetSummary] = Field(..., alias='fleetSummary', description='**[Required]** Gets the fleet_summary of this MySqlFleetMetrics.\nA summary of the inventory count and the metrics that describe the aggregated usage of CPU, storage, and so on of all the MySQL Databases in the fleet.') - - -class MySqlFleetSummary(DbmBaseModel): - """A summary of the inventory count and the metrics that describe the aggregated usage of CPU, storage, and so on of all the MySQL Databases in the fleet.""" - - aggregated_metrics: list[MySqlFleetMetricSummaryDefinition] = Field(..., alias='aggregatedMetrics', description='**[Required]** Gets the aggregated_metrics of this MySqlFleetSummary.\nThe usage metrics for the Managed MySQL Databases in the fleet.') - inventory: list[MySqlFleetByCategory] = Field(..., description='**[Required]** Gets the inventory of this MySqlFleetSummary.\nA list of MySQL Databases in the fleet, grouped by database type.') - - -class MySqlHighAvailabilityStatusSummary(DbmBaseModel): - """High availability status summary of a MySQL server.""" - - channel_fetch_errors: list[MySqlChannelFetchError] | None = Field(None, alias='channelFetchErrors', description='Gets the channel_fetch_errors of this MySqlHighAvailabilityStatusSummary.\nA list of MySqlChannelFetchError records.') - channel_apply_errors: list[MySqlChannelApplyError] | None = Field(None, alias='channelApplyErrors', description='Gets the channel_apply_errors of this MySqlHighAvailabilityStatusSummary.\nA list of MySqlChannelApplyError records.') - - -class MySqlQueryDetails(DbmRequestModel): - """The details of a given MySQL query, it consists of the query sample details, the explain plan and potential warnings.""" - - query_sample_details: MySqlQuerySampleDetails = Field(..., alias='querySampleDetails', description='**[Required]** Gets the query_sample_details of this MySqlQueryDetails.') - query_explain_plan: MySqlQueryExplainPlan | None = Field(None, alias='queryExplainPlan', description='Gets the query_explain_plan of this MySqlQueryDetails.') - query_messages: list[MySqlQueryMessage] | None = Field(None, alias='queryMessages', description='Gets the query_messages of this MySqlQueryDetails.\nThe errors, warnings and notes that could be raised by the execution of the query.') - - -class MySqlQueryExplainPlan(DbmBaseModel): - """The explain plan for a given MySQL query.""" - - json_explain: str = Field(..., alias='jsonExplain', description='**[Required]** Gets the json_explain of this MySqlQueryExplainPlan.\nThe json format of the explain plan.') - json_explain_version: Literal['V1', 'V2', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='jsonExplainVersion', description='**[Required]** Gets the json_explain_version of this MySqlQueryExplainPlan.\nThe version of the Json format of MySQL Explain.\n\nAllowed values for this property are: "V1", "V2", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class MySqlQueryMessage(DbmBaseModel): - """The MySQL error, warning or note raised when a query is run, if any.""" - - level: Literal['ERROR', 'WARNING', 'NOTE', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the level of this MySqlQueryMessage.\nThe level of severity of the MySQL message.\n\nAllowed values for this property are: "ERROR", "WARNING", "NOTE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - code: int = Field(..., description='**[Required]** Gets the code of this MySqlQueryMessage.\nThe MySQL code of the raised error, warning or note.') - message_text: str = Field(..., alias='messageText', description='**[Required]** Gets the message_text of this MySqlQueryMessage.\nThe MySQL message text of the raised error, warning or note.') - - -class MySqlQuerySampleDetails(DbmRequestModel): - """The details of a query sample including the query text, execution time and other details.""" - - query_sample_text: str = Field(..., alias='querySampleText', description='**[Required]** Gets the query_sample_text of this MySqlQuerySampleDetails.\nThe query sample mapped by MySQL to a given normalized query.') - time_query_sample_seen: datetime = Field(..., alias='timeQuerySampleSeen', description='**[Required]** Gets the time_query_sample_seen of this MySqlQuerySampleDetails.\nThe date and time the query sample was last seen.') - execution_time: int = Field(..., alias='executionTime', description='**[Required]** Gets the execution_time of this MySqlQuerySampleDetails.\nThe total amount of time that has been spent executing the query sample.') - thread_id: int = Field(..., alias='threadId', description='**[Required]** Gets the thread_id of this MySqlQuerySampleDetails.\nThe thread id of the connection.') - user: str = Field(..., description='**[Required]** Gets the user of this MySqlQuerySampleDetails.\nThe user who ran the query sample.') - host: str = Field(..., description='**[Required]** Gets the host of this MySqlQuerySampleDetails.\nThe host from which the query sample was run.') - mysql_instance: str = Field(..., alias='mysqlInstance', description='**[Required]** Gets the mysql_instance of this MySqlQuerySampleDetails.\nThe MySQL instance against which the query sample was run.') - - -class MySqlReplicationApplierFilter(DbmBaseModel): - """Filter configured for a replication channel.""" - - filter_name: str = Field(..., alias='filterName', description='**[Required]** Gets the filter_name of this MySqlReplicationApplierFilter.\nThe type of replication filter that has been configured for the replication channel.') - filter_rule: str | None = Field(None, alias='filterRule', description='Gets the filter_rule of this MySqlReplicationApplierFilter.\nThe rules configured for the replication filter type.') - - -class NamedCredential(DbmBaseModel): - """The details of a named credential.""" - - name: str = Field(..., description='**[Required]** Gets the name of this NamedCredential.\nThe name of the named credential.') - id: str = Field(..., description='**[Required]** Gets the id of this NamedCredential. The OCID of the named credential.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this NamedCredential. The OCID of the compartment.') - description: str | None = Field(None, description='Gets the description of this NamedCredential.\nThe information specified by the user about the named credential.') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this NamedCredential.\nThe current lifecycle state of the named credential.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this NamedCredential.\nThe details of the lifecycle state.') - scope: Literal['RESOURCE', 'GLOBAL', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the scope of this NamedCredential.\nThe scope of the named credential.\n\nAllowed values for this property are: "RESOURCE", "GLOBAL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - type: Literal['ORACLE_DB', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the type of this NamedCredential.\nThe type of resource associated with the named credential.\n\nAllowed values for this property are: "ORACLE_DB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - content: NamedCredentialContent | None = Field(None, description='Gets the content of this NamedCredential.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this NamedCredential.\nThe date and time the named credential was created.') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this NamedCredential.\nThe date and time the named credential was last updated.') - associated_resource: str | None = Field(None, alias='associatedResource', description='Gets the associated_resource of this NamedCredential. The OCID of the resource that is associated to the named credential.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this NamedCredential. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this NamedCredential. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this NamedCredential. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class NamedCredentialCollection(DbmBaseModel): - """A collection of named credential summary.""" - - items: list[NamedCredentialSummary] = Field(..., description='**[Required]** Gets the items of this NamedCredentialCollection.\nAn array of named credential resources.') - - -class NamedCredentialContent(DbmBaseModel): - """The details of the named credential.""" - - credential_type: Literal['BASIC', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='credentialType', description='**[Required]** Gets the credential_type of this NamedCredentialContent.\nThe type of named credential. Only \'BASIC\' is supported currently.\n\nAllowed values for this property are: "BASIC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class NamedCredentialSummary(DbmBaseModel): - """A summary of the named credential.""" - - id: str = Field(..., description='**[Required]** Gets the id of this NamedCredentialSummary. The OCID of the named credential.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this NamedCredentialSummary. The OCID of the compartment in which the named credential resides.') - name: str = Field(..., description='**[Required]** Gets the name of this NamedCredentialSummary.\nThe name of the named credential. Valid characters are uppercase or\nlowercase letters, numbers, and "_". The name of the named credential\ncannot be modified. It must be unique in the compartment and must begin with\nan alphabetic character.') - description: str = Field(..., description='**[Required]** Gets the description of this NamedCredentialSummary.\nThe information specified by the user about the named credential.') - scope: Literal['RESOURCE', 'GLOBAL', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the scope of this NamedCredentialSummary.\nThe scope of the named credential.\n\nAllowed values for this property are: "RESOURCE", "GLOBAL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - type: Literal['ORACLE_DB', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the type of this NamedCredentialSummary.\nThe type of resource associated with the named credential.\n\nAllowed values for this property are: "ORACLE_DB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this NamedCredentialSummary.\nThe current lifecycle state of the named credential.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str = Field(..., alias='lifecycleDetails', description='**[Required]** Gets the lifecycle_details of this NamedCredentialSummary.\nThe details of the lifecycle state.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this NamedCredentialSummary.\nThe date and time the named credential was created.') - time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this NamedCredentialSummary.\nThe date and time the named credential was last updated.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this NamedCredentialSummary. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this NamedCredentialSummary. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this NamedCredentialSummary. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class NamedPreferredCredential(DbmBaseModel): - """The details of the 'NAMED_CREDENTIAL' preferred credential.""" - - type: Literal['BASIC', 'NAMED_CREDENTIAL', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the type of this PreferredCredential.\nThe type of preferred credential. Only \'BASIC\' is supported currently.\n\nAllowed values for this property are: "BASIC", "NAMED_CREDENTIAL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - credential_name: str | None = Field(None, alias='credentialName', description='Gets the credential_name of this PreferredCredential.\nThe name of the preferred credential.') - status: Literal['SET', 'NOT_SET', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this PreferredCredential.\nThe status of the preferred credential.\n\nAllowed values for this property are: "SET", "NOT_SET", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - is_accessible: bool | None = Field(None, alias='isAccessible', description='Gets the is_accessible of this PreferredCredential.\nIndicates whether the preferred credential is accessible.') - named_credential_id: str | None = Field(None, alias='namedCredentialId', description='Gets the named_credential_id of this NamedPreferredCredential. The OCID of the Named Credential that contains the database user password metadata.') - - -class ObjectPrivilegeCollection(DbmBaseModel): - """A collection of object privileges granted to the current user.""" - - items: list[ObjectPrivilegeSummary] = Field(..., description='**[Required]** Gets the items of this ObjectPrivilegeCollection.\nAn array of object privileges.') - - -class ObjectPrivilegeSummary(DbmBaseModel): - """A summary of object privileges.""" - - name: str | None = Field(None, description='Gets the name of this ObjectPrivilegeSummary.\nThe name of the privilege on the object.') - schema_type: str | None = Field(None, alias='schemaType', description='Gets the schema_type of this ObjectPrivilegeSummary.\nThe type of object.') - owner: str | None = Field(None, description='Gets the owner of this ObjectPrivilegeSummary.\nThe owner of the object.') - grantor: str | None = Field(None, description='Gets the grantor of this ObjectPrivilegeSummary.\nThe name of the user who granted the object privilege.') - hierarchy: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the hierarchy of this ObjectPrivilegeSummary.\nIndicates whether the privilege is granted with the HIERARCHY OPTION (YES) or not (NO).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - object: str | None = Field(None, description='Gets the object of this ObjectPrivilegeSummary.\nThe name of the object. The object can be any object, including tables, packages, indexes, sequences, and so on.') - grant_option: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='grantOption', description='Gets the grant_option of this ObjectPrivilegeSummary.\nIndicates whether the privilege is granted with the GRANT OPTION (YES) or not (NO).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - common: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the common of this ObjectPrivilegeSummary.\nIndicates how the object privilege was granted. Possible values:\nYES if the role is granted commonly (CONTAINER=ALL is used)\nNO if the role is granted locally (CONTAINER=ALL is not used)\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - inherited: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the inherited of this ObjectPrivilegeSummary.\nIndicates whether the granted privilege is inherited from another container (YES) or not (NO).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class ObjectStorageJobExecutionResultDetails(DbmRequestModel): - """The details of the job execution result stored in Object Storage. The -job execution result could be accessed using the Object Storage API.""" - - type: Literal['OBJECT_STORAGE', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the type of this JobExecutionResultDetails.\nThe type of job execution result.\n\nAllowed values for this property are: "OBJECT_STORAGE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - namespace_name: str | None = Field(None, alias='namespaceName', description='Gets the namespace_name of this ObjectStorageJobExecutionResultDetails.\nThe Object Storage namespace used for job execution result storage.') - bucket_name: str | None = Field(None, alias='bucketName', description='Gets the bucket_name of this ObjectStorageJobExecutionResultDetails.\nThe name of the bucket used for job execution result storage.') - object_name: str | None = Field(None, alias='objectName', description='Gets the object_name of this ObjectStorageJobExecutionResultDetails.\nThe name of the object containing the job execution result.') - row_count: int | None = Field(None, ge=0, alias='rowCount', description='Gets the row_count of this ObjectStorageJobExecutionResultDetails.\nThe number of rows returned in the result for the Query SqlType.') - - -class ObjectStorageJobExecutionResultLocation(DbmBaseModel): - """The details about Object Storage job execution result location type.""" - - type: Literal['OBJECT_STORAGE', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the type of this JobExecutionResultLocation.\nThe type of the job execution result location.\n\nAllowed values for this property are: "OBJECT_STORAGE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - namespace_name: str | None = Field(None, alias='namespaceName', description='Gets the namespace_name of this ObjectStorageJobExecutionResultLocation.\nThe Object Storage namespace used for job execution result storage.') - bucket_name: str | None = Field(None, alias='bucketName', description='Gets the bucket_name of this ObjectStorageJobExecutionResultLocation.\nThe name of the bucket used for job execution result storage.') - - -class OpenAlertHistory(DbmBaseModel): - """The existing open alerts in the Exadata storage server.""" - - alerts: list[OpenAlertSummary] = Field(..., description='**[Required]** Gets the alerts of this OpenAlertHistory.\nA list of open alerts.') - - -class OpenAlertSummary(DbmBaseModel): - """An alert from the Exadata storage server.""" - - severity: Literal['CLEAR', 'INFO', 'WARNING', 'CRITICAL', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the severity of this OpenAlertSummary.\nThe severity of the alert.\n\nAllowed values for this property are: "CLEAR", "INFO", "WARNING", "CRITICAL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - type: Literal['STATEFUL', 'STATELESS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the type of this OpenAlertSummary.\nThe type of alert.\n\nAllowed values for this property are: "STATEFUL", "STATELESS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_start_at: datetime | None = Field(None, alias='timeStartAt', description='Gets the time_start_at of this OpenAlertSummary.\nThe start time of the alert.') - message: str | None = Field(None, description='Gets the message of this OpenAlertSummary.\nThe alert message.') - - -class OptimizerDatabase(DbmBaseModel): - """The subset information of the Managed Database resource, which is used by Optimizer Statistics.""" - - id: str = Field(..., description='**[Required]** Gets the id of this OptimizerDatabase. The OCID of the Managed Database.') - name: str = Field(..., description='**[Required]** Gets the name of this OptimizerDatabase.\nThe name of the Managed Database.') - db_type: Literal['EXTERNAL_SIDB', 'EXTERNAL_RAC', 'CLOUD_SIDB', 'CLOUD_RAC', 'SHARED', 'DEDICATED', 'CLOUD_AT_CUSTOMER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dbType', description='**[Required]** Gets the db_type of this OptimizerDatabase.\nThe type of Oracle Database installation.\n\nAllowed values for this property are: "EXTERNAL_SIDB", "EXTERNAL_RAC", "CLOUD_SIDB", "CLOUD_RAC", "SHARED", "DEDICATED", "CLOUD_AT_CUSTOMER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - db_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dbSubType', description='**[Required]** Gets the db_sub_type of this OptimizerDatabase.\nThe subtype of the Oracle Database. Indicates whether the database is a Container Database,\nPluggable Database, Non-container Database, Autonomous Database, or Autonomous Container Database.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - db_deployment_type: Literal['ONPREMISE', 'BM', 'VM', 'EXADATA', 'EXADATA_CC', 'AUTONOMOUS', 'EXADATA_XS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dbDeploymentType', description='**[Required]** Gets the db_deployment_type of this OptimizerDatabase.\nThe infrastructure used to deploy the Oracle Database.\n\nAllowed values for this property are: "ONPREMISE", "BM", "VM", "EXADATA", "EXADATA_CC", "AUTONOMOUS", "EXADATA_XS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - db_version: str = Field(..., alias='dbVersion', description='**[Required]** Gets the db_version of this OptimizerDatabase.\nThe version of the Oracle Database.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this OptimizerDatabase. The OCID of the compartment in which the Managed Database resides.') - - -class OptimizerStatisticsAdvisorExecution(DbmBaseModel): - """The summary of the Optimizer Statistics Advisor execution, which includes information about the Managed Database -and a comprehensive execution report.""" - - database: OptimizerDatabase | None = Field(None, description='Gets the database of this OptimizerStatisticsAdvisorExecution.') - report: OptimizerStatisticsAdvisorExecutionReport | None = Field(None, description='Gets the report of this OptimizerStatisticsAdvisorExecution.') - task_name: str = Field(..., alias='taskName', description='**[Required]** Gets the task_name of this OptimizerStatisticsAdvisorExecution.\nThe name of the Optimizer Statistics Advisor task.') - execution_name: str = Field(..., alias='executionName', description='**[Required]** Gets the execution_name of this OptimizerStatisticsAdvisorExecution.\nThe name of the Optimizer Statistics Advisor execution.') - time_start: datetime = Field(..., alias='timeStart', description='**[Required]** Gets the time_start of this OptimizerStatisticsAdvisorExecution.\nThe start time of the time range to retrieve the Optimizer Statistics Advisor execution of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".') - time_end: datetime = Field(..., alias='timeEnd', description='**[Required]** Gets the time_end of this OptimizerStatisticsAdvisorExecution.\nThe end time of the time range to retrieve the Optimizer Statistics Advisor execution of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".') - status: Literal['EXECUTING', 'COMPLETED', 'INTERRUPTED', 'CANCELLED', 'FATAL_ERROR', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the status of this OptimizerStatisticsAdvisorExecution.\nThe status of the Optimizer Statistics Advisor execution.\n\nAllowed values for this property are: "EXECUTING", "COMPLETED", "INTERRUPTED", "CANCELLED", "FATAL_ERROR", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - status_message: str | None = Field(None, alias='statusMessage', description='Gets the status_message of this OptimizerStatisticsAdvisorExecution.\nThe Optimizer Statistics Advisor execution status message, if any.') - error_message: str | None = Field(None, alias='errorMessage', description='Gets the error_message of this OptimizerStatisticsAdvisorExecution.\nThe errors in the Optimizer Statistics Advisor execution, if any.') - findings: int | None = Field(None, description='Gets the findings of this OptimizerStatisticsAdvisorExecution.\nThe number of findings generated by the Optimizer Statistics Advisor execution.') - - -class OptimizerStatisticsAdvisorExecutionReport(DbmBaseModel): - """A report that includes the rules, findings, recommendations, and actions discovered during the -execution of the Optimizer Statistics Advisor.""" - - summary: str = Field(..., description='**[Required]** Gets the summary of this OptimizerStatisticsAdvisorExecutionReport.\nA summary of the Optimizer Statistics Advisor execution.') - rules: list[AdvisorRule] = Field(..., description='**[Required]** Gets the rules of this OptimizerStatisticsAdvisorExecutionReport.\nThe list of rules that were not adhered to by the Optimizer Statistics Collection.') - - -class OptimizerStatisticsAdvisorExecutionScript(DbmBaseModel): - """The Oracle system-generated script for the Optimizer Statistics Advisor execution.""" - - script: str = Field(..., description='**[Required]** Gets the script of this OptimizerStatisticsAdvisorExecutionScript.\nThe Optimizer Statistics Advisor execution script.') - - -class OptimizerStatisticsAdvisorExecutionSummary(DbmBaseModel): - """The summary of the Optimizer Statistics Advisor execution.""" - - task_name: str = Field(..., alias='taskName', description='**[Required]** Gets the task_name of this OptimizerStatisticsAdvisorExecutionSummary.\nThe name of the Optimizer Statistics Advisor task.') - execution_name: str = Field(..., alias='executionName', description='**[Required]** Gets the execution_name of this OptimizerStatisticsAdvisorExecutionSummary.\nThe name of the Optimizer Statistics Advisor execution.') - time_start: datetime = Field(..., alias='timeStart', description='**[Required]** Gets the time_start of this OptimizerStatisticsAdvisorExecutionSummary.\nThe start time of the time range to retrieve the Optimizer Statistics Advisor execution of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".') - time_end: datetime = Field(..., alias='timeEnd', description='**[Required]** Gets the time_end of this OptimizerStatisticsAdvisorExecutionSummary.\nThe end time of the time range to retrieve the Optimizer Statistics Advisor execution of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".') - status: Literal['EXECUTING', 'COMPLETED', 'INTERRUPTED', 'CANCELLED', 'FATAL_ERROR', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the status of this OptimizerStatisticsAdvisorExecutionSummary.\nThe status of the Optimizer Statistics Advisor execution.\n\nAllowed values for this property are: "EXECUTING", "COMPLETED", "INTERRUPTED", "CANCELLED", "FATAL_ERROR", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - status_message: str | None = Field(None, alias='statusMessage', description='Gets the status_message of this OptimizerStatisticsAdvisorExecutionSummary.\nThe Optimizer Statistics Advisor execution status message, if any.') - error_message: str | None = Field(None, alias='errorMessage', description='Gets the error_message of this OptimizerStatisticsAdvisorExecutionSummary.\nThe errors in the Optimizer Statistics Advisor execution, if any.') - findings: int | None = Field(None, description='Gets the findings of this OptimizerStatisticsAdvisorExecutionSummary.\nThe number of findings generated by the Optimizer Statistics Advisor execution.') - - -class OptimizerStatisticsAdvisorExecutionsCollection(DbmBaseModel): - """The details of each Optimizer Statistics Advisor execution.""" - - items: list[OptimizerStatisticsAdvisorExecutionSummary] = Field(..., description='**[Required]** Gets the items of this OptimizerStatisticsAdvisorExecutionsCollection.\nThe list of Optimizer Statistics Advisor executions.') - - -class OptimizerStatisticsCollectionAggregationSummary(DbmBaseModel): - """The summary of the Optimizer Statistics Collection, which includes the aggregated number of tasks grouped by status.""" - - group_by: Literal['TASK_STATUS', 'TASK_OBJECTS_STATUS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='groupBy', description='Gets the group_by of this OptimizerStatisticsCollectionAggregationSummary.\nThe optimizer statistics tasks grouped by type.\n\nAllowed values for this property are: "TASK_STATUS", "TASK_OBJECTS_STATUS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_start: datetime = Field(..., alias='timeStart', description='**[Required]** Gets the time_start of this OptimizerStatisticsCollectionAggregationSummary.\nIndicates the start of the hour as the statistics are aggregated per hour.') - time_end: datetime | None = Field(None, alias='timeEnd', description='Gets the time_end of this OptimizerStatisticsCollectionAggregationSummary.\nIndicates the end of the hour as the statistics are aggregated per hour.') - pending: int | None = Field(None, description='Gets the pending of this OptimizerStatisticsCollectionAggregationSummary.\nThe number of tasks or objects for which statistics are yet to be gathered.') - in_progress: int | None = Field(None, alias='inProgress', description='Gets the in_progress of this OptimizerStatisticsCollectionAggregationSummary.\nThe number of tasks or objects for which statistics gathering is in progress.') - completed: int | None = Field(None, description='Gets the completed of this OptimizerStatisticsCollectionAggregationSummary.\nThe number of tasks or objects for which statistics gathering is completed.') - failed: int | None = Field(None, description='Gets the failed of this OptimizerStatisticsCollectionAggregationSummary.\nThe number of tasks or objects for which statistics gathering failed.') - skipped: int | None = Field(None, description='Gets the skipped of this OptimizerStatisticsCollectionAggregationSummary.\nThe number of tasks or objects for which statistics gathering was skipped.') - timed_out: int | None = Field(None, alias='timedOut', description='Gets the timed_out of this OptimizerStatisticsCollectionAggregationSummary.\nThe number of tasks or objects for which statistics gathering timed out.') - unknown: int | None = Field(None, description='Gets the unknown of this OptimizerStatisticsCollectionAggregationSummary.\nThe number of tasks or objects for which the status of statistics gathering is unknown.') - total: int | None = Field(None, description='Gets the total of this OptimizerStatisticsCollectionAggregationSummary.\nThe total number of tasks or objects for which statistics collection is finished. This number is the\nsum of all the tasks or objects with various statuses: pending, inProgress, completed, failed, skipped,\ntimedOut, and unknown.') - - -class OptimizerStatisticsCollectionAggregationsCollection(DbmBaseModel): - """The number of times optimizer statistics are collected each hour, grouped by task status.""" - - items: list[OptimizerStatisticsCollectionAggregationSummary] = Field(..., description='**[Required]** Gets the items of this OptimizerStatisticsCollectionAggregationsCollection.\nThe list of Optimizer Statistics Collection details.') - - -class OptimizerStatisticsCollectionOperation(DbmBaseModel): - """The summary of the Optimizer Statistics Collection tasks, which includes details of the Managed Database and the execution.""" - - database: OptimizerDatabase | None = Field(None, description='Gets the database of this OptimizerStatisticsCollectionOperation.') - tasks: list[OptimizerStatisticsOperationTask] | None = Field(None, description='Gets the tasks of this OptimizerStatisticsCollectionOperation.\nAn array of Optimizer Statistics Collection task details.') - id: int = Field(..., description='**[Required]** Gets the id of this OptimizerStatisticsCollectionOperation.\nThe ID of the operation.') - operation_name: str = Field(..., alias='operationName', description='**[Required]** Gets the operation_name of this OptimizerStatisticsCollectionOperation.\nThe name of the operation.') - target: str = Field(..., description='**[Required]** Gets the target of this OptimizerStatisticsCollectionOperation.\nThe target object type such as Table, Index, and Partition.') - job_name: str = Field(..., alias='jobName', description='**[Required]** Gets the job_name of this OptimizerStatisticsCollectionOperation.\nThe name of the job.') - status: Literal['IN_PROGRESS', 'COMPLETED', 'FAILED', 'TIMED_OUT', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the status of this OptimizerStatisticsCollectionOperation.\nThe status of the operation such as Completed, and Failed.\n\nAllowed values for this property are: "IN_PROGRESS", "COMPLETED", "FAILED", "TIMED_OUT", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - start_time: str = Field(..., alias='startTime', description='**[Required]** Gets the start_time of this OptimizerStatisticsCollectionOperation.\nThe start time of the operation.') - end_time: str = Field(..., alias='endTime', description='**[Required]** Gets the end_time of this OptimizerStatisticsCollectionOperation.\nThe end time of the operation.') - duration_in_seconds: float = Field(..., alias='durationInSeconds', description='**[Required]** Gets the duration_in_seconds of this OptimizerStatisticsCollectionOperation.\nThe time it takes to complete the operation (in seconds).') - completed_count: int | None = Field(None, ge=0, alias='completedCount', description='Gets the completed_count of this OptimizerStatisticsCollectionOperation.\nThe number of objects for which statistics collection is completed.') - in_progress_count: int | None = Field(None, ge=0, alias='inProgressCount', description='Gets the in_progress_count of this OptimizerStatisticsCollectionOperation.\nThe number of objects for which statistics collection is in progress.') - failed_count: int | None = Field(None, ge=0, alias='failedCount', description='Gets the failed_count of this OptimizerStatisticsCollectionOperation.\nThe number of objects for which statistics collection failed.') - timed_out_count: int | None = Field(None, ge=0, alias='timedOutCount', description='Gets the timed_out_count of this OptimizerStatisticsCollectionOperation.\nThe number of objects for which statistics collection timed out.') - total_objects_count: int | None = Field(None, ge=0, alias='totalObjectsCount', description='Gets the total_objects_count of this OptimizerStatisticsCollectionOperation.\nThe total number of objects for which statistics is collected. This number is the sum of all the objects\nwith various statuses: completed, inProgress, failed, and timedOut.') - - -class OptimizerStatisticsCollectionOperationSummary(DbmBaseModel): - """The summary of the Optimizer Statistics Collection operation.""" - - id: int = Field(..., description='**[Required]** Gets the id of this OptimizerStatisticsCollectionOperationSummary.\nThe ID of the operation.') - operation_name: str = Field(..., alias='operationName', description='**[Required]** Gets the operation_name of this OptimizerStatisticsCollectionOperationSummary.\nThe name of the operation.') - target: str = Field(..., description='**[Required]** Gets the target of this OptimizerStatisticsCollectionOperationSummary.\nThe target object type such as Table, Index, and Partition.') - job_name: str = Field(..., alias='jobName', description='**[Required]** Gets the job_name of this OptimizerStatisticsCollectionOperationSummary.\nThe name of the job.') - status: Literal['IN_PROGRESS', 'COMPLETED', 'FAILED', 'TIMED_OUT', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the status of this OptimizerStatisticsCollectionOperationSummary.\nThe status of the operation such as Completed, and Failed.\n\nAllowed values for this property are: "IN_PROGRESS", "COMPLETED", "FAILED", "TIMED_OUT", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - start_time: str = Field(..., alias='startTime', description='**[Required]** Gets the start_time of this OptimizerStatisticsCollectionOperationSummary.\nThe start time of the operation.') - end_time: str = Field(..., alias='endTime', description='**[Required]** Gets the end_time of this OptimizerStatisticsCollectionOperationSummary.\nThe end time of the operation.') - duration_in_seconds: float = Field(..., alias='durationInSeconds', description='**[Required]** Gets the duration_in_seconds of this OptimizerStatisticsCollectionOperationSummary.\nThe time it takes to complete the operation (in seconds).') - completed_count: int | None = Field(None, ge=0, alias='completedCount', description='Gets the completed_count of this OptimizerStatisticsCollectionOperationSummary.\nThe number of objects for which statistics collection is completed.') - in_progress_count: int | None = Field(None, ge=0, alias='inProgressCount', description='Gets the in_progress_count of this OptimizerStatisticsCollectionOperationSummary.\nThe number of objects for which statistics collection is in progress.') - failed_count: int | None = Field(None, ge=0, alias='failedCount', description='Gets the failed_count of this OptimizerStatisticsCollectionOperationSummary.\nThe number of objects for which statistics collection failed.') - timed_out_count: int | None = Field(None, ge=0, alias='timedOutCount', description='Gets the timed_out_count of this OptimizerStatisticsCollectionOperationSummary.\nThe number of objects for which statistics collection timed out.') - total_objects_count: int | None = Field(None, ge=0, alias='totalObjectsCount', description='Gets the total_objects_count of this OptimizerStatisticsCollectionOperationSummary.\nThe total number of objects for which statistics is collected. This number is the sum of all the objects\nwith various statuses: completed, inProgress, failed, and timedOut.') - - -class OptimizerStatisticsCollectionOperationsCollection(DbmBaseModel): - """The details of each statistics collection operation.""" - - items: list[OptimizerStatisticsCollectionOperationSummary] = Field(..., description='**[Required]** Gets the items of this OptimizerStatisticsCollectionOperationsCollection.\nThe details of the Optimizer Statistics Collection operation.') - - -class OptimizerStatisticsOperationTask(DbmBaseModel): - """The details of the Optimizer Statistics Collection task.""" - - target: str = Field(..., description='**[Required]** Gets the target of this OptimizerStatisticsOperationTask.\nThe name of the target object for which statistics are gathered.') - target_type: Literal['TABLE', 'GLOBAL_TABLE', 'COORDINATOR_TABLE', 'TABLE_PARTITION', 'TABLE_SUBPARTITION', 'INDEX', 'INDEX_PARTITION', 'INDEX_SUBPARTITION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='targetType', description='**[Required]** Gets the target_type of this OptimizerStatisticsOperationTask.\nThe type of target object.\n\nAllowed values for this property are: "TABLE", "GLOBAL_TABLE", "COORDINATOR_TABLE", "TABLE_PARTITION", "TABLE_SUBPARTITION", "INDEX", "INDEX_PARTITION", "INDEX_SUBPARTITION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_start: datetime = Field(..., alias='timeStart', description='**[Required]** Gets the time_start of this OptimizerStatisticsOperationTask.\nThe start time of the Optimizer Statistics Collection task.') - time_end: datetime = Field(..., alias='timeEnd', description='**[Required]** Gets the time_end of this OptimizerStatisticsOperationTask.\nThe end time of the Optimizer Statistics Collection task.') - status: Literal['PENDING', 'IN_PROGRESS', 'SKIPPED', 'TIMED_OUT', 'COMPLETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the status of this OptimizerStatisticsOperationTask.\nThe status of the Optimizer Statistics Collection task.\n\nAllowed values for this property are: "PENDING", "IN_PROGRESS", "SKIPPED", "TIMED_OUT", "COMPLETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class ParentGroup(DbmBaseModel): - """The parent Managed Database Group of a Managed Database.""" - - id: str = Field(..., description='**[Required]** Gets the id of this ParentGroup. The OCID of the Managed Database Group.') - name: str = Field(..., description='**[Required]** Gets the name of this ParentGroup.\nThe name of the Managed Database Group.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this ParentGroup. The OCID of the compartment in which the Managed Database Group resides.') - - -class PatchCloudDbSystemDiscoveryDetails(DbmRequestModel): - """The details required to update a cloud DB system discovery resource.""" - - items: list[PatchInstruction] | None = Field(None, description='Gets the items of this PatchCloudDbSystemDiscoveryDetails.\nA sequence of instructions to apply to the resource.') - - -class PatchExternalDbSystemDiscoveryDetails(DbmRequestModel): - """The details required to update an external DB system discovery resource.""" - - items: list[PatchInstruction] | None = Field(None, description='Gets the items of this PatchExternalDbSystemDiscoveryDetails.\nA sequence of instructions to apply to the resource.') - - -class PatchInstruction(DbmBaseModel): - """A single instruction to be included as part of Patch request content.""" - - operation: Literal['MERGE'] = Field(..., description='**[Required]** Gets the operation of this PatchInstruction.\nThe type of operation.\n\nAllowed values for this property are: "MERGE"') - selection: str = Field(..., description='**[Required]** Gets the selection of this PatchInstruction. The set of values to which the operation applies as a JMESPath expression for evaluation against the context resource. An operation fails if the selection yields an exception, except as otherwise specified. Note that comparisons involving non-primitive values (objects or arrays) are not supported and will always evaluate to false.') - - -class PatchMergeInstruction(DbmBaseModel): - """An operation that recursively updates items of the selection, or adding the value if the selection is empty. -If the value is not an object, it is used directly, otherwise each key-value member is used -to create or update a member of the same name in the target and the same process is applied recursively for each object-typed value -(similar to RFC 7396 JSON Merge Patch, except that null values are copied -rather than transformed into deletions). -NOT_FOUND exceptions are handled by creating the implied containing structure. -To avoid referential errors if an item's descendant is also in the selection, items of the selection are processed in order of decreasing depth.""" - - - - operation: Literal['MERGE'] = Field(..., description='**[Required]** Gets the operation of this PatchInstruction.\nThe type of operation.\n\nAllowed values for this property are: "MERGE"') - selection: str = Field(..., description='**[Required]** Gets the selection of this PatchInstruction. The set of values to which the operation applies as a JMESPath expression for evaluation against the context resource. An operation fails if the selection yields an exception, except as otherwise specified. Note that comparisons involving non-primitive values (objects or arrays) are not supported and will always evaluate to false.') - value: Any | None = Field(None, description='Gets the value of this PatchMergeInstruction.\nA value to be merged into the target.') - - -class PdbMetrics(DbmBaseModel): - """The summary of Pluggable Databases (PDBs) and their resource usage metrics, within a specific Container Database (CDB).""" - - database_usage_metrics: list[DatabaseUsageMetrics] = Field(..., alias='databaseUsageMetrics', description='**[Required]** Gets the database_usage_metrics of this PdbMetrics.\nA summary of PDBs and their resource usage metrics such as CPU, User I/O, and Storage, within a specific CDB.') - - -class PdbStatusDetails(DbmRequestModel): - """The number and status of PDBs in a Container Database.""" - - status: Literal['UP', 'DOWN', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this PdbStatusDetails.\nThe status of the PDBs with this count.\n\nAllowed values for this property are: "UP", "DOWN", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - count: int | None = Field(None, ge=0, description='Gets the count of this PdbStatusDetails.\nThe number of PDBs with this status.') - - -class PeerDatabaseMetrics(DbmBaseModel): - """The summary of resource usage metrics for the peer database.""" - - peer_db_metrics: list[DatabaseUsageMetrics] = Field(..., alias='peerDbMetrics', description='**[Required]** Gets the peer_db_metrics of this PeerDatabaseMetrics.\nA list of resource usage metrics for the peer database.') - - -class PerformanceMetrics(DbmBaseModel): - """The Data Guard performance metric details.""" - - name: str | None = Field(None, description='Gets the name of this PerformanceMetrics.\nThe name of the metric.') - dimensions: Any | None = Field(None, description='Gets the dimensions of this PerformanceMetrics.\nThe dimensions of the Data Guard performance metrics, such as primary database ID, primary database unique name.') - metadata: Any | None = Field(None, description='Gets the metadata of this PerformanceMetrics.\nThe metadata of the metric, such as Unit.') - datapoints: list[DataPoints] | None = Field(None, description='Gets the datapoints of this PerformanceMetrics.\nThe aggregated datapoints of the metric.') - - -class PerformanceMetricsData(DbmBaseModel): - """The list of Data Guard performance metrics for Managed Databases.""" - - compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this PerformanceMetricsData. The OCID of the compartment in which the Managed Database resides.') - resource_id: str | None = Field(None, alias='resourceId', description='Gets the resource_id of this PerformanceMetricsData. The OCID of the Managed Database.') - primary_db_id: str | None = Field(None, alias='primaryDbId', description='Gets the primary_db_id of this PerformanceMetricsData.\nThe ID of the primary database.') - primary_db_unique_name: str | None = Field(None, alias='primaryDbUniqueName', description='Gets the primary_db_unique_name of this PerformanceMetricsData.\nThe primary database unique name of the Managed Database.') - database_id: str | None = Field(None, alias='databaseId', description='Gets the database_id of this PerformanceMetricsData.\nThe database ID of the Managed Database. Every database had its own ID and that value is captured here.') - db_unique_name: str | None = Field(None, alias='dbUniqueName', description='Gets the db_unique_name of this PerformanceMetricsData.\nThe database unique name of the Managed Database.') - deployment_type: str | None = Field(None, alias='deploymentType', description='Gets the deployment_type of this PerformanceMetricsData.\nThe deployment type of the Managed Database.') - resource_name: str | None = Field(None, alias='resourceName', description='Gets the resource_name of this PerformanceMetricsData.\nThe resource name of the Managed Database.') - db_role: Literal['SNAPSHOT_STANDBY', 'LOGICAL_STANDBY', 'PHYSICAL_STANDBY', 'PRIMARY', 'FAR_SYNC', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='dbRole', description='Gets the db_role of this PerformanceMetricsData.\nThe database role of the Managed Database.\n\nAllowed values for this property are: "SNAPSHOT_STANDBY", "LOGICAL_STANDBY", "PHYSICAL_STANDBY", "PRIMARY", "FAR_SYNC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - metrics: list[PerformanceMetrics] | None = Field(None, description='Gets the metrics of this PerformanceMetricsData.\nThe list of Data Guard performance metrics such as ApplyLag, TransportLag and RedoApplyRate for the Managed Databases.') - - -class PreferredCredential(DbmBaseModel): - """The details of the preferred credential.""" - - type: Literal['BASIC', 'NAMED_CREDENTIAL', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the type of this PreferredCredential.\nThe type of preferred credential. Only \'BASIC\' is supported currently.\n\nAllowed values for this property are: "BASIC", "NAMED_CREDENTIAL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - credential_name: str | None = Field(None, alias='credentialName', description='Gets the credential_name of this PreferredCredential.\nThe name of the preferred credential.') - status: Literal['SET', 'NOT_SET', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this PreferredCredential.\nThe status of the preferred credential.\n\nAllowed values for this property are: "SET", "NOT_SET", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - is_accessible: bool | None = Field(None, alias='isAccessible', description='Gets the is_accessible of this PreferredCredential.\nIndicates whether the preferred credential is accessible.') - - -class PreferredCredentialCollection(DbmBaseModel): - """A collection of preferred credential attributes.""" - - items: list[PreferredCredentialSummary] = Field(..., description='**[Required]** Gets the items of this PreferredCredentialCollection.\nThe attributes of the preferred credential.') - - -class PreferredCredentialSummary(DbmBaseModel): - """The summary of preferred credentials.""" - - credential_name: str = Field(..., alias='credentialName', description='**[Required]** Gets the credential_name of this PreferredCredentialSummary.\nThe name of the preferred credential.') - status: Literal['SET', 'NOT_SET', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the status of this PreferredCredentialSummary.\nThe status of the preferred credential.\n\nAllowed values for this property are: "SET", "NOT_SET", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - is_accessible: bool = Field(..., alias='isAccessible', description='**[Required]** Gets the is_accessible of this PreferredCredentialSummary.\nIndicates whether the preferred credential is accessible.') - user_name: str | None = Field(None, alias='userName', description='Gets the user_name of this PreferredCredentialSummary.\nThe user name used to connect to the database.') - role: Literal['NORMAL', 'SYSDBA', 'SYSDG', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the role of this PreferredCredentialSummary.\nThe role of the database user.\n\nAllowed values for this property are: "NORMAL", "SYSDBA", "SYSDG", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - password_secret_id: str | None = Field(None, alias='passwordSecretId', description='Gets the password_secret_id of this PreferredCredentialSummary. The OCID of the Vault service secret that contains the database user password.') - named_credential_id: str | None = Field(None, alias='namedCredentialId', description='Gets the named_credential_id of this PreferredCredentialSummary. The OCID of the Named Credential that contains the database user password metadata.') - - -class PrivateEndPointConnectorDetails(DbmRequestModel): - """The private endpoint details required to connect to an Oracle cloud Database.""" - - connector_type: Literal['PE', 'MACS', 'EXTERNAL', 'DIRECT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this ConnectorDetails.\nThe list of supported connection types:\n - PE: Private endpoint\n - MACS: Management agent\n - EXTERNAL: External database connector\n\n - DIRECT: Direct connection\n\nAllowed values for this property are: "PE", "MACS", "EXTERNAL", "DIRECT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - private_end_point_id: str = Field(..., alias='privateEndPointId', description='**[Required]** Gets the private_end_point_id of this PrivateEndPointConnectorDetails. The OCID of the private endpoint.') - - -class ProxiedForUserCollection(DbmBaseModel): - """A collection of users on whose behalf the current user acts as proxy.""" - - items: list[ProxiedForUserSummary] = Field(..., description='**[Required]** Gets the items of this ProxiedForUserCollection.\nAn array of user resources.') - - -class ProxiedForUserSummary(DbmBaseModel): - """A summary of users on whose behalf the current user acts as proxy.""" - - name: str | None = Field(None, description='Gets the name of this ProxiedForUserSummary.\nThe name of a proxy user or the name of the client user.') - authentication: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the authentication of this ProxiedForUserSummary.\nIndicates whether the proxy is required to supply the client credentials (YES) or not (NO).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - flags: Literal['PROXY_MAY_ACTIVATE_ALL_CLIENT_ROLES', 'NO_CLIENT_ROLES_MAY_BE_ACTIVATED', 'PROXY_MAY_ACTIVATE_ROLE', 'PROXY_MAY_NOT_ACTIVATE_ROLE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the flags of this ProxiedForUserSummary.\nThe flags associated with the proxy/client pair.\n\nAllowed values for this property are: "PROXY_MAY_ACTIVATE_ALL_CLIENT_ROLES", "NO_CLIENT_ROLES_MAY_BE_ACTIVATED", "PROXY_MAY_ACTIVATE_ROLE", "PROXY_MAY_NOT_ACTIVATE_ROLE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class ProxyUserCollection(DbmBaseModel): - """A collection of proxy users for the current user.""" - - items: list[ProxyUserSummary] = Field(..., description='**[Required]** Gets the items of this ProxyUserCollection.\nAn array of user resources.') - - -class ProxyUserSummary(DbmBaseModel): - """A summary of the proxy user.""" - - name: str | None = Field(None, description='Gets the name of this ProxyUserSummary.\nThe name of a proxy user or the name of the client user.') - authentication: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the authentication of this ProxyUserSummary.\nIndicates whether the proxy is required to supply the client credentials (YES) or not (NO).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - flags: Literal['PROXY_MAY_ACTIVATE_ALL_CLIENT_ROLES', 'NO_CLIENT_ROLES_MAY_BE_ACTIVATED', 'PROXY_MAY_ACTIVATE_ROLE', 'PROXY_MAY_NOT_ACTIVATE_ROLE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the flags of this ProxyUserSummary.\nThe flags associated with the proxy/client pair.\n\nAllowed values for this property are: "PROXY_MAY_ACTIVATE_ALL_CLIENT_ROLES", "NO_CLIENT_ROLES_MAY_BE_ACTIVATED", "PROXY_MAY_ACTIVATE_ROLE", "PROXY_MAY_NOT_ACTIVATE_ROLE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class Recommendation(DbmBaseModel): - """The details of the Optimizer Statistics Advisor findings and recommendations.""" - - message: str = Field(..., description='**[Required]** Gets the message of this Recommendation.\nAn overview of the Optimizer Statistics Advisor recommendation.') - example: RecommendationExample | None = Field(None, description='Gets the example of this Recommendation.') - rationales: list[RecommendationRationale] | None = Field(None, description='Gets the rationales of this Recommendation.\nThe rationale of the recommendation.') - - -class RecommendationExample(DbmBaseModel): - """An example of the recommendation.""" - - lines: list[RecommendationExampleLine] | None = Field(None, description='Gets the lines of this RecommendationExample.\nThe list of examples for the recommendation.') - - -class RecommendationExampleLine(DbmBaseModel): - """An example line of the recommendation""" - - operation: str | None = Field(None, description='Gets the operation of this RecommendationExampleLine.\nThe details of the example operation.') - comment: str | None = Field(None, description='Gets the comment of this RecommendationExampleLine.\nThe comments about the operation.') - - -class RecommendationRationale(DbmBaseModel): - """The details of the rationale for the recommendation.""" - - message: str = Field(..., description='**[Required]** Gets the message of this RecommendationRationale.\nThe message of the rationale.') - - -class RemoveDataFileDetails(DbmRequestModel): - """The details required to remove a data file or temp file from the tablespace. -It takes either credentialDetails or databaseCredential. It's recommended to provide databaseCredential""" - - credential_details: TablespaceAdminCredentialDetails | None = Field(None, alias='credentialDetails', description='Gets the credential_details of this RemoveDataFileDetails.') - database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this RemoveDataFileDetails.') - file_type: Literal['DATAFILE', 'TEMPFILE'] = Field(..., alias='fileType', description='**[Required]** Gets the file_type of this RemoveDataFileDetails.\nSpecifies whether the file is a data file or temp file.\n\nAllowed values for this property are: "DATAFILE", "TEMPFILE"') - data_file: str = Field(..., alias='dataFile', description='**[Required]** Gets the data_file of this RemoveDataFileDetails.\nName of the data file or temp file to be removed from the tablespace.') - - -class RemoveManagedDatabaseFromManagedDatabaseGroupDetails(DbmRequestModel): - """The Managed Database details required to remove it from a Managed Database Group.""" - - managed_database_id: str = Field(..., alias='managedDatabaseId', description='**[Required]** Gets the managed_database_id of this RemoveManagedDatabaseFromManagedDatabaseGroupDetails. The OCID of the Managed Database.') - - -class ResetDatabaseParametersDetails(DbmRequestModel): - """The details required to reset database parameter values. -It takes either credentials or databaseCredential. It's recommended to provide databaseCredential""" - - credentials: DatabaseCredentials | None = Field(None, description='Gets the credentials of this ResetDatabaseParametersDetails.') - database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this ResetDatabaseParametersDetails.') - scope: Literal['MEMORY', 'SPFILE', 'BOTH'] = Field(..., description='**[Required]** Gets the scope of this ResetDatabaseParametersDetails.\nThe clause used to specify when the parameter change takes effect.\n\nUse `MEMORY` to make the change in memory and ensure that it takes\neffect immediately. Use `SPFILE` to make the change in the server\nparameter file. The change takes effect when the database is next\nshut down and started up again. Use `BOTH` to make the change in\nmemory and in the server parameter file. The change takes effect\nimmediately and persists after the database is shut down and\nstarted up again.\n\nAllowed values for this property are: "MEMORY", "SPFILE", "BOTH"') - parameters: list[str] = Field(..., description='**[Required]** Gets the parameters of this ResetDatabaseParametersDetails.\nA list of database parameter names.') - - -class ResizeDataFileDetails(DbmRequestModel): - """The details required to resize a data file or temp file within the tablespace. -It takes either credentialDetails or databaseCredential. It's recommended to provide databaseCredential""" - - credential_details: TablespaceAdminCredentialDetails | None = Field(None, alias='credentialDetails', description='Gets the credential_details of this ResizeDataFileDetails.') - database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this ResizeDataFileDetails.') - file_type: Literal['DATAFILE', 'TEMPFILE'] = Field(..., alias='fileType', description='**[Required]** Gets the file_type of this ResizeDataFileDetails.\nSpecifies whether the file is a data file or temp file.\n\nAllowed values for this property are: "DATAFILE", "TEMPFILE"') - data_file: str = Field(..., alias='dataFile', description='**[Required]** Gets the data_file of this ResizeDataFileDetails.\nName of the data file or temp file to be resized.') - file_size: TablespaceStorageSize | None = Field(None, alias='fileSize', description='Gets the file_size of this ResizeDataFileDetails.\nThe new size of the data file or temp file.') - is_auto_extensible: bool | None = Field(None, alias='isAutoExtensible', description='Gets the is_auto_extensible of this ResizeDataFileDetails.\nSpecifies whether the data file or temp file can be extended automatically.') - auto_extend_next_size: TablespaceStorageSize | None = Field(None, alias='autoExtendNextSize', description='Gets the auto_extend_next_size of this ResizeDataFileDetails.\nThe size of the next increment of disk space to be allocated automatically when more extents are required.') - auto_extend_max_size: TablespaceStorageSize | None = Field(None, alias='autoExtendMaxSize', description='Gets the auto_extend_max_size of this ResizeDataFileDetails.\nThe maximum disk space allowed for automatic extension of the data files or temp files.') - is_max_size_unlimited: bool | None = Field(None, alias='isMaxSizeUnlimited', description='Gets the is_max_size_unlimited of this ResizeDataFileDetails.\nSpecifies whether the disk space of the data file or temp file can be limited.') - - -class RestCredential(DbmBaseModel): - """The user credential information.""" - - username: str = Field(..., description='**[Required]** Gets the username of this RestCredential.\nThe name of the user.') - password: str = Field(..., description='**[Required]** Gets the password of this RestCredential.\nThe password of the user.') - ssl_trust_store_type: Literal['JKS', 'BCFKS'] | None = Field(None, alias='sslTrustStoreType', description='Gets the ssl_trust_store_type of this RestCredential.\nThe SSL truststore type.\n\nAllowed values for this property are: "JKS", "BCFKS"') - ssl_trust_store_location: str | None = Field(None, alias='sslTrustStoreLocation', description='Gets the ssl_trust_store_location of this RestCredential.\nThe full path of the SSL truststore location in the agent.') - ssl_trust_store_password: str | None = Field(None, alias='sslTrustStorePassword', description='Gets the ssl_trust_store_password of this RestCredential.\nThe password of the SSL truststore location in the agent.') - - -class RoleCollection(DbmBaseModel): - """A collection of roles granted to the current User.""" - - items: list[RoleSummary] = Field(..., description='**[Required]** Gets the items of this RoleCollection.\nAn array of roles.') - - -class RoleSummary(DbmBaseModel): - """A summary of each role.""" - - name: str | None = Field(None, description='Gets the name of this RoleSummary.\nThe name of the role granted to the user.') - admin_option: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='adminOption', description='Gets the admin_option of this RoleSummary.\nIndicates whether the role is granted with the ADMIN OPTION (YES) or not (NO).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - delegate_option: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='delegateOption', description='Gets the delegate_option of this RoleSummary.\nIndicates whether the role is granted with the DELEGATE OPTION (YES) or not (NO).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - default_role: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='defaultRole', description='Gets the default_role of this RoleSummary.\nIndicates whether the role is designated as a DEFAULT ROLE for the user (YES) or not (NO).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - common: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the common of this RoleSummary.\nIndicates how the role was granted. Possible values:\nYES if the role is granted commonly (CONTAINER=ALL is used)\nNO if the role is granted locally (CONTAINER=ALL is not used)\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - inherited: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the inherited of this RoleSummary.\nIndicates whether the granted role is inherited from another container (YES) or not (NO).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class RuleFinding(DbmBaseModel): - """The summary of the Optimizer Statistics Advisor findings and recommendations.""" - - message: str = Field(..., description='**[Required]** Gets the message of this RuleFinding.\nA high-level overview of the findings of the Optimizer Statistics Advisor.') - details: list[FindingSchemaOrOperation] = Field(..., description='**[Required]** Gets the details of this RuleFinding.\nThe details of the schema or operation.') - recommendations: list[Recommendation] = Field(..., description='**[Required]** Gets the recommendations of this RuleFinding.\nThe list of recommendations.') - - -class RunHistoricAddmDetails(DbmRequestModel): - """The details of the ADDM task, which include the beginning and ending AWR snapshot IDs.""" - - start_snapshot_id: int = Field(..., alias='startSnapshotId', description='**[Required]** Gets the start_snapshot_id of this RunHistoricAddmDetails.\nThe ID number of the beginning AWR snapshot.') - end_snapshot_id: int = Field(..., alias='endSnapshotId', description='**[Required]** Gets the end_snapshot_id of this RunHistoricAddmDetails.\nThe ID of the ending AWR snapshot.') - - -class SaveSqlTuningSetAsDetails(DbmRequestModel): - """Save current list of Sql statements into another Sql tuning set. -It takes either credentialDetails or databaseCredential. It's recommended to provide databaseCredential""" - - credential_details: SqlTuningSetAdminCredentialDetails | None = Field(None, alias='credentialDetails', description='Gets the credential_details of this SaveSqlTuningSetAsDetails.') - database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this SaveSqlTuningSetAsDetails.') - show_sql_only: int | None = Field(None, alias='showSqlOnly', description='Gets the show_sql_only of this SaveSqlTuningSetAsDetails.\nFlag to indicate whether to save the Sql tuning set or just display the plsql used to save Sql tuning set.') - owner: str | None = Field(None, description='Gets the owner of this SaveSqlTuningSetAsDetails.\nThe owner of the Sql tuning set.') - name: str = Field(..., description='**[Required]** Gets the name of this SaveSqlTuningSetAsDetails.\nThe name of the Sql tuning set.') - destination_sql_tuning_set_name: str = Field(..., alias='destinationSqlTuningSetName', description='**[Required]** Gets the destination_sql_tuning_set_name of this SaveSqlTuningSetAsDetails.\nThe name of the destination Sql tuning set.') - destination_sql_tuning_set_description: str | None = Field(None, alias='destinationSqlTuningSetDescription', description='Gets the destination_sql_tuning_set_description of this SaveSqlTuningSetAsDetails.\nThe description for the destination Sql tuning set.') - destination_sql_tuning_set_owner: str | None = Field(None, alias='destinationSqlTuningSetOwner', description='Gets the destination_sql_tuning_set_owner of this SaveSqlTuningSetAsDetails.\nOwner of the destination Sql tuning set.') - create_new: int = Field(..., alias='createNew', description='**[Required]** Gets the create_new of this SaveSqlTuningSetAsDetails.\nSpecifies whether to create a new Sql tuning set or not.\nPossible values\n1 - Create a new Sql tuning set\n0 - Do not create a new Sql tuning set') - basic_filter: str | None = Field(None, alias='basicFilter', description='Gets the basic_filter of this SaveSqlTuningSetAsDetails. Specifies the Sql predicate to filter the Sql from the Sql tuning set defined on attributes of the SQLSET_ROW. User could use any combination of the following columns with appropriate values as Sql predicate Refer to the documentation.') - plan_filter: Literal['LAST_GENERATED', 'FIRST_GENERATED', 'LAST_LOADED', 'FIRST_LOADED', 'MAX_ELAPSED_TIME', 'MAX_BUFFER_GETS', 'MAX_DISK_READS', 'MAX_DIRECT_WRITES', 'MAX_OPTIMIZER_COST'] | None = Field(None, alias='planFilter', description='Gets the plan_filter of this SaveSqlTuningSetAsDetails.\nSpecifies the plan filter.\nThis parameter enables you to select a single plan when a statement has multiple plans.\nRefer to the documentation values for this property are: "LAST_GENERATED", "FIRST_GENERATED", "LAST_LOADED", "FIRST_LOADED", "MAX_ELAPSED_TIME", "MAX_BUFFER_GETS", "MAX_DISK_READS", "MAX_DIRECT_WRITES", "MAX_OPTIMIZER_COST"') - recursive_sql: Literal['HAS_RECURSIVE_SQL', 'NO_RECURSIVE_SQL'] | None = Field(None, alias='recursiveSql', description='Gets the recursive_sql of this SaveSqlTuningSetAsDetails.\nSpecifies that the filter must include recursive Sql in the Sql tuning set.\n\nAllowed values for this property are: "HAS_RECURSIVE_SQL", "NO_RECURSIVE_SQL"') - result_percentage: float | None = Field(None, alias='resultPercentage', description='Gets the result_percentage of this SaveSqlTuningSetAsDetails.\nSpecifies a filter that picks the top n% according to the supplied ranking measure.\nNote that this parameter applies only if one ranking measure is supplied.') - result_limit: int | None = Field(None, alias='resultLimit', description='Gets the result_limit of this SaveSqlTuningSetAsDetails.\nThe top limit Sql from the filtered source, ranked by the ranking measure.') - ranking_measure1: Literal['ELAPSED_TIME', 'CPU_TIME', 'OPTIMIZER_COST', 'BUFFER_GETS', 'DISK_READS', 'DIRECT_WRITES'] | None = Field(None, alias='rankingMeasure1', description='Gets the ranking_measure1 of this SaveSqlTuningSetAsDetails.\nSpecifies an ORDER BY clause on the selected Sql. User can specify upto three ranking measures.\n\nAllowed values for this property are: "ELAPSED_TIME", "CPU_TIME", "OPTIMIZER_COST", "BUFFER_GETS", "DISK_READS", "DIRECT_WRITES"') - ranking_measure2: Literal['ELAPSED_TIME', 'CPU_TIME', 'OPTIMIZER_COST', 'BUFFER_GETS', 'DISK_READS', 'DIRECT_WRITES'] | None = Field(None, alias='rankingMeasure2', description='Gets the ranking_measure2 of this SaveSqlTuningSetAsDetails.\nSpecifies an ORDER BY clause on the selected Sql. User can specify upto three ranking measures.\n\nAllowed values for this property are: "ELAPSED_TIME", "CPU_TIME", "OPTIMIZER_COST", "BUFFER_GETS", "DISK_READS", "DIRECT_WRITES"') - ranking_measure3: Literal['ELAPSED_TIME', 'CPU_TIME', 'OPTIMIZER_COST', 'BUFFER_GETS', 'DISK_READS', 'DIRECT_WRITES'] | None = Field(None, alias='rankingMeasure3', description='Gets the ranking_measure3 of this SaveSqlTuningSetAsDetails.\nSpecifies an ORDER BY clause on the selected Sql. User can specify upto three ranking measures.\n\nAllowed values for this property are: "ELAPSED_TIME", "CPU_TIME", "OPTIMIZER_COST", "BUFFER_GETS", "DISK_READS", "DIRECT_WRITES"') - attribute_list: str | None = Field(None, alias='attributeList', description='Gets the attribute_list of this SaveSqlTuningSetAsDetails.\nSpecifies the list of Sql statement attributes to return in the result.\nNote that this parameter cannot be made an enum since custom value can take a list of comma separated attribute names.\nAttribute list can take one of the following values.\n TYPICAL - Specifies BASIC plus Sql plan (without row source statistics) and without object reference list (default).\n BASIC - Specifies all attributes (such as execution statistics and binds) except the plans. The execution context is always part of the result.\n ALL - Specifies all attributes.\n CUSTOM - Comma-separated list of the following attribute names.\n - EXECUTION_STATISTICS\n - BIND_LIST\n - OBJECT_LIST\n - SQL_PLAN\n - SQL_PLAN_STATISTICS\nUsage examples:\n 1. "attributeList": "TYPICAL"\n 2. "attributeList": "ALL"\n 3. "attributeList": "EXECUTION_STATISTICS,OBJECT_LIST,SQL_PLAN"') - load_option: Literal['INSERT', 'UPDATE', 'MERGE'] | None = Field(None, alias='loadOption', description='Gets the load_option of this SaveSqlTuningSetAsDetails.\nSpecifies which statements are loaded into the Sql tuning set.\nThe possible values are.\n - INSERT (default)\n Adds only new statements.\n - UPDATE\n Updates existing the Sql statements and ignores any new statements.\n - MERGE\n Inserts new statements and updates the information of the existing ones.\n\nAllowed values for this property are: "INSERT", "UPDATE", "MERGE"') - update_option: Literal['REPLACE', 'ACCUMULATE'] | None = Field(None, alias='updateOption', description='Gets the update_option of this SaveSqlTuningSetAsDetails.\nSpecifies how existing Sql statements are updated.\nThis parameter is applicable only if load_option is specified with UPDATE or MERGE as an option.\nUpdate option can take one of the following values.\n REPLACE (default) - Updates the statement using the new statistics, bind list, object list, and so on.\n ACCUMULATE - Combines attributes when possible (for example, statistics such as elapsed_time), otherwise replaces the existing values (for example, module and action) with the provided values.\n Following Sql statement attributes can be accumulated.\n elapsed_time\n buffer_gets\n direct_writes\n disk_reads\n row_processed\n fetches\n executions\n end_of_fetch_count\n stat_period\n active_stat_period\n\nAllowed values for this property are: "REPLACE", "ACCUMULATE"') - update_condition: Literal['OLD', 'NEW', 'NULL'] | None = Field(None, alias='updateCondition', description='Gets the update_condition of this SaveSqlTuningSetAsDetails.\nSpecifies when to perform the update.\nThe procedure only performs the update when the specified condition is satisfied.\nThe condition can refer to either the data source or destination.\nThe condition must use the following prefixes to refer to attributes from the source or the destination:\n OLD — Refers to statement attributes from the SQL tuning set (destination).\n NEW — Refers to statement attributes from the input statements (source).\n NULL — No updates are performed.\n\nAllowed values for this property are: "OLD", "NEW", "NULL"') - update_attributes: str | None = Field(None, alias='updateAttributes', description='Gets the update_attributes of this SaveSqlTuningSetAsDetails.\nSpecifies the list of Sql statement attributes to update during a merge or update.\nNote that this parameter cannot be made an enum since custom value can take a list of comma separated attribute names.\nUpdate attributes can take one of the following values.\n NULL (default) - Specifies the content of the input cursor except the execution context. On other terms, it is equivalent to ALL without execution contexts such as module and action.\n BASIC - Specifies statistics and binds only.\n TYPICAL - Specifies BASIC with Sql plans (without row source statistics) and without an object reference list.\n ALL - Specifies all attributes, including the execution context attributes such as module and action.\n CUSTOM - List of comma separated attribute names to update\n EXECUTION_CONTEXT\n EXECUTION_STATISTICS\n SQL_BINDS\n SQL_PLAN\n SQL_PLAN_STATISTICS (similar to SQL_PLAN with added row source statistics)\nUsage examples:\n 1. "updateAttributes": "TYPICAL"\n 2. "updateAttributes": "BASIC"\n 3. "updateAttributes": "EXECUTION_STATISTICS,SQL_PLAN_STATISTICS,SQL_PLAN"\n 4. "updateAttributes": "EXECUTION_STATISTICS,SQL_PLAN"') - is_ignore_null: bool | None = Field(None, alias='isIgnoreNull', description='Gets the is_ignore_null of this SaveSqlTuningSetAsDetails.\nSpecifies whether to update attributes when the new value is NULL.\nIf TRUE, then the procedure does not update an attribute when the new value is NULL.\nThat is, do not override with NULL values unless intentional.\nPossible values - true or false') - commit_rows: int | None = Field(None, alias='commitRows', description='Gets the commit_rows of this SaveSqlTuningSetAsDetails.\nSpecifies whether to commit statements after DML.\nIf a value is provided, then the load commits after each specified number of statements is inserted.\nIf NULL is provided, then the load commits only once, at the end of the operation.') - - -class SchemaDefinition(DbmBaseModel): - """The schema object details.""" - - name: str = Field(..., description='**[Required]** Gets the name of this SchemaDefinition.\nThe name of the schema.') - objects: list[str] | None = Field(None, description='Gets the objects of this SchemaDefinition.\nThe names of schema objects.') - - -class SnapshotDetails(DbmRequestModel): - """The details of the newly generated AWR snapshot.""" - - snapshot_id: int = Field(..., alias='snapshotId', description='**[Required]** Gets the snapshot_id of this SnapshotDetails.\nThe ID of the beginning AWR snapshot.') - - -class SpmEvolveTaskParameters(DbmBaseModel): - """The set of parameters used in an SPM evolve task.""" - - alternate_plan_sources: list[str] | None = Field(None, alias='alternatePlanSources', description='Gets the alternate_plan_sources of this SpmEvolveTaskParameters.\nDetermines which sources to search for additional plans.\n\nAllowed values for items in this list are: "AUTO", "AUTOMATIC_WORKLOAD_REPOSITORY", "CURSOR_CACHE", "SQL_TUNING_SET", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - alternate_plan_baselines: list[str] | None = Field(None, alias='alternatePlanBaselines', description='Gets the alternate_plan_baselines of this SpmEvolveTaskParameters.\nDetermines which alternative plans should be loaded.\n\nAllowed values for items in this list are: "AUTO", "EXISTING", "NEW", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - alternate_plan_limit: int | None = Field(None, alias='alternatePlanLimit', description='Gets the alternate_plan_limit of this SpmEvolveTaskParameters.\nSpecifies the maximum number of plans to load in total (that is, not\nthe limit for each SQL statement). A value of zero indicates `UNLIMITED`\nnumber of plans.') - are_plans_auto_accepted: bool | None = Field(None, alias='arePlansAutoAccepted', description='Gets the are_plans_auto_accepted of this SpmEvolveTaskParameters.\nSpecifies whether to accept recommended plans automatically.') - allowed_time_limit: int | None = Field(None, alias='allowedTimeLimit', description='Gets the allowed_time_limit of this SpmEvolveTaskParameters.\nThe global time limit in seconds. This is the total time allowed for the task.') - - -class SqlCpuActivity(DbmBaseModel): - """The SQL CPU activity from the Exadata storage server.""" - - database_name: str | None = Field(None, alias='databaseName', description='Gets the database_name of this SqlCpuActivity.\nThe database name.') - sql_id: str | None = Field(None, alias='sqlId', description='Gets the sql_id of this SqlCpuActivity.\nThe SQL ID.') - cpu_activity: float | None = Field(None, alias='cpuActivity', description='Gets the cpu_activity of this SqlCpuActivity.\nThe CPU activity percentage.') - - -class SqlInSqlTuningSet(DbmBaseModel): - """Sql information in the Sql tuning set.""" - - sql_id: str = Field(..., alias='sqlId', description='**[Required]** Gets the sql_id of this SqlInSqlTuningSet.\nThe unique Sql identifier.') - sql_text: str | None = Field(None, alias='sqlText', description='Gets the sql_text of this SqlInSqlTuningSet.\nSql text.') - container_database_id: int | None = Field(None, alias='containerDatabaseId', description='Gets the container_database_id of this SqlInSqlTuningSet.\nThe unique container database identifier.') - plan_hash_value: int = Field(..., alias='planHashValue', description='**[Required]** Gets the plan_hash_value of this SqlInSqlTuningSet.\nPlan hash value of the Sql statement.') - schema_name: str | None = Field(None, alias='schema', description='Gets the schema of this SqlInSqlTuningSet.\nThe schema name of the Sql.') - module: str | None = Field(None, description='Gets the module of this SqlInSqlTuningSet.\nThe module of the Sql.') - metrics: list[SqlMetrics] | None = Field(None, description='Gets the metrics of this SqlInSqlTuningSet.\nA list of the Sqls associated with the Sql tuning set.') - - -class SqlJob(DbmBaseModel): - """The details of the SQL job.""" - - id: str = Field(..., description='**[Required]** Gets the id of this Job. The OCID of the job.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this Job. The OCID of the compartment in which the job resides.') - name: str = Field(..., description='**[Required]** Gets the name of this Job.\nThe display name of the job.') - description: str | None = Field(None, description='Gets the description of this Job.\nThe description of the job.') - managed_database_group_id: str | None = Field(None, alias='managedDatabaseGroupId', description='Gets the managed_database_group_id of this Job. The OCID of the Managed Database Group where the job has to be executed.') - managed_database_id: str | None = Field(None, alias='managedDatabaseId', description='Gets the managed_database_id of this Job. The OCID of the Managed Database where the job has to be executed.') - managed_databases_details: list[JobDatabase] | None = Field(None, alias='managedDatabasesDetails', description='Gets the managed_databases_details of this Job.\nThe details of the Managed Databases where the job has to be executed.') - database_sub_type: Literal['CDB', 'PDB', 'NON_CDB', 'ACD', 'ADB', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='databaseSubType', description='Gets the database_sub_type of this Job.\nThe subtype of the Oracle Database where the job has to be executed. Applicable only when managedDatabaseGroupId is provided.\n\nAllowed values for this property are: "CDB", "PDB", "NON_CDB", "ACD", "ADB", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - schedule_type: Literal['IMMEDIATE', 'LATER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='scheduleType', description='**[Required]** Gets the schedule_type of this Job.\nThe schedule type of the job.\n\nAllowed values for this property are: "IMMEDIATE", "LATER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - job_type: Literal['SQL', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='jobType', description='**[Required]** Gets the job_type of this Job.\nThe type of job.\n\nAllowed values for this property are: "SQL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_state: Literal['ACTIVE', 'INACTIVE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='**[Required]** Gets the lifecycle_state of this Job.\nThe lifecycle state of the job.\n\nAllowed values for this property are: "ACTIVE", "INACTIVE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - timeout: str | None = Field(None, description='Gets the timeout of this Job.\nThe job timeout duration, which is expressed like "1h 10m 15s".') - result_location: JobExecutionResultLocation | None = Field(None, alias='resultLocation', description='Gets the result_location of this Job.') - schedule_details: JobScheduleDetails | None = Field(None, alias='scheduleDetails', description='Gets the schedule_details of this Job.') - submission_error_message: str | None = Field(None, alias='submissionErrorMessage', description='Gets the submission_error_message of this Job.\nThe error message that is returned if the job submission fails. Null is returned in all other scenarios.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this Job.\nThe date and time when the job was created.') - time_updated: datetime = Field(..., alias='timeUpdated', description='**[Required]** Gets the time_updated of this Job.\nThe date and time when the job was last updated.') - sql_type: Literal['QUERY', 'DML', 'DDL', 'PLSQL', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='sqlType', description='Gets the sql_type of this SqlJob.\nThe type of SQL. This is a mandatory field for the EXECUTE_SQL operationType.\n\nAllowed values for this property are: "QUERY", "DML", "DDL", "PLSQL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - sql_text: str | None = Field(None, alias='sqlText', description='Gets the sql_text of this SqlJob.\nThe SQL text to be executed in the job. This is a mandatory field for the EXECUTE_SQL operationType.') - in_binds: JobInBindsDetails | None = Field(None, alias='inBinds', description='Gets the in_binds of this SqlJob.') - out_binds: JobOutBindsDetails | None = Field(None, alias='outBinds', description='Gets the out_binds of this SqlJob.') - operation_type: Literal['EXECUTE_SQL', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='operationType', description='**[Required]** Gets the operation_type of this SqlJob.\nThe SQL operation type.\n\nAllowed values for this property are: "EXECUTE_SQL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - user_name: str | None = Field(None, alias='userName', description='Gets the user_name of this SqlJob.\nThe database user name used to execute the SQL job. If the job is being executed on a Managed Database Group,\nthen the user name should exist on all the databases in the group with the same password.') - role: Literal['NORMAL', 'SYSDBA', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the role of this SqlJob.\nThe role of the database user. Indicates whether the database user is a normal user or sysdba.\n\nAllowed values for this property are: "NORMAL", "SYSDBA", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - named_credential_id: str | None = Field(None, alias='namedCredentialId', description='Gets the named_credential_id of this SqlJob. The OCID of the Named Credentials containing password secret.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this SqlJob. Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}.') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this SqlJob. Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations": {"CostCenter": "42"}}.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this SqlJob. System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. System tags can be viewed by users, but can only be created by the system. Example: {"orcl-cloud": {"free-tier-retained": "true"}}.') - - -class SqlMetrics(DbmBaseModel): - """Metrics of the Sql in the Sql tuning set.""" - - cpu_time: int | None = Field(None, alias='cpuTime', description='Gets the cpu_time of this SqlMetrics.\nTotal CPU time consumed by the Sql.') - elapsed_time: int | None = Field(None, alias='elapsedTime', description='Gets the elapsed_time of this SqlMetrics.\nElapsed time of the Sql.') - buffer_gets: int | None = Field(None, alias='bufferGets', description='Gets the buffer_gets of this SqlMetrics.\nSum total number of buffer gets.') - disk_reads: int | None = Field(None, alias='diskReads', description='Gets the disk_reads of this SqlMetrics.\nSum total number of disk reads.') - direct_writes: int | None = Field(None, alias='directWrites', description='Gets the direct_writes of this SqlMetrics.\nSum total number of direct path writes.') - executions: int | None = Field(None, description='Gets the executions of this SqlMetrics.\nTotal executions of this SQL statement.') - - -class SqlPlanBaseline(DbmBaseModel): - """The details of a SQL plan baseline.""" - - plan_name: str = Field(..., alias='planName', description='**[Required]** Gets the plan_name of this SqlPlanBaseline.\nThe unique plan identifier.') - sql_handle: str = Field(..., alias='sqlHandle', description='**[Required]** Gets the sql_handle of this SqlPlanBaseline.\nThe unique SQL identifier.') - sql_text: str = Field(..., alias='sqlText', description='**[Required]** Gets the sql_text of this SqlPlanBaseline.\nThe SQL text.') - origin: Literal['ADDM_SQLTUNE', 'AUTO_CAPTURE', 'AUTO_SQLTUNE', 'EVOLVE_AUTO_INDEX_LOAD', 'EVOLVE_CREATE_FROM_ADAPTIVE', 'EVOLVE_LOAD_FROM_STS', 'EVOLVE_LOAD_FROM_AWR', 'EVOLVE_LOAD_FROM_CURSOR_CACHE', 'MANUAL_LOAD', 'MANUAL_LOAD_FROM_AWR', 'MANUAL_LOAD_FROM_CURSOR_CACHE', 'MANUAL_LOAD_FROM_STS', 'MANUAL_SQLTUNE', 'STORED_OUTLINE', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the origin of this SqlPlanBaseline.\nThe origin of the SQL plan baseline.\n\nAllowed values for this property are: "ADDM_SQLTUNE", "AUTO_CAPTURE", "AUTO_SQLTUNE", "EVOLVE_AUTO_INDEX_LOAD", "EVOLVE_CREATE_FROM_ADAPTIVE", "EVOLVE_LOAD_FROM_STS", "EVOLVE_LOAD_FROM_AWR", "EVOLVE_LOAD_FROM_CURSOR_CACHE", "MANUAL_LOAD", "MANUAL_LOAD_FROM_AWR", "MANUAL_LOAD_FROM_CURSOR_CACHE", "MANUAL_LOAD_FROM_STS", "MANUAL_SQLTUNE", "STORED_OUTLINE", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this SqlPlanBaseline.\nThe date and time when the plan baseline was created.') - time_last_modified: datetime | None = Field(None, alias='timeLastModified', description='Gets the time_last_modified of this SqlPlanBaseline.\nThe date and time when the plan baseline was last modified.') - time_last_executed: datetime | None = Field(None, alias='timeLastExecuted', description='Gets the time_last_executed of this SqlPlanBaseline.\nThe date and time when the plan baseline was last executed.\n\n**Note:** For performance reasons, database does not update this value\nimmediately after each execution of the plan baseline. Therefore, the plan\nbaseline may have been executed more recently than this value indicates.') - enabled: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the enabled of this SqlPlanBaseline.\nIndicates whether the plan baseline is enabled (`YES`) or disabled (`NO`).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - accepted: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the accepted of this SqlPlanBaseline.\nIndicates whether the plan baseline is accepted (`YES`) or not (`NO`).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - fixed: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the fixed of this SqlPlanBaseline.\nIndicates whether the plan baseline is fixed (`YES`) or not (`NO`).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - reproduced: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the reproduced of this SqlPlanBaseline.\nIndicates whether the optimizer was able to reproduce the plan (`YES`) or not (`NO`).\nThe value is set to `YES` when a plan is initially added to the plan baseline.\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - auto_purge: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='autoPurge', description='Gets the auto_purge of this SqlPlanBaseline.\nIndicates whether the plan baseline is auto-purged (`YES`) or not (`NO`).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - adaptive: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the adaptive of this SqlPlanBaseline.\nIndicates whether a plan that is automatically captured by SQL plan management is marked adaptive or not.\n\nWhen a new adaptive plan is found for a SQL statement that has an existing SQL plan baseline, that new plan\nwill be added to the SQL plan baseline as an unaccepted plan, and the `ADAPTIVE` property will be marked `YES`.\nWhen this new plan is verified (either manually or via the auto evolve task), the plan will be test executed\nand the final plan determined at execution will become an accepted plan if its performance is better than\nthe existing plan baseline. At this point, the value of the `ADAPTIVE` property is set to `NO` since the plan\nis no longer adaptive, but resolved.\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - module: str | None = Field(None, description='Gets the module of this SqlPlanBaseline.\nThe application module name.') - action: str | None = Field(None, description='Gets the action of this SqlPlanBaseline.\nThe application action.') - execution_plan: str = Field(..., alias='executionPlan', description='**[Required]** Gets the execution_plan of this SqlPlanBaseline.\nThe execution plan for the SQL statement.') - - -class SqlPlanBaselineAggregation(DbmBaseModel): - """A summary of SQL plan baselines.""" - - dimensions: SqlPlanBaselineDimensions = Field(..., description='**[Required]** Gets the dimensions of this SqlPlanBaselineAggregation.') - count: int | None = Field(None, ge=0, description='Gets the count of this SqlPlanBaselineAggregation.\nThe number of SQL plan baselines matching aggregation criteria.') - - -class SqlPlanBaselineAggregationCollection(DbmBaseModel): - """A collection of SQL plan baseline aggregations.""" - - items: list[SqlPlanBaselineAggregation] = Field(..., description='**[Required]** Gets the items of this SqlPlanBaselineAggregationCollection.\nA list of SQL plan baseline aggregations.') - - -class SqlPlanBaselineCollection(DbmBaseModel): - """The SQL plan baseline list.""" - - items: list[SqlPlanBaselineSummary] = Field(..., description='**[Required]** Gets the items of this SqlPlanBaselineCollection.\nA list of SQL plan baselines.') - - -class SqlPlanBaselineConfiguration(DbmBaseModel): - """The configuration details of SQL plan baselines. The details include: - -- whether automatic initial plan capture is enabled or disabled -- whether use of SQL plan baselines is enabled or disabled -- whether Automatic SPM Evolve Advisor task is enabled or disabled -- whether high-frequency Automatic SPM Evolve Advisor task is enabled or disabled -- filters for the automatic initial plan capture -- parameters for the Automatic SPM Evolve Advisor task -- plan retention and allocated space for the plan baselines""" - - is_automatic_initial_plan_capture_enabled: bool = Field(..., alias='isAutomaticInitialPlanCaptureEnabled', description='**[Required]** Gets the is_automatic_initial_plan_capture_enabled of this SqlPlanBaselineConfiguration.\nIndicates whether the automatic capture of SQL plan baselines is enabled (`true`) or not (`false`).') - is_sql_plan_baselines_usage_enabled: bool = Field(..., alias='isSqlPlanBaselinesUsageEnabled', description='**[Required]** Gets the is_sql_plan_baselines_usage_enabled of this SqlPlanBaselineConfiguration.\nIndicates whether the database uses SQL plan baselines (`true`) or not (`false`).') - is_auto_spm_evolve_task_enabled: bool = Field(..., alias='isAutoSpmEvolveTaskEnabled', description='**[Required]** Gets the is_auto_spm_evolve_task_enabled of this SqlPlanBaselineConfiguration.\nIndicates whether the Automatic SPM Evolve Advisor task is enabled (`true`) or not (`false`).') - is_high_frequency_auto_spm_evolve_task_enabled: bool = Field(..., alias='isHighFrequencyAutoSpmEvolveTaskEnabled', description='**[Required]** Gets the is_high_frequency_auto_spm_evolve_task_enabled of this SqlPlanBaselineConfiguration.\nIndicates whether the high frequency Automatic SPM Evolve Advisor task is enabled (`true`) or not (`false`).') - plan_retention_weeks: int = Field(..., alias='planRetentionWeeks', description='**[Required]** Gets the plan_retention_weeks of this SqlPlanBaselineConfiguration.\nThe number of weeks to retain unused plans before they are purged.') - space_budget_percent: float = Field(..., alias='spaceBudgetPercent', description='**[Required]** Gets the space_budget_percent of this SqlPlanBaselineConfiguration.\nThe maximum percent of `SYSAUX` space that can be used for SQL Management Base.') - space_budget_mb: float | None = Field(None, alias='spaceBudgetMB', description='Gets the space_budget_mb of this SqlPlanBaselineConfiguration.\nThe maximum `SYSAUX` space that can be used for SQL Management Base in MB.') - space_used_mb: float | None = Field(None, alias='spaceUsedMB', description='Gets the space_used_mb of this SqlPlanBaselineConfiguration.\nThe space used by SQL Management Base in MB.') - auto_capture_filters: list[AutomaticCaptureFilter] | None = Field(None, alias='autoCaptureFilters', description='Gets the auto_capture_filters of this SqlPlanBaselineConfiguration.\nThe capture filters used in automatic initial plan capture.') - auto_spm_evolve_task_parameters: SpmEvolveTaskParameters | None = Field(None, alias='autoSpmEvolveTaskParameters', description='Gets the auto_spm_evolve_task_parameters of this SqlPlanBaselineConfiguration.') - - -class SqlPlanBaselineDimensions(DbmBaseModel): - """The details of the SQL plan baseline dimensions.""" - - attribute_name: str = Field(..., alias='attributeName', description='**[Required]** Gets the attribute_name of this SqlPlanBaselineDimensions.\nThe name of the SQL plan baseline attribute.') - attribute_value: str = Field(..., alias='attributeValue', description='**[Required]** Gets the attribute_value of this SqlPlanBaselineDimensions.\nThe value of the attribute.') - - -class SqlPlanBaselineJob(DbmBaseModel): - """The details of the database job used for loading and evolving SQL plan baselines.""" - - name: str = Field(..., description='**[Required]** Gets the name of this SqlPlanBaselineJob.\nThe job name.') - type: Literal['LOAD', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the type of this SqlPlanBaselineJob.\nThe job type.\n\nAllowed values for this property are: "LOAD", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - status: Literal['SUCCEEDED', 'SCHEDULED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the status of this SqlPlanBaselineJob.\nThe job status.\n\nAllowed values for this property are: "SUCCEEDED", "SCHEDULED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this SqlPlanBaselineJob.\nThe date and time the job was created.') - - -class SqlPlanBaselineJobCollection(DbmBaseModel): - """A collection of database jobs used for loading and evolving SQL plan baselines.""" - - items: list[SqlPlanBaselineJobSummary] = Field(..., description='**[Required]** Gets the items of this SqlPlanBaselineJobCollection.\nA list of SQL plan baseline jobs.') - - -class SqlPlanBaselineJobSummary(DbmBaseModel): - """A summary of the database job used for loading and evolving SQL plan baselines.""" - - name: str = Field(..., description='**[Required]** Gets the name of this SqlPlanBaselineJobSummary.\nThe name of the job.') - type: Literal['LOAD', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the type of this SqlPlanBaselineJobSummary.\nThe type of the job.\n\nAllowed values for this property are: "LOAD", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - status: Literal['SUCCEEDED', 'SCHEDULED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the status of this SqlPlanBaselineJobSummary.\nThe status of the job.\n\nAllowed values for this property are: "SUCCEEDED", "SCHEDULED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this SqlPlanBaselineJobSummary.\nThe date and time the job was created.') - - -class SqlPlanBaselineSummary(DbmBaseModel): - """The summary of a SQL plan baseline.""" - - plan_name: str = Field(..., alias='planName', description='**[Required]** Gets the plan_name of this SqlPlanBaselineSummary.\nThe unique plan identifier.') - sql_handle: str = Field(..., alias='sqlHandle', description='**[Required]** Gets the sql_handle of this SqlPlanBaselineSummary.\nThe unique SQL identifier.') - sql_text: str = Field(..., alias='sqlText', description='**[Required]** Gets the sql_text of this SqlPlanBaselineSummary.\nThe SQL text (truncated to the first 50 characters).') - origin: Literal['ADDM_SQLTUNE', 'AUTO_CAPTURE', 'AUTO_SQLTUNE', 'EVOLVE_AUTO_INDEX_LOAD', 'EVOLVE_CREATE_FROM_ADAPTIVE', 'EVOLVE_LOAD_FROM_STS', 'EVOLVE_LOAD_FROM_AWR', 'EVOLVE_LOAD_FROM_CURSOR_CACHE', 'MANUAL_LOAD', 'MANUAL_LOAD_FROM_AWR', 'MANUAL_LOAD_FROM_CURSOR_CACHE', 'MANUAL_LOAD_FROM_STS', 'MANUAL_SQLTUNE', 'STORED_OUTLINE', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the origin of this SqlPlanBaselineSummary.\nThe origin of the SQL plan baseline.\n\nAllowed values for this property are: "ADDM_SQLTUNE", "AUTO_CAPTURE", "AUTO_SQLTUNE", "EVOLVE_AUTO_INDEX_LOAD", "EVOLVE_CREATE_FROM_ADAPTIVE", "EVOLVE_LOAD_FROM_STS", "EVOLVE_LOAD_FROM_AWR", "EVOLVE_LOAD_FROM_CURSOR_CACHE", "MANUAL_LOAD", "MANUAL_LOAD_FROM_AWR", "MANUAL_LOAD_FROM_CURSOR_CACHE", "MANUAL_LOAD_FROM_STS", "MANUAL_SQLTUNE", "STORED_OUTLINE", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this SqlPlanBaselineSummary.\nThe date and time when the plan baseline was created.') - time_last_modified: datetime | None = Field(None, alias='timeLastModified', description='Gets the time_last_modified of this SqlPlanBaselineSummary.\nThe date and time when the plan baseline was last modified.') - time_last_executed: datetime | None = Field(None, alias='timeLastExecuted', description='Gets the time_last_executed of this SqlPlanBaselineSummary.\nThe date and time when the plan baseline was last executed.\n\n**Note:** For performance reasons, database does not update this value\nimmediately after each execution of the plan baseline. Therefore, the plan\nbaseline may have been executed more recently than this value indicates.') - enabled: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the enabled of this SqlPlanBaselineSummary.\nIndicates whether the plan baseline is enabled (`YES`) or disabled (`NO`).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - accepted: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the accepted of this SqlPlanBaselineSummary.\nIndicates whether the plan baseline is accepted (`YES`) or not (`NO`).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - fixed: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the fixed of this SqlPlanBaselineSummary.\nIndicates whether the plan baseline is fixed (`YES`) or not (`NO`).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - reproduced: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the reproduced of this SqlPlanBaselineSummary.\nIndicates whether the optimizer was able to reproduce the plan (`YES`) or not (`NO`).\nThe value is set to `YES` when a plan is initially added to the plan baseline.\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - auto_purge: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='autoPurge', description='Gets the auto_purge of this SqlPlanBaselineSummary.\nIndicates whether the plan baseline is auto-purged (`YES`) or not (`NO`).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - adaptive: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the adaptive of this SqlPlanBaselineSummary.\nIndicates whether a plan that is automatically captured by SQL plan management is marked adaptive or not.\n\nWhen a new adaptive plan is found for a SQL statement that has an existing SQL plan baseline, that new plan\nwill be added to the SQL plan baseline as an unaccepted plan, and the `ADAPTIVE` property will be marked `YES`.\nWhen this new plan is verified (either manually or via the auto evolve task), the plan will be test executed\nand the final plan determined at execution will become an accepted plan if its performance is better than\nthe existing plan baseline. At this point, the value of the `ADAPTIVE` property is set to `NO` since the plan\nis no longer adaptive, but resolved.\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class SqlTuningAdvisorTaskCollection(DbmBaseModel): - """The SQL Tuning Advisor task list.""" - - items: list[SqlTuningAdvisorTaskSummary] = Field(..., description='**[Required]** Gets the items of this SqlTuningAdvisorTaskCollection.\nA list of SQL Tuning Advisor tasks.') - - -class SqlTuningAdvisorTaskFindingCollection(DbmBaseModel): - """The list of findings for a SQL Tuning Advisor task.""" - - items: list[SqlTuningAdvisorTaskFindingSummary] = Field(..., description='**[Required]** Gets the items of this SqlTuningAdvisorTaskFindingCollection.\nAn array of the findings for a tuning task.') - - -class SqlTuningAdvisorTaskFindingSummary(DbmBaseModel): - """A summary of the findings of the objects in a tuning task that match a given filter. -This includes the kind of findings that were reported, whether the benefits were analyzed, and the number of benefits obtained.""" - - sql_tuning_advisor_task_id: int = Field(..., alias='sqlTuningAdvisorTaskId', description='**[Required]** Gets the sql_tuning_advisor_task_id of this SqlTuningAdvisorTaskFindingSummary. The unique identifier of the SQL Tuning Advisor task. This is not the OCID.') - sql_tuning_advisor_task_object_id: int = Field(..., alias='sqlTuningAdvisorTaskObjectId', description='**[Required]** Gets the sql_tuning_advisor_task_object_id of this SqlTuningAdvisorTaskFindingSummary. The key of the object to which these recommendations apply. This is not the OCID.') - sql_tuning_advisor_task_object_execution_id: int = Field(..., alias='sqlTuningAdvisorTaskObjectExecutionId', description='**[Required]** Gets the sql_tuning_advisor_task_object_execution_id of this SqlTuningAdvisorTaskFindingSummary. The execution id of the analyzed SQL object. This is not the OCID.') - sql_text: str = Field(..., alias='sqlText', description='**[Required]** Gets the sql_text of this SqlTuningAdvisorTaskFindingSummary.\nThe text of the SQL statement.') - parsing_schema: str = Field(..., alias='parsingSchema', description='**[Required]** Gets the parsing_schema of this SqlTuningAdvisorTaskFindingSummary.\nThe parsing schema of the object.') - sql_key: str = Field(..., alias='sqlKey', description='**[Required]** Gets the sql_key of this SqlTuningAdvisorTaskFindingSummary.\nThe unique key of this SQL statement.') - db_time_benefit: float | None = Field(None, alias='dbTimeBenefit', description='Gets the db_time_benefit of this SqlTuningAdvisorTaskFindingSummary.\nThe time benefit (in seconds) for the highest-rated finding for this object.') - per_execution_percentage: int | None = Field(None, alias='perExecutionPercentage', description='Gets the per_execution_percentage of this SqlTuningAdvisorTaskFindingSummary.\nThe per-execution percentage benefit.') - is_stats_finding_present: bool | None = Field(None, alias='isStatsFindingPresent', description='Gets the is_stats_finding_present of this SqlTuningAdvisorTaskFindingSummary.\nIndicates whether a statistics recommendation was reported for this SQL statement.') - is_sql_profile_finding_present: bool | None = Field(None, alias='isSqlProfileFindingPresent', description='Gets the is_sql_profile_finding_present of this SqlTuningAdvisorTaskFindingSummary.\nIndicates whether a SQL Profile recommendation was reported for this SQL statement.') - is_sql_profile_finding_implemented: bool | None = Field(None, alias='isSqlProfileFindingImplemented', description='Gets the is_sql_profile_finding_implemented of this SqlTuningAdvisorTaskFindingSummary.\nIndicates whether a SQL Profile recommendation has been implemented for this SQL statement.') - is_index_finding_present: bool | None = Field(None, alias='isIndexFindingPresent', description='Gets the is_index_finding_present of this SqlTuningAdvisorTaskFindingSummary.\nIndicates whether an index recommendation was reported for this SQL statement.') - is_restructure_sql_finding_present: bool | None = Field(None, alias='isRestructureSqlFindingPresent', description='Gets the is_restructure_sql_finding_present of this SqlTuningAdvisorTaskFindingSummary.\nIndicates whether a restructure SQL recommendation was reported for this SQL statement.') - is_alternative_plan_finding_present: bool | None = Field(None, alias='isAlternativePlanFindingPresent', description='Gets the is_alternative_plan_finding_present of this SqlTuningAdvisorTaskFindingSummary.\nIndicates whether an alternative execution plan was reported for this SQL statement.') - is_miscellaneous_finding_present: bool | None = Field(None, alias='isMiscellaneousFindingPresent', description='Gets the is_miscellaneous_finding_present of this SqlTuningAdvisorTaskFindingSummary.\nIndicates whether a miscellaneous finding was reported for this SQL statement.') - is_error_finding_present: bool | None = Field(None, alias='isErrorFindingPresent', description='Gets the is_error_finding_present of this SqlTuningAdvisorTaskFindingSummary.\nIndicates whether there is an error in this SQL statement.') - is_timeout_finding_present: bool | None = Field(None, alias='isTimeoutFindingPresent', description='Gets the is_timeout_finding_present of this SqlTuningAdvisorTaskFindingSummary.\nIndicates whether the task timed out.') - - -class SqlTuningAdvisorTaskRecommendationCollection(DbmBaseModel): - """The SQL Tuning Advisor recommendations for a given SQL statement.""" - - items: list[SqlTuningAdvisorTaskRecommendationSummary] = Field(..., description='**[Required]** Gets the items of this SqlTuningAdvisorTaskRecommendationCollection.\nA list of SQL Tuning Advisor recommendations.') - - -class SqlTuningAdvisorTaskRecommendationSummary(DbmBaseModel): - """A recommendation for a given object in a SQL Tuning Task.""" - - sql_tuning_advisor_task_id: int = Field(..., alias='sqlTuningAdvisorTaskId', description='**[Required]** Gets the sql_tuning_advisor_task_id of this SqlTuningAdvisorTaskRecommendationSummary. The unique identifier of the task. This is not the OCID.') - sql_tuning_advisor_task_object_id: int = Field(..., alias='sqlTuningAdvisorTaskObjectId', description='**[Required]** Gets the sql_tuning_advisor_task_object_id of this SqlTuningAdvisorTaskRecommendationSummary. The key of the object to which these recommendations apply. This is not the OCID.') - recommendation_key: int = Field(..., alias='recommendationKey', description='**[Required]** Gets the recommendation_key of this SqlTuningAdvisorTaskRecommendationSummary.\nThe unique identifier of the recommendation in the scope of the task.') - recommendation_type: Literal['STATISTICS', 'INDEX', 'SQL_PROFILE', 'RESTRUCTURE_SQL', 'ALTERNATIVE_PLANS', 'ERROR', 'MISCELLANEOUS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='recommendationType', description='**[Required]** Gets the recommendation_type of this SqlTuningAdvisorTaskRecommendationSummary.\nType of recommendation.\n\nAllowed values for this property are: "STATISTICS", "INDEX", "SQL_PROFILE", "RESTRUCTURE_SQL", "ALTERNATIVE_PLANS", "ERROR", "MISCELLANEOUS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - finding: str | None = Field(None, description='Gets the finding of this SqlTuningAdvisorTaskRecommendationSummary.\nSummary of the issue found in the SQL statement.') - recommendation: str | None = Field(None, description='Gets the recommendation of this SqlTuningAdvisorTaskRecommendationSummary.\nThe recommendation for a specific finding.') - rationale: str | None = Field(None, description='Gets the rationale of this SqlTuningAdvisorTaskRecommendationSummary.\nDescribes the reasoning behind the recommendation and how it relates to the finding.') - benefit: float | None = Field(None, description='Gets the benefit of this SqlTuningAdvisorTaskRecommendationSummary.\nThe percentage benefit of this implementation.') - implement_action_sql: str | None = Field(None, alias='implementActionSql', description='Gets the implement_action_sql of this SqlTuningAdvisorTaskRecommendationSummary.\nAction sql to be implemented based on the recommendation result.') - is_parallel_execution: bool | None = Field(None, alias='isParallelExecution', description='Gets the is_parallel_execution of this SqlTuningAdvisorTaskRecommendationSummary.\nIndicates whether a SQL Profile recommendation uses parallel execution.') - - -class SqlTuningAdvisorTaskSqlExecutionPlan(DbmBaseModel): - """A SQL execution plan.""" - - plan: list[SqlTuningTaskSqlExecutionPlanStep] = Field(..., description='**[Required]** Gets the plan of this SqlTuningAdvisorTaskSqlExecutionPlan.\nA SQL execution plan as a list of steps.') - - -class SqlTuningAdvisorTaskSummary(DbmBaseModel): - """The summary of a SQL Tuning Advisor task.""" - - sql_tuning_advisor_task_id: int = Field(..., alias='sqlTuningAdvisorTaskId', description='**[Required]** Gets the sql_tuning_advisor_task_id of this SqlTuningAdvisorTaskSummary. The unique identifier of the SQL Tuning Advisor task. This is not the OCID.') - instance_id: int | None = Field(None, alias='instanceId', description='Gets the instance_id of this SqlTuningAdvisorTaskSummary. The instance ID of the SQL Tuning Advisor task. This is not the OCID.') - name: str | None = Field(None, description='Gets the name of this SqlTuningAdvisorTaskSummary.\nThe name of the SQL Tuning Advisor task.') - description: str | None = Field(None, description='Gets the description of this SqlTuningAdvisorTaskSummary.\nThe description of the SQL Tuning Advisor task.') - owner: str | None = Field(None, description='Gets the owner of this SqlTuningAdvisorTaskSummary.\nThe owner of the SQL Tuning Advisor task.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this SqlTuningAdvisorTaskSummary.\nThe Creation date of the SQL Tuning Advisor task.') - task_status: Literal['COMPLETED', 'INITIAL', 'EXECUTING', 'INTERRUPTED', 'ERROR', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='taskStatus', description='Gets the task_status of this SqlTuningAdvisorTaskSummary.\nThe status of the SQL Tuning Advisor task.\n\nAllowed values for this property are: "COMPLETED", "INITIAL", "EXECUTING", "INTERRUPTED", "ERROR", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - days_to_expire: int | None = Field(None, alias='daysToExpire', description='Gets the days_to_expire of this SqlTuningAdvisorTaskSummary.\nThe number of days left before the task expires. If the value equals -1, then the task has no expiration time (UNLIMITED).') - time_execution_started: datetime | None = Field(None, alias='timeExecutionStarted', description='Gets the time_execution_started of this SqlTuningAdvisorTaskSummary.\nThe start time of the task execution.') - time_execution_ended: datetime | None = Field(None, alias='timeExecutionEnded', description='Gets the time_execution_ended of this SqlTuningAdvisorTaskSummary.\nThe end time of the task execution.') - total_sql_statements: int | None = Field(None, alias='totalSqlStatements', description='Gets the total_sql_statements of this SqlTuningAdvisorTaskSummary.\nThe total number of SQL statements related to the SQL Tuning Advisor task.') - recommendation_count: int | None = Field(None, ge=0, alias='recommendationCount', description='Gets the recommendation_count of this SqlTuningAdvisorTaskSummary.\nThe number of recommendations provided for the SQL Tuning Advisor task.') - - -class SqlTuningAdvisorTaskSummaryFindingBenefits(DbmBaseModel): - """The benefits of the findings in the SQL Tuning Advisor summary report.""" - - db_time_before_recommended: int = Field(..., alias='dbTimeBeforeRecommended', description='**[Required]** Gets the db_time_before_recommended of this SqlTuningAdvisorTaskSummaryFindingBenefits.\nThe actual database time of the SQL statements for which SQL Tuning Advisor recommendations are not implemented.') - db_time_after_recommended: int = Field(..., alias='dbTimeAfterRecommended', description='**[Required]** Gets the db_time_after_recommended of this SqlTuningAdvisorTaskSummaryFindingBenefits.\nThe estimated database time of the above SQL statements, if SQL Tuning Advisor recommendations are implemented.') - db_time_after_implemented: int = Field(..., alias='dbTimeAfterImplemented', description='**[Required]** Gets the db_time_after_implemented of this SqlTuningAdvisorTaskSummaryFindingBenefits.\nThe actual database time of the SQL statements for which SQL Tuning Advisor recommendations are implemented.') - db_time_before_implemented: int = Field(..., alias='dbTimeBeforeImplemented', description='**[Required]** Gets the db_time_before_implemented of this SqlTuningAdvisorTaskSummaryFindingBenefits.\nThe actual database time of the above SQL statements, before SQL Tuning Advisor recommendations are implemented.') - - -class SqlTuningAdvisorTaskSummaryFindingCounts(DbmBaseModel): - """The number of findings in the SQL Tuning Advisor summary report.""" - - recommended_sql_profile: int = Field(..., alias='recommendedSqlProfile', description='**[Required]** Gets the recommended_sql_profile of this SqlTuningAdvisorTaskSummaryFindingCounts.\nThe number of distinct SQL statements with recommended SQL profiles.') - implemented_sql_profile: int = Field(..., alias='implementedSqlProfile', description='**[Required]** Gets the implemented_sql_profile of this SqlTuningAdvisorTaskSummaryFindingCounts.\nThe number of distinct SQL statements with implemented SQL profiles.') - index: int = Field(..., description='**[Required]** Gets the index of this SqlTuningAdvisorTaskSummaryFindingCounts.\nThe number of distinct SQL statements with index recommendations.') - restructure: int = Field(..., description='**[Required]** Gets the restructure of this SqlTuningAdvisorTaskSummaryFindingCounts.\nThe number of distinct SQL statements with restructured SQL recommendations.') - statistics: int = Field(..., description='**[Required]** Gets the statistics of this SqlTuningAdvisorTaskSummaryFindingCounts.\nThe number of distinct SQL statements with stale or missing optimizer statistics recommendations.') - alternate_plan: int = Field(..., alias='alternatePlan', description='**[Required]** Gets the alternate_plan of this SqlTuningAdvisorTaskSummaryFindingCounts.\nThe number of distinct SQL statements with alternative plan recommendations.') - - -class SqlTuningAdvisorTaskSummaryReport(DbmBaseModel): - """The content of the SQL Tuning Advisor summary report.""" - - task_info: SqlTuningAdvisorTaskSummaryReportTaskInfo = Field(..., alias='taskInfo', description='**[Required]** Gets the task_info of this SqlTuningAdvisorTaskSummaryReport.') - statistics: SqlTuningAdvisorTaskSummaryReportStatistics = Field(..., description='**[Required]** Gets the statistics of this SqlTuningAdvisorTaskSummaryReport.') - object_stat_findings: list[SqlTuningAdvisorTaskSummaryReportObjectStatFindingSummary] | None = Field(None, alias='objectStatFindings', description='Gets the object_stat_findings of this SqlTuningAdvisorTaskSummaryReport.\nThe list of object findings related to statistics.') - index_findings: list[SqlTuningAdvisorTaskSummaryReportIndexFindingSummary] | None = Field(None, alias='indexFindings', description='Gets the index_findings of this SqlTuningAdvisorTaskSummaryReport.\nThe list of object findings related to indexes.') - - -class SqlTuningAdvisorTaskSummaryReportIndexFindingSummary(DbmBaseModel): - """A summary for all the index findings in a SQL Tuning Advisor task. Includes the index's hash value, table name, schema, index name, reference count and index columns""" - - index_hash_value: int = Field(..., alias='indexHashValue', description='**[Required]** Gets the index_hash_value of this SqlTuningAdvisorTaskSummaryReportIndexFindingSummary.\nNumerical representation of the index.') - index_name: str = Field(..., alias='indexName', description='**[Required]** Gets the index_name of this SqlTuningAdvisorTaskSummaryReportIndexFindingSummary.\nName of the index.') - table_name: str = Field(..., alias='tableName', description="**[Required]** Gets the table_name of this SqlTuningAdvisorTaskSummaryReportIndexFindingSummary.\nTable's name related to the index.") - schema_name: str = Field(..., alias='schema', description='**[Required]** Gets the schema of this SqlTuningAdvisorTaskSummaryReportIndexFindingSummary.\nSchema related to the index.') - reference_count: int = Field(..., ge=0, alias='referenceCount', description='**[Required]** Gets the reference_count of this SqlTuningAdvisorTaskSummaryReportIndexFindingSummary.\nThe number of times the index is referenced within the SQL Tuning advisor task findings.') - index_columns: list[str] = Field(..., alias='indexColumns', description='**[Required]** Gets the index_columns of this SqlTuningAdvisorTaskSummaryReportIndexFindingSummary.\nColumns of the index.') - - -class SqlTuningAdvisorTaskSummaryReportObjectStatFindingSummary(DbmBaseModel): - """A summary for all the statistic findings of an object in a SQL Tuning Advisor task. Includes the object's hash, name, type, schema, problem type and the object reference count.""" - - object_hash_value: int = Field(..., alias='objectHashValue', description='**[Required]** Gets the object_hash_value of this SqlTuningAdvisorTaskSummaryReportObjectStatFindingSummary.\nNumerical representation of the object.') - object_name: str = Field(..., alias='objectName', description='**[Required]** Gets the object_name of this SqlTuningAdvisorTaskSummaryReportObjectStatFindingSummary.\nName of the object.') - object_type: str = Field(..., alias='objectType', description='**[Required]** Gets the object_type of this SqlTuningAdvisorTaskSummaryReportObjectStatFindingSummary.\nType of the object.') - schema_name: str = Field(..., alias='schema', description='**[Required]** Gets the schema of this SqlTuningAdvisorTaskSummaryReportObjectStatFindingSummary.\nSchema of the object.') - problem_type: Literal['MISSING', 'STALE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='problemType', description='**[Required]** Gets the problem_type of this SqlTuningAdvisorTaskSummaryReportObjectStatFindingSummary.\nType of statistics problem related to the object.\n\nAllowed values for this property are: "MISSING", "STALE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - reference_count: int = Field(..., ge=0, alias='referenceCount', description='**[Required]** Gets the reference_count of this SqlTuningAdvisorTaskSummaryReportObjectStatFindingSummary.\nThe number of the times the object is referenced within the SQL Tuning advisor task findings.') - - -class SqlTuningAdvisorTaskSummaryReportStatementCounts(DbmBaseModel): - """The number of statements in the SQL Tuning Advisor summary report.""" - - distinct_sql: int = Field(..., alias='distinctSql', description='**[Required]** Gets the distinct_sql of this SqlTuningAdvisorTaskSummaryReportStatementCounts.\nThe number of distinct SQL statements.') - total_sql: int = Field(..., alias='totalSql', description='**[Required]** Gets the total_sql of this SqlTuningAdvisorTaskSummaryReportStatementCounts.\nThe total number of SQL statements.') - finding_count: int = Field(..., ge=0, alias='findingCount', description='**[Required]** Gets the finding_count of this SqlTuningAdvisorTaskSummaryReportStatementCounts.\nThe number of distinct SQL statements with findings.') - error_count: int = Field(..., ge=0, alias='errorCount', description='**[Required]** Gets the error_count of this SqlTuningAdvisorTaskSummaryReportStatementCounts.\nThe number of distinct SQL statements with errors.') - - -class SqlTuningAdvisorTaskSummaryReportStatistics(DbmBaseModel): - """The statistics of the statements and findings in the SQL Tuning Advisor summary report.""" - - statement_counts: SqlTuningAdvisorTaskSummaryReportStatementCounts = Field(..., alias='statementCounts', description='**[Required]** Gets the statement_counts of this SqlTuningAdvisorTaskSummaryReportStatistics.') - finding_counts: SqlTuningAdvisorTaskSummaryFindingCounts = Field(..., alias='findingCounts', description='**[Required]** Gets the finding_counts of this SqlTuningAdvisorTaskSummaryReportStatistics.') - finding_benefits: SqlTuningAdvisorTaskSummaryFindingBenefits = Field(..., alias='findingBenefits', description='**[Required]** Gets the finding_benefits of this SqlTuningAdvisorTaskSummaryReportStatistics.') - - -class SqlTuningAdvisorTaskSummaryReportTaskInfo(DbmBaseModel): - """The general information regarding the SQL Tuning Advisor task.""" - - id: int = Field(..., description='**[Required]** Gets the id of this SqlTuningAdvisorTaskSummaryReportTaskInfo. The ID of the SQL Tuning Advisor task. This is not the OCID.') - name: str = Field(..., description='**[Required]** Gets the name of this SqlTuningAdvisorTaskSummaryReportTaskInfo.\nThe name of the SQL Tuning Advisor task.') - description: str | None = Field(None, description='Gets the description of this SqlTuningAdvisorTaskSummaryReportTaskInfo.\nThe description of the SQL Tuning Advisor task. This is not defined for Auto SQL Tuning tasks.') - owner: str = Field(..., description='**[Required]** Gets the owner of this SqlTuningAdvisorTaskSummaryReportTaskInfo.\nThe owner of the SQL Tuning Advisor task.') - status: Literal['COMPLETED', 'INITIAL', 'EXECUTING', 'INTERRUPTED', 'ERROR', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this SqlTuningAdvisorTaskSummaryReportTaskInfo.\nThe status of the SQL Tuning Advisor task. This is not defined for Auto SQL Tuning tasks.\n\nAllowed values for this property are: "COMPLETED", "INITIAL", "EXECUTING", "INTERRUPTED", "ERROR", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_started: datetime = Field(..., alias='timeStarted', description='**[Required]** Gets the time_started of this SqlTuningAdvisorTaskSummaryReportTaskInfo.\nThe start time of the task execution.') - time_ended: datetime = Field(..., alias='timeEnded', description='**[Required]** Gets the time_ended of this SqlTuningAdvisorTaskSummaryReportTaskInfo.\nThe end time of the task execution.') - running_time: int | None = Field(None, alias='runningTime', description='Gets the running_time of this SqlTuningAdvisorTaskSummaryReportTaskInfo.\nThe total running time in seconds. This is not defined for Auto SQL Tuning tasks.') - - -class SqlTuningSet(DbmBaseModel): - """Details of the Sql tuning set.""" - - id: int | None = Field(None, description='Gets the id of this SqlTuningSet.\nThe unique Sql tuning set identifier.') - owner: str = Field(..., description='**[Required]** Gets the owner of this SqlTuningSet.\nThe owner of the Sql tuning set.') - name: str = Field(..., description='**[Required]** Gets the name of this SqlTuningSet.\nThe name of the Sql tuning set.') - statement_count: int | None = Field(None, ge=0, alias='statementCount', description='Gets the statement_count of this SqlTuningSet.\nNumber of statements in the Sql tuning set') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this SqlTuningSet.\nThe created time of the Sql tuning set.') - description: str | None = Field(None, description='Gets the description of this SqlTuningSet.\nThe description of the Sql tuning set.') - time_last_modified: datetime | None = Field(None, alias='timeLastModified', description='Gets the time_last_modified of this SqlTuningSet.\nLast modified time of the Sql tuning set.') - status: Literal['DISABLED', 'RETRY_SCHEDULED', 'SCHEDULED', 'BLOCKED', 'RUNNING', 'COMPLETED', 'BROKEN', 'FAILED', 'REMOTE', 'RESOURCE_UNAVAILABLE', 'SUCCEEDED', 'CHAIN_STALLED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this SqlTuningSet.\nCurrent status of the Sql tuning set.\n\nAllowed values for this property are: "DISABLED", "RETRY_SCHEDULED", "SCHEDULED", "BLOCKED", "RUNNING", "COMPLETED", "BROKEN", "FAILED", "REMOTE", "RESOURCE_UNAVAILABLE", "SUCCEEDED", "CHAIN_STALLED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - scheduled_job_name: str | None = Field(None, alias='scheduledJobName', description='Gets the scheduled_job_name of this SqlTuningSet.\nName of the Sql tuning set scheduler job.') - error_message: str | None = Field(None, alias='errorMessage', description='Gets the error_message of this SqlTuningSet.\nLatest execution error of the plsql that was submitted as a scheduler job.') - all_sql_statements_fetched: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='allSqlStatementsFetched', description='Gets the all_sql_statements_fetched of this SqlTuningSet.\nIn OCI database management, there is a limit to fetch only 2000 rows.\nThis flag indicates whether all Sql statements of this Sql tuning set matching the filter criteria are fetched or not.\nPossible values are \'Yes\' or \'No\'\n - Yes - All Sql statements matching the filter criteria are fetched.\n - No - There are more Sql statements matching the fitler criteria.\n User should fine tune the filter criteria to narrow down the result set.\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - sql_list: list[SqlInSqlTuningSet] | None = Field(None, alias='sqlList', description='Gets the sql_list of this SqlTuningSet.\nA list of the Sqls associated with the Sql tuning set.') - - -class SqlTuningSetAdminActionStatus(DbmBaseModel): - """The status of a Sql tuning set admin action.""" - - status: Literal['SUCCEEDED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the status of this SqlTuningSetAdminActionStatus.\nThe status of a Sql tuning set admin action.\n\nAllowed values for this property are: "SUCCEEDED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - success_message: str | None = Field(None, alias='successMessage', description='Gets the success_message of this SqlTuningSetAdminActionStatus.\nThe success message of the Sql tuning set admin action. The success message is "null" if the admin action is non successful.') - error_code: int | None = Field(None, ge=0, alias='errorCode', description='Gets the error_code of this SqlTuningSetAdminActionStatus.\nThe error code that denotes failure if the Sql tuning set admin action is not successful. The error code is "null" if the admin action is successful.') - error_message: str | None = Field(None, alias='errorMessage', description='Gets the error_message of this SqlTuningSetAdminActionStatus.\nThe error message that indicates the reason for failure if the Sql tuning set admin action is not successful. The error message is "null" if the admin action is successful.') - show_sql_only: int | None = Field(None, alias='showSqlOnly', description='Gets the show_sql_only of this SqlTuningSetAdminActionStatus.\nFlag to indicate whether to create the Sql tuning set or just display the plsql used for the selected user action.') - sql_statement: str | None = Field(None, alias='sqlStatement', description='Gets the sql_statement of this SqlTuningSetAdminActionStatus.\nWhen showSqlOnly is set to 1, this attribute displays the plsql generated for the selected user action.\nWhen showSqlOnly is set to 0, this attribute will not be returned.') - - -class SqlTuningSetAdminCredentialDetails(DbmRequestModel): - """The credential to connect to the database to perform Sql tuning set administration tasks.""" - - sql_tuning_set_admin_credential_type: Literal['SECRET', 'PASSWORD'] = Field(..., alias='sqlTuningSetAdminCredentialType', description='**[Required]** Gets the sql_tuning_set_admin_credential_type of this SqlTuningSetAdminCredentialDetails.\nThe type of the credential for Sql tuning set administration tasks.\n\nAllowed values for this property are: "SECRET", "PASSWORD"') - username: str = Field(..., description='**[Required]** Gets the username of this SqlTuningSetAdminCredentialDetails.\nThe user to connect to the database.') - role: Literal['NORMAL', 'SYSDBA'] = Field(..., description='**[Required]** Gets the role of this SqlTuningSetAdminCredentialDetails.\nThe role of the database user.\n\nAllowed values for this property are: "NORMAL", "SYSDBA"') - - -class SqlTuningSetAdminPasswordCredentialDetails(DbmRequestModel): - """User provides a password to be used to connect to the database.""" - - sql_tuning_set_admin_credential_type: Literal['SECRET', 'PASSWORD'] = Field(..., alias='sqlTuningSetAdminCredentialType', description='**[Required]** Gets the sql_tuning_set_admin_credential_type of this SqlTuningSetAdminCredentialDetails.\nThe type of the credential for Sql tuning set administration tasks.\n\nAllowed values for this property are: "SECRET", "PASSWORD"') - username: str = Field(..., description='**[Required]** Gets the username of this SqlTuningSetAdminCredentialDetails.\nThe user to connect to the database.') - role: Literal['NORMAL', 'SYSDBA'] = Field(..., description='**[Required]** Gets the role of this SqlTuningSetAdminCredentialDetails.\nThe role of the database user.\n\nAllowed values for this property are: "NORMAL", "SYSDBA"') - password: str = Field(..., description="**[Required]** Gets the password of this SqlTuningSetAdminPasswordCredentialDetails.\nThe database user's password encoded using BASE64 scheme.") - - -class SqlTuningSetAdminSecretCredentialDetails(DbmRequestModel): - """User provides a secret OCID, which will be used to retrieve the password to connect to the database.""" - - sql_tuning_set_admin_credential_type: Literal['SECRET', 'PASSWORD'] = Field(..., alias='sqlTuningSetAdminCredentialType', description='**[Required]** Gets the sql_tuning_set_admin_credential_type of this SqlTuningSetAdminCredentialDetails.\nThe type of the credential for Sql tuning set administration tasks.\n\nAllowed values for this property are: "SECRET", "PASSWORD"') - username: str = Field(..., description='**[Required]** Gets the username of this SqlTuningSetAdminCredentialDetails.\nThe user to connect to the database.') - role: Literal['NORMAL', 'SYSDBA'] = Field(..., description='**[Required]** Gets the role of this SqlTuningSetAdminCredentialDetails.\nThe role of the database user.\n\nAllowed values for this property are: "NORMAL", "SYSDBA"') - secret_id: str = Field(..., alias='secretId', description='**[Required]** Gets the secret_id of this SqlTuningSetAdminSecretCredentialDetails. The OCID of the Secret where the database password is stored.') - - -class SqlTuningSetCollection(DbmBaseModel): - """The details in the SQL tuning set summary.""" - - managed_database_id: str = Field(..., alias='managedDatabaseId', description='**[Required]** Gets the managed_database_id of this SqlTuningSetCollection. The OCID of the Managed Database.') - items: list[SqlTuningSetSummary] = Field(..., description='**[Required]** Gets the items of this SqlTuningSetCollection.\nThe details in the SQL tuning set summary.') - - -class SqlTuningSetInput(DbmBaseModel): - """The SQL tuning set for a SQL tuning task.""" - - name: str = Field(..., description='**[Required]** Gets the name of this SqlTuningSetInput.\nThe name of the SQL tuning set.') - owner: str = Field(..., description='**[Required]** Gets the owner of this SqlTuningSetInput.\nThe owner of the SQL tuning set.') - - -class SqlTuningSetSummary(DbmBaseModel): - """The summary information of a SQL tuning set.""" - - name: str = Field(..., description='**[Required]** Gets the name of this SqlTuningSetSummary.\nThe name of the SQL tuning set.') - owner: str = Field(..., description='**[Required]** Gets the owner of this SqlTuningSetSummary.\nThe owner of the SQL tuning set.') - description: str | None = Field(None, description='Gets the description of this SqlTuningSetSummary.\nThe description of the SQL tuning set.') - statement_counts: int | None = Field(None, alias='statementCounts', description='Gets the statement_counts of this SqlTuningSetSummary.\nThe number of SQL statements in the SQL tuning set.') - id: int | None = Field(None, description='Gets the id of this SqlTuningSetSummary.\nThe unique Sql tuning set identifier. This is not OCID.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this SqlTuningSetSummary.\nThe created time of the Sql tuning set.') - time_last_modified: datetime | None = Field(None, alias='timeLastModified', description='Gets the time_last_modified of this SqlTuningSetSummary.\nLast modified time of the Sql tuning set.') - status: Literal['DISABLED', 'RETRY_SCHEDULED', 'SCHEDULED', 'BLOCKED', 'RUNNING', 'COMPLETED', 'BROKEN', 'FAILED', 'REMOTE', 'RESOURCE_UNAVAILABLE', 'SUCCEEDED', 'CHAIN_STALLED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this SqlTuningSetSummary.\nCurrent status of the Sql tuning set.\n\nAllowed values for this property are: "DISABLED", "RETRY_SCHEDULED", "SCHEDULED", "BLOCKED", "RUNNING", "COMPLETED", "BROKEN", "FAILED", "REMOTE", "RESOURCE_UNAVAILABLE", "SUCCEEDED", "CHAIN_STALLED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - scheduled_job_name: str | None = Field(None, alias='scheduledJobName', description='Gets the scheduled_job_name of this SqlTuningSetSummary.\nName of the Sql tuning set scheduler job.') - error_message: str | None = Field(None, alias='errorMessage', description='Gets the error_message of this SqlTuningSetSummary.\nLatest execution error of the plsql that was submitted as a scheduler job.') - - -class SqlTuningTaskCredentialDetails(DbmRequestModel): - """The credential used to connect to the database.""" - - sql_tuning_task_credential_type: Literal['SECRET', 'PASSWORD'] = Field(..., alias='sqlTuningTaskCredentialType', description='**[Required]** Gets the sql_tuning_task_credential_type of this SqlTuningTaskCredentialDetails.\nThe type of credential for the SQL tuning task.\n\nAllowed values for this property are: "SECRET", "PASSWORD"') - username: str = Field(..., description='**[Required]** Gets the username of this SqlTuningTaskCredentialDetails.\nThe user name used to connect to the database.') - role: Literal['NORMAL', 'SYSDBA'] = Field(..., description='**[Required]** Gets the role of this SqlTuningTaskCredentialDetails.\nThe role of the database user.\n\nAllowed values for this property are: "NORMAL", "SYSDBA"') - - -class SqlTuningTaskPasswordCredentialDetails(DbmRequestModel): - """The password provided by the user to connect to the database.""" - - sql_tuning_task_credential_type: Literal['SECRET', 'PASSWORD'] = Field(..., alias='sqlTuningTaskCredentialType', description='**[Required]** Gets the sql_tuning_task_credential_type of this SqlTuningTaskCredentialDetails.\nThe type of credential for the SQL tuning task.\n\nAllowed values for this property are: "SECRET", "PASSWORD"') - username: str = Field(..., description='**[Required]** Gets the username of this SqlTuningTaskCredentialDetails.\nThe user name used to connect to the database.') - role: Literal['NORMAL', 'SYSDBA'] = Field(..., description='**[Required]** Gets the role of this SqlTuningTaskCredentialDetails.\nThe role of the database user.\n\nAllowed values for this property are: "NORMAL", "SYSDBA"') - password: str = Field(..., description="**[Required]** Gets the password of this SqlTuningTaskPasswordCredentialDetails.\nThe database user's password encoded using BASE64 scheme.") - - -class SqlTuningTaskPlanStats(DbmBaseModel): - """The statistics of a SQL execution plan.""" - - plan_type: str = Field(..., alias='planType', description='**[Required]** Gets the plan_type of this SqlTuningTaskPlanStats.\nThe type of the original or modified plan with profile, index, and so on.') - plan_stats: dict[str, float] = Field(..., alias='planStats', description="**[Required]** Gets the plan_stats of this SqlTuningTaskPlanStats.\nA map contains the statistics for the SQL execution using the plan.\nThe key of the map is the metric's name. The value of the map is the metric's value.") - plan_status: Literal['COMPLETE', 'PARTIAL', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='planStatus', description='**[Required]** Gets the plan_status of this SqlTuningTaskPlanStats.\nThe status of the execution using the plan.\n\nAllowed values for this property are: "COMPLETE", "PARTIAL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class SqlTuningTaskReturn(DbmBaseModel): - """The returned object for starting or cloning a SQL tuning advisor task.""" - - sql_tuning_task_id: int = Field(..., alias='sqlTuningTaskId', description='**[Required]** Gets the sql_tuning_task_id of this SqlTuningTaskReturn. Identifier of the SQL tuning task being started or cloned. This value is not an OCID; use the identifier returned by SQL tuning task list, start, or clone operations.') - - -class SqlTuningTaskSecretCredentialDetails(DbmRequestModel): - """The OCID of the Secret provided by the user to retrieve the password to connect to the database.""" - - sql_tuning_task_credential_type: Literal['SECRET', 'PASSWORD'] = Field(..., alias='sqlTuningTaskCredentialType', description='**[Required]** Gets the sql_tuning_task_credential_type of this SqlTuningTaskCredentialDetails.\nThe type of credential for the SQL tuning task.\n\nAllowed values for this property are: "SECRET", "PASSWORD"') - username: str = Field(..., description='**[Required]** Gets the username of this SqlTuningTaskCredentialDetails.\nThe user name used to connect to the database.') - role: Literal['NORMAL', 'SYSDBA'] = Field(..., description='**[Required]** Gets the role of this SqlTuningTaskCredentialDetails.\nThe role of the database user.\n\nAllowed values for this property are: "NORMAL", "SYSDBA"') - password_secret_id: str = Field(..., alias='passwordSecretId', description='**[Required]** Gets the password_secret_id of this SqlTuningTaskSecretCredentialDetails. The OCID of the Secret where the database password is stored.') - - -class SqlTuningTaskSqlDetail(DbmBaseModel): - """The details of the SQL statements on which SQL tuning is performed.""" - - sql_id: str = Field(..., alias='sqlId', description='**[Required]** Gets the sql_id of this SqlTuningTaskSqlDetail.\nThe identifier of a SQL statement.') - - -class SqlTuningTaskSqlExecutionPlanStep(DbmBaseModel): - """A step in the SQL execution plan.""" - - plan_hash_value: int | None = Field(None, alias='planHashValue', description='Gets the plan_hash_value of this SqlTuningTaskSqlExecutionPlanStep.\nThe numerical representation of the SQL execution plan.') - step_id: int | None = Field(None, alias='stepId', description='Gets the step_id of this SqlTuningTaskSqlExecutionPlanStep. The identification number of a step in the SQL execution plan. This is unique within the SQL execution plan. This is not the OCID.') - parent_step_id: int | None = Field(None, alias='parentStepId', description='Gets the parent_step_id of this SqlTuningTaskSqlExecutionPlanStep. The ID of the next step that operates on the results of this step. This is not the OCID.') - position: int | None = Field(None, description='Gets the position of this SqlTuningTaskSqlExecutionPlanStep.\nThe order of processing for steps with the same parent ID.') - operation: str | None = Field(None, description='Gets the operation of this SqlTuningTaskSqlExecutionPlanStep.\nThe name of the operation performed at this step.') - options: str | None = Field(None, description='Gets the options of this SqlTuningTaskSqlExecutionPlanStep.\nThe options used for the operation performed at this step.') - optimizer_mode: str | None = Field(None, alias='optimizerMode', description='Gets the optimizer_mode of this SqlTuningTaskSqlExecutionPlanStep.\nThe current mode of the optimizer, such as all_rows, first_rows_n (where n = 1, 10, 100, 1000, and so on).') - cost: float | None = Field(None, description='Gets the cost of this SqlTuningTaskSqlExecutionPlanStep.\nThe cost of the current operation estimated by the cost-based optimizer (CBO).') - cardinality: int | None = Field(None, description='Gets the cardinality of this SqlTuningTaskSqlExecutionPlanStep.\nThe number of rows returned by the current operation (estimated by the CBO).') - bytes: int | None = Field(None, description='Gets the bytes of this SqlTuningTaskSqlExecutionPlanStep.\nThe number of bytes returned by the current operation.') - cpu_cost: float | None = Field(None, alias='cpuCost', description='Gets the cpu_cost of this SqlTuningTaskSqlExecutionPlanStep.\nThe CPU cost of the current operation.') - io_cost: float | None = Field(None, alias='ioCost', description='Gets the io_cost of this SqlTuningTaskSqlExecutionPlanStep.\nThe I/O cost of the current operation.') - temp_space: int | None = Field(None, alias='tempSpace', description='Gets the temp_space of this SqlTuningTaskSqlExecutionPlanStep.\nThe temporary space usage (in bytes) of the operation (sort or hash-join) as estimated by the CBO.') - time: int | None = Field(None, description='Gets the time of this SqlTuningTaskSqlExecutionPlanStep.\nThe elapsed time (in seconds) of the operation as estimated by the CBO.') - object_node: str | None = Field(None, alias='objectNode', description='Gets the object_node of this SqlTuningTaskSqlExecutionPlanStep.\nThe name of the database link used to reference the object.') - object_owner: str | None = Field(None, alias='objectOwner', description='Gets the object_owner of this SqlTuningTaskSqlExecutionPlanStep.\nThe owner of the object.') - object_name: str | None = Field(None, alias='objectName', description='Gets the object_name of this SqlTuningTaskSqlExecutionPlanStep.\nThe name of the object.') - object_position: int | None = Field(None, alias='objectPosition', description='Gets the object_position of this SqlTuningTaskSqlExecutionPlanStep.\nThe numbered position of the object name in the original SQL statement.') - object_type: str | None = Field(None, alias='objectType', description='Gets the object_type of this SqlTuningTaskSqlExecutionPlanStep.\nThe descriptive modifier that further describes the type of object.') - partition_start: str | None = Field(None, alias='partitionStart', description='Gets the partition_start of this SqlTuningTaskSqlExecutionPlanStep.\nA step may get data from a range of partitions of a partitioned object, such as table or index,\nbased on predicates and sorting order. The partionStart is the starting partition of the range.\nThe partitionStop is the ending partition of the range.') - partition_stop: str | None = Field(None, alias='partitionStop', description='Gets the partition_stop of this SqlTuningTaskSqlExecutionPlanStep.\nA step may get data from a range of partitions of a partitioned object, such as table or index,\nbased on predicates and sorting order. The partionStart is the starting partition of the range.\nThe partitionStop is the ending partition of the range.') - partition_id: int | None = Field(None, alias='partitionId', description='Gets the partition_id of this SqlTuningTaskSqlExecutionPlanStep.\nThe ID of the step in the execution plan that has computed the pair of values of partitionStart and partitionStop.') - remarks: str | None = Field(None, description='Gets the remarks of this SqlTuningTaskSqlExecutionPlanStep.\nThe place for comments that can be added to the steps of the execution plan.') - number_of_search_column: int | None = Field(None, alias='numberOfSearchColumn', description='Gets the number_of_search_column of this SqlTuningTaskSqlExecutionPlanStep.\nNumber of index columns with start and stop keys (that is, the number of columns with matching predicates).') - other: str | None = Field(None, description='Gets the other of this SqlTuningTaskSqlExecutionPlanStep.\nInformation about parallel execution servers and parallel queries') - other_tag: str | None = Field(None, alias='otherTag', description='Gets the other_tag of this SqlTuningTaskSqlExecutionPlanStep.\nDescribes the function of the SQL text in the OTHER column.') - attribute: str | None = Field(None, description='Gets the attribute of this SqlTuningTaskSqlExecutionPlanStep.\nThe text string identifying the type of execution plan.') - access_predicates: str | None = Field(None, alias='accessPredicates', description='Gets the access_predicates of this SqlTuningTaskSqlExecutionPlanStep.\nThe predicates used to locate rows in an access structure. For example,\nstart or stop predicates for an index range scan.') - filter_predicates: str | None = Field(None, alias='filterPredicates', description='Gets the filter_predicates of this SqlTuningTaskSqlExecutionPlanStep.\nThe predicates used to filter rows before producing them.') - - -class StandByDatabaseDataguardMetrics(DbmBaseModel): - """The standby database details.""" - - db_id: str = Field(..., alias='dbId', description='**[Required]** Gets the db_id of this StandByDatabaseDataguardMetrics. The OCID of the Managed Database.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this StandByDatabaseDataguardMetrics. The OCID of the compartment where the Managed Database resides.') - database_id: str | None = Field(None, alias='databaseId', description='Gets the database_id of this StandByDatabaseDataguardMetrics.\nThe database ID of the Managed Database. Every database had its own ID and that value is captured here.') - database_name: str = Field(..., alias='databaseName', description='**[Required]** Gets the database_name of this StandByDatabaseDataguardMetrics.\nThe display name of the Managed Database.') - db_unique_name: str | None = Field(None, alias='dbUniqueName', description='Gets the db_unique_name of this StandByDatabaseDataguardMetrics.\nThe database unique name of the Managed Database.') - db_role: Literal['SNAPSHOT_STANDBY', 'LOGICAL_STANDBY', 'PHYSICAL_STANDBY', 'PRIMARY', 'FAR_SYNC', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dbRole', description='**[Required]** Gets the db_role of this StandByDatabaseDataguardMetrics.\nThe database role of the Managed Database.\n\nAllowed values for this property are: "SNAPSHOT_STANDBY", "LOGICAL_STANDBY", "PHYSICAL_STANDBY", "PRIMARY", "FAR_SYNC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - metrics: list[HaMetricDefinition] = Field(..., description='**[Required]** Gets the metrics of this StandByDatabaseDataguardMetrics.\nA list of standby databases with latest values for metrics such as ApplyLag, TransportLag, and RedoApplyRate.') - - -class StartSqlTuningTaskDetails(DbmRequestModel): - """The request to start a SQL tuning task. -It takes either credentialDetails or databaseCredential. It's recommended to provide databaseCredential""" - - task_name: str = Field(..., alias='taskName', description='**[Required]** Gets the task_name of this StartSqlTuningTaskDetails.\nThe name of the SQL tuning task. The name is unique per user in a database, and it is case-sensitive.') - task_description: str | None = Field(None, alias='taskDescription', description='Gets the task_description of this StartSqlTuningTaskDetails.\nThe description of the SQL tuning task.') - credential_details: SqlTuningTaskCredentialDetails | None = Field(None, alias='credentialDetails', description='Gets the credential_details of this StartSqlTuningTaskDetails.') - database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this StartSqlTuningTaskDetails.') - total_time_limit_in_minutes: int = Field(..., alias='totalTimeLimitInMinutes', description='**[Required]** Gets the total_time_limit_in_minutes of this StartSqlTuningTaskDetails.\nThe time limit for running the SQL tuning task.') - scope: Literal['LIMITED', 'COMPREHENSIVE'] = Field(..., description='**[Required]** Gets the scope of this StartSqlTuningTaskDetails.\nThe scope for the SQL tuning task. For LIMITED scope, the SQL profile recommendation\nis excluded, so the task is executed faster. For COMPREHENSIVE scope, the SQL profile recommendation\nis included.\n\nAllowed values for this property are: "LIMITED", "COMPREHENSIVE"') - statement_time_limit_in_minutes: int | None = Field(None, alias='statementTimeLimitInMinutes', description='Gets the statement_time_limit_in_minutes of this StartSqlTuningTaskDetails.\nThe time limit per SQL statement (in minutes). This is for a task with the COMPREHENSIVE scope.\nThe time limit per SQL statement should not be more than the total time limit.') - sql_tuning_set: SqlTuningSetInput | None = Field(None, alias='sqlTuningSet', description='Gets the sql_tuning_set of this StartSqlTuningTaskDetails.') - sql_details: list[SqlTuningTaskSqlDetail] | None = Field(None, alias='sqlDetails', description='Gets the sql_details of this StartSqlTuningTaskDetails.\nThe details of the SQL statement on which tuning is performed.\nTo obtain the details of the SQL statement, you must provide either the sqlTuningSet\nor the tuple of sqlDetails/timeStarted/timeEnded.') - time_started: datetime | None = Field(None, alias='timeStarted', description='Gets the time_started of this StartSqlTuningTaskDetails.\nThe start time of the period in which SQL statements are running.') - time_ended: datetime | None = Field(None, alias='timeEnded', description='Gets the time_ended of this StartSqlTuningTaskDetails.\nThe end time of the period in which SQL statements are running.') - - -class StatementsAggregateMetrics(DbmBaseModel): - """The queued and running statement metrics for Autonomous Databases.""" - - queued_statements: MetricDataPoint | None = Field(None, alias='queuedStatements', description='Gets the queued_statements of this StatementsAggregateMetrics.') - running_statements: MetricDataPoint | None = Field(None, alias='runningStatements', description='Gets the running_statements of this StatementsAggregateMetrics.') - - -class StorageGridDiscoverySummary(DbmBaseModel): - """The summary of the Exadata storage server grid discovery.""" - - id: str | None = Field(None, description='Gets the id of this EntityDiscovered. The OCID of the entity discovered.') - agent_id: str | None = Field(None, alias='agentId', description='Gets the agent_id of this EntityDiscovered. The OCID of the agent used for monitoring.') - connector_id: str | None = Field(None, alias='connectorId', description='Gets the connector_id of this EntityDiscovered. The OCID of the associated connector.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this EntityDiscovered.\nThe name of the entity.') - version: str | None = Field(None, description='Gets the version of this EntityDiscovered.\nThe version of the entity.') - internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this EntityDiscovered.\nThe internal identifier of the entity.') - status: str | None = Field(None, description='Gets the status of this EntityDiscovered.\nThe status of the entity.') - discover_status: Literal['PREV_DISCOVERED', 'NEW_DISCOVERED', 'NOT_FOUND', 'DISCOVERING', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='discoverStatus', description='Gets the discover_status of this EntityDiscovered.\nThe status of the entity discovery.\n\nAllowed values for this property are: "PREV_DISCOVERED", "NEW_DISCOVERED", "NOT_FOUND", "DISCOVERING", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - discover_error_code: str | None = Field(None, alias='discoverErrorCode', description='Gets the discover_error_code of this EntityDiscovered.\nThe error code of the discovery.') - discover_error_msg: str | None = Field(None, alias='discoverErrorMsg', description='Gets the discover_error_msg of this EntityDiscovered.\nThe error message of the discovery.') - entity_type: Literal['STORAGE_SERVER_DISCOVER_SUMMARY', 'STORAGE_GRID_DISCOVER_SUMMARY', 'DATABASE_SYSTEM_DISCOVER_SUMMARY', 'INFRASTRUCTURE_DISCOVER_SUMMARY', 'INFRASTRUCTURE_DISCOVER', 'MANAGED_STORAGE_SERVER_DISCOVER_SUMMARY', 'MANAGED_STORAGE_GRID_DISCOVER_SUMMARY', 'VM_CLUSTER_DISCOVER_SUMMARY', 'MANAGED_INFRASTRUCTURE_DISCOVER_SUMMARY', 'CLOUD_INFRASTRUCTURE_DISCOVER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entityType', description='**[Required]** Gets the entity_type of this EntityDiscovered.\nThe type of discovered entities.\n\nAllowed values for this property are: "STORAGE_SERVER_DISCOVER_SUMMARY", "STORAGE_GRID_DISCOVER_SUMMARY", "DATABASE_SYSTEM_DISCOVER_SUMMARY", "INFRASTRUCTURE_DISCOVER_SUMMARY", "INFRASTRUCTURE_DISCOVER", "MANAGED_STORAGE_SERVER_DISCOVER_SUMMARY", "MANAGED_STORAGE_GRID_DISCOVER_SUMMARY", "VM_CLUSTER_DISCOVER_SUMMARY", "MANAGED_INFRASTRUCTURE_DISCOVER_SUMMARY", "CLOUD_INFRASTRUCTURE_DISCOVER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - count_of_storage_servers_discovered: int | None = Field(None, alias='countOfStorageServersDiscovered', description='Gets the count_of_storage_servers_discovered of this StorageGridDiscoverySummary.\nThe total number of Exadata storage servers discovered.') - - -class StorageServerDiscoverySummary(DbmBaseModel): - """The summary of the Exadata storage server discovery.""" - - id: str | None = Field(None, description='Gets the id of this EntityDiscovered. The OCID of the entity discovered.') - agent_id: str | None = Field(None, alias='agentId', description='Gets the agent_id of this EntityDiscovered. The OCID of the agent used for monitoring.') - connector_id: str | None = Field(None, alias='connectorId', description='Gets the connector_id of this EntityDiscovered. The OCID of the associated connector.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this EntityDiscovered.\nThe name of the entity.') - version: str | None = Field(None, description='Gets the version of this EntityDiscovered.\nThe version of the entity.') - internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this EntityDiscovered.\nThe internal identifier of the entity.') - status: str | None = Field(None, description='Gets the status of this EntityDiscovered.\nThe status of the entity.') - discover_status: Literal['PREV_DISCOVERED', 'NEW_DISCOVERED', 'NOT_FOUND', 'DISCOVERING', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='discoverStatus', description='Gets the discover_status of this EntityDiscovered.\nThe status of the entity discovery.\n\nAllowed values for this property are: "PREV_DISCOVERED", "NEW_DISCOVERED", "NOT_FOUND", "DISCOVERING", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - discover_error_code: str | None = Field(None, alias='discoverErrorCode', description='Gets the discover_error_code of this EntityDiscovered.\nThe error code of the discovery.') - discover_error_msg: str | None = Field(None, alias='discoverErrorMsg', description='Gets the discover_error_msg of this EntityDiscovered.\nThe error message of the discovery.') - entity_type: Literal['STORAGE_SERVER_DISCOVER_SUMMARY', 'STORAGE_GRID_DISCOVER_SUMMARY', 'DATABASE_SYSTEM_DISCOVER_SUMMARY', 'INFRASTRUCTURE_DISCOVER_SUMMARY', 'INFRASTRUCTURE_DISCOVER', 'MANAGED_STORAGE_SERVER_DISCOVER_SUMMARY', 'MANAGED_STORAGE_GRID_DISCOVER_SUMMARY', 'VM_CLUSTER_DISCOVER_SUMMARY', 'MANAGED_INFRASTRUCTURE_DISCOVER_SUMMARY', 'CLOUD_INFRASTRUCTURE_DISCOVER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entityType', description='**[Required]** Gets the entity_type of this EntityDiscovered.\nThe type of discovered entities.\n\nAllowed values for this property are: "STORAGE_SERVER_DISCOVER_SUMMARY", "STORAGE_GRID_DISCOVER_SUMMARY", "DATABASE_SYSTEM_DISCOVER_SUMMARY", "INFRASTRUCTURE_DISCOVER_SUMMARY", "INFRASTRUCTURE_DISCOVER", "MANAGED_STORAGE_SERVER_DISCOVER_SUMMARY", "MANAGED_STORAGE_GRID_DISCOVER_SUMMARY", "VM_CLUSTER_DISCOVER_SUMMARY", "MANAGED_INFRASTRUCTURE_DISCOVER_SUMMARY", "CLOUD_INFRASTRUCTURE_DISCOVER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - ip_address: str | None = Field(None, alias='ipAddress', description='Gets the ip_address of this StorageServerDiscoverySummary.\nThe IP address of the Exadata storage server.') - make_model: str | None = Field(None, alias='makeModel', description='Gets the make_model of this StorageServerDiscoverySummary.\nThe make model of the Exadata storage server.') - cpu_count: int | None = Field(None, ge=0, alias='cpuCount', description='Gets the cpu_count of this StorageServerDiscoverySummary.\nThe CPU count of the Exadata storage server.') - memory_gb: float | None = Field(None, alias='memoryGB', description='Gets the memory_gb of this StorageServerDiscoverySummary.\nThe memory size in GB of the Exadata storage server.') - connector_name: str | None = Field(None, alias='connectorName', description='Gets the connector_name of this StorageServerDiscoverySummary.\nThe name of the Exadata storage server connector in case of rediscovery.') - - -class SystemPrivilegeCollection(DbmBaseModel): - """A collection of system privileges granted to the current user.""" - - items: list[SystemPrivilegeSummary] = Field(..., description='**[Required]** Gets the items of this SystemPrivilegeCollection.\nAn array of system privileges.') - - -class SystemPrivilegeSummary(DbmBaseModel): - """A Summary of system privileges.""" - - name: str | None = Field(None, description='Gets the name of this SystemPrivilegeSummary.\nThe name of a system privilege.') - admin_option: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='adminOption', description='Gets the admin_option of this SystemPrivilegeSummary.\nIndicates whether the system privilege is granted with the ADMIN option (YES) or not (NO).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - common: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the common of this SystemPrivilegeSummary.\nIndicates how the system privilege was granted. Possible values:\nYES if the system privilege is granted commonly (CONTAINER=ALL is used)\nNO if the system privilege is granted locally (CONTAINER=ALL is not used)\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - inherited: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the inherited of this SystemPrivilegeSummary.\nIndicates whether the granted system privilege is inherited from another container (YES) or not (NO).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class TableStatisticSummary(DbmBaseModel): - """The summary of table statistics statuses, which includes status categories such as Stale, Not Stale, and No Stats, -the number of table statistics grouped by status category, and the percentage of objects with a particular status.""" - - type: Literal['NO_STATS', 'STALE', 'NOT_STALE', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the type of this TableStatisticSummary.\nThe valid status categories of table statistics.\n\nAllowed values for this property are: "NO_STATS", "STALE", "NOT_STALE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - count: int = Field(..., ge=0, description='**[Required]** Gets the count of this TableStatisticSummary.\nThe number of objects aggregated by status category.') - percentage: float = Field(..., description='**[Required]** Gets the percentage of this TableStatisticSummary.\nThe percentage of objects with a particular status.') - - -class TableStatisticsCollection(DbmBaseModel): - """A collection of table statistics, which are grouped by status.""" - - items: list[TableStatisticSummary] = Field(..., description='**[Required]** Gets the items of this TableStatisticsCollection.\nThe list of table statistics statuses.') - - -class Tablespace(DbmBaseModel): - """The details of a tablespace.""" - - name: str = Field(..., description='**[Required]** Gets the name of this Tablespace.\nThe name of the tablespace.') - type: Literal['UNDO', 'LOST_WRITE_PROTECTION', 'PERMANENT', 'TEMPORARY', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the type of this Tablespace.\nThe type of tablespace.\n\nAllowed values for this property are: "UNDO", "LOST_WRITE_PROTECTION", "PERMANENT", "TEMPORARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - status: Literal['ONLINE', 'OFFLINE', 'READ_ONLY', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this Tablespace.\nThe status of the tablespace.\n\nAllowed values for this property are: "ONLINE", "OFFLINE", "READ_ONLY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - block_size_bytes: float | None = Field(None, alias='blockSizeBytes', description='Gets the block_size_bytes of this Tablespace.\nThe tablespace block size.') - logging: Literal['LOGGING', 'NOLOGGING', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the logging of this Tablespace.\nThe default logging attribute.\n\nAllowed values for this property are: "LOGGING", "NOLOGGING", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - is_force_logging: bool | None = Field(None, alias='isForceLogging', description='Gets the is_force_logging of this Tablespace.\nIndicates whether the tablespace is under Force Logging mode.') - extent_management: Literal['LOCAL', 'DICTIONARY', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='extentManagement', description='Gets the extent_management of this Tablespace.\nIndicates whether the extents in the tablespace are Locally managed or Dictionary managed.\n\nAllowed values for this property are: "LOCAL", "DICTIONARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - allocation_type: Literal['SYSTEM', 'UNIFORM', 'USER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='allocationType', description='Gets the allocation_type of this Tablespace.\nThe type of extent allocation in effect for the tablespace.\n\nAllowed values for this property are: "SYSTEM", "UNIFORM", "USER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - is_plugged_in: bool | None = Field(None, alias='isPluggedIn', description='Gets the is_plugged_in of this Tablespace.\nIndicates whether the tablespace is plugged in.') - segment_space_management: Literal['MANUAL', 'AUTO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='segmentSpaceManagement', description='Gets the segment_space_management of this Tablespace.\nIndicates whether the free and used segment space in the tablespace is managed using free lists (MANUAL) or bitmaps (AUTO).\n\nAllowed values for this property are: "MANUAL", "AUTO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - default_table_compression: Literal['ENABLED', 'DISABLED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='defaultTableCompression', description='Gets the default_table_compression of this Tablespace.\nIndicates whether default table compression is enabled or disabled.\n\nAllowed values for this property are: "ENABLED", "DISABLED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - retention: Literal['GUARANTEE', 'NOGUARANTEE', 'NOT_APPLY', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the retention of this Tablespace.\nIndicates whether undo retention guarantee is enabled for the tablespace.\n\nAllowed values for this property are: "GUARANTEE", "NOGUARANTEE", "NOT_APPLY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - is_bigfile: bool | None = Field(None, alias='isBigfile', description='Gets the is_bigfile of this Tablespace.\nIndicates whether the tablespace is a Bigfile tablespace or a Smallfile tablespace.') - predicate_evaluation: Literal['HOST', 'STORAGE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='predicateEvaluation', description='Gets the predicate_evaluation of this Tablespace.\nIndicates whether predicates are evaluated by Host or by Storage.\n\nAllowed values for this property are: "HOST", "STORAGE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - is_encrypted: bool | None = Field(None, alias='isEncrypted', description='Gets the is_encrypted of this Tablespace.\nIndicates whether the tablespace is encrypted.') - compress_for: Literal['BASIC', 'ADVANCED', 'QUERY_LOW', 'QUERY_HIGH', 'ARCHIVE_LOW', 'ARCHIVE_HIGH', 'DIRECT_LOAD_ONLY', 'FOR_ALL_OPERATIONS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='compressFor', description='Gets the compress_for of this Tablespace.\nThe operation type for which default compression is enabled.\n\nAllowed values for this property are: "BASIC", "ADVANCED", "QUERY_LOW", "QUERY_HIGH", "ARCHIVE_LOW", "ARCHIVE_HIGH", "DIRECT_LOAD_ONLY", "FOR_ALL_OPERATIONS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - default_in_memory: Literal['ENABLED', 'DISABLED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='defaultInMemory', description='Gets the default_in_memory of this Tablespace.\nIndicates whether the In-Memory Column Store (IM column store) is by default enabled or disabled for tables in the tablespace.\n\nAllowed values for this property are: "ENABLED", "DISABLED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - default_in_memory_priority: Literal['LOW', 'MEDIUM', 'HIGH', 'CRITICAL', 'NONE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='defaultInMemoryPriority', description='Gets the default_in_memory_priority of this Tablespace.\nIndicates the default priority for In-Memory Column Store (IM column store) population for the tablespace.\n\nAllowed values for this property are: "LOW", "MEDIUM", "HIGH", "CRITICAL", "NONE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - default_in_memory_distribute: Literal['AUTO', 'BY_ROWID_RANGE', 'BY_PARTITION', 'BY_SUBPARTITION', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='defaultInMemoryDistribute', description='Gets the default_in_memory_distribute of this Tablespace.\nIndicates how the IM column store is distributed by default for the tablespace in an Oracle Real Application Clusters (Oracle RAC) environment.\n\nAllowed values for this property are: "AUTO", "BY_ROWID_RANGE", "BY_PARTITION", "BY_SUBPARTITION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - default_in_memory_compression: Literal['NO_MEMCOMPRESS', 'FOR_DML', 'FOR_QUERY_LOW', 'FOR_QUERY_HIGH', 'FOR_CAPACITY_LOW', 'FOR_CAPACITY_HIGH', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='defaultInMemoryCompression', description='Gets the default_in_memory_compression of this Tablespace.\nIndicates the default compression level for the IM column store for the tablespace.\n\nAllowed values for this property are: "NO_MEMCOMPRESS", "FOR_DML", "FOR_QUERY_LOW", "FOR_QUERY_HIGH", "FOR_CAPACITY_LOW", "FOR_CAPACITY_HIGH", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - default_in_memory_duplicate: Literal['NO_DUPLICATE', 'DUPLICATE', 'DUPLICATE_ALL', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='defaultInMemoryDuplicate', description='Gets the default_in_memory_duplicate of this Tablespace.\nIndicates the duplicate setting for the IM column store in an Oracle RAC environment.\n\nAllowed values for this property are: "NO_DUPLICATE", "DUPLICATE", "DUPLICATE_ALL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - shared: Literal['SHARED', 'LOCAL_ON_LEAF', 'LOCAL_ON_ALL', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the shared of this Tablespace.\nIndicates whether the tablespace is for shared tablespace, or for local temporary tablespace for leaf (read-only) instances, or for local temporary tablespace for all instance types.\n\nAllowed values for this property are: "SHARED", "LOCAL_ON_LEAF", "LOCAL_ON_ALL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - default_index_compression: Literal['ENABLED', 'DISABLED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='defaultIndexCompression', description='Gets the default_index_compression of this Tablespace.\nIndicates whether default index compression is enabled or disabled.\n\nAllowed values for this property are: "ENABLED", "DISABLED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - index_compress_for: Literal['ADVANCED_LOW', 'ADVANCED_HIGH', 'NONE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='indexCompressFor', description='Gets the index_compress_for of this Tablespace.\nThe operation type for which default index compression is enabled.\n\nAllowed values for this property are: "ADVANCED_LOW", "ADVANCED_HIGH", "NONE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - default_cell_memory: str | None = Field(None, alias='defaultCellMemory', description='Gets the default_cell_memory of this Tablespace.\nThis specifies the default value for the CELLMEMORY attribute that tables created in the tablespace will inherit unless the behavior is overridden explicitly. This column is intended for use with Oracle Exadata.') - default_in_memory_service: Literal['DEFAULT', 'NONE', 'ALL', 'USER_DEFINED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='defaultInMemoryService', description='Gets the default_in_memory_service of this Tablespace.\nIndicates how the IM column store is populated on various instances by default for the tablespace.\n\nAllowed values for this property are: "DEFAULT", "NONE", "ALL", "USER_DEFINED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - default_in_memory_service_name: str | None = Field(None, alias='defaultInMemoryServiceName', description='Gets the default_in_memory_service_name of this Tablespace.\nIndicates the service name for the service on which the IM column store should be populated by default for the tablespace. This column has a value only when the corresponding DEF_INMEMORY_SERVICE is USER_DEFINED. In all other cases, this column is null.') - lost_write_protect: Literal['ENABLED', 'PROTECT_OFF', 'SUSPEND', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lostWriteProtect', description='Gets the lost_write_protect of this Tablespace.\nThe lost write protection setting for the tablespace.\n\nAllowed values for this property are: "ENABLED", "PROTECT_OFF", "SUSPEND", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - is_chunk_tablespace: bool | None = Field(None, alias='isChunkTablespace', description='Gets the is_chunk_tablespace of this Tablespace.\nIndicates whether this is a chunk tablespace.') - temp_group: str | None = Field(None, alias='tempGroup', description='Gets the temp_group of this Tablespace.\nThe temporary tablespace group.') - max_size_kb: float | None = Field(None, alias='maxSizeKB', description='Gets the max_size_kb of this Tablespace.\nThe maximum tablespace size in KB. If the tablespace contains any data files with Autoextend enabled, then this column displays the amount of underlying free storage space for the tablespace. For example, if the current tablespace size is 1 GB, the combined maximum size of all its data files is 32 GB, and its underlying storage (for example, ASM or file system storage) has 20 GB of free space, then this column will have a value of approximately 20 GB. If the tablespace contains only data files with autoextend disabled, then this column displays the allocated space for the entire tablespace, that is, the combined size of all data files in the tablespace.') - allocated_size_kb: float | None = Field(None, alias='allocatedSizeKB', description='Gets the allocated_size_kb of this Tablespace.\nThe allocated tablespace size in KB.') - user_size_kb: float | None = Field(None, alias='userSizeKB', description='Gets the user_size_kb of this Tablespace.\nThe size of the tablespace available for user data in KB. The difference between tablespace size and user data size is used for storing metadata.') - free_space_kb: float | None = Field(None, alias='freeSpaceKB', description='Gets the free_space_kb of this Tablespace.\nThe free space available in the tablespace in KB.') - used_space_kb: float | None = Field(None, alias='usedSpaceKB', description='Gets the used_space_kb of this Tablespace.\nThe total space used by the tablespace in KB.') - used_percent_available: float | None = Field(None, alias='usedPercentAvailable', description='Gets the used_percent_available of this Tablespace.\nThe percentage of used space out of the maximum available space in the tablespace.') - used_percent_allocated: float | None = Field(None, alias='usedPercentAllocated', description='Gets the used_percent_allocated of this Tablespace.\nThe percentage of used space out of the total allocated space in the tablespace.') - is_default: bool | None = Field(None, alias='isDefault', description='Gets the is_default of this Tablespace.\nIndicates whether this is the default tablespace.') - datafiles: list[Datafile] | None = Field(None, description='Gets the datafiles of this Tablespace.\nA list of the data files associated with the tablespace.') - - -class TablespaceAdminCredentialDetails(DbmRequestModel): - """The credential to connect to the database to perform tablespace administration tasks.""" - - tablespace_admin_credential_type: Literal['SECRET', 'PASSWORD'] = Field(..., alias='tablespaceAdminCredentialType', description='**[Required]** Gets the tablespace_admin_credential_type of this TablespaceAdminCredentialDetails.\nThe type of the credential for tablespace administration tasks.\n\nAllowed values for this property are: "SECRET", "PASSWORD"') - username: str = Field(..., description='**[Required]** Gets the username of this TablespaceAdminCredentialDetails.\nThe user to connect to the database.') - role: Literal['NORMAL', 'SYSDBA'] = Field(..., description='**[Required]** Gets the role of this TablespaceAdminCredentialDetails.\nThe role of the database user.\n\nAllowed values for this property are: "NORMAL", "SYSDBA"') - - -class TablespaceAdminPasswordCredentialDetails(DbmRequestModel): - """User provides a password to be used to connect to the database.""" - - tablespace_admin_credential_type: Literal['SECRET', 'PASSWORD'] = Field(..., alias='tablespaceAdminCredentialType', description='**[Required]** Gets the tablespace_admin_credential_type of this TablespaceAdminCredentialDetails.\nThe type of the credential for tablespace administration tasks.\n\nAllowed values for this property are: "SECRET", "PASSWORD"') - username: str = Field(..., description='**[Required]** Gets the username of this TablespaceAdminCredentialDetails.\nThe user to connect to the database.') - role: Literal['NORMAL', 'SYSDBA'] = Field(..., description='**[Required]** Gets the role of this TablespaceAdminCredentialDetails.\nThe role of the database user.\n\nAllowed values for this property are: "NORMAL", "SYSDBA"') - password: str = Field(..., description="**[Required]** Gets the password of this TablespaceAdminPasswordCredentialDetails.\nThe database user's password encoded using BASE64 scheme.") - - -class TablespaceAdminSecretCredentialDetails(DbmRequestModel): - """User provides a secret OCID, which will be used to retrieve the password to connect to the database.""" - - tablespace_admin_credential_type: Literal['SECRET', 'PASSWORD'] = Field(..., alias='tablespaceAdminCredentialType', description='**[Required]** Gets the tablespace_admin_credential_type of this TablespaceAdminCredentialDetails.\nThe type of the credential for tablespace administration tasks.\n\nAllowed values for this property are: "SECRET", "PASSWORD"') - username: str = Field(..., description='**[Required]** Gets the username of this TablespaceAdminCredentialDetails.\nThe user to connect to the database.') - role: Literal['NORMAL', 'SYSDBA'] = Field(..., description='**[Required]** Gets the role of this TablespaceAdminCredentialDetails.\nThe role of the database user.\n\nAllowed values for this property are: "NORMAL", "SYSDBA"') - password_secret_id: str = Field(..., alias='passwordSecretId', description='**[Required]** Gets the password_secret_id of this TablespaceAdminSecretCredentialDetails. The OCID of the Secret where the database password is stored.') - - -class TablespaceAdminStatus(DbmBaseModel): - """The status of a tablespace admin action.""" - - status: Literal['SUCCEEDED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the status of this TablespaceAdminStatus.\nThe status of a tablespace admin action.\n\nAllowed values for this property are: "SUCCEEDED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - error_code: int | None = Field(None, ge=0, alias='errorCode', description='Gets the error_code of this TablespaceAdminStatus.\nThe error code that denotes failure if the tablespace admin action is not successful. The error code is "null" if the admin action is successful.') - error_message: str | None = Field(None, alias='errorMessage', description='Gets the error_message of this TablespaceAdminStatus.\nThe error message that indicates the reason for failure if the tablespace admin action is not successful. The error message is "null" if the admin action is successful.') - - -class TablespaceCollection(DbmBaseModel): - """A collection of tablespaces for a specific Managed Database.""" - - items: list[TablespaceSummary] = Field(..., description='**[Required]** Gets the items of this TablespaceCollection.\nAn array of TablespaceSummary resources.') - - -class TablespaceStorageSize(DbmBaseModel): - """Storage size.""" - - size: float = Field(..., description='**[Required]** Gets the size of this TablespaceStorageSize.\nStorage size number in bytes, kilobytes, megabytes, gigabytes, or terabytes.') - unit: Literal['BYTES', 'KILOBYTES', 'MEGABYTES', 'GIGABYTES', 'TERABYTES'] | None = Field(None, description='Gets the unit of this TablespaceStorageSize.\nStorage size unit: bytes, kilobytes, megabytes, gigabytes, or terabytes.\n\nAllowed values for this property are: "BYTES", "KILOBYTES", "MEGABYTES", "GIGABYTES", "TERABYTES"') - - -class TablespaceSummary(DbmBaseModel): - """The summary of a tablespace.""" - - name: str = Field(..., description='**[Required]** Gets the name of this TablespaceSummary.\nThe name of the tablespace.') - type: Literal['UNDO', 'LOST_WRITE_PROTECTION', 'PERMANENT', 'TEMPORARY', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the type of this TablespaceSummary.\nThe type of tablespace.\n\nAllowed values for this property are: "UNDO", "LOST_WRITE_PROTECTION", "PERMANENT", "TEMPORARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - status: Literal['ONLINE', 'OFFLINE', 'READ_ONLY', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this TablespaceSummary.\nThe status of the tablespace.\n\nAllowed values for this property are: "ONLINE", "OFFLINE", "READ_ONLY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - block_size_bytes: float | None = Field(None, alias='blockSizeBytes', description='Gets the block_size_bytes of this TablespaceSummary.\nThe tablespace block size.') - logging: Literal['LOGGING', 'NOLOGGING', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the logging of this TablespaceSummary.\nThe default logging attribute.\n\nAllowed values for this property are: "LOGGING", "NOLOGGING", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - is_force_logging: bool | None = Field(None, alias='isForceLogging', description='Gets the is_force_logging of this TablespaceSummary.\nIndicates whether the tablespace is under Force Logging mode.') - extent_management: Literal['LOCAL', 'DICTIONARY', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='extentManagement', description='Gets the extent_management of this TablespaceSummary.\nIndicates whether the extents in the tablespace are Locally managed or Dictionary managed.\n\nAllowed values for this property are: "LOCAL", "DICTIONARY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - allocation_type: Literal['SYSTEM', 'UNIFORM', 'USER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='allocationType', description='Gets the allocation_type of this TablespaceSummary.\nThe type of extent allocation in effect for the tablespace.\n\nAllowed values for this property are: "SYSTEM", "UNIFORM", "USER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - is_plugged_in: bool | None = Field(None, alias='isPluggedIn', description='Gets the is_plugged_in of this TablespaceSummary.\nIndicates whether the tablespace is plugged in.') - segment_space_management: Literal['MANUAL', 'AUTO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='segmentSpaceManagement', description='Gets the segment_space_management of this TablespaceSummary.\nIndicates whether the free and used segment space in the tablespace is managed using free lists (MANUAL) or bitmaps (AUTO).\n\nAllowed values for this property are: "MANUAL", "AUTO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - default_table_compression: Literal['ENABLED', 'DISABLED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='defaultTableCompression', description='Gets the default_table_compression of this TablespaceSummary.\nIndicates whether default table compression is enabled or disabled.\n\nAllowed values for this property are: "ENABLED", "DISABLED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - retention: Literal['GUARANTEE', 'NOGUARANTEE', 'NOT_APPLY', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the retention of this TablespaceSummary.\nIndicates whether undo retention guarantee is enabled for the tablespace.\n\nAllowed values for this property are: "GUARANTEE", "NOGUARANTEE", "NOT_APPLY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - is_bigfile: bool | None = Field(None, alias='isBigfile', description='Gets the is_bigfile of this TablespaceSummary.\nIndicates whether the tablespace is a Bigfile tablespace or a Smallfile tablespace.') - predicate_evaluation: Literal['HOST', 'STORAGE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='predicateEvaluation', description='Gets the predicate_evaluation of this TablespaceSummary.\nIndicates whether predicates are evaluated by Host or by Storage.\n\nAllowed values for this property are: "HOST", "STORAGE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - is_encrypted: bool | None = Field(None, alias='isEncrypted', description='Gets the is_encrypted of this TablespaceSummary.\nIndicates whether the tablespace is encrypted.') - compress_for: Literal['BASIC', 'ADVANCED', 'QUERY_LOW', 'QUERY_HIGH', 'ARCHIVE_LOW', 'ARCHIVE_HIGH', 'DIRECT_LOAD_ONLY', 'FOR_ALL_OPERATIONS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='compressFor', description='Gets the compress_for of this TablespaceSummary.\nThe operation type for which default compression is enabled.\n\nAllowed values for this property are: "BASIC", "ADVANCED", "QUERY_LOW", "QUERY_HIGH", "ARCHIVE_LOW", "ARCHIVE_HIGH", "DIRECT_LOAD_ONLY", "FOR_ALL_OPERATIONS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - default_in_memory: Literal['ENABLED', 'DISABLED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='defaultInMemory', description='Gets the default_in_memory of this TablespaceSummary.\nIndicates whether the In-Memory Column Store (IM column store) is by default enabled or disabled for tables in the tablespace.\n\nAllowed values for this property are: "ENABLED", "DISABLED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - default_in_memory_priority: Literal['LOW', 'MEDIUM', 'HIGH', 'CRITICAL', 'NONE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='defaultInMemoryPriority', description='Gets the default_in_memory_priority of this TablespaceSummary.\nIndicates the default priority for In-Memory Column Store (IM column store) population for the tablespace.\n\nAllowed values for this property are: "LOW", "MEDIUM", "HIGH", "CRITICAL", "NONE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - default_in_memory_distribute: Literal['AUTO', 'BY_ROWID_RANGE', 'BY_PARTITION', 'BY_SUBPARTITION', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='defaultInMemoryDistribute', description='Gets the default_in_memory_distribute of this TablespaceSummary.\nIndicates how the IM column store is distributed by default for the tablespace in an Oracle Real Application Clusters (Oracle RAC) environment.\n\nAllowed values for this property are: "AUTO", "BY_ROWID_RANGE", "BY_PARTITION", "BY_SUBPARTITION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - default_in_memory_compression: Literal['NO_MEMCOMPRESS', 'FOR_DML', 'FOR_QUERY_LOW', 'FOR_QUERY_HIGH', 'FOR_CAPACITY_LOW', 'FOR_CAPACITY_HIGH', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='defaultInMemoryCompression', description='Gets the default_in_memory_compression of this TablespaceSummary.\nIndicates the default compression level for the IM column store for the tablespace.\n\nAllowed values for this property are: "NO_MEMCOMPRESS", "FOR_DML", "FOR_QUERY_LOW", "FOR_QUERY_HIGH", "FOR_CAPACITY_LOW", "FOR_CAPACITY_HIGH", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - default_in_memory_duplicate: Literal['NO_DUPLICATE', 'DUPLICATE', 'DUPLICATE_ALL', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='defaultInMemoryDuplicate', description='Gets the default_in_memory_duplicate of this TablespaceSummary.\nIndicates the duplicate setting for the IM column store in an Oracle RAC environment.\n\nAllowed values for this property are: "NO_DUPLICATE", "DUPLICATE", "DUPLICATE_ALL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - shared: Literal['SHARED', 'LOCAL_ON_LEAF', 'LOCAL_ON_ALL', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the shared of this TablespaceSummary.\nIndicates whether the tablespace is for shared tablespace, or for local temporary tablespace for leaf (read-only) instances, or for local temporary tablespace for all instance types.\n\nAllowed values for this property are: "SHARED", "LOCAL_ON_LEAF", "LOCAL_ON_ALL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - default_index_compression: Literal['ENABLED', 'DISABLED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='defaultIndexCompression', description='Gets the default_index_compression of this TablespaceSummary.\nIndicates whether default index compression is enabled or disabled.\n\nAllowed values for this property are: "ENABLED", "DISABLED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - index_compress_for: Literal['ADVANCED_LOW', 'ADVANCED_HIGH', 'NONE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='indexCompressFor', description='Gets the index_compress_for of this TablespaceSummary.\nThe operation type for which default index compression is enabled.\n\nAllowed values for this property are: "ADVANCED_LOW", "ADVANCED_HIGH", "NONE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - default_cell_memory: str | None = Field(None, alias='defaultCellMemory', description='Gets the default_cell_memory of this TablespaceSummary.\nThis specifies the default value for the CELLMEMORY attribute that tables created in the tablespace will inherit unless the behavior is overridden explicitly. This column is intended for use with Oracle Exadata.') - default_in_memory_service: Literal['DEFAULT', 'NONE', 'ALL', 'USER_DEFINED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='defaultInMemoryService', description='Gets the default_in_memory_service of this TablespaceSummary.\nIndicates how the IM column store is populated on various instances by default for the tablespace.\n\nAllowed values for this property are: "DEFAULT", "NONE", "ALL", "USER_DEFINED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - default_in_memory_service_name: str | None = Field(None, alias='defaultInMemoryServiceName', description='Gets the default_in_memory_service_name of this TablespaceSummary.\nIndicates the service name for the service on which the IM column store should be populated by default for the tablespace. This column has a value only when the corresponding DEF_INMEMORY_SERVICE is USER_DEFINED. In all other cases, this column is null.') - lost_write_protect: Literal['ENABLED', 'PROTECT_OFF', 'SUSPEND', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lostWriteProtect', description='Gets the lost_write_protect of this TablespaceSummary.\nThe lost write protection setting for the tablespace.\n\nAllowed values for this property are: "ENABLED", "PROTECT_OFF", "SUSPEND", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - is_chunk_tablespace: bool | None = Field(None, alias='isChunkTablespace', description='Gets the is_chunk_tablespace of this TablespaceSummary.\nIndicates whether this is a chunk tablespace.') - temp_group: str | None = Field(None, alias='tempGroup', description='Gets the temp_group of this TablespaceSummary.\nThe temporary tablespace group.') - max_size_kb: float | None = Field(None, alias='maxSizeKB', description='Gets the max_size_kb of this TablespaceSummary.\nThe maximum tablespace size in KB. If the tablespace contains any data files with Autoextend enabled, then this column displays the amount of underlying free storage space for the tablespace. For example, if the current tablespace size is 1 GB, the combined maximum size of all its data files is 32 GB, and its underlying storage (for example, ASM or file system storage) has 20 GB of free space, then this column will have a value of approximately 20 GB. If the tablespace contains only data files with autoextend disabled, then this column displays the allocated space for the entire tablespace, that is, the combined size of all data files in the tablespace.') - allocated_size_kb: float | None = Field(None, alias='allocatedSizeKB', description='Gets the allocated_size_kb of this TablespaceSummary.\nThe allocated tablespace size in KB.') - user_size_kb: float | None = Field(None, alias='userSizeKB', description='Gets the user_size_kb of this TablespaceSummary.\nThe size of the tablespace available for user data in KB. The difference between tablespace size and user data size is used for storing metadata.') - free_space_kb: float | None = Field(None, alias='freeSpaceKB', description='Gets the free_space_kb of this TablespaceSummary.\nThe free space available in the tablespace in KB.') - used_space_kb: float | None = Field(None, alias='usedSpaceKB', description='Gets the used_space_kb of this TablespaceSummary.\nThe total space used by the tablespace in KB.') - used_percent_available: float | None = Field(None, alias='usedPercentAvailable', description='Gets the used_percent_available of this TablespaceSummary.\nThe percentage of used space out of the maximum available space in the tablespace.') - used_percent_allocated: float | None = Field(None, alias='usedPercentAllocated', description='Gets the used_percent_allocated of this TablespaceSummary.\nThe percentage of used space out of the total allocated space in the tablespace.') - is_default: bool | None = Field(None, alias='isDefault', description='Gets the is_default of this TablespaceSummary.\nIndicates whether this is the default tablespace.') - datafiles: list[Datafile] | None = Field(None, description='Gets the datafiles of this TablespaceSummary.\nA list of the data files associated with the tablespace.') - - -class TestBasicPreferredCredentialDetails(DbmRequestModel): - """The details of the 'BASIC' preferred credential.""" - - type: Literal['BASIC', 'NAMED_CREDENTIAL'] = Field(..., description='**[Required]** Gets the type of this TestPreferredCredentialDetails.\nThe type of preferred credential. Only \'BASIC\' is supported currently.\n\nAllowed values for this property are: "BASIC", "NAMED_CREDENTIAL"') - user_name: str | None = Field(None, alias='userName', description='Gets the user_name of this TestBasicPreferredCredentialDetails.\nThe user name used to connect to the database.') - role: Literal['NORMAL', 'SYSDBA', 'SYSDG'] | None = Field(None, description='Gets the role of this TestBasicPreferredCredentialDetails.\nThe role of the database user.\n\nAllowed values for this property are: "NORMAL", "SYSDBA", "SYSDG"') - password_secret_id: str | None = Field(None, alias='passwordSecretId', description='Gets the password_secret_id of this TestBasicPreferredCredentialDetails. The OCID of the Vault service secret that contains the database user password.') - - -class TestNamedCredentialDetails(DbmRequestModel): - """The OCID of the database against which the credential is to be tested.""" - - - - managed_database_id: str | None = Field(None, alias='managedDatabaseId', description='Gets the managed_database_id of this TestNamedCredentialDetails. The OCID of the Managed Database.') - - -class TestNamedCredentialStatus(DbmBaseModel): - """The status of the named credential test. The status is 'SUCCEEDED' if the named credential is working or else the status is 'FAILED'.""" - - status: Literal['SUCCEEDED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the status of this TestNamedCredentialStatus.\nThe status of the named credential test. The status is \'SUCCEEDED\' if the named credential is working or else the status is \'FAILED\'.\n\nAllowed values for this property are: "SUCCEEDED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - error_code: str | None = Field(None, ge=0, alias='errorCode', description="Gets the error_code of this TestNamedCredentialStatus.\nAn error code that defines the failure of the named credential test. The response is 'null' if the named credential test was successful.") - error_message: str | None = Field(None, alias='errorMessage', description="Gets the error_message of this TestNamedCredentialStatus.\nThe error message that indicates the reason for the failure of the named credential test. The response is 'null' if the named credential test was successful.") - - -class TestNamedPreferredCredentialDetails(DbmRequestModel): - """The details of the preferred credential that refers to a Named Credential.""" - - type: Literal['BASIC', 'NAMED_CREDENTIAL'] = Field(..., description='**[Required]** Gets the type of this TestPreferredCredentialDetails.\nThe type of preferred credential. Only \'BASIC\' is supported currently.\n\nAllowed values for this property are: "BASIC", "NAMED_CREDENTIAL"') - named_credential_id: str | None = Field(None, alias='namedCredentialId', description='Gets the named_credential_id of this TestNamedPreferredCredentialDetails. The OCID of the Named Credential that contains the database user password metadata.') - - -class TestPreferredCredentialDetails(DbmRequestModel): - """The status of the preferred credential test. The status is 'SUCCEEDED' if the preferred credential is working else the status is 'FAILED'.""" - - type: Literal['BASIC', 'NAMED_CREDENTIAL'] = Field(..., description='**[Required]** Gets the type of this TestPreferredCredentialDetails.\nThe type of preferred credential. Only \'BASIC\' is supported currently.\n\nAllowed values for this property are: "BASIC", "NAMED_CREDENTIAL"') - - -class TestPreferredCredentialStatus(DbmBaseModel): - """The status of the preferred credential test. The status is 'SUCCEEDED' if the preferred credential is working else the status is 'FAILED'.""" - - status: Literal['SUCCEEDED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the status of this TestPreferredCredentialStatus.\nThe status of the preferred credential test. The status is \'SUCCEEDED\' if the preferred credential is working else the status is \'FAILED\'.\n\nAllowed values for this property are: "SUCCEEDED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - error_code: str | None = Field(None, ge=0, alias='errorCode', description="Gets the error_code of this TestPreferredCredentialStatus.\nAn error code that defines the failure of the preferred credential test. The response is 'null' if the preferred credential test was successful.") - error_message: str | None = Field(None, alias='errorMessage', description="Gets the error_message of this TestPreferredCredentialStatus.\nThe error message that indicates the reason for the failure of the preferred credential test. The response is 'null' if the preferred credential test was successful.") - - -class TimeSeriesMetricDataPoint(DbmBaseModel): - """The metric values with dimension details.""" - - timestamp: datetime = Field(..., description='**[Required]** Gets the timestamp of this TimeSeriesMetricDataPoint.\nThe date and time the metric was created.') - value: float = Field(..., description='**[Required]** Gets the value of this TimeSeriesMetricDataPoint.\nThe value of the metric.') - unit: str = Field(..., description='**[Required]** Gets the unit of this TimeSeriesMetricDataPoint.\nThe unit of the metric value.') - dimensions: list[MetricDimensionDefinition] | None = Field(None, description='Gets the dimensions of this TimeSeriesMetricDataPoint.\nThe dimensions of the metric.') - - -class TimeSeriesMetricDefinition(DbmBaseModel): - """The response object representing time series metric details -for a specific Managed Database at a particular time.""" - - metric_name: str = Field(..., alias='metricName', description='**[Required]** Gets the metric_name of this TimeSeriesMetricDefinition.\nThe name of the metric the time series data corresponds to.') - datapoints: list[TimeSeriesMetricDataPoint] = Field(..., description='**[Required]** Gets the datapoints of this TimeSeriesMetricDefinition.\nThe time series metric data for the given metric.') - - -class TopSqlCpuActivity(DbmBaseModel): - """A list of SQL IDs with most CPU activity.""" - - activity: list[SqlCpuActivity] = Field(..., description='**[Required]** Gets the activity of this TopSqlCpuActivity.\nA list of sql CPU activity.') - - -class UpdateBasicPreferredCredentialDetails(DbmRequestModel): - """The details of the 'BASIC' preferred credential.""" - - type: Literal['BASIC', 'NAMED_CREDENTIAL'] = Field(..., description='**[Required]** Gets the type of this UpdatePreferredCredentialDetails.\nThe type of preferred credential.\n\nAllowed values for this property are: "BASIC", "NAMED_CREDENTIAL"') - user_name: str | None = Field(None, alias='userName', description='Gets the user_name of this UpdateBasicPreferredCredentialDetails.\nThe user name used to connect to the database.') - role: Literal['NORMAL', 'SYSDBA', 'SYSDG'] | None = Field(None, description='Gets the role of this UpdateBasicPreferredCredentialDetails.\nThe role of the database user.\n\nAllowed values for this property are: "NORMAL", "SYSDBA", "SYSDG"') - password_secret_id: str | None = Field(None, alias='passwordSecretId', description='Gets the password_secret_id of this UpdateBasicPreferredCredentialDetails. The OCID of the Vault service secret that contains the database user password.') - - -class UpdateCloudAsmDetails(DbmRequestModel): - """The details required to update a cloud ASM.""" - - cloud_connector_id: str | None = Field(None, alias='cloudConnectorId', description='Gets the cloud_connector_id of this UpdateCloudAsmDetails. The OCID of the cloud connector.') - - -class UpdateCloudAsmInstanceDetails(DbmRequestModel): - """The details required to update a cloud ASM instance.""" - - pass - - -class UpdateCloudClusterDetails(DbmRequestModel): - """The details required to update a cloud cluster.""" - - cloud_connector_id: str | None = Field(None, alias='cloudConnectorId', description='Gets the cloud_connector_id of this UpdateCloudClusterDetails. The OCID of the cloud connector.') - - -class UpdateCloudClusterInstanceDetails(DbmRequestModel): - """The details required to update a cloud cluster instance.""" - - cloud_connector_id: str | None = Field(None, alias='cloudConnectorId', description='Gets the cloud_connector_id of this UpdateCloudClusterInstanceDetails. The OCID of the cloud connector.') - - -class UpdateCloudDbHomeDetails(DbmRequestModel): - """The details required to update a cloud DB home.""" - - pass - - -class UpdateCloudDbNodeDetails(DbmRequestModel): - """The details required to update a cloud DB node.""" - - cloud_connector_id: str | None = Field(None, alias='cloudConnectorId', description='Gets the cloud_connector_id of this UpdateCloudDbNodeDetails. The OCID of the cloud connector.') - - -class UpdateCloudDbSystemConnectorDetails(DbmRequestModel): - """The details required to update a cloud DB system connector.""" - - connector_type: Literal['MACS'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this UpdateCloudDbSystemConnectorDetails.\nThe type of connector.\n\nAllowed values for this property are: "MACS"') - - -class UpdateCloudDbSystemDetails(DbmRequestModel): - """The details required to update a cloud DB system.""" - - display_name: str | None = Field(None, alias='displayName', description='Gets the display_name of this UpdateCloudDbSystemDetails.\nThe user-friendly name for the DB system. The name does not have to be unique.') - - -class UpdateCloudDbSystemDiscoveryDetails(DbmRequestModel): - """The details required to update a cloud DB system discovery resource.""" - - display_name: str | None = Field(None, alias='displayName', description='Gets the display_name of this UpdateCloudDbSystemDiscoveryDetails.\nThe user-friendly name for the DB system. The name does not have to be unique.') - - -class UpdateCloudDbSystemMacsConnectorDetails(DbmRequestModel): - """The details for updating the cloud Management Agent Cloud Service (MACS) -connector used to connect to a cloud DB system component.""" - - - - connector_type: Literal['MACS'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this UpdateCloudDbSystemConnectorDetails.\nThe type of connector.\n\nAllowed values for this property are: "MACS"') - connection_info: CloudDbSystemConnectionInfo | None = Field(None, alias='connectionInfo', description='Gets the connection_info of this UpdateCloudDbSystemMacsConnectorDetails.') - - -class UpdateCloudExadataInfrastructureDetails(DbmRequestModel): - """The details required to update the Exadata infrastructure.""" - - discovery_key: str | None = Field(None, alias='discoveryKey', description='Gets the discovery_key of this UpdateCloudExadataInfrastructureDetails.\nThe unique key of the discovery request.') - license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE'] | None = Field(None, alias='licenseModel', description='Gets the license_model of this UpdateCloudExadataInfrastructureDetails.\nThe Oracle license model that applies to the database management resources.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE"') - display_name: str | None = Field(None, alias='displayName', description='Gets the display_name of this UpdateCloudExadataInfrastructureDetails.\nThe name of the Exadata infrastructure.') - vm_cluster_ids: list[str] | None = Field(None, alias='vmClusterIds', description='Gets the vm_cluster_ids of this UpdateCloudExadataInfrastructureDetails.\nThe list of all the VM Cluster OCIDs.') - storage_server_names: list[str] | None = Field(None, alias='storageServerNames', description='Gets the storage_server_names of this UpdateCloudExadataInfrastructureDetails.\nThe list of the names of Exadata storage servers to be monitored. If not specified, it includes all Exadata storage servers associated with the monitored VM Clusters.') - - -class UpdateCloudExadataStorageConnectorDetails(DbmRequestModel): - """The connector details of the Exadata storage server to be updated.""" - - display_name: str | None = Field(None, alias='displayName', description='Gets the display_name of this UpdateCloudExadataStorageConnectorDetails.\nThe name of the Exadata storage server connector.') - connection_uri: str | None = Field(None, alias='connectionUri', description='Gets the connection_uri of this UpdateCloudExadataStorageConnectorDetails. The unique string of the connection. For example, ".') - credential_info: RestCredential | None = Field(None, alias='credentialInfo', description='Gets the credential_info of this UpdateCloudExadataStorageConnectorDetails.') - - -class UpdateCloudExadataStorageGridDetails(DbmRequestModel): - """The details required to update an Exadata storage server grid.""" - - pass - - -class UpdateCloudExadataStorageServerDetails(DbmRequestModel): - """The details required to update an Exadata storage server.""" - - pass - - -class UpdateCloudListenerDetails(DbmRequestModel): - """The details required to update a cloud listener.""" - - cloud_connector_id: str | None = Field(None, alias='cloudConnectorId', description='Gets the cloud_connector_id of this UpdateCloudListenerDetails. The OCID of the cloud connector.') - - -class UpdateDatabaseParametersResult(DbmBaseModel): - """The results of database parameter update.""" - - status: dict[str, DatabaseParameterUpdateStatus] = Field(..., description='**[Required]** Gets the status of this UpdateDatabaseParametersResult.\nA map with the parameter name as key and its update status as value.') - - -class UpdateDbManagementPrivateEndpointDetails(DbmRequestModel): - """The details used to update a Database Management private endpoint.""" - - name: str | None = Field(None, description='Gets the name of this UpdateDbManagementPrivateEndpointDetails.\nThe display name of the private endpoint.') - description: str | None = Field(None, description='Gets the description of this UpdateDbManagementPrivateEndpointDetails.\nThe description of the private endpoint.') - nsg_ids: list[str] | None = Field(None, alias='nsgIds', description='Gets the nsg_ids of this UpdateDbManagementPrivateEndpointDetails.\nThe OCIDs of the Network Security Groups to which the Database Management private endpoint belongs.') - - -class UpdateExternalAsmDetails(DbmRequestModel): - """The details required to update an external ASM.""" - - external_connector_id: str | None = Field(None, alias='externalConnectorId', description='Gets the external_connector_id of this UpdateExternalAsmDetails. The OCID of the external connector.') - - -class UpdateExternalAsmInstanceDetails(DbmRequestModel): - """The details required to update an external ASM instance.""" - - pass - - -class UpdateExternalClusterDetails(DbmRequestModel): - """The details required to update an external cluster.""" - - external_connector_id: str | None = Field(None, alias='externalConnectorId', description='Gets the external_connector_id of this UpdateExternalClusterDetails. The OCID of the external connector.') - - -class UpdateExternalClusterInstanceDetails(DbmRequestModel): - """The details required to update an external cluster instance.""" - - external_connector_id: str | None = Field(None, alias='externalConnectorId', description='Gets the external_connector_id of this UpdateExternalClusterInstanceDetails. The OCID of the external connector.') - - -class UpdateExternalDbHomeDetails(DbmRequestModel): - """The details required to update an external DB home.""" - - pass - - -class UpdateExternalDbNodeDetails(DbmRequestModel): - """The details required to update an external DB node.""" - - external_connector_id: str | None = Field(None, alias='externalConnectorId', description='Gets the external_connector_id of this UpdateExternalDbNodeDetails. The OCID of the external connector.') - - -class UpdateExternalDbSystemConnectorDetails(DbmRequestModel): - """The details required to update an external DB system connector.""" - - connector_type: Literal['MACS'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this UpdateExternalDbSystemConnectorDetails.\nThe type of connector.\n\nAllowed values for this property are: "MACS"') - - -class UpdateExternalDbSystemDetails(DbmRequestModel): - """The details required to update an external DB system.""" - - display_name: str | None = Field(None, alias='displayName', description='Gets the display_name of this UpdateExternalDbSystemDetails.\nThe user-friendly name for the DB system. The name does not have to be unique.') - - -class UpdateExternalDbSystemDiscoveryDetails(DbmRequestModel): - """The details required to update an external DB system discovery resource.""" - - display_name: str | None = Field(None, alias='displayName', description='Gets the display_name of this UpdateExternalDbSystemDiscoveryDetails.\nThe user-friendly name for the DB system. The name does not have to be unique.') - - -class UpdateExternalDbSystemMacsConnectorDetails(DbmRequestModel): - """The details for updating the external Management Agent Cloud Service (MACS) -connector used to connect to an external DB system component.""" - - - - connector_type: Literal['MACS'] = Field(..., alias='connectorType', description='**[Required]** Gets the connector_type of this UpdateExternalDbSystemConnectorDetails.\nThe type of connector.\n\nAllowed values for this property are: "MACS"') - connection_info: ExternalDbSystemConnectionInfo | None = Field(None, alias='connectionInfo', description='Gets the connection_info of this UpdateExternalDbSystemMacsConnectorDetails.') - - -class UpdateExternalExadataInfrastructureDetails(DbmRequestModel): - """The details required to update the external Exadata infrastructure.""" - - discovery_key: str | None = Field(None, alias='discoveryKey', description='Gets the discovery_key of this UpdateExternalExadataInfrastructureDetails.\nThe unique key of the discovery request.') - license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE'] | None = Field(None, alias='licenseModel', description='Gets the license_model of this UpdateExternalExadataInfrastructureDetails.\nThe Oracle license model that applies to the database management resources.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE"') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this UpdateExternalExadataInfrastructureDetails. The OCID of the compartment.') - display_name: str | None = Field(None, alias='displayName', description='Gets the display_name of this UpdateExternalExadataInfrastructureDetails.\nThe name of the Exadata infrastructure.') - db_system_ids: list[str] | None = Field(None, alias='dbSystemIds', description='Gets the db_system_ids of this UpdateExternalExadataInfrastructureDetails.\nThe list of all the DB systems OCIDs.') - storage_server_names: list[str] | None = Field(None, alias='storageServerNames', description='Gets the storage_server_names of this UpdateExternalExadataInfrastructureDetails.\nThe list of the names of Exadata storage servers to be monitored. If not specified, it includes all Exadata storage servers associated with the monitored DB systems.') - - -class UpdateExternalExadataStorageConnectorDetails(DbmRequestModel): - """The connector details of the Exadata storage server to be updated.""" - - connector_name: str | None = Field(None, alias='connectorName', description='Gets the connector_name of this UpdateExternalExadataStorageConnectorDetails.\nThe name of the Exadata storage server connector.') - connection_uri: str | None = Field(None, alias='connectionUri', description='Gets the connection_uri of this UpdateExternalExadataStorageConnectorDetails. The unique string of the connection. For example, ".') - credential_info: RestCredential | None = Field(None, alias='credentialInfo', description='Gets the credential_info of this UpdateExternalExadataStorageConnectorDetails.') - - -class UpdateExternalExadataStorageGridDetails(DbmRequestModel): - """The details required to update an Exadata storage server grid.""" - - pass - - -class UpdateExternalExadataStorageServerDetails(DbmRequestModel): - """The details required to update an Exadata storage server.""" - - pass - - -class UpdateExternalListenerDetails(DbmRequestModel): - """The details required to update an external listener.""" - - external_connector_id: str | None = Field(None, alias='externalConnectorId', description='Gets the external_connector_id of this UpdateExternalListenerDetails. The OCID of the external connector.') - - -class UpdateExternalMySqlDatabaseConnectorDetails(DbmRequestModel): - """Details required for updating an external MySQL database connector.""" - - compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this UpdateExternalMySqlDatabaseConnectorDetails.\nOCID of compartment for the External MySQL Database.') - connector_details: UpdateMySqlDatabaseConnectorDetails = Field(..., alias='connectorDetails', description='**[Required]** Gets the connector_details of this UpdateExternalMySqlDatabaseConnectorDetails.') - - -class UpdateExternalMySqlDatabaseDetails(DbmRequestModel): - """Details for updating an external MySQL database.""" - - db_name: str = Field(..., alias='dbName', description='**[Required]** Gets the db_name of this UpdateExternalMySqlDatabaseDetails.\nDisplay Name of the External MySQL Database.') - - -class UpdateJobDetails(DbmRequestModel): - """The details required to update a job.""" - - description: str | None = Field(None, description='Gets the description of this UpdateJobDetails.\nThe description of the job.') - job_type: Literal['SQL'] | None = Field(None, alias='jobType', description='Gets the job_type of this UpdateJobDetails.\nThe type of job.\n\nAllowed values for this property are: "SQL"') - timeout: str | None = Field(None, description='Gets the timeout of this UpdateJobDetails.\nThe job timeout duration, which is expressed like "1h 10m 15s".') - result_location: JobExecutionResultLocation | None = Field(None, alias='resultLocation', description='Gets the result_location of this UpdateJobDetails.') - schedule_details: JobScheduleDetails | None = Field(None, alias='scheduleDetails', description='Gets the schedule_details of this UpdateJobDetails.') - - -class UpdateManagedDatabaseDetails(DbmRequestModel): - """The details required to update a Managed Database.""" - - pass - - -class UpdateManagedDatabaseGroupDetails(DbmRequestModel): - """The details required to update a Managed Database Group.""" - - description: str | None = Field(None, description='Gets the description of this UpdateManagedDatabaseGroupDetails.\nThe information specified by the user about the Managed Database Group.') - - -class UpdateMySqlDatabaseConnectorDetails(DbmRequestModel): - """Update Details of external database connector.""" - - display_name: str | None = Field(None, alias='displayName', description='Gets the display_name of this UpdateMySqlDatabaseConnectorDetails.\nExternal MySQL Database Connector Name.') - macs_agent_id: str = Field(..., alias='macsAgentId', description='**[Required]** Gets the macs_agent_id of this UpdateMySqlDatabaseConnectorDetails.\nAgent Id of the MACS agent.') - host_name: str = Field(..., alias='hostName', description='**[Required]** Gets the host_name of this UpdateMySqlDatabaseConnectorDetails.\nHost name for Connector.') - port: int = Field(..., description='**[Required]** Gets the port of this UpdateMySqlDatabaseConnectorDetails.\nPort number to connect to External MySQL Database.') - credential_type: Literal['MYSQL_EXTERNAL_NON_SSL_CREDENTIALS', 'MYSQL_EXTERNAL_SSL_CREDENTIALS', 'MYSQL_EXTERNAL_SOCKET_CREDENTIALS'] | None = Field(None, alias='credentialType', description='Gets the credential_type of this UpdateMySqlDatabaseConnectorDetails.\nType of the credential.\n\nAllowed values for this property are: "MYSQL_EXTERNAL_NON_SSL_CREDENTIALS", "MYSQL_EXTERNAL_SSL_CREDENTIALS", "MYSQL_EXTERNAL_SOCKET_CREDENTIALS"') - ssl_secret_id: str = Field(..., alias='sslSecretId', description='**[Required]** Gets the ssl_secret_id of this UpdateMySqlDatabaseConnectorDetails.\nIf using existing SSL secret to connect, OCID for the secret resource.') - network_protocol: Literal['TCP', 'TCPS', 'SOCKETS'] = Field(..., alias='networkProtocol', description='**[Required]** Gets the network_protocol of this UpdateMySqlDatabaseConnectorDetails.\nProtocol to be used to connect to External MySQL Database; TCP, TCP with SSL or Socket.\n\nAllowed values for this property are: "TCP", "TCPS", "SOCKETS"') - external_database_id: str | None = Field(None, alias='externalDatabaseId', description='Gets the external_database_id of this UpdateMySqlDatabaseConnectorDetails.\nOCID of MySQL Database resource.') - - -class UpdateNamedCredentialDetails(DbmRequestModel): - """The details required to update a named credential.""" - - description: str | None = Field(None, description='Gets the description of this UpdateNamedCredentialDetails.\nThe information specified by the user about the named credential.') - scope: Literal['RESOURCE', 'GLOBAL'] | None = Field(None, description='Gets the scope of this UpdateNamedCredentialDetails.\nThe scope of the named credential.\n\nAllowed values for this property are: "RESOURCE", "GLOBAL"') - content: NamedCredentialContent | None = Field(None, description='Gets the content of this UpdateNamedCredentialDetails.') - associated_resource: str | None = Field(None, alias='associatedResource', description='Gets the associated_resource of this UpdateNamedCredentialDetails. The OCID of the resource that is associated to the named credential.') - - -class UpdateNamedPreferredCredentialDetails(DbmRequestModel): - """The details of the preferred credential that refers to a Named Credential.""" - - type: Literal['BASIC', 'NAMED_CREDENTIAL'] = Field(..., description='**[Required]** Gets the type of this UpdatePreferredCredentialDetails.\nThe type of preferred credential.\n\nAllowed values for this property are: "BASIC", "NAMED_CREDENTIAL"') - named_credential_id: str | None = Field(None, alias='namedCredentialId', description='Gets the named_credential_id of this UpdateNamedPreferredCredentialDetails. The OCID of the Named Credential that contains the database user password.') - - -class UpdatePreferredCredentialDetails(DbmRequestModel): - """The details required to update the preferred credential.""" - - type: Literal['BASIC', 'NAMED_CREDENTIAL'] = Field(..., description='**[Required]** Gets the type of this UpdatePreferredCredentialDetails.\nThe type of preferred credential.\n\nAllowed values for this property are: "BASIC", "NAMED_CREDENTIAL"') - - -class UpdateSqlJobDetails(DbmRequestModel): - """The details specific to the SQL job request.""" - - description: str | None = Field(None, description='Gets the description of this UpdateJobDetails.\nThe description of the job.') - job_type: Literal['SQL'] | None = Field(None, alias='jobType', description='Gets the job_type of this UpdateJobDetails.\nThe type of job.\n\nAllowed values for this property are: "SQL"') - timeout: str | None = Field(None, description='Gets the timeout of this UpdateJobDetails.\nThe job timeout duration, which is expressed like "1h 10m 15s".') - result_location: JobExecutionResultLocation | None = Field(None, alias='resultLocation', description='Gets the result_location of this UpdateJobDetails.') - schedule_details: JobScheduleDetails | None = Field(None, alias='scheduleDetails', description='Gets the schedule_details of this UpdateJobDetails.') - sql_text: str | None = Field(None, alias='sqlText', description='Gets the sql_text of this UpdateSqlJobDetails.\nThe SQL text to be executed as part of the job.') - in_binds: JobInBindsDetails | None = Field(None, alias='inBinds', description='Gets the in_binds of this UpdateSqlJobDetails.') - out_binds: JobOutBindsDetails | None = Field(None, alias='outBinds', description='Gets the out_binds of this UpdateSqlJobDetails.') - sql_type: str | None = Field(None, alias='sqlType', description='Gets the sql_type of this UpdateSqlJobDetails.') - user_name: str | None = Field(None, alias='userName', description='Gets the user_name of this UpdateSqlJobDetails.\nThe database user name used to execute the SQL job. If the job is being executed on a\nManaged Database Group, then the user name should exist on all the databases in the\ngroup with the same password.') - password: str | None = Field(None, description='Gets the password of this UpdateSqlJobDetails.\nThe password for the database user name used to execute the SQL job.') - secret_id: str | None = Field(None, alias='secretId', description='Gets the secret_id of this UpdateSqlJobDetails. The OCID of the secret containing the user password.') - named_credential_id: str | None = Field(None, alias='namedCredentialId', description='Gets the named_credential_id of this UpdateSqlJobDetails. The OCID of the Named Credentials containing password secret.') - role: str | None = Field(None, description='Gets the role of this UpdateSqlJobDetails.\nThe role of the database user. Indicates whether the database user is a normal user or sysdba.') - - -class UpdateTablespaceDetails(DbmRequestModel): - """The details required to update a tablespace. -It takes either credentialDetails or databaseCredential. It's recommended to provide databaseCredential""" - - credential_details: TablespaceAdminCredentialDetails | None = Field(None, alias='credentialDetails', description='Gets the credential_details of this UpdateTablespaceDetails.') - database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this UpdateTablespaceDetails.') - name: str | None = Field(None, description='Gets the name of this UpdateTablespaceDetails.\nThe name of the tablespace. It must be unique within a database.') - type: Literal['PERMANENT', 'TEMPORARY'] | None = Field(None, description='Gets the type of this UpdateTablespaceDetails.\nThe type of tablespace.\n\nAllowed values for this property are: "PERMANENT", "TEMPORARY"') - file_size: TablespaceStorageSize | None = Field(None, alias='fileSize', description='Gets the file_size of this UpdateTablespaceDetails.\nThe size of each data file or temp file.') - status: Literal['READ_ONLY', 'READ_WRITE'] | None = Field(None, description='Gets the status of this UpdateTablespaceDetails.\nThe status of the tablespace.\n\nAllowed values for this property are: "READ_ONLY", "READ_WRITE"') - is_auto_extensible: bool | None = Field(None, alias='isAutoExtensible', description='Gets the is_auto_extensible of this UpdateTablespaceDetails.\nSpecifies whether the data file or temp file can be extended automatically.') - auto_extend_next_size: TablespaceStorageSize | None = Field(None, alias='autoExtendNextSize', description='Gets the auto_extend_next_size of this UpdateTablespaceDetails.\nThe size of the next increment of disk space to be allocated automatically when more extents are required.') - auto_extend_max_size: TablespaceStorageSize | None = Field(None, alias='autoExtendMaxSize', description='Gets the auto_extend_max_size of this UpdateTablespaceDetails.\nThe maximum disk space allowed for automatic extension of the data files or temp files.') - is_max_size_unlimited: bool | None = Field(None, alias='isMaxSizeUnlimited', description='Gets the is_max_size_unlimited of this UpdateTablespaceDetails.\nSpecifies whether the disk space of the data file or temp file can be limited.') - is_default: bool | None = Field(None, alias='isDefault', description='Gets the is_default of this UpdateTablespaceDetails.\nSpecifies whether the tablespace is the default tablespace.') - - -class User(DbmBaseModel): - """The summary of a specific user resource.""" - - name: str = Field(..., description='**[Required]** Gets the name of this User.\nThe name of the User.') - status: Literal['OPEN', 'EXPIRED', 'EXPIRED_GRACE', 'LOCKED', 'LOCKED_TIMED', 'EXPIRED_AND_LOCKED', 'EXPIRED_GRACE_AND_LOCKED', 'EXPIRED_AND_LOCKED_TIMED', 'EXPIRED_GRACE_AND_LOCKED_TIMED', 'OPEN_AND_IN_ROLLOVER', 'EXPIRED_AND_IN_ROLLOVER', 'LOCKED_AND_IN_ROLLOVER', 'EXPIRED_AND_LOCKED_AND_IN_ROLLOVER', 'LOCKED_TIMED_AND_IN_ROLLOVER', 'EXPIRED_AND_LOCKED_TIMED_AND_IN_ROL', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the status of this User.\nThe status of the user account.\n\nAllowed values for this property are: "OPEN", "EXPIRED", "EXPIRED_GRACE", "LOCKED", "LOCKED_TIMED", "EXPIRED_AND_LOCKED", "EXPIRED_GRACE_AND_LOCKED", "EXPIRED_AND_LOCKED_TIMED", "EXPIRED_GRACE_AND_LOCKED_TIMED", "OPEN_AND_IN_ROLLOVER", "EXPIRED_AND_IN_ROLLOVER", "LOCKED_AND_IN_ROLLOVER", "EXPIRED_AND_LOCKED_AND_IN_ROLLOVER", "LOCKED_TIMED_AND_IN_ROLLOVER", "EXPIRED_AND_LOCKED_TIMED_AND_IN_ROL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_locked: datetime | None = Field(None, alias='timeLocked', description='Gets the time_locked of this User.\nThe date the account was locked, if the status of the account is LOCKED.') - time_expiring: datetime | None = Field(None, alias='timeExpiring', description='Gets the time_expiring of this User.\nThe date and time of the expiration of the user account.') - default_tablespace: str = Field(..., alias='defaultTablespace', description='**[Required]** Gets the default_tablespace of this User.\nThe default tablespace for data.') - temp_tablespace: str = Field(..., alias='tempTablespace', description='**[Required]** Gets the temp_tablespace of this User.\nThe name of the default tablespace for temporary tables or the name of a tablespace group.') - local_temp_tablespace: str | None = Field(None, alias='localTempTablespace', description='Gets the local_temp_tablespace of this User.\nThe default local temporary tablespace for the user.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this User.\nThe date and time the user was created.') - profile: str = Field(..., description='**[Required]** Gets the profile of this User.\nThe profile name of the user.') - consumer_group: str | None = Field(None, alias='consumerGroup', description='Gets the consumer_group of this User.\nThe initial resource consumer group for the User.') - external_name: str | None = Field(None, alias='externalName', description='Gets the external_name of this User.\nThe external name of the user.') - password_versions: str | None = Field(None, alias='passwordVersions', description='Gets the password_versions of this User.\nThe list of existing versions of the password hashes (also known as "verifiers") for the account.') - editions_enabled: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='editionsEnabled', description='Gets the editions_enabled of this User.\nIndicates whether editions have been enabled for the corresponding user (Y) or not (N).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - authentication: Literal['NONE', 'EXTERNAL', 'GLOBAL', 'PASSWORD', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the authentication of this User.\nThe authentication mechanism for the user.\n\nAllowed values for this property are: "NONE", "EXTERNAL", "GLOBAL", "PASSWORD", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - proxy_connect: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='proxyConnect', description='Gets the proxy_connect of this User.\nIndicates whether a user can connect directly (N) or whether the account can only be proxied (Y) by users who have proxy privileges\nfor this account (that is, by users who have been granted the "connect through" privilege for this account).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - common: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the common of this User.\nIndicates whether a given user is common(Y) or local(N).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_last_login: datetime | None = Field(None, alias='timeLastLogin', description='Gets the time_last_login of this User.\nThe date and time of the last user login.\nThis column is not populated when a user connects to the database with administrative privileges, that is, AS { SYSASM | SYSBACKUP | SYSDBA | SYSDG | SYSOPER | SYSRAC | SYSKM }.') - oracle_maintained: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='oracleMaintained', description='Gets the oracle_maintained of this User.\nIndicates whether the user was created and is maintained by Oracle-supplied scripts (such as catalog.sql or catproc.sql).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - inherited: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the inherited of this User.\nIndicates whether the user definition is inherited from another container (YES) or not (NO).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - default_collation: str | None = Field(None, alias='defaultCollation', description='Gets the default_collation of this User.\nThe default collation for the user schema.') - implicit: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, description='Gets the implicit of this User.\nIndicates whether the user is a common user created by an implicit application (YES) or not (NO).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - all_shared: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='allShared', description='Gets the all_shared of this User.\nIn a sharded database, indicates whether the user is created with shard DDL enabled (YES) or not (NO).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - external_shared: Literal['YES', 'NO', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='externalShared', description='Gets the external_shared of this User.\nIn a federated sharded database, indicates whether the user is an external shard user (YES) or not (NO).\n\nAllowed values for this property are: "YES", "NO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_password_changed: datetime | None = Field(None, alias='timePasswordChanged', description='Gets the time_password_changed of this User.\nThe date and time when the user password was last set.\nThis column is populated only when the value of the AUTHENTICATION_TYPE column is PASSWORD. Otherwise, this column is null.') - - -class UserCollection(DbmBaseModel): - """A collection of users for a specific Managed Database.""" - - items: list[UserSummary] = Field(..., description='**[Required]** Gets the items of this UserCollection.\nAn array of User resources.') - - -class UserSummary(DbmBaseModel): - """The summary of a specific User.""" - - name: str = Field(..., description='**[Required]** Gets the name of this UserSummary.\nThe name of the User.') - status: Literal['OPEN', 'EXPIRED', 'EXPIRED_GRACE', 'LOCKED', 'LOCKED_TIMED', 'EXPIRED_AND_LOCKED', 'EXPIRED_GRACE_AND_LOCKED', 'EXPIRED_AND_LOCKED_TIMED', 'EXPIRED_GRACE_AND_LOCKED_TIMED', 'OPEN_AND_IN_ROLLOVER', 'EXPIRED_AND_IN_ROLLOVER', 'LOCKED_AND_IN_ROLLOVER', 'EXPIRED_AND_LOCKED_AND_IN_ROLLOVER', 'LOCKED_TIMED_AND_IN_ROLLOVER', 'EXPIRED_AND_LOCKED_TIMED_AND_IN_ROL', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the status of this UserSummary.\nThe status of the user account.\n\nAllowed values for this property are: "OPEN", "EXPIRED", "EXPIRED_GRACE", "LOCKED", "LOCKED_TIMED", "EXPIRED_AND_LOCKED", "EXPIRED_GRACE_AND_LOCKED", "EXPIRED_AND_LOCKED_TIMED", "EXPIRED_GRACE_AND_LOCKED_TIMED", "OPEN_AND_IN_ROLLOVER", "EXPIRED_AND_IN_ROLLOVER", "LOCKED_AND_IN_ROLLOVER", "EXPIRED_AND_LOCKED_AND_IN_ROLLOVER", "LOCKED_TIMED_AND_IN_ROLLOVER", "EXPIRED_AND_LOCKED_TIMED_AND_IN_ROL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_expiring: datetime | None = Field(None, alias='timeExpiring', description='Gets the time_expiring of this UserSummary.\nThe date and time of the expiration of the user account.') - default_tablespace: str = Field(..., alias='defaultTablespace', description='**[Required]** Gets the default_tablespace of this UserSummary.\nThe default tablespace for data.') - temp_tablespace: str = Field(..., alias='tempTablespace', description='**[Required]** Gets the temp_tablespace of this UserSummary.\nThe name of the default tablespace for temporary tables or the name of a tablespace group.') - time_created: datetime = Field(..., alias='timeCreated', description='**[Required]** Gets the time_created of this UserSummary.\nThe date and time the user was created.') - time_locked: datetime | None = Field(None, alias='timeLocked', description='Gets the time_locked of this UserSummary.\nThe date the account was locked, if the status of the account is LOCKED.') - profile: str = Field(..., description='**[Required]** Gets the profile of this UserSummary.\nThe profile name of the user.') - - -class VMClusterDiscoverySummary(DbmBaseModel): - """The summary of the VM Cluster discovery.""" - - id: str | None = Field(None, description='Gets the id of this EntityDiscovered. The OCID of the entity discovered.') - agent_id: str | None = Field(None, alias='agentId', description='Gets the agent_id of this EntityDiscovered. The OCID of the agent used for monitoring.') - connector_id: str | None = Field(None, alias='connectorId', description='Gets the connector_id of this EntityDiscovered. The OCID of the associated connector.') - display_name: str = Field(..., alias='displayName', description='**[Required]** Gets the display_name of this EntityDiscovered.\nThe name of the entity.') - version: str | None = Field(None, description='Gets the version of this EntityDiscovered.\nThe version of the entity.') - internal_id: str | None = Field(None, alias='internalId', description='Gets the internal_id of this EntityDiscovered.\nThe internal identifier of the entity.') - status: str | None = Field(None, description='Gets the status of this EntityDiscovered.\nThe status of the entity.') - discover_status: Literal['PREV_DISCOVERED', 'NEW_DISCOVERED', 'NOT_FOUND', 'DISCOVERING', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='discoverStatus', description='Gets the discover_status of this EntityDiscovered.\nThe status of the entity discovery.\n\nAllowed values for this property are: "PREV_DISCOVERED", "NEW_DISCOVERED", "NOT_FOUND", "DISCOVERING", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - discover_error_code: str | None = Field(None, alias='discoverErrorCode', description='Gets the discover_error_code of this EntityDiscovered.\nThe error code of the discovery.') - discover_error_msg: str | None = Field(None, alias='discoverErrorMsg', description='Gets the discover_error_msg of this EntityDiscovered.\nThe error message of the discovery.') - entity_type: Literal['STORAGE_SERVER_DISCOVER_SUMMARY', 'STORAGE_GRID_DISCOVER_SUMMARY', 'DATABASE_SYSTEM_DISCOVER_SUMMARY', 'INFRASTRUCTURE_DISCOVER_SUMMARY', 'INFRASTRUCTURE_DISCOVER', 'MANAGED_STORAGE_SERVER_DISCOVER_SUMMARY', 'MANAGED_STORAGE_GRID_DISCOVER_SUMMARY', 'VM_CLUSTER_DISCOVER_SUMMARY', 'MANAGED_INFRASTRUCTURE_DISCOVER_SUMMARY', 'CLOUD_INFRASTRUCTURE_DISCOVER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entityType', description='**[Required]** Gets the entity_type of this EntityDiscovered.\nThe type of discovered entities.\n\nAllowed values for this property are: "STORAGE_SERVER_DISCOVER_SUMMARY", "STORAGE_GRID_DISCOVER_SUMMARY", "DATABASE_SYSTEM_DISCOVER_SUMMARY", "INFRASTRUCTURE_DISCOVER_SUMMARY", "INFRASTRUCTURE_DISCOVER", "MANAGED_STORAGE_SERVER_DISCOVER_SUMMARY", "MANAGED_STORAGE_GRID_DISCOVER_SUMMARY", "VM_CLUSTER_DISCOVER_SUMMARY", "MANAGED_INFRASTRUCTURE_DISCOVER_SUMMARY", "CLOUD_INFRASTRUCTURE_DISCOVER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - oracle_home: str | None = Field(None, alias='oracleHome', description='Gets the oracle_home of this VMClusterDiscoverySummary.\nThe Oracle home path.') - asm_connector_name: str | None = Field(None, alias='asmConnectorName', description='Gets the asm_connector_name of this VMClusterDiscoverySummary.\nThe display name of the ASM connector.') - license_model: Literal['LICENSE_INCLUDED', 'BRING_YOUR_OWN_LICENSE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='licenseModel', description='Gets the license_model of this VMClusterDiscoverySummary.\nThe Oracle license model that applies to the database management resources.\n\nAllowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this VMClusterDiscoverySummary. The OCID of the compartment.') - - -class ValidateBasicFilterDetails(DbmRequestModel): - """Validate the basic filter criteria provided by the user. -It takes either credentialDetails or databaseCredential. It's recommended to provide databaseCredential""" - - credential_details: SqlTuningSetAdminCredentialDetails | None = Field(None, alias='credentialDetails', description='Gets the credential_details of this ValidateBasicFilterDetails.') - database_credential: DatabaseCredentialDetails | None = Field(None, alias='databaseCredential', description='Gets the database_credential of this ValidateBasicFilterDetails.') - owner: str = Field(..., description='**[Required]** Gets the owner of this ValidateBasicFilterDetails.\nThe owner of the Sql tuning set.') - name: str = Field(..., description='**[Required]** Gets the name of this ValidateBasicFilterDetails.\nThe name of the Sql tuning set.') - basic_filter: str = Field(..., alias='basicFilter', description='**[Required]** Gets the basic_filter of this ValidateBasicFilterDetails. Specifies the Sql predicate to filter the Sql from the Sql tuning set defined on attributes of the SQLSET_ROW. User could use any combination of the following columns with appropriate values as Sql predicate Refer to the documentation.') - - -class WorkRequest(DbmBaseModel): - """A description of the work request status.""" - - id: str = Field(..., description='**[Required]** Gets the id of this WorkRequest.\nThe ID of the work request.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this WorkRequest.\nThe OCID of the compartment that contains the work request. Work requests should be scoped to\nthe same compartment as the resource the work request affects. If the work request affects multiple resources that are not in the same compartment,\nthen the system picks the primary resource whose compartment should be used.') - operation_type: Literal['CREATE_DB_MANAGEMENT_PRIVATE_ENDPOINT', 'DELETE_DB_MANAGEMENT_PRIVATE_ENDPOINT', 'CREATE_DB_SYSTEM_DISCOVERY', 'CREATE_DB_SYSTEM', 'UPDATE_DB_SYSTEM', 'DB_SYSTEM_ENABLE_DBMGMT', 'DB_SYSTEM_DISABLE_DBMGMT', 'DELETE_DB_SYSTEM', 'UPDATE_EXTERNAL_DB_SYSTEM_CONNECTOR', 'CHANGE_EXTERNAL_DB_SYSTEM_COMPARTMENT', 'DISABLE_EXADATA_INFRASTURCTURE', 'ENABLE_EXADATA_INFRASTRUCTURE', 'DELETE_EXADATA_INFRASTRUCTURE', 'CHANGE_EXADATA_COMPARTMENT', 'ENABLE_SQL_WATCH', 'DISABLE_SQL_WATCH', 'MODIFY_SQL_WATCH', 'ENABLE_DBLM', 'DISABLE_DBLM', 'MODIFY_DBLM', 'ENABLE_DBMGMT', 'DISABLE_DBMGMT', 'MODIFY_DBMGMT', 'CHECK_EXTERNAL_MYSQL_CONNECTION', 'UPDATE_EXTERNAL_MYSQL_CREDENTIAL', 'CREATE_EXTERNAL_MYSQL_CONNECTOR', 'DELETE_EXTERNAL_MYSQL_CONNECTOR', 'DELETE_EXTERNAL_MYSQL_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='operationType', description='**[Required]** Gets the operation_type of this WorkRequest.\nThe type of work request.\n\nAllowed values for this property are: "CREATE_DB_MANAGEMENT_PRIVATE_ENDPOINT", "DELETE_DB_MANAGEMENT_PRIVATE_ENDPOINT", "CREATE_DB_SYSTEM_DISCOVERY", "CREATE_DB_SYSTEM", "UPDATE_DB_SYSTEM", "DB_SYSTEM_ENABLE_DBMGMT", "DB_SYSTEM_DISABLE_DBMGMT", "DELETE_DB_SYSTEM", "UPDATE_EXTERNAL_DB_SYSTEM_CONNECTOR", "CHANGE_EXTERNAL_DB_SYSTEM_COMPARTMENT", "DISABLE_EXADATA_INFRASTURCTURE", "ENABLE_EXADATA_INFRASTRUCTURE", "DELETE_EXADATA_INFRASTRUCTURE", "CHANGE_EXADATA_COMPARTMENT", "ENABLE_SQL_WATCH", "DISABLE_SQL_WATCH", "MODIFY_SQL_WATCH", "ENABLE_DBLM", "DISABLE_DBLM", "MODIFY_DBLM", "ENABLE_DBMGMT", "DISABLE_DBMGMT", "MODIFY_DBMGMT", "CHECK_EXTERNAL_MYSQL_CONNECTION", "UPDATE_EXTERNAL_MYSQL_CREDENTIAL", "CREATE_EXTERNAL_MYSQL_CONNECTOR", "DELETE_EXTERNAL_MYSQL_CONNECTOR", "DELETE_EXTERNAL_MYSQL_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - status: Literal['ACCEPTED', 'IN_PROGRESS', 'FAILED', 'SUCCEEDED', 'CANCELING', 'CANCELED', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the status of this WorkRequest.\nThe status of the current work request.\n\nAllowed values for this property are: "ACCEPTED", "IN_PROGRESS", "FAILED", "SUCCEEDED", "CANCELING", "CANCELED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - percent_complete: float = Field(..., alias='percentComplete', description='**[Required]** Gets the percent_complete of this WorkRequest.\nThe completed percentage of the operation tracked by the work request.') - time_accepted: datetime = Field(..., alias='timeAccepted', description='**[Required]** Gets the time_accepted of this WorkRequest. The date and time the work request was accepted, as described in RFC 3339. The precision for this time object in milliseconds.') - time_started: datetime | None = Field(None, alias='timeStarted', description='Gets the time_started of this WorkRequest. The date and time the work request transitioned from ACCEPTED to IN_PROGRESS, as described in RFC 3339. The precision for this time object is in milliseconds.') - time_finished: datetime | None = Field(None, alias='timeFinished', description='Gets the time_finished of this WorkRequest. The date and time the work request reached a terminal state, either FAILED or SUCCEEDED, as described in RFC 3339. The precision for this time object is in milliseconds.') - resources: list[WorkRequestResource] = Field(..., description='**[Required]** Gets the resources of this WorkRequest.\nThe resources affected by this work request.') - - -class WorkRequestCollection(DbmBaseModel): - """Lists all work requests in a specific compartment. This contains WorkRequestSummary items.""" - - items: list[WorkRequestSummary] = Field(..., description='**[Required]** Gets the items of this WorkRequestCollection.\nA collection of work requests.') - - -class WorkRequestError(DbmBaseModel): - """An error encountered while executing a work request.""" - - id: str = Field(..., description='**[Required]** Gets the id of this WorkRequestError.\nThe identifier of the work request error.') - work_request_id: str = Field(..., alias='workRequestId', description='**[Required]** Gets the work_request_id of this WorkRequestError.\nThe OCID of the work request.') - code: str = Field(..., description='**[Required]** Gets the code of this WorkRequestError. A machine-usable code for the error that occurred. Error codes are listed on.') - message: str = Field(..., description='**[Required]** Gets the message of this WorkRequestError.\nA human-readable description of the issue that occurred.') - is_retryable: bool | None = Field(None, alias='isRetryable', description='Gets the is_retryable of this WorkRequestError.\nDetermines if the work request error can be reproduced and tried again.') - timestamp: datetime = Field(..., description='**[Required]** Gets the timestamp of this WorkRequestError. The date and time the error occurred as described in RFC 3339. The precision for the time object is in milliseconds.') - - -class WorkRequestErrorCollection(DbmBaseModel): - """The results of a work request error search. This contains WorkRequestError items and other data.""" - - items: list[WorkRequestError] = Field(..., description='**[Required]** Gets the items of this WorkRequestErrorCollection.\nA collection of work request errors.') - - -class WorkRequestLogEntry(DbmBaseModel): - """A log message from the execution of a work request.""" - - id: int = Field(..., description='**[Required]** Gets the id of this WorkRequestLogEntry.\nThe identifier of the work request log.') - work_request_id: str = Field(..., alias='workRequestId', description='**[Required]** Gets the work_request_id of this WorkRequestLogEntry.\nThe OCID of the work request.') - message: str = Field(..., description='**[Required]** Gets the message of this WorkRequestLogEntry.\nA human-readable log message.') - timestamp: datetime = Field(..., description='**[Required]** Gets the timestamp of this WorkRequestLogEntry. The date and time the log message was written, described in RFC 3339. The precision for the time object is in milliseconds.') - - -class WorkRequestLogEntryCollection(DbmBaseModel): - """The results of a work request log search. This contains WorkRequestLog items and other data.""" - - items: list[WorkRequestLogEntry] = Field(..., description='**[Required]** Gets the items of this WorkRequestLogEntryCollection.\nA collection of work request logs.') - - -class WorkRequestResource(DbmBaseModel): - """The resource that is created or operated on by a work request.""" - - entity_type: str = Field(..., alias='entityType', description='**[Required]** Gets the entity_type of this WorkRequestResource.\nThe resource type the work request affects.') - action_type: Literal['CREATED', 'UPDATED', 'DELETED', 'IN_PROGRESS', 'RELATED', 'FAILED', 'ACCEPTED', 'ENABLED', 'DISABLED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='actionType', description='**[Required]** Gets the action_type of this WorkRequestResource.\nThe way in which this resource is affected by the work tracked in the work request.\nA resource being created, updated, or deleted will remain in the IN_PROGRESS state until\nwork is complete for that resource at which point it will transition to CREATED, UPDATED,\nor DELETED, respectively.\n\nAllowed values for this property are: "CREATED", "UPDATED", "DELETED", "IN_PROGRESS", "RELATED", "FAILED", "ACCEPTED", "ENABLED", "DISABLED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - identifier: str = Field(..., description='**[Required]** Gets the identifier of this WorkRequestResource.\nThe OCID or other unique identifier of the resource the work request affects.') - entity_uri: str | None = Field(None, alias='entityUri', description='Gets the entity_uri of this WorkRequestResource.\nThe URI path that is used in a GET request to access the resource metadata.') - entity_name: str | None = Field(None, alias='entityName', description='Gets the entity_name of this WorkRequestResource.\nThe name of the WorkRequest resource entity.') - entity_dependencies: list[WorkRequestSubResource] | None = Field(None, alias='entityDependencies', description='Gets the entity_dependencies of this WorkRequestResource.\nThe dependent resources of this work request resource, these can only be provisioned\nwhen primary resource successfully completes.') - - -class WorkRequestSubResource(DbmBaseModel): - """The resource that is created or operated on by a work request.""" - - entity_name: str = Field(..., alias='entityName', description='**[Required]** Gets the entity_name of this WorkRequestSubResource.\nThe name of the subresource entity.') - entity_type: str = Field(..., alias='entityType', description='**[Required]** Gets the entity_type of this WorkRequestSubResource.\nThe resource type the work request affects.') - action_type: Literal['CREATED', 'UPDATED', 'DELETED', 'IN_PROGRESS', 'RELATED', 'FAILED', 'ACCEPTED', 'ENABLED', 'DISABLED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='actionType', description='**[Required]** Gets the action_type of this WorkRequestSubResource.\nThe way in which this resource is affected by the work tracked in the work request.\nA resource being created, updated, or deleted will remain in the IN_PROGRESS state until\nwork is complete for that resource at which point it will transition to CREATED, UPDATED,\nor DELETED, respectively.\n\nAllowed values for this property are: "CREATED", "UPDATED", "DELETED", "IN_PROGRESS", "RELATED", "FAILED", "ACCEPTED", "ENABLED", "DISABLED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - identifier: str | None = Field(None, description='Gets the identifier of this WorkRequestSubResource.\nThe OCID or other unique identifier of the resource the work request affects.') - entity_uri: str | None = Field(None, alias='entityUri', description='Gets the entity_uri of this WorkRequestSubResource.\nThe URI path that is used in a GET request to access the resource metadata.') - description: str | None = Field(None, description='Gets the description of this WorkRequestSubResource.\nDescription of the entity') - - -class WorkRequestSummary(DbmBaseModel): - """A Summary of the work request.""" - - operation_type: Literal['CREATE_DB_MANAGEMENT_PRIVATE_ENDPOINT', 'DELETE_DB_MANAGEMENT_PRIVATE_ENDPOINT', 'CREATE_DB_SYSTEM_DISCOVERY', 'CREATE_DB_SYSTEM', 'UPDATE_DB_SYSTEM', 'DB_SYSTEM_ENABLE_DBMGMT', 'DB_SYSTEM_DISABLE_DBMGMT', 'DELETE_DB_SYSTEM', 'UPDATE_EXTERNAL_DB_SYSTEM_CONNECTOR', 'CHANGE_EXTERNAL_DB_SYSTEM_COMPARTMENT', 'DISABLE_EXADATA_INFRASTURCTURE', 'ENABLE_EXADATA_INFRASTRUCTURE', 'DELETE_EXADATA_INFRASTRUCTURE', 'CHANGE_EXADATA_COMPARTMENT', 'ENABLE_SQL_WATCH', 'DISABLE_SQL_WATCH', 'MODIFY_SQL_WATCH', 'ENABLE_DBLM', 'DISABLE_DBLM', 'MODIFY_DBLM', 'ENABLE_DBMGMT', 'DISABLE_DBMGMT', 'MODIFY_DBMGMT', 'CHECK_EXTERNAL_MYSQL_CONNECTION', 'UPDATE_EXTERNAL_MYSQL_CREDENTIAL', 'CREATE_EXTERNAL_MYSQL_CONNECTOR', 'DELETE_EXTERNAL_MYSQL_CONNECTOR', 'DELETE_EXTERNAL_MYSQL_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='operationType', description='**[Required]** Gets the operation_type of this WorkRequestSummary.\nThe type of work request.\n\nAllowed values for this property are: "CREATE_DB_MANAGEMENT_PRIVATE_ENDPOINT", "DELETE_DB_MANAGEMENT_PRIVATE_ENDPOINT", "CREATE_DB_SYSTEM_DISCOVERY", "CREATE_DB_SYSTEM", "UPDATE_DB_SYSTEM", "DB_SYSTEM_ENABLE_DBMGMT", "DB_SYSTEM_DISABLE_DBMGMT", "DELETE_DB_SYSTEM", "UPDATE_EXTERNAL_DB_SYSTEM_CONNECTOR", "CHANGE_EXTERNAL_DB_SYSTEM_COMPARTMENT", "DISABLE_EXADATA_INFRASTURCTURE", "ENABLE_EXADATA_INFRASTRUCTURE", "DELETE_EXADATA_INFRASTRUCTURE", "CHANGE_EXADATA_COMPARTMENT", "ENABLE_SQL_WATCH", "DISABLE_SQL_WATCH", "MODIFY_SQL_WATCH", "ENABLE_DBLM", "DISABLE_DBLM", "MODIFY_DBLM", "ENABLE_DBMGMT", "DISABLE_DBMGMT", "MODIFY_DBMGMT", "CHECK_EXTERNAL_MYSQL_CONNECTION", "UPDATE_EXTERNAL_MYSQL_CREDENTIAL", "CREATE_EXTERNAL_MYSQL_CONNECTOR", "DELETE_EXTERNAL_MYSQL_CONNECTOR", "DELETE_EXTERNAL_MYSQL_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - status: Literal['ACCEPTED', 'IN_PROGRESS', 'FAILED', 'SUCCEEDED', 'CANCELING', 'CANCELED', 'UNKNOWN_ENUM_VALUE'] = Field(..., description='**[Required]** Gets the status of this WorkRequestSummary.\nThe status of the current work request.\n\nAllowed values for this property are: "ACCEPTED", "IN_PROGRESS", "FAILED", "SUCCEEDED", "CANCELING", "CANCELED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - id: str = Field(..., description='**[Required]** Gets the id of this WorkRequestSummary.\nThe ID of the work request.') - compartment_id: str = Field(..., alias='compartmentId', description='**[Required]** Gets the compartment_id of this WorkRequestSummary.\nThe OCID of the compartment that contains the work request. Work requests should be scoped to the same compartment as the resource the work request affects.\nIf the work request affects multiple resources that are not in the same compartment then the system picks the primary resource whose compartment should be used.') - percent_complete: float = Field(..., alias='percentComplete', description='**[Required]** Gets the percent_complete of this WorkRequestSummary.\nThe completed percentage of the operation tracked by the work request.') - time_accepted: datetime = Field(..., alias='timeAccepted', description='**[Required]** Gets the time_accepted of this WorkRequestSummary. The date and time the work request was accepted, as described in RFC 3339. The precision for this time object is in milliseconds.') - time_started: datetime | None = Field(None, alias='timeStarted', description='Gets the time_started of this WorkRequestSummary. The date and time the work request transitioned from ACCEPTED to IN_PROGRESS, as described in RFC 3339. The precision for this time object is in milliseconds.') - time_finished: datetime | None = Field(None, alias='timeFinished', description='Gets the time_finished of this WorkRequestSummary. The date and time the work request reached a terminal state, either FAILED or SUCCEEDED, as described in RFC 3339. The precision for this time object is in milliseconds.') - resources: list[WorkRequestResource] = Field(..., description='**[Required]** Gets the resources of this WorkRequestSummary.\nThe resources affected by this work request.') - - -__all__ = [ - 'ActivityTimeSeriesMetrics', - 'AddDataFilesDetails', - 'AddManagedDatabaseToManagedDatabaseGroupDetails', - 'AddmTaskSummary', - 'AddmTasksCollection', - 'AdvisorRule', - 'AlertLogCollection', - 'AlertLogCountSummary', - 'AlertLogCountsCollection', - 'AlertLogSummary', - 'AllowedParameterValue', - 'AsmConnectionCredentailsByName', - 'AsmConnectionCredentials', - 'AsmConnectionCredentialsByDetails', - 'AsmConnectionString', - 'AsmProperty', - 'AsmPropertyCollection', - 'AsmPropertySummary', - 'AssociatedCloudComponent', - 'AssociatedComponent', - 'AssociatedDatabaseCollection', - 'AssociatedDatabaseSummary', - 'AssociatedServiceDetails', - 'AttentionLogCollection', - 'AttentionLogCountSummary', - 'AttentionLogCountsCollection', - 'AttentionLogSummary', - 'AutomaticCaptureFilter', - 'AutomaticCaptureFilterDetails', - 'AutonomousDatabaseDiagnosticsAndManagementFeatureDetails', - 'AutonomousDatabaseFeatureDetails', - 'AutonomousDatabaseSqlWatchFeatureDetails', - 'AwrDbCollection', - 'AwrDbCpuUsageCollection', - 'AwrDbCpuUsageSummary', - 'AwrDbMetricCollection', - 'AwrDbMetricSummary', - 'AwrDbParameterChangeCollection', - 'AwrDbParameterChangeSummary', - 'AwrDbParameterCollection', - 'AwrDbParameterSummary', - 'AwrDbReport', - 'AwrDbSnapshotCollection', - 'AwrDbSnapshotRangeCollection', - 'AwrDbSnapshotRangeSummary', - 'AwrDbSnapshotSummary', - 'AwrDbSqlReport', - 'AwrDbSummary', - 'AwrDbSysstatCollection', - 'AwrDbSysstatSummary', - 'AwrDbTopWaitEventCollection', - 'AwrDbTopWaitEventSummary', - 'AwrDbWaitEventBucketCollection', - 'AwrDbWaitEventBucketSummary', - 'AwrDbWaitEventCollection', - 'AwrDbWaitEventSummary', - 'AwrQueryResult', - 'BaseDatabaseHaDetails', - 'BasicDatabaseConnectionStringDetails', - 'BasicNamedCredentialContent', - 'BasicPreferredCredential', - 'ChangeCloudExadataInfrastructureCompartmentDetails', - 'ChangeDatabaseParameterDetails', - 'ChangeDatabaseParametersDetails', - 'ChangeDbManagementPrivateEndpointCompartmentDetails', - 'ChangeExternalDbSystemCompartmentDetails', - 'ChangeExternalExadataInfrastructureCompartmentDetails', - 'ChangeJobCompartmentDetails', - 'ChangeManagedDatabaseGroupCompartmentDetails', - 'ChangeMysqlDatabaseManagementTypeDetails', - 'ChangeNamedCredentialCompartmentDetails', - 'ChangePlanRetentionDetails', - 'ChangeSpaceBudgetDetails', - 'ChangeSqlPlanBaselinesAttributesDetails', - 'ChildDatabase', - 'CloneSqlTuningTaskDetails', - 'CloudAsm', - 'CloudAsmCollection', - 'CloudAsmConfiguration', - 'CloudAsmConnectionCredentials', - 'CloudAsmConnectionCredentialsByDetails', - 'CloudAsmConnectionCredentialsByName', - 'CloudAsmConnectionInfo', - 'CloudAsmDiskGroupCollection', - 'CloudAsmDiskGroupSummary', - 'CloudAsmInstance', - 'CloudAsmInstanceCollection', - 'CloudAsmInstanceParameters', - 'CloudAsmInstanceSummary', - 'CloudAsmServicedDatabase', - 'CloudAsmSummary', - 'CloudAsmUserCollection', - 'CloudAsmUserSummary', - 'CloudCluster', - 'CloudClusterCollection', - 'CloudClusterInstance', - 'CloudClusterInstanceCollection', - 'CloudClusterInstanceSummary', - 'CloudClusterNetworkConfiguration', - 'CloudClusterScanListenerConfiguration', - 'CloudClusterSummary', - 'CloudClusterVipConfiguration', - 'CloudDatabaseCollection', - 'CloudDatabaseConnectionInfo', - 'CloudDatabaseInstance', - 'CloudDatabaseSummary', - 'CloudDbHome', - 'CloudDbHomeCollection', - 'CloudDbHomeSummary', - 'CloudDbNode', - 'CloudDbNodeCollection', - 'CloudDbNodeSummary', - 'CloudDbSystem', - 'CloudDbSystemBasicInfo', - 'CloudDbSystemCollection', - 'CloudDbSystemConnectionInfo', - 'CloudDbSystemConnector', - 'CloudDbSystemConnectorCollection', - 'CloudDbSystemConnectorSummary', - 'CloudDbSystemDatabaseManagementConfigDetails', - 'CloudDbSystemDiscovery', - 'CloudDbSystemDiscoveryCollection', - 'CloudDbSystemDiscoveryConnector', - 'CloudDbSystemDiscoveryMacsConnector', - 'CloudDbSystemDiscoverySummary', - 'CloudDbSystemMacsConnector', - 'CloudDbSystemStackMonitoringConfigDetails', - 'CloudDbSystemSummary', - 'CloudExadataInfrastructure', - 'CloudExadataInfrastructureCollection', - 'CloudExadataInfrastructureDiscovery', - 'CloudExadataInfrastructureSummary', - 'CloudExadataStorageConnector', - 'CloudExadataStorageConnectorCollection', - 'CloudExadataStorageConnectorStatus', - 'CloudExadataStorageConnectorSummary', - 'CloudExadataStorageGrid', - 'CloudExadataStorageGridSummary', - 'CloudExadataStorageServer', - 'CloudExadataStorageServerCollection', - 'CloudExadataStorageServerSummary', - 'CloudIormPlan', - 'CloudListener', - 'CloudListenerCollection', - 'CloudListenerEndpoint', - 'CloudListenerIpcEndpoint', - 'CloudListenerServiceCollection', - 'CloudListenerServiceSummary', - 'CloudListenerServicedDatabase', - 'CloudListenerSummary', - 'CloudListenerTcpEndpoint', - 'CloudListenerTcpsEndpoint', - 'CloudOpenAlertHistory', - 'CloudServicedAsm', - 'CloudServicedDatabase', - 'ClusterCacheMetric', - 'ConfigureAutomaticCaptureFiltersDetails', - 'ConfigureAutomaticSpmEvolveAdvisorTaskDetails', - 'ConnectorDetails', - 'ConsumerGroupPrivilegeCollection', - 'ConsumerGroupPrivilegeSummary', - 'CpuUtilizationAggregateMetrics', - 'CreateCloudDbSystemConnectorDetails', - 'CreateCloudDbSystemDetails', - 'CreateCloudDbSystemDiscoveryDetails', - 'CreateCloudDbSystemMacsConnectorDetails', - 'CreateCloudExadataInfrastructureDetails', - 'CreateCloudExadataStorageConnectorDetails', - 'CreateDbManagementPrivateEndpointDetails', - 'CreateExternalDbSystemConnectorDetails', - 'CreateExternalDbSystemDetails', - 'CreateExternalDbSystemDiscoveryDetails', - 'CreateExternalDbSystemMacsConnectorDetails', - 'CreateExternalExadataInfrastructureDetails', - 'CreateExternalExadataStorageConnectorDetails', - 'CreateExternalMySqlDatabaseConnectorDetails', - 'CreateExternalMySqlDatabaseDetails', - 'CreateJobDetails', - 'CreateManagedDatabaseGroupDetails', - 'CreateMySqlDatabaseConnectorDetails', - 'CreateNamedCredentialDetails', - 'CreateSqlJobDetails', - 'CreateSqlTuningSetDetails', - 'CreateTablespaceDetails', - 'CursorCacheStatementCollection', - 'CursorCacheStatementSummary', - 'DataAccessContainerCollection', - 'DataAccessContainerSummary', - 'DataPoints', - 'DatabaseBackupMetrics', - 'DatabaseBackupSummary', - 'DatabaseConnectionCredentailsByName', - 'DatabaseConnectionCredentials', - 'DatabaseConnectionCredentialsByDetails', - 'DatabaseConnectionDetails', - 'DatabaseConnectionString', - 'DatabaseConnectionStringDetails', - 'DatabaseCredentialDetails', - 'DatabaseCredentials', - 'DatabaseDiagnosticsAndManagementFeatureConfiguration', - 'DatabaseDiagnosticsAndManagementFeatureDetails', - 'DatabaseFeatureConfiguration', - 'DatabaseFeatureDetails', - 'DatabaseFleetBackupMetrics', - 'DatabaseFleetDataguardMetrics', - 'DatabaseFleetHaOverviewMetrics', - 'DatabaseFleetHealthMetrics', - 'DatabaseHaBackupDetails', - 'DatabaseHaMetrics', - 'DatabaseHomeMetricDefinition', - 'DatabaseHomeMetrics', - 'DatabaseIOAggregateMetrics', - 'DatabaseInstanceHomeMetricsDefinition', - 'DatabaseLifecycleFeatureConfiguration', - 'DatabaseLifecycleManagementFeatureDetails', - 'DatabaseManagementConfig', - 'DatabaseNamedCredentialConnectionDetails', - 'DatabaseNamedCredentialDetails', - 'DatabaseParameterSummary', - 'DatabaseParameterUpdateStatus', - 'DatabaseParametersCollection', - 'DatabasePasswordCredentialDetails', - 'DatabasePlan', - 'DatabasePlanDirective', - 'DatabaseSecretCredentialDetails', - 'DatabaseSqlWatchFeatureConfiguration', - 'DatabaseSqlWatchFeatureDetails', - 'DatabaseSslConnectionCredentials', - 'DatabaseStorageAggregateMetrics', - 'DatabaseTimeAggregateMetrics', - 'DatabaseUsageMetrics', - 'Datafile', - 'DataguardMetrics', - 'DataguardPerformanceMetrics', - 'DbManagementAnalyticsMetric', - 'DbManagementPrivateEndpoint', - 'DbManagementPrivateEndpointCollection', - 'DbManagementPrivateEndpointSummary', - 'DbmResource', - 'DirectConnectorDetails', - 'DisableAutomaticInitialPlanCaptureDetails', - 'DisableAutomaticSpmEvolveAdvisorTaskDetails', - 'DisableAutonomousDatabaseManagementFeatureDetails', - 'DisableDatabaseManagementFeatureDetails', - 'DisableExternalContainerDatabaseManagementFeatureDetails', - 'DisableExternalNonContainerDatabaseManagementFeatureDetails', - 'DisableExternalPluggableDatabaseManagementFeatureDetails', - 'DisableHighFrequencyAutomaticSpmEvolveAdvisorTaskDetails', - 'DisablePluggableDatabaseManagementFeatureDetails', - 'DisableSqlPlanBaselinesUsageDetails', - 'DiscoverCloudExadataInfrastructureDetails', - 'DiscoverExternalExadataInfrastructureDetails', - 'DiscoveredCloudAsm', - 'DiscoveredCloudAsmInstance', - 'DiscoveredCloudCluster', - 'DiscoveredCloudClusterInstance', - 'DiscoveredCloudDatabase', - 'DiscoveredCloudDbHome', - 'DiscoveredCloudDbInstance', - 'DiscoveredCloudDbNode', - 'DiscoveredCloudDbSystemComponent', - 'DiscoveredCloudListener', - 'DiscoveredCloudPluggableDatabase', - 'DiscoveredExternalAsm', - 'DiscoveredExternalAsmInstance', - 'DiscoveredExternalCluster', - 'DiscoveredExternalClusterInstance', - 'DiscoveredExternalDatabase', - 'DiscoveredExternalDbHome', - 'DiscoveredExternalDbInstance', - 'DiscoveredExternalDbNode', - 'DiscoveredExternalDbSystemComponent', - 'DiscoveredExternalListener', - 'DiscoveredExternalPluggableDatabase', - 'DropSqlPlanBaselinesDetails', - 'DropSqlTuningSetDetails', - 'DropSqlTuningTaskDetails', - 'DropSqlsInSqlTuningSetDetails', - 'DropTablespaceDetails', - 'EnableAutomaticInitialPlanCaptureDetails', - 'EnableAutomaticSpmEvolveAdvisorTaskDetails', - 'EnableAutonomousDatabaseManagementFeatureDetails', - 'EnableCloudDbSystemDatabaseManagementDetails', - 'EnableCloudDbSystemStackMonitoringDetails', - 'EnableCloudExadataInfrastructureManagementDetails', - 'EnableDatabaseManagementFeatureDetails', - 'EnableExternalContainerDatabaseManagementFeatureDetails', - 'EnableExternalDatabaseManagementDetails', - 'EnableExternalDbSystemDatabaseManagementDetails', - 'EnableExternalDbSystemStackMonitoringDetails', - 'EnableExternalExadataInfrastructureManagementDetails', - 'EnableExternalNonContainerDatabaseManagementFeatureDetails', - 'EnableExternalPluggableDatabaseManagementFeatureDetails', - 'EnableHighFrequencyAutomaticSpmEvolveAdvisorTaskDetails', - 'EnablePluggableDatabaseManagementFeatureDetails', - 'EnableSqlPlanBaselinesUsageDetails', - 'EntityDiscovered', - 'ExadataFleetMetricDefinition', - 'ExadataFleetMetricSummaryDefinition', - 'ExadataInfrastructureDiscoverySummary', - 'ExadataInfrastructureFleetHealthMetrics', - 'ExadataInfrastructureFleetStatusByCategory', - 'ExadataInfrastructureFleetSummary', - 'ExadataInfrastructureLifecycleStateValues', - 'ExadataInfrastructureUsageMetrics', - 'ExadataMetricDimensionDefinition', - 'ExadataVmClusterSummary', - 'ExecutionPlanStatsComparision', - 'ExternalAsm', - 'ExternalAsmCollection', - 'ExternalAsmConfiguration', - 'ExternalAsmConnectionInfo', - 'ExternalAsmDiskGroupCollection', - 'ExternalAsmDiskGroupSummary', - 'ExternalAsmInstance', - 'ExternalAsmInstanceCollection', - 'ExternalAsmInstanceParameters', - 'ExternalAsmInstanceSummary', - 'ExternalAsmServicedDatabase', - 'ExternalAsmSummary', - 'ExternalAsmUserCollection', - 'ExternalAsmUserSummary', - 'ExternalCluster', - 'ExternalClusterCollection', - 'ExternalClusterInstance', - 'ExternalClusterInstanceCollection', - 'ExternalClusterInstanceSummary', - 'ExternalClusterNetworkConfiguration', - 'ExternalClusterScanListenerConfiguration', - 'ExternalClusterSummary', - 'ExternalClusterVipConfiguration', - 'ExternalConnectorDetails', - 'ExternalDatabaseCollection', - 'ExternalDatabaseConnectionInfo', - 'ExternalDatabaseDiagnosticsAndManagementFeatureDetails', - 'ExternalDatabaseFeatureDetails', - 'ExternalDatabaseInstance', - 'ExternalDatabaseLifecycleManagementFeatureDetails', - 'ExternalDatabaseSqlWatchFeatureDetails', - 'ExternalDatabaseSummary', - 'ExternalDatabaseSystemDiscoverySummary', - 'ExternalDbHome', - 'ExternalDbHomeCollection', - 'ExternalDbHomeSummary', - 'ExternalDbNode', - 'ExternalDbNodeCollection', - 'ExternalDbNodeSummary', - 'ExternalDbSystem', - 'ExternalDbSystemBasicInfo', - 'ExternalDbSystemCollection', - 'ExternalDbSystemConnectionInfo', - 'ExternalDbSystemConnector', - 'ExternalDbSystemConnectorCollection', - 'ExternalDbSystemConnectorSummary', - 'ExternalDbSystemDatabaseManagementConfigDetails', - 'ExternalDbSystemDiscovery', - 'ExternalDbSystemDiscoveryCollection', - 'ExternalDbSystemDiscoveryConnector', - 'ExternalDbSystemDiscoveryMacsConnector', - 'ExternalDbSystemDiscoverySummary', - 'ExternalDbSystemMacsConnector', - 'ExternalDbSystemStackMonitoringConfigDetails', - 'ExternalDbSystemSummary', - 'ExternalExadataDatabaseSystemSummary', - 'ExternalExadataInfraBasicInfo', - 'ExternalExadataInfrastructure', - 'ExternalExadataInfrastructureCollection', - 'ExternalExadataInfrastructureDiscovery', - 'ExternalExadataInfrastructureDiscoverySummary', - 'ExternalExadataInfrastructureSummary', - 'ExternalExadataStorageConnector', - 'ExternalExadataStorageConnectorCollection', - 'ExternalExadataStorageConnectorStatus', - 'ExternalExadataStorageConnectorSummary', - 'ExternalExadataStorageGrid', - 'ExternalExadataStorageGridSummary', - 'ExternalExadataStorageServer', - 'ExternalExadataStorageServerCollection', - 'ExternalExadataStorageServerSummary', - 'ExternalListener', - 'ExternalListenerCollection', - 'ExternalListenerEndpoint', - 'ExternalListenerIpcEndpoint', - 'ExternalListenerServiceCollection', - 'ExternalListenerServiceSummary', - 'ExternalListenerServicedDatabase', - 'ExternalListenerSummary', - 'ExternalListenerTcpEndpoint', - 'ExternalListenerTcpsEndpoint', - 'ExternalMySqlDatabase', - 'ExternalMySqlDatabaseCollection', - 'ExternalMySqlDatabaseConnector', - 'ExternalMySqlDatabaseSummary', - 'ExternalPluggableDatabaseDiagnosticsAndManagementFeatureDetails', - 'ExternalPluggableDatabaseFeatureDetails', - 'ExternalPluggableDatabaseLifecycleManagementFeatureDetails', - 'ExternalPluggableDatabaseSqlWatchFeatureDetails', - 'ExternalServicedAsm', - 'ExternalServicedDatabase', - 'ExternalStorageGridDiscoverySummary', - 'ExternalStorageServerDiscoverySummary', - 'FailedConnectionsAggregateMetrics', - 'FetchSqlTuningSetDetails', - 'FindingSchemaOrOperation', - 'FleetMetricDefinition', - 'FleetMetricSummaryDefinition', - 'FleetStatusByCategory', - 'FleetSummary', - 'HaMetricDefinition', - 'HeatWaveClusterUsageMetrics', - 'HeatWaveFleetByCategory', - 'HeatWaveFleetMetricDefinition', - 'HeatWaveFleetMetricSummaryDefinition', - 'HeatWaveFleetMetrics', - 'HeatWaveFleetSummary', - 'HeatWaveNode', - 'HistoricAddmResult', - 'ImplementOptimizerStatisticsAdvisorRecommendationsDetails', - 'ImplementOptimizerStatisticsAdvisorRecommendationsJob', - 'InstanceDetails', - 'IormPlan', - 'Job', - 'JobCollection', - 'JobDatabase', - 'JobExecution', - 'JobExecutionCollection', - 'JobExecutionResultDetails', - 'JobExecutionResultLocation', - 'JobExecutionSummary', - 'JobExecutionsStatusSummary', - 'JobExecutionsStatusSummaryCollection', - 'JobInBind', - 'JobInBindsDetails', - 'JobOutBind', - 'JobOutBindsDetails', - 'JobRun', - 'JobRunCollection', - 'JobRunSummary', - 'JobScheduleDetails', - 'JobSummary', - 'LoadSqlPlanBaselinesFromAwrDetails', - 'LoadSqlPlanBaselinesFromCursorCacheDetails', - 'LoadSqlTuningSetDetails', - 'MacsConnectorDetails', - 'ManagedDatabase', - 'ManagedDatabaseCollection', - 'ManagedDatabaseCredential', - 'ManagedDatabaseGroup', - 'ManagedDatabaseGroupCollection', - 'ManagedDatabaseGroupSummary', - 'ManagedDatabasePasswordCredential', - 'ManagedDatabaseSecretCredential', - 'ManagedDatabaseSummary', - 'ManagedMySqlDatabase', - 'ManagedMySqlDatabaseBinaryLogInformation', - 'ManagedMySqlDatabaseCollection', - 'ManagedMySqlDatabaseGeneralReplicationInformation', - 'ManagedMySqlDatabaseHighAvailabilityMemberCollection', - 'ManagedMySqlDatabaseHighAvailabilityMemberSummary', - 'ManagedMySqlDatabaseInboundReplicationCollection', - 'ManagedMySqlDatabaseInboundReplicationSummary', - 'ManagedMySqlDatabaseOutboundReplicationCollection', - 'ManagedMySqlDatabaseOutboundReplicationSummary', - 'ManagedMySqlDatabaseSummary', - 'MemoryAggregateMetrics', - 'MetricDataPoint', - 'MetricDimensionDefinition', - 'MetricStatisticsDefinition', - 'MetricsAggregationRange', - 'MetricsAggregationRangeCollection', - 'ModifyAutonomousDatabaseManagementFeatureDetails', - 'ModifyDatabaseManagementFeatureDetails', - 'ModifyPluggableDatabaseManagementFeatureDetails', - 'ModifySnapshotSettingsDetails', - 'MySqlApplyError', - 'MySqlApplyErrorWorker', - 'MySqlChannelApplyError', - 'MySqlChannelFetchError', - 'MySqlConfigurationDataCollection', - 'MySqlConfigurationDataSummary', - 'MySqlConnectorCollection', - 'MySqlDataCollection', - 'MySqlDataSummary', - 'MySqlDatabaseConnectorSummary', - 'MySqlDatabaseUsageMetrics', - 'MySqlDigestErrorSummary', - 'MySqlDigestErrorsCollection', - 'MySqlFetchError', - 'MySqlFleetByCategory', - 'MySqlFleetMetricDefinition', - 'MySqlFleetMetricSummaryDefinition', - 'MySqlFleetMetrics', - 'MySqlFleetSummary', - 'MySqlHighAvailabilityStatusSummary', - 'MySqlQueryDetails', - 'MySqlQueryExplainPlan', - 'MySqlQueryMessage', - 'MySqlQuerySampleDetails', - 'MySqlReplicationApplierFilter', - 'NamedCredential', - 'NamedCredentialCollection', - 'NamedCredentialContent', - 'NamedCredentialSummary', - 'NamedPreferredCredential', - 'ObjectPrivilegeCollection', - 'ObjectPrivilegeSummary', - 'ObjectStorageJobExecutionResultDetails', - 'ObjectStorageJobExecutionResultLocation', - 'OpenAlertHistory', - 'OpenAlertSummary', - 'OptimizerDatabase', - 'OptimizerStatisticsAdvisorExecution', - 'OptimizerStatisticsAdvisorExecutionReport', - 'OptimizerStatisticsAdvisorExecutionScript', - 'OptimizerStatisticsAdvisorExecutionSummary', - 'OptimizerStatisticsAdvisorExecutionsCollection', - 'OptimizerStatisticsCollectionAggregationSummary', - 'OptimizerStatisticsCollectionAggregationsCollection', - 'OptimizerStatisticsCollectionOperation', - 'OptimizerStatisticsCollectionOperationSummary', - 'OptimizerStatisticsCollectionOperationsCollection', - 'OptimizerStatisticsOperationTask', - 'ParentGroup', - 'PatchCloudDbSystemDiscoveryDetails', - 'PatchExternalDbSystemDiscoveryDetails', - 'PatchInstruction', - 'PatchMergeInstruction', - 'PdbMetrics', - 'PdbStatusDetails', - 'PeerDatabaseMetrics', - 'PerformanceMetrics', - 'PerformanceMetricsData', - 'PreferredCredential', - 'PreferredCredentialCollection', - 'PreferredCredentialSummary', - 'PrivateEndPointConnectorDetails', - 'ProxiedForUserCollection', - 'ProxiedForUserSummary', - 'ProxyUserCollection', - 'ProxyUserSummary', - 'Recommendation', - 'RecommendationExample', - 'RecommendationExampleLine', - 'RecommendationRationale', - 'RemoveDataFileDetails', - 'RemoveManagedDatabaseFromManagedDatabaseGroupDetails', - 'ResetDatabaseParametersDetails', - 'ResizeDataFileDetails', - 'RestCredential', - 'RoleCollection', - 'RoleSummary', - 'RuleFinding', - 'RunHistoricAddmDetails', - 'SaveSqlTuningSetAsDetails', - 'SchemaDefinition', - 'SnapshotDetails', - 'SpmEvolveTaskParameters', - 'SqlCpuActivity', - 'SqlInSqlTuningSet', - 'SqlJob', - 'SqlMetrics', - 'SqlPlanBaseline', - 'SqlPlanBaselineAggregation', - 'SqlPlanBaselineAggregationCollection', - 'SqlPlanBaselineCollection', - 'SqlPlanBaselineConfiguration', - 'SqlPlanBaselineDimensions', - 'SqlPlanBaselineJob', - 'SqlPlanBaselineJobCollection', - 'SqlPlanBaselineJobSummary', - 'SqlPlanBaselineSummary', - 'SqlTuningAdvisorTaskCollection', - 'SqlTuningAdvisorTaskFindingCollection', - 'SqlTuningAdvisorTaskFindingSummary', - 'SqlTuningAdvisorTaskRecommendationCollection', - 'SqlTuningAdvisorTaskRecommendationSummary', - 'SqlTuningAdvisorTaskSqlExecutionPlan', - 'SqlTuningAdvisorTaskSummary', - 'SqlTuningAdvisorTaskSummaryFindingBenefits', - 'SqlTuningAdvisorTaskSummaryFindingCounts', - 'SqlTuningAdvisorTaskSummaryReport', - 'SqlTuningAdvisorTaskSummaryReportIndexFindingSummary', - 'SqlTuningAdvisorTaskSummaryReportObjectStatFindingSummary', - 'SqlTuningAdvisorTaskSummaryReportStatementCounts', - 'SqlTuningAdvisorTaskSummaryReportStatistics', - 'SqlTuningAdvisorTaskSummaryReportTaskInfo', - 'SqlTuningSet', - 'SqlTuningSetAdminActionStatus', - 'SqlTuningSetAdminCredentialDetails', - 'SqlTuningSetAdminPasswordCredentialDetails', - 'SqlTuningSetAdminSecretCredentialDetails', - 'SqlTuningSetCollection', - 'SqlTuningSetInput', - 'SqlTuningSetSummary', - 'SqlTuningTaskCredentialDetails', - 'SqlTuningTaskPasswordCredentialDetails', - 'SqlTuningTaskPlanStats', - 'SqlTuningTaskReturn', - 'SqlTuningTaskSecretCredentialDetails', - 'SqlTuningTaskSqlDetail', - 'SqlTuningTaskSqlExecutionPlanStep', - 'StandByDatabaseDataguardMetrics', - 'StartSqlTuningTaskDetails', - 'StatementsAggregateMetrics', - 'StorageGridDiscoverySummary', - 'StorageServerDiscoverySummary', - 'SystemPrivilegeCollection', - 'SystemPrivilegeSummary', - 'TableStatisticSummary', - 'TableStatisticsCollection', - 'Tablespace', - 'TablespaceAdminCredentialDetails', - 'TablespaceAdminPasswordCredentialDetails', - 'TablespaceAdminSecretCredentialDetails', - 'TablespaceAdminStatus', - 'TablespaceCollection', - 'TablespaceStorageSize', - 'TablespaceSummary', - 'TestBasicPreferredCredentialDetails', - 'TestNamedCredentialDetails', - 'TestNamedCredentialStatus', - 'TestNamedPreferredCredentialDetails', - 'TestPreferredCredentialDetails', - 'TestPreferredCredentialStatus', - 'TimeSeriesMetricDataPoint', - 'TimeSeriesMetricDefinition', - 'TopSqlCpuActivity', - 'UpdateBasicPreferredCredentialDetails', - 'UpdateCloudAsmDetails', - 'UpdateCloudAsmInstanceDetails', - 'UpdateCloudClusterDetails', - 'UpdateCloudClusterInstanceDetails', - 'UpdateCloudDbHomeDetails', - 'UpdateCloudDbNodeDetails', - 'UpdateCloudDbSystemConnectorDetails', - 'UpdateCloudDbSystemDetails', - 'UpdateCloudDbSystemDiscoveryDetails', - 'UpdateCloudDbSystemMacsConnectorDetails', - 'UpdateCloudExadataInfrastructureDetails', - 'UpdateCloudExadataStorageConnectorDetails', - 'UpdateCloudExadataStorageGridDetails', - 'UpdateCloudExadataStorageServerDetails', - 'UpdateCloudListenerDetails', - 'UpdateDatabaseParametersResult', - 'UpdateDbManagementPrivateEndpointDetails', - 'UpdateExternalAsmDetails', - 'UpdateExternalAsmInstanceDetails', - 'UpdateExternalClusterDetails', - 'UpdateExternalClusterInstanceDetails', - 'UpdateExternalDbHomeDetails', - 'UpdateExternalDbNodeDetails', - 'UpdateExternalDbSystemConnectorDetails', - 'UpdateExternalDbSystemDetails', - 'UpdateExternalDbSystemDiscoveryDetails', - 'UpdateExternalDbSystemMacsConnectorDetails', - 'UpdateExternalExadataInfrastructureDetails', - 'UpdateExternalExadataStorageConnectorDetails', - 'UpdateExternalExadataStorageGridDetails', - 'UpdateExternalExadataStorageServerDetails', - 'UpdateExternalListenerDetails', - 'UpdateExternalMySqlDatabaseConnectorDetails', - 'UpdateExternalMySqlDatabaseDetails', - 'UpdateJobDetails', - 'UpdateManagedDatabaseDetails', - 'UpdateManagedDatabaseGroupDetails', - 'UpdateMySqlDatabaseConnectorDetails', - 'UpdateNamedCredentialDetails', - 'UpdateNamedPreferredCredentialDetails', - 'UpdatePreferredCredentialDetails', - 'UpdateSqlJobDetails', - 'UpdateTablespaceDetails', - 'User', - 'UserCollection', - 'UserSummary', - 'VMClusterDiscoverySummary', - 'ValidateBasicFilterDetails', - 'WorkRequest', - 'WorkRequestCollection', - 'WorkRequestError', - 'WorkRequestErrorCollection', - 'WorkRequestLogEntry', - 'WorkRequestLogEntryCollection', - 'WorkRequestResource', - 'WorkRequestSubResource', - 'WorkRequestSummary', - "Compartment", - "CompartmentAccessLevel", - "CompartmentCollection", - "CompartmentLifecycleState", - "DbmBaseModel", - "DbmRequestModel", -] diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/runtime.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/runtime.py deleted file mode 100644 index 1badac75..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/runtime.py +++ /dev/null @@ -1,147 +0,0 @@ -""" -Copyright (c) 2026, Oracle and/or its affiliates. -Licensed under the Universal Permissive License v1.0 as shown at -https://oss.oracle.com/licenses/upl. -""" - -from __future__ import annotations - -from functools import lru_cache -from logging import Logger -from typing import Any - -import oci -from pydantic import BaseModel -from pydantic.fields import FieldInfo -from pydantic_core import PydanticUndefined - -from oracle.oci_oracle_db_observability.v1.auth import build_client -from oracle.oci_oracle_db_observability.v1.conversion import ( - polymorphic_request_to_sdk_model, - pydantic_to_sdk_model, -) -from oracle.oci_oracle_db_observability.v1.pagination import call_with_auto_pagination -from oracle.oci_oracle_db_observability.v1.response_mapping import map_response_data - -from . import __project__, __version__ -from .metadata import METHOD_CLIENTS, REQUEST_MODEL_TYPES - -logger = Logger(__name__, level="INFO") - - -@lru_cache(maxsize=1) -def get_db_management_client() -> oci.database_management.DbManagementClient: - """Create the OCI Database Management DbManagementClient SDK client.""" - - return build_client( - oci.database_management.DbManagementClient, - project=__project__, - version=__version__, - logger=logger, - ) - - -@lru_cache(maxsize=1) -def get_diagnosability_client() -> oci.database_management.DiagnosabilityClient: - """Create the OCI Database Management DiagnosabilityClient SDK client.""" - - return build_client( - oci.database_management.DiagnosabilityClient, - project=__project__, - version=__version__, - logger=logger, - ) - - - - -@lru_cache(maxsize=1) -def get_sql_tuning_client() -> oci.database_management.SqlTuningClient: - """Create the OCI Database Management SqlTuningClient SDK client.""" - - return build_client( - oci.database_management.SqlTuningClient, - project=__project__, - version=__version__, - logger=logger, - ) - - -@lru_cache(maxsize=1) -def get_identity_client() -> oci.identity.IdentityClient: - """Create the OCI Identity SDK client.""" - - return build_client( - oci.identity.IdentityClient, - project=__project__, - version=__version__, - logger=logger, - ) - - -CLIENT_GETTERS = { - 'DbManagementClient': get_db_management_client, - 'DiagnosabilityClient': get_diagnosability_client, - 'SqlTuningClient': get_sql_tuning_client, -} - - -def normalize_tool_value(value: Any) -> Any: - """Resolve FastMCP/Pydantic Field defaults when a tool is called directly.""" - - if isinstance(value, FieldInfo): - default = value.get_default(call_default_factory=True) - return None if default is PydanticUndefined else default - return value - - -def _coerce_argument(method_name: str, key: str, value: Any) -> Any: - value = normalize_tool_value(value) - if value is None: - return None - request_model_name = REQUEST_MODEL_TYPES.get((method_name, key)) - if request_model_name is not None: - sdk_type = getattr(oci.database_management.models, request_model_name) - return polymorphic_request_to_sdk_model(value, sdk_type) - if isinstance(value, BaseModel): - sdk_type = getattr(oci.database_management.models, value.__class__.__name__, None) - if sdk_type is not None: - return pydantic_to_sdk_model(value, sdk_type) - return value.model_dump(by_alias=True, exclude_none=True) - if isinstance(value, list): - return [_coerce_argument(method_name, key, item) for item in value] - if isinstance(value, dict): - return { - item_key: _coerce_argument(method_name, item_key, item) - for item_key, item in value.items() - if item is not None - } - return value - - -def _invoke(method_name: str, client: Any, service_name: str, **kwargs: Any) -> Any: - method = getattr(client, method_name) - sdk_kwargs = {} - for key, value in kwargs.items(): - coerced_value = _coerce_argument(method_name, key, value) - if coerced_value is not None: - sdk_kwargs[key] = coerced_value - try: - response = call_with_auto_pagination(method, sdk_kwargs) - return map_response_data(getattr(response, "data", None)) - except Exception as exc: - logger.error("Error in %s tool %s: %s", service_name, method_name, exc) - raise - - -def invoke_dbm(method_name: str, **kwargs: Any) -> Any: - """Invoke a DBM SDK method on the correct Database Management client.""" - - client_name = METHOD_CLIENTS[method_name] - return _invoke(method_name, CLIENT_GETTERS[client_name](), client_name, **kwargs) - - -def invoke_identity(method_name: str, **kwargs: Any) -> Any: - """Invoke an OCI Identity SDK method and map the SDK response for MCP.""" - - return _invoke(method_name, get_identity_client(), "Identity", **kwargs) diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/server.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/server.py deleted file mode 100644 index 3d28ea85..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/server.py +++ /dev/null @@ -1,57 +0,0 @@ -""" -Copyright (c) 2026, Oracle and/or its affiliates. -Licensed under the Universal Permissive License v1.0 as shown at -https://oss.oracle.com/licenses/upl. -""" - -from __future__ import annotations - -import os - -from fastmcp.server.auth.providers.oci import OCIProvider -from fastmcp.utilities.auth import parse_scopes - -from . import __project__ -from . import tools as _tools # noqa: F401 -from .mcp import mcp - - -def _default_required_scopes() -> list[str]: - server_name = __project__.removeprefix("oracle.oci-").removesuffix("-mcp-server") - return f"openid profile email oci_mcp.{server_name.replace('-', '_')}.invoke".split() - - -def main() -> None: - """Run the DBM MCP server with stdio or HTTP transport.""" - - host = os.getenv("ORACLE_MCP_HOST") - port = os.getenv("ORACLE_MCP_PORT") - - if not (host and port): - mcp.run() - return - - domain = os.getenv("IDCS_DOMAIN") - client_id = os.getenv("IDCS_CLIENT_ID") - client_secret = os.getenv("IDCS_CLIENT_SECRET") - base_url = os.getenv("ORACLE_MCP_BASE_URL", "") - audience = os.getenv("IDCS_AUDIENCE") - if not all((domain, client_id, client_secret, audience, base_url)): - raise RuntimeError( - "HTTP transport requires IDCS authentication. " - "Set IDCS_DOMAIN, IDCS_CLIENT_ID, IDCS_CLIENT_SECRET, IDCS_AUDIENCE, " - "ORACLE_MCP_BASE_URL, ORACLE_MCP_HOST, and ORACLE_MCP_PORT." - ) - mcp.auth = OCIProvider( - config_url=f"https://{domain}/.well-known/openid-configuration", - client_id=client_id, - client_secret=client_secret, - audience=audience, - required_scopes=parse_scopes(os.getenv("IDCS_REQUIRED_SCOPES")) or _default_required_scopes(), - base_url=base_url, - ) - mcp.run(transport="http", host=host, port=int(port)) - - -if __name__ == "__main__": - main() diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tests/__init__.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tests/__init__.py deleted file mode 100644 index b8f69b97..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tests/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -""" -Copyright (c) 2026, Oracle and/or its affiliates. -Licensed under the Universal Permissive License v1.0 as shown at -https://oss.oracle.com/licenses/upl. -""" diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tests/test_auth_and_server.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tests/test_auth_and_server.py deleted file mode 100644 index df2b8192..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tests/test_auth_and_server.py +++ /dev/null @@ -1,167 +0,0 @@ -""" -Copyright (c) 2026, Oracle and/or its affiliates. -Licensed under the Universal Permissive License v1.0 as shown at -https://oss.oracle.com/licenses/upl. -""" - -from __future__ import annotations - -import asyncio -import logging -from types import SimpleNamespace - -from oracle.oci_oracle_db_observability.v1 import auth -from oracle.oci_oracle_db_observability.v1.oci_dbm_mcp_server import server, tools - -TEST_LOGGER = logging.getLogger(__name__) - - -def test_stdio_build_client_uses_dbm_user_agent(monkeypatch, tmp_path) -> None: - token_file = tmp_path / "security-token" - token_file.write_text("SECURITY_TOKEN", encoding="utf-8") - monkeypatch.delenv("ORACLE_MCP_HOST", raising=False) - monkeypatch.delenv("ORACLE_MCP_PORT", raising=False) - monkeypatch.setattr( - auth.oci.config, - "from_file", - lambda file_location, profile_name: { - "region": "us-phoenix-1", - "tenancy": "ocid1.tenancy.oc1..example", - "key_file": "/keys/oci.pem", - "security_token_file": str(token_file), - }, - ) - monkeypatch.setattr(auth.oci.signer, "load_private_key_from_file", lambda key_file: "private-key") - monkeypatch.setattr( - auth.oci.auth.signers, - "SecurityTokenSigner", - lambda token, private_key: f"{token}:{private_key}", - ) - - client = auth.build_client( - lambda config, **kwargs: SimpleNamespace(config=config, kwargs=kwargs), - project="oracle.oci-dbm-mcp-server", - version="1.0.0", - logger=TEST_LOGGER, - ) - - assert client.config["region"] == "us-phoenix-1" - assert client.config["tenancy"] == "ocid1.tenancy.oc1..example" - assert client.config["additional_user_agent"] == "oci-dbm/1.0.0" - assert client.kwargs["signer"] == "SECURITY_TOKEN:private-key" - - -def test_stdio_build_client_uses_api_key_config_without_explicit_signer(monkeypatch, tmp_path) -> None: - validate_calls = [] - key_file = tmp_path / "oci.pem" - monkeypatch.delenv("ORACLE_MCP_HOST", raising=False) - monkeypatch.delenv("ORACLE_MCP_PORT", raising=False) - monkeypatch.setattr( - auth.oci.config, - "from_file", - lambda file_location, profile_name: { - "region": "us-phoenix-1", - "tenancy": "ocid1.tenancy.oc1..example", - "user": "ocid1.user.oc1..example", - "fingerprint": "00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00", - "key_file": str(key_file), - }, - ) - monkeypatch.setattr(auth.oci.config, "validate_config", lambda config: validate_calls.append(config.copy())) - monkeypatch.setattr( - auth.oci.signer, - "load_private_key_from_file", - lambda key_file: (_ for _ in ()).throw(AssertionError("API-key auth should use the SDK signer")), - ) - - client = auth.build_client( - lambda config, **kwargs: SimpleNamespace(config=config, kwargs=kwargs), - project="oracle.oci-dbm-mcp-server", - version="1.0.0", - logger=TEST_LOGGER, - ) - - assert client.config["region"] == "us-phoenix-1" - assert client.config["additional_user_agent"] == "oci-dbm/1.0.0" - assert "signer" not in client.kwargs - assert validate_calls == [client.config] - - -def test_get_oci_config_uses_explicit_profile(monkeypatch) -> None: - calls = [] - monkeypatch.delenv("ORACLE_MCP_HOST", raising=False) - monkeypatch.delenv("ORACLE_MCP_PORT", raising=False) - monkeypatch.setenv("OCI_CONFIG_FILE", "custom-config") - monkeypatch.setenv("OCI_CONFIG_PROFILE", "MYPROFILE") - monkeypatch.setattr( - auth.oci.config, - "from_file", - lambda file_location, profile_name: calls.append((file_location, profile_name)) or {"region": "us-phoenix-1"}, - ) - - config = auth.get_oci_config("oracle.oci-dbm-mcp-server", "1.0.0") - - assert calls == [("custom-config", "MYPROFILE")] - assert config["additional_user_agent"] == "oci-dbm/1.0.0" - - -def test_get_oci_config_uses_default_profile(monkeypatch) -> None: - calls = [] - monkeypatch.delenv("ORACLE_MCP_HOST", raising=False) - monkeypatch.delenv("ORACLE_MCP_PORT", raising=False) - monkeypatch.delenv("OCI_CONFIG_FILE", raising=False) - monkeypatch.delenv("OCI_CONFIG_PROFILE", raising=False) - monkeypatch.setattr( - auth.oci.config, - "from_file", - lambda file_location, profile_name: calls.append((file_location, profile_name)) or {"region": "us-phoenix-1"}, - ) - - config = auth.get_oci_config("oracle.oci-dbm-mcp-server", "1.0.0") - - assert calls == [(auth.oci.config.DEFAULT_LOCATION, auth.oci.config.DEFAULT_PROFILE)] - assert config["additional_user_agent"] == "oci-dbm/1.0.0" - - -def test_http_build_client_uses_dbm_user_agent(monkeypatch) -> None: - monkeypatch.setenv("ORACLE_MCP_HOST", "127.0.0.1") - monkeypatch.setenv("ORACLE_MCP_PORT", "8888") - monkeypatch.setenv("OCI_REGION", "us-ashburn-1") - monkeypatch.setenv("IDCS_DOMAIN", "idcs.example.com") - monkeypatch.setenv("IDCS_CLIENT_ID", "client-id") - monkeypatch.setenv("IDCS_CLIENT_SECRET", "client-secret") - monkeypatch.setattr(auth, "get_access_token", lambda: SimpleNamespace(token="ACCESS_TOKEN")) - monkeypatch.setattr( - auth.oci.auth.signers, - "TokenExchangeSigner", - lambda token, domain, client_id, client_secret, region: "token-exchange-signer", - ) - - client = auth.build_client( - lambda config, **kwargs: SimpleNamespace(config=config, kwargs=kwargs), - project="oracle.oci-dbm-mcp-server", - version="1.0.0", - logger=TEST_LOGGER, - ) - - assert client.config["region"] == "us-ashburn-1" - assert client.config["additional_user_agent"] == "oci-dbm/1.0.0" - assert client.kwargs["signer"] == "token-exchange-signer" - - -def test_server_uses_dbm_default_http_scope() -> None: - assert server._default_required_scopes() == [ - "openid", - "profile", - "email", - "oci_mcp.dbm.invoke", - ] - - -def test_server_registers_expected_tools() -> None: - registered = asyncio.run(server.mcp.list_tools(run_middleware=False)) - - assert {tool.name for tool in registered} == tools.TOOL_NAMES - - for tool in registered: - assert tool.annotations == tools.TOOL_ANNOTATIONS[tool.name] diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tests/test_bootstrap.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tests/test_bootstrap.py deleted file mode 100644 index f21180ba..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tests/test_bootstrap.py +++ /dev/null @@ -1,130 +0,0 @@ -""" -Copyright (c) 2026, Oracle and/or its affiliates. -Licensed under the Universal Permissive License v1.0 as shown at -https://oss.oracle.com/licenses/upl. -""" - -from __future__ import annotations - -from typing import Any - -import oci - -from oracle.oci_oracle_db_observability.v1.oci_dbm_mcp_server import runtime, tools - - -class _Response: - def __init__( - self, - data: Any, - next_page: str | None = None, - headers: dict[str, str] | None = None, - ) -> None: - self.data = data - self.next_page = next_page - self.headers = headers or {} - - -def _oci_config(tenancy_id: str | None = "ocid1.tenancy.oc1..example") -> dict[str, str]: - config = {"region": "us-phoenix-1"} - if tenancy_id is not None: - config["tenancy"] = tenancy_id - return config - - -def _compartment(compartment_id: str = "ocid1.compartment.oc1..example") -> oci.identity.models.Compartment: - return oci.identity.models.Compartment( - id=compartment_id, - compartment_id="ocid1.tenancy.oc1..example", - name="Database", - description="Database compartment", - lifecycle_state="ACTIVE", - ) - - -def test_get_compartment_calls_identity_client(monkeypatch) -> None: - captured: dict[str, Any] = {} - - class FakeIdentityClient: - def get_compartment(self, **kwargs): - captured.update(kwargs) - return _Response(_compartment()) - - monkeypatch.setattr(runtime, "get_identity_client", lambda: FakeIdentityClient()) - - result = tools.get_compartment("ocid1.compartment.oc1..example") - - assert captured["compartment_id"] == "ocid1.compartment.oc1..example" - assert result["id"] == "ocid1.compartment.oc1..example" - assert result["name"] == "Database" - - -def test_list_compartments_defaults_to_tenancy_and_maps_collection(monkeypatch) -> None: - captured: dict[str, Any] = {} - monkeypatch.setattr(tools, "get_oci_config", lambda project, version: _oci_config()) - - class FakeIdentityClient: - def list_compartments(self, **kwargs): - captured.update(kwargs) - return _Response([_compartment()]) - - monkeypatch.setattr(runtime, "get_identity_client", lambda: FakeIdentityClient()) - - result = tools.list_compartments(name="Database") - - assert captured["compartment_id"] == "ocid1.tenancy.oc1..example" - assert captured["compartment_id_in_subtree"] is True - assert captured["access_level"] == "ACCESSIBLE" - assert captured["name"] == "Database" - assert captured["limit"] == 50 - assert result["count"] == 1 - assert result["items"][0]["id"] == "ocid1.compartment.oc1..example" - - -def test_list_compartments_auto_paginates(monkeypatch) -> None: - calls: list[dict[str, Any]] = [] - monkeypatch.setattr(tools, "get_oci_config", lambda project, version: _oci_config()) - - class FakeIdentityClient: - def list_compartments(self, page=None, limit=None, **kwargs): - calls.append({"page": page, "limit": limit, **kwargs}) - if page is None: - return _Response( - [_compartment("ocid1.compartment.oc1..one")], - next_page="page-2", - ) - return _Response([_compartment("ocid1.compartment.oc1..two")]) - - monkeypatch.setattr(runtime, "get_identity_client", lambda: FakeIdentityClient()) - - result = tools.list_compartments(limit=10) - - assert result["count"] == 2 - assert [item["id"] for item in result["items"]] == [ - "ocid1.compartment.oc1..one", - "ocid1.compartment.oc1..two", - ] - assert calls[0]["limit"] == 10 - assert calls[1]["page"] == "page-2" - assert calls[1]["limit"] == 9 - - -def test_list_compartments_allows_explicit_root_without_tenancy_config(monkeypatch) -> None: - captured: dict[str, Any] = {} - monkeypatch.setattr(tools, "get_oci_config", lambda project, version: _oci_config(tenancy_id=None)) - - class FakeIdentityClient: - def list_compartments(self, **kwargs): - captured.update(kwargs) - return _Response([_compartment()]) - - monkeypatch.setattr(runtime, "get_identity_client", lambda: FakeIdentityClient()) - - result = tools.list_compartments( - root_compartment_id="ocid1.compartment.oc1..example", - include_subtree=True, - ) - - assert captured["compartment_id"] == "ocid1.compartment.oc1..example" - assert captured["compartment_id_in_subtree"] is True - assert result["count"] == 1 diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tests/test_metadata_and_schemas.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tests/test_metadata_and_schemas.py deleted file mode 100644 index 5687be2d..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tests/test_metadata_and_schemas.py +++ /dev/null @@ -1,186 +0,0 @@ -""" -Copyright (c) 2026, Oracle and/or its affiliates. -Licensed under the Universal Permissive License v1.0 as shown at -https://oss.oracle.com/licenses/upl. -""" - -from __future__ import annotations - -import inspect -from typing import Any, get_args, get_origin, get_type_hints - -import pytest -from pydantic import ValidationError - -from oracle.oci_oracle_db_observability.v1.oci_dbm_mcp_server import metadata, models, tools - - -REMOVED_TOOL_NAMES = { - "add_data_files", - "add_managed_database_to_managed_database_group", - "clone_sql_tuning_task", - "configure_automatic_capture_filters", - "configure_automatic_spm_evolve_advisor_task", - "fetch_sql_tuning_set", - "implement_optimizer_statistics_advisor_recommendations", - "load_sql_plan_baselines_from_awr", - "load_sql_plan_baselines_from_cursor_cache", - "load_sql_tuning_set", - "modify_autonomous_database_management_feature", - "modify_database_management_feature", - "modify_external_container_database_management_feature", - "modify_pluggable_database_management_feature", - "modify_snapshot_settings", - "patch_cloud_db_system_discovery", - "patch_external_db_system_discovery", - "remove_data_file", - "remove_managed_database_from_managed_database_group", - "reset_database_parameters", - "resize_data_file", - "run_historic_addm", - "save_sql_tuning_set_as", - "start_sql_tuning_task", - "test_named_credential", - "test_preferred_credential", - "validate_basic_filter", - # DBM MySQL/HeatWave tools removed because DBM MySQL support is deprecated. - "change_mysql_database_management_type", - "check_external_my_sql_database_connector_connection_status", - "create_external_my_sql_database", - "create_external_my_sql_database_connector", - "disable_external_my_sql_database_management", - "enable_external_my_sql_database_management", - "get_binary_log_information", - "get_external_my_sql_database", - "get_external_my_sql_database_connector", - "get_general_replication_information", - "get_heat_wave_fleet_metric", - "get_managed_my_sql_database", - "get_my_sql_fleet_metric", - "get_my_sql_query_details", - "list_external_my_sql_databases", - "list_high_availability_members", - "list_inbound_replications", - "list_managed_my_sql_database_configuration_data", - "list_managed_my_sql_database_sql_data", - "list_managed_my_sql_databases", - "list_my_sql_database_connectors", - "list_my_sql_digest_errors", - "list_outbound_replications", - "summarize_managed_my_sql_database_availability_metrics", - "update_external_mysql_database", - "update_external_mysql_database_connector", -} - - -def test_expected_tool_metadata_exposes_runtime_tool_sets() -> None: - assert len(metadata.INCLUDED_METHOD_NAMES) == 266 - assert len(metadata.REQUEST_MODEL_TYPES) == 90 - assert len(tools.TOOL_NAMES) == 268 - assert tools.TOOL_NAMES == metadata.TOOL_NAMES - assert metadata.TOOL_NAMES == frozenset(metadata.INCLUDED_METHOD_NAMES) | tools.BOOTSTRAP_TOOL_NAMES - assert REMOVED_TOOL_NAMES.isdisjoint(metadata.INCLUDED_METHOD_NAMES) - assert REMOVED_TOOL_NAMES.isdisjoint(tools.TOOL_NAMES) - assert REMOVED_TOOL_NAMES.isdisjoint(tools.TOOL_DESCRIPTIONS) - assert REMOVED_TOOL_NAMES.isdisjoint(metadata.METHOD_CLIENTS) - assert all(not name.startswith("delete_") for name in metadata.INCLUDED_METHOD_NAMES) - assert all(not name.startswith("drop_") for name in metadata.INCLUDED_METHOD_NAMES) - - -def test_tool_descriptions_do_not_duplicate_mutability_metadata() -> None: - assert len(metadata.MUTABLE_METHOD_NAMES) == 97 - - for description in tools.TOOL_DESCRIPTIONS.values(): - assert "WARNING:" not in description - - -def test_tool_annotations_match_mutability() -> None: - assert set(tools.TOOL_ANNOTATIONS) == tools.TOOL_NAMES - - for name, annotations in tools.TOOL_ANNOTATIONS.items(): - is_mutable = name in tools.MUTABLE_TOOL_NAMES - assert annotations.title == name.replace("_", " ").title() - assert annotations.readOnlyHint is not is_mutable - assert annotations.destructiveHint is is_mutable - assert annotations.idempotentHint is not is_mutable - assert annotations.openWorldHint is True - - -def test_schema_fields_include_descriptions_aliases_and_literals() -> None: - field = models.ManagedDatabase.model_fields["database_type"] - - assert field.is_required() - assert field.alias == "databaseType" - assert "type of Oracle Database installation" in (field.description or "") - assert "EXTERNAL_SIDB" in get_args(field.annotation) - - -def test_schema_fields_include_documented_constraints() -> None: - parameter = inspect.signature(tools.list_managed_databases).parameters["limit"] - constraints = {item.__class__.__name__: item for item in parameter.default.metadata} - - assert parameter.default.description.startswith("For list pagination.") - assert constraints["Ge"].ge == 1 - assert constraints["Le"].le == 1000 - - -def test_request_body_parameters_accept_dict_or_generated_model() -> None: - annotation = get_type_hints( - tools.create_job, - vars(tools), - vars(tools), - )["create_job_details"] - dict_arg, model_arg = get_args(annotation) - - assert get_origin(dict_arg) is dict - assert get_args(dict_arg) == (str, Any) - assert model_arg is models.CreateJobDetails - - -def test_tool_response_annotations_are_generic() -> None: - for name in tools.TOOL_NAMES: - annotation = get_type_hints(getattr(tools, name), vars(tools), vars(tools))["return"] - assert annotation is Any - - -def test_tools_do_not_expose_skipped_sdk_transport_parameters() -> None: - skipped = { - "allow_control_chars", - "buffer_limit", - "defined_tag_equals", - "defined_tag_exists", - "enable_strict_url_encoding", - "freeform_tag_equals", - "freeform_tag_exists", - "if_match", - "opc_request_id", - "opc_retry_token", - "page", - "retry_strategy", - } - - for name in metadata.INCLUDED_METHOD_NAMES: - assert skipped.isdisjoint(inspect.signature(getattr(tools, name)).parameters) - - -def test_request_models_do_not_expose_tag_mutation_fields() -> None: - request_tag_fields = {"defined_tags", "freeform_tags", "system_tags", "tag_filters", "match_rule"} - - assert request_tag_fields.isdisjoint(models.CreateManagedDatabaseGroupDetails.model_fields) - assert request_tag_fields.isdisjoint(models.UpdateManagedDatabaseGroupDetails.model_fields) - assert "defined_tags" in models.ManagedDatabaseGroup.model_fields - - with pytest.raises(ValidationError): - models.CreateManagedDatabaseGroupDetails( - name="GROUP1", - compartment_id="ocid1.compartment.oc1..example", - freeform_tags={"owner": "dbm"}, - ) - - -def test_schema_named_sdk_field_uses_non_shadowing_public_name() -> None: - fields = models.SqlInSqlTuningSet.model_fields - - assert "schema_name" in fields - assert "schema" not in fields - assert fields["schema_name"].alias == "schema" diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tests/test_runtime.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tests/test_runtime.py deleted file mode 100644 index 2da6a83d..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tests/test_runtime.py +++ /dev/null @@ -1,294 +0,0 @@ -""" -Copyright (c) 2026, Oracle and/or its affiliates. -Licensed under the Universal Permissive License v1.0 as shown at -https://oss.oracle.com/licenses/upl. -""" - -from __future__ import annotations - -from datetime import UTC, datetime -from typing import Any - -import oci - -from oracle.oci_oracle_db_observability.v1.oci_dbm_mcp_server import models, runtime, tools - - -class _Response: - def __init__( - self, - data: Any, - next_page: str | None = None, - headers: dict[str, str] | None = None, - ) -> None: - self.data = data - self.next_page = next_page - self.headers = headers or {} - - -def _managed_database_summary(suffix: str) -> oci.database_management.models.ManagedDatabaseSummary: - return oci.database_management.models.ManagedDatabaseSummary( - id=f"ocid1.manageddatabase.oc1..{suffix}", - compartment_id="ocid1.compartment.oc1..example", - name=f"DB{suffix}", - database_type="EXTERNAL_SIDB", - database_sub_type="NON_CDB", - is_cluster=False, - time_created=datetime(2026, 1, 1, tzinfo=UTC), - ) - - -def _alert_log_summary(suffix: str) -> oci.database_management.models.AlertLogSummary: - return oci.database_management.models.AlertLogSummary( - message_level="CRITICAL", - message_type="ERROR", - message_content=f"alert {suffix}", - ) - - -def _sql_tuning_set_summary(suffix: str) -> oci.database_management.models.SqlTuningSetSummary: - return oci.database_management.models.SqlTuningSetSummary( - name=f"STS{suffix}", - owner="SYS", - ) - - -def test_create_tool_converts_pydantic_model_to_sdk_model(monkeypatch) -> None: - captured: dict[str, Any] = {} - - class FakeDbManagementClient: - def create_managed_database_group(self, **kwargs): - captured.update(kwargs) - return _Response(None) - - monkeypatch.setitem(runtime.CLIENT_GETTERS, "DbManagementClient", lambda: FakeDbManagementClient()) - - result = tools.create_managed_database_group( - create_managed_database_group_details=models.CreateManagedDatabaseGroupDetails( - name="GROUP1", - compartment_id="ocid1.compartment.oc1..example", - ) - ) - - details = captured["create_managed_database_group_details"] - assert result is None - assert isinstance(details, oci.database_management.models.CreateManagedDatabaseGroupDetails) - assert details.name == "GROUP1" - assert details.compartment_id == "ocid1.compartment.oc1..example" - - -def test_create_job_accepts_polymorphic_dict_request(monkeypatch) -> None: - captured: dict[str, Any] = {} - - class FakeDbManagementClient: - def create_job(self, **kwargs): - captured.update(kwargs) - return _Response(None) - - monkeypatch.setitem(runtime.CLIENT_GETTERS, "DbManagementClient", lambda: FakeDbManagementClient()) - - result = tools.create_job( - create_job_details={ - "name": "JOB1", - "compartmentId": "ocid1.compartment.oc1..example", - "managedDatabaseId": "ocid1.manageddatabase.oc1..example", - "scheduleType": "IMMEDIATE", - "jobType": "SQL", - "operationType": "EXECUTE_SQL", - "sqlText": "select 1 from dual", - } - ) - - details = captured["create_job_details"] - assert result is None - assert isinstance(details, oci.database_management.models.CreateSqlJobDetails) - assert details.job_type == "SQL" - assert details.operation_type == "EXECUTE_SQL" - assert details.sql_text == "select 1 from dual" - - -def test_update_tablespace_converts_nested_polymorphic_secret_credential(monkeypatch) -> None: - captured: dict[str, Any] = {} - - class FakeDbManagementClient: - def update_tablespace(self, **kwargs): - captured.update(kwargs) - return _Response(None) - - monkeypatch.setitem(runtime.CLIENT_GETTERS, "DbManagementClient", lambda: FakeDbManagementClient()) - - result = tools.update_tablespace( - managed_database_id="ocid1.manageddatabase.oc1..example", - tablespace_name="USERS", - update_tablespace_details={ - "credentialDetails": { - "tablespaceAdminCredentialType": "SECRET", - "username": "SYS", - "role": "SYSDBA", - "passwordSecretId": "ocid1.vaultsecret.oc1..example", - }, - "name": "USERS_NEW", - }, - ) - - details = captured["update_tablespace_details"] - assert result is None - assert isinstance(details, oci.database_management.models.UpdateTablespaceDetails) - assert isinstance( - details.credential_details, - oci.database_management.models.TablespaceAdminSecretCredentialDetails, - ) - assert details.credential_details.password_secret_id == "ocid1.vaultsecret.oc1..example" - assert details.name == "USERS_NEW" - - -def test_diagnosability_tool_routes_to_diagnosability_client(monkeypatch) -> None: - captured: dict[str, Any] = {} - - class FakeDiagnosabilityClient: - def list_alert_logs(self, **kwargs): - captured.update(kwargs) - return _Response(None) - - monkeypatch.setitem(runtime.CLIENT_GETTERS, "DiagnosabilityClient", lambda: FakeDiagnosabilityClient()) - - result = tools.list_alert_logs( - managed_database_id="ocid1.manageddatabase.oc1..example", - level_filter="CRITICAL", - limit=10, - ) - - assert result is None - assert captured["managed_database_id"] == "ocid1.manageddatabase.oc1..example" - assert captured["level_filter"] == "CRITICAL" - assert captured["limit"] == 10 - - -def test_db_management_tool_auto_paginates_collection(monkeypatch) -> None: - calls: list[dict[str, Any]] = [] - - class FakeDbManagementClient: - def list_managed_databases(self, page=None, limit=None, **kwargs): - calls.append({"page": page, "limit": limit, **kwargs}) - if page is None: - return _Response( - oci.database_management.models.ManagedDatabaseCollection( - items=[_managed_database_summary("one")] - ), - next_page="page-2", - ) - return _Response( - oci.database_management.models.ManagedDatabaseCollection( - items=[_managed_database_summary("two")] - ) - ) - - monkeypatch.setitem(runtime.CLIENT_GETTERS, "DbManagementClient", lambda: FakeDbManagementClient()) - - result = tools.list_managed_databases( - compartment_id="ocid1.compartment.oc1..example", - limit=10, - ) - - assert [item["id"] for item in result["items"]] == [ - "ocid1.manageddatabase.oc1..one", - "ocid1.manageddatabase.oc1..two", - ] - assert calls[0]["limit"] == 10 - assert calls[1]["page"] == "page-2" - assert calls[1]["limit"] == 9 - - -def test_diagnosability_tool_auto_paginates_header_fallback(monkeypatch) -> None: - calls: list[dict[str, Any]] = [] - - class FakeDiagnosabilityClient: - def list_alert_logs(self, page=None, limit=None, **kwargs): - calls.append({"page": page, "limit": limit, **kwargs}) - if page is None: - return _Response( - oci.database_management.models.AlertLogCollection( - managed_database_id="ocid1.manageddatabase.oc1..example", - items=[_alert_log_summary("one")], - ), - headers={"opc-next-page": "page-2"}, - ) - return _Response( - oci.database_management.models.AlertLogCollection( - managed_database_id="ocid1.manageddatabase.oc1..example", - items=[_alert_log_summary("two")], - ) - ) - - monkeypatch.setitem(runtime.CLIENT_GETTERS, "DiagnosabilityClient", lambda: FakeDiagnosabilityClient()) - - result = tools.list_alert_logs( - managed_database_id="ocid1.manageddatabase.oc1..example", - limit=10, - ) - - assert [item["message_content"] for item in result["items"]] == ["alert one", "alert two"] - assert calls[1]["page"] == "page-2" - assert calls[1]["limit"] == 9 - - - - -def test_sql_tuning_tool_routes_to_sql_tuning_client(monkeypatch) -> None: - captured: dict[str, Any] = {} - - class FakeSqlTuningClient: - def create_sql_tuning_set(self, **kwargs): - captured.update(kwargs) - return _Response(None) - - monkeypatch.setitem(runtime.CLIENT_GETTERS, "SqlTuningClient", lambda: FakeSqlTuningClient()) - - result = tools.create_sql_tuning_set( - managed_database_id="ocid1.manageddatabase.oc1..example", - create_sql_tuning_set_details=models.CreateSqlTuningSetDetails(name="STS1"), - ) - - details = captured["create_sql_tuning_set_details"] - assert result is None - assert captured["managed_database_id"] == "ocid1.manageddatabase.oc1..example" - assert isinstance(details, oci.database_management.models.CreateSqlTuningSetDetails) - assert details.name == "STS1" - - -def test_sql_tuning_list_tool_routes_and_paginates(monkeypatch) -> None: - calls: list[dict[str, Any]] = [] - - class FakeSqlTuningClient: - def list_sql_tuning_sets(self, page=None, limit=None, **kwargs): - calls.append({"page": page, "limit": limit, **kwargs}) - if page is None: - return _Response( - oci.database_management.models.SqlTuningSetCollection( - managed_database_id="ocid1.manageddatabase.oc1..example", - items=[_sql_tuning_set_summary("1")], - ), - next_page="page-2", - ) - return _Response( - oci.database_management.models.SqlTuningSetCollection( - managed_database_id="ocid1.manageddatabase.oc1..example", - items=[_sql_tuning_set_summary("2")], - ) - ) - - monkeypatch.setitem(runtime.CLIENT_GETTERS, "SqlTuningClient", lambda: FakeSqlTuningClient()) - - result = tools.list_sql_tuning_sets( - managed_database_id="ocid1.manageddatabase.oc1..example", - limit=10, - ) - - assert [item["name"] for item in result["items"]] == ["STS1", "STS2"] - assert calls[0]["managed_database_id"] == "ocid1.manageddatabase.oc1..example" - assert calls[1]["page"] == "page-2" - assert calls[1]["limit"] == 9 - - -def test_perfhub_client_route_is_absent() -> None: - assert "PerfhubClient" not in runtime.CLIENT_GETTERS diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tools.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tools.py deleted file mode 100644 index 65ee1f1d..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_dbm_mcp_server/tools.py +++ /dev/null @@ -1,4383 +0,0 @@ -""" -Copyright (c) 2026, Oracle and/or its affiliates. -Licensed under the Universal Permissive License v1.0 as shown at - -""" - -from __future__ import annotations - -from datetime import datetime -from typing import Any, Literal - -from mcp.types import ToolAnnotations -from pydantic import Field - -from oracle.oci_oracle_db_observability.v1.auth import get_oci_config - -from. import __project__, __version__ -from. import models -from.metadata import BOOTSTRAP_TOOL_NAMES, MUTABLE_TOOL_NAMES, TOOL_DESCRIPTIONS, TOOL_NAMES -from.models import * # noqa: F403 -from.mcp import mcp -from.runtime import invoke_dbm, invoke_identity, normalize_tool_value - - -def _tool_title(name: str) -> str: - return name.replace("_", " ").title() - - -def _tool_annotations(name: str) -> ToolAnnotations: - is_mutable = name in MUTABLE_TOOL_NAMES - return ToolAnnotations( - title=_tool_title(name), - readOnlyHint=not is_mutable, - destructiveHint=is_mutable, - idempotentHint=not is_mutable, - openWorldHint=True,) - -TOOL_ANNOTATIONS = {name: _tool_annotations(name) for name in TOOL_NAMES} - - -def _require_tenancy_id() -> str: - config = get_oci_config(__project__, __version__) - tenancy_id = config.get("tenancy") - if not tenancy_id: - raise ValueError("Configured OCI authentication context is missing tenancy.") - return tenancy_id - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_compartment"], - annotations=TOOL_ANNOTATIONS["get_compartment"],) -def get_compartment( - compartment_id: str = Field(..., description="The compartment OCID."),) -> Any: - """Get a compartment by OCID.""" - - compartment_id = normalize_tool_value(compartment_id) - if not compartment_id: - raise ValueError("compartment_id is required.") - - result = invoke_identity("get_compartment", compartment_id=compartment_id) - if result is None: - raise ValueError("identity.get_compartment returned an empty response payload.") - return result - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_compartments"], - annotations=TOOL_ANNOTATIONS["list_compartments"],) -def list_compartments( - root_compartment_id: str | None = Field(None, description="The root compartment OCID. Defaults to the configured tenancy OCID."), - include_subtree: bool = Field(True, description="Whether to include subcompartments."), - access_level: models.CompartmentAccessLevel = Field("ACCESSIBLE", description="Compartment visibility filter: ANY or ACCESSIBLE."), - name: str | None = Field(None, description="Optional exact compartment name filter."), - lifecycle_state: models.CompartmentLifecycleState | None = Field(None, description="Optional compartment lifecycle state filter."), - limit: int = Field(50, description="Maximum number of compartments to return.", ge=1, le=1000),) -> Any: - """List compartments from a root compartment.""" - - root_compartment_id = normalize_tool_value(root_compartment_id) - include_subtree = normalize_tool_value(include_subtree) - access_level = normalize_tool_value(access_level) - name = normalize_tool_value(name) - lifecycle_state = normalize_tool_value(lifecycle_state) - limit = normalize_tool_value(limit) - - resolved_root_compartment_id = root_compartment_id or _require_tenancy_id() - - result = invoke_identity( - "list_compartments", - compartment_id=resolved_root_compartment_id, - compartment_id_in_subtree=include_subtree, - access_level=access_level, - name=name, - lifecycle_state=lifecycle_state, - limit=limit,) - if result is None: - raise ValueError("identity.list_compartments returned an empty response payload.") - return {"items": result, "count": len(result)} - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["addm_tasks"], - annotations=TOOL_ANNOTATIONS["addm_tasks"],) -def addm_tasks( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - time_start: datetime = Field(..., description='The beginning of the time range to search for ADDM tasks as defined by date-time RFC3339 format.'), - time_end: datetime = Field(..., description='The end of the time range to search for ADDM tasks as defined by date-time RFC3339 format.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['TASK_NAME', 'TASK_ID', 'DESCRIPTION', 'DB_USER', 'STATUS', 'TIME_CREATED', 'BEGIN_TIME', 'END_TIME'] | None = Field(None, description='The option to sort the list of ADDM tasks.\n\nAllowed values are: "TASK_NAME", "TASK_ID", "DESCRIPTION", "DB_USER", "STATUS", "TIME_CREATED", "BEGIN_TIME", "END_TIME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Descending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'addm_tasks', - managed_database_id=managed_database_id, - time_start=time_start, - time_end=time_end, - limit=limit, - sort_by=sort_by, - sort_order=sort_order, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["change_cloud_exadata_infrastructure_compartment"], - annotations=TOOL_ANNOTATIONS["change_cloud_exadata_infrastructure_compartment"],) -def change_cloud_exadata_infrastructure_compartment( - cloud_exadata_infrastructure_id: str = Field(..., description='The OCID of the Exadata infrastructure.'), - change_cloud_exadata_infrastructure_compartment_details: dict[str, Any] | ChangeCloudExadataInfrastructureCompartmentDetails = Field(..., description='The details required to move the Exadata infrastructure from one compartment to another.'),) -> Any: - return invoke_dbm( - 'change_cloud_exadata_infrastructure_compartment', - cloud_exadata_infrastructure_id=cloud_exadata_infrastructure_id, - change_cloud_exadata_infrastructure_compartment_details=change_cloud_exadata_infrastructure_compartment_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["change_database_parameters"], - annotations=TOOL_ANNOTATIONS["change_database_parameters"],) -def change_database_parameters( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - change_database_parameters_details: dict[str, Any] | ChangeDatabaseParametersDetails = Field(..., description='The details required to change database parameter values.'),) -> Any: - return invoke_dbm( - 'change_database_parameters', - managed_database_id=managed_database_id, - change_database_parameters_details=change_database_parameters_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["change_db_management_private_endpoint_compartment"], - annotations=TOOL_ANNOTATIONS["change_db_management_private_endpoint_compartment"],) -def change_db_management_private_endpoint_compartment( - db_management_private_endpoint_id: str = Field(..., description='The OCID of the Database Management private endpoint.'), - change_db_management_private_endpoint_compartment_details: dict[str, Any] | ChangeDbManagementPrivateEndpointCompartmentDetails = Field(..., description='The details used to move the Database Management private endpoint to another compartment.'),) -> Any: - return invoke_dbm( - 'change_db_management_private_endpoint_compartment', - db_management_private_endpoint_id=db_management_private_endpoint_id, - change_db_management_private_endpoint_compartment_details=change_db_management_private_endpoint_compartment_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["change_external_db_system_compartment"], - annotations=TOOL_ANNOTATIONS["change_external_db_system_compartment"],) -def change_external_db_system_compartment( - external_db_system_id: str = Field(..., description='The OCID of the external DB system.'), - change_external_db_system_compartment_details: dict[str, Any] | ChangeExternalDbSystemCompartmentDetails = Field(..., description='The OCID of the compartment to which the external DB system should be moved.'),) -> Any: - return invoke_dbm( - 'change_external_db_system_compartment', - external_db_system_id=external_db_system_id, - change_external_db_system_compartment_details=change_external_db_system_compartment_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["change_external_exadata_infrastructure_compartment"], - annotations=TOOL_ANNOTATIONS["change_external_exadata_infrastructure_compartment"],) -def change_external_exadata_infrastructure_compartment( - external_exadata_infrastructure_id: str = Field(..., description='The OCID of the Exadata infrastructure.'), - change_external_exadata_infrastructure_compartment_details: dict[str, Any] | ChangeExternalExadataInfrastructureCompartmentDetails = Field(..., description='The details required to move the Exadata infrastructure from one compartment to another.'),) -> Any: - return invoke_dbm( - 'change_external_exadata_infrastructure_compartment', - external_exadata_infrastructure_id=external_exadata_infrastructure_id, - change_external_exadata_infrastructure_compartment_details=change_external_exadata_infrastructure_compartment_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["change_job_compartment"], - annotations=TOOL_ANNOTATIONS["change_job_compartment"],) -def change_job_compartment( - job_id: str = Field(..., description='The identifier of the job.'), - change_job_compartment_details: dict[str, Any] | ChangeJobCompartmentDetails = Field(..., description='The OCID of the compartment to move the job to.'),) -> Any: - return invoke_dbm( - 'change_job_compartment', - job_id=job_id, - change_job_compartment_details=change_job_compartment_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["change_managed_database_group_compartment"], - annotations=TOOL_ANNOTATIONS["change_managed_database_group_compartment"],) -def change_managed_database_group_compartment( - managed_database_group_id: str = Field(..., description='The OCID of the Managed Database Group.'), - change_managed_database_group_compartment_details: dict[str, Any] | ChangeManagedDatabaseGroupCompartmentDetails = Field(..., description='The OCID of the compartment to move the Managed Database Group to.'),) -> Any: - return invoke_dbm( - 'change_managed_database_group_compartment', - managed_database_group_id=managed_database_group_id, - change_managed_database_group_compartment_details=change_managed_database_group_compartment_details,) - - - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["change_named_credential_compartment"], - annotations=TOOL_ANNOTATIONS["change_named_credential_compartment"],) -def change_named_credential_compartment( - named_credential_id: str = Field(..., description='The OCID of the named credential.'), - change_named_credential_compartment_details: dict[str, Any] | ChangeNamedCredentialCompartmentDetails = Field(..., description='The OCID of the compartment to which the named credential should be moved.'),) -> Any: - return invoke_dbm( - 'change_named_credential_compartment', - named_credential_id=named_credential_id, - change_named_credential_compartment_details=change_named_credential_compartment_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["change_plan_retention"], - annotations=TOOL_ANNOTATIONS["change_plan_retention"],) -def change_plan_retention( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - change_plan_retention_details: dict[str, Any] | ChangePlanRetentionDetails = Field(..., description='The details required to change the plan retention period.'),) -> Any: - return invoke_dbm( - 'change_plan_retention', - managed_database_id=managed_database_id, - change_plan_retention_details=change_plan_retention_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["change_space_budget"], - annotations=TOOL_ANNOTATIONS["change_space_budget"],) -def change_space_budget( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - change_space_budget_details: dict[str, Any] | ChangeSpaceBudgetDetails = Field(..., description='The details required to change the disk space limit for the SQL Management Base.'),) -> Any: - return invoke_dbm( - 'change_space_budget', - managed_database_id=managed_database_id, - change_space_budget_details=change_space_budget_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["change_sql_plan_baselines_attributes"], - annotations=TOOL_ANNOTATIONS["change_sql_plan_baselines_attributes"],) -def change_sql_plan_baselines_attributes( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - change_sql_plan_baselines_attributes_details: dict[str, Any] | ChangeSqlPlanBaselinesAttributesDetails = Field(..., description='The details required to change SQL plan baseline attributes.'),) -> Any: - return invoke_dbm( - 'change_sql_plan_baselines_attributes', - managed_database_id=managed_database_id, - change_sql_plan_baselines_attributes_details=change_sql_plan_baselines_attributes_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["check_cloud_db_system_connector_connection_status"], - annotations=TOOL_ANNOTATIONS["check_cloud_db_system_connector_connection_status"],) -def check_cloud_db_system_connector_connection_status( - cloud_db_system_connector_id: str = Field(..., description='The OCID of the cloud connector.'),) -> Any: - return invoke_dbm( - 'check_cloud_db_system_connector_connection_status', - cloud_db_system_connector_id=cloud_db_system_connector_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["check_cloud_exadata_storage_connector"], - annotations=TOOL_ANNOTATIONS["check_cloud_exadata_storage_connector"],) -def check_cloud_exadata_storage_connector( - cloud_exadata_storage_connector_id: str = Field(..., description='The OCID of the connector to the Exadata storage server.'),) -> Any: - return invoke_dbm( - 'check_cloud_exadata_storage_connector', - cloud_exadata_storage_connector_id=cloud_exadata_storage_connector_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["check_external_db_system_connector_connection_status"], - annotations=TOOL_ANNOTATIONS["check_external_db_system_connector_connection_status"],) -def check_external_db_system_connector_connection_status( - external_db_system_connector_id: str = Field(..., description='The OCID of the external connector.'),) -> Any: - return invoke_dbm( - 'check_external_db_system_connector_connection_status', - external_db_system_connector_id=external_db_system_connector_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["check_external_exadata_storage_connector"], - annotations=TOOL_ANNOTATIONS["check_external_exadata_storage_connector"],) -def check_external_exadata_storage_connector( - external_exadata_storage_connector_id: str = Field(..., description='The OCID of the connector to the Exadata storage server.'),) -> Any: - return invoke_dbm( - 'check_external_exadata_storage_connector', - external_exadata_storage_connector_id=external_exadata_storage_connector_id,) - - - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["create_cloud_db_system"], - annotations=TOOL_ANNOTATIONS["create_cloud_db_system"],) -def create_cloud_db_system( - create_cloud_db_system_details: dict[str, Any] | CreateCloudDbSystemDetails = Field(..., description='The details required to create an cloud DB system.'),) -> Any: - return invoke_dbm( - 'create_cloud_db_system', - create_cloud_db_system_details=create_cloud_db_system_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["create_cloud_db_system_connector"], - annotations=TOOL_ANNOTATIONS["create_cloud_db_system_connector"],) -def create_cloud_db_system_connector( - create_cloud_db_system_connector_details: dict[str, Any] | CreateCloudDbSystemConnectorDetails = Field(..., description='The details required to create an cloud connector.'),) -> Any: - return invoke_dbm( - 'create_cloud_db_system_connector', - create_cloud_db_system_connector_details=create_cloud_db_system_connector_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["create_cloud_db_system_discovery"], - annotations=TOOL_ANNOTATIONS["create_cloud_db_system_discovery"],) -def create_cloud_db_system_discovery( - create_cloud_db_system_discovery_details: dict[str, Any] | CreateCloudDbSystemDiscoveryDetails = Field(..., description='The details required to create an cloud DB system discovery.'),) -> Any: - return invoke_dbm( - 'create_cloud_db_system_discovery', - create_cloud_db_system_discovery_details=create_cloud_db_system_discovery_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["create_cloud_exadata_infrastructure"], - annotations=TOOL_ANNOTATIONS["create_cloud_exadata_infrastructure"],) -def create_cloud_exadata_infrastructure( - create_cloud_exadata_infrastructure_details: dict[str, Any] | CreateCloudExadataInfrastructureDetails = Field(..., description='The details required to create the managed Exadata infrastructure resources.'),) -> Any: - return invoke_dbm( - 'create_cloud_exadata_infrastructure', - create_cloud_exadata_infrastructure_details=create_cloud_exadata_infrastructure_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["create_cloud_exadata_storage_connector"], - annotations=TOOL_ANNOTATIONS["create_cloud_exadata_storage_connector"],) -def create_cloud_exadata_storage_connector( - create_cloud_exadata_storage_connector_details: dict[str, Any] | CreateCloudExadataStorageConnectorDetails = Field(..., description='The details required to add connections to the Exadata storage servers.'),) -> Any: - return invoke_dbm( - 'create_cloud_exadata_storage_connector', - create_cloud_exadata_storage_connector_details=create_cloud_exadata_storage_connector_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["create_db_management_private_endpoint"], - annotations=TOOL_ANNOTATIONS["create_db_management_private_endpoint"],) -def create_db_management_private_endpoint( - create_db_management_private_endpoint_details: dict[str, Any] | CreateDbManagementPrivateEndpointDetails = Field(..., description='Details used to create a new Database Management private endpoint.'),) -> Any: - return invoke_dbm( - 'create_db_management_private_endpoint', - create_db_management_private_endpoint_details=create_db_management_private_endpoint_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["create_external_db_system"], - annotations=TOOL_ANNOTATIONS["create_external_db_system"],) -def create_external_db_system( - create_external_db_system_details: dict[str, Any] | CreateExternalDbSystemDetails = Field(..., description='The details required to create an external DB system.'),) -> Any: - return invoke_dbm( - 'create_external_db_system', - create_external_db_system_details=create_external_db_system_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["create_external_db_system_connector"], - annotations=TOOL_ANNOTATIONS["create_external_db_system_connector"],) -def create_external_db_system_connector( - create_external_db_system_connector_details: dict[str, Any] | CreateExternalDbSystemConnectorDetails = Field(..., description='The details required to create an external connector.'),) -> Any: - return invoke_dbm( - 'create_external_db_system_connector', - create_external_db_system_connector_details=create_external_db_system_connector_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["create_external_db_system_discovery"], - annotations=TOOL_ANNOTATIONS["create_external_db_system_discovery"],) -def create_external_db_system_discovery( - create_external_db_system_discovery_details: dict[str, Any] | CreateExternalDbSystemDiscoveryDetails = Field(..., description='The details required to create an external DB system discovery.'),) -> Any: - return invoke_dbm( - 'create_external_db_system_discovery', - create_external_db_system_discovery_details=create_external_db_system_discovery_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["create_external_exadata_infrastructure"], - annotations=TOOL_ANNOTATIONS["create_external_exadata_infrastructure"],) -def create_external_exadata_infrastructure( - create_external_exadata_infrastructure_details: dict[str, Any] | CreateExternalExadataInfrastructureDetails = Field(..., description='The details required to create the managed Exadata infrastructure resources.'),) -> Any: - return invoke_dbm( - 'create_external_exadata_infrastructure', - create_external_exadata_infrastructure_details=create_external_exadata_infrastructure_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["create_external_exadata_storage_connector"], - annotations=TOOL_ANNOTATIONS["create_external_exadata_storage_connector"],) -def create_external_exadata_storage_connector( - create_external_exadata_storage_connector_details: dict[str, Any] | CreateExternalExadataStorageConnectorDetails = Field(..., description='The details required to add connections to the Exadata storage servers.'),) -> Any: - return invoke_dbm( - 'create_external_exadata_storage_connector', - create_external_exadata_storage_connector_details=create_external_exadata_storage_connector_details,) - - - - - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["create_job"], - annotations=TOOL_ANNOTATIONS["create_job"],) -def create_job( - create_job_details: dict[str, Any] | CreateJobDetails = Field(..., description='The details required to create a job.'),) -> Any: - return invoke_dbm( - 'create_job', - create_job_details=create_job_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["create_managed_database_group"], - annotations=TOOL_ANNOTATIONS["create_managed_database_group"],) -def create_managed_database_group( - create_managed_database_group_details: dict[str, Any] | CreateManagedDatabaseGroupDetails = Field(..., description='The details required to create a Managed Database Group.'),) -> Any: - return invoke_dbm( - 'create_managed_database_group', - create_managed_database_group_details=create_managed_database_group_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["create_named_credential"], - annotations=TOOL_ANNOTATIONS["create_named_credential"],) -def create_named_credential( - create_named_credential_details: dict[str, Any] | CreateNamedCredentialDetails = Field(..., description='The details required to create a named credential.'),) -> Any: - return invoke_dbm( - 'create_named_credential', - create_named_credential_details=create_named_credential_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["create_sql_tuning_set"], - annotations=TOOL_ANNOTATIONS["create_sql_tuning_set"],) -def create_sql_tuning_set( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - create_sql_tuning_set_details: dict[str, Any] | CreateSqlTuningSetDetails = Field(..., description='The details required to create a Sql tuning set.'),) -> Any: - return invoke_dbm( - 'create_sql_tuning_set', - managed_database_id=managed_database_id, - create_sql_tuning_set_details=create_sql_tuning_set_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["create_tablespace"], - annotations=TOOL_ANNOTATIONS["create_tablespace"],) -def create_tablespace( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - create_tablespace_details: dict[str, Any] | CreateTablespaceDetails = Field(..., description='The details required to create a tablespace.'),) -> Any: - return invoke_dbm( - 'create_tablespace', - managed_database_id=managed_database_id, - create_tablespace_details=create_tablespace_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["disable_automatic_initial_plan_capture"], - annotations=TOOL_ANNOTATIONS["disable_automatic_initial_plan_capture"],) -def disable_automatic_initial_plan_capture( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - disable_automatic_initial_plan_capture_details: dict[str, Any] | DisableAutomaticInitialPlanCaptureDetails = Field(..., description='The details required to disable automatic initial plan capture.'),) -> Any: - return invoke_dbm( - 'disable_automatic_initial_plan_capture', - managed_database_id=managed_database_id, - disable_automatic_initial_plan_capture_details=disable_automatic_initial_plan_capture_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["disable_automatic_spm_evolve_advisor_task"], - annotations=TOOL_ANNOTATIONS["disable_automatic_spm_evolve_advisor_task"],) -def disable_automatic_spm_evolve_advisor_task( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - disable_automatic_spm_evolve_advisor_task_details: dict[str, Any] | DisableAutomaticSpmEvolveAdvisorTaskDetails = Field(..., description='The details required to disable Automatic SPM Evolve Advisor task.'),) -> Any: - return invoke_dbm( - 'disable_automatic_spm_evolve_advisor_task', - managed_database_id=managed_database_id, - disable_automatic_spm_evolve_advisor_task_details=disable_automatic_spm_evolve_advisor_task_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["disable_autonomous_database_management_feature"], - annotations=TOOL_ANNOTATIONS["disable_autonomous_database_management_feature"],) -def disable_autonomous_database_management_feature( - autonomous_database_id: str = Field(..., description='The OCID of the Autonomous Database.'), - disable_autonomous_database_management_feature_details: dict[str, Any] | DisableAutonomousDatabaseManagementFeatureDetails = Field(..., description='The details required to disable a Database Management feature for an Autonomous Database.'),) -> Any: - return invoke_dbm( - 'disable_autonomous_database_management_feature', - autonomous_database_id=autonomous_database_id, - disable_autonomous_database_management_feature_details=disable_autonomous_database_management_feature_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["disable_cloud_db_system_database_management"], - annotations=TOOL_ANNOTATIONS["disable_cloud_db_system_database_management"],) -def disable_cloud_db_system_database_management( - cloud_db_system_id: str = Field(..., description='The OCID of the cloud DB system.'),) -> Any: - return invoke_dbm( - 'disable_cloud_db_system_database_management', - cloud_db_system_id=cloud_db_system_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["disable_cloud_db_system_stack_monitoring"], - annotations=TOOL_ANNOTATIONS["disable_cloud_db_system_stack_monitoring"],) -def disable_cloud_db_system_stack_monitoring( - cloud_db_system_id: str = Field(..., description='The OCID of the cloud DB system.'),) -> Any: - return invoke_dbm( - 'disable_cloud_db_system_stack_monitoring', - cloud_db_system_id=cloud_db_system_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["disable_cloud_exadata_infrastructure_management"], - annotations=TOOL_ANNOTATIONS["disable_cloud_exadata_infrastructure_management"],) -def disable_cloud_exadata_infrastructure_management( - cloud_exadata_infrastructure_id: str = Field(..., description='The OCID of the Exadata infrastructure.'),) -> Any: - return invoke_dbm( - 'disable_cloud_exadata_infrastructure_management', - cloud_exadata_infrastructure_id=cloud_exadata_infrastructure_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["disable_database_management_feature"], - annotations=TOOL_ANNOTATIONS["disable_database_management_feature"],) -def disable_database_management_feature( - database_id: str = Field(..., description='The OCID of the Database.'), - disable_database_management_feature_details: dict[str, Any] | DisableDatabaseManagementFeatureDetails = Field(..., description='The details required to disable a Database Management feature for an Oracle cloud database.'),) -> Any: - return invoke_dbm( - 'disable_database_management_feature', - database_id=database_id, - disable_database_management_feature_details=disable_database_management_feature_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["disable_external_container_database_management_feature"], - annotations=TOOL_ANNOTATIONS["disable_external_container_database_management_feature"],) -def disable_external_container_database_management_feature( - external_container_database_id: str = Field(..., description='The OCID of the external container database.'), - disable_external_container_database_management_feature_details: dict[str, Any] | DisableExternalContainerDatabaseManagementFeatureDetails = Field(..., description='The details required to disable a Database Management feature for an external container database.'),) -> Any: - return invoke_dbm( - 'disable_external_container_database_management_feature', - external_container_database_id=external_container_database_id, - disable_external_container_database_management_feature_details=disable_external_container_database_management_feature_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["disable_external_db_system_database_management"], - annotations=TOOL_ANNOTATIONS["disable_external_db_system_database_management"],) -def disable_external_db_system_database_management( - external_db_system_id: str = Field(..., description='The OCID of the external DB system.'),) -> Any: - return invoke_dbm( - 'disable_external_db_system_database_management', - external_db_system_id=external_db_system_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["disable_external_db_system_stack_monitoring"], - annotations=TOOL_ANNOTATIONS["disable_external_db_system_stack_monitoring"],) -def disable_external_db_system_stack_monitoring( - external_db_system_id: str = Field(..., description='The OCID of the external DB system.'),) -> Any: - return invoke_dbm( - 'disable_external_db_system_stack_monitoring', - external_db_system_id=external_db_system_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["disable_external_exadata_infrastructure_management"], - annotations=TOOL_ANNOTATIONS["disable_external_exadata_infrastructure_management"],) -def disable_external_exadata_infrastructure_management( - external_exadata_infrastructure_id: str = Field(..., description='The OCID of the Exadata infrastructure.'),) -> Any: - return invoke_dbm( - 'disable_external_exadata_infrastructure_management', - external_exadata_infrastructure_id=external_exadata_infrastructure_id,) - - - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["disable_external_non_container_database_management_feature"], - annotations=TOOL_ANNOTATIONS["disable_external_non_container_database_management_feature"],) -def disable_external_non_container_database_management_feature( - external_non_container_database_id: str = Field(..., description='The OCID of the external non-container database.'), - disable_external_non_container_database_management_feature_details: dict[str, Any] | DisableExternalNonContainerDatabaseManagementFeatureDetails = Field(..., description='The details required to disable a Database Management feature for an external non-container database.'),) -> Any: - return invoke_dbm( - 'disable_external_non_container_database_management_feature', - external_non_container_database_id=external_non_container_database_id, - disable_external_non_container_database_management_feature_details=disable_external_non_container_database_management_feature_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["disable_external_pluggable_database_management_feature"], - annotations=TOOL_ANNOTATIONS["disable_external_pluggable_database_management_feature"],) -def disable_external_pluggable_database_management_feature( - external_pluggable_database_id: str = Field(..., description='The OCID of the external pluggable database.'), - disable_external_pluggable_database_management_feature_details: dict[str, Any] | DisableExternalPluggableDatabaseManagementFeatureDetails = Field(..., description='The details required to disable a Database Management feature for an external pluggable database.'),) -> Any: - return invoke_dbm( - 'disable_external_pluggable_database_management_feature', - external_pluggable_database_id=external_pluggable_database_id, - disable_external_pluggable_database_management_feature_details=disable_external_pluggable_database_management_feature_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["disable_high_frequency_automatic_spm_evolve_advisor_task"], - annotations=TOOL_ANNOTATIONS["disable_high_frequency_automatic_spm_evolve_advisor_task"],) -def disable_high_frequency_automatic_spm_evolve_advisor_task( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - disable_high_frequency_automatic_spm_evolve_advisor_task_details: dict[str, Any] | DisableHighFrequencyAutomaticSpmEvolveAdvisorTaskDetails = Field(..., description='The details required to disable high frequency Automatic SPM Evolve Advisor task.'),) -> Any: - return invoke_dbm( - 'disable_high_frequency_automatic_spm_evolve_advisor_task', - managed_database_id=managed_database_id, - disable_high_frequency_automatic_spm_evolve_advisor_task_details=disable_high_frequency_automatic_spm_evolve_advisor_task_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["disable_pluggable_database_management_feature"], - annotations=TOOL_ANNOTATIONS["disable_pluggable_database_management_feature"],) -def disable_pluggable_database_management_feature( - pluggable_database_id: str = Field(..., description='The OCID of the Oracle cloud pluggable database.'), - disable_pluggable_database_management_feature_details: dict[str, Any] | DisablePluggableDatabaseManagementFeatureDetails = Field(..., description='The details required to disable a Database Management feature for an Oracle cloud pluggable database.'),) -> Any: - return invoke_dbm( - 'disable_pluggable_database_management_feature', - pluggable_database_id=pluggable_database_id, - disable_pluggable_database_management_feature_details=disable_pluggable_database_management_feature_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["disable_sql_plan_baselines_usage"], - annotations=TOOL_ANNOTATIONS["disable_sql_plan_baselines_usage"],) -def disable_sql_plan_baselines_usage( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - disable_sql_plan_baselines_usage_details: dict[str, Any] | DisableSqlPlanBaselinesUsageDetails = Field(..., description='The details required to disable SQL plan baseline usage.'),) -> Any: - return invoke_dbm( - 'disable_sql_plan_baselines_usage', - managed_database_id=managed_database_id, - disable_sql_plan_baselines_usage_details=disable_sql_plan_baselines_usage_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["discover_cloud_exadata_infrastructure"], - annotations=TOOL_ANNOTATIONS["discover_cloud_exadata_infrastructure"],) -def discover_cloud_exadata_infrastructure( - discover_cloud_exadata_infrastructure_details: dict[str, Any] | DiscoverCloudExadataInfrastructureDetails = Field(..., description='The details required to discover and monitor the Exadata infrastructure.'),) -> Any: - return invoke_dbm( - 'discover_cloud_exadata_infrastructure', - discover_cloud_exadata_infrastructure_details=discover_cloud_exadata_infrastructure_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["discover_external_exadata_infrastructure"], - annotations=TOOL_ANNOTATIONS["discover_external_exadata_infrastructure"],) -def discover_external_exadata_infrastructure( - discover_external_exadata_infrastructure_details: dict[str, Any] | DiscoverExternalExadataInfrastructureDetails = Field(..., description='The details required to discover and monitor the Exadata infrastructure.'),) -> Any: - return invoke_dbm( - 'discover_external_exadata_infrastructure', - discover_external_exadata_infrastructure_details=discover_external_exadata_infrastructure_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["enable_automatic_initial_plan_capture"], - annotations=TOOL_ANNOTATIONS["enable_automatic_initial_plan_capture"],) -def enable_automatic_initial_plan_capture( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - enable_automatic_initial_plan_capture_details: dict[str, Any] | EnableAutomaticInitialPlanCaptureDetails = Field(..., description='The details required to enable automatic initial plan capture.'),) -> Any: - return invoke_dbm( - 'enable_automatic_initial_plan_capture', - managed_database_id=managed_database_id, - enable_automatic_initial_plan_capture_details=enable_automatic_initial_plan_capture_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["enable_automatic_spm_evolve_advisor_task"], - annotations=TOOL_ANNOTATIONS["enable_automatic_spm_evolve_advisor_task"],) -def enable_automatic_spm_evolve_advisor_task( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - enable_automatic_spm_evolve_advisor_task_details: dict[str, Any] | EnableAutomaticSpmEvolveAdvisorTaskDetails = Field(..., description='The details required to enable Automatic SPM Evolve Advisor task.'),) -> Any: - return invoke_dbm( - 'enable_automatic_spm_evolve_advisor_task', - managed_database_id=managed_database_id, - enable_automatic_spm_evolve_advisor_task_details=enable_automatic_spm_evolve_advisor_task_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["enable_autonomous_database_management_feature"], - annotations=TOOL_ANNOTATIONS["enable_autonomous_database_management_feature"],) -def enable_autonomous_database_management_feature( - autonomous_database_id: str = Field(..., description='The OCID of the Autonomous Database.'), - enable_autonomous_database_management_feature_details: dict[str, Any] | EnableAutonomousDatabaseManagementFeatureDetails = Field(..., description='The details required to enable a Database Management feature for an Autonomous Database.'),) -> Any: - return invoke_dbm( - 'enable_autonomous_database_management_feature', - autonomous_database_id=autonomous_database_id, - enable_autonomous_database_management_feature_details=enable_autonomous_database_management_feature_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["enable_cloud_db_system_database_management"], - annotations=TOOL_ANNOTATIONS["enable_cloud_db_system_database_management"],) -def enable_cloud_db_system_database_management( - cloud_db_system_id: str = Field(..., description='The OCID of the cloud DB system.'), - enable_cloud_db_system_database_management_details: dict[str, Any] | EnableCloudDbSystemDatabaseManagementDetails = Field(..., description='The details required to enable Stack Monitoring for an cloud DB system.'),) -> Any: - return invoke_dbm( - 'enable_cloud_db_system_database_management', - cloud_db_system_id=cloud_db_system_id, - enable_cloud_db_system_database_management_details=enable_cloud_db_system_database_management_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["enable_cloud_db_system_stack_monitoring"], - annotations=TOOL_ANNOTATIONS["enable_cloud_db_system_stack_monitoring"],) -def enable_cloud_db_system_stack_monitoring( - cloud_db_system_id: str = Field(..., description='The OCID of the cloud DB system.'), - enable_cloud_db_system_stack_monitoring_details: dict[str, Any] | EnableCloudDbSystemStackMonitoringDetails = Field(..., description='The details required to enable Stack Monitoring for an cloud DB system.'),) -> Any: - return invoke_dbm( - 'enable_cloud_db_system_stack_monitoring', - cloud_db_system_id=cloud_db_system_id, - enable_cloud_db_system_stack_monitoring_details=enable_cloud_db_system_stack_monitoring_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["enable_cloud_exadata_infrastructure_management"], - annotations=TOOL_ANNOTATIONS["enable_cloud_exadata_infrastructure_management"],) -def enable_cloud_exadata_infrastructure_management( - cloud_exadata_infrastructure_id: str = Field(..., description='The OCID of the Exadata infrastructure.'), - enable_cloud_exadata_infrastructure_management_details: dict[str, Any] | EnableCloudExadataInfrastructureManagementDetails = Field(..., description='The details required to enable management for the Exadata infrastructure.'),) -> Any: - return invoke_dbm( - 'enable_cloud_exadata_infrastructure_management', - cloud_exadata_infrastructure_id=cloud_exadata_infrastructure_id, - enable_cloud_exadata_infrastructure_management_details=enable_cloud_exadata_infrastructure_management_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["enable_database_management_feature"], - annotations=TOOL_ANNOTATIONS["enable_database_management_feature"],) -def enable_database_management_feature( - database_id: str = Field(..., description='The OCID of the Database.'), - enable_database_management_feature_details: dict[str, Any] | EnableDatabaseManagementFeatureDetails = Field(..., description='The details required to enable a Database Management feature for an Oracle cloud database.'),) -> Any: - return invoke_dbm( - 'enable_database_management_feature', - database_id=database_id, - enable_database_management_feature_details=enable_database_management_feature_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["enable_external_container_database_management_feature"], - annotations=TOOL_ANNOTATIONS["enable_external_container_database_management_feature"],) -def enable_external_container_database_management_feature( - external_container_database_id: str = Field(..., description='The OCID of the external container database.'), - enable_external_container_database_management_feature_details: dict[str, Any] | EnableExternalContainerDatabaseManagementFeatureDetails = Field(..., description='The details required to enable a Database Management feature for an external container database.'),) -> Any: - return invoke_dbm( - 'enable_external_container_database_management_feature', - external_container_database_id=external_container_database_id, - enable_external_container_database_management_feature_details=enable_external_container_database_management_feature_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["enable_external_db_system_database_management"], - annotations=TOOL_ANNOTATIONS["enable_external_db_system_database_management"],) -def enable_external_db_system_database_management( - external_db_system_id: str = Field(..., description='The OCID of the external DB system.'), - enable_external_db_system_database_management_details: dict[str, Any] | EnableExternalDbSystemDatabaseManagementDetails = Field(..., description='The details required to enable Database Management for an external DB system.'),) -> Any: - return invoke_dbm( - 'enable_external_db_system_database_management', - external_db_system_id=external_db_system_id, - enable_external_db_system_database_management_details=enable_external_db_system_database_management_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["enable_external_db_system_stack_monitoring"], - annotations=TOOL_ANNOTATIONS["enable_external_db_system_stack_monitoring"],) -def enable_external_db_system_stack_monitoring( - external_db_system_id: str = Field(..., description='The OCID of the external DB system.'), - enable_external_db_system_stack_monitoring_details: dict[str, Any] | EnableExternalDbSystemStackMonitoringDetails = Field(..., description='The details required to enable Stack Monitoring for an external DB system.'),) -> Any: - return invoke_dbm( - 'enable_external_db_system_stack_monitoring', - external_db_system_id=external_db_system_id, - enable_external_db_system_stack_monitoring_details=enable_external_db_system_stack_monitoring_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["enable_external_exadata_infrastructure_management"], - annotations=TOOL_ANNOTATIONS["enable_external_exadata_infrastructure_management"],) -def enable_external_exadata_infrastructure_management( - external_exadata_infrastructure_id: str = Field(..., description='The OCID of the Exadata infrastructure.'), - enable_external_exadata_infrastructure_management_details: dict[str, Any] | EnableExternalExadataInfrastructureManagementDetails = Field(..., description='The details required to enable management for the Exadata infrastructure.'),) -> Any: - return invoke_dbm( - 'enable_external_exadata_infrastructure_management', - external_exadata_infrastructure_id=external_exadata_infrastructure_id, - enable_external_exadata_infrastructure_management_details=enable_external_exadata_infrastructure_management_details,) - - - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["enable_external_non_container_database_management_feature"], - annotations=TOOL_ANNOTATIONS["enable_external_non_container_database_management_feature"],) -def enable_external_non_container_database_management_feature( - external_non_container_database_id: str = Field(..., description='The OCID of the external non-container database.'), - enable_external_non_container_database_management_feature_details: dict[str, Any] | EnableExternalNonContainerDatabaseManagementFeatureDetails = Field(..., description='The details required to enable a Database Management feature for an external non-container database.'),) -> Any: - return invoke_dbm( - 'enable_external_non_container_database_management_feature', - external_non_container_database_id=external_non_container_database_id, - enable_external_non_container_database_management_feature_details=enable_external_non_container_database_management_feature_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["enable_external_pluggable_database_management_feature"], - annotations=TOOL_ANNOTATIONS["enable_external_pluggable_database_management_feature"],) -def enable_external_pluggable_database_management_feature( - external_pluggable_database_id: str = Field(..., description='The OCID of the external pluggable database.'), - enable_external_pluggable_database_management_feature_details: dict[str, Any] | EnableExternalPluggableDatabaseManagementFeatureDetails = Field(..., description='The details required to enable a Database Management feature for an external pluggable database.'),) -> Any: - return invoke_dbm( - 'enable_external_pluggable_database_management_feature', - external_pluggable_database_id=external_pluggable_database_id, - enable_external_pluggable_database_management_feature_details=enable_external_pluggable_database_management_feature_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["enable_high_frequency_automatic_spm_evolve_advisor_task"], - annotations=TOOL_ANNOTATIONS["enable_high_frequency_automatic_spm_evolve_advisor_task"],) -def enable_high_frequency_automatic_spm_evolve_advisor_task( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - enable_high_frequency_automatic_spm_evolve_advisor_task_details: dict[str, Any] | EnableHighFrequencyAutomaticSpmEvolveAdvisorTaskDetails = Field(..., description='The details required to enable high frequency Automatic SPM Evolve Advisor task.'),) -> Any: - return invoke_dbm( - 'enable_high_frequency_automatic_spm_evolve_advisor_task', - managed_database_id=managed_database_id, - enable_high_frequency_automatic_spm_evolve_advisor_task_details=enable_high_frequency_automatic_spm_evolve_advisor_task_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["enable_pluggable_database_management_feature"], - annotations=TOOL_ANNOTATIONS["enable_pluggable_database_management_feature"],) -def enable_pluggable_database_management_feature( - pluggable_database_id: str = Field(..., description='The OCID of the Oracle cloud pluggable database.'), - enable_pluggable_database_management_feature_details: dict[str, Any] | EnablePluggableDatabaseManagementFeatureDetails = Field(..., description='The details required to enable a Database Management feature for an Oracle cloud pluggable database.'),) -> Any: - return invoke_dbm( - 'enable_pluggable_database_management_feature', - pluggable_database_id=pluggable_database_id, - enable_pluggable_database_management_feature_details=enable_pluggable_database_management_feature_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["enable_sql_plan_baselines_usage"], - annotations=TOOL_ANNOTATIONS["enable_sql_plan_baselines_usage"],) -def enable_sql_plan_baselines_usage( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - enable_sql_plan_baselines_usage_details: dict[str, Any] | EnableSqlPlanBaselinesUsageDetails = Field(..., description='The details required to enable SQL plan baseline usage.'),) -> Any: - return invoke_dbm( - 'enable_sql_plan_baselines_usage', - managed_database_id=managed_database_id, - enable_sql_plan_baselines_usage_details=enable_sql_plan_baselines_usage_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["generate_awr_snapshot"], - annotations=TOOL_ANNOTATIONS["generate_awr_snapshot"],) -def generate_awr_snapshot( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'generate_awr_snapshot', - managed_database_id=managed_database_id, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_awr_db_report"], - annotations=TOOL_ANNOTATIONS["get_awr_db_report"],) -def get_awr_db_report( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - awr_db_id: str = Field(..., description='Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.'), - inst_nums: list[int] | None = Field(None, description='The optional multiple value query parameter to filter the database instance numbers.'), - begin_sn_id_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), - end_sn_id_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot ID.'), - time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp.'), - time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp.'), - report_type: Literal['AWR', 'ASH'] | None = Field(None, description='The query parameter to filter the AWR report types.\n\nAllowed values are: "AWR", "ASH"'), - container_id: int | None = Field(None, description='AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.'), - report_format: Literal['HTML', 'TEXT'] | None = Field(None, description='The format of the AWR report.\n\nAllowed values are: "HTML", "TEXT"'), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'get_awr_db_report', - managed_database_id=managed_database_id, - awr_db_id=awr_db_id, - inst_nums=inst_nums, - begin_sn_id_greater_than_or_equal_to=begin_sn_id_greater_than_or_equal_to, - end_sn_id_less_than_or_equal_to=end_sn_id_less_than_or_equal_to, - time_greater_than_or_equal_to=time_greater_than_or_equal_to, - time_less_than_or_equal_to=time_less_than_or_equal_to, - report_type=report_type, - container_id=container_id, - report_format=report_format, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_awr_db_sql_report"], - annotations=TOOL_ANNOTATIONS["get_awr_db_sql_report"],) -def get_awr_db_sql_report( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - awr_db_id: str = Field(..., description='Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.'), - sql_id: str = Field(..., description='Oracle-generated SQL ID for a SQL statement in AWR or Performance Hub data.'), - inst_num: str | None = Field(None, description='The optional single value query parameter to filter the database instance number.'), - begin_sn_id_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), - end_sn_id_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot ID.'), - time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp.'), - time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp.'), - report_format: Literal['HTML', 'TEXT'] | None = Field(None, description='The format of the AWR report.\n\nAllowed values are: "HTML", "TEXT"'), - container_id: int | None = Field(None, description='AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.'), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'get_awr_db_sql_report', - managed_database_id=managed_database_id, - awr_db_id=awr_db_id, - sql_id=sql_id, - inst_num=inst_num, - begin_sn_id_greater_than_or_equal_to=begin_sn_id_greater_than_or_equal_to, - end_sn_id_less_than_or_equal_to=end_sn_id_less_than_or_equal_to, - time_greater_than_or_equal_to=time_greater_than_or_equal_to, - time_less_than_or_equal_to=time_less_than_or_equal_to, - report_format=report_format, - container_id=container_id, - opc_named_credential_id=opc_named_credential_id,) - - - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_cloud_asm"], - annotations=TOOL_ANNOTATIONS["get_cloud_asm"],) -def get_cloud_asm( - cloud_asm_id: str = Field(..., description='The OCID of the cloud ASM.'),) -> Any: - return invoke_dbm( - 'get_cloud_asm', - cloud_asm_id=cloud_asm_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_cloud_asm_configuration"], - annotations=TOOL_ANNOTATIONS["get_cloud_asm_configuration"],) -def get_cloud_asm_configuration( - cloud_asm_id: str = Field(..., description='The OCID of the cloud ASM.'), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'get_cloud_asm_configuration', - cloud_asm_id=cloud_asm_id, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_cloud_asm_instance"], - annotations=TOOL_ANNOTATIONS["get_cloud_asm_instance"],) -def get_cloud_asm_instance( - cloud_asm_instance_id: str = Field(..., description='The OCID of the cloud ASM instance.'),) -> Any: - return invoke_dbm( - 'get_cloud_asm_instance', - cloud_asm_instance_id=cloud_asm_instance_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_cloud_cluster"], - annotations=TOOL_ANNOTATIONS["get_cloud_cluster"],) -def get_cloud_cluster( - cloud_cluster_id: str = Field(..., description='The OCID of the cloud cluster.'),) -> Any: - return invoke_dbm( - 'get_cloud_cluster', - cloud_cluster_id=cloud_cluster_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_cloud_cluster_instance"], - annotations=TOOL_ANNOTATIONS["get_cloud_cluster_instance"],) -def get_cloud_cluster_instance( - cloud_cluster_instance_id: str = Field(..., description='The OCID of the cloud cluster instance.'),) -> Any: - return invoke_dbm( - 'get_cloud_cluster_instance', - cloud_cluster_instance_id=cloud_cluster_instance_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_cloud_db_home"], - annotations=TOOL_ANNOTATIONS["get_cloud_db_home"],) -def get_cloud_db_home( - cloud_db_home_id: str = Field(..., description='The OCID of the cloud database home.'),) -> Any: - return invoke_dbm( - 'get_cloud_db_home', - cloud_db_home_id=cloud_db_home_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_cloud_db_node"], - annotations=TOOL_ANNOTATIONS["get_cloud_db_node"],) -def get_cloud_db_node( - cloud_db_node_id: str = Field(..., description='The OCID of the cloud database node.'),) -> Any: - return invoke_dbm( - 'get_cloud_db_node', - cloud_db_node_id=cloud_db_node_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_cloud_db_system"], - annotations=TOOL_ANNOTATIONS["get_cloud_db_system"],) -def get_cloud_db_system( - cloud_db_system_id: str = Field(..., description='The OCID of the cloud DB system.'),) -> Any: - return invoke_dbm( - 'get_cloud_db_system', - cloud_db_system_id=cloud_db_system_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_cloud_db_system_connector"], - annotations=TOOL_ANNOTATIONS["get_cloud_db_system_connector"],) -def get_cloud_db_system_connector( - cloud_db_system_connector_id: str = Field(..., description='The OCID of the cloud connector.'),) -> Any: - return invoke_dbm( - 'get_cloud_db_system_connector', - cloud_db_system_connector_id=cloud_db_system_connector_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_cloud_db_system_discovery"], - annotations=TOOL_ANNOTATIONS["get_cloud_db_system_discovery"],) -def get_cloud_db_system_discovery( - cloud_db_system_discovery_id: str = Field(..., description='The OCID of the cloud DB system discovery.'),) -> Any: - return invoke_dbm( - 'get_cloud_db_system_discovery', - cloud_db_system_discovery_id=cloud_db_system_discovery_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_cloud_exadata_infrastructure"], - annotations=TOOL_ANNOTATIONS["get_cloud_exadata_infrastructure"],) -def get_cloud_exadata_infrastructure( - cloud_exadata_infrastructure_id: str = Field(..., description='The OCID of the Exadata infrastructure.'),) -> Any: - return invoke_dbm( - 'get_cloud_exadata_infrastructure', - cloud_exadata_infrastructure_id=cloud_exadata_infrastructure_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_cloud_exadata_storage_connector"], - annotations=TOOL_ANNOTATIONS["get_cloud_exadata_storage_connector"],) -def get_cloud_exadata_storage_connector( - cloud_exadata_storage_connector_id: str = Field(..., description='The OCID of the connector to the Exadata storage server.'),) -> Any: - return invoke_dbm( - 'get_cloud_exadata_storage_connector', - cloud_exadata_storage_connector_id=cloud_exadata_storage_connector_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_cloud_exadata_storage_grid"], - annotations=TOOL_ANNOTATIONS["get_cloud_exadata_storage_grid"],) -def get_cloud_exadata_storage_grid( - cloud_exadata_storage_grid_id: str = Field(..., description='The OCID of the Exadata storage grid.'),) -> Any: - return invoke_dbm( - 'get_cloud_exadata_storage_grid', - cloud_exadata_storage_grid_id=cloud_exadata_storage_grid_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_cloud_exadata_storage_server"], - annotations=TOOL_ANNOTATIONS["get_cloud_exadata_storage_server"],) -def get_cloud_exadata_storage_server( - cloud_exadata_storage_server_id: str = Field(..., description='The OCID of the Exadata storage server.'),) -> Any: - return invoke_dbm( - 'get_cloud_exadata_storage_server', - cloud_exadata_storage_server_id=cloud_exadata_storage_server_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_cloud_iorm_plan"], - annotations=TOOL_ANNOTATIONS["get_cloud_iorm_plan"],) -def get_cloud_iorm_plan( - cloud_exadata_storage_server_id: str = Field(..., description='The OCID of the Exadata storage server.'),) -> Any: - return invoke_dbm( - 'get_cloud_iorm_plan', - cloud_exadata_storage_server_id=cloud_exadata_storage_server_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_cloud_listener"], - annotations=TOOL_ANNOTATIONS["get_cloud_listener"],) -def get_cloud_listener( - cloud_listener_id: str = Field(..., description='The OCID of the cloud listener.'),) -> Any: - return invoke_dbm( - 'get_cloud_listener', - cloud_listener_id=cloud_listener_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_cloud_open_alert_history"], - annotations=TOOL_ANNOTATIONS["get_cloud_open_alert_history"],) -def get_cloud_open_alert_history( - cloud_exadata_storage_server_id: str = Field(..., description='The OCID of the Exadata storage server.'),) -> Any: - return invoke_dbm( - 'get_cloud_open_alert_history', - cloud_exadata_storage_server_id=cloud_exadata_storage_server_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_cluster_cache_metric"], - annotations=TOOL_ANNOTATIONS["get_cluster_cache_metric"],) -def get_cluster_cache_metric( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - start_time: str = Field(..., description='The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".'), - end_time: str = Field(..., description='The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".'),) -> Any: - return invoke_dbm( - 'get_cluster_cache_metric', - managed_database_id=managed_database_id, - start_time=start_time, - end_time=end_time,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_database_fleet_backup_metrics"], - annotations=TOOL_ANNOTATIONS["get_database_fleet_backup_metrics"],) -def get_database_fleet_backup_metrics( - database_hosted_in: Literal['CLOUD', 'EXTERNAL'] = Field(..., description='Indicates whether the database is a cloud database or an external database.\n\nAllowed values are: "CLOUD", "EXTERNAL"'), - start_time: str = Field(..., description='The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".'), - end_time: str = Field(..., description='The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".'), - managed_database_group_id: str | None = Field(None, description='The OCID of the Managed Database Group.'), - compartment_id: str | None = Field(None, description='The OCID of the compartment.'), - filter_by_metric_names: str | None = Field(None, description='The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['DATABASENAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `DATABASENAME` is ascending and it is case-sensitive.\n\nAllowed values are: "DATABASENAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: - return invoke_dbm( - 'get_database_fleet_backup_metrics', - database_hosted_in=database_hosted_in, - start_time=start_time, - end_time=end_time, - managed_database_group_id=managed_database_group_id, - compartment_id=compartment_id, - filter_by_metric_names=filter_by_metric_names, - limit=limit, - sort_by=sort_by, - sort_order=sort_order,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_database_fleet_dataguard_metrics"], - annotations=TOOL_ANNOTATIONS["get_database_fleet_dataguard_metrics"],) -def get_database_fleet_dataguard_metrics( - managed_database_group_id: str | None = Field(None, description='The OCID of the Managed Database Group.'), - compartment_id: str | None = Field(None, description='The OCID of the compartment.'), - filter_by_metric_names: str | None = Field(None, description='The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['DATABASENAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `DATABASENAME` is ascending and it is case-sensitive.\n\nAllowed values are: "DATABASENAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: - return invoke_dbm( - 'get_database_fleet_dataguard_metrics', - managed_database_group_id=managed_database_group_id, - compartment_id=compartment_id, - filter_by_metric_names=filter_by_metric_names, - limit=limit, - sort_by=sort_by, - sort_order=sort_order,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_database_fleet_ha_overview_metrics"], - annotations=TOOL_ANNOTATIONS["get_database_fleet_ha_overview_metrics"],) -def get_database_fleet_ha_overview_metrics( - managed_database_group_id: str | None = Field(None, description='The OCID of the Managed Database Group.'), - compartment_id: str | None = Field(None, description='The OCID of the compartment.'), - filter_by_metric_names: str | None = Field(None, description='The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['DATABASENAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `DATABASENAME` is ascending and it is case-sensitive.\n\nAllowed values are: "DATABASENAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: - return invoke_dbm( - 'get_database_fleet_ha_overview_metrics', - managed_database_group_id=managed_database_group_id, - compartment_id=compartment_id, - filter_by_metric_names=filter_by_metric_names, - limit=limit, - sort_by=sort_by, - sort_order=sort_order,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_database_fleet_health_metrics"], - annotations=TOOL_ANNOTATIONS["get_database_fleet_health_metrics"],) -def get_database_fleet_health_metrics( - compare_baseline_time: str = Field(..., description='The baseline time for metrics comparison.'), - compare_target_time: str = Field(..., description='The target time for metrics comparison.'), - managed_database_group_id: str | None = Field(None, description='The OCID of the Managed Database Group.'), - compartment_id: str | None = Field(None, description='The OCID of the compartment.'), - compare_type: Literal['HOUR', 'DAY', 'WEEK'] | None = Field(None, description='The time window used for metrics comparison.\n\nAllowed values are: "HOUR", "DAY", "WEEK"'), - filter_by_metric_names: str | None = Field(None, description='The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.'), - filter_by_database_type: str | None = Field(None, description='The filter used to filter the databases in the fleet by a specific Oracle Database type.'), - filter_by_database_sub_type: str | None = Field(None, description='The filter used to filter the databases in the fleet by a specific Oracle Database subtype.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['TIMECREATED', 'NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘TIMECREATED’ is descending and the default sort order for ‘NAME’ is ascending.\nThe ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "NAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), - filter_by_database_deployment_type: str | None = Field(None, description='The filter used to filter the databases in the fleet by a specific Oracle Database deployment type.'), - filter_by_database_version: str | None = Field(None, description='The filter used to filter the databases in the fleet by a specific Oracle Database version.'),) -> Any: - return invoke_dbm( - 'get_database_fleet_health_metrics', - compare_baseline_time=compare_baseline_time, - compare_target_time=compare_target_time, - managed_database_group_id=managed_database_group_id, - compartment_id=compartment_id, - compare_type=compare_type, - filter_by_metric_names=filter_by_metric_names, - filter_by_database_type=filter_by_database_type, - filter_by_database_sub_type=filter_by_database_sub_type, - limit=limit, - sort_by=sort_by, - sort_order=sort_order, - filter_by_database_deployment_type=filter_by_database_deployment_type, - filter_by_database_version=filter_by_database_version,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_database_ha_backup_details"], - annotations=TOOL_ANNOTATIONS["get_database_ha_backup_details"],) -def get_database_ha_backup_details( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'get_database_ha_backup_details', - managed_database_id=managed_database_id, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_database_home_metrics"], - annotations=TOOL_ANNOTATIONS["get_database_home_metrics"],) -def get_database_home_metrics( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - start_time: str = Field(..., description='The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".'), - end_time: str = Field(..., description='The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".'),) -> Any: - return invoke_dbm( - 'get_database_home_metrics', - managed_database_id=managed_database_id, - start_time=start_time, - end_time=end_time,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_dataguard_performance_metrics"], - annotations=TOOL_ANNOTATIONS["get_dataguard_performance_metrics"],) -def get_dataguard_performance_metrics( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - start_time: str = Field(..., description='The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".'), - end_time: str = Field(..., description='The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".'), - peer_database_compartment_id: str | None = Field(None, description='The OCID of the compartment for which peer database metrics are required. This is not a mandatory parameter and in its absence, all the peer database metrics are returned.'), - filter_by_metric_names: str | None = Field(None, description='The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.'),) -> Any: - return invoke_dbm( - 'get_dataguard_performance_metrics', - managed_database_id=managed_database_id, - start_time=start_time, - end_time=end_time, - peer_database_compartment_id=peer_database_compartment_id, - filter_by_metric_names=filter_by_metric_names,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_db_management_private_endpoint"], - annotations=TOOL_ANNOTATIONS["get_db_management_private_endpoint"],) -def get_db_management_private_endpoint( - db_management_private_endpoint_id: str = Field(..., description='The OCID of the Database Management private endpoint.'),) -> Any: - return invoke_dbm( - 'get_db_management_private_endpoint', - db_management_private_endpoint_id=db_management_private_endpoint_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_exadata_infrastructure_fleet_health_metrics"], - annotations=TOOL_ANNOTATIONS["get_exadata_infrastructure_fleet_health_metrics"],) -def get_exadata_infrastructure_fleet_health_metrics( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - compare_baseline_time: str = Field(..., description='The baseline time for metrics comparison.'), - compare_target_time: str = Field(..., description='The target time for metrics comparison.'), - compare_type: Literal['HOUR', 'DAY', 'WEEK'] | None = Field(None, description='The time window used for metrics comparison.\n\nAllowed values are: "HOUR", "DAY", "WEEK"'), - filter_by_exadata_infrastructure_deployment_type: Literal['ONPREMISE', 'EXADATA', 'EXADATA_CC'] | None = Field(None, description='The filter used to filter the Exadata infrastructures in the fleet by a specific deployment type.\n\nAllowed values are: "ONPREMISE", "EXADATA", "EXADATA_CC"'), - filter_by_exadata_infrastructure_lifecycle_state: Literal['CREATING', 'ACTIVE', 'INACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN'] | None = Field(None, description='The filter used to filter the Exadata infrastructure in the fleet by its lifecycle state.\nIf the parameter is not provided, Exdata infrastructures in any state are returned.\n\nAllowed values are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", "UNKNOWN"'), - sort_by: Literal['TIMECREATED', 'NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘TIMECREATED’ is descending and the default sort order for ‘NAME’ is ascending.\nThe ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "NAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: - return invoke_dbm( - 'get_exadata_infrastructure_fleet_health_metrics', - compartment_id=compartment_id, - compare_baseline_time=compare_baseline_time, - compare_target_time=compare_target_time, - compare_type=compare_type, - filter_by_exadata_infrastructure_deployment_type=filter_by_exadata_infrastructure_deployment_type, - filter_by_exadata_infrastructure_lifecycle_state=filter_by_exadata_infrastructure_lifecycle_state, - sort_by=sort_by, - sort_order=sort_order,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_execution_plan_stats_comparision"], - annotations=TOOL_ANNOTATIONS["get_execution_plan_stats_comparision"],) -def get_execution_plan_stats_comparision( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - sql_tuning_advisor_task_id: int = Field(..., description='The SQL tuning task identifier. This is not the OCID.'), - sql_object_id: int = Field(..., description='The SQL object ID for the SQL tuning task. This is not the OCID.'), - execution_id: int = Field(..., description='The execution ID for an execution of a SQL tuning task. This is not the OCID.'), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'get_execution_plan_stats_comparision', - managed_database_id=managed_database_id, - sql_tuning_advisor_task_id=sql_tuning_advisor_task_id, - sql_object_id=sql_object_id, - execution_id=execution_id, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_external_asm"], - annotations=TOOL_ANNOTATIONS["get_external_asm"],) -def get_external_asm( - external_asm_id: str = Field(..., description='The OCID of the external ASM.'),) -> Any: - return invoke_dbm( - 'get_external_asm', - external_asm_id=external_asm_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_external_asm_configuration"], - annotations=TOOL_ANNOTATIONS["get_external_asm_configuration"],) -def get_external_asm_configuration( - external_asm_id: str = Field(..., description='The OCID of the external ASM.'), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'get_external_asm_configuration', - external_asm_id=external_asm_id, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_external_asm_instance"], - annotations=TOOL_ANNOTATIONS["get_external_asm_instance"],) -def get_external_asm_instance( - external_asm_instance_id: str = Field(..., description='The OCID of the external ASM instance.'),) -> Any: - return invoke_dbm( - 'get_external_asm_instance', - external_asm_instance_id=external_asm_instance_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_external_cluster"], - annotations=TOOL_ANNOTATIONS["get_external_cluster"],) -def get_external_cluster( - external_cluster_id: str = Field(..., description='The OCID of the external cluster.'),) -> Any: - return invoke_dbm( - 'get_external_cluster', - external_cluster_id=external_cluster_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_external_cluster_instance"], - annotations=TOOL_ANNOTATIONS["get_external_cluster_instance"],) -def get_external_cluster_instance( - external_cluster_instance_id: str = Field(..., description='The OCID of the external cluster instance.'),) -> Any: - return invoke_dbm( - 'get_external_cluster_instance', - external_cluster_instance_id=external_cluster_instance_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_external_db_home"], - annotations=TOOL_ANNOTATIONS["get_external_db_home"],) -def get_external_db_home( - external_db_home_id: str = Field(..., description='The OCID of the external database home.'),) -> Any: - return invoke_dbm( - 'get_external_db_home', - external_db_home_id=external_db_home_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_external_db_node"], - annotations=TOOL_ANNOTATIONS["get_external_db_node"],) -def get_external_db_node( - external_db_node_id: str = Field(..., description='The OCID of the external database node.'),) -> Any: - return invoke_dbm( - 'get_external_db_node', - external_db_node_id=external_db_node_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_external_db_system"], - annotations=TOOL_ANNOTATIONS["get_external_db_system"],) -def get_external_db_system( - external_db_system_id: str = Field(..., description='The OCID of the external DB system.'),) -> Any: - return invoke_dbm( - 'get_external_db_system', - external_db_system_id=external_db_system_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_external_db_system_connector"], - annotations=TOOL_ANNOTATIONS["get_external_db_system_connector"],) -def get_external_db_system_connector( - external_db_system_connector_id: str = Field(..., description='The OCID of the external connector.'),) -> Any: - return invoke_dbm( - 'get_external_db_system_connector', - external_db_system_connector_id=external_db_system_connector_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_external_db_system_discovery"], - annotations=TOOL_ANNOTATIONS["get_external_db_system_discovery"],) -def get_external_db_system_discovery( - external_db_system_discovery_id: str = Field(..., description='The OCID of the external DB system discovery.'),) -> Any: - return invoke_dbm( - 'get_external_db_system_discovery', - external_db_system_discovery_id=external_db_system_discovery_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_external_exadata_infrastructure"], - annotations=TOOL_ANNOTATIONS["get_external_exadata_infrastructure"],) -def get_external_exadata_infrastructure( - external_exadata_infrastructure_id: str = Field(..., description='The OCID of the Exadata infrastructure.'),) -> Any: - return invoke_dbm( - 'get_external_exadata_infrastructure', - external_exadata_infrastructure_id=external_exadata_infrastructure_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_external_exadata_storage_connector"], - annotations=TOOL_ANNOTATIONS["get_external_exadata_storage_connector"],) -def get_external_exadata_storage_connector( - external_exadata_storage_connector_id: str = Field(..., description='The OCID of the connector to the Exadata storage server.'),) -> Any: - return invoke_dbm( - 'get_external_exadata_storage_connector', - external_exadata_storage_connector_id=external_exadata_storage_connector_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_external_exadata_storage_grid"], - annotations=TOOL_ANNOTATIONS["get_external_exadata_storage_grid"],) -def get_external_exadata_storage_grid( - external_exadata_storage_grid_id: str = Field(..., description='The OCID of the Exadata storage grid.'),) -> Any: - return invoke_dbm( - 'get_external_exadata_storage_grid', - external_exadata_storage_grid_id=external_exadata_storage_grid_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_external_exadata_storage_server"], - annotations=TOOL_ANNOTATIONS["get_external_exadata_storage_server"],) -def get_external_exadata_storage_server( - external_exadata_storage_server_id: str = Field(..., description='The OCID of the Exadata storage server.'),) -> Any: - return invoke_dbm( - 'get_external_exadata_storage_server', - external_exadata_storage_server_id=external_exadata_storage_server_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_external_listener"], - annotations=TOOL_ANNOTATIONS["get_external_listener"],) -def get_external_listener( - external_listener_id: str = Field(..., description='The OCID of the external listener.'),) -> Any: - return invoke_dbm( - 'get_external_listener', - external_listener_id=external_listener_id,) - - - - - - - - - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_iorm_plan"], - annotations=TOOL_ANNOTATIONS["get_iorm_plan"],) -def get_iorm_plan( - external_exadata_storage_server_id: str = Field(..., description='The OCID of the Exadata storage server.'),) -> Any: - return invoke_dbm( - 'get_iorm_plan', - external_exadata_storage_server_id=external_exadata_storage_server_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_job"], - annotations=TOOL_ANNOTATIONS["get_job"],) -def get_job( - job_id: str = Field(..., description='The identifier of the job.'),) -> Any: - return invoke_dbm( - 'get_job', - job_id=job_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_job_execution"], - annotations=TOOL_ANNOTATIONS["get_job_execution"],) -def get_job_execution( - job_execution_id: str = Field(..., description='The identifier of the job execution.'),) -> Any: - return invoke_dbm( - 'get_job_execution', - job_execution_id=job_execution_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_job_run"], - annotations=TOOL_ANNOTATIONS["get_job_run"],) -def get_job_run( - job_run_id: str = Field(..., description='The identifier of the job run.'),) -> Any: - return invoke_dbm( - 'get_job_run', - job_run_id=job_run_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_managed_database"], - annotations=TOOL_ANNOTATIONS["get_managed_database"],) -def get_managed_database( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'),) -> Any: - return invoke_dbm( - 'get_managed_database', - managed_database_id=managed_database_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_managed_database_group"], - annotations=TOOL_ANNOTATIONS["get_managed_database_group"],) -def get_managed_database_group( - managed_database_group_id: str = Field(..., description='The OCID of the Managed Database Group.'),) -> Any: - return invoke_dbm( - 'get_managed_database_group', - managed_database_group_id=managed_database_group_id,) - - - - - - - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_named_credential"], - annotations=TOOL_ANNOTATIONS["get_named_credential"],) -def get_named_credential( - named_credential_id: str = Field(..., description='The OCID of the named credential.'),) -> Any: - return invoke_dbm( - 'get_named_credential', - named_credential_id=named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_open_alert_history"], - annotations=TOOL_ANNOTATIONS["get_open_alert_history"],) -def get_open_alert_history( - external_exadata_storage_server_id: str = Field(..., description='The OCID of the Exadata storage server.'),) -> Any: - return invoke_dbm( - 'get_open_alert_history', - external_exadata_storage_server_id=external_exadata_storage_server_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_optimizer_statistics_advisor_execution"], - annotations=TOOL_ANNOTATIONS["get_optimizer_statistics_advisor_execution"],) -def get_optimizer_statistics_advisor_execution( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - execution_name: str = Field(..., description='The name of the Optimizer Statistics Advisor execution.'), - task_name: str = Field(..., description='The name of the optimizer statistics collection execution task.'), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'get_optimizer_statistics_advisor_execution', - managed_database_id=managed_database_id, - execution_name=execution_name, - task_name=task_name, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_optimizer_statistics_advisor_execution_script"], - annotations=TOOL_ANNOTATIONS["get_optimizer_statistics_advisor_execution_script"],) -def get_optimizer_statistics_advisor_execution_script( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - execution_name: str = Field(..., description='The name of the Optimizer Statistics Advisor execution.'), - task_name: str = Field(..., description='The name of the optimizer statistics collection execution task.'), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'get_optimizer_statistics_advisor_execution_script', - managed_database_id=managed_database_id, - execution_name=execution_name, - task_name=task_name, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_optimizer_statistics_collection_operation"], - annotations=TOOL_ANNOTATIONS["get_optimizer_statistics_collection_operation"],) -def get_optimizer_statistics_collection_operation( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - optimizer_statistics_collection_operation_id: float = Field(..., description='The ID of the Optimizer Statistics Collection operation.'), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'get_optimizer_statistics_collection_operation', - managed_database_id=managed_database_id, - optimizer_statistics_collection_operation_id=optimizer_statistics_collection_operation_id, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_pdb_metrics"], - annotations=TOOL_ANNOTATIONS["get_pdb_metrics"],) -def get_pdb_metrics( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - start_time: str = Field(..., description='The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".'), - end_time: str = Field(..., description='The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".'), - compartment_id: str | None = Field(None, description='The OCID of the compartment.'), - compare_type: Literal['HOUR', 'DAY', 'WEEK'] | None = Field(None, description='The time window used for metrics comparison.\n\nAllowed values are: "HOUR", "DAY", "WEEK"'), - filter_by_metric_names: str | None = Field(None, description='The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.'),) -> Any: - return invoke_dbm( - 'get_pdb_metrics', - managed_database_id=managed_database_id, - start_time=start_time, - end_time=end_time, - compartment_id=compartment_id, - compare_type=compare_type, - filter_by_metric_names=filter_by_metric_names,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_peer_database_metrics"], - annotations=TOOL_ANNOTATIONS["get_peer_database_metrics"],) -def get_peer_database_metrics( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - start_time: str = Field(..., description='The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".'), - end_time: str = Field(..., description='The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".'), - peer_database_compartment_id: str | None = Field(None, description='The OCID of the compartment for which peer database metrics are required. This is not a mandatory parameter and in its absence, all the peer database metrics are returned.'), - compare_type: Literal['HOUR', 'DAY', 'WEEK'] | None = Field(None, description='The time window used for metrics comparison.\n\nAllowed values are: "HOUR", "DAY", "WEEK"'), - filter_by_metric_names: str | None = Field(None, description='The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.'),) -> Any: - return invoke_dbm( - 'get_peer_database_metrics', - managed_database_id=managed_database_id, - start_time=start_time, - end_time=end_time, - peer_database_compartment_id=peer_database_compartment_id, - compare_type=compare_type, - filter_by_metric_names=filter_by_metric_names,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_preferred_credential"], - annotations=TOOL_ANNOTATIONS["get_preferred_credential"],) -def get_preferred_credential( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - credential_name: str = Field(..., description='The name of the preferred credential.'),) -> Any: - return invoke_dbm( - 'get_preferred_credential', - managed_database_id=managed_database_id, - credential_name=credential_name,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_sql_execution_plan"], - annotations=TOOL_ANNOTATIONS["get_sql_execution_plan"],) -def get_sql_execution_plan( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - sql_tuning_advisor_task_id: int = Field(..., description='The SQL tuning task identifier. This is not the OCID.'), - sql_object_id: int = Field(..., description='The SQL object ID for the SQL tuning task. This is not the OCID.'), - attribute: Literal['ORIGINAL', 'ORIGINAL_WITH_ADJUSTED_COST', 'USING_SQL_PROFILE', 'USING_NEW_INDICES', 'USING_PARALLEL_EXECUTION'] = Field(..., description='The attribute of the SQL execution plan.\n\nAllowed values are: "ORIGINAL", "ORIGINAL_WITH_ADJUSTED_COST", "USING_SQL_PROFILE", "USING_NEW_INDICES", "USING_PARALLEL_EXECUTION"'), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'get_sql_execution_plan', - managed_database_id=managed_database_id, - sql_tuning_advisor_task_id=sql_tuning_advisor_task_id, - sql_object_id=sql_object_id, - attribute=attribute, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_sql_plan_baseline"], - annotations=TOOL_ANNOTATIONS["get_sql_plan_baseline"],) -def get_sql_plan_baseline( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - plan_name: str = Field(..., description='The plan name of the SQL plan baseline.'), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'get_sql_plan_baseline', - managed_database_id=managed_database_id, - plan_name=plan_name, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_sql_plan_baseline_configuration"], - annotations=TOOL_ANNOTATIONS["get_sql_plan_baseline_configuration"],) -def get_sql_plan_baseline_configuration( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'get_sql_plan_baseline_configuration', - managed_database_id=managed_database_id, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_sql_tuning_advisor_task_summary_report"], - annotations=TOOL_ANNOTATIONS["get_sql_tuning_advisor_task_summary_report"],) -def get_sql_tuning_advisor_task_summary_report( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - sql_tuning_advisor_task_id: int = Field(..., description='The SQL tuning task identifier. This is not the OCID.'), - search_period: Literal['LAST_24HR', 'LAST_7DAY', 'LAST_31DAY', 'SINCE_LAST', 'ALL'] | None = Field(None, description='How far back the API will search for begin and end exec id. Unused if neither exec ids nor time filter query params are supplied. This is applicable only for Auto SQL Tuning tasks.\n\nAllowed values are: "LAST_24HR", "LAST_7DAY", "LAST_31DAY", "SINCE_LAST", "ALL"'), - time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp. This is applicable only for Auto SQL Tuning tasks.'), - time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp. This is applicable only for Auto SQL Tuning tasks.'), - begin_exec_id_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the execution ID related to a specific SQL Tuning Advisor task. This is applicable only for Auto SQL Tuning tasks.'), - end_exec_id_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter on the execution ID related to a specific SQL Tuning Advisor task. This is applicable only for Auto SQL Tuning tasks.'), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'get_sql_tuning_advisor_task_summary_report', - managed_database_id=managed_database_id, - sql_tuning_advisor_task_id=sql_tuning_advisor_task_id, - search_period=search_period, - time_greater_than_or_equal_to=time_greater_than_or_equal_to, - time_less_than_or_equal_to=time_less_than_or_equal_to, - begin_exec_id_greater_than_or_equal_to=begin_exec_id_greater_than_or_equal_to, - end_exec_id_less_than_or_equal_to=end_exec_id_less_than_or_equal_to, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_tablespace"], - annotations=TOOL_ANNOTATIONS["get_tablespace"],) -def get_tablespace( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - tablespace_name: str = Field(..., description='The name of the tablespace.'), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'get_tablespace', - managed_database_id=managed_database_id, - tablespace_name=tablespace_name, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_top_sql_cpu_activity"], - annotations=TOOL_ANNOTATIONS["get_top_sql_cpu_activity"],) -def get_top_sql_cpu_activity( - external_exadata_storage_server_id: str = Field(..., description='The OCID of the Exadata storage server.'),) -> Any: - return invoke_dbm( - 'get_top_sql_cpu_activity', - external_exadata_storage_server_id=external_exadata_storage_server_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_user"], - annotations=TOOL_ANNOTATIONS["get_user"],) -def get_user( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - user_name: str = Field(..., description='The name of the user whose details are to be viewed.'), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'get_user', - managed_database_id=managed_database_id, - user_name=user_name, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_work_request"], - annotations=TOOL_ANNOTATIONS["get_work_request"],) -def get_work_request( - work_request_id: str = Field(..., description='The OCID of the asynchronous work request.'),) -> Any: - return invoke_dbm( - 'get_work_request', - work_request_id=work_request_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_alert_logs"], - annotations=TOOL_ANNOTATIONS["list_alert_logs"],) -def list_alert_logs( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to timestamp to filter the logs.'), - time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to timestamp to filter the logs.'), - level_filter: Literal['CRITICAL', 'SEVERE', 'IMPORTANT', 'NORMAL', 'ALL'] | None = Field(None, description='The optional parameter to filter the alert logs by log level.\n\nAllowed values are: "CRITICAL", "SEVERE", "IMPORTANT", "NORMAL", "ALL"'), - type_filter: Literal['UNKNOWN', 'INCIDENT_ERROR', 'ERROR', 'WARNING', 'NOTIFICATION', 'TRACE', 'ALL'] | None = Field(None, description='The optional parameter to filter the attention or alert logs by type.\n\nAllowed values are: "UNKNOWN", "INCIDENT_ERROR", "ERROR", "WARNING", "NOTIFICATION", "TRACE", "ALL"'), - log_search_text: str | None = Field(None, description='The optional query parameter to filter the attention or alert logs by search text.'), - is_regular_expression: bool | None = Field(None, description='The flag to indicate whether the search text is regular expression or not.'), - sort_by: Literal['LEVEL', 'TYPE', 'MESSAGE', 'TIMESTAMP'] | None = Field(None, description='The possible sortBy values of attention logs.\n\nAllowed values are: "LEVEL", "TYPE", "MESSAGE", "TIMESTAMP"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'list_alert_logs', - managed_database_id=managed_database_id, - time_greater_than_or_equal_to=time_greater_than_or_equal_to, - time_less_than_or_equal_to=time_less_than_or_equal_to, - level_filter=level_filter, - type_filter=type_filter, - log_search_text=log_search_text, - is_regular_expression=is_regular_expression, - sort_by=sort_by, - sort_order=sort_order, - limit=limit, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_asm_properties"], - annotations=TOOL_ANNOTATIONS["list_asm_properties"],) -def list_asm_properties( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - name: str | None = Field(None, description='A filter to return only resources that match the entire name.'), - sort_by: Literal['TIMECREATED', 'NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘TIMECREATED’ is descending and the default sort order for ‘NAME’ is ascending.\nThe ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "NAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000),) -> Any: - return invoke_dbm( - 'list_asm_properties', - managed_database_id=managed_database_id, - name=name, - sort_by=sort_by, - sort_order=sort_order, - limit=limit,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_associated_databases"], - annotations=TOOL_ANNOTATIONS["list_associated_databases"],) -def list_associated_databases( - db_management_private_endpoint_id: str = Field(..., description='The OCID of the Database Management private endpoint.'), - compartment_id: str = Field(..., description='The OCID of the compartment.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), - sort_by: Literal['timeRegistered'] | None = Field(None, description='The option to sort databases using a specific Database Management private endpoint.\n\nAllowed values are: "timeRegistered"'),) -> Any: - return invoke_dbm( - 'list_associated_databases', - db_management_private_endpoint_id=db_management_private_endpoint_id, - compartment_id=compartment_id, - limit=limit, - sort_order=sort_order, - sort_by=sort_by,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_attention_logs"], - annotations=TOOL_ANNOTATIONS["list_attention_logs"],) -def list_attention_logs( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to timestamp to filter the logs.'), - time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to timestamp to filter the logs.'), - urgency_filter: Literal['IMMEDIATE', 'SOON', 'DEFERRABLE', 'INFO', 'ALL'] | None = Field(None, description='The optional parameter to filter the attention logs by urgency.\n\nAllowed values are: "IMMEDIATE", "SOON", "DEFERRABLE", "INFO", "ALL"'), - type_filter: Literal['UNKNOWN', 'INCIDENT_ERROR', 'ERROR', 'WARNING', 'NOTIFICATION', 'TRACE', 'ALL'] | None = Field(None, description='The optional parameter to filter the attention or alert logs by type.\n\nAllowed values are: "UNKNOWN", "INCIDENT_ERROR", "ERROR", "WARNING", "NOTIFICATION", "TRACE", "ALL"'), - log_search_text: str | None = Field(None, description='The optional query parameter to filter the attention or alert logs by search text.'), - is_regular_expression: bool | None = Field(None, description='The flag to indicate whether the search text is regular expression or not.'), - sort_by: Literal['URGENCY', 'TYPE', 'MESSAGE', 'TIMESTAMP', 'SCOPE', 'TARGET_USER'] | None = Field(None, description='The possible sortBy values of attention logs.\n\nAllowed values are: "URGENCY", "TYPE", "MESSAGE", "TIMESTAMP", "SCOPE", "TARGET_USER"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'list_attention_logs', - managed_database_id=managed_database_id, - time_greater_than_or_equal_to=time_greater_than_or_equal_to, - time_less_than_or_equal_to=time_less_than_or_equal_to, - urgency_filter=urgency_filter, - type_filter=type_filter, - log_search_text=log_search_text, - is_regular_expression=is_regular_expression, - sort_by=sort_by, - sort_order=sort_order, - limit=limit, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_awr_db_snapshots"], - annotations=TOOL_ANNOTATIONS["list_awr_db_snapshots"],) -def list_awr_db_snapshots( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - awr_db_id: str = Field(..., description='Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.'), - inst_num: str | None = Field(None, description='The optional single value query parameter to filter the database instance number.'), - begin_sn_id_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), - end_sn_id_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot ID.'), - time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp.'), - time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp.'), - container_id: int | None = Field(None, description='AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['TIME_BEGIN', 'SNAPSHOT_ID'] | None = Field(None, description='The option to sort the AWR snapshot summary data.\n\nAllowed values are: "TIME_BEGIN", "SNAPSHOT_ID"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Descending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'list_awr_db_snapshots', - managed_database_id=managed_database_id, - awr_db_id=awr_db_id, - inst_num=inst_num, - begin_sn_id_greater_than_or_equal_to=begin_sn_id_greater_than_or_equal_to, - end_sn_id_less_than_or_equal_to=end_sn_id_less_than_or_equal_to, - time_greater_than_or_equal_to=time_greater_than_or_equal_to, - time_less_than_or_equal_to=time_less_than_or_equal_to, - container_id=container_id, - limit=limit, - sort_by=sort_by, - sort_order=sort_order, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_awr_dbs"], - annotations=TOOL_ANNOTATIONS["list_awr_dbs"],) -def list_awr_dbs( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - name: str | None = Field(None, description='The optional single value query parameter to filter the entity name.'), - time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp.'), - time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['END_INTERVAL_TIME', 'NAME'] | None = Field(None, description='The option to sort the AWR summary data.\n\nAllowed values are: "END_INTERVAL_TIME", "NAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Descending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'list_awr_dbs', - managed_database_id=managed_database_id, - name=name, - time_greater_than_or_equal_to=time_greater_than_or_equal_to, - time_less_than_or_equal_to=time_less_than_or_equal_to, - limit=limit, - sort_by=sort_by, - sort_order=sort_order, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_cloud_asm_disk_groups"], - annotations=TOOL_ANNOTATIONS["list_cloud_asm_disk_groups"],) -def list_cloud_asm_disk_groups( - cloud_asm_id: str = Field(..., description='The OCID of the cloud ASM.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: "NAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'list_cloud_asm_disk_groups', - cloud_asm_id=cloud_asm_id, - limit=limit, - sort_by=sort_by, - sort_order=sort_order, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_cloud_asm_instances"], - annotations=TOOL_ANNOTATIONS["list_cloud_asm_instances"],) -def list_cloud_asm_instances( - compartment_id: str | None = Field(None, description='The OCID of the compartment.'), - cloud_asm_id: str | None = Field(None, description='The OCID of the cloud ASM.'), - display_name: str | None = Field(None, description='A filter to only return the resources that match the entire display name.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['TIMECREATED', 'DISPLAYNAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "DISPLAYNAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: - return invoke_dbm( - 'list_cloud_asm_instances', - compartment_id=compartment_id, - cloud_asm_id=cloud_asm_id, - display_name=display_name, - limit=limit, - sort_by=sort_by, - sort_order=sort_order,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_cloud_asm_users"], - annotations=TOOL_ANNOTATIONS["list_cloud_asm_users"],) -def list_cloud_asm_users( - cloud_asm_id: str = Field(..., description='The OCID of the cloud ASM.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: "NAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'list_cloud_asm_users', - cloud_asm_id=cloud_asm_id, - limit=limit, - sort_by=sort_by, - sort_order=sort_order, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_cloud_asms"], - annotations=TOOL_ANNOTATIONS["list_cloud_asms"],) -def list_cloud_asms( - compartment_id: str | None = Field(None, description='The OCID of the compartment.'), - cloud_db_system_id: str | None = Field(None, description='The OCID of the cloud DB system.'), - display_name: str | None = Field(None, description='A filter to only return the resources that match the entire display name.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['TIMECREATED', 'DISPLAYNAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "DISPLAYNAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: - return invoke_dbm( - 'list_cloud_asms', - compartment_id=compartment_id, - cloud_db_system_id=cloud_db_system_id, - display_name=display_name, - limit=limit, - sort_by=sort_by, - sort_order=sort_order,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_cloud_cluster_instances"], - annotations=TOOL_ANNOTATIONS["list_cloud_cluster_instances"],) -def list_cloud_cluster_instances( - compartment_id: str | None = Field(None, description='The OCID of the compartment.'), - cloud_cluster_id: str | None = Field(None, description='The OCID of the cloud cluster.'), - display_name: str | None = Field(None, description='A filter to only return the resources that match the entire display name.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['TIMECREATED', 'DISPLAYNAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "DISPLAYNAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: - return invoke_dbm( - 'list_cloud_cluster_instances', - compartment_id=compartment_id, - cloud_cluster_id=cloud_cluster_id, - display_name=display_name, - limit=limit, - sort_by=sort_by, - sort_order=sort_order,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_cloud_clusters"], - annotations=TOOL_ANNOTATIONS["list_cloud_clusters"],) -def list_cloud_clusters( - compartment_id: str | None = Field(None, description='The OCID of the compartment.'), - cloud_db_system_id: str | None = Field(None, description='The OCID of the cloud DB system.'), - display_name: str | None = Field(None, description='A filter to only return the resources that match the entire display name.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['TIMECREATED', 'DISPLAYNAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "DISPLAYNAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: - return invoke_dbm( - 'list_cloud_clusters', - compartment_id=compartment_id, - cloud_db_system_id=cloud_db_system_id, - display_name=display_name, - limit=limit, - sort_by=sort_by, - sort_order=sort_order,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_cloud_databases"], - annotations=TOOL_ANNOTATIONS["list_cloud_databases"],) -def list_cloud_databases( - cloud_db_system_id: str = Field(..., description='The OCID of the cloud DB system.'), - compartment_id: str | None = Field(None, description='The OCID of the compartment.'), - display_name: str | None = Field(None, description='A filter to only return the resources that match the entire display name.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['TIMECREATED', 'DISPLAYNAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "DISPLAYNAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: - return invoke_dbm( - 'list_cloud_databases', - cloud_db_system_id=cloud_db_system_id, - compartment_id=compartment_id, - display_name=display_name, - limit=limit, - sort_by=sort_by, - sort_order=sort_order,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_cloud_db_homes"], - annotations=TOOL_ANNOTATIONS["list_cloud_db_homes"],) -def list_cloud_db_homes( - compartment_id: str | None = Field(None, description='The OCID of the compartment.'), - cloud_db_system_id: str | None = Field(None, description='The OCID of the cloud DB system.'), - display_name: str | None = Field(None, description='A filter to only return the resources that match the entire display name.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['TIMECREATED', 'DISPLAYNAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "DISPLAYNAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: - return invoke_dbm( - 'list_cloud_db_homes', - compartment_id=compartment_id, - cloud_db_system_id=cloud_db_system_id, - display_name=display_name, - limit=limit, - sort_by=sort_by, - sort_order=sort_order,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_cloud_db_nodes"], - annotations=TOOL_ANNOTATIONS["list_cloud_db_nodes"],) -def list_cloud_db_nodes( - compartment_id: str | None = Field(None, description='The OCID of the compartment.'), - cloud_db_system_id: str | None = Field(None, description='The OCID of the cloud DB system.'), - display_name: str | None = Field(None, description='A filter to only return the resources that match the entire display name.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['TIMECREATED', 'DISPLAYNAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "DISPLAYNAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: - return invoke_dbm( - 'list_cloud_db_nodes', - compartment_id=compartment_id, - cloud_db_system_id=cloud_db_system_id, - display_name=display_name, - limit=limit, - sort_by=sort_by, - sort_order=sort_order,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_cloud_db_system_connectors"], - annotations=TOOL_ANNOTATIONS["list_cloud_db_system_connectors"],) -def list_cloud_db_system_connectors( - compartment_id: str | None = Field(None, description='The OCID of the compartment.'), - cloud_db_system_id: str | None = Field(None, description='The OCID of the cloud DB system.'), - display_name: str | None = Field(None, description='A filter to only return the resources that match the entire display name.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['TIMECREATED', 'DISPLAYNAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "DISPLAYNAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: - return invoke_dbm( - 'list_cloud_db_system_connectors', - compartment_id=compartment_id, - cloud_db_system_id=cloud_db_system_id, - display_name=display_name, - limit=limit, - sort_by=sort_by, - sort_order=sort_order,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_cloud_db_system_discoveries"], - annotations=TOOL_ANNOTATIONS["list_cloud_db_system_discoveries"],) -def list_cloud_db_system_discoveries( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - display_name: str | None = Field(None, description='A filter to only return the resources that match the entire display name.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['TIMECREATED', 'DISPLAYNAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "DISPLAYNAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: - return invoke_dbm( - 'list_cloud_db_system_discoveries', - compartment_id=compartment_id, - display_name=display_name, - limit=limit, - sort_by=sort_by, - sort_order=sort_order,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_cloud_db_systems"], - annotations=TOOL_ANNOTATIONS["list_cloud_db_systems"],) -def list_cloud_db_systems( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - dbaas_parent_infrastructure_id: str | None = Field(None, description='The OCID of the dbaas parent infrastructure of the cloud DB system.'), - deployment_type: Literal['VM', 'EXADATA', 'EXADATA_CC', 'EXADATA_XS'] | None = Field(None, description='A filter to return cloud DB systems of the specified deployment type.\n\nAllowed values are: "VM", "EXADATA", "EXADATA_CC", "EXADATA_XS"'), - display_name: str | None = Field(None, description='A filter to only return the resources that match the entire display name.'), - lifecycle_state: Literal['CREATING', 'ACTIVE', 'UPDATING', 'DELETING', 'DELETED', 'INACTIVE'] | None = Field(None, description='The lifecycle state of a resource.\n\nAllowed values are: "CREATING", "ACTIVE", "UPDATING", "DELETING", "DELETED", "INACTIVE"'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['TIMECREATED', 'DISPLAYNAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "DISPLAYNAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: - return invoke_dbm( - 'list_cloud_db_systems', - compartment_id=compartment_id, - dbaas_parent_infrastructure_id=dbaas_parent_infrastructure_id, - deployment_type=deployment_type, - display_name=display_name, - lifecycle_state=lifecycle_state, - limit=limit, - sort_by=sort_by, - sort_order=sort_order,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_cloud_exadata_infrastructures"], - annotations=TOOL_ANNOTATIONS["list_cloud_exadata_infrastructures"],) -def list_cloud_exadata_infrastructures( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - display_name: str | None = Field(None, description='The optional single value query filter parameter on the entity display name.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['TIMECREATED', 'NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘TIMECREATED’ is descending and the default sort order for ‘NAME’ is ascending.\nThe ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "NAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: - return invoke_dbm( - 'list_cloud_exadata_infrastructures', - compartment_id=compartment_id, - display_name=display_name, - limit=limit, - sort_by=sort_by, - sort_order=sort_order,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_cloud_exadata_storage_connectors"], - annotations=TOOL_ANNOTATIONS["list_cloud_exadata_storage_connectors"],) -def list_cloud_exadata_storage_connectors( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - cloud_exadata_infrastructure_id: str = Field(..., description='The OCID of the Exadata infrastructure.'), - display_name: str | None = Field(None, description='The optional single value query filter parameter on the entity display name.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['TIMECREATED', 'NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘TIMECREATED’ is descending and the default sort order for ‘NAME’ is ascending.\nThe ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "NAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: - return invoke_dbm( - 'list_cloud_exadata_storage_connectors', - compartment_id=compartment_id, - cloud_exadata_infrastructure_id=cloud_exadata_infrastructure_id, - display_name=display_name, - limit=limit, - sort_by=sort_by, - sort_order=sort_order,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_cloud_exadata_storage_servers"], - annotations=TOOL_ANNOTATIONS["list_cloud_exadata_storage_servers"],) -def list_cloud_exadata_storage_servers( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - cloud_exadata_infrastructure_id: str = Field(..., description='The OCID of the Exadata infrastructure.'), - display_name: str | None = Field(None, description='The optional single value query filter parameter on the entity display name.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['TIMECREATED', 'NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘TIMECREATED’ is descending and the default sort order for ‘NAME’ is ascending.\nThe ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "NAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: - return invoke_dbm( - 'list_cloud_exadata_storage_servers', - compartment_id=compartment_id, - cloud_exadata_infrastructure_id=cloud_exadata_infrastructure_id, - display_name=display_name, - limit=limit, - sort_by=sort_by, - sort_order=sort_order,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_cloud_listener_services"], - annotations=TOOL_ANNOTATIONS["list_cloud_listener_services"],) -def list_cloud_listener_services( - cloud_listener_id: str = Field(..., description='The OCID of the cloud listener.'), - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: "NAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'list_cloud_listener_services', - cloud_listener_id=cloud_listener_id, - managed_database_id=managed_database_id, - limit=limit, - sort_by=sort_by, - sort_order=sort_order, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_cloud_listeners"], - annotations=TOOL_ANNOTATIONS["list_cloud_listeners"],) -def list_cloud_listeners( - compartment_id: str | None = Field(None, description='The OCID of the compartment.'), - cloud_db_system_id: str | None = Field(None, description='The OCID of the cloud DB system.'), - display_name: str | None = Field(None, description='A filter to only return the resources that match the entire display name.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['TIMECREATED', 'DISPLAYNAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "DISPLAYNAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: - return invoke_dbm( - 'list_cloud_listeners', - compartment_id=compartment_id, - cloud_db_system_id=cloud_db_system_id, - display_name=display_name, - limit=limit, - sort_by=sort_by, - sort_order=sort_order,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_consumer_group_privileges"], - annotations=TOOL_ANNOTATIONS["list_consumer_group_privileges"],) -def list_consumer_group_privileges( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - user_name: str = Field(..., description='The name of the user whose details are to be viewed.'), - name: str | None = Field(None, description='A filter to return only resources that match the entire name.'), - sort_by: Literal['NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘NAME’ is ascending. The ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "NAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'list_consumer_group_privileges', - managed_database_id=managed_database_id, - user_name=user_name, - name=name, - sort_by=sort_by, - sort_order=sort_order, - limit=limit, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_cursor_cache_statements"], - annotations=TOOL_ANNOTATIONS["list_cursor_cache_statements"],) -def list_cursor_cache_statements( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - sql_text: str | None = Field(None, description="A filter to return all the SQL plan baselines that match the SQL text. By default, the search\nis case insensitive. To run an exact or case-sensitive search, double-quote the search string.\nYou may also use the '%' symbol as a wildcard."), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['sqlId', 'schema'] | None = Field(None, description='The option to sort the SQL statement summary data.\n\nAllowed values are: "sqlId", "schema"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'list_cursor_cache_statements', - managed_database_id=managed_database_id, - sql_text=sql_text, - limit=limit, - sort_by=sort_by, - sort_order=sort_order, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_data_access_containers"], - annotations=TOOL_ANNOTATIONS["list_data_access_containers"],) -def list_data_access_containers( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - user_name: str = Field(..., description='The name of the user whose details are to be viewed.'), - name: str | None = Field(None, description='A filter to return only resources that match the entire name.'), - sort_by: Literal['NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘NAME’ is ascending. The ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "NAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'list_data_access_containers', - managed_database_id=managed_database_id, - user_name=user_name, - name=name, - sort_by=sort_by, - sort_order=sort_order, - limit=limit, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_database_parameters"], - annotations=TOOL_ANNOTATIONS["list_database_parameters"],) -def list_database_parameters( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - source: Literal['CURRENT', 'SPFILE'] | None = Field(None, description='The source used to list database parameters. `CURRENT` is used to get the\ndatabase parameters that are currently in effect for the database\ninstance. `SPFILE` is used to list parameters from the server parameter\nfile. Default is `CURRENT`.\n\nAllowed values are: "CURRENT", "SPFILE"'), - name: str | None = Field(None, description='A filter to return all parameters that have the text given in their names.'), - is_allowed_values_included: bool | None = Field(None, description='When true, results include a list of valid values for parameters (if applicable).'), - sort_by: Literal['NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: "NAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'list_database_parameters', - managed_database_id=managed_database_id, - source=source, - name=name, - is_allowed_values_included=is_allowed_values_included, - sort_by=sort_by, - sort_order=sort_order, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_db_management_private_endpoints"], - annotations=TOOL_ANNOTATIONS["list_db_management_private_endpoints"],) -def list_db_management_private_endpoints( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - name: str | None = Field(None, description='A filter to return only resources that match the entire name.'), - vcn_id: str | None = Field(None, description='The OCID of the VCN.'), - is_cluster: bool | None = Field(None, description='The option to filter Database Management private endpoints that can used for Oracle Databases in a cluster. This should be used along with the vcnId query parameter.'), - is_dns_resolution_enabled: bool | None = Field(None, description='The option to filter Database Management private endpoints which are endbled with DNS proxy server. This should be used along with the vcnId query parameter.\nOnly one of this parameter and IsClusterDbManagementPrivateEndpointQueryParam should be set to true at one time.'), - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED'] | None = Field(None, description='The lifecycle state of a resource.\n\nAllowed values are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED"'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), - sort_by: Literal['TIMECREATED', 'NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘TIMECREATED’ is descending and the default sort order for ‘NAME’ is ascending.\nThe ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "NAME"'),) -> Any: - return invoke_dbm( - 'list_db_management_private_endpoints', - compartment_id=compartment_id, - name=name, - vcn_id=vcn_id, - is_cluster=is_cluster, - is_dns_resolution_enabled=is_dns_resolution_enabled, - lifecycle_state=lifecycle_state, - limit=limit, - sort_order=sort_order, - sort_by=sort_by,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_external_asm_disk_groups"], - annotations=TOOL_ANNOTATIONS["list_external_asm_disk_groups"],) -def list_external_asm_disk_groups( - external_asm_id: str = Field(..., description='The OCID of the external ASM.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: "NAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'list_external_asm_disk_groups', - external_asm_id=external_asm_id, - limit=limit, - sort_by=sort_by, - sort_order=sort_order, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_external_asm_instances"], - annotations=TOOL_ANNOTATIONS["list_external_asm_instances"],) -def list_external_asm_instances( - compartment_id: str | None = Field(None, description='The OCID of the compartment.'), - external_asm_id: str | None = Field(None, description='The OCID of the external ASM.'), - display_name: str | None = Field(None, description='A filter to only return the resources that match the entire display name.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['TIMECREATED', 'DISPLAYNAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "DISPLAYNAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: - return invoke_dbm( - 'list_external_asm_instances', - compartment_id=compartment_id, - external_asm_id=external_asm_id, - display_name=display_name, - limit=limit, - sort_by=sort_by, - sort_order=sort_order,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_external_asm_users"], - annotations=TOOL_ANNOTATIONS["list_external_asm_users"],) -def list_external_asm_users( - external_asm_id: str = Field(..., description='The OCID of the external ASM.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: "NAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'list_external_asm_users', - external_asm_id=external_asm_id, - limit=limit, - sort_by=sort_by, - sort_order=sort_order, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_external_asms"], - annotations=TOOL_ANNOTATIONS["list_external_asms"],) -def list_external_asms( - compartment_id: str | None = Field(None, description='The OCID of the compartment.'), - external_db_system_id: str | None = Field(None, description='The OCID of the external DB system.'), - display_name: str | None = Field(None, description='A filter to only return the resources that match the entire display name.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['TIMECREATED', 'DISPLAYNAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "DISPLAYNAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: - return invoke_dbm( - 'list_external_asms', - compartment_id=compartment_id, - external_db_system_id=external_db_system_id, - display_name=display_name, - limit=limit, - sort_by=sort_by, - sort_order=sort_order,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_external_cluster_instances"], - annotations=TOOL_ANNOTATIONS["list_external_cluster_instances"],) -def list_external_cluster_instances( - compartment_id: str | None = Field(None, description='The OCID of the compartment.'), - external_cluster_id: str | None = Field(None, description='The OCID of the external cluster.'), - display_name: str | None = Field(None, description='A filter to only return the resources that match the entire display name.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['TIMECREATED', 'DISPLAYNAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "DISPLAYNAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: - return invoke_dbm( - 'list_external_cluster_instances', - compartment_id=compartment_id, - external_cluster_id=external_cluster_id, - display_name=display_name, - limit=limit, - sort_by=sort_by, - sort_order=sort_order,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_external_clusters"], - annotations=TOOL_ANNOTATIONS["list_external_clusters"],) -def list_external_clusters( - compartment_id: str | None = Field(None, description='The OCID of the compartment.'), - external_db_system_id: str | None = Field(None, description='The OCID of the external DB system.'), - display_name: str | None = Field(None, description='A filter to only return the resources that match the entire display name.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['TIMECREATED', 'DISPLAYNAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "DISPLAYNAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: - return invoke_dbm( - 'list_external_clusters', - compartment_id=compartment_id, - external_db_system_id=external_db_system_id, - display_name=display_name, - limit=limit, - sort_by=sort_by, - sort_order=sort_order,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_external_databases"], - annotations=TOOL_ANNOTATIONS["list_external_databases"],) -def list_external_databases( - compartment_id: str | None = Field(None, description='The OCID of the compartment.'), - external_db_system_id: str | None = Field(None, description='The OCID of the external DB system.'), - external_database_id: str | None = Field(None, description='The OCID of the external database.'), - display_name: str | None = Field(None, description='A filter to only return the resources that match the entire display name.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['TIMECREATED', 'DISPLAYNAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "DISPLAYNAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: - return invoke_dbm( - 'list_external_databases', - compartment_id=compartment_id, - external_db_system_id=external_db_system_id, - external_database_id=external_database_id, - display_name=display_name, - limit=limit, - sort_by=sort_by, - sort_order=sort_order,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_external_db_homes"], - annotations=TOOL_ANNOTATIONS["list_external_db_homes"],) -def list_external_db_homes( - compartment_id: str | None = Field(None, description='The OCID of the compartment.'), - external_db_system_id: str | None = Field(None, description='The OCID of the external DB system.'), - display_name: str | None = Field(None, description='A filter to only return the resources that match the entire display name.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['TIMECREATED', 'DISPLAYNAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "DISPLAYNAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: - return invoke_dbm( - 'list_external_db_homes', - compartment_id=compartment_id, - external_db_system_id=external_db_system_id, - display_name=display_name, - limit=limit, - sort_by=sort_by, - sort_order=sort_order,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_external_db_nodes"], - annotations=TOOL_ANNOTATIONS["list_external_db_nodes"],) -def list_external_db_nodes( - compartment_id: str | None = Field(None, description='The OCID of the compartment.'), - external_db_system_id: str | None = Field(None, description='The OCID of the external DB system.'), - display_name: str | None = Field(None, description='A filter to only return the resources that match the entire display name.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['TIMECREATED', 'DISPLAYNAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "DISPLAYNAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: - return invoke_dbm( - 'list_external_db_nodes', - compartment_id=compartment_id, - external_db_system_id=external_db_system_id, - display_name=display_name, - limit=limit, - sort_by=sort_by, - sort_order=sort_order,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_external_db_system_connectors"], - annotations=TOOL_ANNOTATIONS["list_external_db_system_connectors"],) -def list_external_db_system_connectors( - compartment_id: str | None = Field(None, description='The OCID of the compartment.'), - external_db_system_id: str | None = Field(None, description='The OCID of the external DB system.'), - display_name: str | None = Field(None, description='A filter to only return the resources that match the entire display name.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['TIMECREATED', 'DISPLAYNAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "DISPLAYNAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: - return invoke_dbm( - 'list_external_db_system_connectors', - compartment_id=compartment_id, - external_db_system_id=external_db_system_id, - display_name=display_name, - limit=limit, - sort_by=sort_by, - sort_order=sort_order,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_external_db_system_discoveries"], - annotations=TOOL_ANNOTATIONS["list_external_db_system_discoveries"],) -def list_external_db_system_discoveries( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - display_name: str | None = Field(None, description='A filter to only return the resources that match the entire display name.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['TIMECREATED', 'DISPLAYNAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "DISPLAYNAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: - return invoke_dbm( - 'list_external_db_system_discoveries', - compartment_id=compartment_id, - display_name=display_name, - limit=limit, - sort_by=sort_by, - sort_order=sort_order,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_external_db_systems"], - annotations=TOOL_ANNOTATIONS["list_external_db_systems"],) -def list_external_db_systems( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - display_name: str | None = Field(None, description='A filter to only return the resources that match the entire display name.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['TIMECREATED', 'DISPLAYNAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "DISPLAYNAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: - return invoke_dbm( - 'list_external_db_systems', - compartment_id=compartment_id, - display_name=display_name, - limit=limit, - sort_by=sort_by, - sort_order=sort_order,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_external_exadata_infrastructures"], - annotations=TOOL_ANNOTATIONS["list_external_exadata_infrastructures"],) -def list_external_exadata_infrastructures( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - display_name: str | None = Field(None, description='The optional single value query filter parameter on the entity display name.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['TIMECREATED', 'NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘TIMECREATED’ is descending and the default sort order for ‘NAME’ is ascending.\nThe ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "NAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: - return invoke_dbm( - 'list_external_exadata_infrastructures', - compartment_id=compartment_id, - display_name=display_name, - limit=limit, - sort_by=sort_by, - sort_order=sort_order,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_external_exadata_storage_connectors"], - annotations=TOOL_ANNOTATIONS["list_external_exadata_storage_connectors"],) -def list_external_exadata_storage_connectors( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - external_exadata_infrastructure_id: str = Field(..., description='The OCID of the Exadata infrastructure.'), - display_name: str | None = Field(None, description='The optional single value query filter parameter on the entity display name.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['TIMECREATED', 'NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘TIMECREATED’ is descending and the default sort order for ‘NAME’ is ascending.\nThe ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "NAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: - return invoke_dbm( - 'list_external_exadata_storage_connectors', - compartment_id=compartment_id, - external_exadata_infrastructure_id=external_exadata_infrastructure_id, - display_name=display_name, - limit=limit, - sort_by=sort_by, - sort_order=sort_order,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_external_exadata_storage_servers"], - annotations=TOOL_ANNOTATIONS["list_external_exadata_storage_servers"],) -def list_external_exadata_storage_servers( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - external_exadata_infrastructure_id: str = Field(..., description='The OCID of the Exadata infrastructure.'), - display_name: str | None = Field(None, description='The optional single value query filter parameter on the entity display name.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['TIMECREATED', 'NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘TIMECREATED’ is descending and the default sort order for ‘NAME’ is ascending.\nThe ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "NAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: - return invoke_dbm( - 'list_external_exadata_storage_servers', - compartment_id=compartment_id, - external_exadata_infrastructure_id=external_exadata_infrastructure_id, - display_name=display_name, - limit=limit, - sort_by=sort_by, - sort_order=sort_order,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_external_listener_services"], - annotations=TOOL_ANNOTATIONS["list_external_listener_services"],) -def list_external_listener_services( - external_listener_id: str = Field(..., description='The OCID of the external listener.'), - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: "NAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'list_external_listener_services', - external_listener_id=external_listener_id, - managed_database_id=managed_database_id, - limit=limit, - sort_by=sort_by, - sort_order=sort_order, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_external_listeners"], - annotations=TOOL_ANNOTATIONS["list_external_listeners"],) -def list_external_listeners( - compartment_id: str | None = Field(None, description='The OCID of the compartment.'), - external_db_system_id: str | None = Field(None, description='The OCID of the external DB system.'), - display_name: str | None = Field(None, description='A filter to only return the resources that match the entire display name.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['TIMECREATED', 'DISPLAYNAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "DISPLAYNAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: - return invoke_dbm( - 'list_external_listeners', - compartment_id=compartment_id, - external_db_system_id=external_db_system_id, - display_name=display_name, - limit=limit, - sort_by=sort_by, - sort_order=sort_order,) - - - - - - - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_job_executions"], - annotations=TOOL_ANNOTATIONS["list_job_executions"],) -def list_job_executions( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - id: str | None = Field(None, description='The identifier of the resource.'), - job_id: str | None = Field(None, description='The identifier of the job.'), - managed_database_id: str | None = Field(None, description='The OCID of the Managed Database.'), - managed_database_group_id: str | None = Field(None, description='The OCID of the Managed Database Group.'), - status: str | None = Field(None, description='The status of the job execution.'), - name: str | None = Field(None, description='A filter to return only resources that match the entire name.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['TIMECREATED', 'NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘TIMECREATED’ is descending and the default sort order for ‘NAME’ is ascending.\nThe ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "NAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), - job_run_id: str | None = Field(None, description='The identifier of the job run.'),) -> Any: - return invoke_dbm( - 'list_job_executions', - compartment_id=compartment_id, - id=id, - job_id=job_id, - managed_database_id=managed_database_id, - managed_database_group_id=managed_database_group_id, - status=status, - name=name, - limit=limit, - sort_by=sort_by, - sort_order=sort_order, - job_run_id=job_run_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_job_runs"], - annotations=TOOL_ANNOTATIONS["list_job_runs"],) -def list_job_runs( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - id: str | None = Field(None, description='The identifier of the resource.'), - job_id: str | None = Field(None, description='The identifier of the job.'), - managed_database_id: str | None = Field(None, description='The OCID of the Managed Database.'), - managed_database_group_id: str | None = Field(None, description='The OCID of the Managed Database Group.'), - run_status: str | None = Field(None, description='The status of the job run.'), - name: str | None = Field(None, description='A filter to return only resources that match the entire name.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['TIMECREATED', 'NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘TIMECREATED’ is descending and the default sort order for ‘NAME’ is ascending.\nThe ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "NAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: - return invoke_dbm( - 'list_job_runs', - compartment_id=compartment_id, - id=id, - job_id=job_id, - managed_database_id=managed_database_id, - managed_database_group_id=managed_database_group_id, - run_status=run_status, - name=name, - limit=limit, - sort_by=sort_by, - sort_order=sort_order,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_jobs"], - annotations=TOOL_ANNOTATIONS["list_jobs"],) -def list_jobs( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - id: str | None = Field(None, description='The identifier of the resource.'), - managed_database_group_id: str | None = Field(None, description='The OCID of the Managed Database Group.'), - managed_database_id: str | None = Field(None, description='The OCID of the Managed Database.'), - name: str | None = Field(None, description='A filter to return only resources that match the entire name.'), - lifecycle_state: Literal['ACTIVE', 'INACTIVE'] | None = Field(None, description='The lifecycle state of the job.\n\nAllowed values are: "ACTIVE", "INACTIVE"'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['TIMECREATED', 'NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘TIMECREATED’ is descending and the default sort order for ‘NAME’ is ascending.\nThe ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "NAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: - return invoke_dbm( - 'list_jobs', - compartment_id=compartment_id, - id=id, - managed_database_group_id=managed_database_group_id, - managed_database_id=managed_database_id, - name=name, - lifecycle_state=lifecycle_state, - limit=limit, - sort_by=sort_by, - sort_order=sort_order,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_managed_database_groups"], - annotations=TOOL_ANNOTATIONS["list_managed_database_groups"],) -def list_managed_database_groups( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - id: str | None = Field(None, description='The identifier of the resource.'), - name: str | None = Field(None, description='A filter to return only resources that match the entire name.'), - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED'] | None = Field(None, description='The lifecycle state of a resource.\n\nAllowed values are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED"'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['TIMECREATED', 'NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘TIMECREATED’ is descending and the default sort order for ‘NAME’ is ascending.\nThe ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "NAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: - return invoke_dbm( - 'list_managed_database_groups', - compartment_id=compartment_id, - id=id, - name=name, - lifecycle_state=lifecycle_state, - limit=limit, - sort_by=sort_by, - sort_order=sort_order,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_managed_databases"], - annotations=TOOL_ANNOTATIONS["list_managed_databases"],) -def list_managed_databases( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - id: str | None = Field(None, description='The identifier of the resource.'), - name: str | None = Field(None, description='A filter to return only resources that match the entire name.'), - management_option: Literal['BASIC', 'ADVANCED'] | None = Field(None, description='A filter to return Managed Databases with the specified management option.\n\nAllowed values are: "BASIC", "ADVANCED"'), - deployment_type: Literal['ONPREMISE', 'BM', 'VM', 'EXADATA', 'EXADATA_CC', 'AUTONOMOUS', 'EXADATA_XS'] | None = Field(None, description='A filter to return Managed Databases of the specified deployment type.\n\nAllowed values are: "ONPREMISE", "BM", "VM", "EXADATA", "EXADATA_CC", "AUTONOMOUS", "EXADATA_XS"'), - external_exadata_infrastructure_id: str | None = Field(None, description='The OCID of the Exadata infrastructure.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['TIMECREATED', 'NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘TIMECREATED’ is descending and the default sort order for ‘NAME’ is ascending.\nThe ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "NAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: - return invoke_dbm( - 'list_managed_databases', - compartment_id=compartment_id, - id=id, - name=name, - management_option=management_option, - deployment_type=deployment_type, - external_exadata_infrastructure_id=external_exadata_infrastructure_id, - limit=limit, - sort_by=sort_by, - sort_order=sort_order,) - - - - - - - - - - - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_named_credentials"], - annotations=TOOL_ANNOTATIONS["list_named_credentials"],) -def list_named_credentials( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - associated_resource: str | None = Field(None, description='The resource associated to the named credential.'), - type: Literal['ORACLE_DB'] | None = Field(None, description='The type of database that is associated to the named credential.\n\nAllowed values are: "ORACLE_DB"'), - scope: Literal['RESOURCE', 'GLOBAL'] | None = Field(None, description='The scope of named credential.\n\nAllowed values are: "RESOURCE", "GLOBAL"'), - name: str | None = Field(None, description='The name of the named credential.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['TIMECREATED', 'NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘TIMECREATED’ is descending and the default sort order for ‘NAME’ is ascending.\nThe ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "NAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: - return invoke_dbm( - 'list_named_credentials', - compartment_id=compartment_id, - associated_resource=associated_resource, - type=type, - scope=scope, - name=name, - limit=limit, - sort_by=sort_by, - sort_order=sort_order,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_object_privileges"], - annotations=TOOL_ANNOTATIONS["list_object_privileges"],) -def list_object_privileges( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - user_name: str = Field(..., description='The name of the user whose details are to be viewed.'), - name: str | None = Field(None, description='A filter to return only resources that match the entire name.'), - sort_by: Literal['NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘NAME’ is ascending. The ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "NAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'list_object_privileges', - managed_database_id=managed_database_id, - user_name=user_name, - name=name, - sort_by=sort_by, - sort_order=sort_order, - limit=limit, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_optimizer_statistics_advisor_executions"], - annotations=TOOL_ANNOTATIONS["list_optimizer_statistics_advisor_executions"],) -def list_optimizer_statistics_advisor_executions( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - start_time_greater_than_or_equal_to: str | None = Field(None, description='The start time of the time range to retrieve the optimizer statistics of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".'), - end_time_less_than_or_equal_to: str | None = Field(None, description='The end time of the time range to retrieve the optimizer statistics of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".'), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'list_optimizer_statistics_advisor_executions', - managed_database_id=managed_database_id, - start_time_greater_than_or_equal_to=start_time_greater_than_or_equal_to, - end_time_less_than_or_equal_to=end_time_less_than_or_equal_to, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_optimizer_statistics_collection_aggregations"], - annotations=TOOL_ANNOTATIONS["list_optimizer_statistics_collection_aggregations"],) -def list_optimizer_statistics_collection_aggregations( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - group_type: Literal['TASK_STATUS', 'TASK_OBJECTS_STATUS'] = Field(..., description='The optimizer statistics tasks grouped by type.\n\nAllowed values are: "TASK_STATUS", "TASK_OBJECTS_STATUS"'), - start_time_greater_than_or_equal_to: str | None = Field(None, description='The start time of the time range to retrieve the optimizer statistics of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".'), - end_time_less_than_or_equal_to: str | None = Field(None, description='The end time of the time range to retrieve the optimizer statistics of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".'), - task_type: Literal['ALL', 'MANUAL', 'AUTO'] | None = Field(None, description='The filter types of the optimizer statistics tasks.\n\nAllowed values are: "ALL", "MANUAL", "AUTO"'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'list_optimizer_statistics_collection_aggregations', - managed_database_id=managed_database_id, - group_type=group_type, - start_time_greater_than_or_equal_to=start_time_greater_than_or_equal_to, - end_time_less_than_or_equal_to=end_time_less_than_or_equal_to, - task_type=task_type, - limit=limit, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_optimizer_statistics_collection_operations"], - annotations=TOOL_ANNOTATIONS["list_optimizer_statistics_collection_operations"],) -def list_optimizer_statistics_collection_operations( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - start_time_greater_than_or_equal_to: str | None = Field(None, description='The start time of the time range to retrieve the optimizer statistics of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".'), - end_time_less_than_or_equal_to: str | None = Field(None, description='The end time of the time range to retrieve the optimizer statistics of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".'), - task_type: Literal['ALL', 'MANUAL', 'AUTO'] | None = Field(None, description='The filter types of the optimizer statistics tasks.\n\nAllowed values are: "ALL", "MANUAL", "AUTO"'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - filter_by: str | None = Field(None, description='The parameter used to filter the optimizer statistics operations.\nAny property of the OptimizerStatisticsCollectionOperationSummary can be used to define the filter condition.\nThe allowed conditional operators are AND or OR, and the allowed binary operators are are >, < and =. Any other operator is regarded invalid.\nExample: jobName= AND status='), - sort_by: Literal['START_TIME', 'END_TIME', 'STATUS'] | None = Field(None, description='Sorts the list of optimizer statistics operations based on a specific attribute.\n\nAllowed values are: "START_TIME", "END_TIME", "STATUS"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'list_optimizer_statistics_collection_operations', - managed_database_id=managed_database_id, - start_time_greater_than_or_equal_to=start_time_greater_than_or_equal_to, - end_time_less_than_or_equal_to=end_time_less_than_or_equal_to, - task_type=task_type, - limit=limit, - filter_by=filter_by, - sort_by=sort_by, - sort_order=sort_order, - opc_named_credential_id=opc_named_credential_id,) - - - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_preferred_credentials"], - annotations=TOOL_ANNOTATIONS["list_preferred_credentials"],) -def list_preferred_credentials( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'),) -> Any: - return invoke_dbm( - 'list_preferred_credentials', - managed_database_id=managed_database_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_proxied_for_users"], - annotations=TOOL_ANNOTATIONS["list_proxied_for_users"],) -def list_proxied_for_users( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - user_name: str = Field(..., description='The name of the user whose details are to be viewed.'), - name: str | None = Field(None, description='A filter to return only resources that match the entire name.'), - sort_by: Literal['NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘NAME’ is ascending. The ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "NAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'list_proxied_for_users', - managed_database_id=managed_database_id, - user_name=user_name, - name=name, - sort_by=sort_by, - sort_order=sort_order, - limit=limit, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_proxy_users"], - annotations=TOOL_ANNOTATIONS["list_proxy_users"],) -def list_proxy_users( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - user_name: str = Field(..., description='The name of the user whose details are to be viewed.'), - name: str | None = Field(None, description='A filter to return only resources that match the entire name.'), - sort_by: Literal['NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘NAME’ is ascending. The ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "NAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'list_proxy_users', - managed_database_id=managed_database_id, - user_name=user_name, - name=name, - sort_by=sort_by, - sort_order=sort_order, - limit=limit, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_roles"], - annotations=TOOL_ANNOTATIONS["list_roles"],) -def list_roles( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - user_name: str = Field(..., description='The name of the user whose details are to be viewed.'), - name: str | None = Field(None, description='A filter to return only resources that match the entire name.'), - sort_by: Literal['NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘NAME’ is ascending. The ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "NAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'list_roles', - managed_database_id=managed_database_id, - user_name=user_name, - name=name, - sort_by=sort_by, - sort_order=sort_order, - limit=limit, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_sql_plan_baseline_jobs"], - annotations=TOOL_ANNOTATIONS["list_sql_plan_baseline_jobs"],) -def list_sql_plan_baseline_jobs( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - name: str | None = Field(None, description='A filter to return the SQL plan baseline jobs that match the name.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['TIMECREATED', 'NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘TIMECREATED’ is descending and the default sort order for ‘NAME’ is ascending.\nThe ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "NAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'list_sql_plan_baseline_jobs', - managed_database_id=managed_database_id, - name=name, - limit=limit, - sort_by=sort_by, - sort_order=sort_order, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_sql_plan_baselines"], - annotations=TOOL_ANNOTATIONS["list_sql_plan_baselines"],) -def list_sql_plan_baselines( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - plan_name: str | None = Field(None, description='A filter to return only SQL plan baselines that match the plan name.'), - sql_handle: str | None = Field(None, description='A filter to return all the SQL plan baselines for the specified SQL handle.'), - sql_text: str | None = Field(None, description="A filter to return all the SQL plan baselines that match the SQL text. By default, the search\nis case insensitive. To run an exact or case-sensitive search, double-quote the search string.\nYou may also use the '%' symbol as a wildcard."), - is_enabled: bool | None = Field(None, description='A filter to return only SQL plan baselines that are either enabled or not enabled.\nBy default, all SQL plan baselines are returned.'), - is_accepted: bool | None = Field(None, description='A filter to return only SQL plan baselines that are either accepted or not accepted.\nBy default, all SQL plan baselines are returned.'), - is_reproduced: bool | None = Field(None, description='A filter to return only SQL plan baselines that were either reproduced or\nnot reproduced by the optimizer. By default, all SQL plan baselines are returned.'), - is_fixed: bool | None = Field(None, description='A filter to return only SQL plan baselines that are either fixed or not fixed.\nBy default, all SQL plan baselines are returned.'), - is_adaptive: bool | None = Field(None, description='A filter to return only SQL plan baselines that are either adaptive or not adaptive.\nBy default, all SQL plan baselines are returned.'), - origin: Literal['ADDM_SQLTUNE', 'AUTO_CAPTURE', 'AUTO_SQLTUNE', 'EVOLVE_AUTO_INDEX_LOAD', 'EVOLVE_CREATE_FROM_ADAPTIVE', 'EVOLVE_LOAD_FROM_STS', 'EVOLVE_LOAD_FROM_AWR', 'EVOLVE_LOAD_FROM_CURSOR_CACHE', 'MANUAL_LOAD', 'MANUAL_LOAD_FROM_AWR', 'MANUAL_LOAD_FROM_CURSOR_CACHE', 'MANUAL_LOAD_FROM_STS', 'MANUAL_SQLTUNE', 'STORED_OUTLINE', 'UNKNOWN'] | None = Field(None, description='A filter to return all the SQL plan baselines that match the origin.\n\nAllowed values are: "ADDM_SQLTUNE", "AUTO_CAPTURE", "AUTO_SQLTUNE", "EVOLVE_AUTO_INDEX_LOAD", "EVOLVE_CREATE_FROM_ADAPTIVE", "EVOLVE_LOAD_FROM_STS", "EVOLVE_LOAD_FROM_AWR", "EVOLVE_LOAD_FROM_CURSOR_CACHE", "MANUAL_LOAD", "MANUAL_LOAD_FROM_AWR", "MANUAL_LOAD_FROM_CURSOR_CACHE", "MANUAL_LOAD_FROM_STS", "MANUAL_SQLTUNE", "STORED_OUTLINE", "UNKNOWN"'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['timeCreated', 'timeLastModified', 'timeLastExecuted'] | None = Field(None, description='The option to sort the SQL plan baseline summary data.\n\nAllowed values are: "timeCreated", "timeLastModified", "timeLastExecuted"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Descending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), - is_auto_purged: bool | None = Field(None, description='A filter to return only SQL plan baselines that are either auto-purged or not auto-purged.\nBy default, all SQL plan baselines are returned.'), - time_last_executed_greater_than: datetime | None = Field(None, description='A filter to return only SQL plan baselines whose last execution time is\nafter the specified value. By default, all SQL plan baselines are returned.'), - time_last_executed_less_than: datetime | None = Field(None, description='A filter to return only SQL plan baselines whose last execution time is\nbefore the specified value. By default, all SQL plan baselines are returned.'), - is_never_executed: bool | None = Field(None, description='A filter to return only SQL plan baselines that are not executed till now.\nBy default, all SQL plan baselines are returned.'), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'list_sql_plan_baselines', - managed_database_id=managed_database_id, - plan_name=plan_name, - sql_handle=sql_handle, - sql_text=sql_text, - is_enabled=is_enabled, - is_accepted=is_accepted, - is_reproduced=is_reproduced, - is_fixed=is_fixed, - is_adaptive=is_adaptive, - origin=origin, - limit=limit, - sort_by=sort_by, - sort_order=sort_order, - is_auto_purged=is_auto_purged, - time_last_executed_greater_than=time_last_executed_greater_than, - time_last_executed_less_than=time_last_executed_less_than, - is_never_executed=is_never_executed, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_sql_tuning_advisor_task_findings"], - annotations=TOOL_ANNOTATIONS["list_sql_tuning_advisor_task_findings"],) -def list_sql_tuning_advisor_task_findings( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - sql_tuning_advisor_task_id: int = Field(..., description='The SQL tuning task identifier. This is not the OCID.'), - begin_exec_id: int | None = Field(None, description='The optional greater than or equal to filter on the execution ID related to a specific SQL Tuning Advisor task.'), - end_exec_id: int | None = Field(None, description='The optional less than or equal to query parameter to filter on the execution ID related to a specific SQL Tuning Advisor task.'), - search_period: Literal['LAST_24HR', 'LAST_7DAY', 'LAST_31DAY', 'SINCE_LAST', 'ALL'] | None = Field(None, description='The search period during which the API will search for begin and end exec id, if not supplied.\nUnused if beginExecId and endExecId optional query params are both supplied.\n\nAllowed values are: "LAST_24HR", "LAST_7DAY", "LAST_31DAY", "SINCE_LAST", "ALL"'), - finding_filter: Literal['none', 'FINDINGS', 'NOFINDINGS', 'ERRORS', 'PROFILES', 'INDICES', 'STATS', 'RESTRUCTURE', 'ALTERNATIVE', 'AUTO_PROFILES', 'OTHER_PROFILES'] | None = Field(None, description='The filter used to display specific findings in the report.\n\nAllowed values are: "none", "FINDINGS", "NOFINDINGS", "ERRORS", "PROFILES", "INDICES", "STATS", "RESTRUCTURE", "ALTERNATIVE", "AUTO_PROFILES", "OTHER_PROFILES"'), - stats_hash_filter: str | None = Field(None, description='The hash value of the object for the statistic finding search.'), - index_hash_filter: str | None = Field(None, description='The hash value of the index table name.'), - sort_by: Literal['DBTIME_BENEFIT', 'PARSING_SCHEMA', 'SQL_ID', 'STATS', 'PROFILES', 'SQL_BENEFIT', 'DATE', 'INDICES', 'RESTRUCTURE', 'ALTERNATIVE', 'MISC', 'ERROR', 'TIMEOUTS'] | None = Field(None, description='The possible sortBy values of an object\'s recommendations.\n\nAllowed values are: "DBTIME_BENEFIT", "PARSING_SCHEMA", "SQL_ID", "STATS", "PROFILES", "SQL_BENEFIT", "DATE", "INDICES", "RESTRUCTURE", "ALTERNATIVE", "MISC", "ERROR", "TIMEOUTS"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Descending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'list_sql_tuning_advisor_task_findings', - managed_database_id=managed_database_id, - sql_tuning_advisor_task_id=sql_tuning_advisor_task_id, - begin_exec_id=begin_exec_id, - end_exec_id=end_exec_id, - search_period=search_period, - finding_filter=finding_filter, - stats_hash_filter=stats_hash_filter, - index_hash_filter=index_hash_filter, - sort_by=sort_by, - sort_order=sort_order, - limit=limit, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_sql_tuning_advisor_task_recommendations"], - annotations=TOOL_ANNOTATIONS["list_sql_tuning_advisor_task_recommendations"],) -def list_sql_tuning_advisor_task_recommendations( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - sql_tuning_advisor_task_id: int = Field(..., description='The SQL tuning task identifier. This is not the OCID.'), - sql_object_id: int = Field(..., description='The SQL object ID for the SQL tuning task. This is not the OCID.'), - execution_id: int = Field(..., description='The execution ID for an execution of a SQL tuning task. This is not the OCID.'), - sort_by: Literal['RECOMMENDATION_TYPE', 'BENEFIT'] | None = Field(None, description='The possible sortBy values of an object\'s recommendations.\n\nAllowed values are: "RECOMMENDATION_TYPE", "BENEFIT"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Descending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'list_sql_tuning_advisor_task_recommendations', - managed_database_id=managed_database_id, - sql_tuning_advisor_task_id=sql_tuning_advisor_task_id, - sql_object_id=sql_object_id, - execution_id=execution_id, - sort_by=sort_by, - sort_order=sort_order, - limit=limit, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_sql_tuning_advisor_tasks"], - annotations=TOOL_ANNOTATIONS["list_sql_tuning_advisor_tasks"],) -def list_sql_tuning_advisor_tasks( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - name: str | None = Field(None, description='The optional query parameter to filter the SQL Tuning Advisor task list by name.'), - status: Literal['INITIAL', 'EXECUTING', 'INTERRUPTED', 'COMPLETED', 'ERROR'] | None = Field(None, description='The optional query parameter to filter the SQL Tuning Advisor task list by status.\n\nAllowed values are: "INITIAL", "EXECUTING", "INTERRUPTED", "COMPLETED", "ERROR"'), - time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp.'), - time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['NAME', 'START_TIME'] | None = Field(None, description='The option to sort the SQL Tuning Advisor task summary data.\n\nAllowed values are: "NAME", "START_TIME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Descending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'list_sql_tuning_advisor_tasks', - managed_database_id=managed_database_id, - name=name, - status=status, - time_greater_than_or_equal_to=time_greater_than_or_equal_to, - time_less_than_or_equal_to=time_less_than_or_equal_to, - limit=limit, - sort_by=sort_by, - sort_order=sort_order, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_sql_tuning_sets"], - annotations=TOOL_ANNOTATIONS["list_sql_tuning_sets"],) -def list_sql_tuning_sets( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - owner: str | None = Field(None, description='The owner of the SQL tuning set.'), - name_contains: str | None = Field(None, description='Allow searching the name of the SQL tuning set by partial matching. The search is case insensitive.'), - sort_by: Literal['NAME'] | None = Field(None, description='The option to sort the SQL tuning set summary data.\n\nAllowed values are: "NAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'list_sql_tuning_sets', - managed_database_id=managed_database_id, - owner=owner, - name_contains=name_contains, - sort_by=sort_by, - sort_order=sort_order, - limit=limit, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_system_privileges"], - annotations=TOOL_ANNOTATIONS["list_system_privileges"],) -def list_system_privileges( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - user_name: str = Field(..., description='The name of the user whose details are to be viewed.'), - name: str | None = Field(None, description='A filter to return only resources that match the entire name.'), - sort_by: Literal['NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘NAME’ is ascending. The ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "NAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'list_system_privileges', - managed_database_id=managed_database_id, - user_name=user_name, - name=name, - sort_by=sort_by, - sort_order=sort_order, - limit=limit, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_table_statistics"], - annotations=TOOL_ANNOTATIONS["list_table_statistics"],) -def list_table_statistics( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'list_table_statistics', - managed_database_id=managed_database_id, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_tablespaces"], - annotations=TOOL_ANNOTATIONS["list_tablespaces"],) -def list_tablespaces( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - name: str | None = Field(None, description='A filter to return only resources that match the entire name.'), - sort_by: Literal['TIMECREATED', 'NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘TIMECREATED’ is descending and the default sort order for ‘NAME’ is ascending.\nThe ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "NAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'list_tablespaces', - managed_database_id=managed_database_id, - name=name, - sort_by=sort_by, - sort_order=sort_order, - limit=limit, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_users"], - annotations=TOOL_ANNOTATIONS["list_users"],) -def list_users( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - name: str | None = Field(None, description='A filter to return only resources that match the entire name.'), - sort_by: Literal['TIMECREATED', 'NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘TIMECREATED’ is descending and the default sort order for ‘NAME’ is ascending.\nThe ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "NAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'list_users', - managed_database_id=managed_database_id, - name=name, - sort_by=sort_by, - sort_order=sort_order, - limit=limit, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_work_request_errors"], - annotations=TOOL_ANNOTATIONS["list_work_request_errors"],) -def list_work_request_errors( - work_request_id: str = Field(..., description='The OCID of the asynchronous work request.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['timeAccepted'] | None = Field(None, description='The field to sort by. Only one sort order may be provided and the default order for timeAccepted is descending.\n\nAllowed values are: "timeAccepted"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: - return invoke_dbm( - 'list_work_request_errors', - work_request_id=work_request_id, - limit=limit, - sort_by=sort_by, - sort_order=sort_order,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_work_request_logs"], - annotations=TOOL_ANNOTATIONS["list_work_request_logs"],) -def list_work_request_logs( - work_request_id: str = Field(..., description='The OCID of the asynchronous work request.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['timeAccepted'] | None = Field(None, description='The field to sort by. Only one sort order may be provided and the default order for timeAccepted is descending.\n\nAllowed values are: "timeAccepted"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: - return invoke_dbm( - 'list_work_request_logs', - work_request_id=work_request_id, - limit=limit, - sort_by=sort_by, - sort_order=sort_order,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_work_requests"], - annotations=TOOL_ANNOTATIONS["list_work_requests"],) -def list_work_requests( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - resource_id: str | None = Field(None, description='The OCID of the resource affected by the work request.'), - work_request_id: str | None = Field(None, description='The OCID of the asynchronous work request.'), - status: Literal['ACCEPTED', 'IN_PROGRESS', 'FAILED', 'SUCCEEDED', 'CANCELING', 'CANCELED'] | None = Field(None, description='A filter that returns the resources whose status matches the given WorkRequestStatus.\n\nAllowed values are: "ACCEPTED", "IN_PROGRESS", "FAILED", "SUCCEEDED", "CANCELING", "CANCELED"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), - sort_by: Literal['timeAccepted'] | None = Field(None, description='The field to sort by. Only one sort order may be provided and the default order for timeAccepted is descending.\n\nAllowed values are: "timeAccepted"'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000),) -> Any: - return invoke_dbm( - 'list_work_requests', - compartment_id=compartment_id, - resource_id=resource_id, - work_request_id=work_request_id, - status=status, - sort_order=sort_order, - sort_by=sort_by, - limit=limit,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_alert_log_counts"], - annotations=TOOL_ANNOTATIONS["summarize_alert_log_counts"],) -def summarize_alert_log_counts( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to timestamp to filter the logs.'), - time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to timestamp to filter the logs.'), - level_filter: Literal['CRITICAL', 'SEVERE', 'IMPORTANT', 'NORMAL', 'ALL'] | None = Field(None, description='The optional parameter to filter the alert logs by log level.\n\nAllowed values are: "CRITICAL", "SEVERE", "IMPORTANT", "NORMAL", "ALL"'), - group_by: Literal['LEVEL', 'TYPE'] | None = Field(None, description='The optional parameter used to group different alert logs.\n\nAllowed values are: "LEVEL", "TYPE"'), - type_filter: Literal['UNKNOWN', 'INCIDENT_ERROR', 'ERROR', 'WARNING', 'NOTIFICATION', 'TRACE', 'ALL'] | None = Field(None, description='The optional parameter to filter the attention or alert logs by type.\n\nAllowed values are: "UNKNOWN", "INCIDENT_ERROR", "ERROR", "WARNING", "NOTIFICATION", "TRACE", "ALL"'), - log_search_text: str | None = Field(None, description='The optional query parameter to filter the attention or alert logs by search text.'), - is_regular_expression: bool | None = Field(None, description='The flag to indicate whether the search text is regular expression or not.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'summarize_alert_log_counts', - managed_database_id=managed_database_id, - time_greater_than_or_equal_to=time_greater_than_or_equal_to, - time_less_than_or_equal_to=time_less_than_or_equal_to, - level_filter=level_filter, - group_by=group_by, - type_filter=type_filter, - log_search_text=log_search_text, - is_regular_expression=is_regular_expression, - limit=limit, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_attention_log_counts"], - annotations=TOOL_ANNOTATIONS["summarize_attention_log_counts"],) -def summarize_attention_log_counts( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to timestamp to filter the logs.'), - time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to timestamp to filter the logs.'), - urgency_filter: Literal['IMMEDIATE', 'SOON', 'DEFERRABLE', 'INFO', 'ALL'] | None = Field(None, description='The optional parameter to filter the attention logs by urgency.\n\nAllowed values are: "IMMEDIATE", "SOON", "DEFERRABLE", "INFO", "ALL"'), - group_by: Literal['URGENCY', 'TYPE'] | None = Field(None, description='The optional parameter used to group different attention logs.\n\nAllowed values are: "URGENCY", "TYPE"'), - type_filter: Literal['UNKNOWN', 'INCIDENT_ERROR', 'ERROR', 'WARNING', 'NOTIFICATION', 'TRACE', 'ALL'] | None = Field(None, description='The optional parameter to filter the attention or alert logs by type.\n\nAllowed values are: "UNKNOWN", "INCIDENT_ERROR", "ERROR", "WARNING", "NOTIFICATION", "TRACE", "ALL"'), - log_search_text: str | None = Field(None, description='The optional query parameter to filter the attention or alert logs by search text.'), - is_regular_expression: bool | None = Field(None, description='The flag to indicate whether the search text is regular expression or not.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'summarize_attention_log_counts', - managed_database_id=managed_database_id, - time_greater_than_or_equal_to=time_greater_than_or_equal_to, - time_less_than_or_equal_to=time_less_than_or_equal_to, - urgency_filter=urgency_filter, - group_by=group_by, - type_filter=type_filter, - log_search_text=log_search_text, - is_regular_expression=is_regular_expression, - limit=limit, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_awr_db_cpu_usages"], - annotations=TOOL_ANNOTATIONS["summarize_awr_db_cpu_usages"],) -def summarize_awr_db_cpu_usages( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - awr_db_id: str = Field(..., description='Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.'), - inst_num: str | None = Field(None, description='The optional single value query parameter to filter the database instance number.'), - begin_sn_id_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), - end_sn_id_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot ID.'), - time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp.'), - time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp.'), - session_type: Literal['FOREGROUND', 'BACKGROUND', 'ALL'] | None = Field(None, description='The optional query parameter to filter ASH activities by FOREGROUND or BACKGROUND.\n\nAllowed values are: "FOREGROUND", "BACKGROUND", "ALL"'), - container_id: int | None = Field(None, description='AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.'), - limit: int | None = Field(None, description='For large list pagination. Maximum number of results to return in one response page. Example: 1000.', ge=1, le=1000), - sort_by: Literal['TIME_SAMPLED', 'AVG_VALUE'] | None = Field(None, description='The option to sort the AWR CPU usage summary data.\n\nAllowed values are: "TIME_SAMPLED", "AVG_VALUE"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Descending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'summarize_awr_db_cpu_usages', - managed_database_id=managed_database_id, - awr_db_id=awr_db_id, - inst_num=inst_num, - begin_sn_id_greater_than_or_equal_to=begin_sn_id_greater_than_or_equal_to, - end_sn_id_less_than_or_equal_to=end_sn_id_less_than_or_equal_to, - time_greater_than_or_equal_to=time_greater_than_or_equal_to, - time_less_than_or_equal_to=time_less_than_or_equal_to, - session_type=session_type, - container_id=container_id, - limit=limit, - sort_by=sort_by, - sort_order=sort_order, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_awr_db_metrics"], - annotations=TOOL_ANNOTATIONS["summarize_awr_db_metrics"],) -def summarize_awr_db_metrics( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - awr_db_id: str = Field(..., description='Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.'), - name: list[str] = Field(..., description='The required multiple value query parameter to filter the entity name.'), - inst_num: str | None = Field(None, description='The optional single value query parameter to filter the database instance number.'), - begin_sn_id_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), - end_sn_id_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot ID.'), - time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp.'), - time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp.'), - container_id: int | None = Field(None, description='AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.'), - limit: int | None = Field(None, description='For large list pagination. Maximum number of results to return in one response page. Example: 1000.', ge=1, le=1000), - sort_by: Literal['TIMESTAMP', 'NAME'] | None = Field(None, description='The option to sort the AWR time series summary data.\n\nAllowed values are: "TIMESTAMP", "NAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Descending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'summarize_awr_db_metrics', - managed_database_id=managed_database_id, - awr_db_id=awr_db_id, - name=name, - inst_num=inst_num, - begin_sn_id_greater_than_or_equal_to=begin_sn_id_greater_than_or_equal_to, - end_sn_id_less_than_or_equal_to=end_sn_id_less_than_or_equal_to, - time_greater_than_or_equal_to=time_greater_than_or_equal_to, - time_less_than_or_equal_to=time_less_than_or_equal_to, - container_id=container_id, - limit=limit, - sort_by=sort_by, - sort_order=sort_order, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_awr_db_parameter_changes"], - annotations=TOOL_ANNOTATIONS["summarize_awr_db_parameter_changes"],) -def summarize_awr_db_parameter_changes( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - awr_db_id: str = Field(..., description='Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.'), - name: str = Field(..., description='The required single value query parameter to filter the entity name.'), - inst_num: str | None = Field(None, description='The optional single value query parameter to filter the database instance number.'), - begin_sn_id_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), - end_sn_id_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot ID.'), - time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp.'), - time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp.'), - container_id: int | None = Field(None, description='AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.'), - limit: int | None = Field(None, description='For large list pagination. Maximum number of results to return in one response page. Example: 1000.', ge=1, le=1000), - sort_by: Literal['IS_CHANGED', 'NAME'] | None = Field(None, description='The option to sort the AWR database parameter change history data.\n\nAllowed values are: "IS_CHANGED", "NAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Descending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'summarize_awr_db_parameter_changes', - managed_database_id=managed_database_id, - awr_db_id=awr_db_id, - name=name, - inst_num=inst_num, - begin_sn_id_greater_than_or_equal_to=begin_sn_id_greater_than_or_equal_to, - end_sn_id_less_than_or_equal_to=end_sn_id_less_than_or_equal_to, - time_greater_than_or_equal_to=time_greater_than_or_equal_to, - time_less_than_or_equal_to=time_less_than_or_equal_to, - container_id=container_id, - limit=limit, - sort_by=sort_by, - sort_order=sort_order, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_awr_db_parameters"], - annotations=TOOL_ANNOTATIONS["summarize_awr_db_parameters"],) -def summarize_awr_db_parameters( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - awr_db_id: str = Field(..., description='Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.'), - inst_num: str | None = Field(None, description='The optional single value query parameter to filter the database instance number.'), - begin_sn_id_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), - end_sn_id_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot ID.'), - time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp.'), - time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp.'), - container_id: int | None = Field(None, description='AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.'), - name: list[str] | None = Field(None, description='The optional multiple value query parameter to filter the entity name.'), - name_contains: str | None = Field(None, description='The optional contains query parameter to filter the entity name by any part of the name.'), - value_changed: Literal['Y', 'N'] | None = Field(None, description='The optional query parameter to filter database parameters whose values were changed.\n\nAllowed values are: "Y", "N"'), - value_default: Literal['TRUE', 'FALSE'] | None = Field(None, description='The optional query parameter to filter the database parameters that had the default value in the last snapshot.\n\nAllowed values are: "TRUE", "FALSE"'), - value_modified: Literal['MODIFIED', 'SYSTEM_MOD', 'FALSE'] | None = Field(None, description='The optional query parameter to filter the database parameters that had a modified value in the last snapshot.\n\nAllowed values are: "MODIFIED", "SYSTEM_MOD", "FALSE"'), - limit: int | None = Field(None, description='For large list pagination. Maximum number of results to return in one response page. Example: 1000.', ge=1, le=1000), - sort_by: Literal['IS_CHANGED', 'NAME'] | None = Field(None, description='The option to sort the AWR database parameter change history data.\n\nAllowed values are: "IS_CHANGED", "NAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Descending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'summarize_awr_db_parameters', - managed_database_id=managed_database_id, - awr_db_id=awr_db_id, - inst_num=inst_num, - begin_sn_id_greater_than_or_equal_to=begin_sn_id_greater_than_or_equal_to, - end_sn_id_less_than_or_equal_to=end_sn_id_less_than_or_equal_to, - time_greater_than_or_equal_to=time_greater_than_or_equal_to, - time_less_than_or_equal_to=time_less_than_or_equal_to, - container_id=container_id, - name=name, - name_contains=name_contains, - value_changed=value_changed, - value_default=value_default, - value_modified=value_modified, - limit=limit, - sort_by=sort_by, - sort_order=sort_order, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_awr_db_snapshot_ranges"], - annotations=TOOL_ANNOTATIONS["summarize_awr_db_snapshot_ranges"],) -def summarize_awr_db_snapshot_ranges( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - name: str | None = Field(None, description='The optional single value query parameter to filter the entity name.'), - time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp.'), - time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: Literal['END_INTERVAL_TIME', 'NAME'] | None = Field(None, description='The option to sort the AWR summary data.\n\nAllowed values are: "END_INTERVAL_TIME", "NAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Descending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'summarize_awr_db_snapshot_ranges', - managed_database_id=managed_database_id, - name=name, - time_greater_than_or_equal_to=time_greater_than_or_equal_to, - time_less_than_or_equal_to=time_less_than_or_equal_to, - limit=limit, - sort_by=sort_by, - sort_order=sort_order, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_awr_db_sysstats"], - annotations=TOOL_ANNOTATIONS["summarize_awr_db_sysstats"],) -def summarize_awr_db_sysstats( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - awr_db_id: str = Field(..., description='Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.'), - name: list[str] = Field(..., description='The required multiple value query parameter to filter the entity name.'), - inst_num: str | None = Field(None, description='The optional single value query parameter to filter the database instance number.'), - begin_sn_id_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), - end_sn_id_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot ID.'), - time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp.'), - time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp.'), - container_id: int | None = Field(None, description='AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.'), - limit: int | None = Field(None, description='For large list pagination. Maximum number of results to return in one response page. Example: 1000.', ge=1, le=1000), - sort_by: Literal['TIME_BEGIN', 'NAME'] | None = Field(None, description='The option to sort the data within a time period.\n\nAllowed values are: "TIME_BEGIN", "NAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Descending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'summarize_awr_db_sysstats', - managed_database_id=managed_database_id, - awr_db_id=awr_db_id, - name=name, - inst_num=inst_num, - begin_sn_id_greater_than_or_equal_to=begin_sn_id_greater_than_or_equal_to, - end_sn_id_less_than_or_equal_to=end_sn_id_less_than_or_equal_to, - time_greater_than_or_equal_to=time_greater_than_or_equal_to, - time_less_than_or_equal_to=time_less_than_or_equal_to, - container_id=container_id, - limit=limit, - sort_by=sort_by, - sort_order=sort_order, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_awr_db_top_wait_events"], - annotations=TOOL_ANNOTATIONS["summarize_awr_db_top_wait_events"],) -def summarize_awr_db_top_wait_events( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - awr_db_id: str = Field(..., description='Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.'), - inst_num: str | None = Field(None, description='The optional single value query parameter to filter the database instance number.'), - begin_sn_id_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), - end_sn_id_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot ID.'), - time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp.'), - time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp.'), - session_type: Literal['FOREGROUND', 'BACKGROUND', 'ALL'] | None = Field(None, description='The optional query parameter to filter ASH activities by FOREGROUND or BACKGROUND.\n\nAllowed values are: "FOREGROUND", "BACKGROUND", "ALL"'), - container_id: int | None = Field(None, description='AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.'), - top_n: int | None = Field(None, description='The optional query parameter to filter the number of top categories to be returned.'), - sort_by: Literal['WAITS_PERSEC', 'AVG_WAIT_TIME_PERSEC'] | None = Field(None, description='The option to sort the AWR top event summary data.\n\nAllowed values are: "WAITS_PERSEC", "AVG_WAIT_TIME_PERSEC"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Descending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'summarize_awr_db_top_wait_events', - managed_database_id=managed_database_id, - awr_db_id=awr_db_id, - inst_num=inst_num, - begin_sn_id_greater_than_or_equal_to=begin_sn_id_greater_than_or_equal_to, - end_sn_id_less_than_or_equal_to=end_sn_id_less_than_or_equal_to, - time_greater_than_or_equal_to=time_greater_than_or_equal_to, - time_less_than_or_equal_to=time_less_than_or_equal_to, - session_type=session_type, - container_id=container_id, - top_n=top_n, - sort_by=sort_by, - sort_order=sort_order, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_awr_db_wait_event_buckets"], - annotations=TOOL_ANNOTATIONS["summarize_awr_db_wait_event_buckets"],) -def summarize_awr_db_wait_event_buckets( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - awr_db_id: str = Field(..., description='Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.'), - name: str = Field(..., description='The required single value query parameter to filter the entity name.'), - inst_num: str | None = Field(None, description='The optional single value query parameter to filter the database instance number.'), - begin_sn_id_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), - end_sn_id_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot ID.'), - time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp.'), - time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp.'), - num_bucket: int | None = Field(None, description='The number of buckets within the histogram.'), - min_value: float | None = Field(None, description='The minimum value of the histogram.'), - max_value: float | None = Field(None, description='The maximum value of the histogram.'), - container_id: int | None = Field(None, description='AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.'), - limit: int | None = Field(None, description='For large list pagination. Maximum number of results to return in one response page. Example: 1000.', ge=1, le=1000), - sort_by: Literal['CATEGORY', 'PERCENTAGE'] | None = Field(None, description='The option to sort distribution data.\n\nAllowed values are: "CATEGORY", "PERCENTAGE"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'summarize_awr_db_wait_event_buckets', - managed_database_id=managed_database_id, - awr_db_id=awr_db_id, - name=name, - inst_num=inst_num, - begin_sn_id_greater_than_or_equal_to=begin_sn_id_greater_than_or_equal_to, - end_sn_id_less_than_or_equal_to=end_sn_id_less_than_or_equal_to, - time_greater_than_or_equal_to=time_greater_than_or_equal_to, - time_less_than_or_equal_to=time_less_than_or_equal_to, - num_bucket=num_bucket, - min_value=min_value, - max_value=max_value, - container_id=container_id, - limit=limit, - sort_by=sort_by, - sort_order=sort_order, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_awr_db_wait_events"], - annotations=TOOL_ANNOTATIONS["summarize_awr_db_wait_events"],) -def summarize_awr_db_wait_events( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - awr_db_id: str = Field(..., description='Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.'), - inst_num: str | None = Field(None, description='The optional single value query parameter to filter the database instance number.'), - begin_sn_id_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), - end_sn_id_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot ID.'), - time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp.'), - time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp.'), - name: list[str] | None = Field(None, description='The optional multiple value query parameter to filter the entity name.'), - session_type: Literal['FOREGROUND', 'BACKGROUND', 'ALL'] | None = Field(None, description='The optional query parameter to filter ASH activities by FOREGROUND or BACKGROUND.\n\nAllowed values are: "FOREGROUND", "BACKGROUND", "ALL"'), - container_id: int | None = Field(None, description='AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.'), - limit: int | None = Field(None, description='For large list pagination. Maximum number of results to return in one response page. Example: 1000.', ge=1, le=1000), - sort_by: Literal['TIME_BEGIN', 'NAME'] | None = Field(None, description='The option to sort the data within a time period.\n\nAllowed values are: "TIME_BEGIN", "NAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Descending order is the default order.\n\nAllowed values are: "ASC", "DESC"'), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'summarize_awr_db_wait_events', - managed_database_id=managed_database_id, - awr_db_id=awr_db_id, - inst_num=inst_num, - begin_sn_id_greater_than_or_equal_to=begin_sn_id_greater_than_or_equal_to, - end_sn_id_less_than_or_equal_to=end_sn_id_less_than_or_equal_to, - time_greater_than_or_equal_to=time_greater_than_or_equal_to, - time_less_than_or_equal_to=time_less_than_or_equal_to, - name=name, - session_type=session_type, - container_id=container_id, - limit=limit, - sort_by=sort_by, - sort_order=sort_order, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_cloud_asm_metrics"], - annotations=TOOL_ANNOTATIONS["summarize_cloud_asm_metrics"],) -def summarize_cloud_asm_metrics( - cloud_asm_id: str = Field(..., description='The OCID of the cloud ASM.'), - start_time: str = Field(..., description="The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`."), - end_time: str = Field(..., description="The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`."), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - filter_by_metric_names: str | None = Field(None, description='The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.'),) -> Any: - return invoke_dbm( - 'summarize_cloud_asm_metrics', - cloud_asm_id=cloud_asm_id, - start_time=start_time, - end_time=end_time, - limit=limit, - filter_by_metric_names=filter_by_metric_names,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_cloud_cluster_metrics"], - annotations=TOOL_ANNOTATIONS["summarize_cloud_cluster_metrics"],) -def summarize_cloud_cluster_metrics( - cloud_cluster_id: str = Field(..., description='The OCID of the cloud cluster.'), - start_time: str = Field(..., description="The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`."), - end_time: str = Field(..., description="The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`."), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - filter_by_metric_names: str | None = Field(None, description='The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.'),) -> Any: - return invoke_dbm( - 'summarize_cloud_cluster_metrics', - cloud_cluster_id=cloud_cluster_id, - start_time=start_time, - end_time=end_time, - limit=limit, - filter_by_metric_names=filter_by_metric_names,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_cloud_db_node_metrics"], - annotations=TOOL_ANNOTATIONS["summarize_cloud_db_node_metrics"],) -def summarize_cloud_db_node_metrics( - cloud_db_node_id: str = Field(..., description='The OCID of the cloud database node.'), - start_time: str = Field(..., description="The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`."), - end_time: str = Field(..., description="The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`."), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - filter_by_metric_names: str | None = Field(None, description='The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.'),) -> Any: - return invoke_dbm( - 'summarize_cloud_db_node_metrics', - cloud_db_node_id=cloud_db_node_id, - start_time=start_time, - end_time=end_time, - limit=limit, - filter_by_metric_names=filter_by_metric_names,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_cloud_db_system_availability_metrics"], - annotations=TOOL_ANNOTATIONS["summarize_cloud_db_system_availability_metrics"],) -def summarize_cloud_db_system_availability_metrics( - cloud_db_system_id: str = Field(..., description='The OCID of the cloud DB system.'), - start_time: str = Field(..., description="The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`."), - end_time: str = Field(..., description="The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`."), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - filter_by_component_types: str | None = Field(None, description='The filter used to retrieve metrics for a specific set of component types by passing the desired component types separated by a comma. Note that, by default, the service returns metrics for all DB system component types.'),) -> Any: - return invoke_dbm( - 'summarize_cloud_db_system_availability_metrics', - cloud_db_system_id=cloud_db_system_id, - start_time=start_time, - end_time=end_time, - limit=limit, - filter_by_component_types=filter_by_component_types,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_cloud_listener_metrics"], - annotations=TOOL_ANNOTATIONS["summarize_cloud_listener_metrics"],) -def summarize_cloud_listener_metrics( - cloud_listener_id: str = Field(..., description='The OCID of the cloud listener.'), - start_time: str = Field(..., description="The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`."), - end_time: str = Field(..., description="The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`."), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - filter_by_metric_names: str | None = Field(None, description='The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.'),) -> Any: - return invoke_dbm( - 'summarize_cloud_listener_metrics', - cloud_listener_id=cloud_listener_id, - start_time=start_time, - end_time=end_time, - limit=limit, - filter_by_metric_names=filter_by_metric_names,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_external_asm_metrics"], - annotations=TOOL_ANNOTATIONS["summarize_external_asm_metrics"],) -def summarize_external_asm_metrics( - external_asm_id: str = Field(..., description='The OCID of the external ASM.'), - start_time: str = Field(..., description="The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`."), - end_time: str = Field(..., description="The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`."), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - filter_by_metric_names: str | None = Field(None, description='The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.'),) -> Any: - return invoke_dbm( - 'summarize_external_asm_metrics', - external_asm_id=external_asm_id, - start_time=start_time, - end_time=end_time, - limit=limit, - filter_by_metric_names=filter_by_metric_names,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_external_cluster_metrics"], - annotations=TOOL_ANNOTATIONS["summarize_external_cluster_metrics"],) -def summarize_external_cluster_metrics( - external_cluster_id: str = Field(..., description='The OCID of the external cluster.'), - start_time: str = Field(..., description="The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`."), - end_time: str = Field(..., description="The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`."), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - filter_by_metric_names: str | None = Field(None, description='The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.'),) -> Any: - return invoke_dbm( - 'summarize_external_cluster_metrics', - external_cluster_id=external_cluster_id, - start_time=start_time, - end_time=end_time, - limit=limit, - filter_by_metric_names=filter_by_metric_names,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_external_db_node_metrics"], - annotations=TOOL_ANNOTATIONS["summarize_external_db_node_metrics"],) -def summarize_external_db_node_metrics( - external_db_node_id: str = Field(..., description='The OCID of the external database node.'), - start_time: str = Field(..., description="The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`."), - end_time: str = Field(..., description="The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`."), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - filter_by_metric_names: str | None = Field(None, description='The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.'),) -> Any: - return invoke_dbm( - 'summarize_external_db_node_metrics', - external_db_node_id=external_db_node_id, - start_time=start_time, - end_time=end_time, - limit=limit, - filter_by_metric_names=filter_by_metric_names,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_external_db_system_availability_metrics"], - annotations=TOOL_ANNOTATIONS["summarize_external_db_system_availability_metrics"],) -def summarize_external_db_system_availability_metrics( - external_db_system_id: str = Field(..., description='The OCID of the external DB system.'), - start_time: str = Field(..., description="The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`."), - end_time: str = Field(..., description="The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`."), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - filter_by_component_types: str | None = Field(None, description='The filter used to retrieve metrics for a specific set of component types by passing the desired component types separated by a comma. Note that, by default, the service returns metrics for all DB system component types.'),) -> Any: - return invoke_dbm( - 'summarize_external_db_system_availability_metrics', - external_db_system_id=external_db_system_id, - start_time=start_time, - end_time=end_time, - limit=limit, - filter_by_component_types=filter_by_component_types,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_external_listener_metrics"], - annotations=TOOL_ANNOTATIONS["summarize_external_listener_metrics"],) -def summarize_external_listener_metrics( - external_listener_id: str = Field(..., description='The OCID of the external listener.'), - start_time: str = Field(..., description="The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`."), - end_time: str = Field(..., description="The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`."), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - filter_by_metric_names: str | None = Field(None, description='The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.'),) -> Any: - return invoke_dbm( - 'summarize_external_listener_metrics', - external_listener_id=external_listener_id, - start_time=start_time, - end_time=end_time, - limit=limit, - filter_by_metric_names=filter_by_metric_names,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_job_executions_statuses"], - annotations=TOOL_ANNOTATIONS["summarize_job_executions_statuses"],) -def summarize_job_executions_statuses( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - start_time: str = Field(..., description='The start time of the time range to retrieve the status summary of job executions\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".'), - end_time: str = Field(..., description='The end time of the time range to retrieve the status summary of job executions\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".'), - id: str | None = Field(None, description='The identifier of the resource.'), - managed_database_group_id: str | None = Field(None, description='The OCID of the Managed Database Group.'), - managed_database_id: str | None = Field(None, description='The OCID of the Managed Database.'), - name: str | None = Field(None, description='A filter to return only resources that match the entire name.'), - sort_by: Literal['TIMECREATED', 'NAME'] | None = Field(None, description='The field to sort information by. Only one sortOrder can be used. The default sort order\nfor ‘TIMECREATED’ is descending and the default sort order for ‘NAME’ is ascending.\nThe ‘NAME’ sort order is case-sensitive.\n\nAllowed values are: "TIMECREATED", "NAME"'), - sort_order: Literal['ASC', 'DESC'] | None = Field(None, description='The option to sort information in ascending (‘ASC’) or descending (‘DESC’) order. Ascending order is the default order.\n\nAllowed values are: "ASC", "DESC"'),) -> Any: - return invoke_dbm( - 'summarize_job_executions_statuses', - compartment_id=compartment_id, - start_time=start_time, - end_time=end_time, - id=id, - managed_database_group_id=managed_database_group_id, - managed_database_id=managed_database_id, - name=name, - sort_by=sort_by, - sort_order=sort_order,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_managed_database_availability_metrics"], - annotations=TOOL_ANNOTATIONS["summarize_managed_database_availability_metrics"],) -def summarize_managed_database_availability_metrics( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - start_time: str = Field(..., description='The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".'), - end_time: str = Field(..., description='The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is "yyyy-MM-dd\'T\'hh:mm:ss.sss\'Z\'".'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000),) -> Any: - return invoke_dbm( - 'summarize_managed_database_availability_metrics', - managed_database_id=managed_database_id, - start_time=start_time, - end_time=end_time, - limit=limit,) - - - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_sql_plan_baselines"], - annotations=TOOL_ANNOTATIONS["summarize_sql_plan_baselines"],) -def summarize_sql_plan_baselines( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'summarize_sql_plan_baselines', - managed_database_id=managed_database_id, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_sql_plan_baselines_by_last_execution"], - annotations=TOOL_ANNOTATIONS["summarize_sql_plan_baselines_by_last_execution"],) -def summarize_sql_plan_baselines_by_last_execution( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - opc_named_credential_id: str | None = Field(None, description='The OCID of the Named Credential.'),) -> Any: - return invoke_dbm( - 'summarize_sql_plan_baselines_by_last_execution', - managed_database_id=managed_database_id, - opc_named_credential_id=opc_named_credential_id,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_cloud_asm"], - annotations=TOOL_ANNOTATIONS["update_cloud_asm"],) -def update_cloud_asm( - cloud_asm_id: str = Field(..., description='The OCID of the cloud ASM.'), - update_cloud_asm_details: dict[str, Any] | UpdateCloudAsmDetails = Field(..., description='The details required to update an cloud ASM.'),) -> Any: - return invoke_dbm( - 'update_cloud_asm', - cloud_asm_id=cloud_asm_id, - update_cloud_asm_details=update_cloud_asm_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_cloud_asm_instance"], - annotations=TOOL_ANNOTATIONS["update_cloud_asm_instance"],) -def update_cloud_asm_instance( - cloud_asm_instance_id: str = Field(..., description='The OCID of the cloud ASM instance.'), - update_cloud_asm_instance_details: dict[str, Any] | UpdateCloudAsmInstanceDetails = Field(..., description='The details required to update an cloud ASM instance.'),) -> Any: - return invoke_dbm( - 'update_cloud_asm_instance', - cloud_asm_instance_id=cloud_asm_instance_id, - update_cloud_asm_instance_details=update_cloud_asm_instance_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_cloud_cluster"], - annotations=TOOL_ANNOTATIONS["update_cloud_cluster"],) -def update_cloud_cluster( - cloud_cluster_id: str = Field(..., description='The OCID of the cloud cluster.'), - update_cloud_cluster_details: dict[str, Any] | UpdateCloudClusterDetails = Field(..., description='The details required to update an cloud cluster.'),) -> Any: - return invoke_dbm( - 'update_cloud_cluster', - cloud_cluster_id=cloud_cluster_id, - update_cloud_cluster_details=update_cloud_cluster_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_cloud_cluster_instance"], - annotations=TOOL_ANNOTATIONS["update_cloud_cluster_instance"],) -def update_cloud_cluster_instance( - cloud_cluster_instance_id: str = Field(..., description='The OCID of the cloud cluster instance.'), - update_cloud_cluster_instance_details: dict[str, Any] | UpdateCloudClusterInstanceDetails = Field(..., description='The details required to update an cloud cluster instance.'),) -> Any: - return invoke_dbm( - 'update_cloud_cluster_instance', - cloud_cluster_instance_id=cloud_cluster_instance_id, - update_cloud_cluster_instance_details=update_cloud_cluster_instance_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_cloud_db_home"], - annotations=TOOL_ANNOTATIONS["update_cloud_db_home"],) -def update_cloud_db_home( - cloud_db_home_id: str = Field(..., description='The OCID of the cloud database home.'), - update_cloud_db_home_details: dict[str, Any] | UpdateCloudDbHomeDetails = Field(..., description='The details required to update an cloud DB home.'),) -> Any: - return invoke_dbm( - 'update_cloud_db_home', - cloud_db_home_id=cloud_db_home_id, - update_cloud_db_home_details=update_cloud_db_home_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_cloud_db_node"], - annotations=TOOL_ANNOTATIONS["update_cloud_db_node"],) -def update_cloud_db_node( - cloud_db_node_id: str = Field(..., description='The OCID of the cloud database node.'), - update_cloud_db_node_details: dict[str, Any] | UpdateCloudDbNodeDetails = Field(..., description='The details required to update an cloud DB node.'),) -> Any: - return invoke_dbm( - 'update_cloud_db_node', - cloud_db_node_id=cloud_db_node_id, - update_cloud_db_node_details=update_cloud_db_node_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_cloud_db_system"], - annotations=TOOL_ANNOTATIONS["update_cloud_db_system"],) -def update_cloud_db_system( - cloud_db_system_id: str = Field(..., description='The OCID of the cloud DB system.'), - update_cloud_db_system_details: dict[str, Any] | UpdateCloudDbSystemDetails = Field(..., description='The details required to update an cloud DB system.'),) -> Any: - return invoke_dbm( - 'update_cloud_db_system', - cloud_db_system_id=cloud_db_system_id, - update_cloud_db_system_details=update_cloud_db_system_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_cloud_db_system_connector"], - annotations=TOOL_ANNOTATIONS["update_cloud_db_system_connector"],) -def update_cloud_db_system_connector( - cloud_db_system_connector_id: str = Field(..., description='The OCID of the cloud connector.'), - update_cloud_db_system_connector_details: dict[str, Any] | UpdateCloudDbSystemConnectorDetails = Field(..., description='The details required to update an cloud connector.'),) -> Any: - return invoke_dbm( - 'update_cloud_db_system_connector', - cloud_db_system_connector_id=cloud_db_system_connector_id, - update_cloud_db_system_connector_details=update_cloud_db_system_connector_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_cloud_db_system_discovery"], - annotations=TOOL_ANNOTATIONS["update_cloud_db_system_discovery"],) -def update_cloud_db_system_discovery( - cloud_db_system_discovery_id: str = Field(..., description='The OCID of the cloud DB system discovery.'), - update_cloud_db_system_discovery_details: dict[str, Any] | UpdateCloudDbSystemDiscoveryDetails = Field(..., description='The details required to update an cloud DB system discovery.'),) -> Any: - return invoke_dbm( - 'update_cloud_db_system_discovery', - cloud_db_system_discovery_id=cloud_db_system_discovery_id, - update_cloud_db_system_discovery_details=update_cloud_db_system_discovery_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_cloud_exadata_infrastructure"], - annotations=TOOL_ANNOTATIONS["update_cloud_exadata_infrastructure"],) -def update_cloud_exadata_infrastructure( - cloud_exadata_infrastructure_id: str = Field(..., description='The OCID of the Exadata infrastructure.'), - update_cloud_exadata_infrastructure_details: dict[str, Any] | UpdateCloudExadataInfrastructureDetails = Field(..., description='The details required to update the managed Exadata infrastructure resources.'),) -> Any: - return invoke_dbm( - 'update_cloud_exadata_infrastructure', - cloud_exadata_infrastructure_id=cloud_exadata_infrastructure_id, - update_cloud_exadata_infrastructure_details=update_cloud_exadata_infrastructure_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_cloud_exadata_storage_connector"], - annotations=TOOL_ANNOTATIONS["update_cloud_exadata_storage_connector"],) -def update_cloud_exadata_storage_connector( - cloud_exadata_storage_connector_id: str = Field(..., description='The OCID of the connector to the Exadata storage server.'), - update_cloud_exadata_storage_connector_details: dict[str, Any] | UpdateCloudExadataStorageConnectorDetails = Field(..., description='The details required to update connections to the Exadata storage servers.'),) -> Any: - return invoke_dbm( - 'update_cloud_exadata_storage_connector', - cloud_exadata_storage_connector_id=cloud_exadata_storage_connector_id, - update_cloud_exadata_storage_connector_details=update_cloud_exadata_storage_connector_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_cloud_exadata_storage_grid"], - annotations=TOOL_ANNOTATIONS["update_cloud_exadata_storage_grid"],) -def update_cloud_exadata_storage_grid( - cloud_exadata_storage_grid_id: str = Field(..., description='The OCID of the Exadata storage grid.'), - update_cloud_exadata_storage_grid_details: dict[str, Any] | UpdateCloudExadataStorageGridDetails = Field(..., description='The details required to update an Exadata storage grid.'),) -> Any: - return invoke_dbm( - 'update_cloud_exadata_storage_grid', - cloud_exadata_storage_grid_id=cloud_exadata_storage_grid_id, - update_cloud_exadata_storage_grid_details=update_cloud_exadata_storage_grid_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_cloud_exadata_storage_server"], - annotations=TOOL_ANNOTATIONS["update_cloud_exadata_storage_server"],) -def update_cloud_exadata_storage_server( - cloud_exadata_storage_server_id: str = Field(..., description='The OCID of the Exadata storage server.'), - update_cloud_exadata_storage_server_details: dict[str, Any] | UpdateCloudExadataStorageServerDetails = Field(..., description='The details required to update an Exadata storage server.'),) -> Any: - return invoke_dbm( - 'update_cloud_exadata_storage_server', - cloud_exadata_storage_server_id=cloud_exadata_storage_server_id, - update_cloud_exadata_storage_server_details=update_cloud_exadata_storage_server_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_cloud_listener"], - annotations=TOOL_ANNOTATIONS["update_cloud_listener"],) -def update_cloud_listener( - cloud_listener_id: str = Field(..., description='The OCID of the cloud listener.'), - update_cloud_listener_details: dict[str, Any] | UpdateCloudListenerDetails = Field(..., description='The details required to update an cloud listener.'),) -> Any: - return invoke_dbm( - 'update_cloud_listener', - cloud_listener_id=cloud_listener_id, - update_cloud_listener_details=update_cloud_listener_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_db_management_private_endpoint"], - annotations=TOOL_ANNOTATIONS["update_db_management_private_endpoint"],) -def update_db_management_private_endpoint( - db_management_private_endpoint_id: str = Field(..., description='The OCID of the Database Management private endpoint.'), - update_db_management_private_endpoint_details: dict[str, Any] | UpdateDbManagementPrivateEndpointDetails = Field(..., description='The details used to update a Database Management private endpoint.'),) -> Any: - return invoke_dbm( - 'update_db_management_private_endpoint', - db_management_private_endpoint_id=db_management_private_endpoint_id, - update_db_management_private_endpoint_details=update_db_management_private_endpoint_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_external_asm"], - annotations=TOOL_ANNOTATIONS["update_external_asm"],) -def update_external_asm( - external_asm_id: str = Field(..., description='The OCID of the external ASM.'), - update_external_asm_details: dict[str, Any] | UpdateExternalAsmDetails = Field(..., description='The details required to update an external ASM.'),) -> Any: - return invoke_dbm( - 'update_external_asm', - external_asm_id=external_asm_id, - update_external_asm_details=update_external_asm_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_external_asm_instance"], - annotations=TOOL_ANNOTATIONS["update_external_asm_instance"],) -def update_external_asm_instance( - external_asm_instance_id: str = Field(..., description='The OCID of the external ASM instance.'), - update_external_asm_instance_details: dict[str, Any] | UpdateExternalAsmInstanceDetails = Field(..., description='The details required to update an external ASM instance.'),) -> Any: - return invoke_dbm( - 'update_external_asm_instance', - external_asm_instance_id=external_asm_instance_id, - update_external_asm_instance_details=update_external_asm_instance_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_external_cluster"], - annotations=TOOL_ANNOTATIONS["update_external_cluster"],) -def update_external_cluster( - external_cluster_id: str = Field(..., description='The OCID of the external cluster.'), - update_external_cluster_details: dict[str, Any] | UpdateExternalClusterDetails = Field(..., description='The details required to update an external cluster.'),) -> Any: - return invoke_dbm( - 'update_external_cluster', - external_cluster_id=external_cluster_id, - update_external_cluster_details=update_external_cluster_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_external_cluster_instance"], - annotations=TOOL_ANNOTATIONS["update_external_cluster_instance"],) -def update_external_cluster_instance( - external_cluster_instance_id: str = Field(..., description='The OCID of the external cluster instance.'), - update_external_cluster_instance_details: dict[str, Any] | UpdateExternalClusterInstanceDetails = Field(..., description='The details required to update an external cluster instance.'),) -> Any: - return invoke_dbm( - 'update_external_cluster_instance', - external_cluster_instance_id=external_cluster_instance_id, - update_external_cluster_instance_details=update_external_cluster_instance_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_external_db_home"], - annotations=TOOL_ANNOTATIONS["update_external_db_home"],) -def update_external_db_home( - external_db_home_id: str = Field(..., description='The OCID of the external database home.'), - update_external_db_home_details: dict[str, Any] | UpdateExternalDbHomeDetails = Field(..., description='The details required to update an external DB home.'),) -> Any: - return invoke_dbm( - 'update_external_db_home', - external_db_home_id=external_db_home_id, - update_external_db_home_details=update_external_db_home_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_external_db_node"], - annotations=TOOL_ANNOTATIONS["update_external_db_node"],) -def update_external_db_node( - external_db_node_id: str = Field(..., description='The OCID of the external database node.'), - update_external_db_node_details: dict[str, Any] | UpdateExternalDbNodeDetails = Field(..., description='The details required to update an external DB node.'),) -> Any: - return invoke_dbm( - 'update_external_db_node', - external_db_node_id=external_db_node_id, - update_external_db_node_details=update_external_db_node_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_external_db_system"], - annotations=TOOL_ANNOTATIONS["update_external_db_system"],) -def update_external_db_system( - external_db_system_id: str = Field(..., description='The OCID of the external DB system.'), - update_external_db_system_details: dict[str, Any] | UpdateExternalDbSystemDetails = Field(..., description='The details required to update an external DB system.'),) -> Any: - return invoke_dbm( - 'update_external_db_system', - external_db_system_id=external_db_system_id, - update_external_db_system_details=update_external_db_system_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_external_db_system_connector"], - annotations=TOOL_ANNOTATIONS["update_external_db_system_connector"],) -def update_external_db_system_connector( - external_db_system_connector_id: str = Field(..., description='The OCID of the external connector.'), - update_external_db_system_connector_details: dict[str, Any] | UpdateExternalDbSystemConnectorDetails = Field(..., description='The details required to update an external connector.'),) -> Any: - return invoke_dbm( - 'update_external_db_system_connector', - external_db_system_connector_id=external_db_system_connector_id, - update_external_db_system_connector_details=update_external_db_system_connector_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_external_db_system_discovery"], - annotations=TOOL_ANNOTATIONS["update_external_db_system_discovery"],) -def update_external_db_system_discovery( - external_db_system_discovery_id: str = Field(..., description='The OCID of the external DB system discovery.'), - update_external_db_system_discovery_details: dict[str, Any] | UpdateExternalDbSystemDiscoveryDetails = Field(..., description='The details required to update an external DB system discovery.'),) -> Any: - return invoke_dbm( - 'update_external_db_system_discovery', - external_db_system_discovery_id=external_db_system_discovery_id, - update_external_db_system_discovery_details=update_external_db_system_discovery_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_external_exadata_infrastructure"], - annotations=TOOL_ANNOTATIONS["update_external_exadata_infrastructure"],) -def update_external_exadata_infrastructure( - external_exadata_infrastructure_id: str = Field(..., description='The OCID of the Exadata infrastructure.'), - update_external_exadata_infrastructure_details: dict[str, Any] | UpdateExternalExadataInfrastructureDetails = Field(..., description='The details required to update the managed Exadata infrastructure resources.'),) -> Any: - return invoke_dbm( - 'update_external_exadata_infrastructure', - external_exadata_infrastructure_id=external_exadata_infrastructure_id, - update_external_exadata_infrastructure_details=update_external_exadata_infrastructure_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_external_exadata_storage_connector"], - annotations=TOOL_ANNOTATIONS["update_external_exadata_storage_connector"],) -def update_external_exadata_storage_connector( - external_exadata_storage_connector_id: str = Field(..., description='The OCID of the connector to the Exadata storage server.'), - update_external_exadata_storage_connector_details: dict[str, Any] | UpdateExternalExadataStorageConnectorDetails = Field(..., description='The details required to update connections to the Exadata storage servers.'),) -> Any: - return invoke_dbm( - 'update_external_exadata_storage_connector', - external_exadata_storage_connector_id=external_exadata_storage_connector_id, - update_external_exadata_storage_connector_details=update_external_exadata_storage_connector_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_external_exadata_storage_grid"], - annotations=TOOL_ANNOTATIONS["update_external_exadata_storage_grid"],) -def update_external_exadata_storage_grid( - external_exadata_storage_grid_id: str = Field(..., description='The OCID of the Exadata storage grid.'), - update_external_exadata_storage_grid_details: dict[str, Any] | UpdateExternalExadataStorageGridDetails = Field(..., description='The details required to update an external Exadata storage grid.'),) -> Any: - return invoke_dbm( - 'update_external_exadata_storage_grid', - external_exadata_storage_grid_id=external_exadata_storage_grid_id, - update_external_exadata_storage_grid_details=update_external_exadata_storage_grid_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_external_exadata_storage_server"], - annotations=TOOL_ANNOTATIONS["update_external_exadata_storage_server"],) -def update_external_exadata_storage_server( - external_exadata_storage_server_id: str = Field(..., description='The OCID of the Exadata storage server.'), - update_external_exadata_storage_server_details: dict[str, Any] | UpdateExternalExadataStorageServerDetails = Field(..., description='The details required to update an external Exadata storage server.'),) -> Any: - return invoke_dbm( - 'update_external_exadata_storage_server', - external_exadata_storage_server_id=external_exadata_storage_server_id, - update_external_exadata_storage_server_details=update_external_exadata_storage_server_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_external_listener"], - annotations=TOOL_ANNOTATIONS["update_external_listener"],) -def update_external_listener( - external_listener_id: str = Field(..., description='The OCID of the external listener.'), - update_external_listener_details: dict[str, Any] | UpdateExternalListenerDetails = Field(..., description='The details required to update an external listener.'),) -> Any: - return invoke_dbm( - 'update_external_listener', - external_listener_id=external_listener_id, - update_external_listener_details=update_external_listener_details,) - - - - - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_job"], - annotations=TOOL_ANNOTATIONS["update_job"],) -def update_job( - job_id: str = Field(..., description='The identifier of the job.'), - update_job_details: dict[str, Any] | UpdateJobDetails = Field(..., description='The details required to update a job.'),) -> Any: - return invoke_dbm( - 'update_job', - job_id=job_id, - update_job_details=update_job_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_managed_database"], - annotations=TOOL_ANNOTATIONS["update_managed_database"],) -def update_managed_database( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - update_managed_database_details: dict[str, Any] | UpdateManagedDatabaseDetails = Field(..., description='The details required to update a Managed Database.'),) -> Any: - return invoke_dbm( - 'update_managed_database', - managed_database_id=managed_database_id, - update_managed_database_details=update_managed_database_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_managed_database_group"], - annotations=TOOL_ANNOTATIONS["update_managed_database_group"],) -def update_managed_database_group( - managed_database_group_id: str = Field(..., description='The OCID of the Managed Database Group.'), - update_managed_database_group_details: dict[str, Any] | UpdateManagedDatabaseGroupDetails = Field(..., description='The details required to update a Managed Database Group.'),) -> Any: - return invoke_dbm( - 'update_managed_database_group', - managed_database_group_id=managed_database_group_id, - update_managed_database_group_details=update_managed_database_group_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_named_credential"], - annotations=TOOL_ANNOTATIONS["update_named_credential"],) -def update_named_credential( - named_credential_id: str = Field(..., description='The OCID of the named credential.'), - update_named_credential_details: dict[str, Any] | UpdateNamedCredentialDetails = Field(..., description='The details required to update a named credential.'),) -> Any: - return invoke_dbm( - 'update_named_credential', - named_credential_id=named_credential_id, - update_named_credential_details=update_named_credential_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_preferred_credential"], - annotations=TOOL_ANNOTATIONS["update_preferred_credential"],) -def update_preferred_credential( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - credential_name: str = Field(..., description='The name of the preferred credential.'), - update_preferred_credential_details: dict[str, Any] | UpdatePreferredCredentialDetails = Field(..., description='The details required to update preferred credential.'),) -> Any: - return invoke_dbm( - 'update_preferred_credential', - managed_database_id=managed_database_id, - credential_name=credential_name, - update_preferred_credential_details=update_preferred_credential_details,) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_tablespace"], - annotations=TOOL_ANNOTATIONS["update_tablespace"],) -def update_tablespace( - managed_database_id: str = Field(..., description='The OCID of the Managed Database.'), - tablespace_name: str = Field(..., description='The name of the tablespace.'), - update_tablespace_details: dict[str, Any] | UpdateTablespaceDetails = Field(..., description='The details required to update a tablespace.'),) -> Any: - return invoke_dbm( - 'update_tablespace', - managed_database_id=managed_database_id, - tablespace_name=tablespace_name, - update_tablespace_details=update_tablespace_details,) diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/__init__.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/__init__.py deleted file mode 100644 index 1c852257..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -Copyright (c) 2026, Oracle and/or its affiliates. -Licensed under the Universal Permissive License v1.0 as shown at -https://oss.oracle.com/licenses/upl. -""" - -__project__ = "oracle.oci-opsi-mcp-server" -__version__ = "1.0.0" diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/mcp.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/mcp.py deleted file mode 100644 index 64cd31f0..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/mcp.py +++ /dev/null @@ -1,21 +0,0 @@ -""" -Copyright (c) 2026, Oracle and/or its affiliates. -Licensed under the Universal Permissive License v1.0 as shown at -https://oss.oracle.com/licenses/upl. -""" - -from __future__ import annotations - -from fastmcp import FastMCP - -from . import __project__ - - -mcp = FastMCP( - name=__project__, - instructions=( - "Use this server for OCI Operations Insights workflows. " - "Mutating non-delete tools are marked with MCP tool annotations and " - "should only be used when the user explicitly intends the change." - ), -) diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/metadata.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/metadata.py deleted file mode 100644 index 40ba370d..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/metadata.py +++ /dev/null @@ -1,443 +0,0 @@ -""" -Copyright (c) 2026, Oracle and/or its affiliates. -Licensed under the Universal Permissive License v1.0 as shown at -https://oss.oracle.com/licenses/upl. -""" - -from __future__ import annotations - -BOOTSTRAP_TOOL_NAMES = frozenset( - { - "get_compartment", - "list_compartments", - } -) -REQUEST_MODEL_TYPES = { - ('change_autonomous_database_insight_advanced_features', 'change_autonomous_database_insight_advanced_features_details'): 'ChangeAutonomousDatabaseInsightAdvancedFeaturesDetails', - ('change_awr_hub_source_compartment', 'change_awr_hub_source_compartment_details'): 'ChangeAwrHubSourceCompartmentDetails', - ('change_chargeback_plan_compartment', 'change_chargeback_plan_compartment_details'): 'ChangeChargebackPlanCompartmentDetails', - ('change_database_insight_compartment', 'change_database_insight_compartment_details'): 'ChangeDatabaseInsightCompartmentDetails', - ('change_enterprise_manager_bridge_compartment', 'change_enterprise_manager_bridge_compartment_details'): 'ChangeEnterpriseManagerBridgeCompartmentDetails', - ('change_exadata_insight_compartment', 'change_exadata_insight_compartment_details'): 'ChangeExadataInsightCompartmentDetails', - ('change_host_insight_compartment', 'change_host_insight_compartment_details'): 'ChangeHostInsightCompartmentDetails', - ('change_macs_managed_autonomous_database_insight_connection', 'change_macs_managed_autonomous_database_insight_connection_details'): 'ChangeMacsManagedAutonomousDatabaseInsightConnectionDetails', - ('change_macs_managed_cloud_database_insight_connection', 'change_macs_managed_cloud_database_insight_connection_details'): 'ChangeMacsManagedCloudDatabaseInsightConnectionDetails', - ('change_news_report_compartment', 'change_news_report_compartment_details'): 'ChangeNewsReportCompartmentDetails', - ('change_operations_insights_private_endpoint_compartment', 'change_operations_insights_private_endpoint_compartment_details'): 'ChangeOperationsInsightsPrivateEndpointCompartmentDetails', - ('change_operations_insights_warehouse_compartment', 'change_operations_insights_warehouse_compartment_details'): 'ChangeOperationsInsightsWarehouseCompartmentDetails', - ('change_opsi_configuration_compartment', 'change_opsi_configuration_compartment_details'): 'ChangeOpsiConfigurationCompartmentDetails', - ('change_pe_comanaged_database_insight', 'change_pe_comanaged_database_insight_details'): 'ChangePeComanagedDatabaseInsightDetails', - ('create_awr_hub', 'create_awr_hub_details'): 'CreateAwrHubDetails', - ('create_awr_hub_source', 'create_awr_hub_source_details'): 'CreateAwrHubSourceDetails', - ('create_chargeback_plan', 'create_chargeback_plan_details'): 'CreateChargebackPlanDetails', - ('create_chargeback_plan_report', 'create_chargeback_plan_report_details'): 'CreateChargebackPlanReportDetails', - ('create_database_insight', 'create_database_insight_details'): 'CreateDatabaseInsightDetails', - ('create_enterprise_manager_bridge', 'create_enterprise_manager_bridge_details'): 'CreateEnterpriseManagerBridgeDetails', - ('create_exadata_insight', 'create_exadata_insight_details'): 'CreateExadataInsightDetails', - ('create_host_insight', 'create_host_insight_details'): 'CreateHostInsightDetails', - ('create_news_report', 'create_news_report_details'): 'CreateNewsReportDetails', - ('create_operations_insights_private_endpoint', 'create_operations_insights_private_endpoint_details'): 'CreateOperationsInsightsPrivateEndpointDetails', - ('create_operations_insights_warehouse', 'create_operations_insights_warehouse_details'): 'CreateOperationsInsightsWarehouseDetails', - ('create_operations_insights_warehouse_user', 'create_operations_insights_warehouse_user_details'): 'CreateOperationsInsightsWarehouseUserDetails', - ('create_opsi_configuration', 'create_opsi_configuration_details'): 'CreateOpsiConfigurationDetails', - ('enable_autonomous_database_insight_advanced_features', 'enable_autonomous_database_insight_advanced_features_details'): 'EnableAutonomousDatabaseInsightAdvancedFeaturesDetails', - ('enable_database_insight', 'enable_database_insight_details'): 'EnableDatabaseInsightDetails', - ('enable_exadata_insight', 'enable_exadata_insight_details'): 'EnableExadataInsightDetails', - ('enable_host_insight', 'enable_host_insight_details'): 'EnableHostInsightDetails', - ('enable_plan_exadata_insight', 'enable_plan_exadata_insight_details'): 'EnablePlanExadataInsightDetails', - ('query_opsi_data_object_data', 'query_opsi_data_object_data_details'): 'QueryOpsiDataObjectDataDetails', - ('query_warehouse_data_object_data', 'query_warehouse_data_object_data_details'): 'QueryWarehouseDataObjectDataDetails', - ('update_awr_hub', 'update_awr_hub_details'): 'UpdateAwrHubDetails', - ('update_awr_hub_source', 'update_awr_hub_source_details'): 'UpdateAwrHubSourceDetails', - ('update_chargeback_plan', 'update_chargeback_plan_details'): 'UpdateChargebackPlanDetails', - ('update_chargeback_plan_report', 'update_chargeback_plan_report_details'): 'UpdateChargebackPlanReportDetails', - ('update_database_insight', 'update_database_insight_details'): 'UpdateDatabaseInsightDetails', - ('update_enterprise_manager_bridge', 'update_enterprise_manager_bridge_details'): 'UpdateEnterpriseManagerBridgeDetails', - ('update_exadata_insight', 'update_exadata_insight_details'): 'UpdateExadataInsightDetails', - ('update_host_insight', 'update_host_insight_details'): 'UpdateHostInsightDetails', - ('update_news_report', 'update_news_report_details'): 'UpdateNewsReportDetails', - ('update_operations_insights_private_endpoint', 'update_operations_insights_private_endpoint_details'): 'UpdateOperationsInsightsPrivateEndpointDetails', - ('update_operations_insights_warehouse', 'update_operations_insights_warehouse_details'): 'UpdateOperationsInsightsWarehouseDetails', - ('update_operations_insights_warehouse_user', 'update_operations_insights_warehouse_user_details'): 'UpdateOperationsInsightsWarehouseUserDetails', - ('update_opsi_configuration', 'update_opsi_configuration_details'): 'UpdateOpsiConfigurationDetails', -} -INCLUDED_METHOD_NAMES = ( - 'change_autonomous_database_insight_advanced_features', - 'change_awr_hub_source_compartment', - 'change_chargeback_plan_compartment', - 'change_database_insight_compartment', - 'change_enterprise_manager_bridge_compartment', - 'change_exadata_insight_compartment', - 'change_host_insight_compartment', - 'change_macs_managed_autonomous_database_insight_connection', - 'change_macs_managed_cloud_database_insight_connection', - 'change_news_report_compartment', - 'change_operations_insights_private_endpoint_compartment', - 'change_operations_insights_warehouse_compartment', - 'change_opsi_configuration_compartment', - 'change_pe_comanaged_database_insight', - 'create_awr_hub', - 'create_awr_hub_source', - 'create_chargeback_plan', - 'create_chargeback_plan_report', - 'create_database_insight', - 'create_enterprise_manager_bridge', - 'create_exadata_insight', - 'create_host_insight', - 'create_news_report', - 'create_operations_insights_private_endpoint', - 'create_operations_insights_warehouse', - 'create_operations_insights_warehouse_user', - 'create_opsi_configuration', - 'disable_autonomous_database_insight_advanced_features', - 'disable_awr_hub_source', - 'disable_database_insight', - 'disable_exadata_insight', - 'disable_host_insight', - 'disable_plan_exadata_insight', - 'enable_autonomous_database_insight_advanced_features', - 'enable_awr_hub_source', - 'enable_database_insight', - 'enable_exadata_insight', - 'enable_host_insight', - 'enable_plan_exadata_insight', - 'get_awr_database_report', - 'get_awr_database_sql_report', - 'get_awr_hub', - 'get_awr_hub_object', - 'get_awr_hub_source', - 'get_awr_report', - 'get_chargeback_plan', - 'get_chargeback_plan_report', - 'get_chargeback_plan_report_content', - 'get_database_insight', - 'get_enterprise_manager_bridge', - 'get_exadata_insight', - 'get_host_insight', - 'get_news_report', - 'get_operations_insights_private_endpoint', - 'get_operations_insights_warehouse', - 'get_operations_insights_warehouse_user', - 'get_opsi_configuration', - 'get_opsi_data_object', - 'get_work_request', - 'list_addm_db_finding_categories', - 'list_addm_db_findings_time_series', - 'list_addm_db_parameter_categories', - 'list_addm_db_recommendation_categories', - 'list_addm_db_recommendations_time_series', - 'list_addm_dbs', - 'list_awr_database_snapshots', - 'list_awr_databases', - 'list_awr_hub_objects', - 'list_awr_hub_sources', - 'list_awr_hubs', - 'list_awr_snapshots', - 'list_chargeback_plan_reports', - 'list_chargeback_plans', - 'list_database_configurations', - 'list_database_insights', - 'list_enterprise_manager_bridges', - 'list_exadata_configurations', - 'list_exadata_insights', - 'list_host_configurations', - 'list_host_insights', - 'list_hosted_entities', - 'list_importable_agent_entities', - 'list_importable_compute_entities', - 'list_importable_enterprise_manager_entities', - 'list_news_reports', - 'list_operations_insights_private_endpoints', - 'list_operations_insights_warehouse_users', - 'list_operations_insights_warehouses', - 'list_opsi_configurations', - 'list_opsi_data_objects', - 'list_sql_plans', - 'list_sql_texts', - 'list_warehouse_data_objects', - 'list_work_request_errors', - 'list_work_request_logs', - 'list_work_requests', - 'query_opsi_data_object_data', - 'query_warehouse_data_object_data', - 'summarize_addm_db_findings', - 'summarize_addm_db_parameter_changes', - 'summarize_addm_db_parameters', - 'summarize_addm_db_recommendations', - 'summarize_addm_db_schema_objects', - 'summarize_addm_db_sql_statements', - 'summarize_awr_database_cpu_usages', - 'summarize_awr_database_metrics', - 'summarize_awr_database_parameter_changes', - 'summarize_awr_database_parameters', - 'summarize_awr_database_snapshot_ranges', - 'summarize_awr_database_sysstats', - 'summarize_awr_database_top_wait_events', - 'summarize_awr_database_wait_event_buckets', - 'summarize_awr_database_wait_events', - 'summarize_awr_sources_summaries', - 'summarize_configuration_items', - 'summarize_database_insight_resource_capacity_trend', - 'summarize_database_insight_resource_forecast_trend', - 'summarize_database_insight_resource_statistics', - 'summarize_database_insight_resource_usage', - 'summarize_database_insight_resource_usage_trend', - 'summarize_database_insight_resource_utilization_insight', - 'summarize_database_insight_tablespace_usage_trend', - 'summarize_exadata_insight_resource_capacity_trend', - 'summarize_exadata_insight_resource_capacity_trend_aggregated', - 'summarize_exadata_insight_resource_forecast_trend', - 'summarize_exadata_insight_resource_forecast_trend_aggregated', - 'summarize_exadata_insight_resource_statistics', - 'summarize_exadata_insight_resource_usage', - 'summarize_exadata_insight_resource_usage_aggregated', - 'summarize_exadata_insight_resource_utilization_insight', - 'summarize_exadata_members', - 'summarize_host_insight_disk_statistics', - 'summarize_host_insight_host_recommendation', - 'summarize_host_insight_io_usage_trend', - 'summarize_host_insight_network_usage_trend', - 'summarize_host_insight_resource_capacity_trend', - 'summarize_host_insight_resource_forecast_trend', - 'summarize_host_insight_resource_statistics', - 'summarize_host_insight_resource_usage', - 'summarize_host_insight_resource_usage_trend', - 'summarize_host_insight_resource_utilization_insight', - 'summarize_host_insight_storage_usage_trend', - 'summarize_host_insight_top_processes_usage', - 'summarize_host_insight_top_processes_usage_trend', - 'summarize_operations_insights_warehouse_resource_usage', - 'update_awr_hub', - 'update_awr_hub_source', - 'update_chargeback_plan', - 'update_chargeback_plan_report', - 'update_database_insight', - 'update_enterprise_manager_bridge', - 'update_exadata_insight', - 'update_host_insight', - 'update_news_report', - 'update_operations_insights_private_endpoint', - 'update_operations_insights_warehouse', - 'update_operations_insights_warehouse_user', - 'update_opsi_configuration', -) -MUTABLE_METHOD_NAMES = ( - 'change_autonomous_database_insight_advanced_features', - 'change_awr_hub_source_compartment', - 'change_chargeback_plan_compartment', - 'change_database_insight_compartment', - 'change_enterprise_manager_bridge_compartment', - 'change_exadata_insight_compartment', - 'change_host_insight_compartment', - 'change_macs_managed_autonomous_database_insight_connection', - 'change_macs_managed_cloud_database_insight_connection', - 'change_news_report_compartment', - 'change_operations_insights_private_endpoint_compartment', - 'change_operations_insights_warehouse_compartment', - 'change_opsi_configuration_compartment', - 'change_pe_comanaged_database_insight', - 'create_awr_hub', - 'create_awr_hub_source', - 'create_chargeback_plan', - 'create_chargeback_plan_report', - 'create_database_insight', - 'create_enterprise_manager_bridge', - 'create_exadata_insight', - 'create_host_insight', - 'create_news_report', - 'create_operations_insights_private_endpoint', - 'create_operations_insights_warehouse', - 'create_operations_insights_warehouse_user', - 'create_opsi_configuration', - 'disable_autonomous_database_insight_advanced_features', - 'disable_awr_hub_source', - 'disable_database_insight', - 'disable_exadata_insight', - 'disable_host_insight', - 'disable_plan_exadata_insight', - 'enable_autonomous_database_insight_advanced_features', - 'enable_awr_hub_source', - 'enable_database_insight', - 'enable_exadata_insight', - 'enable_host_insight', - 'enable_plan_exadata_insight', - 'update_awr_hub', - 'update_awr_hub_source', - 'update_chargeback_plan', - 'update_chargeback_plan_report', - 'update_database_insight', - 'update_enterprise_manager_bridge', - 'update_exadata_insight', - 'update_host_insight', - 'update_news_report', - 'update_operations_insights_private_endpoint', - 'update_operations_insights_warehouse', - 'update_operations_insights_warehouse_user', - 'update_opsi_configuration', -) -TOOL_NAMES = frozenset(INCLUDED_METHOD_NAMES) | BOOTSTRAP_TOOL_NAMES -MUTABLE_TOOL_NAMES = frozenset(MUTABLE_METHOD_NAMES) - - -TOOL_DESCRIPTIONS = { - 'get_compartment': 'Retrieves an OCI compartment by OCID. Use this operation to validate or resolve compartment scope before listing Operations Insights resources.', - 'list_compartments': 'Lists OCI compartments under a root compartment. Use this operation to discover compartment IDs for subsequent Operations Insights queries.', - 'change_autonomous_database_insight_advanced_features': 'Updates the advanced-feature connection details for an Autonomous Database insight in Operations Insights.', - 'change_awr_hub_source_compartment': 'Moves an AWR Hub source resource to another compartment. Use this operation when the AWR Hub source must be re-scoped without changing its source database registration.', - 'change_chargeback_plan_compartment': 'Moves an Operations Insights chargeback plan resource to another compartment.', - 'change_database_insight_compartment': 'Moves a database insight resource to another compartment. This changes resource placement and does not return database performance metrics.', - 'change_enterprise_manager_bridge_compartment': 'Moves an Operations Insights Enterprise Manager bridge resource to another compartment.', - 'change_exadata_insight_compartment': 'Moves an Exadata insight resource to another compartment. This changes resource placement and does not change Exadata metric summaries.', - 'change_host_insight_compartment': 'Moves a host insight resource to another compartment. This changes resource placement and does not return host performance metrics.', - 'change_macs_managed_autonomous_database_insight_connection': 'Changes connection details for a MACS-managed Autonomous Database insight. Use this operation when the stored connection information must be refreshed or corrected.', - 'change_macs_managed_cloud_database_insight_connection': 'Changes connection details for a Cloud MACS-managed database insight. Use this operation when the stored connection information must be refreshed or corrected.', - 'change_news_report_compartment': 'Moves a news report resource to another compartment.', - 'change_operations_insights_private_endpoint_compartment': 'Moves an Operations Insights private endpoint to another compartment.', - 'change_operations_insights_warehouse_compartment': 'Moves an Operations Insights Warehouse resource to another compartment. Warehouses are normally tenant-scoped and expected in the root compartment.', - 'change_opsi_configuration_compartment': 'Moves an OPSI configuration resource to another compartment.', - 'change_pe_comanaged_database_insight': 'Changes connection details for a private-endpoint co-managed database insight.', - 'create_awr_hub': 'Creates an AWR Hub resource for a tenant in Operations Insights. The resource is expected to be created in the root compartment.', - 'create_awr_hub_source': 'Registers a source database with an AWR Hub so AWR snapshots can be imported and queried through Operations Insights.', - 'create_chargeback_plan': 'Creates an Operations Insights chargeback plan for a resource. Use this operation to define chargeback metering for supported insight resources.', - 'create_chargeback_plan_report': 'Creates a chargeback plan report for an Operations Insights resource.', - 'create_database_insight': 'Creates a database insight resource and enables the database in Operations Insights. Database metric collection and analysis start after enablement.', - 'create_enterprise_manager_bridge': 'Creates an Enterprise Manager bridge in Operations Insights. Use this operation to connect Enterprise Manager-managed entities for import and monitoring.', - 'create_exadata_insight': 'Creates an Exadata insight resource and enables the Exadata system in Operations Insights. Exadata-related metric collection and analysis start after enablement.', - 'create_host_insight': 'Creates a host insight resource and enables the host in Operations Insights. Host metric collection and analysis start after enablement.', - 'create_news_report': 'Creates a news report in Operations Insights. The report is enabled and emailed according to the selected frequency.', - 'create_operations_insights_private_endpoint': 'Creates an Operations Insights private endpoint in a customer compartment. Use this operation when private network access is required for Operations Insights resources.', - 'create_operations_insights_warehouse': 'Creates an Operations Insights Warehouse resource for a tenant. A new ADW is normally provisioned, only one warehouse is expected per tenant, and the warehouse is expected in the root compartment.', - 'create_operations_insights_warehouse_user': 'Creates an Operations Insights Warehouse user resource in the tenant root compartment.', - 'create_opsi_configuration': 'Creates an OPSI configuration resource. Use this operation to define configurable Operations Insights behavior for a compartment or target scope.', - 'disable_autonomous_database_insight_advanced_features': 'Disables advanced features for an Autonomous Database insight and removes the associated direct connection details.', - 'disable_awr_hub_source': 'Disables an AWR Hub source database in Operations Insights and stops AWR data flow for that source.', - 'disable_database_insight': 'Disables a database in Operations Insights and stops database metric collection and analysis.', - 'disable_exadata_insight': 'Disables an Exadata system in Operations Insights and stops Exadata-related metric collection and analysis.', - 'disable_host_insight': 'Disables a host in Operations Insights and stops host metric collection and analysis.', - 'disable_plan_exadata_insight': 'Disables the chargeback plan on an Exadata system and stops metering-related collection and analysis.', - 'enable_autonomous_database_insight_advanced_features': 'Enables advanced features for an Autonomous Database insight and creates the direct connection used for additional collection.', - 'enable_awr_hub_source': 'Enables an AWR Hub source database in Operations Insights and resumes AWR data flow if it was previously stopped.', - 'enable_database_insight': 'Enables a database in Operations Insights and starts database metric collection and analysis.', - 'enable_exadata_insight': 'Enables an Exadata system in Operations Insights and starts Exadata-related metric collection and analysis.', - 'enable_host_insight': 'Enables a host in Operations Insights and starts host metric collection and analysis.', - 'enable_plan_exadata_insight': 'Enables the chargeback plan on an Exadata system and starts metering-related collection and analysis.', - 'get_awr_database_report': 'Retrieves an AWR report for a specified database in an AWR Hub. Use this operation when the user needs the generated AWR report content rather than snapshot metadata.', - 'get_awr_database_sql_report': 'Retrieves a SQL health check report for one SQL statement in a specified AWR database.', - 'get_awr_hub': 'Retrieves details for a specific AWR Hub resource. This returns AWR Hub metadata, not AWR source snapshots or reports.', - 'get_awr_hub_object': 'Retrieves metadata and object content for a specific AWR Hub object.', - 'get_awr_hub_source': 'Retrieves details for a specific AWR Hub source database registration.', - 'get_awr_report': 'Retrieves an AWR report for a specified source database in an AWR Hub. The time range must not exceed seven days, and callers must use either snapshot identifiers or time bounds.', - 'get_chargeback_plan': 'Retrieves details for a specific Operations Insights chargeback plan.', - 'get_chargeback_plan_report': 'Retrieves details for a specific chargeback plan report resource.', - 'get_chargeback_plan_report_content': 'Generates chargeback report content in CSV format for a specified time interval.', - 'get_database_insight': 'Retrieves metadata and lifecycle details for a database insight. This returns the insight resource, not CPU, storage, tablespace, or utilization metrics; use database insight summary operations for those metrics.', - 'get_enterprise_manager_bridge': 'Retrieves details for an Operations Insights Enterprise Manager bridge.', - 'get_exadata_insight': 'Retrieves metadata and lifecycle details for an Exadata insight. This returns the insight resource, not capacity, usage, forecast, or utilization metrics; use Exadata summary operations for those metrics.', - 'get_host_insight': 'Retrieves metadata and lifecycle details for a host insight. This returns the insight resource, not CPU, memory, disk, network, storage, process, or recommendation metrics; use host summary operations for those metrics.', - 'get_news_report': 'Retrieves details for a specific Operations Insights news report.', - 'get_operations_insights_private_endpoint': 'Retrieves details for a specific Operations Insights private endpoint.', - 'get_operations_insights_warehouse': 'Retrieves details for an Operations Insights Warehouse. Only one warehouse is expected per tenant, and it is expected in the root compartment.', - 'get_operations_insights_warehouse_user': 'Retrieves details for a specific Operations Insights Warehouse user.', - 'get_opsi_configuration': 'Retrieves details for an OPSI configuration resource. Requested configuration item fields and custom-status filters are applied only when configuration items are requested.', - 'get_opsi_data_object': 'Retrieves metadata for an OPSI data object. Use query_opsi_data_object_data to execute a query against the data object.', - 'get_work_request': 'Retrieves status and metadata for a specific Operations Insights work request.', - 'list_addm_db_finding_categories': 'Lists ADDM finding categories for database insight analysis. Use this operation to discover category filter values for ADDM finding queries.', - 'list_addm_db_findings_time_series': 'Lists ADDM finding time series data for specified databases and a time period.', - 'list_addm_db_parameter_categories': 'Lists ADDM database parameter categories for specified databases. Use this operation to discover category filters for parameter history analysis.', - 'list_addm_db_recommendation_categories': 'Lists ADDM recommendation categories for specified databases. Use this operation to discover category filters for recommendation analysis.', - 'list_addm_db_recommendations_time_series': 'Lists ADDM recommendation time series data for specified databases and a time period.', - 'list_addm_dbs': 'Lists database information available for ADDM analysis.', - 'list_awr_database_snapshots': 'Lists AWR snapshots for a specified database in an AWR Hub.', - 'list_awr_databases': 'Lists databases and snapshot summary details available in an AWR Hub.', - 'list_awr_hub_objects': 'Lists objects stored for a specified AWR Hub source. Use get_awr_hub_object to retrieve a selected object body.', - 'list_awr_hub_sources': 'Lists source database registrations for AWR Hubs.', - 'list_awr_hubs': 'Lists AWR Hub resources by compartment or identifier. These resources are expected to be in the root compartment.', - 'list_awr_snapshots': 'Lists AWR snapshots for a specified source database in an AWR Hub. The optional time range must not exceed one day; without time bounds, the default range is the last day.', - 'list_chargeback_plan_reports': 'Lists Operations Insights chargeback plan reports for a resource.', - 'list_chargeback_plans': 'Lists Operations Insights chargeback plans.', - 'list_database_configurations': 'Lists database insight configuration records by compartment or database insight id. This returns configuration metadata, not database performance metrics.', - 'list_database_insights': 'Lists database insight resources in a compartment or by exact insight id. Use this operation to discover databases enabled in Operations Insights before calling database metric, forecast, or utilization summary operations.', - 'list_enterprise_manager_bridges': 'Lists Operations Insights Enterprise Manager bridges by compartment or identifier. Recursive compartment search can include bridges in subcompartments.', - 'list_exadata_configurations': 'Lists Exadata insight configuration records by compartment or Exadata insight id. This returns configuration metadata, not Exadata usage metrics.', - 'list_exadata_insights': 'Lists Exadata insight resources in a compartment or by exact insight id. Use this operation to discover Exadata systems enabled in Operations Insights before calling Exadata capacity, usage, forecast, or utilization summary operations.', - 'list_host_configurations': 'Lists host insight configuration records by compartment or host insight id. This returns configuration metadata, not host performance metrics.', - 'list_host_insights': 'Lists host insight resources in a compartment or by exact insight id. Use this operation to discover hosts enabled in Operations Insights before calling host CPU, memory, disk, network, storage, process, or recommendation summary operations.', - 'list_hosted_entities': 'Lists hosted entity details for host insights. Use this operation to identify databases or other entities hosted on a selected host.', - 'list_importable_agent_entities': 'Lists Management Agent entities that are available to create a new host insight. Returned agents are active and are not already associated with an existing host insight.', - 'list_importable_compute_entities': 'Lists compute instances running Oracle Cloud Agent that are available to create a new host insight.', - 'list_importable_enterprise_manager_entities': 'Lists Enterprise Manager entities that can be imported through an Operations Insights Enterprise Manager bridge and have not already been imported.', - 'list_news_reports': 'Lists scheduled Operations Insights news report resources by compartment or identifier before retrieving, updating, or inspecting delivery settings.', - 'list_operations_insights_private_endpoints': 'Lists Operations Insights private endpoints by compartment, VCN, endpoint identifier, RAC usage, or lifecycle state before retrieving or updating a selected endpoint.', - 'list_operations_insights_warehouse_users': 'Lists Operations Insights Warehouse users by compartment or identifier. These resources are expected to be in the root compartment.', - 'list_operations_insights_warehouses': 'Lists Operations Insights Warehouse resources by compartment or identifier. Only one warehouse is expected per tenant, and it is expected in the root compartment.', - 'list_opsi_configurations': 'Lists OPSI configuration resources by display name, lifecycle state, or configuration type before retrieving configuration item details.', - 'list_opsi_data_objects': 'Lists OPSI data objects available to query in a compartment. Use get_opsi_data_object for object metadata and query_opsi_data_object_data to retrieve rows.', - 'list_sql_plans': 'Lists SQL execution plan XML from the SQL Warehouse for a given SQL execution plan. The response is currently limited to a single plan and requires databaseId or database insight id.', - 'list_sql_texts': 'Retrieves full SQL text from the SQL Warehouse for a SQL identifier in a compartment and, when requested, its subcompartments.', - 'list_warehouse_data_objects': 'Lists Warehouse data objects such as views and tables based on query parameters. Use query_warehouse_data_object_data to query rows from a selected object.', - 'list_work_request_errors': 'Lists errors for a specific Operations Insights work request.', - 'list_work_request_logs': 'Lists log entries for a specific Operations Insights work request.', - 'list_work_requests': 'Lists Operations Insights work requests in a compartment or by identifier. Optional resource filters narrow the results to one target or related resource.', - 'query_opsi_data_object_data': 'Queries an OPSI data object and returns result rows. The request must provide either analysisTimeInterval or both timeIntervalStart and timeIntervalEnd.', - 'query_warehouse_data_object_data': 'Queries Warehouse data objects such as views and tables and returns result rows available to the authorized Operations Insights Warehouse user.', - 'summarize_addm_db_findings': 'Summarizes ADDM findings for specified databases over a time period.', - 'summarize_addm_db_parameter_changes': 'Summarizes AWR database parameter change history for one specified parameter. Use summarize_addm_db_parameters to identify parameters that changed during a period.', - 'summarize_addm_db_parameters': 'Summarizes database parameter history for specified databases, including whether parameter values changed during the requested time period. This does not return individual change records.', - 'summarize_addm_db_recommendations': 'Summarizes ADDM recommendations for specified databases over a time period.', - 'summarize_addm_db_schema_objects': 'Summarizes ADDM schema object details for specified databases and object identifiers.', - 'summarize_addm_db_sql_statements': 'Summarizes ADDM SQL statement details for specified databases and SQL identifiers.', - 'summarize_awr_database_cpu_usages': 'Summarizes AWR CPU resource limits and CPU usage metrics for a specified AWR database. Metric granularity depends on the requested time range.', - 'summarize_awr_database_metrics': 'Summarizes AWR metric samples for a specified database, grouped by time for each requested metric.', - 'summarize_awr_database_parameter_changes': 'Summarizes detailed AWR change history for one database parameter, including previous value, current value, and snapshot or time range.', - 'summarize_awr_database_parameters': 'Summarizes database parameter history for a specified AWR database, including whether each parameter changed, differs from the default, or was modified at the system level. Use summarize_awr_database_parameter_changes for detailed history of one parameter.', - 'summarize_awr_database_snapshot_ranges': 'Summarizes continuous AWR snapshot ranges for a specified AWR Hub.', - 'summarize_awr_database_sysstats': 'Summarizes AWR SYSSTAT sample data for a specified database, grouped by time for each statistic.', - 'summarize_awr_database_top_wait_events': 'Summarizes top AWR wait events for a specified database.', - 'summarize_awr_database_wait_event_buckets': 'Summarizes AWR wait event data into frequency buckets for a specified database.', - 'summarize_awr_database_wait_events': 'Summarizes AWR wait event sample data for a specified database, grouped by time for each event.', - 'summarize_awr_sources_summaries': 'Summarizes AWR source database information for AWR Hubs.', - 'summarize_configuration_items': 'Summarizes applicable OPSI configuration items for a configuration type and compartment. Optional field filters determine which configuration item fields are returned.', - 'summarize_database_insight_resource_capacity_trend': 'Summarizes database insight resource capacity time series, including capacity and base capacity, for the requested period. This operation supports up to two years and is not paginated.', - 'summarize_database_insight_resource_forecast_trend': 'Summarizes historical usage and forecast trends for database CPU or storage resources. Use this operation for projected capacity questions rather than current utilization only.', - 'summarize_database_insight_resource_statistics': 'Summarizes per-database resource statistics such as usage, capacity, utilization percentage, base capacity, and auto-scaling state.', - 'summarize_database_insight_resource_usage': 'Summarizes aggregate database resource usage, capacity, and usage change over a requested time period. Use resource_usage_trend for time-series points.', - 'summarize_database_insight_resource_usage_trend': 'Summarizes database resource usage and capacity as time-series data for a requested period. This operation supports up to two years and is not paginated.', - 'summarize_database_insight_resource_utilization_insight': 'Summarizes current and projected database resource utilization insights, including high and low utilization classifications.', - 'summarize_database_insight_tablespace_usage_trend': 'Summarizes database tablespace usage and capacity as time-series data, broken down by tablespace name. The request must identify the database by databaseId or database insight id.', - 'summarize_exadata_insight_resource_capacity_trend': 'Summarizes Exadata resource capacity time-series data for databases, hosts, storage servers, or disk groups in a selected Exadata system.', - 'summarize_exadata_insight_resource_capacity_trend_aggregated': 'Summarizes aggregated Exadata resource capacity time-series data for an Exadata system or fleet.', - 'summarize_exadata_insight_resource_forecast_trend': 'Summarizes historical usage and forecast trends for Exadata databases, hosts, storage servers, or disk groups.', - 'summarize_exadata_insight_resource_forecast_trend_aggregated': 'Summarizes aggregated Exadata historical usage and forecast trends across an Exadata system or fleet.', - 'summarize_exadata_insight_resource_statistics': 'Summarizes Exadata resource statistics such as usage, capacity, utilization percentage, and usage change for databases, hosts, storage servers, or disk groups.', - 'summarize_exadata_insight_resource_usage': 'Summarizes Exadata resource usage and usage change over a requested time period for databases, hosts, or storage servers.', - 'summarize_exadata_insight_resource_usage_aggregated': 'Summarizes aggregated Exadata resource usage and usage change over a requested time period.', - 'summarize_exadata_insight_resource_utilization_insight': 'Summarizes current and projected Exadata resource utilization insights for databases, hosts, or storage servers.', - 'summarize_exadata_members': 'Lists software and hardware inventory for an Exadata system, including Exadata members known to Operations Insights.', - 'summarize_host_insight_disk_statistics': 'Summarizes disk usage, size, and unallocated capacity for a host insight over the requested time interval. Use this operation for per-disk storage capacity questions.', - 'summarize_host_insight_host_recommendation': 'Summarizes host recommendations, when available, for a host insight.', - 'summarize_host_insight_io_usage_trend': 'Summarizes host I/O usage as time-series data broken down by I/O interface.', - 'summarize_host_insight_network_usage_trend': 'Summarizes host network usage as time-series data broken down by network interface.', - 'summarize_host_insight_resource_capacity_trend': 'Summarizes host resource capacity time-series data for a requested period. This operation supports up to two years and is not paginated.', - 'summarize_host_insight_resource_forecast_trend': 'Summarizes historical usage and forecast trends for host CPU or memory resources. Use this operation for projected capacity questions rather than current utilization only.', - 'summarize_host_insight_resource_statistics': 'Summarizes per-host resource statistics such as usage, capacity, utilization percentage, usage change, and load.', - 'summarize_host_insight_resource_usage': 'Summarizes aggregate host resource usage, capacity, and usage change over a requested time period. Use resource_usage_trend for time-series points.', - 'summarize_host_insight_resource_usage_trend': 'Summarizes host resource usage and capacity as time-series data for a requested period. This operation supports up to two years and is not paginated.', - 'summarize_host_insight_resource_utilization_insight': 'Summarizes current and projected host resource utilization insights, including high and low utilization classifications.', - 'summarize_host_insight_storage_usage_trend': 'Summarizes host storage usage as time-series data broken down by filesystem.', - 'summarize_host_insight_top_processes_usage': 'Summarizes top process resource usage on a host for a specific timestamp. Processes are sorted by the requested CPU, memory, or virtual memory metric.', - 'summarize_host_insight_top_processes_usage_trend': 'Summarizes top process resource usage on a host as time-series data. Processes are sorted by the requested CPU, memory, or virtual memory metric.', - 'summarize_operations_insights_warehouse_resource_usage': 'Summarizes resources used by an Operations Insights Warehouse. Only one warehouse is expected per tenant, and it is expected in the root compartment.', - 'update_awr_hub': 'Updates mutable configuration for an AWR Hub resource, such as display metadata or hub connection settings.', - 'update_awr_hub_source': 'Updates mutable configuration for an AWR Hub source database registration, such as display metadata or source registration settings.', - 'update_chargeback_plan': 'Updates one or more attributes of a chargeback plan.', - 'update_chargeback_plan_report': 'Updates one or more attributes of a chargeback plan report.', - 'update_database_insight': 'Updates mutable configuration for a database insight, such as display metadata, tags, or source-specific configuration. This operation changes configuration only and does not retrieve performance metrics.', - 'update_enterprise_manager_bridge': 'Updates mutable configuration for an Operations Insights Enterprise Manager bridge, such as display metadata or bridge connection settings.', - 'update_exadata_insight': 'Updates mutable configuration for an Exadata insight, such as display metadata, tags, or source-specific configuration. This operation changes configuration only and does not retrieve Exadata metrics.', - 'update_host_insight': 'Updates mutable configuration for a host insight, such as display metadata, tags, or source-specific configuration. This operation changes configuration only and does not retrieve host performance metrics.', - 'update_news_report': 'Updates mutable configuration for a news report, such as report content selection, locale, schedule, or notification target.', - 'update_operations_insights_private_endpoint': 'Updates one or more attributes of an Operations Insights private endpoint.', - 'update_operations_insights_warehouse': 'Updates mutable configuration for an Operations Insights Warehouse, such as display metadata or warehouse connection settings. Only one warehouse is expected per tenant, and it is expected in the root compartment.', - 'update_operations_insights_warehouse_user': 'Updates mutable configuration for an Operations Insights Warehouse user, such as user metadata or access-related configuration.', - 'update_opsi_configuration': 'Updates an OPSI configuration resource.', -} diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/models.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/models.py deleted file mode 100644 index 992c20cb..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/models.py +++ /dev/null @@ -1,6202 +0,0 @@ -""" -Copyright (c) 2026, Oracle and/or its affiliates. -Licensed under the Universal Permissive License v1.0 as shown at - -""" - -from __future__ import annotations - -from datetime import date, datetime -from typing import Any, Literal - -from pydantic import BaseModel, ConfigDict, Field - -from oracle.oci_oracle_db_observability.v1.conversion import to_plain_data - - -class OpsiBaseModel(BaseModel): - """Base model for OCI OPSI MCP schemas.""" - - model_config = ConfigDict( - alias_generator=None, - arbitrary_types_allowed=True, - extra="allow", - populate_by_name=True,) - - @classmethod - def from_oci(cls, value: Any): - return cls.model_validate(to_plain_data(value)) - - -class OpsiRequestModel(OpsiBaseModel): - """Base model for OCI OPSI request schemas.""" - - model_config = ConfigDict( - alias_generator=None, - arbitrary_types_allowed=True, - extra="forbid", - populate_by_name=True,) - - -CompartmentAccessLevel = Literal["ANY", "ACCESSIBLE"] -CompartmentLifecycleState = Literal["CREATING", "ACTIVE", "INACTIVE", "DELETING", "DELETED", "UNKNOWN_ENUM_VALUE"] - - -class Compartment(OpsiBaseModel): - """OCI Identity compartment metadata.""" - - id: str = Field(..., description="The OCID of the compartment.") - compartment_id: str | None = Field( - None, - alias="compartmentId", - description="The OCID of the parent compartment.",) - name: str | None = Field(None, description="The compartment name.") - description: str | None = Field(None, description="The compartment description.") - lifecycle_state: CompartmentLifecycleState | None = Field( - None, - alias="lifecycleState", - description="The current lifecycle state of the compartment.",) - time_created: datetime | None = Field( - None, - alias="timeCreated", - description="The date and time the compartment was created.",) - inactive_status: int | None = Field( - None, - alias="inactiveStatus", - ge=0, - description="The status of the compartment if it is inactive.",) - freeform_tags: dict[str, str] | None = Field( - None, - alias="freeformTags", - description="Free-form tags returned for the compartment.",) - defined_tags: dict[str, dict[str, Any]] | None = Field( - None, - alias="definedTags", - description="Defined tags returned for the compartment.",) - system_tags: dict[str, dict[str, Any]] | None = Field( - None, - alias="systemTags", - description="System tags returned for the compartment.",) - - -class CompartmentCollection(OpsiBaseModel): - """Collection of OCI Identity compartments.""" - - items: list[Compartment] = Field(..., description="Compartments returned by the list request.") - count: int = Field(..., ge=0, description="Number of compartments returned.") - - -class AddEmManagedExternalExadataInsightMembersDetails(OpsiBaseModel): - """The information about the members of Exadata system to be added. If memberEntityDetails is not specified, the the Enterprise Manager entity (e.g. databases and hosts) associated with an Exadata system will be placed in the same compartment as the Exadata system.""" - - entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA'] = Field(..., alias='entitySource', description='Gets the entity_source of this AddExadataInsightMembersDetails.\nSource of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA"') - member_entity_details: list[CreateEmManagedExternalExadataMemberEntityDetails] | None = Field(None, alias='memberEntityDetails', description='The member_entity_details field of AddEmManagedExternalExadataInsightMembersDetails.') - - -class AddExadataInsightMembersDetails(OpsiRequestModel): - """The information about the members of Exadata system to be added.""" - - entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA'] = Field(..., alias='entitySource', description='Source of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA"') - - -class AddMacsManagedCloudExadataInsightMembersDetails(OpsiBaseModel): - """The information about the members of Exadata system to be added.""" - - entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA'] = Field(..., alias='entitySource', description='Gets the entity_source of this AddExadataInsightMembersDetails.\nSource of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA"') - member_entity_details: list[CreateMacsManagedCloudExadataVmclusterDetails] | None = Field(None, alias='memberEntityDetails', description='The member_entity_details field of AddMacsManagedCloudExadataInsightMembersDetails.') - - -class AddPeComanagedExadataInsightMembersDetails(OpsiBaseModel): - """The information about the members of Exadata system to be added.""" - - entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA'] = Field(..., alias='entitySource', description='Gets the entity_source of this AddExadataInsightMembersDetails.\nSource of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA"') - member_entity_details: list[CreatePeComanagedExadataVmclusterDetails] | None = Field(None, alias='memberEntityDetails', description='The member_entity_details field of AddPeComanagedExadataInsightMembersDetails.') - - -class AddmDbCollection(OpsiBaseModel): - """The result of ADDM databases.""" - - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - items: list[AddmDbSummary] = Field(..., alias='items', description='List of ADDM database summary data') - - -class AddmDbFindingAggregation(OpsiBaseModel): - """Summarizes a specific ADDM finding.""" - - id: str = Field(..., alias='id', description='The OCID of the Database insight.') - finding_id: str = Field(..., alias='findingId', description='Unique finding id') - category_name: str = Field(..., alias='categoryName', description='Category name') - category_display_name: str = Field(..., alias='categoryDisplayName', description='Category display name') - name: str = Field(..., alias='name', description='Finding name') - message: str = Field(..., alias='message', description='Finding message') - impact_overall_percent: float = Field(..., alias='impactOverallPercent', description='Overall impact in terms of percentage of total activity') - impact_max_percent: float = Field(..., alias='impactMaxPercent', description='Maximum impact in terms of percentage of total activity') - impact_avg_active_sessions: float | None = Field(None, alias='impactAvgActiveSessions', description='Impact in terms of average active sessions') - frequency_count: int = Field(..., alias='frequencyCount', description='Number of occurrences for this finding', ge=0) - recommendation_count: int = Field(..., alias='recommendationCount', description='Number of recommendations for this finding', ge=0) - - -class AddmDbFindingAggregationCollection(OpsiBaseModel): - """Summarizes ADDM findings over specified time period.""" - - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - database_details_items: list[DatabaseDetails] = Field(..., alias='databaseDetailsItems', description='List of database details data') - items: list[AddmDbFindingAggregation] = Field(..., alias='items', description='List of ADDM finding summaries') - - -class AddmDbFindingCategoryCollection(OpsiBaseModel): - """List of finding categories.""" - - database_details_items: list[DatabaseDetails] = Field(..., alias='databaseDetailsItems', description='List of database details data') - items: list[AddmDbFindingCategorySummary] = Field(..., alias='items', description='List of finding categories') - - -class AddmDbFindingCategorySummary(OpsiBaseModel): - """Finding category summary.""" - - id: str = Field(..., alias='id', description='The OCID of the Database insight.') - name: str = Field(..., alias='name', description='Name of finding category') - display_name: str = Field(..., alias='displayName', description='Display name of finding category') - - -class AddmDbFindingsTimeSeriesCollection(OpsiBaseModel): - """ADDM findings time series response.""" - - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - database_details_items: list[DatabaseDetails] = Field(..., alias='databaseDetailsItems', description='List of database details data') - items: list[AddmDbFindingsTimeSeriesSummary] = Field(..., alias='items', description='List of ADDM finding time series data') - - -class AddmDbFindingsTimeSeriesSummary(OpsiBaseModel): - """ADDM findings time series data.""" - - id: str = Field(..., alias='id', description='The OCID of the Database insight.') - task_id: int = Field(..., alias='taskId', description='Unique ADDM task id') - task_name: str = Field(..., alias='taskName', description='ADDM task name') - finding_id: str = Field(..., alias='findingId', description='Unique finding id') - timestamp: datetime = Field(..., alias='timestamp', description='Timestamp when finding was generated') - time_analysis_started: datetime | None = Field(None, alias='timeAnalysisStarted', description='Start Timestamp of snapshot') - time_analysis_ended: datetime | None = Field(None, alias='timeAnalysisEnded', description='End Timestamp of snapshot') - category_name: str = Field(..., alias='categoryName', description='Category name') - category_display_name: str = Field(..., alias='categoryDisplayName', description='Category display name') - name: str = Field(..., alias='name', description='Finding name') - message: str = Field(..., alias='message', description='Finding message') - analysis_db_time_in_secs: float | None = Field(None, alias='analysisDbTimeInSecs', description='DB time in seconds for the snapshot') - analysis_avg_active_sessions: float | None = Field(None, alias='analysisAvgActiveSessions', description='DB avg active sessions for the snapshot') - impact_db_time_in_secs: float | None = Field(None, alias='impactDbTimeInSecs', description='Impact in seconds') - impact_percent: float = Field(..., alias='impactPercent', description='Impact in terms of percentage of total activity') - impact_avg_active_sessions: float = Field(..., alias='impactAvgActiveSessions', description='Impact in terms of average active sessions') - - -class AddmDbParameterAggregation(OpsiBaseModel): - """Summarizes change history for specific database parameter.""" - - id: str = Field(..., alias='id', description='The OCID of the Database insight.') - name: str = Field(..., alias='name', description='Name of parameter') - inst_num: int | None = Field(None, alias='instNum', description='Number of database instance') - default_value: str | None = Field(None, alias='defaultValue', description='Parameter default value') - begin_value: str | None = Field(None, alias='beginValue', description='Parameter value when time period began') - end_value: str | None = Field(None, alias='endValue', description='Parameter value when time period ended') - is_changed: bool = Field(..., alias='isChanged', description="Indicates whether the parameter's value changed during the selected time range (TRUE) or\ndid not change during the selected time range (FALSE)") - is_default: bool | None = Field(None, alias='isDefault', description="Indicates whether the parameter's end value was set to the default value (TRUE) or was\nspecified in the parameter file (FALSE)") - value_modified: str | None = Field(None, alias='valueModified', description='Indicates whether the parameter has been modified after instance starup\nMODIFIED - Parameter has been modified with ALTER SESSION\nSYSTEM_MOD - Parameter has been modified with ALTER SYSTEM\nFALSE - Parameter has not been modified after instance starup') - is_high_impact: bool | None = Field(None, alias='isHighImpact', description='Indicates whether the parameter is a high impact parameter (TRUE) or not (FALSE)') - - -class AddmDbParameterAggregationCollection(OpsiBaseModel): - """Summarizes AWR parameter change history over specified time period.""" - - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - database_details_items: list[DatabaseDetails] = Field(..., alias='databaseDetailsItems', description='List of database details data') - items: list[AddmDbParameterAggregation] = Field(..., alias='items', description='List of AWR parameter change summaries') - - -class AddmDbParameterCategoryCollection(OpsiBaseModel): - """List of database parameter categories.""" - - database_details_items: list[DatabaseDetails] = Field(..., alias='databaseDetailsItems', description='List of database details data') - items: list[AddmDbParameterCategorySummary] = Field(..., alias='items', description='List of database parameter categories') - - -class AddmDbParameterCategorySummary(OpsiBaseModel): - """Database parameter category summary.""" - - id: str = Field(..., alias='id', description='The OCID of the Database insight.') - name: str = Field(..., alias='name', description='Name of database parameter category') - display_name: str = Field(..., alias='displayName', description='Display name of database parameter category') - - -class AddmDbParameterChangeAggregation(OpsiBaseModel): - """Change record for AWR database parameter.""" - - id: str = Field(..., alias='id', description='The OCID of the Database insight.') - time_begin: datetime = Field(..., alias='timeBegin', description='Begin time of interval which includes change') - time_end: datetime = Field(..., alias='timeEnd', description='End time of interval which includes change') - inst_num: int = Field(..., alias='instNum', description='Instance number') - previous_value: str | None = Field(None, alias='previousValue', description='Previous value') - value: str | None = Field(None, alias='value', description='Current value') - snapshot_id: int = Field(..., alias='snapshotId', description='AWR snapshot id which includes the parameter value change') - - -class AddmDbParameterChangeAggregationCollection(OpsiBaseModel): - """Summarizes AWR parameter change history over specified time period for specified parameter.""" - - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - database_details_items: list[DatabaseDetails] = Field(..., alias='databaseDetailsItems', description='List of database details data') - items: list[AddmDbParameterChangeAggregation] = Field(..., alias='items', description='List of AWR parameter changes') - - -class AddmDbRecommendationAggregation(OpsiBaseModel): - """Summarizes a specific ADDM recommendation.""" - - id: str = Field(..., alias='id', description='The OCID of the Database insight.') - type: str | None = Field(None, alias='type', description='Type of recommendation') - message: str = Field(..., alias='message', description='Recommendation message') - requires_db_restart: str | None = Field(None, alias='requiresDbRestart', description='Indicates implementation of the recommended action requires a database restart in order for it\nto take effect. Possible values "Y", "N" and null.') - implement_actions: list[str] | None = Field(None, alias='implementActions', description="Actions that can be performed to implement the recommendation (such as 'ALTER PARAMETER',\n'RUN SQL TUNING ADVISOR')") - rationale: str | None = Field(None, alias='rationale', description='Recommendation message') - max_benefit_percent: float | None = Field(None, alias='maxBenefitPercent', description='Maximum estimated benefit in terms of percentage of total activity') - overall_benefit_percent: float | None = Field(None, alias='overallBenefitPercent', description='Overall estimated benefit in terms of percentage of total activity') - max_benefit_avg_active_sessions: float | None = Field(None, alias='maxBenefitAvgActiveSessions', description='Maximum estimated benefit in terms of average active sessions') - frequency_count: int | None = Field(None, alias='frequencyCount', description='Number of occurrences for this recommendation', ge=0) - related_object: RelatedObjectTypeDetails | None = Field(None, alias='relatedObject', description='The related_object field of AddmDbRecommendationAggregation.') - - -class AddmDbRecommendationAggregationCollection(OpsiBaseModel): - """Summarizes ADDM recommendations over specified time period.""" - - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - database_details_items: list[DatabaseDetails] = Field(..., alias='databaseDetailsItems', description='List of database details data') - items: list[AddmDbRecommendationAggregation] = Field(..., alias='items', description='List of ADDM recommendation summaries') - - -class AddmDbRecommendationCategoryCollection(OpsiBaseModel): - """List of recommendation categories.""" - - database_details_items: list[DatabaseDetails] = Field(..., alias='databaseDetailsItems', description='List of database details data') - items: list[AddmDbRecommendationCategorySummary] = Field(..., alias='items', description='List of recommendation categories') - - -class AddmDbRecommendationCategorySummary(OpsiBaseModel): - """Recommendation category summary.""" - - id: str = Field(..., alias='id', description='The OCID of the Database insight.') - name: str = Field(..., alias='name', description='Name of recommendation category') - display_name: str = Field(..., alias='displayName', description='Display name of recommendation category') - - -class AddmDbRecommendationsTimeSeriesCollection(OpsiBaseModel): - """ADDM recommendations time series.""" - - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - database_details_items: list[DatabaseDetails] = Field(..., alias='databaseDetailsItems', description='List of database details data') - items: list[AddmDbRecommendationsTimeSeriesSummary] = Field(..., alias='items', description='List of ADDM recommendations time series data') - - -class AddmDbRecommendationsTimeSeriesSummary(OpsiBaseModel): - """ADDM recommendation.""" - - id: str = Field(..., alias='id', description='The OCID of the Database insight.') - task_id: int = Field(..., alias='taskId', description='Unique ADDM task id') - task_name: str = Field(..., alias='taskName', description='ADDM task name') - timestamp: datetime = Field(..., alias='timestamp', description='Timestamp when recommendation was generated') - time_analysis_started: datetime | None = Field(None, alias='timeAnalysisStarted', description='Start Timestamp of snapshot') - time_analysis_ended: datetime | None = Field(None, alias='timeAnalysisEnded', description='End Timestamp of snapshot') - type: str | None = Field(None, alias='type', description='Type of recommendation') - analysis_db_time_in_secs: float | None = Field(None, alias='analysisDbTimeInSecs', description='DB time in seconds for the snapshot') - analysis_avg_active_sessions: float | None = Field(None, alias='analysisAvgActiveSessions', description='DB avg active sessions for the snapshot') - max_benefit_percent: float | None = Field(None, alias='maxBenefitPercent', description='Maximum estimated benefit in terms of percentage of total activity') - max_benefit_db_time_in_secs: float | None = Field(None, alias='maxBenefitDbTimeInSecs', description='Maximum estimated benefit in terms of seconds') - max_benefit_avg_active_sessions: float | None = Field(None, alias='maxBenefitAvgActiveSessions', description='Maximum estimated benefit in terms of average active sessions') - related_object: RelatedObjectTypeDetails | None = Field(None, alias='relatedObject', description='The related_object field of AddmDbRecommendationsTimeSeriesSummary.') - - -class AddmDbSchemaObjectCollection(OpsiBaseModel): - """Summarizes Schema Objects over specified time period.""" - - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - database_details_items: list[DatabaseDetails] = Field(..., alias='databaseDetailsItems', description='List of database details data') - items: list[AddmDbSchemaObjectSummary] = Field(..., alias='items', description='List of Schema Objects') - - -class AddmDbSchemaObjectSummary(OpsiBaseModel): - """Details for a given object id.""" - - id: str = Field(..., alias='id', description='The OCID of the Database insight.') - object_identifier: int = Field(..., alias='objectIdentifier', description='Object id (from RDBMS)') - owner: str = Field(..., alias='owner', description='Owner of object') - object_name: str = Field(..., alias='objectName', description='Name of object') - sub_object_name: str | None = Field(None, alias='subObjectName', description='Subobject name; for example, partition name') - object_type: str = Field(..., alias='objectType', description='Type of the object (such as TABLE, INDEX)') - - -class AddmDbSqlStatementCollection(OpsiBaseModel): - """Summarizes SQL statements over specified time period.""" - - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - database_details_items: list[DatabaseDetails] = Field(..., alias='databaseDetailsItems', description='List of database details data') - items: list[AddmDbSqlStatementSummary] = Field(..., alias='items', description='List of SQL statements') - - -class AddmDbSqlStatementSummary(OpsiBaseModel): - """Details for a given SQL ID.""" - - id: str = Field(..., alias='id', description='The OCID of the Database insight.') - sql_identifier: str = Field(..., alias='sqlIdentifier', description='SQL identifier') - sql_text: str = Field(..., alias='sqlText', description='First 3800 characters of the SQL text') - is_sql_text_truncated: bool = Field(..., alias='isSqlTextTruncated', description='SQL identifier') - sql_command: str = Field(..., alias='sqlCommand', description='SQL command name (such as SELECT, INSERT)') - - -class AddmDbSummary(OpsiBaseModel): - """ADDM summary for a database.""" - - database_details: DatabaseDetails = Field(..., alias='databaseDetails', description='The database_details field of AddmDbSummary.') - number_of_findings: int | None = Field(None, alias='numberOfFindings', description='Number of ADDM findings') - number_of_addm_tasks: int | None = Field(None, alias='numberOfAddmTasks', description='Number of ADDM tasks') - time_first_snapshot_begin: datetime | None = Field(None, alias='timeFirstSnapshotBegin', description='The start timestamp that was passed into the request.') - time_latest_snapshot_end: datetime | None = Field(None, alias='timeLatestSnapshotEnd', description='The end timestamp that was passed into the request.') - snapshot_interval_start: str | None = Field(None, alias='snapshotIntervalStart', description='AWR snapshot id.') - snapshot_interval_end: str | None = Field(None, alias='snapshotIntervalEnd', description='AWR snapshot id.') - max_overall_impact: float | None = Field(None, alias='maxOverallImpact', description='Maximum overall impact in terms of percentage of total activity') - most_frequent_category_name: str | None = Field(None, alias='mostFrequentCategoryName', description='Category name') - most_frequent_category_display_name: str | None = Field(None, alias='mostFrequentCategoryDisplayName', description='Category display name') - - -class AddmReport(OpsiBaseModel): - """ADDM Tasks.""" - - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - task_identifier: str = Field(..., alias='taskIdentifier', description='TASK_ID in the oracle database view DBA_ADDM_TASKS') - database_identifier: str = Field(..., alias='databaseIdentifier', description='Internal id of the database.') - snapshot_interval_start: str = Field(..., alias='snapshotIntervalStart', description='AWR snapshot id.') - snapshot_interval_end: str = Field(..., alias='snapshotIntervalEnd', description='AWR snapshot id.') - addm_report: str = Field(..., alias='addmReport', description='The complete ADDM report') - - -class AutonomousDatabaseConfigurationSummary(OpsiBaseModel): - """Configuration Summary of autonomous database.""" - - database_insight_id: str = Field(..., alias='databaseInsightId', description='Gets the database_insight_id of this DatabaseConfigurationSummary. The OCID of the database insight resource.') - entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseConfigurationSummary.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this DatabaseConfigurationSummary. The OCID of the compartment.') - database_name: str = Field(..., alias='databaseName', description='Gets the database_name of this DatabaseConfigurationSummary.\nThe database name. The database name is unique within the tenancy.') - database_display_name: str = Field(..., alias='databaseDisplayName', description='Gets the database_display_name of this DatabaseConfigurationSummary.\nThe user-friendly name for the database. The name does not have to be unique.') - database_type: str = Field(..., alias='databaseType', description='Gets the database_type of this DatabaseConfigurationSummary.\nOps Insights internal representation of the database type.') - database_version: str = Field(..., alias='databaseVersion', description='Gets the database_version of this DatabaseConfigurationSummary.\nThe version of the database.') - is_advanced_features_enabled: bool = Field(..., alias='isAdvancedFeaturesEnabled', description='Gets the is_advanced_features_enabled of this DatabaseConfigurationSummary.\nFlag is to identify if advanced features for autonomous database is enabled or not') - cdb_name: str = Field(..., alias='cdbName', description='Gets the cdb_name of this DatabaseConfigurationSummary.\nName of the CDB.Only applies to PDB.') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this DatabaseConfigurationSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this DatabaseConfigurationSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseConfigurationSummary.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) - database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') - - -class AutonomousDatabaseInsight(OpsiBaseModel): - """Database insight resource.""" - - entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseInsight.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - id: str = Field(..., alias='id', description='Gets the id of this DatabaseInsight.\nDatabase insight identifier') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this DatabaseInsight.\nCompartment identifier of the database') - status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Gets the status of this DatabaseInsight.\nIndicates the status of a database insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_type: str | None = Field(None, alias='databaseType', description='Gets the database_type of this DatabaseInsight.\nOps Insights internal representation of the database type.') - database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this DatabaseInsight.\nThe version of the database.') - processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseInsight.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this DatabaseInsight.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this DatabaseInsight.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this DatabaseInsight.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - time_created: datetime = Field(..., alias='timeCreated', description='Gets the time_created of this DatabaseInsight.\nThe time the the database insight was first enabled. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DatabaseInsight.\nThe time the database insight was updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Gets the lifecycle_state of this DatabaseInsight.\nThe current state of the database.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DatabaseInsight.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - database_connection_status_details: str | None = Field(None, alias='databaseConnectionStatusDetails', description='Gets the database_connection_status_details of this DatabaseInsight.\nA message describing the status of the database connection of this resource. For example, it can be used to provide actionable information about the permission and content validity of the database connection.') - database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') - database_name: str = Field(..., alias='databaseName', description='Name of database') - database_display_name: str | None = Field(None, alias='databaseDisplayName', description='Display name of database') - database_resource_type: str = Field(..., alias='databaseResourceType', description='OCI database resource type') - db_additional_details: Any | None = Field(None, alias='dbAdditionalDetails', description='Additional details of a database in JSON format. For autonomous databases, this is the AutonomousDatabase object serialized as a JSON string as defined in For EM, pass in null or an empty string. Note that this string needs to be escaped when specified in the curl command.') - opsi_private_endpoint_id: str | None = Field(None, alias='opsiPrivateEndpointId', description='The OCID of the OPSI private endpoint.') - is_advanced_features_enabled: bool | None = Field(None, alias='isAdvancedFeaturesEnabled', description='Flag is to identify if advanced features for autonomous database is enabled or not') - connection_details: ConnectionDetails | None = Field(None, alias='connectionDetails', description='The connection_details field of AutonomousDatabaseInsight.') - credential_details: CredentialDetails | None = Field(None, alias='credentialDetails', description='The credential_details field of AutonomousDatabaseInsight.') - - -class AutonomousDatabaseInsightSummary(OpsiBaseModel): - """Summary of a database insight resource.""" - - id: str = Field(..., alias='id', description='Gets the id of this DatabaseInsightSummary. The OCID of the database insight resource.') - database_id: str = Field(..., alias='databaseId', description='Gets the database_id of this DatabaseInsightSummary. The OCID of the database.') - compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this DatabaseInsightSummary. The OCID of the compartment.') - database_name: str | None = Field(None, alias='databaseName', description='Gets the database_name of this DatabaseInsightSummary.\nThe database name. The database name is unique within the tenancy.') - database_display_name: str | None = Field(None, alias='databaseDisplayName', description='Gets the database_display_name of this DatabaseInsightSummary.\nThe user-friendly name for the database. The name does not have to be unique.') - database_type: str | None = Field(None, alias='databaseType', description='Gets the database_type of this DatabaseInsightSummary.\nOps Insights internal representation of the database type.') - database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this DatabaseInsightSummary.\nThe version of the database.') - database_host_names: list[str] | None = Field(None, alias='databaseHostNames', description='Gets the database_host_names of this DatabaseInsightSummary.\nThe hostnames for the database.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this DatabaseInsightSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this DatabaseInsightSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this DatabaseInsightSummary.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseInsightSummary.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseInsightSummary.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) - status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='status', description='Gets the status of this DatabaseInsightSummary.\nIndicates the status of a database insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DatabaseInsightSummary.\nThe time the the database insight was first enabled. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DatabaseInsightSummary.\nThe time the database insight was updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DatabaseInsightSummary.\nThe current state of the database.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DatabaseInsightSummary.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - database_connection_status_details: str | None = Field(None, alias='databaseConnectionStatusDetails', description='Gets the database_connection_status_details of this DatabaseInsightSummary.\nA message describing the status of the database connection of this resource. For example, it can be used to provide actionable information about the permission and content validity of the database connection.') - database_resource_type: str | None = Field(None, alias='databaseResourceType', description='OCI database resource type') - is_advanced_features_enabled: bool | None = Field(None, alias='isAdvancedFeaturesEnabled', description='Flag is to identify if advanced features for autonomous database is enabled or not') - - -class AwrDatabaseCollection(OpsiBaseModel): - """The result of AWR query.""" - - name: str = Field(..., alias='name', description='Gets the name of this AwrQueryResult.\nThe name of the query result.') - version: str | None = Field(None, alias='version', description='Gets the version of this AwrQueryResult.\nThe version of the query result.') - db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') - awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - items: list[AwrDatabaseSummary] | None = Field(None, alias='items', description='A list of AWR summary data.') - - -class AwrDatabaseCpuUsageCollection(OpsiBaseModel): - """The AWR CPU usage data.""" - - name: str = Field(..., alias='name', description='Gets the name of this AwrQueryResult.\nThe name of the query result.') - version: str | None = Field(None, alias='version', description='Gets the version of this AwrQueryResult.\nThe version of the query result.') - db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') - awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - num_cpu_cores: int | None = Field(None, alias='numCpuCores', description='The number of available CPU cores, which include subcores of multicore and single-core CPUs.') - database_cpu_count: int | None = Field(None, alias='databaseCpuCount', description='The number of CPUs available for the database to use.', ge=0) - host_cpu_count: float | None = Field(None, alias='hostCpuCount', description='The number of available CPUs or processors.', ge=0) - items: list[AwrDatabaseCpuUsageSummary] | None = Field(None, alias='items', description='A list of AWR CPU usage summary data.') - - -class AwrDatabaseCpuUsageSummary(OpsiBaseModel): - """A summary of the AWR CPU resource limits and metrics.""" - - timestamp: datetime | None = Field(None, alias='timestamp', description='The timestamp for the CPU summary data.') - avg_usage_in_secs: float | None = Field(None, alias='avgUsageInSecs', description='The average CPU usage per second.') - - -class AwrDatabaseMetricCollection(OpsiBaseModel): - """The AWR metrics time series summary data.""" - - name: str = Field(..., alias='name', description='Gets the name of this AwrQueryResult.\nThe name of the query result.') - version: str | None = Field(None, alias='version', description='Gets the version of this AwrQueryResult.\nThe version of the query result.') - db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') - awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - items: list[AwrDatabaseMetricSummary] | None = Field(None, alias='items', description='A list of AWR metric summary data.') - - -class AwrDatabaseMetricSummary(OpsiBaseModel): - """The summary of the AWR metric data for a particular metric at a specific time.""" - - name: str = Field(..., alias='name', description='The name of the metric.') - timestamp: datetime | None = Field(None, alias='timestamp', description='The time of the sampling.') - avg_value: float | None = Field(None, alias='avgValue', description='The average value of the sampling period.') - min_value: float | None = Field(None, alias='minValue', description='The minimum value of the sampling period.') - max_value: float | None = Field(None, alias='maxValue', description='The maximum value of the sampling period.') - - -class AwrDatabaseParameterChangeCollection(OpsiBaseModel): - """The AWR database parameter change history.""" - - name: str = Field(..., alias='name', description='Gets the name of this AwrQueryResult.\nThe name of the query result.') - version: str | None = Field(None, alias='version', description='Gets the version of this AwrQueryResult.\nThe version of the query result.') - db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') - awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - items: list[AwrDatabaseParameterChangeSummary] | None = Field(None, alias='items', description='A list of AWR database parameter change summary data.') - - -class AwrDatabaseParameterChangeSummary(OpsiBaseModel): - """A summary of the changes made to a single AWR database parameter.""" - - time_begin: datetime | None = Field(None, alias='timeBegin', description='The start time of the interval.') - time_end: datetime | None = Field(None, alias='timeEnd', description='The end time of the interval.') - instance_number: int | None = Field(None, alias='instanceNumber', description='The database instance number.') - previous_value: str | None = Field(None, alias='previousValue', description='The previous value of the database parameter.') - value: str | None = Field(None, alias='value', description='The current value of the database parameter.') - snapshot_identifier: int = Field(..., alias='snapshotIdentifier', description='AWR snapshot identifier for the snapshot where the parameter value changed. This value is not an OCID.') - value_modified: str | None = Field(None, alias='valueModified', description='Indicates whether the parameter has been modified after instance startup:\n- MODIFIED - Parameter has been modified with ALTER SESSION\n- SYSTEM_MOD - Parameter has been modified with ALTER SYSTEM (which causes all the currently logged in sessions values to be modified)\n- FALSE - Parameter has not been modified after instance startup') - is_default: bool | None = Field(None, alias='isDefault', description='Indicates whether the parameter value in the end snapshot is the default.') - - -class AwrDatabaseParameterCollection(OpsiBaseModel): - """The AWR database parameter data.""" - - name: str = Field(..., alias='name', description='Gets the name of this AwrQueryResult.\nThe name of the query result.') - version: str | None = Field(None, alias='version', description='Gets the version of this AwrQueryResult.\nThe version of the query result.') - db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') - awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - items: list[AwrDatabaseParameterSummary] | None = Field(None, alias='items', description='A list of AWR database parameter summary data.') - - -class AwrDatabaseParameterSummary(OpsiBaseModel): - """The summary of the AWR change history data for a single database parameter.""" - - name: str = Field(..., alias='name', description='The name of the parameter.') - instance_number: int | None = Field(None, alias='instanceNumber', description='The database instance number.') - begin_value: str | None = Field(None, alias='beginValue', description='The parameter value when the period began.') - end_value: str | None = Field(None, alias='endValue', description='The parameter value when the period ended.') - is_changed: bool | None = Field(None, alias='isChanged', description='Indicates whether the parameter value changed within the period.') - value_modified: str | None = Field(None, alias='valueModified', description='Indicates whether the parameter has been modified after instance startup:\n- MODIFIED - Parameter has been modified with ALTER SESSION\n- SYSTEM_MOD - Parameter has been modified with ALTER SYSTEM (which causes all the currently logged in sessions values to be modified)\n- FALSE - Parameter has not been modified after instance startup') - is_default: bool | None = Field(None, alias='isDefault', description='Indicates whether the parameter value in the end snapshot is the default.') - - -class AwrDatabaseReport(OpsiBaseModel): - """The result of the AWR report.""" - - name: str = Field(..., alias='name', description='Gets the name of this AwrQueryResult.\nThe name of the query result.') - version: str | None = Field(None, alias='version', description='Gets the version of this AwrQueryResult.\nThe version of the query result.') - db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') - awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - content: str | None = Field(None, alias='content', description='The content of the report.') - format: Literal['HTML', 'TEXT', 'XML', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='format', description='The format of the report.\n\nAllowed values for this property are: "HTML", "TEXT", "XML", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class AwrDatabaseSnapshotCollection(OpsiBaseModel): - """The list of AWR snapshots for one database.""" - - name: str = Field(..., alias='name', description='Gets the name of this AwrQueryResult.\nThe name of the query result.') - version: str | None = Field(None, alias='version', description='Gets the version of this AwrQueryResult.\nThe version of the query result.') - db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') - awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - items: list[AwrDatabaseSnapshotSummary] | None = Field(None, alias='items', description='A list of AWR snapshot summary data.') - - -class AwrDatabaseSnapshotRangeCollection(OpsiBaseModel): - """The AWR snapshot range list.""" - - name: str = Field(..., alias='name', description='Gets the name of this AwrQueryResult.\nThe name of the query result.') - version: str | None = Field(None, alias='version', description='Gets the version of this AwrQueryResult.\nThe version of the query result.') - db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') - awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - items: list[AwrDatabaseSnapshotRangeSummary] | None = Field(None, alias='items', description='A list of AWR snapshot range summary data.') - - -class AwrDatabaseSnapshotRangeSummary(OpsiBaseModel): - """The summary data for a range of AWR snapshots.""" - - awr_source_database_identifier: str = Field(..., alias='awrSourceDatabaseIdentifier', description='Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.') - db_name: str = Field(..., alias='dbName', description='The name of the database.') - instance_list: list[int] | None = Field(None, alias='instanceList', description='The database instance numbers.') - time_db_startup: datetime | None = Field(None, alias='timeDbStartup', description='The timestamp of the database startup.') - time_first_snapshot_begin: datetime | None = Field(None, alias='timeFirstSnapshotBegin', description='The start time of the earliest snapshot.') - time_latest_snapshot_end: datetime | None = Field(None, alias='timeLatestSnapshotEnd', description='The end time of the latest snapshot.') - first_snapshot_identifier: int | None = Field(None, alias='firstSnapshotIdentifier', description='Earliest AWR snapshot identifier in the range. This value is not an OCID; use snapshot identifiers returned by AWR snapshot listing results.') - latest_snapshot_identifier: int | None = Field(None, alias='latestSnapshotIdentifier', description='Latest AWR snapshot identifier in the range. This value is not an OCID; use snapshot identifiers returned by AWR snapshot listing results.') - snapshot_count: int | None = Field(None, alias='snapshotCount', description='The total number of snapshots.', ge=0) - snapshot_interval_in_min: int | None = Field(None, alias='snapshotIntervalInMin', description='The interval time between snapshots (in minutes).') - db_version: str | None = Field(None, alias='dbVersion', description='The version of the database.') - snapshot_timezone: str | None = Field(None, alias='snapshotTimezone', description='The time zone of the snapshot. sample - snapshotTimezone=+0 00:00:00') - - -class AwrDatabaseSnapshotSummary(OpsiBaseModel): - """The AWR snapshot summary of one snapshot.""" - - awr_source_database_identifier: str = Field(..., alias='awrSourceDatabaseIdentifier', description='Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.') - instance_number: int | None = Field(None, alias='instanceNumber', description='The database instance number.') - time_db_startup: datetime | None = Field(None, alias='timeDbStartup', description='The timestamp of the database startup.') - time_begin: datetime | None = Field(None, alias='timeBegin', description='The start time of the snapshot.') - time_end: datetime | None = Field(None, alias='timeEnd', description='The end time of the snapshot.') - snapshot_identifier: int = Field(..., alias='snapshotIdentifier', description='AWR snapshot identifier within the selected AWR database. This value is not an OCID; use snapshot identifiers returned by AWR snapshot listing results.') - error_count: int | None = Field(None, alias='errorCount', description='The total number of errors.', ge=0) - - -class AwrDatabaseSqlReport(OpsiBaseModel): - """The result of the AWR SQL report.""" - - name: str = Field(..., alias='name', description='Gets the name of this AwrQueryResult.\nThe name of the query result.') - version: str | None = Field(None, alias='version', description='Gets the version of this AwrQueryResult.\nThe version of the query result.') - db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') - awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - content: str | None = Field(None, alias='content', description='The content of the report.') - format: Literal['HTML', 'TEXT', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='format', description='The format of the report.\n\nAllowed values for this property are: "HTML", "TEXT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class AwrDatabaseSummary(OpsiBaseModel): - """The AWR summary for a database.""" - - awr_source_database_identifier: str = Field(..., alias='awrSourceDatabaseIdentifier', description='Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.') - db_name: str = Field(..., alias='dbName', description='The name of the database.') - instance_list: list[int] | None = Field(None, alias='instanceList', description='The database instance numbers.') - time_db_startup: datetime | None = Field(None, alias='timeDbStartup', description='The timestamp of the database startup.') - time_first_snapshot_begin: datetime | None = Field(None, alias='timeFirstSnapshotBegin', description='The start time of the earliest snapshot.') - time_latest_snapshot_end: datetime | None = Field(None, alias='timeLatestSnapshotEnd', description='The end time of the latest snapshot.') - first_snapshot_identifier: int | None = Field(None, alias='firstSnapshotIdentifier', description='Earliest AWR snapshot identifier in the range. This value is not an OCID; use snapshot identifiers returned by AWR snapshot listing results.') - latest_snapshot_identifier: int | None = Field(None, alias='latestSnapshotIdentifier', description='Latest AWR snapshot identifier in the range. This value is not an OCID; use snapshot identifiers returned by AWR snapshot listing results.') - snapshot_count: int | None = Field(None, alias='snapshotCount', description='The total number of snapshots.', ge=0) - snapshot_interval_in_min: int | None = Field(None, alias='snapshotIntervalInMin', description='The interval time between snapshots (in minutes).') - db_version: str | None = Field(None, alias='dbVersion', description='The version of the database.') - snapshot_timezone: str | None = Field(None, alias='snapshotTimezone', description='The time zone of the snapshot. sample - snapshotTimezone=+0 00:00:00') - - -class AwrDatabaseSysstatCollection(OpsiBaseModel): - """The AWR SYSSTAT time series summary data.""" - - name: str = Field(..., alias='name', description='Gets the name of this AwrQueryResult.\nThe name of the query result.') - version: str | None = Field(None, alias='version', description='Gets the version of this AwrQueryResult.\nThe version of the query result.') - db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') - awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - items: list[AwrDatabaseSysstatSummary] | None = Field(None, alias='items', description='A list of AWR SYSSTAT summary data.') - - -class AwrDatabaseSysstatSummary(OpsiBaseModel): - """The summary of the AWR SYSSTAT data.""" - - name: str = Field(..., alias='name', description='The name of the SYSSTAT.') - category: str | None = Field(None, alias='category', description='The name of the SYSSTAT category.') - time_begin: datetime | None = Field(None, alias='timeBegin', description='The start time of the SYSSTAT.') - time_end: datetime | None = Field(None, alias='timeEnd', description='The end time of the SYSSTAT.') - avg_value: float | None = Field(None, alias='avgValue', description='The average value of the SYSSTAT. The units are stats name/val per the time period {timeBegin - timeEnd}.') - current_value: float | None = Field(None, alias='currentValue', description='The last value of the SYSSTAT. The units are stats name/val per the time period {timeBegin - timeEnd}.') - - -class AwrDatabaseTopWaitEventCollection(OpsiBaseModel): - """The AWR top wait event data.""" - - name: str = Field(..., alias='name', description='Gets the name of this AwrQueryResult.\nThe name of the query result.') - version: str | None = Field(None, alias='version', description='Gets the version of this AwrQueryResult.\nThe version of the query result.') - db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') - awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - items: list[AwrDatabaseTopWaitEventSummary] | None = Field(None, alias='items', description='A list of AWR top event summary data.') - - -class AwrDatabaseTopWaitEventSummary(OpsiBaseModel): - """A summary of the AWR top wait event data for one event.""" - - name: str = Field(..., alias='name', description='The name of the event.') - waits_per_sec: float | None = Field(None, alias='waitsPerSec', description='The wait count per second.') - avg_wait_time_per_sec: float | None = Field(None, alias='avgWaitTimePerSec', description='The average wait time per second.') - - -class AwrDatabaseWaitEventBucketCollection(OpsiBaseModel): - """The percentage distribution of waits in the AWR wait event buckets.""" - - name: str = Field(..., alias='name', description='Gets the name of this AwrQueryResult.\nThe name of the query result.') - version: str | None = Field(None, alias='version', description='Gets the version of this AwrQueryResult.\nThe version of the query result.') - db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') - awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - total_waits: int | None = Field(None, alias='totalWaits', description='The total waits of the database.') - items: list[AwrDatabaseWaitEventBucketSummary] | None = Field(None, alias='items', description='A list of AWR wait event buckets.') - - -class AwrDatabaseWaitEventBucketSummary(OpsiBaseModel): - """A summary of the AWR wait event bucket and waits percentage.""" - - category: str = Field(..., alias='category', description='The name of the wait event frequency category. Normally, it is the upper range of the waits within the AWR wait event bucket.') - percentage: float = Field(..., alias='percentage', description='The percentage of waits in a wait event bucket over the total waits of the database.') - - -class AwrDatabaseWaitEventCollection(OpsiBaseModel): - """The AWR wait event data.""" - - name: str = Field(..., alias='name', description='Gets the name of this AwrQueryResult.\nThe name of the query result.') - version: str | None = Field(None, alias='version', description='Gets the version of this AwrQueryResult.\nThe version of the query result.') - db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='Gets the db_query_time_in_secs of this AwrQueryResult.\nThe time taken to query the database tier (in seconds).') - awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='Gets the awr_result_type of this AwrQueryResult.\nThe result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - items: list[AwrDatabaseWaitEventSummary] | None = Field(None, alias='items', description='A list of AWR wait events.') - - -class AwrDatabaseWaitEventSummary(OpsiBaseModel): - """The summary of the AWR wait event time series data for one event.""" - - name: str = Field(..., alias='name', description='The name of the event.') - time_begin: datetime | None = Field(None, alias='timeBegin', description='The begin time of the wait event.') - time_end: datetime | None = Field(None, alias='timeEnd', description='The end time of the wait event.') - waits_per_sec: float | None = Field(None, alias='waitsPerSec', description='The wait count per second.') - avg_wait_time_per_sec: float | None = Field(None, alias='avgWaitTimePerSec', description='The average wait time per second.') - snapshot_identifier: int | None = Field(None, alias='snapshotIdentifier', description='AWR snapshot identifier within the selected AWR database. This value is not an OCID; use snapshot identifiers returned by AWR snapshot listing results.') - - -class AwrHub(OpsiBaseModel): - """Awr Hub resource.""" - - operations_insights_warehouse_id: str = Field(..., alias='operationsInsightsWarehouseId', description='OPSI Warehouse OCID') - id: str = Field(..., alias='id', description='AWR Hub OCID') - compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') - display_name: str = Field(..., alias='displayName', description='User-friedly name of AWR Hub that does not have to be unique.') - object_storage_bucket_name: str = Field(..., alias='objectStorageBucketName', description='Object Storage Bucket Name') - awr_mailbox_url: str | None = Field(None, alias='awrMailboxUrl', description='Mailbox URL required for AWR hub and AWR source setup.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - time_created: datetime = Field(..., alias='timeCreated', description='The time at which the resource was first created. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='The time at which the resource was last updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Possible lifecycle states\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - hub_dst_timezone_version: str | None = Field(None, alias='hubDstTimezoneVersion', description='Dst Time Zone Version of the AWR Hub') - - -class AwrHubObjects(OpsiBaseModel): - """Logical grouping used for Awr Hub Object operations.""" - - awr_snapshots: Any | None = Field(None, alias='awrSnapshots', description='Awr Hub Object.') - - -class AwrHubSource(OpsiBaseModel): - """Awr hub source object.""" - - name: str = Field(..., alias='name', description='The name of the Awr Hub source database.') - awr_hub_id: str = Field(..., alias='awrHubId', description='AWR Hub OCID') - compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') - type: Literal['ADW_S', 'ATP_S', 'ADW_D', 'ATP_D', 'EXTERNAL_PDB', 'EXTERNAL_NONCDB', 'COMANAGED_VM_CDB', 'COMANAGED_VM_PDB', 'COMANAGED_VM_NONCDB', 'COMANAGED_BM_CDB', 'COMANAGED_BM_PDB', 'COMANAGED_BM_NONCDB', 'COMANAGED_EXACS_CDB', 'COMANAGED_EXACS_PDB', 'COMANAGED_EXACS_NONCDB', 'LH_S', 'APEX_S', 'AJD_S', 'AVD_S', 'LH_D', 'APEX_D', 'AJD_D', 'AVD_D', 'UNDEFINED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='type', description='source type of the database\n\nAllowed values for this property are: "ADW_S", "ATP_S", "ADW_D", "ATP_D", "EXTERNAL_PDB", "EXTERNAL_NONCDB", "COMANAGED_VM_CDB", "COMANAGED_VM_PDB", "COMANAGED_VM_NONCDB", "COMANAGED_BM_CDB", "COMANAGED_BM_PDB", "COMANAGED_BM_NONCDB", "COMANAGED_EXACS_CDB", "COMANAGED_EXACS_PDB", "COMANAGED_EXACS_NONCDB", "LH_S", "APEX_S", "AJD_S", "AVD_S", "LH_D", "APEX_D", "AJD_D", "AVD_D", "UNDEFINED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - id: str = Field(..., alias='id', description='The OCID of the Awr Hub source database.') - awr_hub_opsi_source_id: str = Field(..., alias='awrHubOpsiSourceId', description='The shorted string of the Awr Hub source database identifier.') - source_mail_box_url: str = Field(..., alias='sourceMailBoxUrl', description='Opsi Mailbox URL based on the Awr Hub and Awr Hub source.') - associated_resource_id: str | None = Field(None, alias='associatedResourceId', description='The OCID of the database id.') - associated_opsi_id: str | None = Field(None, alias='associatedOpsiId', description='The OCID of the database id.') - time_created: datetime = Field(..., alias='timeCreated', description='The time at which the resource was first created. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='The time at which the resource was last updated. An RFC3339 formatted datetime string') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - is_registered_with_awr_hub: bool | None = Field(None, alias='isRegisteredWithAwrHub', description='This is `true` if the source databse is registered with a Awr Hub, otherwise `false`') - awr_source_database_id: str | None = Field(None, alias='awrSourceDatabaseId', description='DatabaseId of the Source database for which AWR Data will be uploaded to AWR Hub.') - min_snapshot_identifier: float | None = Field(None, alias='minSnapshotIdentifier', description='The minimum snapshot identifier of the source database for which AWR data is uploaded to AWR Hub.') - max_snapshot_identifier: float | None = Field(None, alias='maxSnapshotIdentifier', description='The maximum snapshot identifier of the source database for which AWR data is uploaded to AWR Hub.') - time_first_snapshot_generated: datetime | None = Field(None, alias='timeFirstSnapshotGenerated', description='The time at which the earliest snapshot was generated in the source database for which data is uploaded to AWR Hub. An RFC3339 formatted datetime string') - time_last_snapshot_generated: datetime | None = Field(None, alias='timeLastSnapshotGenerated', description='The time at which the latest snapshot was generated in the source database for which data is uploaded to AWR Hub. An RFC3339 formatted datetime string') - hours_since_last_import: float | None = Field(None, alias='hoursSinceLastImport', description='Number of hours since last AWR snapshots import happened from the Source database.') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='the current state of the source database\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - status: Literal['ACCEPTING', 'NOT_ACCEPTING', 'NOT_REGISTERED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Indicates the status of a source database in Operations Insights\n\nAllowed values for this property are: "ACCEPTING", "NOT_ACCEPTING", "NOT_REGISTERED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class AwrHubSourceSummary(OpsiBaseModel): - """Awr hub source object.""" - - name: str = Field(..., alias='name', description='The name of the Awr Hub source database.') - awr_hub_id: str = Field(..., alias='awrHubId', description='AWR Hub OCID') - compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') - type: Literal['ADW_S', 'ATP_S', 'ADW_D', 'ATP_D', 'EXTERNAL_PDB', 'EXTERNAL_NONCDB', 'COMANAGED_VM_CDB', 'COMANAGED_VM_PDB', 'COMANAGED_VM_NONCDB', 'COMANAGED_BM_CDB', 'COMANAGED_BM_PDB', 'COMANAGED_BM_NONCDB', 'COMANAGED_EXACS_CDB', 'COMANAGED_EXACS_PDB', 'COMANAGED_EXACS_NONCDB', 'LH_S', 'APEX_S', 'AJD_S', 'AVD_S', 'LH_D', 'APEX_D', 'AJD_D', 'AVD_D', 'UNDEFINED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='type', description='source type of the database\n\nAllowed values for this property are: "ADW_S", "ATP_S", "ADW_D", "ATP_D", "EXTERNAL_PDB", "EXTERNAL_NONCDB", "COMANAGED_VM_CDB", "COMANAGED_VM_PDB", "COMANAGED_VM_NONCDB", "COMANAGED_BM_CDB", "COMANAGED_BM_PDB", "COMANAGED_BM_NONCDB", "COMANAGED_EXACS_CDB", "COMANAGED_EXACS_PDB", "COMANAGED_EXACS_NONCDB", "LH_S", "APEX_S", "AJD_S", "AVD_S", "LH_D", "APEX_D", "AJD_D", "AVD_D", "UNDEFINED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - id: str = Field(..., alias='id', description='The OCID of the Awr Hub source database.') - awr_hub_opsi_source_id: str = Field(..., alias='awrHubOpsiSourceId', description='The shorted string of the Awr Hub source database identifier.') - source_mail_box_url: str = Field(..., alias='sourceMailBoxUrl', description='Opsi Mailbox URL based on the Awr Hub and Awr Hub source.') - associated_resource_id: str | None = Field(None, alias='associatedResourceId', description='The OCID of the database id.') - associated_opsi_id: str | None = Field(None, alias='associatedOpsiId', description='The OCID of the database id.') - time_created: datetime = Field(..., alias='timeCreated', description='The time at which the resource was first created. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='The time at which the resource was last updated. An RFC3339 formatted datetime string') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - is_registered_with_awr_hub: bool | None = Field(None, alias='isRegisteredWithAwrHub', description='This is `true` if the source databse is registered with a Awr Hub, otherwise `false`') - awr_source_database_id: str | None = Field(None, alias='awrSourceDatabaseId', description='DatabaseId of the Source database for which AWR Data will be uploaded to AWR Hub.') - min_snapshot_identifier: float | None = Field(None, alias='minSnapshotIdentifier', description='The minimum snapshot identifier of the source database for which AWR data is uploaded to AWR Hub.') - max_snapshot_identifier: float | None = Field(None, alias='maxSnapshotIdentifier', description='The maximum snapshot identifier of the source database for which AWR data is uploaded to AWR Hub.') - time_first_snapshot_generated: datetime | None = Field(None, alias='timeFirstSnapshotGenerated', description='The time at which the earliest snapshot was generated in the source database for which data is uploaded to AWR Hub. An RFC3339 formatted datetime string') - time_last_snapshot_generated: datetime | None = Field(None, alias='timeLastSnapshotGenerated', description='The time at which the latest snapshot was generated in the source database for which data is uploaded to AWR Hub. An RFC3339 formatted datetime string') - hours_since_last_import: float | None = Field(None, alias='hoursSinceLastImport', description='Number of hours since last AWR snapshots import happened from the Source database.') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='the current state of the source database\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - status: Literal['ACCEPTING', 'NOT_ACCEPTING', 'NOT_REGISTERED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Indicates the status of a source database in Operations Insights\n\nAllowed values for this property are: "ACCEPTING", "NOT_ACCEPTING", "NOT_REGISTERED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class AwrHubSourceSummaryCollection(OpsiBaseModel): - """Collection of Awr Hub sources.""" - - items: list[AwrHubSourceSummary] = Field(..., alias='items', description='Array of Awr Hub source objects.') - - -class AwrHubSources(OpsiBaseModel): - """Logical grouping used for Awr Hub Source operations.""" - - awr_hub_sources: Any | None = Field(None, alias='awrHubSources', description='Awr Hub Source Object.') - - -class AwrHubSummary(OpsiBaseModel): - """Summary Hub resource.""" - - operations_insights_warehouse_id: str = Field(..., alias='operationsInsightsWarehouseId', description='OPSI Warehouse OCID') - id: str = Field(..., alias='id', description='AWR Hub OCID') - compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') - display_name: str = Field(..., alias='displayName', description='User-friedly name of AWR Hub that does not have to be unique.') - object_storage_bucket_name: str = Field(..., alias='objectStorageBucketName', description='Object Storage Bucket Name') - awr_mailbox_url: str | None = Field(None, alias='awrMailboxUrl', description='Mailbox URL required for AWR hub and AWR source setup.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - time_created: datetime = Field(..., alias='timeCreated', description='The time at which the resource was first created. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='The time at which the resource was last updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Possible lifecycle states\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - - -class AwrHubSummaryCollection(OpsiBaseModel): - """Collection of Hub resources.""" - - items: list[AwrHubSummary] = Field(..., alias='items', description='Array of Hub summary objects.') - - -class AwrHubs(OpsiBaseModel): - """Logical grouping used for Awr Hub operations.""" - - awr_hubs: Any | None = Field(None, alias='awrHubs', description='Awr Hub Object.') - - -class AwrQueryResult(OpsiBaseModel): - """The AWR query result.""" - - name: str = Field(..., alias='name', description='The name of the query result.') - version: str | None = Field(None, alias='version', description='The version of the query result.') - db_query_time_in_secs: float | None = Field(None, alias='dbQueryTimeInSecs', description='The time taken to query the database tier (in seconds).') - awr_result_type: Literal['AWRDB_SET', 'AWRDB_SNAPSHOT_RANGE_SET', 'AWRDB_SNAPSHOT_SET', 'AWRDB_METRICS_SET', 'AWRDB_SYSSTAT_SET', 'AWRDB_TOP_EVENT_SET', 'AWRDB_EVENT_SET', 'AWRDB_EVENT_HISTOGRAM', 'AWRDB_DB_PARAMETER_SET', 'AWRDB_DB_PARAMETER_CHANGE', 'AWRDB_ASH_CPU_USAGE_SET', 'AWRDB_DB_REPORT', 'AWRDB_SQL_REPORT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='awrResultType', description='The result type of AWR query.\n\nAllowed values for this property are: "AWRDB_SET", "AWRDB_SNAPSHOT_RANGE_SET", "AWRDB_SNAPSHOT_SET", "AWRDB_METRICS_SET", "AWRDB_SYSSTAT_SET", "AWRDB_TOP_EVENT_SET", "AWRDB_EVENT_SET", "AWRDB_EVENT_HISTOGRAM", "AWRDB_DB_PARAMETER_SET", "AWRDB_DB_PARAMETER_CHANGE", "AWRDB_ASH_CPU_USAGE_SET", "AWRDB_DB_REPORT", "AWRDB_SQL_REPORT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class AwrReport(OpsiBaseModel): - """The result of the AWR report.""" - - content: str | None = Field(None, alias='content', description='The content of the report.') - format: Literal['HTML', 'TEXT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='format', description='The format of the report.\n\nAllowed values for this property are: "HTML", "TEXT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class AwrSnapshotCollection(OpsiBaseModel): - """The list of AWR snapshots for one database.""" - - items: list[AwrSnapshotSummary] = Field(..., alias='items', description='A list of AWR snapshot summary data.') - - -class AwrSnapshotSummary(OpsiBaseModel): - """The AWR snapshot summary of one snapshot.""" - - awr_source_database_id: str = Field(..., alias='awrSourceDatabaseId', description='DatabaseId of the Source database for which AWR Data will be uploaded to AWR Hub.') - instance_number: int | None = Field(None, alias='instanceNumber', description='The database instance number.') - time_db_startup: datetime | None = Field(None, alias='timeDbStartup', description='The timestamp of the database startup.') - time_snapshot_begin: datetime | None = Field(None, alias='timeSnapshotBegin', description='The start time of the snapshot.') - time_snapshot_end: datetime | None = Field(None, alias='timeSnapshotEnd', description='The end time of the snapshot.') - snapshot_identifier: int = Field(..., alias='snapshotIdentifier', description='The identifier of the snapshot.') - error_count: int | None = Field(None, alias='errorCount', description='The total number of errors.', ge=0) - - -class AwrSourceSummary(OpsiBaseModel): - """Summary of an AwrSource.""" - - awr_hub_id: str = Field(..., alias='awrHubId', description='AWR Hub OCID') - name: str = Field(..., alias='name', description='Database name of the Source database for which AWR Data will be uploaded to AWR Hub.') - awr_source_database_id: str = Field(..., alias='awrSourceDatabaseId', description='DatabaseId of the Source database for which AWR Data will be uploaded to AWR Hub.') - snapshots_uploaded: float = Field(..., alias='snapshotsUploaded', description='Number of AWR snapshots uploaded from the Source database.') - min_snapshot_identifier: float = Field(..., alias='minSnapshotIdentifier', description='The minimum snapshot identifier of the source database for which AWR data is uploaded to AWR Hub.') - max_snapshot_identifier: float = Field(..., alias='maxSnapshotIdentifier', description='The maximum snapshot identifier of the source database for which AWR data is uploaded to AWR Hub.') - time_first_snapshot_generated: datetime = Field(..., alias='timeFirstSnapshotGenerated', description='The time at which the earliest snapshot was generated in the source database for which data is uploaded to AWR Hub. An RFC3339 formatted datetime string') - time_last_snapshot_generated: datetime = Field(..., alias='timeLastSnapshotGenerated', description='The time at which the latest snapshot was generated in the source database for which data is uploaded to AWR Hub. An RFC3339 formatted datetime string') - hours_since_last_import: float = Field(..., alias='hoursSinceLastImport', description='Number of hours since last AWR snapshots import happened from the Source database.') - - -class BasicConfigurationItemMetadata(OpsiBaseModel): - """Basic configuration item metadata.""" - - config_item_type: Literal['BASIC', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='configItemType', description='Gets the config_item_type of this ConfigurationItemMetadata.\nType of configuration item.\n\nAllowed values for this property are: "BASIC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - display_name: str | None = Field(None, alias='displayName', description='User-friendly display name for the configuration item.') - description: str | None = Field(None, alias='description', description='Description of configuration item.') - data_type: str | None = Field(None, alias='dataType', description='Data type of configuration item.\nExamples: STRING, BOOLEAN, NUMBER') - unit_details: ConfigurationItemUnitDetails | None = Field(None, alias='unitDetails', description='The unit_details field of BasicConfigurationItemMetadata.') - value_input_details: ConfigurationItemAllowedValueDetails | None = Field(None, alias='valueInputDetails', description='The value_input_details field of BasicConfigurationItemMetadata.') - - -class BasicConfigurationItemSummary(OpsiBaseModel): - """Basic configuration item summary. Value field contain the most preferred value for the specified scope (compartmentId), which could be from any of the ConfigurationItemValueSourceConfigurationType. Default value field contains the default value from Ops Insights.""" - - config_item_type: Literal['BASIC', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='configItemType', description='Gets the config_item_type of this ConfigurationItemSummary.\nType of configuration item.\n\nAllowed values for this property are: "BASIC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - name: str | None = Field(None, alias='name', description='Name of configuration item.') - value: Literal['COMPARTMENT', 'DEFAULT', 'TENANT'] | None = Field(None, alias='value', description='Value of configuration item.') - value_source_config: Literal['DEFAULT', 'TENANT', 'COMPARTMENT', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='valueSourceConfig', description='Source configuration from where the value is taken for a configuration item.\n\nAllowed values for this property are: "DEFAULT", "TENANT", "COMPARTMENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - default_value: str | None = Field(None, alias='defaultValue', description='Value of configuration item.') - applicable_contexts: list[str] | None = Field(None, alias='applicableContexts', description='List of contexts in Ops Insights where this configuration item is applicable.') - metadata: ConfigurationItemMetadata | None = Field(None, alias='metadata', description='The metadata field of BasicConfigurationItemSummary.') - - -class ChangeAutonomousDatabaseInsightAdvancedFeaturesDetails(OpsiRequestModel): - """Advanced feature details of autonomous database insight.""" - - connection_details: ConnectionDetails = Field(..., alias='connectionDetails', description='The connection_details field of ChangeAutonomousDatabaseInsightAdvancedFeaturesDetails.') - credential_details: CredentialDetails = Field(..., alias='credentialDetails', description='The credential_details field of ChangeAutonomousDatabaseInsightAdvancedFeaturesDetails.') - opsi_private_endpoint_id: str | None = Field(None, alias='opsiPrivateEndpointId', description='The OCID of the OPSI private endpoint.') - - -class ChangeAwrHubSourceCompartmentDetails(OpsiRequestModel): - """Destination compartment for moving an AWR Hub source. Set compartmentId to the target compartment OCID.""" - - compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment into which the resource should be moved.') - - -class ChangeChargebackPlanCompartmentDetails(OpsiRequestModel): - """Destination compartment for moving an Ops Insights chargeback plan. Set compartmentId to the target compartment OCID.""" - - compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment into which the resource should be moved.') - - -class ChangeDatabaseInsightCompartmentDetails(OpsiRequestModel): - """Destination compartment for moving a database insight. Set compartmentId to the target compartment OCID.""" - - compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment into which the resource should be moved.') - - -class ChangeEnterpriseManagerBridgeCompartmentDetails(OpsiRequestModel): - """Destination compartment for moving an Enterprise Manager bridge. Set compartmentId to the target compartment OCID.""" - - compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment into which the resource should be moved.') - - -class ChangeExadataInsightCompartmentDetails(OpsiRequestModel): - """Destination compartment for moving an Exadata insight. Set compartmentId to the target compartment OCID.""" - - compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment into which the resource should be moved.') - - -class ChangeExternalMysqlDatabaseInsightConnectionDetails(OpsiBaseModel): - """MySQL support within the OCI Ops Insights service has been deprecated as of January 29, 2026. Connection details of an External MySQL database insight.""" - - database_connector_id: str = Field(..., alias='databaseConnectorId', description='The DBM owned database connector OCID mapping to the database credentials and connection details.') - - -class ChangeHostInsightCompartmentDetails(OpsiRequestModel): - """Destination compartment for moving a host insight. Set compartmentId to the target compartment OCID.""" - - compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment into which the resource should be moved.') - - -class ChangeMacsManagedAutonomousDatabaseInsightConnectionDetails(OpsiRequestModel): - """Connection details of a MACS-managed autonomous database insight.""" - - management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') - connection_details: ConnectionDetails = Field(..., alias='connectionDetails', description='The connection_details field of ChangeMacsManagedAutonomousDatabaseInsightConnectionDetails.') - connection_credential_details: CredentialDetails = Field(..., alias='connectionCredentialDetails', description='The connection_credential_details field of ChangeMacsManagedAutonomousDatabaseInsightConnectionDetails.') - - -class ChangeMacsManagedCloudDatabaseInsightConnectionDetails(OpsiRequestModel): - """Connection details of a MACS-managed cloud database insight.""" - - management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') - connection_details: ConnectionDetails = Field(..., alias='connectionDetails', description='The connection_details field of ChangeMacsManagedCloudDatabaseInsightConnectionDetails.') - connection_credential_details: CredentialDetails = Field(..., alias='connectionCredentialDetails', description='The connection_credential_details field of ChangeMacsManagedCloudDatabaseInsightConnectionDetails.') - - -class ChangeNewsReportCompartmentDetails(OpsiRequestModel): - """Destination compartment for moving a news report. Set compartmentId to the target compartment OCID.""" - - compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment into which the resource will be moved.') - - -class ChangeOperationsInsightsPrivateEndpointCompartmentDetails(OpsiRequestModel): - """The details used to change the compartment of a Operation Insights private endpoint.""" - - compartment_id: str | None = Field(None, alias='compartmentId', description='The new compartment OCID of the Private service accessed database.') - - -class ChangeOperationsInsightsWarehouseCompartmentDetails(OpsiRequestModel): - """Destination compartment for moving an Operations Insights warehouse. Set compartmentId to the target compartment OCID.""" - - compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') - - -class ChangeOpsiConfigurationCompartmentDetails(OpsiRequestModel): - """The information used to change the compartment of an OPSI configuration resource.""" - - compartment_id: str = Field(..., alias='compartmentId', description='OCID of the compartment into which the resource should be moved.') - - -class ChangePeComanagedDatabaseInsightDetails(OpsiRequestModel): - """Details of a Private Endpoint co-managed database insight.""" - - service_name: str = Field(..., alias='serviceName', description='Database service name used for connection requests.') - credential_details: CredentialDetails = Field(..., alias='credentialDetails', description='The credential_details field of ChangePeComanagedDatabaseInsightDetails.') - connection_details: PeComanagedDatabaseConnectionDetails | None = Field(None, alias='connectionDetails', description='The connection_details field of ChangePeComanagedDatabaseInsightDetails.') - opsi_private_endpoint_id: str = Field(..., alias='opsiPrivateEndpointId', description='The OCID of the OPSI private endpoint.') - - -class ChargebackPlan(OpsiBaseModel): - """A chargeback plan that allows Ops Insights services to compute chargeback costs.""" - - id: str = Field(..., alias='id', description='OCID of OPSI Chargeback plan resource.') - compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') - plan_name: str = Field(..., alias='planName', description='Name for the OPSI Chargeback plan.') - plan_description: str | None = Field(None, alias='planDescription', description='Description of OPSI Chargeback Plan.') - plan_type: str = Field(..., alias='planType', description='Chargeback Plan type of the chargeback entity. For an Exadata it can be WEIGHTED_ALLOCATION, EQUAL_ALLOCATION, UNUSED_ALLOCATION.') - plan_category: Literal['OOB', 'CUSTOM', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='planCategory', description='Chargeback Plan category of the chargeback entity. It can be OOB, or CUSTOM.\n\nAllowed values for this property are: "OOB", "CUSTOM", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - is_customizable: bool | None = Field(None, alias='isCustomizable', description='Indicates whether the chargeback plan can be customized.') - entity_source: Literal['CHARGEBACK_EXADATA', 'CHARGEBACK_COMPUTE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='entitySource', description='Source of the chargeback plan.\n\nAllowed values for this property are: "CHARGEBACK_EXADATA", "CHARGEBACK_COMPUTE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime = Field(..., alias='timeCreated', description='The date and time the chargeback plan was created, in the format defined by RFC3339.') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='The time chargeback plan was updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Chargeback Plan lifecycle states\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - plan_custom_items: list[CreatePlanCustomItemDetails] | None = Field(None, alias='planCustomItems', description='List of chargeback plan customizations.') - - -class ChargebackPlanCollection(OpsiBaseModel): - """A collection of Ops Insights chargeback plan objects.""" - - items: list[ChargebackPlanSummary] = Field(..., alias='items', description='A list of ChargebackPlanSummary objects.') - - -class ChargebackPlanDetails(OpsiBaseModel): - """Object containing chargeback plan details.""" - - plan_id: str | None = Field(None, alias='planId', description='OCID of OPSI Chargeback plan resource.') - plan_type: str | None = Field(None, alias='planType', description='Chargeback Plan type of the chargeback entity. For an Exadata it can be WEIGHTED_ALLOCATION, EQUAL_ALLOCATION, UNUSED_ALLOCATION.') - time_enabled: datetime | None = Field(None, alias='timeEnabled', description='The date and time the chargeback plan was enabled on the resource, in the format defined by RFC3339.') - - -class ChargebackPlanReport(OpsiBaseModel): - """A chargeback plan report that allows Ops Insights services to showcase chargeback costs.""" - - report_id: str = Field(..., alias='reportId', description='OCID of the Chargeback plan report.') - report_name: str = Field(..., alias='reportName', description='The chargeback plan report name.') - resource_type: Literal['EXADATA_INSIGHT', 'DATABASE_INSIGHT', 'HOST_INSIGHT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceType', description='Defines the type of resource (example: EXADATA, HOST)\n\nAllowed values for this property are: "EXADATA_INSIGHT", "DATABASE_INSIGHT", "HOST_INSIGHT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - resource_id: str = Field(..., alias='resourceId', description='OCID of the Chargeback plan report.') - time_created: datetime = Field(..., alias='timeCreated', description='The date and time the chargeback plan was created, in the format defined by RFC3339.') - time_updated: datetime = Field(..., alias='timeUpdated', description='The time chargeback plan was updated. An RFC3339 formatted datetime string') - report_properties: ReportPropertyDetails = Field(..., alias='reportProperties', description='The report_properties field of ChargebackPlanReport.') - - -class ChargebackPlanReportCollection(OpsiBaseModel): - """A collection of chargeback plan reports objects.""" - - items: list[ChargebackPlanReportSummary] = Field(..., alias='items', description='A list of ChargebackPlanReportSummary objects.') - - -class ChargebackPlanReportSummary(OpsiBaseModel): - """Summary of a Ops Insights chargeback plan report.""" - - report_id: str = Field(..., alias='reportId', description='OCID of the Chargeback plan report.') - report_name: str = Field(..., alias='reportName', description='The chargeback plan report name.') - resource_type: Literal['EXADATA_INSIGHT', 'DATABASE_INSIGHT', 'HOST_INSIGHT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceType', description='Defines the type of resource (example: EXADATA, HOST)\n\nAllowed values for this property are: "EXADATA_INSIGHT", "DATABASE_INSIGHT", "HOST_INSIGHT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - resource_id: str = Field(..., alias='resourceId', description='OCID of the Chargeback plan report.') - time_created: datetime = Field(..., alias='timeCreated', description='The date and time the chargeback plan was created, in the format defined by RFC3339.') - time_updated: datetime = Field(..., alias='timeUpdated', description='The time chargeback plan was updated. An RFC3339 formatted datetime string') - report_properties: ReportPropertyDetails = Field(..., alias='reportProperties', description='The report_properties field of ChargebackPlanReportSummary.') - - -class ChargebackPlanSummary(OpsiBaseModel): - """Summary of a Ops Insights chargeback plan.""" - - id: str = Field(..., alias='id', description='OCID of OPSI Chargeback plan resource.') - compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') - plan_name: str = Field(..., alias='planName', description='Name for the OPSI Chargeback plan.') - plan_description: str | None = Field(None, alias='planDescription', description='Description of OPSI Chargeback Plan.') - plan_type: str = Field(..., alias='planType', description='Chargeback Plan type of the chargeback entity. For an Exadata it can be WEIGHTED_ALLOCATION, EQUAL_ALLOCATION, UNUSED_ALLOCATION.') - plan_category: Literal['OOB', 'CUSTOM', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='planCategory', description='Chargeback Plan category of the chargeback entity. It can be OOB, or CUSTOM.\n\nAllowed values for this property are: "OOB", "CUSTOM", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - is_customizable: bool | None = Field(None, alias='isCustomizable', description='Indicates whether the chargeback plan can be customized.') - entity_source: Literal['CHARGEBACK_EXADATA', 'CHARGEBACK_COMPUTE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Source of the chargeback plan.\n\nAllowed values for this property are: "CHARGEBACK_EXADATA", "CHARGEBACK_COMPUTE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime = Field(..., alias='timeCreated', description='The date and time the chargeback plan was created, in the format defined by RFC3339.') - time_updated: datetime = Field(..., alias='timeUpdated', description='The time chargeback plan was updated. An RFC3339 formatted datetime string') - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Chargeback Plan lifecycle states\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - plan_custom_items: list[CreatePlanCustomItemDetails] = Field(..., alias='planCustomItems', description='List of chargeback plan customizations.') - - -class CloudImportableComputeEntitySummary(OpsiBaseModel): - """A compute host entity that can be imported into Operations Insights.""" - - entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this ImportableComputeEntitySummary.\nSource of the importable agent entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - compute_id: str = Field(..., alias='computeId', description='Gets the compute_id of this ImportableComputeEntitySummary. The OCID of the Compute Instance.') - compute_display_name: str = Field(..., alias='computeDisplayName', description='Gets the compute_display_name of this ImportableComputeEntitySummary. The Display Name of the Compute Instance.') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this ImportableComputeEntitySummary. The OCID of the compartment.') - host_name: str | None = Field(None, alias='hostName', description='The host name. The host name is unique amongst the hosts managed by the same management agent.') - platform_type: Literal['LINUX', 'SOLARIS', 'SUNOS', 'ZLINUX', 'WINDOWS', 'AIX', 'HP_UX', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='platformType', description='Platform type.\nSupported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS].\nSupported platformType(s) for MACS-managed cloud host insight: [LINUX].\nSupported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX].\n\nAllowed values for this property are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class ConfigurationItemAllowedValueDetails(OpsiBaseModel): - """Allowed value details of configuration item, to validate what value can be assigned to a configuration item.""" - - allowed_value_type: Literal['LIMIT', 'PICK', 'FREE_TEXT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='allowedValueType', description='Allowed value type of configuration item.\n\nAllowed values for this property are: "LIMIT", "PICK", "FREE_TEXT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class ConfigurationItemFreeTextAllowedValueDetails(OpsiBaseModel): - """Allowed value details of configuration item for FREE_TEXT type.""" - - allowed_value_type: Literal['LIMIT', 'PICK', 'FREE_TEXT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='allowedValueType', description='Gets the allowed_value_type of this ConfigurationItemAllowedValueDetails.\nAllowed value type of configuration item.\n\nAllowed values for this property are: "LIMIT", "PICK", "FREE_TEXT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class ConfigurationItemLimitAllowedValueDetails(OpsiBaseModel): - """Allowed value details of configuration item for LIMIT type. Value has to be between minValue and maxValue.""" - - allowed_value_type: Literal['LIMIT', 'PICK', 'FREE_TEXT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='allowedValueType', description='Gets the allowed_value_type of this ConfigurationItemAllowedValueDetails.\nAllowed value type of configuration item.\n\nAllowed values for this property are: "LIMIT", "PICK", "FREE_TEXT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - min_value: str | None = Field(None, alias='minValue', description='Minimum value limit for the configuration item.') - max_value: str | None = Field(None, alias='maxValue', description='Maximum value limit for the configuration item.') - - -class ConfigurationItemMetadata(OpsiBaseModel): - """Configuration item metadata.""" - - config_item_type: Literal['BASIC', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='configItemType', description='Type of configuration item.\n\nAllowed values for this property are: "BASIC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class ConfigurationItemPickAllowedValueDetails(OpsiBaseModel): - """Allowed value details of configuration item for PICK type. Value has to be from one of the possibleValues.""" - - allowed_value_type: Literal['LIMIT', 'PICK', 'FREE_TEXT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='allowedValueType', description='Gets the allowed_value_type of this ConfigurationItemAllowedValueDetails.\nAllowed value type of configuration item.\n\nAllowed values for this property are: "LIMIT", "PICK", "FREE_TEXT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - possible_values: list[str] | None = Field(None, alias='possibleValues', description='Allowed values to pick for the configuration item.') - - -class ConfigurationItemSummary(OpsiBaseModel): - """Configuration item summary.""" - - config_item_type: Literal['BASIC', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='configItemType', description='Type of configuration item.\n\nAllowed values for this property are: "BASIC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class ConfigurationItemUnitDetails(OpsiBaseModel): - """Unit details of configuration item.""" - - unit: str | None = Field(None, alias='unit', description='Unit of configuration item.') - display_name: str | None = Field(None, alias='displayName', description='User-friendly display name for the configuration item unit.') - - -class ConfigurationItemsCollection(OpsiBaseModel): - """Collection of configuration item summary objects.""" - - opsi_config_type: Literal['UX_CONFIGURATION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='opsiConfigType', description='OPSI configuration type.\n\nAllowed values for this property are: "UX_CONFIGURATION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - config_items: list[ConfigurationItemSummary] | None = Field(None, alias='configItems', description='Array of configuration item summary objects.') - - -class ConnectionDetails(OpsiBaseModel): - """Connection details to connect to the database. HostName, protocol, and port should be specified.""" - - host_name: str = Field(..., alias='hostName', description='Name of the listener host that will be used to create the connect string to the database.') - protocol: Literal['TCP', 'TCPS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='protocol', description='Protocol used for connection requests.\n\nAllowed values for this property are: "TCP", "TCPS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - port: int = Field(..., alias='port', description='Listener port number used for connection requests.') - service_name: str = Field(..., alias='serviceName', description='Database service name used for connection requests.') - - -class CreateAutonomousDatabaseInsightDetails(OpsiBaseModel): - """The information about database to be analyzed. When isAdvancedFeaturesEnabled is set to false, parameters connectionDetails, credentialDetails and opsiPrivateEndpoint are optional. Otherwise, connectionDetails and crendetialDetails are required to enable full OPSI service features. If the Autonomouse Database is configured with private, restricted or dedicated access, opsiPrivateEndpoint parameter is required.""" - - entity_source: Literal['EM_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Gets the entity_source of this CreateDatabaseInsightDetails.\nSource of the database entity.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this CreateDatabaseInsightDetails.\nCompartment Identifier of database') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CreateDatabaseInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CreateDatabaseInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') - database_resource_type: str = Field(..., alias='databaseResourceType', description='OCI database resource type') - is_advanced_features_enabled: bool = Field(..., alias='isAdvancedFeaturesEnabled', description='Flag is to identify if advanced features for autonomous database is enabled or not') - connection_details: ConnectionDetails | None = Field(None, alias='connectionDetails', description='The connection_details field of CreateAutonomousDatabaseInsightDetails.') - credential_details: CredentialDetails | None = Field(None, alias='credentialDetails', description='The credential_details field of CreateAutonomousDatabaseInsightDetails.') - opsi_private_endpoint_id: str | None = Field(None, alias='opsiPrivateEndpointId', description='The OCID of the OPSI private endpoint.') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - - -class CreateAwrHubDetails(OpsiRequestModel): - """The information about Hub to be analyzed. Input compartmentId MUST be the root compartment.""" - - operations_insights_warehouse_id: str = Field(..., alias='operationsInsightsWarehouseId', description='OPSI Warehouse OCID') - compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') - display_name: str = Field(..., alias='displayName', description='User-friedly name of AWR Hub that does not have to be unique.') - object_storage_bucket_name: str | None = Field(None, alias='objectStorageBucketName', description='Object Storage Bucket Name') - - -class CreateAwrHubSourceDetails(OpsiRequestModel): - """payload to register Awr Hub source.""" - - name: str = Field(..., alias='name', description='The name of the Awr Hub source database.') - awr_hub_id: str = Field(..., alias='awrHubId', description='AWR Hub OCID') - compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') - associated_resource_id: str | None = Field(None, alias='associatedResourceId', description='The OCID of the database id.') - associated_opsi_id: str | None = Field(None, alias='associatedOpsiId', description='The OCID of the database id.') - type: Literal['ADW_S', 'ATP_S', 'ADW_D', 'ATP_D', 'EXTERNAL_PDB', 'EXTERNAL_NONCDB', 'COMANAGED_VM_CDB', 'COMANAGED_VM_PDB', 'COMANAGED_VM_NONCDB', 'COMANAGED_BM_CDB', 'COMANAGED_BM_PDB', 'COMANAGED_BM_NONCDB', 'COMANAGED_EXACS_CDB', 'COMANAGED_EXACS_PDB', 'COMANAGED_EXACS_NONCDB', 'LH_S', 'APEX_S', 'AJD_S', 'AVD_S', 'LH_D', 'APEX_D', 'AJD_D', 'AVD_D', 'UNDEFINED'] = Field(..., alias='type', description='source type of the database\n\nAllowed values for this property are: "ADW_S", "ATP_S", "ADW_D", "ATP_D", "EXTERNAL_PDB", "EXTERNAL_NONCDB", "COMANAGED_VM_CDB", "COMANAGED_VM_PDB", "COMANAGED_VM_NONCDB", "COMANAGED_BM_CDB", "COMANAGED_BM_PDB", "COMANAGED_BM_NONCDB", "COMANAGED_EXACS_CDB", "COMANAGED_EXACS_PDB", "COMANAGED_EXACS_NONCDB", "LH_S", "APEX_S", "AJD_S", "AVD_S", "LH_D", "APEX_D", "AJD_D", "AVD_D", "UNDEFINED"') - - -class CreateBasicConfigurationItemDetails(OpsiBaseModel): - """Basic configuration item details for OPSI configuration creation.""" - - config_item_type: Literal['BASIC'] = Field(..., alias='configItemType', description='Gets the config_item_type of this CreateConfigurationItemDetails.\nType of configuration item.\n\nAllowed values for this property are: "BASIC"') - name: str | None = Field(None, alias='name', description='Name of configuration item.') - value: str | None = Field(None, alias='value', description='Value of configuration item.') - - -class CreateChargebackPlanDetails(OpsiRequestModel): - """The details used to create a new Ops Insights chargeback plan.""" - - entity_source: Literal['CHARGEBACK_EXADATA', 'CHARGEBACK_COMPUTE'] = Field(..., alias='entitySource', description='Source of the chargeback plan.\n\nAllowed values for this property are: "CHARGEBACK_EXADATA", "CHARGEBACK_COMPUTE"') - compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') - plan_name: str = Field(..., alias='planName', description='Name for the OPSI Chargeback plan.') - plan_description: str | None = Field(None, alias='planDescription', description='Description of OPSI Chargeback Plan.') - plan_type: str = Field(..., alias='planType', description='Chargeback Plan type of the chargeback entity. For an Exadata it can be WEIGHTED_ALLOCATION, EQUAL_ALLOCATION, UNUSED_ALLOCATION.') - plan_custom_items: list[CreatePlanCustomItemDetails] | None = Field(None, alias='planCustomItems', description='List of chargeback plan customizations.') - - -class CreateChargebackPlanExadataDetails(OpsiBaseModel): - """The information about the exadata and chargeback plan.""" - - entity_source: Literal['CHARGEBACK_EXADATA', 'CHARGEBACK_COMPUTE'] = Field(..., alias='entitySource', description='Gets the entity_source of this CreateChargebackPlanDetails.\nSource of the chargeback plan.\n\nAllowed values for this property are: "CHARGEBACK_EXADATA", "CHARGEBACK_COMPUTE"') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this CreateChargebackPlanDetails. The OCID of the compartment.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CreateChargebackPlanDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CreateChargebackPlanDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - plan_name: str = Field(..., alias='planName', description='Gets the plan_name of this CreateChargebackPlanDetails.\nName for the OPSI Chargeback plan.') - plan_description: str | None = Field(None, alias='planDescription', description='Gets the plan_description of this CreateChargebackPlanDetails.\nDescription of OPSI Chargeback Plan.') - plan_type: str = Field(..., alias='planType', description='Gets the plan_type of this CreateChargebackPlanDetails.\nChargeback Plan type of the chargeback entity. For an Exadata it can be WEIGHTED_ALLOCATION, EQUAL_ALLOCATION, UNUSED_ALLOCATION.') - plan_custom_items: list[CreatePlanCustomItemDetails] | None = Field(None, alias='planCustomItems', description='Gets the plan_custom_items of this CreateChargebackPlanDetails.\nList of chargeback plan customizations.') - - -class CreateChargebackPlanReportDetails(OpsiRequestModel): - """The details used to create a new Ops Insights chargeback plan report.""" - - report_name: str = Field(..., alias='reportName', description='The chargeback plan report name.') - report_properties: ReportPropertyDetails = Field(..., alias='reportProperties', description='The report_properties field of CreateChargebackPlanReportDetails.') - - -class CreateConfigurationItemDetails(OpsiBaseModel): - """Configuration item details for OPSI configuration creation.""" - - config_item_type: Literal['BASIC'] = Field(..., alias='configItemType', description='Type of configuration item.\n\nAllowed values for this property are: "BASIC"') - - -class CreateDatabaseInsightDetails(OpsiRequestModel): - """The information about database to be analyzed.""" - - entity_source: Literal['EM_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Source of the database entity.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') - compartment_id: str = Field(..., alias='compartmentId', description='Compartment Identifier of database') - - -class CreateEmManagedExternalDatabaseInsightDetails(OpsiBaseModel): - """The information about database to be analyzed.""" - - entity_source: Literal['EM_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Gets the entity_source of this CreateDatabaseInsightDetails.\nSource of the database entity.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this CreateDatabaseInsightDetails.\nCompartment Identifier of database') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CreateDatabaseInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CreateDatabaseInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - enterprise_manager_identifier: str = Field(..., alias='enterpriseManagerIdentifier', description='Enterprise Manager Unique Identifier') - enterprise_manager_bridge_id: str = Field(..., alias='enterpriseManagerBridgeId', description='OPSI Enterprise Manager Bridge OCID') - enterprise_manager_entity_identifier: str = Field(..., alias='enterpriseManagerEntityIdentifier', description='Enterprise Manager Entity Unique Identifier') - exadata_insight_id: str | None = Field(None, alias='exadataInsightId', description='The OCID of the Exadata insight.') - - -class CreateEmManagedExternalExadataInsightDetails(OpsiBaseModel): - """The information about the Exadata system to be analyzed. If memberEntityDetails is not specified, the the Enterprise Manager entity (e.g. databases and hosts) associated with an Exadata system will be placed in the same compartment as the Exadata system.""" - - entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA'] = Field(..., alias='entitySource', description='Gets the entity_source of this CreateExadataInsightDetails.\nSource of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA"') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this CreateExadataInsightDetails.\nCompartment Identifier of Exadata insight') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CreateExadataInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CreateExadataInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - enterprise_manager_identifier: str = Field(..., alias='enterpriseManagerIdentifier', description='Enterprise Manager Unique Identifier') - enterprise_manager_bridge_id: str = Field(..., alias='enterpriseManagerBridgeId', description='OPSI Enterprise Manager Bridge OCID') - enterprise_manager_entity_identifier: str = Field(..., alias='enterpriseManagerEntityIdentifier', description='Enterprise Manager Entity Unique Identifier') - member_entity_details: list[CreateEmManagedExternalExadataMemberEntityDetails] | None = Field(None, alias='memberEntityDetails', description='The member_entity_details field of CreateEmManagedExternalExadataInsightDetails.') - is_auto_sync_enabled: bool | None = Field(None, alias='isAutoSyncEnabled', description='Set to true to enable automatic enablement and disablement of related targets from Enterprise Manager. New resources (e.g. Database Insights) will be placed in the same compartment as the related Exadata Insight.') - - -class CreateEmManagedExternalExadataMemberEntityDetails(OpsiBaseModel): - """Compartment OCID of the Enterprise Manager member entity (e.g. databases and hosts) associated with an Exadata system.""" - - enterprise_manager_entity_identifier: str = Field(..., alias='enterpriseManagerEntityIdentifier', description='Enterprise Manager Entity Unique Identifier') - compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') - - -class CreateEmManagedExternalHostInsightDetails(OpsiBaseModel): - """The information about the EM-managed external host to be analyzed.""" - - entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST'] = Field(..., alias='entitySource', description='Gets the entity_source of this CreateHostInsightDetails.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST"') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this CreateHostInsightDetails.\nCompartment Identifier of host') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CreateHostInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CreateHostInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - enterprise_manager_identifier: str = Field(..., alias='enterpriseManagerIdentifier', description='Enterprise Manager Unique Identifier') - enterprise_manager_bridge_id: str = Field(..., alias='enterpriseManagerBridgeId', description='OPSI Enterprise Manager Bridge OCID') - enterprise_manager_entity_identifier: str = Field(..., alias='enterpriseManagerEntityIdentifier', description='Enterprise Manager Entity Unique Identifier') - exadata_insight_id: str | None = Field(None, alias='exadataInsightId', description='The OCID of the Exadata insight.') - - -class CreateEnterpriseManagerBridgeDetails(OpsiRequestModel): - """The information about a Enterprise Manager bridge resource to be created.""" - - compartment_id: str = Field(..., alias='compartmentId', description='Compartment identifier of the Enterprise Manager bridge') - display_name: str = Field(..., alias='displayName', description='User-friedly name of Enterprise Manager Bridge that does not have to be unique.') - description: str | None = Field(None, alias='description', description='Description of Enterprise Manager Bridge') - object_storage_bucket_name: str = Field(..., alias='objectStorageBucketName', description='Object Storage Bucket Name') - - -class CreateExadataInsightDetails(OpsiRequestModel): - """The information about the Exadata system to be analyzed.""" - - entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA'] = Field(..., alias='entitySource', description='Source of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA"') - compartment_id: str = Field(..., alias='compartmentId', description='Compartment Identifier of Exadata insight') - - -class CreateExternalMysqlDatabaseInsightDetails(OpsiBaseModel): - """MySQL support within the OCI Ops Insights service has been deprecated as of January 29, 2026. The information about database to be analyzed.""" - - entity_source: Literal['EM_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Gets the entity_source of this CreateDatabaseInsightDetails.\nSource of the database entity.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this CreateDatabaseInsightDetails.\nCompartment Identifier of database') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CreateDatabaseInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CreateDatabaseInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') - database_connector_id: str = Field(..., alias='databaseConnectorId', description='The DBM owned database connector OCID mapping to the database credentials and connection details.') - - -class CreateHostInsightDetails(OpsiRequestModel): - """The information about the host to be analyzed.""" - - entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST'] = Field(..., alias='entitySource', description='Source of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST"') - compartment_id: str = Field(..., alias='compartmentId', description='Compartment Identifier of host') - - -class CreateMacsManagedAutonomousDatabaseInsightDetails(OpsiBaseModel): - """The information about database to be analyzed.""" - - entity_source: Literal['EM_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Gets the entity_source of this CreateDatabaseInsightDetails.\nSource of the database entity.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this CreateDatabaseInsightDetails.\nCompartment Identifier of database') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CreateDatabaseInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CreateDatabaseInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') - management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') - connection_details: ConnectionDetails = Field(..., alias='connectionDetails', description='The connection_details field of CreateMacsManagedAutonomousDatabaseInsightDetails.') - connection_credential_details: CredentialDetails = Field(..., alias='connectionCredentialDetails', description='The connection_credential_details field of CreateMacsManagedAutonomousDatabaseInsightDetails.') - database_resource_type: str = Field(..., alias='databaseResourceType', description='OCI database resource type') - deployment_type: Literal['EXACC'] = Field(..., alias='deploymentType', description='Database Deployment Type\n\nAllowed values for this property are: "EXACC"') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - - -class CreateMacsManagedCloudDatabaseInsightDetails(OpsiBaseModel): - """The information about database to be analyzed.""" - - entity_source: Literal['EM_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Gets the entity_source of this CreateDatabaseInsightDetails.\nSource of the database entity.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this CreateDatabaseInsightDetails.\nCompartment Identifier of database') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CreateDatabaseInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CreateDatabaseInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') - management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') - connection_details: ConnectionDetails = Field(..., alias='connectionDetails', description='The connection_details field of CreateMacsManagedCloudDatabaseInsightDetails.') - connection_credential_details: CredentialDetails = Field(..., alias='connectionCredentialDetails', description='The connection_credential_details field of CreateMacsManagedCloudDatabaseInsightDetails.') - database_resource_type: str = Field(..., alias='databaseResourceType', description='OCI database resource type') - deployment_type: Literal['VIRTUAL_MACHINE', 'BARE_METAL', 'EXACC', 'EXACS'] = Field(..., alias='deploymentType', description='Database Deployment Type (EXACS will be supported in the future)\n\nAllowed values for this property are: "VIRTUAL_MACHINE", "BARE_METAL", "EXACC", "EXACS"') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - - -class CreateMacsManagedCloudExadataClusterDetails(OpsiBaseModel): - """The information of the VM Cluster which contains databases.""" - - vm_cluster_type: Literal['vmCluster', 'autonomousVmCluster'] | None = Field(None, alias='vmClusterType', description='Exadata VMCluster type\n\nAllowed values for this property are: "vmCluster", "autonomousVmCluster"') - vmcluster_id: str = Field(..., alias='vmclusterId', description='The OCID of the VM Cluster.') - compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') - - -class CreateMacsManagedCloudExadataInsightDetails(OpsiBaseModel): - """The information about the Exadata system to be analyzed.""" - - entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA'] = Field(..., alias='entitySource', description='Gets the entity_source of this CreateExadataInsightDetails.\nSource of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA"') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this CreateExadataInsightDetails.\nCompartment Identifier of Exadata insight') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CreateExadataInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CreateExadataInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - exadata_infra_id: str = Field(..., alias='exadataInfraId', description='The OCID of the Exadata Infrastructure.') - member_vm_cluster_details: list[CreateMacsManagedCloudExadataVmclusterDetails] | None = Field(None, alias='memberVmClusterDetails', description='The member_vm_cluster_details field of CreateMacsManagedCloudExadataInsightDetails.') - - -class CreateMacsManagedCloudExadataVmclusterDetails(OpsiBaseModel): - """The information of the VM Cluster which contains databases.""" - - vm_cluster_type: Literal['vmCluster', 'autonomousVmCluster'] | None = Field(None, alias='vmClusterType', description='Gets the vm_cluster_type of this CreateMacsManagedCloudExadataClusterDetails.\nExadata VMCluster type\n\nAllowed values for this property are: "vmCluster", "autonomousVmCluster"') - vmcluster_id: str = Field(..., alias='vmclusterId', description='Gets the vmcluster_id of this CreateMacsManagedCloudExadataClusterDetails. The OCID of the VM Cluster.') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this CreateMacsManagedCloudExadataClusterDetails. The OCID of the compartment.') - member_database_details: list[CreateMacsManagedCloudDatabaseInsightDetails] | None = Field(None, alias='memberDatabaseDetails', description='The databases that belong to the VM Cluster') - member_autonomous_details: list[CreateMacsManagedAutonomousDatabaseInsightDetails] | None = Field(None, alias='memberAutonomousDetails', description='The autonomous databases that belong to the Autonmous VM Cluster') - - -class CreateMacsManagedCloudHostInsightDetails(OpsiBaseModel): - """The information about the Compute Instance host to be analyzed.""" - - entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST'] = Field(..., alias='entitySource', description='Gets the entity_source of this CreateHostInsightDetails.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST"') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this CreateHostInsightDetails.\nCompartment Identifier of host') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CreateHostInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CreateHostInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - compute_id: str = Field(..., alias='computeId', description='The OCID of the Compute Instance.') - - -class CreateMacsManagedExternalHostInsightDetails(OpsiBaseModel): - """The information about the MACS-managed external host to be analyzed.""" - - entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST'] = Field(..., alias='entitySource', description='Gets the entity_source of this CreateHostInsightDetails.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST"') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this CreateHostInsightDetails.\nCompartment Identifier of host') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CreateHostInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CreateHostInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') - - -class CreateMdsMySqlDatabaseInsightDetails(OpsiBaseModel): - """MySQL support within the OCI Ops Insights service has been deprecated as of January 29, 2026. The information about database to be analyzed.""" - - entity_source: Literal['EM_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Gets the entity_source of this CreateDatabaseInsightDetails.\nSource of the database entity.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this CreateDatabaseInsightDetails.\nCompartment Identifier of database') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CreateDatabaseInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CreateDatabaseInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') - - -class CreateNewsReportDetails(OpsiRequestModel): - """The information about the news report to be created.""" - - name: str = Field(..., alias='name', description='The news report name.') - news_frequency: Literal['WEEKLY', 'DAILY', 'HOURLY'] = Field(..., alias='newsFrequency', description='News report frequency.\n\nAllowed values for this property are: "WEEKLY", "DAILY", "HOURLY"') - description: str = Field(..., alias='description', description='The description of the news report.') - ons_topic_id: str = Field(..., alias='onsTopicId', description='The OCID of the ONS topic.') - compartment_id: str = Field(..., alias='compartmentId', description='Compartment Identifier where the news report will be created.') - content_types: NewsContentTypes = Field(..., alias='contentTypes', description='The content_types field of CreateNewsReportDetails.') - locale: Literal['EN'] = Field(..., alias='locale', description='Language of the news report.\n\nAllowed values for this property are: "EN"') - status: Literal['DISABLED', 'ENABLED', 'TERMINATED'] | None = Field(None, alias='status', description='Defines if the news report will be enabled or disabled.\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED"') - day_of_week: Literal['MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SUNDAY'] | None = Field(None, alias='dayOfWeek', description='Day of the week in which the news report will be sent if the frequency is set to WEEKLY.\n\nAllowed values for this property are: "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"') - are_child_compartments_included: bool | None = Field(None, alias='areChildCompartmentsIncluded', description='A flag to consider the resources within a given compartment and all sub-compartments.') - - -class CreateOperationsInsightsPrivateEndpointDetails(OpsiRequestModel): - """The details used to create a new Operation Insights private endpoint.""" - - display_name: str = Field(..., alias='displayName', description='The display name for the private endpoint. It is changeable.') - compartment_id: str = Field(..., alias='compartmentId', description='The compartment OCID of the Private service accessed database.') - vcn_id: str = Field(..., alias='vcnId', description='The VCN OCID of the Private service accessed database.') - subnet_id: str = Field(..., alias='subnetId', description='The Subnet OCID of the Private service accessed database.') - is_used_for_rac_dbs: bool = Field(..., alias='isUsedForRacDbs', description='This flag was previously used to create a private endpoint with scan proxy. Setting this to true will now create a private endpoint with a\nDNS proxy causing `isProxyEnabled` flag to be true; this is used exclusively for full feature support for dedicated Autonomous Databases.') - description: str | None = Field(None, alias='description', description='The description of the private endpoint.') - nsg_ids: list[str] | None = Field(None, alias='nsgIds', description='The OCID of the network security groups that the private endpoint belongs to.') - - -class CreateOperationsInsightsWarehouseDetails(OpsiRequestModel): - """The information about a Operations Insights Warehouse resource to be created. Input compartmentId MUST be the root compartment.""" - - compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') - display_name: str = Field(..., alias='displayName', description='User-friedly name of Ops Insights Warehouse that does not have to be unique.') - cpu_allocated: float = Field(..., alias='cpuAllocated', description='Number of CPUs allocated to OPSI Warehouse ADW.') - compute_model: str | None = Field(None, alias='computeModel', description='The compute model for the OPSI warehouse ADW (OCPU or ECPU)') - storage_allocated_in_gbs: float | None = Field(None, alias='storageAllocatedInGBs', description='Storage allocated to OPSI Warehouse ADW.') - - -class CreateOperationsInsightsWarehouseUserDetails(OpsiRequestModel): - """The information about a Operations Insights Warehouse User to be created. Input compartmentId MUST be the root compartment.""" - - operations_insights_warehouse_id: str = Field(..., alias='operationsInsightsWarehouseId', description='OPSI Warehouse OCID') - compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') - name: str = Field(..., alias='name', description='Username for schema which would have access to AWR Data, Enterprise Manager Data and Ops Insights OPSI Hub.') - connection_password: str = Field(..., alias='connectionPassword', description='User provided connection password for the AWR Data, Enterprise Manager Data and Ops Insights OPSI Hub.') - is_awr_data_access: bool = Field(..., alias='isAwrDataAccess', description='Indicate whether user has access to AWR data.') - is_em_data_access: bool | None = Field(None, alias='isEmDataAccess', description='Indicate whether user has access to EM data.') - is_opsi_data_access: bool | None = Field(None, alias='isOpsiDataAccess', description='Indicate whether user has access to OPSI data.') - - -class CreateOpsiConfigurationDetails(OpsiRequestModel): - """Information about OPSI configuration to be created.""" - - compartment_id: str | None = Field(None, alias='compartmentId', description='The OCID of the compartment.') - opsi_config_type: Literal['UX_CONFIGURATION'] = Field(..., alias='opsiConfigType', description='OPSI configuration type.\n\nAllowed values for this property are: "UX_CONFIGURATION"') - display_name: str | None = Field(None, alias='displayName', description='User-friendly display name for the OPSI configuration. The name does not have to be unique.') - description: str | None = Field(None, alias='description', description='Description of OPSI configuration.') - config_items: list[CreateConfigurationItemDetails] | None = Field(None, alias='configItems', description='Array of configuration items with custom values. All and only configuration items requiring custom values should be part of this array.') - - -class CreateOpsiUxConfigurationDetails(OpsiBaseModel): - """Information about OPSI UX configuration to be created.""" - - compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this CreateOpsiConfigurationDetails. The OCID of the compartment.') - opsi_config_type: Literal['UX_CONFIGURATION'] = Field(..., alias='opsiConfigType', description='Gets the opsi_config_type of this CreateOpsiConfigurationDetails.\nOPSI configuration type.\n\nAllowed values for this property are: "UX_CONFIGURATION"') - display_name: str | None = Field(None, alias='displayName', description='Gets the display_name of this CreateOpsiConfigurationDetails.\nUser-friendly display name for the OPSI configuration. The name does not have to be unique.') - description: str | None = Field(None, alias='description', description='Gets the description of this CreateOpsiConfigurationDetails.\nDescription of OPSI configuration.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CreateOpsiConfigurationDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CreateOpsiConfigurationDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this CreateOpsiConfigurationDetails.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - config_items: list[CreateConfigurationItemDetails] | None = Field(None, alias='configItems', description='Gets the config_items of this CreateOpsiConfigurationDetails.\nArray of configuration items with custom values. All and only configuration items requiring custom values should be part of this array.') - - -class CreatePeComanagedDatabaseInsightDetails(OpsiBaseModel): - """The information about database to be analyzed. Either an opsiPrivateEndpointId or dbmPrivateEndpointId must be specified. If the dbmPrivateEndpointId is specified, a new Operations Insights private endpoint will be created.""" - - entity_source: Literal['EM_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Gets the entity_source of this CreateDatabaseInsightDetails.\nSource of the database entity.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this CreateDatabaseInsightDetails.\nCompartment Identifier of database') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CreateDatabaseInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CreateDatabaseInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') - database_resource_type: str = Field(..., alias='databaseResourceType', description='OCI database resource type') - opsi_private_endpoint_id: str | None = Field(None, alias='opsiPrivateEndpointId', description='The OCID of the OPSI private endpoint.') - dbm_private_endpoint_id: str | None = Field(None, alias='dbmPrivateEndpointId', description='The OCID of the Database Management private endpoint.') - service_name: str = Field(..., alias='serviceName', description='Database service name used for connection requests.') - credential_details: CredentialDetails = Field(..., alias='credentialDetails', description='The credential_details field of CreatePeComanagedDatabaseInsightDetails.') - connection_details: PeComanagedDatabaseConnectionDetails | None = Field(None, alias='connectionDetails', description='The connection_details field of CreatePeComanagedDatabaseInsightDetails.') - deployment_type: Literal['VIRTUAL_MACHINE', 'BARE_METAL', 'EXACS'] = Field(..., alias='deploymentType', description='Database Deployment Type\n\nAllowed values for this property are: "VIRTUAL_MACHINE", "BARE_METAL", "EXACS"') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - - -class CreatePeComanagedExadataInsightDetails(OpsiBaseModel): - """The information about the Exadata system to be analyzed.""" - - entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA'] = Field(..., alias='entitySource', description='Gets the entity_source of this CreateExadataInsightDetails.\nSource of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA"') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this CreateExadataInsightDetails.\nCompartment Identifier of Exadata insight') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this CreateExadataInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this CreateExadataInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - exadata_infra_id: str = Field(..., alias='exadataInfraId', description='The OCID of the Exadata Infrastructure.') - member_vm_cluster_details: list[CreatePeComanagedExadataVmclusterDetails] | None = Field(None, alias='memberVmClusterDetails', description='The member_vm_cluster_details field of CreatePeComanagedExadataInsightDetails.') - - -class CreatePeComanagedExadataVmclusterDetails(OpsiBaseModel): - """The information of the VM Cluster which contains databases. Either an opsiPrivateEndpointId or dbmPrivateEndpointId must be specified. If the dbmPrivateEndpointId is specified, a new Operations Insights private endpoint will be created.""" - - vmcluster_id: str = Field(..., alias='vmclusterId', description='The OCID of the VM Cluster.') - opsi_private_endpoint_id: str | None = Field(None, alias='opsiPrivateEndpointId', description='The OCID of the OPSI private endpoint.') - dbm_private_endpoint_id: str | None = Field(None, alias='dbmPrivateEndpointId', description='The OCID of the Database Management private endpoint.') - member_database_details: list[CreatePeComanagedDatabaseInsightDetails] | None = Field(None, alias='memberDatabaseDetails', description='The databases that belong to the VM Cluster') - vm_cluster_type: Literal['vmCluster', 'autonomousVmCluster'] | None = Field(None, alias='vmClusterType', description='Exadata VMCluster type\n\nAllowed values for this property are: "vmCluster", "autonomousVmCluster"') - member_autonomous_details: list[CreateAutonomousDatabaseInsightDetails] | None = Field(None, alias='memberAutonomousDetails', description='The autonomous databases that belong to the Autonomous VM Cluster') - compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') - - -class CreatePlanCustomItemDetails(OpsiBaseModel): - """Custom configuration item details for a chargeback plan. Example items for Exadata Insights Chargeback are statistic(default value AVG), percentile, infrastructureCost, infrastructurePlanType, additionalServerCost and additionalServerPlanType.""" - - name: str | None = Field(None, alias='name', description='Name of chargeback plan customization item. Example items for Exadata Insights Chargeback are statistic, percentile, infrastructureCost, additionalServerCost etc.') - value: str | None = Field(None, alias='value', description='Value of chargeback plan customization item.') - is_customizable: bool | None = Field(None, alias='isCustomizable', description='Indicates whether the chargeback plan customization item can be customized.') - - -class CredentialByIam(OpsiBaseModel): - """IAM Credential Details to connect to the database.""" - - credential_source_name: str | None = Field(None, alias='credentialSourceName', description='Gets the credential_source_name of this CredentialDetails.\nCredential source name that had been added in Management Agent wallet. This value is only required when Credential set by CREDENTIALS_BY_SOURCE and is optional properties for ther others.') - credential_type: Literal['CREDENTIALS_BY_SOURCE', 'CREDENTIALS_BY_VAULT', 'CREDENTIALS_BY_IAM', 'CREDENTIALS_BY_NAMED_CREDS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='credentialType', description='Gets the credential_type of this CredentialDetails.\nCREDENTIALS_BY_SOURCE is supplied via the External Database Service. CREDENTIALS_BY_VAULT is supplied by secret service to connection PE_COMANAGED_DATABASE and ADB as well. CREDENTIALS_BY_IAM is used db-token to connect only for Autonomous Database.\n\nAllowed values for this property are: "CREDENTIALS_BY_SOURCE", "CREDENTIALS_BY_VAULT", "CREDENTIALS_BY_IAM", "CREDENTIALS_BY_NAMED_CREDS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class CredentialByNamedCredentials(OpsiBaseModel): - """Credentials by named credentials stored in management agent to connect database.""" - - credential_source_name: str | None = Field(None, alias='credentialSourceName', description='Gets the credential_source_name of this CredentialDetails.\nCredential source name that had been added in Management Agent wallet. This value is only required when Credential set by CREDENTIALS_BY_SOURCE and is optional properties for ther others.') - credential_type: Literal['CREDENTIALS_BY_SOURCE', 'CREDENTIALS_BY_VAULT', 'CREDENTIALS_BY_IAM', 'CREDENTIALS_BY_NAMED_CREDS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='credentialType', description='Gets the credential_type of this CredentialDetails.\nCREDENTIALS_BY_SOURCE is supplied via the External Database Service. CREDENTIALS_BY_VAULT is supplied by secret service to connection PE_COMANAGED_DATABASE and ADB as well. CREDENTIALS_BY_IAM is used db-token to connect only for Autonomous Database.\n\nAllowed values for this property are: "CREDENTIALS_BY_SOURCE", "CREDENTIALS_BY_VAULT", "CREDENTIALS_BY_IAM", "CREDENTIALS_BY_NAMED_CREDS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - named_credential_id: str | None = Field(None, alias='namedCredentialId', description='The credential OCID stored in management agent.') - - -class CredentialByVault(OpsiBaseModel): - """Vault Credential Details to connect to the database.""" - - credential_source_name: str | None = Field(None, alias='credentialSourceName', description='Gets the credential_source_name of this CredentialDetails.\nCredential source name that had been added in Management Agent wallet. This value is only required when Credential set by CREDENTIALS_BY_SOURCE and is optional properties for ther others.') - credential_type: Literal['CREDENTIALS_BY_SOURCE', 'CREDENTIALS_BY_VAULT', 'CREDENTIALS_BY_IAM', 'CREDENTIALS_BY_NAMED_CREDS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='credentialType', description='Gets the credential_type of this CredentialDetails.\nCREDENTIALS_BY_SOURCE is supplied via the External Database Service. CREDENTIALS_BY_VAULT is supplied by secret service to connection PE_COMANAGED_DATABASE and ADB as well. CREDENTIALS_BY_IAM is used db-token to connect only for Autonomous Database.\n\nAllowed values for this property are: "CREDENTIALS_BY_SOURCE", "CREDENTIALS_BY_VAULT", "CREDENTIALS_BY_IAM", "CREDENTIALS_BY_NAMED_CREDS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - user_name: str | None = Field(None, alias='userName', description='database user name.') - password_secret_id: str | None = Field(None, alias='passwordSecretId', description='The secret OCID mapping to the database credentials.') - wallet_secret_id: str | None = Field(None, alias='walletSecretId', description='The OCID of the Secret where the database keystore contents are stored. This is used for TCPS support in BM/VM/ExaCS cases.') - role: Literal['NORMAL', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='role', description='database user role.\n\nAllowed values for this property are: "NORMAL", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class CredentialDetails(OpsiBaseModel): - """User credential details to connect to the database.""" - - credential_source_name: str | None = Field(None, alias='credentialSourceName', description='Credential source name that had been added in Management Agent wallet. This value is only required when Credential set by CREDENTIALS_BY_SOURCE and is optional properties for ther others.') - credential_type: Literal['CREDENTIALS_BY_SOURCE', 'CREDENTIALS_BY_VAULT', 'CREDENTIALS_BY_IAM', 'CREDENTIALS_BY_NAMED_CREDS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='credentialType', description='CREDENTIALS_BY_SOURCE is supplied via the External Database Service. CREDENTIALS_BY_VAULT is supplied by secret service to connection PE_COMANAGED_DATABASE and ADB as well. CREDENTIALS_BY_IAM is used db-token to connect only for Autonomous Database.\n\nAllowed values for this property are: "CREDENTIALS_BY_SOURCE", "CREDENTIALS_BY_VAULT", "CREDENTIALS_BY_IAM", "CREDENTIALS_BY_NAMED_CREDS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class CredentialsBySource(OpsiBaseModel): - """Credential Source to connect to the database.""" - - credential_source_name: str | None = Field(None, alias='credentialSourceName', description='Gets the credential_source_name of this CredentialDetails.\nCredential source name that had been added in Management Agent wallet. This value is only required when Credential set by CREDENTIALS_BY_SOURCE and is optional properties for ther others.') - credential_type: Literal['CREDENTIALS_BY_SOURCE', 'CREDENTIALS_BY_VAULT', 'CREDENTIALS_BY_IAM', 'CREDENTIALS_BY_NAMED_CREDS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='credentialType', description='Gets the credential_type of this CredentialDetails.\nCREDENTIALS_BY_SOURCE is supplied via the External Database Service. CREDENTIALS_BY_VAULT is supplied by secret service to connection PE_COMANAGED_DATABASE and ADB as well. CREDENTIALS_BY_IAM is used db-token to connect only for Autonomous Database.\n\nAllowed values for this property are: "CREDENTIALS_BY_SOURCE", "CREDENTIALS_BY_VAULT", "CREDENTIALS_BY_IAM", "CREDENTIALS_BY_NAMED_CREDS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class DBConnectionStatus(OpsiBaseModel): - """Database connection status.""" - - metric_name: Literal['DB_EXTERNAL_PROPERTIES', 'DB_EXTERNAL_INSTANCE', 'DB_OS_CONFIG_INSTANCE', 'DB_PARAMETERS', 'DB_CONNECTION_STATUS', 'HOST_RESOURCE_ALLOCATION', 'ASM_ENTITY', 'EXADATA_CELL_CONFIG'] = Field(..., alias='metricName', description='Gets the metric_name of this DatabaseConfigurationMetricGroup.\nName of the metric group.\n\nAllowed values for this property are: "DB_EXTERNAL_PROPERTIES", "DB_EXTERNAL_INSTANCE", "DB_OS_CONFIG_INSTANCE", "DB_PARAMETERS", "DB_CONNECTION_STATUS", "HOST_RESOURCE_ALLOCATION", "ASM_ENTITY", "EXADATA_CELL_CONFIG"') - time_collected: datetime | None = Field(None, alias='timeCollected', description='Gets the time_collected of this DatabaseConfigurationMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') - - -class DBExternalInstance(OpsiBaseModel): - """Configuration parameters defined for external databases instance level.""" - - metric_name: Literal['DB_EXTERNAL_PROPERTIES', 'DB_EXTERNAL_INSTANCE', 'DB_OS_CONFIG_INSTANCE', 'DB_PARAMETERS', 'DB_CONNECTION_STATUS', 'HOST_RESOURCE_ALLOCATION', 'ASM_ENTITY', 'EXADATA_CELL_CONFIG'] = Field(..., alias='metricName', description='Gets the metric_name of this DatabaseConfigurationMetricGroup.\nName of the metric group.\n\nAllowed values for this property are: "DB_EXTERNAL_PROPERTIES", "DB_EXTERNAL_INSTANCE", "DB_OS_CONFIG_INSTANCE", "DB_PARAMETERS", "DB_CONNECTION_STATUS", "HOST_RESOURCE_ALLOCATION", "ASM_ENTITY", "EXADATA_CELL_CONFIG"') - time_collected: datetime | None = Field(None, alias='timeCollected', description='Gets the time_collected of this DatabaseConfigurationMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') - instance_name: str = Field(..., alias='instanceName', description='Name of the database instance.') - host_name: str = Field(..., alias='hostName', description='Host name of the database instance.') - cpu_count: int | None = Field(None, alias='cpuCount', description='Total number of CPUs allocated for the host.', ge=0) - host_memory_capacity: float | None = Field(None, alias='hostMemoryCapacity', description='Total amount of usable Physical RAM Memory available in gigabytes.') - version: str | None = Field(None, alias='version', description='Database version.') - parallel: str | None = Field(None, alias='parallel', description='Indicates whether the instance is mounted in cluster database mode (YES) or not (NO).') - instance_role: str | None = Field(None, alias='instanceRole', description='Role (permissions) of the database instance.') - logins: str | None = Field(None, alias='logins', description='Indicates if logins are allowed or restricted.') - database_status: str | None = Field(None, alias='databaseStatus', description='Status of the database.') - status: str | None = Field(None, alias='status', description='Status of the instance.') - edition: str | None = Field(None, alias='edition', description='The edition of the database.') - startup_time: datetime | None = Field(None, alias='startupTime', description='Start up time of the database instance.') - - -class DBExternalProperties(OpsiBaseModel): - """Configuration parameters defined for external databases.""" - - metric_name: Literal['DB_EXTERNAL_PROPERTIES', 'DB_EXTERNAL_INSTANCE', 'DB_OS_CONFIG_INSTANCE', 'DB_PARAMETERS', 'DB_CONNECTION_STATUS', 'HOST_RESOURCE_ALLOCATION', 'ASM_ENTITY', 'EXADATA_CELL_CONFIG'] = Field(..., alias='metricName', description='Gets the metric_name of this DatabaseConfigurationMetricGroup.\nName of the metric group.\n\nAllowed values for this property are: "DB_EXTERNAL_PROPERTIES", "DB_EXTERNAL_INSTANCE", "DB_OS_CONFIG_INSTANCE", "DB_PARAMETERS", "DB_CONNECTION_STATUS", "HOST_RESOURCE_ALLOCATION", "ASM_ENTITY", "EXADATA_CELL_CONFIG"') - time_collected: datetime | None = Field(None, alias='timeCollected', description='Gets the time_collected of this DatabaseConfigurationMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') - name: str | None = Field(None, alias='name', description='Name of the database.') - log_mode: str | None = Field(None, alias='logMode', description='Archive log mode.') - cdb: str | None = Field(None, alias='cdb', description="Indicates if it is a CDB or not. This would be 'yes' or 'no'.") - open_mode: str | None = Field(None, alias='openMode', description='Open mode information.') - database_role: str | None = Field(None, alias='databaseRole', description='Current role of the database.') - guard_status: str | None = Field(None, alias='guardStatus', description='Data protection policy.') - platform_name: str | None = Field(None, alias='platformName', description='Platform name of the database, OS with architecture.') - control_file_type: str | None = Field(None, alias='controlFileType', description='Type of control file.') - switchover_status: str | None = Field(None, alias='switchoverStatus', description='Indicates whether switchover is allowed.') - created: datetime | None = Field(None, alias='created', description='Creation time.') - - -class DBOSConfigInstance(OpsiBaseModel): - """Configuration parameters defined for external databases instance level.""" - - metric_name: Literal['DB_EXTERNAL_PROPERTIES', 'DB_EXTERNAL_INSTANCE', 'DB_OS_CONFIG_INSTANCE', 'DB_PARAMETERS', 'DB_CONNECTION_STATUS', 'HOST_RESOURCE_ALLOCATION', 'ASM_ENTITY', 'EXADATA_CELL_CONFIG'] = Field(..., alias='metricName', description='Gets the metric_name of this DatabaseConfigurationMetricGroup.\nName of the metric group.\n\nAllowed values for this property are: "DB_EXTERNAL_PROPERTIES", "DB_EXTERNAL_INSTANCE", "DB_OS_CONFIG_INSTANCE", "DB_PARAMETERS", "DB_CONNECTION_STATUS", "HOST_RESOURCE_ALLOCATION", "ASM_ENTITY", "EXADATA_CELL_CONFIG"') - time_collected: datetime | None = Field(None, alias='timeCollected', description='Gets the time_collected of this DatabaseConfigurationMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') - instance_name: str = Field(..., alias='instanceName', description='Name of the database instance.') - host_name: str = Field(..., alias='hostName', description='Host name of the database instance.') - num_cp_us: int | None = Field(None, alias='numCPUs', description='Total number of CPUs available.') - num_cpu_cores: int | None = Field(None, alias='numCPUCores', description='Number of CPU cores available (includes subcores of multicore CPUs as well as single-core CPUs).') - num_cpu_sockets: int | None = Field(None, alias='numCPUSockets', description='Number of CPU Sockets available.') - physical_memory_bytes: float | None = Field(None, alias='physicalMemoryBytes', description='Total number of bytes of physical memory.') - - -class DBParameters(OpsiBaseModel): - """Initialization parameters for a database.""" - - metric_name: Literal['DB_EXTERNAL_PROPERTIES', 'DB_EXTERNAL_INSTANCE', 'DB_OS_CONFIG_INSTANCE', 'DB_PARAMETERS', 'DB_CONNECTION_STATUS', 'HOST_RESOURCE_ALLOCATION', 'ASM_ENTITY', 'EXADATA_CELL_CONFIG'] = Field(..., alias='metricName', description='Gets the metric_name of this DatabaseConfigurationMetricGroup.\nName of the metric group.\n\nAllowed values for this property are: "DB_EXTERNAL_PROPERTIES", "DB_EXTERNAL_INSTANCE", "DB_OS_CONFIG_INSTANCE", "DB_PARAMETERS", "DB_CONNECTION_STATUS", "HOST_RESOURCE_ALLOCATION", "ASM_ENTITY", "EXADATA_CELL_CONFIG"') - time_collected: datetime | None = Field(None, alias='timeCollected', description='Gets the time_collected of this DatabaseConfigurationMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') - instance_number: int = Field(..., alias='instanceNumber', description='Database instance number.') - parameter_name: str = Field(..., alias='parameterName', description='Database parameter name.') - parameter_value: str = Field(..., alias='parameterValue', description='Database parameter value.') - snapshot_id: int | None = Field(None, alias='snapshotId', description='AWR snapshot id for the parameter value') - is_changed: str | None = Field(None, alias='isChanged', description="Indicates whether the parameter's value changed in given snapshot or not.") - is_default: str | None = Field(None, alias='isDefault', description='Indicates whether this value is the default value or not.') - - -class DataObjectBindParameter(OpsiBaseModel): - """Details for a bind parameter used in data object query.""" - - name: str = Field(..., alias='name', description='Name of the bind parameter.') - value: Any = Field(..., alias='value', description='Value for the bind parameter.') - data_type: str = Field(..., alias='dataType', description='Data type of the bind parameter.') - - -class DataObjectColumnMetadata(OpsiBaseModel): - """Metadata of a column in a data object resultset.""" - - name: str = Field(..., alias='name', description='Name of the column.') - category: Literal['DIMENSION', 'METRIC', 'TIME_DIMENSION', 'UNKNOWN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='category', description='Category of the column.\n\nAllowed values for this property are: "DIMENSION", "METRIC", "TIME_DIMENSION", "UNKNOWN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - data_type: Literal['NUMBER', 'OTHER', 'TIMESTAMP', 'VARCHAR2'] | None = Field(None, alias='dataType', description='Type of a data object column.') - data_type_name: Literal['NUMBER', 'TIMESTAMP', 'VARCHAR2', 'OTHER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='dataTypeName', description='Type name of a data object column.\n\nAllowed values for this property are: "NUMBER", "TIMESTAMP", "VARCHAR2", "OTHER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - display_name: str | None = Field(None, alias='displayName', description='Display name of the column.') - description: str | None = Field(None, alias='description', description='Description of the column.') - group_name: str | None = Field(None, alias='groupName', description='Group name of the column.') - unit_details: DataObjectColumnUnit | None = Field(None, alias='unitDetails', description='The unit_details field of DataObjectColumnMetadata.') - - -class DataObjectColumnUnit(OpsiBaseModel): - """Unit details of a data object column.""" - - unit_category: Literal['DATA_SIZE', 'TIME', 'POWER', 'TEMPERATURE', 'CORE', 'RATE', 'FREQUENCY', 'OTHER_STANDARD', 'CUSTOM', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='unitCategory', description='Category of the column\'s unit.\n\nAllowed values for this property are: "DATA_SIZE", "TIME", "POWER", "TEMPERATURE", "CORE", "RATE", "FREQUENCY", "OTHER_STANDARD", "CUSTOM", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - display_name: str | None = Field(None, alias='displayName', description="Display name of the column's unit.") - - -class DataObjectCoreColumnUnit(OpsiBaseModel): - """Unit details of a data object column of CORE unit category.""" - - unit_category: Literal['DATA_SIZE', 'TIME', 'POWER', 'TEMPERATURE', 'CORE', 'RATE', 'FREQUENCY', 'OTHER_STANDARD', 'CUSTOM', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='unitCategory', description='Gets the unit_category of this DataObjectColumnUnit.\nCategory of the column\'s unit.\n\nAllowed values for this property are: "DATA_SIZE", "TIME", "POWER", "TEMPERATURE", "CORE", "RATE", "FREQUENCY", "OTHER_STANDARD", "CUSTOM", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - display_name: str | None = Field(None, alias='displayName', description="Gets the display_name of this DataObjectColumnUnit.\nDisplay name of the column's unit.") - unit: Literal['CORE', 'MILLI_CORE', 'UNKNOWN_ENUM_VALUE', 'CUSTOM', 'DATA_SIZE', 'FREQUENCY', 'OTHER_STANDARD', 'POWER', 'RATE', 'TEMPERATURE', 'TIME'] | None = Field(None, alias='unit', description='Core unit.\n\nAllowed values for this property are: "CORE", "MILLI_CORE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class DataObjectCustomColumnUnit(OpsiBaseModel): - """Unit details of a data object column of CUSTOM unit category.""" - - unit_category: Literal['DATA_SIZE', 'TIME', 'POWER', 'TEMPERATURE', 'CORE', 'RATE', 'FREQUENCY', 'OTHER_STANDARD', 'CUSTOM', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='unitCategory', description='Gets the unit_category of this DataObjectColumnUnit.\nCategory of the column\'s unit.\n\nAllowed values for this property are: "DATA_SIZE", "TIME", "POWER", "TEMPERATURE", "CORE", "RATE", "FREQUENCY", "OTHER_STANDARD", "CUSTOM", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - display_name: str | None = Field(None, alias='displayName', description="Gets the display_name of this DataObjectColumnUnit.\nDisplay name of the column's unit.") - unit: Literal['CORE', 'CUSTOM', 'DATA_SIZE', 'FREQUENCY', 'OTHER_STANDARD', 'POWER', 'RATE', 'TEMPERATURE', 'TIME'] | None = Field(None, alias='unit', description='Custom column unit.') - - -class DataObjectDataSizeColumnUnit(OpsiBaseModel): - """Unit details of a data object column of DATA_SIZE unit category.""" - - unit_category: Literal['DATA_SIZE', 'TIME', 'POWER', 'TEMPERATURE', 'CORE', 'RATE', 'FREQUENCY', 'OTHER_STANDARD', 'CUSTOM', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='unitCategory', description='Gets the unit_category of this DataObjectColumnUnit.\nCategory of the column\'s unit.\n\nAllowed values for this property are: "DATA_SIZE", "TIME", "POWER", "TEMPERATURE", "CORE", "RATE", "FREQUENCY", "OTHER_STANDARD", "CUSTOM", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - display_name: str | None = Field(None, alias='displayName', description="Gets the display_name of this DataObjectColumnUnit.\nDisplay name of the column's unit.") - unit: Literal['CHARACTER', 'BLOCK', 'BIT', 'BYTE', 'KILO_BYTE', 'MEGA_BYTE', 'GIGA_BYTE', 'TERA_BYTE', 'PETA_BYTE', 'EXA_BYTE', 'ZETTA_BYTE', 'YOTTA_BYTE', 'UNKNOWN_ENUM_VALUE', 'CORE', 'CUSTOM', 'DATA_SIZE', 'FREQUENCY', 'OTHER_STANDARD', 'POWER', 'RATE', 'TEMPERATURE', 'TIME'] | None = Field(None, alias='unit', description='Data size unit.\n\nAllowed values for this property are: "CHARACTER", "BLOCK", "BIT", "BYTE", "KILO_BYTE", "MEGA_BYTE", "GIGA_BYTE", "TERA_BYTE", "PETA_BYTE", "EXA_BYTE", "ZETTA_BYTE", "YOTTA_BYTE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class DataObjectFrequencyColumnUnit(OpsiBaseModel): - """Unit details of a data object column of FREQEUENCY unit category.""" - - unit_category: Literal['DATA_SIZE', 'TIME', 'POWER', 'TEMPERATURE', 'CORE', 'RATE', 'FREQUENCY', 'OTHER_STANDARD', 'CUSTOM', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='unitCategory', description='Gets the unit_category of this DataObjectColumnUnit.\nCategory of the column\'s unit.\n\nAllowed values for this property are: "DATA_SIZE", "TIME", "POWER", "TEMPERATURE", "CORE", "RATE", "FREQUENCY", "OTHER_STANDARD", "CUSTOM", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - display_name: str | None = Field(None, alias='displayName', description="Gets the display_name of this DataObjectColumnUnit.\nDisplay name of the column's unit.") - unit: Literal['HERTZ', 'KILO_HERTZ', 'MEGA_HERTZ', 'GIGA_HERTZ', 'TERA_HERTZ', 'UNKNOWN_ENUM_VALUE', 'CORE', 'CUSTOM', 'DATA_SIZE', 'FREQUENCY', 'OTHER_STANDARD', 'POWER', 'RATE', 'TEMPERATURE', 'TIME'] | None = Field(None, alias='unit', description='Frequency unit.\n\nAllowed values for this property are: "HERTZ", "KILO_HERTZ", "MEGA_HERTZ", "GIGA_HERTZ", "TERA_HERTZ", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class DataObjectOtherStandardColumnUnit(OpsiBaseModel): - """Unit details of a data object column of OTHER_STANDARD unit category.""" - - unit_category: Literal['DATA_SIZE', 'TIME', 'POWER', 'TEMPERATURE', 'CORE', 'RATE', 'FREQUENCY', 'OTHER_STANDARD', 'CUSTOM', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='unitCategory', description='Gets the unit_category of this DataObjectColumnUnit.\nCategory of the column\'s unit.\n\nAllowed values for this property are: "DATA_SIZE", "TIME", "POWER", "TEMPERATURE", "CORE", "RATE", "FREQUENCY", "OTHER_STANDARD", "CUSTOM", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - display_name: str | None = Field(None, alias='displayName', description="Gets the display_name of this DataObjectColumnUnit.\nDisplay name of the column's unit.") - unit: Literal['PERCENTAGE', 'COUNT', 'IO', 'BOOLEAN', 'OPERATION', 'TRANSACTION', 'CONNECTION', 'ACCESS', 'REQUEST', 'MESSAGE', 'EXECUTION', 'LOGONS', 'THREAD', 'ERROR', 'UNKNOWN_ENUM_VALUE', 'CORE', 'CUSTOM', 'DATA_SIZE', 'FREQUENCY', 'OTHER_STANDARD', 'POWER', 'RATE', 'TEMPERATURE', 'TIME'] | None = Field(None, alias='unit', description='Other standard column unit.\n\nAllowed values for this property are: "PERCENTAGE", "COUNT", "IO", "BOOLEAN", "OPERATION", "TRANSACTION", "CONNECTION", "ACCESS", "REQUEST", "MESSAGE", "EXECUTION", "LOGONS", "THREAD", "ERROR", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class DataObjectPowerColumnUnit(OpsiBaseModel): - """Unit details of a data object column of POWER unit category.""" - - unit_category: Literal['DATA_SIZE', 'TIME', 'POWER', 'TEMPERATURE', 'CORE', 'RATE', 'FREQUENCY', 'OTHER_STANDARD', 'CUSTOM', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='unitCategory', description='Gets the unit_category of this DataObjectColumnUnit.\nCategory of the column\'s unit.\n\nAllowed values for this property are: "DATA_SIZE", "TIME", "POWER", "TEMPERATURE", "CORE", "RATE", "FREQUENCY", "OTHER_STANDARD", "CUSTOM", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - display_name: str | None = Field(None, alias='displayName', description="Gets the display_name of this DataObjectColumnUnit.\nDisplay name of the column's unit.") - unit: Literal['AMP', 'WATT', 'KILO_WATT', 'MEGA_WATT', 'GIGA_WATT', 'UNKNOWN_ENUM_VALUE', 'CORE', 'CUSTOM', 'DATA_SIZE', 'FREQUENCY', 'OTHER_STANDARD', 'POWER', 'RATE', 'TEMPERATURE', 'TIME'] | None = Field(None, alias='unit', description='Power unit.\n\nAllowed values for this property are: "AMP", "WATT", "KILO_WATT", "MEGA_WATT", "GIGA_WATT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class DataObjectQuery(OpsiBaseModel): - """Information required to form and execute query on a data object.""" - - query_type: Literal['TEMPLATIZED_QUERY', 'STANDARD_QUERY'] = Field(..., alias='queryType', description='Type of Query\n\nAllowed values for this property are: "TEMPLATIZED_QUERY", "STANDARD_QUERY"') - bind_params: list[DataObjectBindParameter] | None = Field(None, alias='bindParams', description='List of bind parameters to be applied in the query.') - query_execution_timeout_in_seconds: float | None = Field(None, alias='queryExecutionTimeoutInSeconds', description='Timeout (in seconds) to be set for the data object query execution.') - - -class DataObjectQueryTimeFilters(OpsiBaseModel): - """Time filters to be applied in the data object query.""" - - time_period: str | None = Field(None, alias='timePeriod', description='Specify time period in ISO 8601 format with respect to current time.\nDefault is last 30 days represented by P30D.\nIf timePeriod is specified, then timeStart and timeEnd will be ignored.\nExamples: P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months).') - time_start: datetime | None = Field(None, alias='timeStart', description='Start time in UTC in RFC3339 formatted datetime string. Example: 2021-10-30T00:00:00.000Z.\ntimeStart and timeEnd are used together. If timePeriod is specified, this parameter is ignored.') - time_end: datetime | None = Field(None, alias='timeEnd', description='End time in UTC in RFC3339 formatted datetime string. Example: 2021-10-30T00:00:00.000Z.\ntimeStart and timeEnd are used together. If timePeriod is specified, this parameter is ignored.\nIf timeEnd is not specified, current time is used as timeEnd.') - - -class DataObjectRateColumnUnit(OpsiBaseModel): - """Unit details of a data object column of RATE unit category.""" - - unit_category: Literal['DATA_SIZE', 'TIME', 'POWER', 'TEMPERATURE', 'CORE', 'RATE', 'FREQUENCY', 'OTHER_STANDARD', 'CUSTOM', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='unitCategory', description='Gets the unit_category of this DataObjectColumnUnit.\nCategory of the column\'s unit.\n\nAllowed values for this property are: "DATA_SIZE", "TIME", "POWER", "TEMPERATURE", "CORE", "RATE", "FREQUENCY", "OTHER_STANDARD", "CUSTOM", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - display_name: str | None = Field(None, alias='displayName', description="Gets the display_name of this DataObjectColumnUnit.\nDisplay name of the column's unit.") - numerator: DataObjectColumnUnit | None = Field(None, alias='numerator', description='The numerator field of DataObjectRateColumnUnit.') - denominator: DataObjectColumnUnit | None = Field(None, alias='denominator', description='The denominator field of DataObjectRateColumnUnit.') - - -class DataObjectStandardQuery(OpsiBaseModel): - """Information required to execute query on data objects. Query is given in standard SQL syntax providing flexibility to form complex queries such as queries with joins and nested queries.""" - - query_type: Literal['TEMPLATIZED_QUERY', 'STANDARD_QUERY'] = Field(..., alias='queryType', description='Gets the query_type of this DataObjectQuery.\nType of Query\n\nAllowed values for this property are: "TEMPLATIZED_QUERY", "STANDARD_QUERY"') - bind_params: list[DataObjectBindParameter] | None = Field(None, alias='bindParams', description='Gets the bind_params of this DataObjectQuery.\nList of bind parameters to be applied in the query.') - query_execution_timeout_in_seconds: float | None = Field(None, alias='queryExecutionTimeoutInSeconds', description='Gets the query_execution_timeout_in_seconds of this DataObjectQuery.\nTimeout (in seconds) to be set for the data object query execution.') - statement: str | None = Field(None, alias='statement', description='SQL query statement with standard Oracle supported SQL syntax.\n- When Warehouse (e.g: Awr hub) data objects are queried, use the actual names of underlying data objects (e.g: tables, views) in the query.\nThe same query that works through JDBC connection with the OperationsInsightsWarehouseUsers credentials will work here and vice-versa.\nSCHEMA.VIEW syntax can also be used here.\n- When OPSI data objects are queried, use name of the respective OPSI data object, just like how views are used in a query.\nIdentifier of the OPSI data object cannot be used in the query.') - time_filters: DataObjectQueryTimeFilters | None = Field(None, alias='timeFilters', description='The time_filters field of DataObjectStandardQuery.') - - -class DataObjectTemperatureColumnUnit(OpsiBaseModel): - """Unit details of a data object column of TEMPERATURE unit category.""" - - unit_category: Literal['DATA_SIZE', 'TIME', 'POWER', 'TEMPERATURE', 'CORE', 'RATE', 'FREQUENCY', 'OTHER_STANDARD', 'CUSTOM', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='unitCategory', description='Gets the unit_category of this DataObjectColumnUnit.\nCategory of the column\'s unit.\n\nAllowed values for this property are: "DATA_SIZE", "TIME", "POWER", "TEMPERATURE", "CORE", "RATE", "FREQUENCY", "OTHER_STANDARD", "CUSTOM", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - display_name: str | None = Field(None, alias='displayName', description="Gets the display_name of this DataObjectColumnUnit.\nDisplay name of the column's unit.") - unit: Literal['CELSIUS', 'FAHRENHEIT', 'UNKNOWN_ENUM_VALUE', 'CORE', 'CUSTOM', 'DATA_SIZE', 'FREQUENCY', 'OTHER_STANDARD', 'POWER', 'RATE', 'TEMPERATURE', 'TIME'] | None = Field(None, alias='unit', description='Temparature unit.\n\nAllowed values for this property are: "CELSIUS", "FAHRENHEIT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class DataObjectTemplatizedQuery(OpsiBaseModel): - """Information required in a structured template to form and execute query on a data object.""" - - query_type: Literal['TEMPLATIZED_QUERY', 'STANDARD_QUERY'] = Field(..., alias='queryType', description='Gets the query_type of this DataObjectQuery.\nType of Query\n\nAllowed values for this property are: "TEMPLATIZED_QUERY", "STANDARD_QUERY"') - bind_params: list[DataObjectBindParameter] | None = Field(None, alias='bindParams', description='Gets the bind_params of this DataObjectQuery.\nList of bind parameters to be applied in the query.') - query_execution_timeout_in_seconds: float | None = Field(None, alias='queryExecutionTimeoutInSeconds', description='Gets the query_execution_timeout_in_seconds of this DataObjectQuery.\nTimeout (in seconds) to be set for the data object query execution.') - select_list: list[str] | None = Field(None, alias='selectList', description='List of items to be added into the SELECT clause of the query; items will be added with comma separation.') - from_clause: str | None = Field(None, alias='fromClause', description='Unique data object name that will be added into the FROM clause of the query, just like a view name in FROM clause.\n- Use actual name of the data objects (e.g: tables, views) in case of Warehouse (e.g: Awr hub) data objects query. SCHEMA.VIEW name syntax can also be used here.\ne.g: SYS.DBA_HIST_SNAPSHOT or DBA_HIST_SNAPSHOT\n- Use name of the data object (e.g: SQL_STATS_DO) in case of OPSI data objects. Identifier of the OPSI data object cannot be used here.') - where_conditions_list: list[str] | None = Field(None, alias='whereConditionsList', description='List of items to be added into the WHERE clause of the query; items will be added with AND separation.\nItem can contain a single condition or multiple conditions.\nSingle condition e.g: "optimizer_mode=\'mode1\'"\nMultiple conditions e.g: (module=\'module1\' OR module=\'module2\')') - group_by_list: list[str] | None = Field(None, alias='groupByList', description='List of items to be added into the GROUP BY clause of the query; items will be added with comma separation.') - having_conditions_list: list[str] | None = Field(None, alias='havingConditionsList', description='List of items to be added into the HAVING clause of the query; items will be added with AND separation.') - order_by_list: list[str] | None = Field(None, alias='orderByList', description='List of items to be added into the ORDER BY clause of the query; items will be added with comma separation.') - time_filters: DataObjectQueryTimeFilters | None = Field(None, alias='timeFilters', description='The time_filters field of DataObjectTemplatizedQuery.') - - -class DataObjectTimeColumnUnit(OpsiBaseModel): - """Unit details of a data object column of TIME unit category.""" - - unit_category: Literal['DATA_SIZE', 'TIME', 'POWER', 'TEMPERATURE', 'CORE', 'RATE', 'FREQUENCY', 'OTHER_STANDARD', 'CUSTOM', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='unitCategory', description='Gets the unit_category of this DataObjectColumnUnit.\nCategory of the column\'s unit.\n\nAllowed values for this property are: "DATA_SIZE", "TIME", "POWER", "TEMPERATURE", "CORE", "RATE", "FREQUENCY", "OTHER_STANDARD", "CUSTOM", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - display_name: str | None = Field(None, alias='displayName', description="Gets the display_name of this DataObjectColumnUnit.\nDisplay name of the column's unit.") - unit: Literal['NANO_SECOND', 'MICRO_SECOND', 'MILLI_SECOND', 'CENTI_SECOND', 'SECOND', 'HOUR', 'DAY', 'WEEK', 'MONTH', 'YEAR', 'MINUTE', 'UNKNOWN_ENUM_VALUE', 'CORE', 'CUSTOM', 'DATA_SIZE', 'FREQUENCY', 'OTHER_STANDARD', 'POWER', 'RATE', 'TEMPERATURE', 'TIME'] | None = Field(None, alias='unit', description='Time unit.\n\nAllowed values for this property are: "NANO_SECOND", "MICRO_SECOND", "MILLI_SECOND", "CENTI_SECOND", "SECOND", "HOUR", "DAY", "WEEK", "MONTH", "YEAR", "MINUTE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class DatabaseConfigurationCollection(OpsiBaseModel): - """Collection of database insight configuration summary objects.""" - - items: list[DatabaseConfigurationSummary] = Field(..., alias='items', description='Array of database insight configurations summary objects.') - - -class DatabaseConfigurationMetricGroup(OpsiBaseModel): - """Supported configuration metric groups for database capacity planning service.""" - - metric_name: Literal['DB_EXTERNAL_PROPERTIES', 'DB_EXTERNAL_INSTANCE', 'DB_OS_CONFIG_INSTANCE', 'DB_PARAMETERS', 'DB_CONNECTION_STATUS', 'HOST_RESOURCE_ALLOCATION', 'ASM_ENTITY', 'EXADATA_CELL_CONFIG'] = Field(..., alias='metricName', description='Name of the metric group.\n\nAllowed values for this property are: "DB_EXTERNAL_PROPERTIES", "DB_EXTERNAL_INSTANCE", "DB_OS_CONFIG_INSTANCE", "DB_PARAMETERS", "DB_CONNECTION_STATUS", "HOST_RESOURCE_ALLOCATION", "ASM_ENTITY", "EXADATA_CELL_CONFIG"') - time_collected: datetime | None = Field(None, alias='timeCollected', description='Collection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') - - -class DatabaseConfigurationSummary(OpsiBaseModel): - """Summary of a database configuration for a resource.""" - - database_insight_id: str = Field(..., alias='databaseInsightId', description='The OCID of the database insight resource.') - entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Source of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') - database_name: str = Field(..., alias='databaseName', description='The database name. The database name is unique within the tenancy.') - database_display_name: str = Field(..., alias='databaseDisplayName', description='The user-friendly name for the database. The name does not have to be unique.') - database_type: str = Field(..., alias='databaseType', description='Ops Insights internal representation of the database type.') - database_version: str = Field(..., alias='databaseVersion', description='The version of the database.') - is_advanced_features_enabled: bool = Field(..., alias='isAdvancedFeaturesEnabled', description='Flag is to identify if advanced features for autonomous database is enabled or not') - cdb_name: str = Field(..., alias='cdbName', description='Name of the CDB.Only applies to PDB.') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - processor_count: int | None = Field(None, alias='processorCount', description='Processor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) - - -class DatabaseDetails(OpsiBaseModel): - """Partial information about the database which includes id, name, type.""" - - id: str = Field(..., alias='id', description='The OCID of the database insight resource.') - database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') - compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') - database_name: str = Field(..., alias='databaseName', description='The database name. The database name is unique within the tenancy.') - database_display_name: str | None = Field(None, alias='databaseDisplayName', description='The user-friendly name for the database. The name does not have to be unique.') - database_type: str = Field(..., alias='databaseType', description='Ops Insights internal representation of the database type.') - database_version: str | None = Field(None, alias='databaseVersion', description='The version of the database.') - instances: list[HostInstanceMap] | None = Field(None, alias='instances', description='Array of hostname and instance name.') - cdb_name: str | None = Field(None, alias='cdbName', description='Name of the CDB.Only applies to PDB.') - - -class DatabaseInsight(OpsiBaseModel): - """Database insight resource.""" - - entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Source of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - id: str = Field(..., alias='id', description='Database insight identifier') - compartment_id: str = Field(..., alias='compartmentId', description='Compartment identifier of the database') - status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Indicates the status of a database insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_type: str | None = Field(None, alias='databaseType', description='Ops Insights internal representation of the database type.') - database_version: str | None = Field(None, alias='databaseVersion', description='The version of the database.') - processor_count: int | None = Field(None, alias='processorCount', description='Processor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - time_created: datetime = Field(..., alias='timeCreated', description='The time the the database insight was first enabled. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='The time the database insight was updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='The current state of the database.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - database_connection_status_details: str | None = Field(None, alias='databaseConnectionStatusDetails', description='A message describing the status of the database connection of this resource. For example, it can be used to provide actionable information about the permission and content validity of the database connection.') - - -class DatabaseInsightSummary(OpsiBaseModel): - """Summary of a database insight resource.""" - - id: str = Field(..., alias='id', description='The OCID of the database insight resource.') - database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') - compartment_id: str | None = Field(None, alias='compartmentId', description='The OCID of the compartment.') - database_name: str | None = Field(None, alias='databaseName', description='The database name. The database name is unique within the tenancy.') - database_display_name: str | None = Field(None, alias='databaseDisplayName', description='The user-friendly name for the database. The name does not have to be unique.') - database_type: str | None = Field(None, alias='databaseType', description='Ops Insights internal representation of the database type.') - database_version: str | None = Field(None, alias='databaseVersion', description='The version of the database.') - database_host_names: list[str] | None = Field(None, alias='databaseHostNames', description='The hostnames for the database.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Source of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - processor_count: int | None = Field(None, alias='processorCount', description='Processor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) - status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='status', description='Indicates the status of a database insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime | None = Field(None, alias='timeCreated', description='The time the the database insight was first enabled. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='The time the database insight was updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='The current state of the database.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - database_connection_status_details: str | None = Field(None, alias='databaseConnectionStatusDetails', description='A message describing the status of the database connection of this resource. For example, it can be used to provide actionable information about the permission and content validity of the database connection.') - - -class DatabaseInsights(OpsiBaseModel): - """Logical grouping used for Operations Insights database-targeted operations.""" - - database_insights: Any | None = Field(None, alias='databaseInsights', description='Database Insights Object.') - - -class DatabaseInsightsCollection(OpsiBaseModel): - """Collection of database insight summary objects.""" - - items: list[DatabaseInsightSummary] = Field(..., alias='items', description='Array of database insight summary objects.') - - -class DatabaseInsightsDataObject(OpsiBaseModel): - """Database insights data object.""" - - identifier: str = Field(..., alias='identifier', description='Gets the identifier of this OpsiDataObject.\nUnique identifier of OPSI data object.') - data_object_type: Literal['DATABASE_INSIGHTS_DATA_OBJECT', 'HOST_INSIGHTS_DATA_OBJECT', 'EXADATA_INSIGHTS_DATA_OBJECT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dataObjectType', description='Gets the data_object_type of this OpsiDataObject.\nType of OPSI data object.\n\nAllowed values for this property are: "DATABASE_INSIGHTS_DATA_OBJECT", "HOST_INSIGHTS_DATA_OBJECT", "EXADATA_INSIGHTS_DATA_OBJECT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - display_name: str = Field(..., alias='displayName', description='Gets the display_name of this OpsiDataObject.\nUser-friendly name of OPSI data object.') - description: str | None = Field(None, alias='description', description='Gets the description of this OpsiDataObject.\nDescription of OPSI data object.') - name: str | None = Field(None, alias='name', description='Gets the name of this OpsiDataObject.\nName of the data object, which can be used in data object queries just like how view names are used in a query.') - group_names: list[str] | None = Field(None, alias='groupNames', description='Gets the group_names of this OpsiDataObject.\nNames of all the groups to which the data object belongs to.') - supported_query_time_period: str | None = Field(None, alias='supportedQueryTimePeriod', description='Gets the supported_query_time_period of this OpsiDataObject.\nTime period supported by the data object for quering data.\nTime period is in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D.\nExamples: P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months).') - columns_metadata: list[DataObjectColumnMetadata] = Field(..., alias='columnsMetadata', description='Gets the columns_metadata of this OpsiDataObject.\nMetadata of columns in a data object.') - supported_query_params: list[OpsiDataObjectSupportedQueryParam] | None = Field(None, alias='supportedQueryParams', description='Gets the supported_query_params of this OpsiDataObject.\nSupported query parameters by this OPSI data object that can be configured while a data object query involving this data object is executed.') - - -class DatabaseInsightsDataObjectSummary(OpsiBaseModel): - """Summary of a database insights data object.""" - - identifier: str = Field(..., alias='identifier', description='Gets the identifier of this OpsiDataObjectSummary.\nUnique identifier of OPSI data object.') - data_object_type: Literal['DATABASE_INSIGHTS_DATA_OBJECT', 'HOST_INSIGHTS_DATA_OBJECT', 'EXADATA_INSIGHTS_DATA_OBJECT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dataObjectType', description='Gets the data_object_type of this OpsiDataObjectSummary.\nType of OPSI data object.\n\nAllowed values for this property are: "DATABASE_INSIGHTS_DATA_OBJECT", "HOST_INSIGHTS_DATA_OBJECT", "EXADATA_INSIGHTS_DATA_OBJECT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - display_name: str = Field(..., alias='displayName', description='Gets the display_name of this OpsiDataObjectSummary.\nUser-friendly name of OPSI data object.') - description: str | None = Field(None, alias='description', description='Gets the description of this OpsiDataObjectSummary.\nDescription of OPSI data object.') - name: str | None = Field(None, alias='name', description='Gets the name of this OpsiDataObjectSummary.\nName of the data object, which can be used in data object queries just like how view names are used in a query.') - group_names: list[str] | None = Field(None, alias='groupNames', description='Gets the group_names of this OpsiDataObjectSummary.\nNames of all the groups to which the data object belongs to.') - - -class DatabaseParameterTypeDetails(OpsiBaseModel): - """Database parameter details.""" - - type: Literal['SCHEMA_OBJECT', 'SQL', 'DATABASE_PARAMETER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='type', description='Gets the type of this RelatedObjectTypeDetails.\nType of related object\n\nAllowed values for this property are: "SCHEMA_OBJECT", "SQL", "DATABASE_PARAMETER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - name: str = Field(..., alias='name', description='Name of database parameter') - - -class DiskGroupDetails(OpsiBaseModel): - """Information about a diskgroup which includes diskgroup name and ASM name.""" - - diskgroup_name: str = Field(..., alias='diskgroupName', description='The diskgroup name.') - asm_name: str = Field(..., alias='asmName', description='The ASM name.') - - -class DiskStatistics(OpsiBaseModel): - """Aggregated data per disk.""" - - disk_name: str = Field(..., alias='diskName', description='Name of the disk.') - disk_unallocated_in_gbs: float = Field(..., alias='diskUnallocatedInGBs', description='Value for unallocated space in a disk.') - disk_usage_in_gbs: float = Field(..., alias='diskUsageInGBs', description='Disk usage.') - disk_size_in_gbs: float = Field(..., alias='diskSizeInGBs', description='Size of the disk.') - - -class DownloadOperationsInsightsWarehouseWalletDetails(OpsiRequestModel): - """Download Wallet details.""" - - operations_insights_warehouse_wallet_password: str = Field(..., alias='operationsInsightsWarehouseWalletPassword', description='User provided ADW wallet password for the Ops Insights Warehouse.') - - -class EmManagedExternalDatabaseConfigurationSummary(OpsiBaseModel): - """Configuration summary of a EM Managed External database.""" - - database_insight_id: str = Field(..., alias='databaseInsightId', description='Gets the database_insight_id of this DatabaseConfigurationSummary. The OCID of the database insight resource.') - entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseConfigurationSummary.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this DatabaseConfigurationSummary. The OCID of the compartment.') - database_name: str = Field(..., alias='databaseName', description='Gets the database_name of this DatabaseConfigurationSummary.\nThe database name. The database name is unique within the tenancy.') - database_display_name: str = Field(..., alias='databaseDisplayName', description='Gets the database_display_name of this DatabaseConfigurationSummary.\nThe user-friendly name for the database. The name does not have to be unique.') - database_type: str = Field(..., alias='databaseType', description='Gets the database_type of this DatabaseConfigurationSummary.\nOps Insights internal representation of the database type.') - database_version: str = Field(..., alias='databaseVersion', description='Gets the database_version of this DatabaseConfigurationSummary.\nThe version of the database.') - is_advanced_features_enabled: bool = Field(..., alias='isAdvancedFeaturesEnabled', description='Gets the is_advanced_features_enabled of this DatabaseConfigurationSummary.\nFlag is to identify if advanced features for autonomous database is enabled or not') - cdb_name: str = Field(..., alias='cdbName', description='Gets the cdb_name of this DatabaseConfigurationSummary.\nName of the CDB.Only applies to PDB.') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this DatabaseConfigurationSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this DatabaseConfigurationSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseConfigurationSummary.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) - enterprise_manager_identifier: str = Field(..., alias='enterpriseManagerIdentifier', description='Enterprise Manager Unique Identifier') - enterprise_manager_bridge_id: str = Field(..., alias='enterpriseManagerBridgeId', description='OPSI Enterprise Manager Bridge OCID') - instances: list[HostInstanceMap] = Field(..., alias='instances', description='Array of hostname and instance name.') - exadata_details: ExadataDetails = Field(..., alias='exadataDetails', description='The exadata_details field of EmManagedExternalDatabaseConfigurationSummary.') - enterprise_manager_entity_identifier: str = Field(..., alias='enterpriseManagerEntityIdentifier', description='Enterprise Manager Entity Unique Identifier') - enterprise_manager_console_url: str = Field(..., alias='enterpriseManagerConsoleUrl', description='Enterprise Manager Console Url') - enterprise_manager_oms_ver: str = Field(..., alias='enterpriseManagerOmsVer', description='Enterprise Manager OMS Version') - enterprise_manager_entity_type: str = Field(..., alias='enterpriseManagerEntityType', description='Enterprise Manager Entity Type') - - -class EmManagedExternalDatabaseInsight(OpsiBaseModel): - """Database insight resource.""" - - entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseInsight.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - id: str = Field(..., alias='id', description='Gets the id of this DatabaseInsight.\nDatabase insight identifier') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this DatabaseInsight.\nCompartment identifier of the database') - status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Gets the status of this DatabaseInsight.\nIndicates the status of a database insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_type: str | None = Field(None, alias='databaseType', description='Gets the database_type of this DatabaseInsight.\nOps Insights internal representation of the database type.') - database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this DatabaseInsight.\nThe version of the database.') - processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseInsight.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this DatabaseInsight.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this DatabaseInsight.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this DatabaseInsight.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - time_created: datetime = Field(..., alias='timeCreated', description='Gets the time_created of this DatabaseInsight.\nThe time the the database insight was first enabled. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DatabaseInsight.\nThe time the database insight was updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Gets the lifecycle_state of this DatabaseInsight.\nThe current state of the database.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DatabaseInsight.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - database_connection_status_details: str | None = Field(None, alias='databaseConnectionStatusDetails', description='Gets the database_connection_status_details of this DatabaseInsight.\nA message describing the status of the database connection of this resource. For example, it can be used to provide actionable information about the permission and content validity of the database connection.') - enterprise_manager_identifier: str = Field(..., alias='enterpriseManagerIdentifier', description='Enterprise Manager Unique Identifier') - enterprise_manager_entity_name: str = Field(..., alias='enterpriseManagerEntityName', description='Enterprise Manager Entity Name') - enterprise_manager_entity_type: str = Field(..., alias='enterpriseManagerEntityType', description='Enterprise Manager Entity Type') - enterprise_manager_entity_identifier: str = Field(..., alias='enterpriseManagerEntityIdentifier', description='Enterprise Manager Entity Unique Identifier') - enterprise_manager_entity_display_name: str | None = Field(None, alias='enterpriseManagerEntityDisplayName', description='Enterprise Manager Entity Display Name') - enterprise_manager_bridge_id: str = Field(..., alias='enterpriseManagerBridgeId', description='OPSI Enterprise Manager Bridge OCID') - exadata_insight_id: str | None = Field(None, alias='exadataInsightId', description='The OCID of the Exadata insight.') - - -class EmManagedExternalDatabaseInsightSummary(OpsiBaseModel): - """Summary of a database insight resource.""" - - id: str = Field(..., alias='id', description='Gets the id of this DatabaseInsightSummary. The OCID of the database insight resource.') - database_id: str = Field(..., alias='databaseId', description='Gets the database_id of this DatabaseInsightSummary. The OCID of the database.') - compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this DatabaseInsightSummary. The OCID of the compartment.') - database_name: str | None = Field(None, alias='databaseName', description='Gets the database_name of this DatabaseInsightSummary.\nThe database name. The database name is unique within the tenancy.') - database_display_name: str | None = Field(None, alias='databaseDisplayName', description='Gets the database_display_name of this DatabaseInsightSummary.\nThe user-friendly name for the database. The name does not have to be unique.') - database_type: str | None = Field(None, alias='databaseType', description='Gets the database_type of this DatabaseInsightSummary.\nOps Insights internal representation of the database type.') - database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this DatabaseInsightSummary.\nThe version of the database.') - database_host_names: list[str] | None = Field(None, alias='databaseHostNames', description='Gets the database_host_names of this DatabaseInsightSummary.\nThe hostnames for the database.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this DatabaseInsightSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this DatabaseInsightSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this DatabaseInsightSummary.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseInsightSummary.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseInsightSummary.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) - status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='status', description='Gets the status of this DatabaseInsightSummary.\nIndicates the status of a database insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DatabaseInsightSummary.\nThe time the the database insight was first enabled. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DatabaseInsightSummary.\nThe time the database insight was updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DatabaseInsightSummary.\nThe current state of the database.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DatabaseInsightSummary.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - database_connection_status_details: str | None = Field(None, alias='databaseConnectionStatusDetails', description='Gets the database_connection_status_details of this DatabaseInsightSummary.\nA message describing the status of the database connection of this resource. For example, it can be used to provide actionable information about the permission and content validity of the database connection.') - enterprise_manager_identifier: str = Field(..., alias='enterpriseManagerIdentifier', description='Enterprise Manager Unique Identifier') - enterprise_manager_entity_name: str = Field(..., alias='enterpriseManagerEntityName', description='Enterprise Manager Entity Name') - enterprise_manager_entity_type: str = Field(..., alias='enterpriseManagerEntityType', description='Enterprise Manager Entity Type') - enterprise_manager_entity_identifier: str = Field(..., alias='enterpriseManagerEntityIdentifier', description='Enterprise Manager Entity Unique Identifier') - enterprise_manager_entity_display_name: str | None = Field(None, alias='enterpriseManagerEntityDisplayName', description='Enterprise Manager Entity Display Name') - enterprise_manager_bridge_id: str = Field(..., alias='enterpriseManagerBridgeId', description='OPSI Enterprise Manager Bridge OCID') - exadata_insight_id: str | None = Field(None, alias='exadataInsightId', description='The OCID of the Exadata insight.') - - -class EmManagedExternalExadataInsight(OpsiBaseModel): - """EM-managed Exadata insight resource.""" - - entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this ExadataInsight.\nSource of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - id: str = Field(..., alias='id', description='Gets the id of this ExadataInsight.\nExadata insight identifier') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this ExadataInsight.\nCompartment identifier of the Exadata insight resource') - exadata_name: str = Field(..., alias='exadataName', description='Gets the exadata_name of this ExadataInsight.\nThe Exadata system name. If the Exadata systems managed by Enterprise Manager, the name is unique amongst the Exadata systems managed by the same Enterprise Manager.') - exadata_display_name: str | None = Field(None, alias='exadataDisplayName', description='Gets the exadata_display_name of this ExadataInsight.\nThe user-friendly name for the Exadata system. The name does not have to be unique.') - exadata_type: Literal['DBMACHINE', 'EXACS', 'EXACC', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='exadataType', description='Gets the exadata_type of this ExadataInsight.\nOperations Insights internal representation of the the Exadata system type.\n\nAllowed values for this property are: "DBMACHINE", "EXACS", "EXACC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - exadata_rack_type: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'FLEX', 'BASE', 'ELASTIC', 'ELASTIC_BASE', 'ELASTIC_LARGE', 'ELASTIC_EXTRA_LARGE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='exadataRackType', description='Gets the exadata_rack_type of this ExadataInsight.\nExadata rack type.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", "FLEX", "BASE", "ELASTIC", "ELASTIC_BASE", "ELASTIC_LARGE", "ELASTIC_EXTRA_LARGE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - is_virtualized_exadata: bool | None = Field(None, alias='isVirtualizedExadata', description='Gets the is_virtualized_exadata of this ExadataInsight.\ntrue if virtualization is used in the Exadata system') - status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Gets the status of this ExadataInsight.\nIndicates the status of an Exadata insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - chargeback_plan_details: ChargebackPlanDetails | None = Field(None, alias='chargebackPlanDetails', description='Gets the chargeback_plan_details of this ExadataInsight.') - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this ExadataInsight.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this ExadataInsight.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExadataInsight.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - time_created: datetime = Field(..., alias='timeCreated', description='Gets the time_created of this ExadataInsight.\nThe time the the Exadata insight was first enabled. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this ExadataInsight.\nThe time the Exadata insight was updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Gets the lifecycle_state of this ExadataInsight.\nThe current state of the Exadata insight.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExadataInsight.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - status_details: str | None = Field(None, alias='statusDetails', description='Gets the status_details of this ExadataInsight.\nA message describing the status of the Exadata Resource. For example, it can be used to provide actionable information about the policies needed to access the Exadata Resource.') - enterprise_manager_identifier: str = Field(..., alias='enterpriseManagerIdentifier', description='Enterprise Manager Unique Identifier') - enterprise_manager_entity_name: str = Field(..., alias='enterpriseManagerEntityName', description='Enterprise Manager Entity Name') - enterprise_manager_entity_type: str = Field(..., alias='enterpriseManagerEntityType', description='Enterprise Manager Entity Type') - enterprise_manager_entity_identifier: str = Field(..., alias='enterpriseManagerEntityIdentifier', description='Enterprise Manager Entity Unique Identifier') - enterprise_manager_entity_display_name: str | None = Field(None, alias='enterpriseManagerEntityDisplayName', description='Enterprise Manager Entity Display Name') - enterprise_manager_bridge_id: str = Field(..., alias='enterpriseManagerBridgeId', description='OPSI Enterprise Manager Bridge OCID') - is_auto_sync_enabled: bool | None = Field(None, alias='isAutoSyncEnabled', description='Set to true to enable automatic enablement and disablement of related targets from Enterprise Manager. New resources (e.g. Database Insights) will be placed in the same compartment as the related Exadata Insight.') - - -class EmManagedExternalExadataInsightSummary(OpsiBaseModel): - """Summary of an Exadata insight resource.""" - - entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this ExadataInsightSummary.\nSource of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - id: str = Field(..., alias='id', description='Gets the id of this ExadataInsightSummary. The OCID of the Exadata insight resource.') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this ExadataInsightSummary. The OCID of the compartment.') - exadata_name: str = Field(..., alias='exadataName', description='Gets the exadata_name of this ExadataInsightSummary.\nThe Exadata system name. If the Exadata systems managed by Enterprise Manager, the name is unique amongst the Exadata systems managed by the same Enterprise Manager.') - exadata_display_name: str | None = Field(None, alias='exadataDisplayName', description='Gets the exadata_display_name of this ExadataInsightSummary.\nThe user-friendly name for the Exadata system. The name does not have to be unique.') - exadata_type: Literal['DBMACHINE', 'EXACS', 'EXACC', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='exadataType', description='Gets the exadata_type of this ExadataInsightSummary.\nOperations Insights internal representation of the the Exadata system type.\n\nAllowed values for this property are: "DBMACHINE", "EXACS", "EXACC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - exadata_rack_type: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'FLEX', 'BASE', 'ELASTIC', 'ELASTIC_BASE', 'ELASTIC_LARGE', 'ELASTIC_EXTRA_LARGE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='exadataRackType', description='Gets the exadata_rack_type of this ExadataInsightSummary.\nOperations Insights internal representation of the the Exadata system rack type.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", "FLEX", "BASE", "ELASTIC", "ELASTIC_BASE", "ELASTIC_LARGE", "ELASTIC_EXTRA_LARGE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this ExadataInsightSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this ExadataInsightSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExadataInsightSummary.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Gets the status of this ExadataInsightSummary.\nIndicates the status of an Exadata insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - chargeback_plan_details: ChargebackPlanDetails | None = Field(None, alias='chargebackPlanDetails', description='Gets the chargeback_plan_details of this ExadataInsightSummary.') - time_created: datetime = Field(..., alias='timeCreated', description='Gets the time_created of this ExadataInsightSummary.\nThe time the the Exadata insight was first enabled. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this ExadataInsightSummary.\nThe time the Exadata insight was updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Gets the lifecycle_state of this ExadataInsightSummary.\nThe current state of the Exadata insight.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExadataInsightSummary.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - status_details: str | None = Field(None, alias='statusDetails', description='Gets the status_details of this ExadataInsightSummary.\nA message describing the status of the Exadata Resource. For example, it can be used to provide actionable information about the policies needed to access the Exadata Resource.') - enterprise_manager_identifier: str = Field(..., alias='enterpriseManagerIdentifier', description='Enterprise Manager Unique Identifier') - enterprise_manager_entity_name: str = Field(..., alias='enterpriseManagerEntityName', description='Enterprise Manager Entity Name') - enterprise_manager_entity_type: str = Field(..., alias='enterpriseManagerEntityType', description='Enterprise Manager Entity Type') - enterprise_manager_entity_identifier: str = Field(..., alias='enterpriseManagerEntityIdentifier', description='Enterprise Manager Entity Unique Identifier') - enterprise_manager_entity_display_name: str | None = Field(None, alias='enterpriseManagerEntityDisplayName', description='Enterprise Manager Entity Display Name') - enterprise_manager_bridge_id: str = Field(..., alias='enterpriseManagerBridgeId', description='OPSI Enterprise Manager Bridge OCID') - - -class EmManagedExternalHostConfigurationSummary(OpsiBaseModel): - """Configuration summary of a EM Managed External host.""" - - host_insight_id: str = Field(..., alias='hostInsightId', description='Gets the host_insight_id of this HostConfigurationSummary. The OCID of the host insight resource.') - entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this HostConfigurationSummary.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this HostConfigurationSummary. The OCID of the compartment.') - host_name: str = Field(..., alias='hostName', description='Gets the host_name of this HostConfigurationSummary.\nThe host name. The host name is unique amongst the hosts managed by the same management agent.') - platform_type: Literal['LINUX', 'SOLARIS', 'SUNOS', 'ZLINUX', 'WINDOWS', 'AIX', 'HP_UX', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='platformType', description='Gets the platform_type of this HostConfigurationSummary.\nPlatform type.\nSupported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS].\nSupported platformType(s) for MACS-managed cloud host insight: [LINUX].\nSupported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX].\n\nAllowed values for this property are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - platform_version: str = Field(..., alias='platformVersion', description='Gets the platform_version of this HostConfigurationSummary.\nPlatform version.') - platform_vendor: str = Field(..., alias='platformVendor', description='Gets the platform_vendor of this HostConfigurationSummary.\nPlatform vendor.') - total_cpus: int = Field(..., alias='totalCpus', description='Gets the total_cpus of this HostConfigurationSummary.\nTotal CPU on this host.') - total_memory_in_gbs: float = Field(..., alias='totalMemoryInGBs', description='Gets the total_memory_in_gbs of this HostConfigurationSummary.\nTotal amount of usable physical memory in gibabytes') - cpu_architecture: str = Field(..., alias='cpuArchitecture', description='Gets the cpu_architecture of this HostConfigurationSummary.\nCPU architechure') - cpu_cache_in_mbs: float = Field(..., alias='cpuCacheInMBs', description='Gets the cpu_cache_in_mbs of this HostConfigurationSummary.\nSize of cache memory in megabytes.') - cpu_vendor: str = Field(..., alias='cpuVendor', description='Gets the cpu_vendor of this HostConfigurationSummary.\nName of the CPU vendor.') - cpu_frequency_in_mhz: float = Field(..., alias='cpuFrequencyInMhz', description='Gets the cpu_frequency_in_mhz of this HostConfigurationSummary.\nClock frequency of the processor in megahertz.') - cpu_implementation: str = Field(..., alias='cpuImplementation', description='Gets the cpu_implementation of this HostConfigurationSummary.\nModel name of processor.') - cores_per_socket: int = Field(..., alias='coresPerSocket', description='Gets the cores_per_socket of this HostConfigurationSummary.\nNumber of cores per socket.') - total_sockets: int = Field(..., alias='totalSockets', description='Gets the total_sockets of this HostConfigurationSummary.\nNumber of total sockets.') - threads_per_socket: int = Field(..., alias='threadsPerSocket', description='Gets the threads_per_socket of this HostConfigurationSummary.\nNumber of threads per socket.') - is_hyper_threading_enabled: bool = Field(..., alias='isHyperThreadingEnabled', description='Gets the is_hyper_threading_enabled of this HostConfigurationSummary.\nIndicates if hyper-threading is enabled or not') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this HostConfigurationSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this HostConfigurationSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - enterprise_manager_identifier: str = Field(..., alias='enterpriseManagerIdentifier', description='Enterprise Manager Unique Identifier') - enterprise_manager_bridge_id: str = Field(..., alias='enterpriseManagerBridgeId', description='OPSI Enterprise Manager Bridge OCID') - exadata_details: ExadataDetails = Field(..., alias='exadataDetails', description='The exadata_details field of EmManagedExternalHostConfigurationSummary.') - enterprise_manager_entity_identifier: str = Field(..., alias='enterpriseManagerEntityIdentifier', description='Enterprise Manager Entity Unique Identifier') - enterprise_manager_console_url: str = Field(..., alias='enterpriseManagerConsoleUrl', description='Enterprise Manager Console Url') - enterprise_manager_oms_ver: str = Field(..., alias='enterpriseManagerOmsVer', description='Enterprise Manager OMS Version') - enterprise_manager_entity_type: str = Field(..., alias='enterpriseManagerEntityType', description='Enterprise Manager Entity Type') - - -class EmManagedExternalHostInsight(OpsiBaseModel): - """EM-managed external host insight resource.""" - - entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this HostInsight.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - id: str = Field(..., alias='id', description='Gets the id of this HostInsight. The OCID of the host insight resource.') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this HostInsight. The OCID of the compartment.') - host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this HostInsight.\nThe host name. The host name is unique amongst the hosts managed by the same management agent.') - host_display_name: str | None = Field(None, alias='hostDisplayName', description='Gets the host_display_name of this HostInsight.\nThe user-friendly name for the host. The name does not have to be unique.') - host_type: str | None = Field(None, alias='hostType', description='Gets the host_type of this HostInsight.\nOps Insights internal representation of the host type. Possible value is EXTERNAL-HOST.') - processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this HostInsight.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this HostInsight.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this HostInsight.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this HostInsight.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Gets the status of this HostInsight.\nIndicates the status of a host insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime = Field(..., alias='timeCreated', description='Gets the time_created of this HostInsight.\nThe time the the host insight was first enabled. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this HostInsight.\nThe time the host insight was updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Gets the lifecycle_state of this HostInsight.\nThe current state of the host.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this HostInsight.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - enterprise_manager_identifier: str = Field(..., alias='enterpriseManagerIdentifier', description='Enterprise Manager Unique Identifier') - enterprise_manager_entity_name: str = Field(..., alias='enterpriseManagerEntityName', description='Enterprise Manager Entity Name') - enterprise_manager_entity_type: str = Field(..., alias='enterpriseManagerEntityType', description='Enterprise Manager Entity Type') - enterprise_manager_entity_identifier: str = Field(..., alias='enterpriseManagerEntityIdentifier', description='Enterprise Manager Entity Unique Identifier') - enterprise_manager_entity_display_name: str | None = Field(None, alias='enterpriseManagerEntityDisplayName', description='Enterprise Manager Entity Display Name') - enterprise_manager_bridge_id: str = Field(..., alias='enterpriseManagerBridgeId', description='OPSI Enterprise Manager Bridge OCID') - platform_type: Literal['LINUX', 'SOLARIS', 'SUNOS', 'ZLINUX', 'WINDOWS', 'AIX', 'HP_UX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='platformType', description='Platform type.\nSupported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS].\nSupported platformType(s) for MACS-managed cloud host insight: [LINUX].\nSupported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX].\n\nAllowed values for this property are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - platform_name: str | None = Field(None, alias='platformName', description='Platform name.') - platform_version: str | None = Field(None, alias='platformVersion', description='Platform version.') - exadata_insight_id: str | None = Field(None, alias='exadataInsightId', description='The OCID of the Exadata insight.') - - -class EmManagedExternalHostInsightSummary(OpsiBaseModel): - """Summary of an EM-managed external host insight resource.""" - - entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this HostInsightSummary.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - id: str = Field(..., alias='id', description='Gets the id of this HostInsightSummary. The OCID of the host insight resource.') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this HostInsightSummary. The OCID of the compartment.') - host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this HostInsightSummary.\nThe host name. The host name is unique amongst the hosts managed by the same management agent.') - host_display_name: str | None = Field(None, alias='hostDisplayName', description='Gets the host_display_name of this HostInsightSummary.\nThe user-friendly name for the host. The name does not have to be unique.') - host_type: str | None = Field(None, alias='hostType', description='Gets the host_type of this HostInsightSummary.\nOps Insights internal representation of the host type. Possible value is EXTERNAL-HOST.') - processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this HostInsightSummary.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this HostInsightSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this HostInsightSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this HostInsightSummary.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - opsi_private_endpoint_id: str | None = Field(None, alias='opsiPrivateEndpointId', description='Gets the opsi_private_endpoint_id of this HostInsightSummary. The OCID of the OPSI private endpoint.') - status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='status', description='Gets the status of this HostInsightSummary.\nIndicates the status of a host insight in Ops Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this HostInsightSummary.\nThe time the the host insight was first enabled. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this HostInsightSummary.\nThe time the host insight was updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this HostInsightSummary.\nThe current state of the host.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this HostInsightSummary.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - enterprise_manager_identifier: str = Field(..., alias='enterpriseManagerIdentifier', description='Enterprise Manager Unique Identifier') - enterprise_manager_entity_name: str = Field(..., alias='enterpriseManagerEntityName', description='Enterprise Manager Entity Name') - enterprise_manager_entity_type: str = Field(..., alias='enterpriseManagerEntityType', description='Enterprise Manager Entity Type') - enterprise_manager_entity_identifier: str = Field(..., alias='enterpriseManagerEntityIdentifier', description='Enterprise Manager Entity Unique Identifier') - enterprise_manager_entity_display_name: str | None = Field(None, alias='enterpriseManagerEntityDisplayName', description='Enterprise Manager Entity Display Name') - enterprise_manager_bridge_id: str = Field(..., alias='enterpriseManagerBridgeId', description='OPSI Enterprise Manager Bridge OCID') - platform_type: Literal['LINUX', 'SOLARIS', 'SUNOS', 'ZLINUX', 'WINDOWS', 'AIX', 'HP_UX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='platformType', description='Platform type.\nSupported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS].\nSupported platformType(s) for MACS-managed cloud host insight: [LINUX].\nSupported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX].\n\nAllowed values for this property are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - exadata_insight_id: str | None = Field(None, alias='exadataInsightId', description='The OCID of the Exadata insight.') - - -class EnableAutonomousDatabaseInsightAdvancedFeaturesDetails(OpsiRequestModel): - """The advanced feature details for autonomous database to be enabled.""" - - opsi_private_endpoint_id: str | None = Field(None, alias='opsiPrivateEndpointId', description='The OCID of the OPSI private endpoint.') - connection_details: ConnectionDetails = Field(..., alias='connectionDetails', description='The connection_details field of EnableAutonomousDatabaseInsightAdvancedFeaturesDetails.') - credential_details: CredentialDetails = Field(..., alias='credentialDetails', description='The credential_details field of EnableAutonomousDatabaseInsightAdvancedFeaturesDetails.') - - -class EnableAutonomousDatabaseInsightDetails(OpsiBaseModel): - """The information about database to be analyzed. When isAdvancedFeaturesEnabled is set to false, parameters connectionDetails, credentialDetails and opsiPrivateEndpoint are optional. Otherwise, connectionDetails and crendetialDetails are required to enable full OPSI service features. If the Autonomouse Database is configured with private, restricted or dedicated access, opsiPrivateEndpoint parameter is required.""" - - entity_source: Literal['EM_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Gets the entity_source of this EnableDatabaseInsightDetails.\nSource of the database entity.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') - database_resource_type: str | None = Field(None, alias='databaseResourceType', description='OCI database resource type') - is_advanced_features_enabled: bool = Field(..., alias='isAdvancedFeaturesEnabled', description='Flag is to identify if advanced features for autonomous database is enabled or not') - connection_details: ConnectionDetails | None = Field(None, alias='connectionDetails', description='The connection_details field of EnableAutonomousDatabaseInsightDetails.') - credential_details: CredentialDetails | None = Field(None, alias='credentialDetails', description='The credential_details field of EnableAutonomousDatabaseInsightDetails.') - opsi_private_endpoint_id: str | None = Field(None, alias='opsiPrivateEndpointId', description='The OCID of the OPSI private endpoint.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - - -class EnableDatabaseInsightDetails(OpsiRequestModel): - """The information about database to be analyzed.""" - - entity_source: Literal['EM_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Source of the database entity.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') - - -class EnableEmManagedExternalDatabaseInsightDetails(OpsiBaseModel): - """The information about database to be analyzed.""" - - entity_source: Literal['EM_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Gets the entity_source of this EnableDatabaseInsightDetails.\nSource of the database entity.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') - - -class EnableEmManagedExternalExadataInsightDetails(OpsiBaseModel): - """The information about the Exadata system to be analyzed.""" - - entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA'] = Field(..., alias='entitySource', description='Gets the entity_source of this EnableExadataInsightDetails.\nSource of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA"') - - -class EnableEmManagedExternalHostInsightDetails(OpsiBaseModel): - """The information about the EM-managed external host to be analyzed.""" - - entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST'] = Field(..., alias='entitySource', description='Gets the entity_source of this EnableHostInsightDetails.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST"') - - -class EnableExadataInsightDetails(OpsiRequestModel): - """The information about the Exadata system to be analyzed.""" - - entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA'] = Field(..., alias='entitySource', description='Source of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA"') - - -class EnableExternalMysqlDatabaseInsightDetails(OpsiBaseModel): - """MySQL support within the OCI Ops Insights service has been deprecated as of January 29, 2026. The information about database to be analyzed.""" - - entity_source: Literal['EM_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Gets the entity_source of this EnableDatabaseInsightDetails.\nSource of the database entity.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') - database_connector_id: str = Field(..., alias='databaseConnectorId', description='The DBM owned database connector OCID mapping to the database credentials and connection details.') - - -class EnableHostInsightDetails(OpsiRequestModel): - """The information about the host to be analyzed.""" - - entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST'] = Field(..., alias='entitySource', description='Source of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST"') - - -class EnableMacsManagedAutonomousDatabaseInsightDetails(OpsiBaseModel): - """The information about database to be analyzed.""" - - entity_source: Literal['EM_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Gets the entity_source of this EnableDatabaseInsightDetails.\nSource of the database entity.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') - compartment_id: str = Field(..., alias='compartmentId', description='The compartment OCID of the Autonomous Database.') - management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') - connection_details: ConnectionDetails = Field(..., alias='connectionDetails', description='The connection_details field of EnableMacsManagedAutonomousDatabaseInsightDetails.') - connection_credential_details: CredentialDetails = Field(..., alias='connectionCredentialDetails', description='The connection_credential_details field of EnableMacsManagedAutonomousDatabaseInsightDetails.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - - -class EnableMacsManagedCloudDatabaseInsightDetails(OpsiBaseModel): - """The information about database to be analyzed.""" - - entity_source: Literal['EM_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Gets the entity_source of this EnableDatabaseInsightDetails.\nSource of the database entity.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') - compartment_id: str = Field(..., alias='compartmentId', description='The compartment OCID of the External Database.') - management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') - connection_details: ConnectionDetails = Field(..., alias='connectionDetails', description='The connection_details field of EnableMacsManagedCloudDatabaseInsightDetails.') - connection_credential_details: CredentialDetails = Field(..., alias='connectionCredentialDetails', description='The connection_credential_details field of EnableMacsManagedCloudDatabaseInsightDetails.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - - -class EnableMacsManagedCloudExadataInsightDetails(OpsiBaseModel): - """The information about the Exadata system to be analyzed. (ExaCC).""" - - entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA'] = Field(..., alias='entitySource', description='Gets the entity_source of this EnableExadataInsightDetails.\nSource of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA"') - - -class EnableMacsManagedCloudHostInsightDetails(OpsiBaseModel): - """The information about the MACS-managed external host to be analyzed.""" - - entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST'] = Field(..., alias='entitySource', description='Gets the entity_source of this EnableHostInsightDetails.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST"') - - -class EnableMacsManagedExternalHostInsightDetails(OpsiBaseModel): - """The information about the MACS-managed external host to be analyzed.""" - - entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST'] = Field(..., alias='entitySource', description='Gets the entity_source of this EnableHostInsightDetails.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST"') - - -class EnableMdsMySqlDatabaseInsightDetails(OpsiBaseModel): - """MySQL support within the OCI Ops Insights service has been deprecated as of January 29, 2026. The information about database to be analyzed.""" - - entity_source: Literal['EM_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Gets the entity_source of this EnableDatabaseInsightDetails.\nSource of the database entity.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') - - -class EnablePeComanagedDatabaseInsightDetails(OpsiBaseModel): - """The information about database to be analyzed.""" - - entity_source: Literal['EM_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Gets the entity_source of this EnableDatabaseInsightDetails.\nSource of the database entity.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') - compartment_id: str = Field(..., alias='compartmentId', description='The compartment OCID of the Private service accessed database.') - opsi_private_endpoint_id: str = Field(..., alias='opsiPrivateEndpointId', description='The OCID of the OPSI private endpoint.') - service_name: str = Field(..., alias='serviceName', description='Database service name used for connection requests.') - credential_details: CredentialDetails = Field(..., alias='credentialDetails', description='The credential_details field of EnablePeComanagedDatabaseInsightDetails.') - connection_details: PeComanagedDatabaseConnectionDetails | None = Field(None, alias='connectionDetails', description='The connection_details field of EnablePeComanagedDatabaseInsightDetails.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - - -class EnablePeComanagedExadataInsightDetails(OpsiBaseModel): - """The information about the Exadata system to be analyzed. (ExaCS).""" - - entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA'] = Field(..., alias='entitySource', description='Gets the entity_source of this EnableExadataInsightDetails.\nSource of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA"') - - -class EnablePlanExadataInsightDetails(OpsiRequestModel): - """The information about the chargeback plan to be enabled.""" - - plan_id: str = Field(..., alias='planId', description='OCID of OPSI Chargeback plan resource.') - - -class EnterpriseManagerBridge(OpsiBaseModel): - """Enterprise Manager bridge resource.""" - - id: str = Field(..., alias='id', description='Enterprise Manager bridge identifier') - compartment_id: str = Field(..., alias='compartmentId', description='Compartment identifier of the Enterprise Manager bridge') - display_name: str = Field(..., alias='displayName', description='User-friedly name of Enterprise Manager Bridge that does not have to be unique.') - description: str | None = Field(None, alias='description', description='Description of Enterprise Manager Bridge') - object_storage_namespace_name: str = Field(..., alias='objectStorageNamespaceName', description='Object Storage Namespace Name') - object_storage_bucket_name: str = Field(..., alias='objectStorageBucketName', description='Object Storage Bucket Name') - object_storage_bucket_status_details: str | None = Field(None, alias='objectStorageBucketStatusDetails', description='A message describing status of the object storage bucket of this resource. For example, it can be used to provide actionable information about the permission and content validity of the bucket.') - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - time_created: datetime = Field(..., alias='timeCreated', description='The time the the Enterprise Manager bridge was first created. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='The time the Enterprise Manager bridge was updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='The current state of the Enterprise Manager bridge.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - - -class EnterpriseManagerBridgeCollection(OpsiBaseModel): - """Collection of Enterprose Manager bridge summary objects.""" - - items: list[EnterpriseManagerBridgeSummary] = Field(..., alias='items', description='Array of Enterprose Manager bridge summary objects.') - - -class EnterpriseManagerBridgeSummary(OpsiBaseModel): - """Summary of a Enterprise Manager bridge resource.""" - - id: str = Field(..., alias='id', description='Enterprise Manager bridge identifier') - compartment_id: str = Field(..., alias='compartmentId', description='Compartment identifier of the Enterprise Manager bridge') - display_name: str = Field(..., alias='displayName', description='User-friedly name of Enterprise Manager Bridge that does not have to be unique.') - object_storage_namespace_name: str = Field(..., alias='objectStorageNamespaceName', description='Object Storage Namespace Name') - object_storage_bucket_name: str = Field(..., alias='objectStorageBucketName', description='Object Storage Bucket Name') - object_storage_bucket_status_details: str | None = Field(None, alias='objectStorageBucketStatusDetails', description='A message describing status of the object storage bucket of this resource. For example, it can be used to provide actionable information about the permission and content validity of the bucket.') - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - time_created: datetime = Field(..., alias='timeCreated', description='The time the the Enterprise Manager bridge was first created. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='The time the Enterprise Manager bridge was updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='The current state of the Enterprise Manager bridge.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - - -class EnterpriseManagerBridges(OpsiBaseModel): - """Logical grouping used for Ops Insights Enterprise Manager Bridge operations.""" - - enterprise_manager_bridges: Any | None = Field(None, alias='enterpriseManagerBridges', description='Enterprise Manager Bridge Object.') - - -class ExadataAsmEntity(OpsiBaseModel): - """ASM entitie for an exadata.""" - - metric_name: Literal['DB_EXTERNAL_PROPERTIES', 'DB_EXTERNAL_INSTANCE', 'DB_OS_CONFIG_INSTANCE', 'DB_PARAMETERS', 'DB_CONNECTION_STATUS', 'HOST_RESOURCE_ALLOCATION', 'ASM_ENTITY', 'EXADATA_CELL_CONFIG'] = Field(..., alias='metricName', description='Gets the metric_name of this DatabaseConfigurationMetricGroup.\nName of the metric group.\n\nAllowed values for this property are: "DB_EXTERNAL_PROPERTIES", "DB_EXTERNAL_INSTANCE", "DB_OS_CONFIG_INSTANCE", "DB_PARAMETERS", "DB_CONNECTION_STATUS", "HOST_RESOURCE_ALLOCATION", "ASM_ENTITY", "EXADATA_CELL_CONFIG"') - time_collected: datetime | None = Field(None, alias='timeCollected', description='Gets the time_collected of this DatabaseConfigurationMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') - instance_name: str | None = Field(None, alias='instanceName', description='Instance name of ASM') - cluster_name: str | None = Field(None, alias='clusterName', description='Cluster name of ASM') - software_version: str | None = Field(None, alias='softwareVersion', description='Software version') - - -class ExadataCellConfig(OpsiBaseModel): - """Storage server configuration.""" - - metric_name: Literal['DB_EXTERNAL_PROPERTIES', 'DB_EXTERNAL_INSTANCE', 'DB_OS_CONFIG_INSTANCE', 'DB_PARAMETERS', 'DB_CONNECTION_STATUS', 'HOST_RESOURCE_ALLOCATION', 'ASM_ENTITY', 'EXADATA_CELL_CONFIG'] = Field(..., alias='metricName', description='Gets the metric_name of this DatabaseConfigurationMetricGroup.\nName of the metric group.\n\nAllowed values for this property are: "DB_EXTERNAL_PROPERTIES", "DB_EXTERNAL_INSTANCE", "DB_OS_CONFIG_INSTANCE", "DB_PARAMETERS", "DB_CONNECTION_STATUS", "HOST_RESOURCE_ALLOCATION", "ASM_ENTITY", "EXADATA_CELL_CONFIG"') - time_collected: datetime | None = Field(None, alias='timeCollected', description='Gets the time_collected of this DatabaseConfigurationMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') - cell_name: str | None = Field(None, alias='cellName', description='Cell name') - cell_hash: str | None = Field(None, alias='cellHash', description='Cell hash') - cell_properties: str | None = Field(None, alias='cellProperties', description='Cell properties') - cell_configs: str | None = Field(None, alias='cellConfigs', description='Cell configs') - disk_counts: str | None = Field(None, alias='diskCounts', description='Cell disk counts') - - -class ExadataConfigurationCollection(OpsiBaseModel): - """Collection of exadata insight configuration summary objects.""" - - items: list[ExadataConfigurationSummary] = Field(..., alias='items', description='Array of exadata insight configurations summary objects.') - - -class ExadataConfigurationSummary(OpsiBaseModel): - """Summary of a exadata configuration for a resource.""" - - exadata_insight_id: str = Field(..., alias='exadataInsightId', description='The OCID of the Exadata insight.') - entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Source of the exadata entity.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') - exadata_name: str = Field(..., alias='exadataName', description='The Exadata system name. If the Exadata systems managed by Enterprise Manager, the name is unique amongst the Exadata systems managed by the same Enterprise Manager.') - exadata_display_name: str = Field(..., alias='exadataDisplayName', description='The user-friendly name for the Exadata system. The name does not have to be unique.') - exadata_type: Literal['DBMACHINE', 'EXACS', 'EXACC', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataType', description='Operations Insights internal representation of the the Exadata system type.\n\nAllowed values for this property are: "DBMACHINE", "EXACS", "EXACC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - exadata_rack_type: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'FLEX', 'BASE', 'ELASTIC', 'ELASTIC_BASE', 'ELASTIC_LARGE', 'ELASTIC_EXTRA_LARGE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataRackType', description='Exadata rack type.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", "FLEX", "BASE", "ELASTIC", "ELASTIC_BASE", "ELASTIC_LARGE", "ELASTIC_EXTRA_LARGE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - vmcluster_details: list[VmClusterSummary] | None = Field(None, alias='vmclusterDetails', description='Array of objects containing VM cluster information.') - exadata_shape: str = Field(..., alias='exadataShape', description='The shape of the Exadata Infrastructure.') - chargeback_plan_details: ChargebackPlanDetails = Field(..., alias='chargebackPlanDetails', description='The chargeback_plan_details field of ExadataConfigurationSummary.') - - -class ExadataDatabaseMachineConfigurationSummary(OpsiBaseModel): - """Configuration summary of a database machine.""" - - exadata_insight_id: str = Field(..., alias='exadataInsightId', description='Gets the exadata_insight_id of this ExadataConfigurationSummary. The OCID of the Exadata insight.') - entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this ExadataConfigurationSummary.\nSource of the exadata entity.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this ExadataConfigurationSummary. The OCID of the compartment.') - exadata_name: str = Field(..., alias='exadataName', description='Gets the exadata_name of this ExadataConfigurationSummary.\nThe Exadata system name. If the Exadata systems managed by Enterprise Manager, the name is unique amongst the Exadata systems managed by the same Enterprise Manager.') - exadata_display_name: str = Field(..., alias='exadataDisplayName', description='Gets the exadata_display_name of this ExadataConfigurationSummary.\nThe user-friendly name for the Exadata system. The name does not have to be unique.') - exadata_type: Literal['DBMACHINE', 'EXACS', 'EXACC', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataType', description='Gets the exadata_type of this ExadataConfigurationSummary.\nOperations Insights internal representation of the the Exadata system type.\n\nAllowed values for this property are: "DBMACHINE", "EXACS", "EXACC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - exadata_rack_type: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'FLEX', 'BASE', 'ELASTIC', 'ELASTIC_BASE', 'ELASTIC_LARGE', 'ELASTIC_EXTRA_LARGE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataRackType', description='Gets the exadata_rack_type of this ExadataConfigurationSummary.\nExadata rack type.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", "FLEX", "BASE", "ELASTIC", "ELASTIC_BASE", "ELASTIC_LARGE", "ELASTIC_EXTRA_LARGE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this ExadataConfigurationSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this ExadataConfigurationSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - vmcluster_details: list[VmClusterSummary] | None = Field(None, alias='vmclusterDetails', description='Gets the vmcluster_details of this ExadataConfigurationSummary.\nArray of objects containing VM cluster information.') - exadata_shape: str = Field(..., alias='exadataShape', description='Gets the exadata_shape of this ExadataConfigurationSummary.\nThe shape of the Exadata Infrastructure.') - chargeback_plan_details: ChargebackPlanDetails = Field(..., alias='chargebackPlanDetails', description='Gets the chargeback_plan_details of this ExadataConfigurationSummary.') - enterprise_manager_identifier: str = Field(..., alias='enterpriseManagerIdentifier', description='Enterprise Manager Unique Identifier') - enterprise_manager_bridge_id: str = Field(..., alias='enterpriseManagerBridgeId', description='OPSI Enterprise Manager Bridge OCID') - enterprise_manager_entity_identifier: str = Field(..., alias='enterpriseManagerEntityIdentifier', description='Enterprise Manager Entity Unique Identifier') - enterprise_manager_console_url: str = Field(..., alias='enterpriseManagerConsoleUrl', description='Enterprise Manager Console Url') - enterprise_manager_oms_ver: str = Field(..., alias='enterpriseManagerOmsVer', description='Enterprise Manager OMS Version') - enterprise_manager_entity_type: str = Field(..., alias='enterpriseManagerEntityType', description='Enterprise Manager Entity Type') - parent_id: str | None = Field(None, alias='parentId', description='The OCID of the database.') - region: str | None = Field(None, alias='region', description='The region the resource resides in.') - - -class ExadataDatabaseStatisticsSummary(OpsiBaseModel): - """Database details and statistics.""" - - exadata_resource_type: Literal['DATABASE', 'HOST', 'STORAGE_SERVER', 'DISKGROUP', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataResourceType', description='Gets the exadata_resource_type of this ExadataInsightResourceStatisticsAggregation.\nDefines the resource type for an exadata (example: DATABASE, STORAGE_SERVER, HOST, DISKGROUP)\n\nAllowed values for this property are: "DATABASE", "HOST", "STORAGE_SERVER", "DISKGROUP", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - resource_details: DatabaseDetails = Field(..., alias='resourceDetails', description='The resource_details field of ExadataDatabaseStatisticsSummary.') - current_statistics: ExadataInsightResourceStatistics = Field(..., alias='currentStatistics', description='The current_statistics field of ExadataDatabaseStatisticsSummary.') - - -class ExadataDetails(OpsiBaseModel): - """Partial information about the exadata which includes id, name and vmclusterNames.""" - - id: str = Field(..., alias='id', description='The OCID of exadata insight resource.') - name: str = Field(..., alias='name', description='Name of exadata insight resource.') - vmcluster_names: list[str] | None = Field(None, alias='vmclusterNames', description='Array of vm cluster names. Applicable for ExaCC and ExaCS.') - - -class ExadataDiskgroupStatisticsSummary(OpsiBaseModel): - """Diskgroup details and statistics.""" - - exadata_resource_type: Literal['DATABASE', 'HOST', 'STORAGE_SERVER', 'DISKGROUP', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataResourceType', description='Gets the exadata_resource_type of this ExadataInsightResourceStatisticsAggregation.\nDefines the resource type for an exadata (example: DATABASE, STORAGE_SERVER, HOST, DISKGROUP)\n\nAllowed values for this property are: "DATABASE", "HOST", "STORAGE_SERVER", "DISKGROUP", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - resource_details: DiskGroupDetails = Field(..., alias='resourceDetails', description='The resource_details field of ExadataDiskgroupStatisticsSummary.') - current_statistics: ExadataInsightResourceStatistics = Field(..., alias='currentStatistics', description='The current_statistics field of ExadataDiskgroupStatisticsSummary.') - - -class ExadataExaccConfigurationSummary(OpsiBaseModel): - """Configuration summary of a macs managed Exacc exadata machine.""" - - exadata_insight_id: str = Field(..., alias='exadataInsightId', description='Gets the exadata_insight_id of this ExadataConfigurationSummary. The OCID of the Exadata insight.') - entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this ExadataConfigurationSummary.\nSource of the exadata entity.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this ExadataConfigurationSummary. The OCID of the compartment.') - exadata_name: str = Field(..., alias='exadataName', description='Gets the exadata_name of this ExadataConfigurationSummary.\nThe Exadata system name. If the Exadata systems managed by Enterprise Manager, the name is unique amongst the Exadata systems managed by the same Enterprise Manager.') - exadata_display_name: str = Field(..., alias='exadataDisplayName', description='Gets the exadata_display_name of this ExadataConfigurationSummary.\nThe user-friendly name for the Exadata system. The name does not have to be unique.') - exadata_type: Literal['DBMACHINE', 'EXACS', 'EXACC', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataType', description='Gets the exadata_type of this ExadataConfigurationSummary.\nOperations Insights internal representation of the the Exadata system type.\n\nAllowed values for this property are: "DBMACHINE", "EXACS", "EXACC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - exadata_rack_type: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'FLEX', 'BASE', 'ELASTIC', 'ELASTIC_BASE', 'ELASTIC_LARGE', 'ELASTIC_EXTRA_LARGE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataRackType', description='Gets the exadata_rack_type of this ExadataConfigurationSummary.\nExadata rack type.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", "FLEX", "BASE", "ELASTIC", "ELASTIC_BASE", "ELASTIC_LARGE", "ELASTIC_EXTRA_LARGE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this ExadataConfigurationSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this ExadataConfigurationSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - vmcluster_details: list[VmClusterSummary] | None = Field(None, alias='vmclusterDetails', description='Gets the vmcluster_details of this ExadataConfigurationSummary.\nArray of objects containing VM cluster information.') - exadata_shape: str = Field(..., alias='exadataShape', description='Gets the exadata_shape of this ExadataConfigurationSummary.\nThe shape of the Exadata Infrastructure.') - chargeback_plan_details: ChargebackPlanDetails = Field(..., alias='chargebackPlanDetails', description='Gets the chargeback_plan_details of this ExadataConfigurationSummary.') - management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') - parent_id: str = Field(..., alias='parentId', description='The OCID of the database.') - - -class ExadataExacsConfigurationSummary(OpsiBaseModel): - """Configuration summary of a Exacs exadata machine.""" - - exadata_insight_id: str = Field(..., alias='exadataInsightId', description='Gets the exadata_insight_id of this ExadataConfigurationSummary. The OCID of the Exadata insight.') - entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this ExadataConfigurationSummary.\nSource of the exadata entity.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this ExadataConfigurationSummary. The OCID of the compartment.') - exadata_name: str = Field(..., alias='exadataName', description='Gets the exadata_name of this ExadataConfigurationSummary.\nThe Exadata system name. If the Exadata systems managed by Enterprise Manager, the name is unique amongst the Exadata systems managed by the same Enterprise Manager.') - exadata_display_name: str = Field(..., alias='exadataDisplayName', description='Gets the exadata_display_name of this ExadataConfigurationSummary.\nThe user-friendly name for the Exadata system. The name does not have to be unique.') - exadata_type: Literal['DBMACHINE', 'EXACS', 'EXACC', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataType', description='Gets the exadata_type of this ExadataConfigurationSummary.\nOperations Insights internal representation of the the Exadata system type.\n\nAllowed values for this property are: "DBMACHINE", "EXACS", "EXACC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - exadata_rack_type: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'FLEX', 'BASE', 'ELASTIC', 'ELASTIC_BASE', 'ELASTIC_LARGE', 'ELASTIC_EXTRA_LARGE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataRackType', description='Gets the exadata_rack_type of this ExadataConfigurationSummary.\nExadata rack type.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", "FLEX", "BASE", "ELASTIC", "ELASTIC_BASE", "ELASTIC_LARGE", "ELASTIC_EXTRA_LARGE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this ExadataConfigurationSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this ExadataConfigurationSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - vmcluster_details: list[VmClusterSummary] | None = Field(None, alias='vmclusterDetails', description='Gets the vmcluster_details of this ExadataConfigurationSummary.\nArray of objects containing VM cluster information.') - exadata_shape: str = Field(..., alias='exadataShape', description='Gets the exadata_shape of this ExadataConfigurationSummary.\nThe shape of the Exadata Infrastructure.') - chargeback_plan_details: ChargebackPlanDetails = Field(..., alias='chargebackPlanDetails', description='Gets the chargeback_plan_details of this ExadataConfigurationSummary.') - opsi_private_endpoint_id: str = Field(..., alias='opsiPrivateEndpointId', description='The OCID of the OPSI private endpoint.') - parent_id: str = Field(..., alias='parentId', description='The OCID of the database.') - - -class ExadataHostStatisticsSummary(OpsiBaseModel): - """Host details and statistics.""" - - exadata_resource_type: Literal['DATABASE', 'HOST', 'STORAGE_SERVER', 'DISKGROUP', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataResourceType', description='Gets the exadata_resource_type of this ExadataInsightResourceStatisticsAggregation.\nDefines the resource type for an exadata (example: DATABASE, STORAGE_SERVER, HOST, DISKGROUP)\n\nAllowed values for this property are: "DATABASE", "HOST", "STORAGE_SERVER", "DISKGROUP", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - resource_details: HostDetails = Field(..., alias='resourceDetails', description='The resource_details field of ExadataHostStatisticsSummary.') - current_statistics: ExadataInsightResourceStatistics = Field(..., alias='currentStatistics', description='The current_statistics field of ExadataHostStatisticsSummary.') - - -class ExadataInsight(OpsiBaseModel): - """Exadata insight resource.""" - - entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Source of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - id: str = Field(..., alias='id', description='Exadata insight identifier') - compartment_id: str = Field(..., alias='compartmentId', description='Compartment identifier of the Exadata insight resource') - exadata_name: str = Field(..., alias='exadataName', description='The Exadata system name. If the Exadata systems managed by Enterprise Manager, the name is unique amongst the Exadata systems managed by the same Enterprise Manager.') - exadata_display_name: str | None = Field(None, alias='exadataDisplayName', description='The user-friendly name for the Exadata system. The name does not have to be unique.') - exadata_type: Literal['DBMACHINE', 'EXACS', 'EXACC', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='exadataType', description='Operations Insights internal representation of the the Exadata system type.\n\nAllowed values for this property are: "DBMACHINE", "EXACS", "EXACC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - exadata_rack_type: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'FLEX', 'BASE', 'ELASTIC', 'ELASTIC_BASE', 'ELASTIC_LARGE', 'ELASTIC_EXTRA_LARGE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='exadataRackType', description='Exadata rack type.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", "FLEX", "BASE", "ELASTIC", "ELASTIC_BASE", "ELASTIC_LARGE", "ELASTIC_EXTRA_LARGE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - is_virtualized_exadata: bool | None = Field(None, alias='isVirtualizedExadata', description='true if virtualization is used in the Exadata system') - status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Indicates the status of an Exadata insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - chargeback_plan_details: ChargebackPlanDetails | None = Field(None, alias='chargebackPlanDetails', description='The chargeback_plan_details field of ExadataInsight.') - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - time_created: datetime = Field(..., alias='timeCreated', description='The time the the Exadata insight was first enabled. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='The time the Exadata insight was updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='The current state of the Exadata insight.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - status_details: str | None = Field(None, alias='statusDetails', description='A message describing the status of the Exadata Resource. For example, it can be used to provide actionable information about the policies needed to access the Exadata Resource.') - - -class ExadataInsightResourceCapacityTrendAggregation(OpsiBaseModel): - """Resource Capacity samples.""" - - end_timestamp: datetime = Field(..., alias='endTimestamp', description='The timestamp in which the current sampling period ends in RFC 3339 format.') - capacity: float = Field(..., alias='capacity', description='The maximum allocated amount of the resource metric type (CPU, STORAGE) for a set of databases.') - total_host_capacity: float | None = Field(None, alias='totalHostCapacity', description='The maximum host CPUs (cores x threads/core) on the underlying infrastructure. This only applies to CPU and does not not apply for Autonomous Databases.') - - -class ExadataInsightResourceCapacityTrendSummary(OpsiBaseModel): - """List of resource id, name, capacity time series data.""" - - id: str = Field(..., alias='id', description='The OCID of the database insight resource.') - name: str = Field(..., alias='name', description='The name of the resource.') - capacity_data: list[ExadataInsightResourceCapacityTrendAggregation] = Field(..., alias='capacityData', description='Time series data for capacity') - - -class ExadataInsightResourceForecastTrendSummary(OpsiBaseModel): - """List of resource id, name, capacity insight value, pattern, historical usage and projected data.""" - - id: str = Field(..., alias='id', description='The OCID of the database insight resource.') - name: str = Field(..., alias='name', description='The name of the resource.') - days_to_reach_capacity: int = Field(..., alias='daysToReachCapacity', description='Days to reach capacity for a storage server') - selected_forecast_algorithm: str | None = Field(None, alias='selectedForecastAlgorithm', description='Auto-ML algorithm leveraged for the forecast. Only applicable for Auto-ML forecast.') - pattern: Literal['LINEAR', 'MONTHLY_SEASONS', 'MONTHLY_AND_YEARLY_SEASONS', 'WEEKLY_SEASONS', 'WEEKLY_AND_MONTHLY_SEASONS', 'WEEKLY_MONTHLY_AND_YEARLY_SEASONS', 'WEEKLY_AND_YEARLY_SEASONS', 'YEARLY_SEASONS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='pattern', description='Time series patterns used in the forecasting.\n\nAllowed values for this property are: "LINEAR", "MONTHLY_SEASONS", "MONTHLY_AND_YEARLY_SEASONS", "WEEKLY_SEASONS", "WEEKLY_AND_MONTHLY_SEASONS", "WEEKLY_MONTHLY_AND_YEARLY_SEASONS", "WEEKLY_AND_YEARLY_SEASONS", "YEARLY_SEASONS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - historical_data: list[HistoricalDataItem] = Field(..., alias='historicalData', description='Time series data used for the forecast analysis.') - projected_data: list[ProjectedDataItem] = Field(..., alias='projectedData', description='Time series data result of the forecasting analysis.') - - -class ExadataInsightResourceInsightUtilizationItem(OpsiBaseModel): - """Object containing current utilization, projected utilization, id and daysToReach high and low utilization value.""" - - exadata_insight_id: str = Field(..., alias='exadataInsightId', description='The OCID of the Exadata insight.') - exadata_display_name: str | None = Field(None, alias='exadataDisplayName', description='The user-friendly name for the Exadata system. The name does not have to be unique.') - current_utilization: float = Field(..., alias='currentUtilization', description='Current utilization') - projected_utilization: float = Field(..., alias='projectedUtilization', description='Projected utilization') - days_to_reach_high_utilization: int = Field(..., alias='daysToReachHighUtilization', description='Days to reach projected high utilization') - days_to_reach_low_utilization: int = Field(..., alias='daysToReachLowUtilization', description='Days to reach projected low utilization') - - -class ExadataInsightResourceStatistics(OpsiBaseModel): - """Contains resource statistics with usage unit.""" - - usage: float = Field(..., alias='usage', description='Total amount used of the resource metric type (CPU, STORAGE).') - capacity: float = Field(..., alias='capacity', description='The maximum allocated amount of the resource metric type (CPU, STORAGE) for a set of databases.') - total_host_capacity: float | None = Field(None, alias='totalHostCapacity', description='The maximum host CPUs (cores x threads/core) on the underlying infrastructure. This only applies to CPU and does not not apply for Autonomous Databases.') - utilization_percent: float = Field(..., alias='utilizationPercent', description='Resource utilization in percentage') - usage_change_percent: float = Field(..., alias='usageChangePercent', description='Change in resource utilization in percentage') - instance_metrics: list[InstanceMetrics] | None = Field(None, alias='instanceMetrics', description='Array of instance metrics') - - -class ExadataInsightResourceStatisticsAggregation(OpsiBaseModel): - """Contains resource details and current statistics.""" - - exadata_resource_type: Literal['DATABASE', 'HOST', 'STORAGE_SERVER', 'DISKGROUP', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataResourceType', description='Defines the resource type for an exadata (example: DATABASE, STORAGE_SERVER, HOST, DISKGROUP)\n\nAllowed values for this property are: "DATABASE", "HOST", "STORAGE_SERVER", "DISKGROUP", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class ExadataInsightSummary(OpsiBaseModel): - """Summary of an Exadata insight resource.""" - - entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Source of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - id: str = Field(..., alias='id', description='The OCID of the Exadata insight resource.') - compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') - exadata_name: str = Field(..., alias='exadataName', description='The Exadata system name. If the Exadata systems managed by Enterprise Manager, the name is unique amongst the Exadata systems managed by the same Enterprise Manager.') - exadata_display_name: str | None = Field(None, alias='exadataDisplayName', description='The user-friendly name for the Exadata system. The name does not have to be unique.') - exadata_type: Literal['DBMACHINE', 'EXACS', 'EXACC', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='exadataType', description='Operations Insights internal representation of the the Exadata system type.\n\nAllowed values for this property are: "DBMACHINE", "EXACS", "EXACC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - exadata_rack_type: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'FLEX', 'BASE', 'ELASTIC', 'ELASTIC_BASE', 'ELASTIC_LARGE', 'ELASTIC_EXTRA_LARGE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='exadataRackType', description='Operations Insights internal representation of the the Exadata system rack type.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", "FLEX", "BASE", "ELASTIC", "ELASTIC_BASE", "ELASTIC_LARGE", "ELASTIC_EXTRA_LARGE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Indicates the status of an Exadata insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - chargeback_plan_details: ChargebackPlanDetails | None = Field(None, alias='chargebackPlanDetails', description='The chargeback_plan_details field of ExadataInsightSummary.') - time_created: datetime = Field(..., alias='timeCreated', description='The time the the Exadata insight was first enabled. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='The time the Exadata insight was updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='The current state of the Exadata insight.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - status_details: str | None = Field(None, alias='statusDetails', description='A message describing the status of the Exadata Resource. For example, it can be used to provide actionable information about the policies needed to access the Exadata Resource.') - - -class ExadataInsightSummaryCollection(OpsiBaseModel): - """Collection of Exadata insight summary objects.""" - - items: list[ExadataInsightSummary] = Field(..., alias='items', description='Array of Exadata insight summary objects.') - - -class ExadataInsights(OpsiBaseModel): - """Logical grouping used for Operations Insights Exadata related operations.""" - - exadata_insights: Any | None = Field(None, alias='exadataInsights', description='Exadata Insights Object.') - - -class ExadataInsightsDataObject(OpsiBaseModel): - """Exadata insights data object.""" - - identifier: str = Field(..., alias='identifier', description='Gets the identifier of this OpsiDataObject.\nUnique identifier of OPSI data object.') - data_object_type: Literal['DATABASE_INSIGHTS_DATA_OBJECT', 'HOST_INSIGHTS_DATA_OBJECT', 'EXADATA_INSIGHTS_DATA_OBJECT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dataObjectType', description='Gets the data_object_type of this OpsiDataObject.\nType of OPSI data object.\n\nAllowed values for this property are: "DATABASE_INSIGHTS_DATA_OBJECT", "HOST_INSIGHTS_DATA_OBJECT", "EXADATA_INSIGHTS_DATA_OBJECT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - display_name: str = Field(..., alias='displayName', description='Gets the display_name of this OpsiDataObject.\nUser-friendly name of OPSI data object.') - description: str | None = Field(None, alias='description', description='Gets the description of this OpsiDataObject.\nDescription of OPSI data object.') - name: str | None = Field(None, alias='name', description='Gets the name of this OpsiDataObject.\nName of the data object, which can be used in data object queries just like how view names are used in a query.') - group_names: list[str] | None = Field(None, alias='groupNames', description='Gets the group_names of this OpsiDataObject.\nNames of all the groups to which the data object belongs to.') - supported_query_time_period: str | None = Field(None, alias='supportedQueryTimePeriod', description='Gets the supported_query_time_period of this OpsiDataObject.\nTime period supported by the data object for quering data.\nTime period is in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D.\nExamples: P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months).') - columns_metadata: list[DataObjectColumnMetadata] = Field(..., alias='columnsMetadata', description='Gets the columns_metadata of this OpsiDataObject.\nMetadata of columns in a data object.') - supported_query_params: list[OpsiDataObjectSupportedQueryParam] | None = Field(None, alias='supportedQueryParams', description='Gets the supported_query_params of this OpsiDataObject.\nSupported query parameters by this OPSI data object that can be configured while a data object query involving this data object is executed.') - - -class ExadataInsightsDataObjectSummary(OpsiBaseModel): - """Summary of an exadata insights data object.""" - - identifier: str = Field(..., alias='identifier', description='Gets the identifier of this OpsiDataObjectSummary.\nUnique identifier of OPSI data object.') - data_object_type: Literal['DATABASE_INSIGHTS_DATA_OBJECT', 'HOST_INSIGHTS_DATA_OBJECT', 'EXADATA_INSIGHTS_DATA_OBJECT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dataObjectType', description='Gets the data_object_type of this OpsiDataObjectSummary.\nType of OPSI data object.\n\nAllowed values for this property are: "DATABASE_INSIGHTS_DATA_OBJECT", "HOST_INSIGHTS_DATA_OBJECT", "EXADATA_INSIGHTS_DATA_OBJECT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - display_name: str = Field(..., alias='displayName', description='Gets the display_name of this OpsiDataObjectSummary.\nUser-friendly name of OPSI data object.') - description: str | None = Field(None, alias='description', description='Gets the description of this OpsiDataObjectSummary.\nDescription of OPSI data object.') - name: str | None = Field(None, alias='name', description='Gets the name of this OpsiDataObjectSummary.\nName of the data object, which can be used in data object queries just like how view names are used in a query.') - group_names: list[str] | None = Field(None, alias='groupNames', description='Gets the group_names of this OpsiDataObjectSummary.\nNames of all the groups to which the data object belongs to.') - - -class ExadataMemberCollection(OpsiBaseModel): - """Partial definition of the exadata insight resource.""" - - exadata_insight_id: str = Field(..., alias='exadataInsightId', description='The OCID of the Exadata insight.') - exadata_name: str = Field(..., alias='exadataName', description='The Exadata system name. If the Exadata systems managed by Enterprise Manager, the name is unique amongst the Exadata systems managed by the same Enterprise Manager.') - exadata_display_name: str = Field(..., alias='exadataDisplayName', description='The user-friendly name for the Exadata system. The name does not have to be unique.') - exadata_type: Literal['DBMACHINE', 'EXACS', 'EXACC', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataType', description='Operations Insights internal representation of the the Exadata system type.\n\nAllowed values for this property are: "DBMACHINE", "EXACS", "EXACC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - exadata_rack_type: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'FLEX', 'BASE', 'ELASTIC', 'ELASTIC_BASE', 'ELASTIC_LARGE', 'ELASTIC_EXTRA_LARGE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataRackType', description='Exadata rack type.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", "FLEX", "BASE", "ELASTIC", "ELASTIC_BASE", "ELASTIC_LARGE", "ELASTIC_EXTRA_LARGE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - items: list[ExadataMemberSummary] = Field(..., alias='items', description='Collection of Exadata members') - - -class ExadataMemberSummary(OpsiBaseModel): - """Lists name, display name and type of exadata member.""" - - name: str = Field(..., alias='name', description='Name of exadata member target') - display_name: str = Field(..., alias='displayName', description='Display Name of exadata member target') - entity_type: Literal['DATABASE', 'ILOM_SERVER', 'PDU', 'STORAGE_SERVER', 'CLUSTER_ASM', 'INFINIBAND_SWITCH', 'ETHERNET_SWITCH', 'HOST', 'VM_CLUSTER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entityType', description='Entity type of exadata member target\n\nAllowed values for this property are: "DATABASE", "ILOM_SERVER", "PDU", "STORAGE_SERVER", "CLUSTER_ASM", "INFINIBAND_SWITCH", "ETHERNET_SWITCH", "HOST", "VM_CLUSTER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class ExadataStorageServerStatisticsSummary(OpsiBaseModel): - """Storage server details and statistics.""" - - exadata_resource_type: Literal['DATABASE', 'HOST', 'STORAGE_SERVER', 'DISKGROUP', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataResourceType', description='Gets the exadata_resource_type of this ExadataInsightResourceStatisticsAggregation.\nDefines the resource type for an exadata (example: DATABASE, STORAGE_SERVER, HOST, DISKGROUP)\n\nAllowed values for this property are: "DATABASE", "HOST", "STORAGE_SERVER", "DISKGROUP", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - resource_details: StorageServerDetails = Field(..., alias='resourceDetails', description='The resource_details field of ExadataStorageServerStatisticsSummary.') - current_statistics: ExadataInsightResourceStatistics = Field(..., alias='currentStatistics', description='The current_statistics field of ExadataStorageServerStatisticsSummary.') - - -class ExternalMysqlDatabaseConfigurationSummary(OpsiBaseModel): - """Configuration Summary of a External MySQL database.""" - - database_insight_id: str = Field(..., alias='databaseInsightId', description='Gets the database_insight_id of this DatabaseConfigurationSummary. The OCID of the database insight resource.') - entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseConfigurationSummary.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this DatabaseConfigurationSummary. The OCID of the compartment.') - database_name: str = Field(..., alias='databaseName', description='Gets the database_name of this DatabaseConfigurationSummary.\nThe database name. The database name is unique within the tenancy.') - database_display_name: str = Field(..., alias='databaseDisplayName', description='Gets the database_display_name of this DatabaseConfigurationSummary.\nThe user-friendly name for the database. The name does not have to be unique.') - database_type: str = Field(..., alias='databaseType', description='Gets the database_type of this DatabaseConfigurationSummary.\nOps Insights internal representation of the database type.') - database_version: str = Field(..., alias='databaseVersion', description='Gets the database_version of this DatabaseConfigurationSummary.\nThe version of the database.') - is_advanced_features_enabled: bool = Field(..., alias='isAdvancedFeaturesEnabled', description='Gets the is_advanced_features_enabled of this DatabaseConfigurationSummary.\nFlag is to identify if advanced features for autonomous database is enabled or not') - cdb_name: str = Field(..., alias='cdbName', description='Gets the cdb_name of this DatabaseConfigurationSummary.\nName of the CDB.Only applies to PDB.') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this DatabaseConfigurationSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this DatabaseConfigurationSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseConfigurationSummary.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) - database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') - agent_id: str = Field(..., alias='agentId', description='The OCID of the Management Agent.') - database_connector_id: str = Field(..., alias='databaseConnectorId', description='The DBM owned database connector OCID mapping to the database credentials and connection details.') - - -class ExternalMysqlDatabaseInsight(OpsiBaseModel): - """MySQL support within the OCI Ops Insights service has been deprecated as of January 29, 2026. Database insight resource.""" - - entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseInsight.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - id: str = Field(..., alias='id', description='Gets the id of this DatabaseInsight.\nDatabase insight identifier') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this DatabaseInsight.\nCompartment identifier of the database') - status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Gets the status of this DatabaseInsight.\nIndicates the status of a database insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_type: str | None = Field(None, alias='databaseType', description='Gets the database_type of this DatabaseInsight.\nOps Insights internal representation of the database type.') - database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this DatabaseInsight.\nThe version of the database.') - processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseInsight.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this DatabaseInsight.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this DatabaseInsight.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this DatabaseInsight.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - time_created: datetime = Field(..., alias='timeCreated', description='Gets the time_created of this DatabaseInsight.\nThe time the the database insight was first enabled. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DatabaseInsight.\nThe time the database insight was updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Gets the lifecycle_state of this DatabaseInsight.\nThe current state of the database.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DatabaseInsight.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - database_connection_status_details: str | None = Field(None, alias='databaseConnectionStatusDetails', description='Gets the database_connection_status_details of this DatabaseInsight.\nA message describing the status of the database connection of this resource. For example, it can be used to provide actionable information about the permission and content validity of the database connection.') - database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') - database_name: str = Field(..., alias='databaseName', description='Name of database') - database_display_name: str | None = Field(None, alias='databaseDisplayName', description='Display name of database') - - -class ExternalMysqlDatabaseInsightSummary(OpsiBaseModel): - """MySQL support within the OCI Ops Insights service has been deprecated as of January 29, 2026. Summary of a database insight resource.""" - - id: str = Field(..., alias='id', description='Gets the id of this DatabaseInsightSummary. The OCID of the database insight resource.') - database_id: str = Field(..., alias='databaseId', description='Gets the database_id of this DatabaseInsightSummary. The OCID of the database.') - compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this DatabaseInsightSummary. The OCID of the compartment.') - database_name: str | None = Field(None, alias='databaseName', description='Gets the database_name of this DatabaseInsightSummary.\nThe database name. The database name is unique within the tenancy.') - database_display_name: str | None = Field(None, alias='databaseDisplayName', description='Gets the database_display_name of this DatabaseInsightSummary.\nThe user-friendly name for the database. The name does not have to be unique.') - database_type: str | None = Field(None, alias='databaseType', description='Gets the database_type of this DatabaseInsightSummary.\nOps Insights internal representation of the database type.') - database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this DatabaseInsightSummary.\nThe version of the database.') - database_host_names: list[str] | None = Field(None, alias='databaseHostNames', description='Gets the database_host_names of this DatabaseInsightSummary.\nThe hostnames for the database.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this DatabaseInsightSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this DatabaseInsightSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this DatabaseInsightSummary.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseInsightSummary.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseInsightSummary.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) - status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='status', description='Gets the status of this DatabaseInsightSummary.\nIndicates the status of a database insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DatabaseInsightSummary.\nThe time the the database insight was first enabled. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DatabaseInsightSummary.\nThe time the database insight was updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DatabaseInsightSummary.\nThe current state of the database.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DatabaseInsightSummary.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - database_connection_status_details: str | None = Field(None, alias='databaseConnectionStatusDetails', description='Gets the database_connection_status_details of this DatabaseInsightSummary.\nA message describing the status of the database connection of this resource. For example, it can be used to provide actionable information about the permission and content validity of the database connection.') - agent_id: str = Field(..., alias='agentId', description='The OCID of the Management Agent.') - database_resource_type: str | None = Field(None, alias='databaseResourceType', description='OCI database resource type') - database_connector_id: str | None = Field(None, alias='databaseConnectorId', description='The DBM owned database connector OCID mapping to the database credentials and connection details.') - - -class HistoricalDataItem(OpsiBaseModel): - """The historical timestamp and the corresponding resource value.""" - - end_timestamp: datetime = Field(..., alias='endTimestamp', description='The timestamp in which the current sampling period ends in RFC 3339 format.') - usage: float = Field(..., alias='usage', description='Total amount used of the resource metric type (CPU, STORAGE).') - - -class HostAllocation(OpsiBaseModel): - """Resource Allocation metric for the host.""" - - metric_name: Literal['DB_EXTERNAL_PROPERTIES', 'DB_EXTERNAL_INSTANCE', 'DB_OS_CONFIG_INSTANCE', 'DB_PARAMETERS', 'DB_CONNECTION_STATUS', 'HOST_RESOURCE_ALLOCATION', 'ASM_ENTITY', 'EXADATA_CELL_CONFIG'] = Field(..., alias='metricName', description='Gets the metric_name of this DatabaseConfigurationMetricGroup.\nName of the metric group.\n\nAllowed values for this property are: "DB_EXTERNAL_PROPERTIES", "DB_EXTERNAL_INSTANCE", "DB_OS_CONFIG_INSTANCE", "DB_PARAMETERS", "DB_CONNECTION_STATUS", "HOST_RESOURCE_ALLOCATION", "ASM_ENTITY", "EXADATA_CELL_CONFIG"') - time_collected: datetime | None = Field(None, alias='timeCollected', description='Gets the time_collected of this DatabaseConfigurationMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') - resource_name: str | None = Field(None, alias='resourceName', description='Name of the host resource') - resource_value: int | None = Field(None, alias='resourceValue', description='Value of the host resource') - - -class HostConfigurationCollection(OpsiBaseModel): - """Collection of host insight configuration summary objects.""" - - items: list[HostConfigurationSummary] = Field(..., alias='items', description='Array of host insight configurations summary objects.') - - -class HostConfigurationMetricGroup(OpsiBaseModel): - """Base Metric Group for Host configuration metrics.""" - - metric_name: Literal['HOST_PRODUCT', 'HOST_RESOURCE_ALLOCATION', 'HOST_MEMORY_CONFIGURATION', 'HOST_HARDWARE_CONFIGURATION', 'HOST_CPU_HARDWARE_CONFIGURATION', 'HOST_NETWORK_CONFIGURATION', 'HOST_ENTITES', 'HOST_FILESYSTEM_CONFIGURATION', 'HOST_GPU_CONFIGURATION', 'HOST_CONTAINERS'] = Field(..., alias='metricName', description='Name of the metric group\n\nAllowed values for this property are: "HOST_PRODUCT", "HOST_RESOURCE_ALLOCATION", "HOST_MEMORY_CONFIGURATION", "HOST_HARDWARE_CONFIGURATION", "HOST_CPU_HARDWARE_CONFIGURATION", "HOST_NETWORK_CONFIGURATION", "HOST_ENTITES", "HOST_FILESYSTEM_CONFIGURATION", "HOST_GPU_CONFIGURATION", "HOST_CONTAINERS"') - time_collected: datetime = Field(..., alias='timeCollected', description='Collection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') - - -class HostConfigurationSummary(OpsiBaseModel): - """Summary of a host configuration for a resource.""" - - host_insight_id: str = Field(..., alias='hostInsightId', description='The OCID of the host insight resource.') - entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Source of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') - host_name: str | None = Field(None, alias='hostName', description='The host name. The host name is unique amongst the hosts managed by the same management agent.') - platform_type: Literal['LINUX', 'SOLARIS', 'SUNOS', 'ZLINUX', 'WINDOWS', 'AIX', 'HP_UX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='platformType', description='Platform type.\nSupported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS].\nSupported platformType(s) for MACS-managed cloud host insight: [LINUX].\nSupported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX].\n\nAllowed values for this property are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - platform_version: str | None = Field(None, alias='platformVersion', description='Platform version.') - platform_vendor: str | None = Field(None, alias='platformVendor', description='Platform vendor.') - total_cpus: int = Field(..., alias='totalCpus', description='Total CPU on this host.') - total_memory_in_gbs: float = Field(..., alias='totalMemoryInGBs', description='Total amount of usable physical memory in gibabytes') - cpu_architecture: str | None = Field(None, alias='cpuArchitecture', description='CPU architechure') - cpu_cache_in_mbs: float = Field(..., alias='cpuCacheInMBs', description='Size of cache memory in megabytes.') - cpu_vendor: str | None = Field(None, alias='cpuVendor', description='Name of the CPU vendor.') - cpu_frequency_in_mhz: float = Field(..., alias='cpuFrequencyInMhz', description='Clock frequency of the processor in megahertz.') - cpu_implementation: str | None = Field(None, alias='cpuImplementation', description='Model name of processor.') - cores_per_socket: int = Field(..., alias='coresPerSocket', description='Number of cores per socket.') - total_sockets: int = Field(..., alias='totalSockets', description='Number of total sockets.') - threads_per_socket: int = Field(..., alias='threadsPerSocket', description='Number of threads per socket.') - is_hyper_threading_enabled: bool = Field(..., alias='isHyperThreadingEnabled', description='Indicates if hyper-threading is enabled or not') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - - -class HostContainers(OpsiBaseModel): - """Host Containers details.""" - - metric_name: Literal['HOST_PRODUCT', 'HOST_RESOURCE_ALLOCATION', 'HOST_MEMORY_CONFIGURATION', 'HOST_HARDWARE_CONFIGURATION', 'HOST_CPU_HARDWARE_CONFIGURATION', 'HOST_NETWORK_CONFIGURATION', 'HOST_ENTITES', 'HOST_FILESYSTEM_CONFIGURATION', 'HOST_GPU_CONFIGURATION', 'HOST_CONTAINERS'] = Field(..., alias='metricName', description='Gets the metric_name of this HostConfigurationMetricGroup.\nName of the metric group\n\nAllowed values for this property are: "HOST_PRODUCT", "HOST_RESOURCE_ALLOCATION", "HOST_MEMORY_CONFIGURATION", "HOST_HARDWARE_CONFIGURATION", "HOST_CPU_HARDWARE_CONFIGURATION", "HOST_NETWORK_CONFIGURATION", "HOST_ENTITES", "HOST_FILESYSTEM_CONFIGURATION", "HOST_GPU_CONFIGURATION", "HOST_CONTAINERS"') - time_collected: datetime = Field(..., alias='timeCollected', description='Gets the time_collected of this HostConfigurationMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') - container_id: str | None = Field(None, alias='containerId', description='Container Id (full)') - container_name: str | None = Field(None, alias='containerName', description='Container Name') - container_image: str | None = Field(None, alias='containerImage', description='Container Image') - container_image_tag: str | None = Field(None, alias='containerImageTag', description='Container Image Tag (version)') - container_image_digest: str | None = Field(None, alias='containerImageDigest', description='Container Image Digest') - container_ports: str | None = Field(None, alias='containerPorts', description='Container open ports') - - -class HostCpuHardwareConfiguration(OpsiBaseModel): - """CPU Hardware Configuration metric for the host.""" - - metric_name: Literal['HOST_PRODUCT', 'HOST_RESOURCE_ALLOCATION', 'HOST_MEMORY_CONFIGURATION', 'HOST_HARDWARE_CONFIGURATION', 'HOST_CPU_HARDWARE_CONFIGURATION', 'HOST_NETWORK_CONFIGURATION', 'HOST_ENTITES', 'HOST_FILESYSTEM_CONFIGURATION', 'HOST_GPU_CONFIGURATION', 'HOST_CONTAINERS'] = Field(..., alias='metricName', description='Gets the metric_name of this HostConfigurationMetricGroup.\nName of the metric group\n\nAllowed values for this property are: "HOST_PRODUCT", "HOST_RESOURCE_ALLOCATION", "HOST_MEMORY_CONFIGURATION", "HOST_HARDWARE_CONFIGURATION", "HOST_CPU_HARDWARE_CONFIGURATION", "HOST_NETWORK_CONFIGURATION", "HOST_ENTITES", "HOST_FILESYSTEM_CONFIGURATION", "HOST_GPU_CONFIGURATION", "HOST_CONTAINERS"') - time_collected: datetime = Field(..., alias='timeCollected', description='Gets the time_collected of this HostConfigurationMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') - total_sockets: int | None = Field(None, alias='totalSockets', description='Total number of CPU Sockets') - vendor_name: str | None = Field(None, alias='vendorName', description='Name of the CPU vendor') - frequency_in_mhz: float | None = Field(None, alias='frequencyInMhz', description='Clock frequency of the processor in megahertz') - cache_in_mb: float | None = Field(None, alias='cacheInMB', description='Size of cache memory in megabytes') - cpu_implementation: str | None = Field(None, alias='cpuImplementation', description='Model name of processor') - model: str | None = Field(None, alias='model', description='CPU model') - cpu_family: str | None = Field(None, alias='cpuFamily', description='Type of processor in the system') - cores_per_socket: int | None = Field(None, alias='coresPerSocket', description='Number of cores per socket') - threads_per_socket: int | None = Field(None, alias='threadsPerSocket', description='Number of threads per socket') - hyper_threading_enabled: str | None = Field(None, alias='hyperThreadingEnabled', description='Indicates if hyper-threading is enabled or not') - - -class HostCpuRecommendations(OpsiBaseModel): - """Contains CPU recommendation.""" - - metric_recommendation_name: Literal['HOST_CPU_RECOMMENDATIONS', 'HOST_MEMORY_RECOMMENDATIONS', 'HOST_NETWORK_RECOMMENDATIONS', 'HOST_STORAGE_RECOMMENDATIONS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='metricRecommendationName', description='Gets the metric_recommendation_name of this HostInsightHostRecommendations.\nName of recommendations depending of resource metric received.\n\nAllowed values for this property are: "HOST_CPU_RECOMMENDATIONS", "HOST_MEMORY_RECOMMENDATIONS", "HOST_NETWORK_RECOMMENDATIONS", "HOST_STORAGE_RECOMMENDATIONS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - burstable: Literal['BASELINE_1_8', 'BASELINE_1_2', 'NO_RECOMMENDATION', 'DISABLE_BURSTABLE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='burstable', description='Show if OPSI recommends to convert an instance to a burstable instance and show recommended cpu baseline if positive recommendation.\n\nAllowed values for this property are: "BASELINE_1_8", "BASELINE_1_2", "NO_RECOMMENDATION", "DISABLE_BURSTABLE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - shape: str | None = Field(None, alias='shape', description='Show if OPSI recommends to change the shape of an instance and show recommended shape based on CPU utilization.') - unused_instance: Literal['IN_USE', 'NOT_IN_USE', 'IS_NOT_DETERMINED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='unusedInstance', description='Identify unused instances based on cpu, memory and network metrics.\n\nAllowed values for this property are: "IN_USE", "NOT_IN_USE", "IS_NOT_DETERMINED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - is_abandoned_instance: bool | None = Field(None, alias='isAbandonedInstance', description='Identify if an instance is abandoned.') - - -class HostCpuStatistics(OpsiBaseModel): - """Contains CPU statistics.""" - - usage: float = Field(..., alias='usage', description='Gets the usage of this HostResourceStatistics.\nTotal amount used of the resource metric type (CPU, STORAGE).') - capacity: float = Field(..., alias='capacity', description='Gets the capacity of this HostResourceStatistics.\nThe maximum allocated amount of the resource metric type (CPU, STORAGE) for a set of databases.') - utilization_percent: float = Field(..., alias='utilizationPercent', description='Gets the utilization_percent of this HostResourceStatistics.\nResource utilization in percentage.') - usage_change_percent: float = Field(..., alias='usageChangePercent', description='Gets the usage_change_percent of this HostResourceStatistics.\nChange in resource utilization in percentage') - resource_name: Literal['HOST_CPU_STATISTICS', 'HOST_MEMORY_STATISTICS', 'HOST_STORAGE_STATISTICS', 'HOST_NETWORK_STATISTICS', 'HOST_IO_STATISTICS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceName', description='Gets the resource_name of this HostResourceStatistics.\nName of resource for host\n\nAllowed values for this property are: "HOST_CPU_STATISTICS", "HOST_MEMORY_STATISTICS", "HOST_STORAGE_STATISTICS", "HOST_NETWORK_STATISTICS", "HOST_IO_STATISTICS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - cpu_baseline: float | None = Field(None, alias='cpuBaseline', description='The baseline utilization is a fraction of each CPU core expressed in percentages, either 12.5% or 50%. The baseline provides the minimum CPUs that can be used constantly.') - load: SummaryStatistics | None = Field(None, alias='load', description='The load field of HostCpuStatistics.') - - -class HostCpuUsage(OpsiBaseModel): - """CPU Usage metric for the host.""" - - metric_name: Literal['HOST_CPU_USAGE', 'HOST_MEMORY_USAGE', 'HOST_NETWORK_ACTIVITY_SUMMARY', 'HOST_TOP_PROCESSES', 'HOST_FILESYSTEM_USAGE', 'HOST_GPU_USAGE', 'HOST_GPU_PROCESSES', 'HOST_IO_USAGE'] = Field(..., alias='metricName', description='Gets the metric_name of this HostPerformanceMetricGroup.\nName of the metric group\n\nAllowed values for this property are: "HOST_CPU_USAGE", "HOST_MEMORY_USAGE", "HOST_NETWORK_ACTIVITY_SUMMARY", "HOST_TOP_PROCESSES", "HOST_FILESYSTEM_USAGE", "HOST_GPU_USAGE", "HOST_GPU_PROCESSES", "HOST_IO_USAGE"') - time_collected: datetime = Field(..., alias='timeCollected', description='Gets the time_collected of this HostPerformanceMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') - cpu_user_mode_in_percent: float | None = Field(None, alias='cpuUserModeInPercent', description='Percentage of CPU time spent in user mode') - cpu_system_mode_in_percent: float | None = Field(None, alias='cpuSystemModeInPercent', description='Percentage of CPU time spent in system mode') - cpu_usage_in_sec: float | None = Field(None, alias='cpuUsageInSec', description='Amount of CPU Time spent in seconds') - cpu_utilization_in_percent: float | None = Field(None, alias='cpuUtilizationInPercent', description='Amount of CPU Time spent in percentage') - cpu_stolen_in_percent: float | None = Field(None, alias='cpuStolenInPercent', description='Amount of CPU time stolen in percentage') - cpu_idle_in_percent: float | None = Field(None, alias='cpuIdleInPercent', description='Amount of CPU idle time in percentage') - cpu_load1min: float | None = Field(None, alias='cpuLoad1min', description='Load average in the last 1 minute') - cpu_load5min: float | None = Field(None, alias='cpuLoad5min', description='Load average in the last 5 minutes') - cpu_load15min: float | None = Field(None, alias='cpuLoad15min', description='Load average in the last 15 minutes') - - -class HostDetails(OpsiBaseModel): - """Partial information about a host which includes id, name, type.""" - - id: str = Field(..., alias='id', description='The OCID of the host.') - compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') - host_name: str | None = Field(None, alias='hostName', description='The host name. The host name is unique amongst the hosts managed by the same management agent.') - host_display_name: str | None = Field(None, alias='hostDisplayName', description='The user-friendly name for the host. The name does not have to be unique.') - platform_type: Literal['LINUX', 'SOLARIS', 'SUNOS', 'ZLINUX', 'WINDOWS', 'AIX', 'HP_UX', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='platformType', description='Platform type.\nSupported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS].\nSupported platformType(s) for MACS-managed cloud host insight: [LINUX].\nSupported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX].\n\nAllowed values for this property are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - agent_identifier: str = Field(..., alias='agentIdentifier', description='The identifier of the agent.') - - -class HostEntities(OpsiBaseModel): - """Database entities running on the host.""" - - metric_name: Literal['HOST_PRODUCT', 'HOST_RESOURCE_ALLOCATION', 'HOST_MEMORY_CONFIGURATION', 'HOST_HARDWARE_CONFIGURATION', 'HOST_CPU_HARDWARE_CONFIGURATION', 'HOST_NETWORK_CONFIGURATION', 'HOST_ENTITES', 'HOST_FILESYSTEM_CONFIGURATION', 'HOST_GPU_CONFIGURATION', 'HOST_CONTAINERS'] = Field(..., alias='metricName', description='Gets the metric_name of this HostConfigurationMetricGroup.\nName of the metric group\n\nAllowed values for this property are: "HOST_PRODUCT", "HOST_RESOURCE_ALLOCATION", "HOST_MEMORY_CONFIGURATION", "HOST_HARDWARE_CONFIGURATION", "HOST_CPU_HARDWARE_CONFIGURATION", "HOST_NETWORK_CONFIGURATION", "HOST_ENTITES", "HOST_FILESYSTEM_CONFIGURATION", "HOST_GPU_CONFIGURATION", "HOST_CONTAINERS"') - time_collected: datetime = Field(..., alias='timeCollected', description='Gets the time_collected of this HostConfigurationMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') - entity_name: str = Field(..., alias='entityName', description='Name of the database entity') - entity_type: str = Field(..., alias='entityType', description='Type of the database entity') - - -class HostFilesystemConfiguration(OpsiBaseModel): - """Filesystem Configuration metric for the host.""" - - metric_name: Literal['HOST_PRODUCT', 'HOST_RESOURCE_ALLOCATION', 'HOST_MEMORY_CONFIGURATION', 'HOST_HARDWARE_CONFIGURATION', 'HOST_CPU_HARDWARE_CONFIGURATION', 'HOST_NETWORK_CONFIGURATION', 'HOST_ENTITES', 'HOST_FILESYSTEM_CONFIGURATION', 'HOST_GPU_CONFIGURATION', 'HOST_CONTAINERS'] = Field(..., alias='metricName', description='Gets the metric_name of this HostConfigurationMetricGroup.\nName of the metric group\n\nAllowed values for this property are: "HOST_PRODUCT", "HOST_RESOURCE_ALLOCATION", "HOST_MEMORY_CONFIGURATION", "HOST_HARDWARE_CONFIGURATION", "HOST_CPU_HARDWARE_CONFIGURATION", "HOST_NETWORK_CONFIGURATION", "HOST_ENTITES", "HOST_FILESYSTEM_CONFIGURATION", "HOST_GPU_CONFIGURATION", "HOST_CONTAINERS"') - time_collected: datetime = Field(..., alias='timeCollected', description='Gets the time_collected of this HostConfigurationMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') - file_system_name: str = Field(..., alias='fileSystemName', description='Name of filesystem') - mount_point: str = Field(..., alias='mountPoint', description='Mount points are specialized NTFS filesystem objects') - file_system_size_in_gb: float = Field(..., alias='fileSystemSizeInGB', description='Size of filesystem') - - -class HostFilesystemUsage(OpsiBaseModel): - """Filesystem Usage metric for the host.""" - - metric_name: Literal['HOST_CPU_USAGE', 'HOST_MEMORY_USAGE', 'HOST_NETWORK_ACTIVITY_SUMMARY', 'HOST_TOP_PROCESSES', 'HOST_FILESYSTEM_USAGE', 'HOST_GPU_USAGE', 'HOST_GPU_PROCESSES', 'HOST_IO_USAGE'] = Field(..., alias='metricName', description='Gets the metric_name of this HostPerformanceMetricGroup.\nName of the metric group\n\nAllowed values for this property are: "HOST_CPU_USAGE", "HOST_MEMORY_USAGE", "HOST_NETWORK_ACTIVITY_SUMMARY", "HOST_TOP_PROCESSES", "HOST_FILESYSTEM_USAGE", "HOST_GPU_USAGE", "HOST_GPU_PROCESSES", "HOST_IO_USAGE"') - time_collected: datetime = Field(..., alias='timeCollected', description='Gets the time_collected of this HostPerformanceMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') - mount_point: str | None = Field(None, alias='mountPoint', description='Mount points are specialized NTFS filesystem objects') - file_system_usage_in_gb: float | None = Field(None, alias='fileSystemUsageInGB', description='The file_system_usage_in_gb field of HostFilesystemUsage.') - file_system_avail_in_percent: float | None = Field(None, alias='fileSystemAvailInPercent', description='The file_system_avail_in_percent field of HostFilesystemUsage.') - file_system_avail_in_gbs: float | None = Field(None, alias='fileSystemAvailInGBs', description='The file_system_avail_in_gbs field of HostFilesystemUsage.') - - -class HostGpuConfiguration(OpsiBaseModel): - """GPU configuration metrics.""" - - metric_name: Literal['HOST_PRODUCT', 'HOST_RESOURCE_ALLOCATION', 'HOST_MEMORY_CONFIGURATION', 'HOST_HARDWARE_CONFIGURATION', 'HOST_CPU_HARDWARE_CONFIGURATION', 'HOST_NETWORK_CONFIGURATION', 'HOST_ENTITES', 'HOST_FILESYSTEM_CONFIGURATION', 'HOST_GPU_CONFIGURATION', 'HOST_CONTAINERS'] = Field(..., alias='metricName', description='Gets the metric_name of this HostConfigurationMetricGroup.\nName of the metric group\n\nAllowed values for this property are: "HOST_PRODUCT", "HOST_RESOURCE_ALLOCATION", "HOST_MEMORY_CONFIGURATION", "HOST_HARDWARE_CONFIGURATION", "HOST_CPU_HARDWARE_CONFIGURATION", "HOST_NETWORK_CONFIGURATION", "HOST_ENTITES", "HOST_FILESYSTEM_CONFIGURATION", "HOST_GPU_CONFIGURATION", "HOST_CONTAINERS"') - time_collected: datetime = Field(..., alias='timeCollected', description='Gets the time_collected of this HostConfigurationMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') - gpu_id: int = Field(..., alias='gpuId', description='GPU Identifier') - product_name: str = Field(..., alias='productName', description='GPU Product Name') - vendor: str = Field(..., alias='vendor', description='GPU Vendor') - bus_id: str = Field(..., alias='busId', description='Bus Identifier') - bus_width: int = Field(..., alias='busWidth', description='Bus Width') - gpu_capabilities: str | None = Field(None, alias='gpuCapabilities', description='GPU Capabilities') - total_power: float = Field(..., alias='totalPower', description='Power Capacity') - total_memory: float = Field(..., alias='totalMemory', description='Total Memory Allocated to GPU') - total_video_clock_speed: float = Field(..., alias='totalVideoClockSpeed', description='Max Video Clock Speed') - total_sm_clock_speed: float = Field(..., alias='totalSmClockSpeed', description='Max SM (Streaming Multiprocessor) Clock Speed') - total_graphics_clock_speed: float = Field(..., alias='totalGraphicsClockSpeed', description='Max Graphics Clock Speed') - total_memory_clock_speed: float = Field(..., alias='totalMemoryClockSpeed', description='Max Memory Clock Speed') - cuda_version: str = Field(..., alias='cudaVersion', description='CUDA library version') - driver_version: str = Field(..., alias='driverVersion', description='GPU Driver version') - - -class HostGpuProcesses(OpsiBaseModel): - """GPU processes metrics, processes using GPUs.""" - - metric_name: Literal['HOST_CPU_USAGE', 'HOST_MEMORY_USAGE', 'HOST_NETWORK_ACTIVITY_SUMMARY', 'HOST_TOP_PROCESSES', 'HOST_FILESYSTEM_USAGE', 'HOST_GPU_USAGE', 'HOST_GPU_PROCESSES', 'HOST_IO_USAGE'] = Field(..., alias='metricName', description='Gets the metric_name of this HostPerformanceMetricGroup.\nName of the metric group\n\nAllowed values for this property are: "HOST_CPU_USAGE", "HOST_MEMORY_USAGE", "HOST_NETWORK_ACTIVITY_SUMMARY", "HOST_TOP_PROCESSES", "HOST_FILESYSTEM_USAGE", "HOST_GPU_USAGE", "HOST_GPU_PROCESSES", "HOST_IO_USAGE"') - time_collected: datetime = Field(..., alias='timeCollected', description='Gets the time_collected of this HostPerformanceMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') - gpu_id: int | None = Field(None, alias='gpuId', description='GPU Identifier') - pid: int | None = Field(None, alias='pid', description='Process Identifier') - process_name: str | None = Field(None, alias='processName', description='Process Name (process using GPU)') - elapsed_time: float | None = Field(None, alias='elapsedTime', description='Process elapsed time') - gpu_memory_usage: float | None = Field(None, alias='gpuMemoryUsage', description='Memory Used by Process in MBs') - - -class HostGpuUsage(OpsiBaseModel): - """GPU performance metrics.""" - - metric_name: Literal['HOST_CPU_USAGE', 'HOST_MEMORY_USAGE', 'HOST_NETWORK_ACTIVITY_SUMMARY', 'HOST_TOP_PROCESSES', 'HOST_FILESYSTEM_USAGE', 'HOST_GPU_USAGE', 'HOST_GPU_PROCESSES', 'HOST_IO_USAGE'] = Field(..., alias='metricName', description='Gets the metric_name of this HostPerformanceMetricGroup.\nName of the metric group\n\nAllowed values for this property are: "HOST_CPU_USAGE", "HOST_MEMORY_USAGE", "HOST_NETWORK_ACTIVITY_SUMMARY", "HOST_TOP_PROCESSES", "HOST_FILESYSTEM_USAGE", "HOST_GPU_USAGE", "HOST_GPU_PROCESSES", "HOST_IO_USAGE"') - time_collected: datetime = Field(..., alias='timeCollected', description='Gets the time_collected of this HostPerformanceMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') - gpu_id: int | None = Field(None, alias='gpuId', description='GPU Identifier') - utilization: float | None = Field(None, alias='utilization', description='GPU Utilization Percent') - memory_utilization: float | None = Field(None, alias='memoryUtilization', description='GPU Memory Utilization Percent') - power_draw: float | None = Field(None, alias='powerDraw', description='GPU Power Draw in Watts') - temperature: float | None = Field(None, alias='temperature', description='GPU Temperature in Celsius') - fan_utilization: float | None = Field(None, alias='fanUtilization', description='GPU Fan Utilization') - clock_speed_graphics: float | None = Field(None, alias='clockSpeedGraphics', description='GPU Graphics (Shader) Clock Speed') - clock_speed_sm: float | None = Field(None, alias='clockSpeedSm', description='GPU SM (Streaming Multiprocessor) Clock Speed') - clock_speed_video: float | None = Field(None, alias='clockSpeedVideo', description='GPU Video Clock Speed') - clock_speed_memory: float | None = Field(None, alias='clockSpeedMemory', description='GPU Memory Clock Speed') - performance_state: float | None = Field(None, alias='performanceState', description='GPU Performance State') - ecc_single_bit_errors: int | None = Field(None, alias='eccSingleBitErrors', description='GPU ECC Single Bit Errors') - ecc_double_bit_errors: int | None = Field(None, alias='eccDoubleBitErrors', description='GPU ECC Double Bit Errors') - clock_event_idle: int | None = Field(None, alias='clockEventIdle', description='Nothing running on CPU, clocks are idle') - clock_event_hw_thermal_slow_down: int | None = Field(None, alias='clockEventHwThermalSlowDown', description='HW Thermal Slowdown (reducing the core clocks by a factor of 2 or more) is engaged. Temp too high') - clock_event_sw_power_cap: int | None = Field(None, alias='clockEventSwPowerCap', description='SW Power Scaling algorithm is reducing the clocks below requested clocks because the GPU is consuming too much power') - clock_event_app_clock_setting: int | None = Field(None, alias='clockEventAppClockSetting', description='GPU clocks are limited by applications clocks setting') - clock_event_hw_power_break: int | None = Field(None, alias='clockEventHwPowerBreak', description='HW Power Brake Slowdown (reducing the core clocks by a factor of 2 or more) is engaged') - clock_event_sw_thermal_slowdown: int | None = Field(None, alias='clockEventSwThermalSlowdown', description='SW Thermal capping algorithm is reducing clocks below requested clocks because GPU temperature is higher than Max Operating Temp') - clock_event_sync_boost: int | None = Field(None, alias='clockEventSyncBoost', description='HW Power Brake Slowdown (reducing the core clocks by a factor of 2 or more) is engaged') - - -class HostHardwareConfiguration(OpsiBaseModel): - """Hardware Configuration metric for the host.""" - - metric_name: Literal['HOST_PRODUCT', 'HOST_RESOURCE_ALLOCATION', 'HOST_MEMORY_CONFIGURATION', 'HOST_HARDWARE_CONFIGURATION', 'HOST_CPU_HARDWARE_CONFIGURATION', 'HOST_NETWORK_CONFIGURATION', 'HOST_ENTITES', 'HOST_FILESYSTEM_CONFIGURATION', 'HOST_GPU_CONFIGURATION', 'HOST_CONTAINERS'] = Field(..., alias='metricName', description='Gets the metric_name of this HostConfigurationMetricGroup.\nName of the metric group\n\nAllowed values for this property are: "HOST_PRODUCT", "HOST_RESOURCE_ALLOCATION", "HOST_MEMORY_CONFIGURATION", "HOST_HARDWARE_CONFIGURATION", "HOST_CPU_HARDWARE_CONFIGURATION", "HOST_NETWORK_CONFIGURATION", "HOST_ENTITES", "HOST_FILESYSTEM_CONFIGURATION", "HOST_GPU_CONFIGURATION", "HOST_CONTAINERS"') - time_collected: datetime = Field(..., alias='timeCollected', description='Gets the time_collected of this HostConfigurationMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') - cpu_architecture: str = Field(..., alias='cpuArchitecture', description='Processor architecture used by the platform') - - -class HostImportableAgentEntitySummary(OpsiBaseModel): - """An agent host entity that can be imported into Operations Insights.""" - - entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this ImportableAgentEntitySummary.\nSource of the importable agent entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - management_agent_id: str = Field(..., alias='managementAgentId', description='Gets the management_agent_id of this ImportableAgentEntitySummary. The OCID of the Management Agent.') - management_agent_display_name: str = Field(..., alias='managementAgentDisplayName', description='Gets the management_agent_display_name of this ImportableAgentEntitySummary. The Display Name of the Management Agent.') - host_name: str | None = Field(None, alias='hostName', description='The host name. The host name is unique amongst the hosts managed by the same management agent.') - platform_type: Literal['LINUX', 'SOLARIS', 'SUNOS', 'ZLINUX', 'WINDOWS', 'AIX', 'HP_UX', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='platformType', description='Platform type.\nSupported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS].\nSupported platformType(s) for MACS-managed cloud host insight: [LINUX].\nSupported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX].\n\nAllowed values for this property are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class HostInsight(OpsiBaseModel): - """Host insight resource.""" - - entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Source of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - id: str = Field(..., alias='id', description='The OCID of the host insight resource.') - compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') - host_name: str | None = Field(None, alias='hostName', description='The host name. The host name is unique amongst the hosts managed by the same management agent.') - host_display_name: str | None = Field(None, alias='hostDisplayName', description='The user-friendly name for the host. The name does not have to be unique.') - host_type: str | None = Field(None, alias='hostType', description='Ops Insights internal representation of the host type. Possible value is EXTERNAL-HOST.') - processor_count: int | None = Field(None, alias='processorCount', description='Processor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Indicates the status of a host insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime = Field(..., alias='timeCreated', description='The time the the host insight was first enabled. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='The time the host insight was updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='The current state of the host.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - - -class HostInsightHostRecommendations(OpsiBaseModel): - """Contains recommendations depending of resource metric received.""" - - metric_recommendation_name: Literal['HOST_CPU_RECOMMENDATIONS', 'HOST_MEMORY_RECOMMENDATIONS', 'HOST_NETWORK_RECOMMENDATIONS', 'HOST_STORAGE_RECOMMENDATIONS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='metricRecommendationName', description='Name of recommendations depending of resource metric received.\n\nAllowed values for this property are: "HOST_CPU_RECOMMENDATIONS", "HOST_MEMORY_RECOMMENDATIONS", "HOST_NETWORK_RECOMMENDATIONS", "HOST_STORAGE_RECOMMENDATIONS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class HostInsightResourceStatisticsAggregation(OpsiBaseModel): - """Contains host details and resource statistics.""" - - host_details: HostDetails = Field(..., alias='hostDetails', description='The host_details field of HostInsightResourceStatisticsAggregation.') - current_statistics: HostResourceStatistics = Field(..., alias='currentStatistics', description='The current_statistics field of HostInsightResourceStatisticsAggregation.') - - -class HostInsightSummary(OpsiBaseModel): - """Summary of a host insight resource.""" - - entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Source of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - id: str = Field(..., alias='id', description='The OCID of the host insight resource.') - compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') - host_name: str | None = Field(None, alias='hostName', description='The host name. The host name is unique amongst the hosts managed by the same management agent.') - host_display_name: str | None = Field(None, alias='hostDisplayName', description='The user-friendly name for the host. The name does not have to be unique.') - host_type: str | None = Field(None, alias='hostType', description='Ops Insights internal representation of the host type. Possible value is EXTERNAL-HOST.') - processor_count: int | None = Field(None, alias='processorCount', description='Processor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - opsi_private_endpoint_id: str | None = Field(None, alias='opsiPrivateEndpointId', description='The OCID of the OPSI private endpoint.') - status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='status', description='Indicates the status of a host insight in Ops Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime | None = Field(None, alias='timeCreated', description='The time the the host insight was first enabled. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='The time the host insight was updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='The current state of the host.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - - -class HostInsightSummaryCollection(OpsiBaseModel): - """Collection of host insight summary objects.""" - - items: list[HostInsightSummary] = Field(..., alias='items', description='Array of host insight summary objects.') - - -class HostInsights(OpsiBaseModel): - """Logical grouping used for Operations Insights host related operations.""" - - host_insights: Any | None = Field(None, alias='hostInsights', description='Host Insights Object.') - - -class HostInsightsDataObject(OpsiBaseModel): - """Host insights data object.""" - - identifier: str = Field(..., alias='identifier', description='Gets the identifier of this OpsiDataObject.\nUnique identifier of OPSI data object.') - data_object_type: Literal['DATABASE_INSIGHTS_DATA_OBJECT', 'HOST_INSIGHTS_DATA_OBJECT', 'EXADATA_INSIGHTS_DATA_OBJECT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dataObjectType', description='Gets the data_object_type of this OpsiDataObject.\nType of OPSI data object.\n\nAllowed values for this property are: "DATABASE_INSIGHTS_DATA_OBJECT", "HOST_INSIGHTS_DATA_OBJECT", "EXADATA_INSIGHTS_DATA_OBJECT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - display_name: str = Field(..., alias='displayName', description='Gets the display_name of this OpsiDataObject.\nUser-friendly name of OPSI data object.') - description: str | None = Field(None, alias='description', description='Gets the description of this OpsiDataObject.\nDescription of OPSI data object.') - name: str | None = Field(None, alias='name', description='Gets the name of this OpsiDataObject.\nName of the data object, which can be used in data object queries just like how view names are used in a query.') - group_names: list[str] | None = Field(None, alias='groupNames', description='Gets the group_names of this OpsiDataObject.\nNames of all the groups to which the data object belongs to.') - supported_query_time_period: str | None = Field(None, alias='supportedQueryTimePeriod', description='Gets the supported_query_time_period of this OpsiDataObject.\nTime period supported by the data object for quering data.\nTime period is in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D.\nExamples: P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months).') - columns_metadata: list[DataObjectColumnMetadata] = Field(..., alias='columnsMetadata', description='Gets the columns_metadata of this OpsiDataObject.\nMetadata of columns in a data object.') - supported_query_params: list[OpsiDataObjectSupportedQueryParam] | None = Field(None, alias='supportedQueryParams', description='Gets the supported_query_params of this OpsiDataObject.\nSupported query parameters by this OPSI data object that can be configured while a data object query involving this data object is executed.') - - -class HostInsightsDataObjectSummary(OpsiBaseModel): - """Summary of a host insights data object.""" - - identifier: str = Field(..., alias='identifier', description='Gets the identifier of this OpsiDataObjectSummary.\nUnique identifier of OPSI data object.') - data_object_type: Literal['DATABASE_INSIGHTS_DATA_OBJECT', 'HOST_INSIGHTS_DATA_OBJECT', 'EXADATA_INSIGHTS_DATA_OBJECT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dataObjectType', description='Gets the data_object_type of this OpsiDataObjectSummary.\nType of OPSI data object.\n\nAllowed values for this property are: "DATABASE_INSIGHTS_DATA_OBJECT", "HOST_INSIGHTS_DATA_OBJECT", "EXADATA_INSIGHTS_DATA_OBJECT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - display_name: str = Field(..., alias='displayName', description='Gets the display_name of this OpsiDataObjectSummary.\nUser-friendly name of OPSI data object.') - description: str | None = Field(None, alias='description', description='Gets the description of this OpsiDataObjectSummary.\nDescription of OPSI data object.') - name: str | None = Field(None, alias='name', description='Gets the name of this OpsiDataObjectSummary.\nName of the data object, which can be used in data object queries just like how view names are used in a query.') - group_names: list[str] | None = Field(None, alias='groupNames', description='Gets the group_names of this OpsiDataObjectSummary.\nNames of all the groups to which the data object belongs to.') - - -class HostInstanceMap(OpsiBaseModel): - """Object containing hostname and instance name mapping.""" - - host_name: str = Field(..., alias='hostName', description='The hostname of the database insight resource.') - instance_name: str = Field(..., alias='instanceName', description='The instance name of the database insight resource.') - - -class HostIoStatistics(OpsiBaseModel): - """Contains io statistics.""" - - usage: float = Field(..., alias='usage', description='Gets the usage of this HostResourceStatistics.\nTotal amount used of the resource metric type (CPU, STORAGE).') - capacity: float = Field(..., alias='capacity', description='Gets the capacity of this HostResourceStatistics.\nThe maximum allocated amount of the resource metric type (CPU, STORAGE) for a set of databases.') - utilization_percent: float = Field(..., alias='utilizationPercent', description='Gets the utilization_percent of this HostResourceStatistics.\nResource utilization in percentage.') - usage_change_percent: float = Field(..., alias='usageChangePercent', description='Gets the usage_change_percent of this HostResourceStatistics.\nChange in resource utilization in percentage') - resource_name: Literal['HOST_CPU_STATISTICS', 'HOST_MEMORY_STATISTICS', 'HOST_STORAGE_STATISTICS', 'HOST_NETWORK_STATISTICS', 'HOST_IO_STATISTICS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceName', description='Gets the resource_name of this HostResourceStatistics.\nName of resource for host\n\nAllowed values for this property are: "HOST_CPU_STATISTICS", "HOST_MEMORY_STATISTICS", "HOST_STORAGE_STATISTICS", "HOST_NETWORK_STATISTICS", "HOST_IO_STATISTICS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - disk_read_in_mbs: float | None = Field(None, alias='diskReadInMBs', description='The disk_read_in_mbs field of HostIoStatistics.') - disk_write_in_mbs: float | None = Field(None, alias='diskWriteInMBs', description='The disk_write_in_mbs field of HostIoStatistics.') - disk_iops: float | None = Field(None, alias='diskIops', description='The disk_iops field of HostIoStatistics.') - - -class HostIoUsage(OpsiBaseModel): - """Host IO Performance Metrics.""" - - metric_name: Literal['HOST_CPU_USAGE', 'HOST_MEMORY_USAGE', 'HOST_NETWORK_ACTIVITY_SUMMARY', 'HOST_TOP_PROCESSES', 'HOST_FILESYSTEM_USAGE', 'HOST_GPU_USAGE', 'HOST_GPU_PROCESSES', 'HOST_IO_USAGE'] = Field(..., alias='metricName', description='Gets the metric_name of this HostPerformanceMetricGroup.\nName of the metric group\n\nAllowed values for this property are: "HOST_CPU_USAGE", "HOST_MEMORY_USAGE", "HOST_NETWORK_ACTIVITY_SUMMARY", "HOST_TOP_PROCESSES", "HOST_FILESYSTEM_USAGE", "HOST_GPU_USAGE", "HOST_GPU_PROCESSES", "HOST_IO_USAGE"') - time_collected: datetime = Field(..., alias='timeCollected', description='Gets the time_collected of this HostPerformanceMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') - mount_point: str | None = Field(None, alias='mountPoint', description='Mount point') - disk_bytes_read: float | None = Field(None, alias='diskBytesRead', description='Bytes Read') - disk_bytes_written: float | None = Field(None, alias='diskBytesWritten', description='Bytes Written') - disk_iops_read: float | None = Field(None, alias='diskIopsRead', description='Read transactions per second') - disk_iops_written: float | None = Field(None, alias='diskIopsWritten', description='Write transactions per second') - disk_iops: float | None = Field(None, alias='diskIops', description='IO Transactions per second') - - -class HostMemoryConfiguration(OpsiBaseModel): - """Memory Configuration metric for the host.""" - - metric_name: Literal['HOST_PRODUCT', 'HOST_RESOURCE_ALLOCATION', 'HOST_MEMORY_CONFIGURATION', 'HOST_HARDWARE_CONFIGURATION', 'HOST_CPU_HARDWARE_CONFIGURATION', 'HOST_NETWORK_CONFIGURATION', 'HOST_ENTITES', 'HOST_FILESYSTEM_CONFIGURATION', 'HOST_GPU_CONFIGURATION', 'HOST_CONTAINERS'] = Field(..., alias='metricName', description='Gets the metric_name of this HostConfigurationMetricGroup.\nName of the metric group\n\nAllowed values for this property are: "HOST_PRODUCT", "HOST_RESOURCE_ALLOCATION", "HOST_MEMORY_CONFIGURATION", "HOST_HARDWARE_CONFIGURATION", "HOST_CPU_HARDWARE_CONFIGURATION", "HOST_NETWORK_CONFIGURATION", "HOST_ENTITES", "HOST_FILESYSTEM_CONFIGURATION", "HOST_GPU_CONFIGURATION", "HOST_CONTAINERS"') - time_collected: datetime = Field(..., alias='timeCollected', description='Gets the time_collected of this HostConfigurationMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') - page_size_in_kb: float | None = Field(None, alias='pageSizeInKB', description='Page size in kilobytes') - page_tables_in_kb: float | None = Field(None, alias='pageTablesInKB', description='Amount of memory used for page tables in kilobytes') - swap_total_in_kb: float | None = Field(None, alias='swapTotalInKB', description='Amount of total swap space in kilobytes') - huge_page_size_in_kb: float | None = Field(None, alias='hugePageSizeInKB', description='Size of huge pages in kilobytes') - huge_pages_total: int | None = Field(None, alias='hugePagesTotal', description='Total number of huge pages') - - -class HostMemoryRecommendations(OpsiBaseModel): - """Contains memory recommendation.""" - - metric_recommendation_name: Literal['HOST_CPU_RECOMMENDATIONS', 'HOST_MEMORY_RECOMMENDATIONS', 'HOST_NETWORK_RECOMMENDATIONS', 'HOST_STORAGE_RECOMMENDATIONS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='metricRecommendationName', description='Gets the metric_recommendation_name of this HostInsightHostRecommendations.\nName of recommendations depending of resource metric received.\n\nAllowed values for this property are: "HOST_CPU_RECOMMENDATIONS", "HOST_MEMORY_RECOMMENDATIONS", "HOST_NETWORK_RECOMMENDATIONS", "HOST_STORAGE_RECOMMENDATIONS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - unused_instance: Literal['IN_USE', 'NOT_IN_USE', 'IS_NOT_DETERMINED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='unusedInstance', description='Identify unused instances based on cpu, memory and network metrics.\n\nAllowed values for this property are: "IN_USE", "NOT_IN_USE", "IS_NOT_DETERMINED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - is_abandoned_instance: bool | None = Field(None, alias='isAbandonedInstance', description='Identify if an instance is abandoned.') - memory_optimization: str | None = Field(None, alias='memoryOptimization', description='Show if OPSI recommends to change memory capacity based on Memory utilization and current shape.') - - -class HostMemoryStatistics(OpsiBaseModel): - """Contains memory statistics.""" - - usage: float = Field(..., alias='usage', description='Gets the usage of this HostResourceStatistics.\nTotal amount used of the resource metric type (CPU, STORAGE).') - capacity: float = Field(..., alias='capacity', description='Gets the capacity of this HostResourceStatistics.\nThe maximum allocated amount of the resource metric type (CPU, STORAGE) for a set of databases.') - utilization_percent: float = Field(..., alias='utilizationPercent', description='Gets the utilization_percent of this HostResourceStatistics.\nResource utilization in percentage.') - usage_change_percent: float = Field(..., alias='usageChangePercent', description='Gets the usage_change_percent of this HostResourceStatistics.\nChange in resource utilization in percentage') - resource_name: Literal['HOST_CPU_STATISTICS', 'HOST_MEMORY_STATISTICS', 'HOST_STORAGE_STATISTICS', 'HOST_NETWORK_STATISTICS', 'HOST_IO_STATISTICS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceName', description='Gets the resource_name of this HostResourceStatistics.\nName of resource for host\n\nAllowed values for this property are: "HOST_CPU_STATISTICS", "HOST_MEMORY_STATISTICS", "HOST_STORAGE_STATISTICS", "HOST_NETWORK_STATISTICS", "HOST_IO_STATISTICS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - free_memory: float | None = Field(None, alias='freeMemory', description='The free_memory field of HostMemoryStatistics.') - available_memory: float | None = Field(None, alias='availableMemory', description='The available_memory field of HostMemoryStatistics.') - huge_pages_total: int | None = Field(None, alias='hugePagesTotal', description='Total number of huge pages.') - huge_page_size_in_mb: float | None = Field(None, alias='hugePageSizeInMB', description='Size of huge pages in megabytes.') - huge_pages_free: int | None = Field(None, alias='hugePagesFree', description='Total number of available huge pages.') - huge_pages_reserved: int | None = Field(None, alias='hugePagesReserved', description='Total number of huge pages which are used or reserved.') - load: SummaryStatistics | None = Field(None, alias='load', description='The load field of HostMemoryStatistics.') - - -class HostMemoryUsage(OpsiBaseModel): - """Memory usage metric for the host.""" - - metric_name: Literal['HOST_CPU_USAGE', 'HOST_MEMORY_USAGE', 'HOST_NETWORK_ACTIVITY_SUMMARY', 'HOST_TOP_PROCESSES', 'HOST_FILESYSTEM_USAGE', 'HOST_GPU_USAGE', 'HOST_GPU_PROCESSES', 'HOST_IO_USAGE'] = Field(..., alias='metricName', description='Gets the metric_name of this HostPerformanceMetricGroup.\nName of the metric group\n\nAllowed values for this property are: "HOST_CPU_USAGE", "HOST_MEMORY_USAGE", "HOST_NETWORK_ACTIVITY_SUMMARY", "HOST_TOP_PROCESSES", "HOST_FILESYSTEM_USAGE", "HOST_GPU_USAGE", "HOST_GPU_PROCESSES", "HOST_IO_USAGE"') - time_collected: datetime = Field(..., alias='timeCollected', description='Gets the time_collected of this HostPerformanceMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') - memory_used_in_gb: float | None = Field(None, alias='memoryUsedInGB', description='Amount of physical memory used in gigabytes') - memory_utilization_in_percent: float | None = Field(None, alias='memoryUtilizationInPercent', description='Amount of physical memory used in percentage') - memory_load_in_gb: float | None = Field(None, alias='memoryLoadInGB', description='Load on memory in gigabytes') - real_memory_in_kb: float | None = Field(None, alias='realMemoryInKB', description='Amount of usable physical memory in kilobytes') - free_memory_in_kb: float | None = Field(None, alias='freeMemoryInKB', description='Amount of available physical memory in kilobytes') - logical_memory_used_in_gb: float | None = Field(None, alias='logicalMemoryUsedInGB', description='Memory used excluding buffers and cache in gigabytes') - logical_memory_utilization_in_percent: float | None = Field(None, alias='logicalMemoryUtilizationInPercent', description='Amount of logical memory used in percentage') - free_logical_memory_in_kb: float | None = Field(None, alias='freeLogicalMemoryInKB', description='Amount of avaiable virtual memory in kilobytes') - major_page_faults: int | None = Field(None, alias='majorPageFaults', description='Number of major page faults') - swap_free_in_kb: float | None = Field(None, alias='swapFreeInKB', description='Amount of available swap space in kilobytes') - anon_huge_pages_in_kb: float | None = Field(None, alias='anonHugePagesInKB', description='Amount of memory used for anon huge pages in kilobytes') - huge_pages_free: int | None = Field(None, alias='hugePagesFree', description='Number of available huge pages') - huge_pages_reserved: int | None = Field(None, alias='hugePagesReserved', description='Number of reserved huge pages') - huge_pages_surplus: int | None = Field(None, alias='hugePagesSurplus', description='Number of surplus huge pages') - - -class HostNetworkActivitySummary(OpsiBaseModel): - """Network Activity Summary metric for the host.""" - - metric_name: Literal['HOST_CPU_USAGE', 'HOST_MEMORY_USAGE', 'HOST_NETWORK_ACTIVITY_SUMMARY', 'HOST_TOP_PROCESSES', 'HOST_FILESYSTEM_USAGE', 'HOST_GPU_USAGE', 'HOST_GPU_PROCESSES', 'HOST_IO_USAGE'] = Field(..., alias='metricName', description='Gets the metric_name of this HostPerformanceMetricGroup.\nName of the metric group\n\nAllowed values for this property are: "HOST_CPU_USAGE", "HOST_MEMORY_USAGE", "HOST_NETWORK_ACTIVITY_SUMMARY", "HOST_TOP_PROCESSES", "HOST_FILESYSTEM_USAGE", "HOST_GPU_USAGE", "HOST_GPU_PROCESSES", "HOST_IO_USAGE"') - time_collected: datetime = Field(..., alias='timeCollected', description='Gets the time_collected of this HostPerformanceMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') - interface_name: str | None = Field(None, alias='interfaceName', description='Name of the network interface') - all_network_read_in_mbps: float | None = Field(None, alias='allNetworkReadInMbps', description='All network interfaces read rate in Mbps') - all_network_write_in_mbps: float | None = Field(None, alias='allNetworkWriteInMbps', description='All network interfaces write rate in Mbps') - all_network_io_in_mbps: float | None = Field(None, alias='allNetworkIoInMbps', description='All network interfaces IO rate in Mbps') - - -class HostNetworkConfiguration(OpsiBaseModel): - """Network Configuration metric for the host.""" - - metric_name: Literal['HOST_PRODUCT', 'HOST_RESOURCE_ALLOCATION', 'HOST_MEMORY_CONFIGURATION', 'HOST_HARDWARE_CONFIGURATION', 'HOST_CPU_HARDWARE_CONFIGURATION', 'HOST_NETWORK_CONFIGURATION', 'HOST_ENTITES', 'HOST_FILESYSTEM_CONFIGURATION', 'HOST_GPU_CONFIGURATION', 'HOST_CONTAINERS'] = Field(..., alias='metricName', description='Gets the metric_name of this HostConfigurationMetricGroup.\nName of the metric group\n\nAllowed values for this property are: "HOST_PRODUCT", "HOST_RESOURCE_ALLOCATION", "HOST_MEMORY_CONFIGURATION", "HOST_HARDWARE_CONFIGURATION", "HOST_CPU_HARDWARE_CONFIGURATION", "HOST_NETWORK_CONFIGURATION", "HOST_ENTITES", "HOST_FILESYSTEM_CONFIGURATION", "HOST_GPU_CONFIGURATION", "HOST_CONTAINERS"') - time_collected: datetime = Field(..., alias='timeCollected', description='Gets the time_collected of this HostConfigurationMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') - interface_name: str = Field(..., alias='interfaceName', description='Name of the network interface') - ip_address: str = Field(..., alias='ipAddress', description='IP address (IPv4 or IPv6) of the network interface') - mac_address: str | None = Field(None, alias='macAddress', description='MAC address of the network interface. MAC address is a 12-digit hexadecimal number separated by colons or dashes or dots. Following formats are accepted: MM:MM:MM:SS:SS:SS, MM-MM-MM-SS-SS-SS, MM.MM.MM.SS.SS.SS, MMM:MMM:SSS:SSS, MMM-MMM-SSS-SSS, MMM.MMM.SSS.SSS, MMMM:MMSS:SSSS, MMMM-MMSS-SSSS, MMMM.MMSS.SSSS') - - -class HostNetworkRecommendations(OpsiBaseModel): - """Contains network recommendation.""" - - metric_recommendation_name: Literal['HOST_CPU_RECOMMENDATIONS', 'HOST_MEMORY_RECOMMENDATIONS', 'HOST_NETWORK_RECOMMENDATIONS', 'HOST_STORAGE_RECOMMENDATIONS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='metricRecommendationName', description='Gets the metric_recommendation_name of this HostInsightHostRecommendations.\nName of recommendations depending of resource metric received.\n\nAllowed values for this property are: "HOST_CPU_RECOMMENDATIONS", "HOST_MEMORY_RECOMMENDATIONS", "HOST_NETWORK_RECOMMENDATIONS", "HOST_STORAGE_RECOMMENDATIONS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - unused_instance: Literal['IN_USE', 'NOT_IN_USE', 'IS_NOT_DETERMINED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='unusedInstance', description='Identify unused instances based on cpu, memory and network metrics.\n\nAllowed values for this property are: "IN_USE", "NOT_IN_USE", "IS_NOT_DETERMINED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - is_abandoned_instance: bool | None = Field(None, alias='isAbandonedInstance', description='Identify if an instance is abandoned.') - - -class HostNetworkStatistics(OpsiBaseModel): - """Contains network statistics.""" - - usage: float = Field(..., alias='usage', description='Gets the usage of this HostResourceStatistics.\nTotal amount used of the resource metric type (CPU, STORAGE).') - capacity: float = Field(..., alias='capacity', description='Gets the capacity of this HostResourceStatistics.\nThe maximum allocated amount of the resource metric type (CPU, STORAGE) for a set of databases.') - utilization_percent: float = Field(..., alias='utilizationPercent', description='Gets the utilization_percent of this HostResourceStatistics.\nResource utilization in percentage.') - usage_change_percent: float = Field(..., alias='usageChangePercent', description='Gets the usage_change_percent of this HostResourceStatistics.\nChange in resource utilization in percentage') - resource_name: Literal['HOST_CPU_STATISTICS', 'HOST_MEMORY_STATISTICS', 'HOST_STORAGE_STATISTICS', 'HOST_NETWORK_STATISTICS', 'HOST_IO_STATISTICS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceName', description='Gets the resource_name of this HostResourceStatistics.\nName of resource for host\n\nAllowed values for this property are: "HOST_CPU_STATISTICS", "HOST_MEMORY_STATISTICS", "HOST_STORAGE_STATISTICS", "HOST_NETWORK_STATISTICS", "HOST_IO_STATISTICS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - network_read_in_mbs: float | None = Field(None, alias='networkReadInMBs', description='The network_read_in_mbs field of HostNetworkStatistics.') - network_write_in_mbs: float | None = Field(None, alias='networkWriteInMBs', description='The network_write_in_mbs field of HostNetworkStatistics.') - - -class HostPerformanceMetricGroup(OpsiBaseModel): - """Base Metric Group for Host performance metrics.""" - - metric_name: Literal['HOST_CPU_USAGE', 'HOST_MEMORY_USAGE', 'HOST_NETWORK_ACTIVITY_SUMMARY', 'HOST_TOP_PROCESSES', 'HOST_FILESYSTEM_USAGE', 'HOST_GPU_USAGE', 'HOST_GPU_PROCESSES', 'HOST_IO_USAGE'] = Field(..., alias='metricName', description='Name of the metric group\n\nAllowed values for this property are: "HOST_CPU_USAGE", "HOST_MEMORY_USAGE", "HOST_NETWORK_ACTIVITY_SUMMARY", "HOST_TOP_PROCESSES", "HOST_FILESYSTEM_USAGE", "HOST_GPU_USAGE", "HOST_GPU_PROCESSES", "HOST_IO_USAGE"') - time_collected: datetime = Field(..., alias='timeCollected', description='Collection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') - - -class HostProduct(OpsiBaseModel): - """Product metric for the host.""" - - metric_name: Literal['HOST_PRODUCT', 'HOST_RESOURCE_ALLOCATION', 'HOST_MEMORY_CONFIGURATION', 'HOST_HARDWARE_CONFIGURATION', 'HOST_CPU_HARDWARE_CONFIGURATION', 'HOST_NETWORK_CONFIGURATION', 'HOST_ENTITES', 'HOST_FILESYSTEM_CONFIGURATION', 'HOST_GPU_CONFIGURATION', 'HOST_CONTAINERS'] = Field(..., alias='metricName', description='Gets the metric_name of this HostConfigurationMetricGroup.\nName of the metric group\n\nAllowed values for this property are: "HOST_PRODUCT", "HOST_RESOURCE_ALLOCATION", "HOST_MEMORY_CONFIGURATION", "HOST_HARDWARE_CONFIGURATION", "HOST_CPU_HARDWARE_CONFIGURATION", "HOST_NETWORK_CONFIGURATION", "HOST_ENTITES", "HOST_FILESYSTEM_CONFIGURATION", "HOST_GPU_CONFIGURATION", "HOST_CONTAINERS"') - time_collected: datetime = Field(..., alias='timeCollected', description='Gets the time_collected of this HostConfigurationMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') - vendor: str | None = Field(None, alias='vendor', description='Vendor of the product') - name: str | None = Field(None, alias='name', description='Name of the product') - version: str | None = Field(None, alias='version', description='Version of the product') - - -class HostResourceAllocation(OpsiBaseModel): - """Resource Allocation metric for the host.""" - - metric_name: Literal['HOST_PRODUCT', 'HOST_RESOURCE_ALLOCATION', 'HOST_MEMORY_CONFIGURATION', 'HOST_HARDWARE_CONFIGURATION', 'HOST_CPU_HARDWARE_CONFIGURATION', 'HOST_NETWORK_CONFIGURATION', 'HOST_ENTITES', 'HOST_FILESYSTEM_CONFIGURATION', 'HOST_GPU_CONFIGURATION', 'HOST_CONTAINERS'] = Field(..., alias='metricName', description='Gets the metric_name of this HostConfigurationMetricGroup.\nName of the metric group\n\nAllowed values for this property are: "HOST_PRODUCT", "HOST_RESOURCE_ALLOCATION", "HOST_MEMORY_CONFIGURATION", "HOST_HARDWARE_CONFIGURATION", "HOST_CPU_HARDWARE_CONFIGURATION", "HOST_NETWORK_CONFIGURATION", "HOST_ENTITES", "HOST_FILESYSTEM_CONFIGURATION", "HOST_GPU_CONFIGURATION", "HOST_CONTAINERS"') - time_collected: datetime = Field(..., alias='timeCollected', description='Gets the time_collected of this HostConfigurationMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') - total_cpus: int | None = Field(None, alias='totalCpus', description='Total number of CPUs available') - total_memory_in_gb: float | None = Field(None, alias='totalMemoryInGB', description='Total amount of usable physical memory in gibabytes') - - -class HostResourceCapacityTrendAggregation(OpsiBaseModel): - """Host Resource Capacity samples.""" - - end_timestamp: datetime = Field(..., alias='endTimestamp', description='The timestamp in which the current sampling period ends in RFC 3339 format.') - capacity: float = Field(..., alias='capacity', description='The maximum allocated amount of the resource metric type (CPU, STORAGE) for a set of databases.') - - -class HostResourceStatistics(OpsiBaseModel): - """Contains host resource base statistics.""" - - usage: float = Field(..., alias='usage', description='Total amount used of the resource metric type (CPU, STORAGE).') - capacity: float = Field(..., alias='capacity', description='The maximum allocated amount of the resource metric type (CPU, STORAGE) for a set of databases.') - utilization_percent: float = Field(..., alias='utilizationPercent', description='Resource utilization in percentage.') - usage_change_percent: float = Field(..., alias='usageChangePercent', description='Change in resource utilization in percentage') - resource_name: Literal['HOST_CPU_STATISTICS', 'HOST_MEMORY_STATISTICS', 'HOST_STORAGE_STATISTICS', 'HOST_NETWORK_STATISTICS', 'HOST_IO_STATISTICS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceName', description='Name of resource for host\n\nAllowed values for this property are: "HOST_CPU_STATISTICS", "HOST_MEMORY_STATISTICS", "HOST_STORAGE_STATISTICS", "HOST_NETWORK_STATISTICS", "HOST_IO_STATISTICS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class HostStorageRecommendations(OpsiBaseModel): - """Contains storage recommendation.""" - - metric_recommendation_name: Literal['HOST_CPU_RECOMMENDATIONS', 'HOST_MEMORY_RECOMMENDATIONS', 'HOST_NETWORK_RECOMMENDATIONS', 'HOST_STORAGE_RECOMMENDATIONS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='metricRecommendationName', description='Gets the metric_recommendation_name of this HostInsightHostRecommendations.\nName of recommendations depending of resource metric received.\n\nAllowed values for this property are: "HOST_CPU_RECOMMENDATIONS", "HOST_MEMORY_RECOMMENDATIONS", "HOST_NETWORK_RECOMMENDATIONS", "HOST_STORAGE_RECOMMENDATIONS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - unused_instance: Literal['IN_USE', 'NOT_IN_USE', 'IS_NOT_DETERMINED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='unusedInstance', description='Identify unused instances based on cpu, memory and network metrics.\n\nAllowed values for this property are: "IN_USE", "NOT_IN_USE", "IS_NOT_DETERMINED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - is_abandoned_instance: bool | None = Field(None, alias='isAbandonedInstance', description='Identify if an instance is abandoned.') - - -class HostStorageStatistics(OpsiBaseModel): - """Contains storage statistics.""" - - usage: float = Field(..., alias='usage', description='Gets the usage of this HostResourceStatistics.\nTotal amount used of the resource metric type (CPU, STORAGE).') - capacity: float = Field(..., alias='capacity', description='Gets the capacity of this HostResourceStatistics.\nThe maximum allocated amount of the resource metric type (CPU, STORAGE) for a set of databases.') - utilization_percent: float = Field(..., alias='utilizationPercent', description='Gets the utilization_percent of this HostResourceStatistics.\nResource utilization in percentage.') - usage_change_percent: float = Field(..., alias='usageChangePercent', description='Gets the usage_change_percent of this HostResourceStatistics.\nChange in resource utilization in percentage') - resource_name: Literal['HOST_CPU_STATISTICS', 'HOST_MEMORY_STATISTICS', 'HOST_STORAGE_STATISTICS', 'HOST_NETWORK_STATISTICS', 'HOST_IO_STATISTICS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceName', description='Gets the resource_name of this HostResourceStatistics.\nName of resource for host\n\nAllowed values for this property are: "HOST_CPU_STATISTICS", "HOST_MEMORY_STATISTICS", "HOST_STORAGE_STATISTICS", "HOST_NETWORK_STATISTICS", "HOST_IO_STATISTICS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - filesystem_available_in_percent: float | None = Field(None, alias='filesystemAvailableInPercent', description='The filesystem_available_in_percent field of HostStorageStatistics.') - - -class HostTopProcesses(OpsiBaseModel): - """Top Processes metric for the host.""" - - metric_name: Literal['HOST_CPU_USAGE', 'HOST_MEMORY_USAGE', 'HOST_NETWORK_ACTIVITY_SUMMARY', 'HOST_TOP_PROCESSES', 'HOST_FILESYSTEM_USAGE', 'HOST_GPU_USAGE', 'HOST_GPU_PROCESSES', 'HOST_IO_USAGE'] = Field(..., alias='metricName', description='Gets the metric_name of this HostPerformanceMetricGroup.\nName of the metric group\n\nAllowed values for this property are: "HOST_CPU_USAGE", "HOST_MEMORY_USAGE", "HOST_NETWORK_ACTIVITY_SUMMARY", "HOST_TOP_PROCESSES", "HOST_FILESYSTEM_USAGE", "HOST_GPU_USAGE", "HOST_GPU_PROCESSES", "HOST_IO_USAGE"') - time_collected: datetime = Field(..., alias='timeCollected', description='Gets the time_collected of this HostPerformanceMetricGroup.\nCollection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') - pid: float | None = Field(None, alias='pid', description='process id') - user_name: str | None = Field(None, alias='userName', description='User that started the process') - memory_utilization_percent: float | None = Field(None, alias='memoryUtilizationPercent', description='Memory utilization percentage') - cpu_utilization_percent: float | None = Field(None, alias='cpuUtilizationPercent', description='CPU utilization percentage') - cpu_usage_in_seconds: float | None = Field(None, alias='cpuUsageInSeconds', description='CPU usage in seconds') - command: str | None = Field(None, alias='command', description='Command line executed for the process') - virtual_memory_in_mbs: float | None = Field(None, alias='virtualMemoryInMBs', description='Virtual memory in megabytes') - physical_memory_in_mbs: float | None = Field(None, alias='physicalMemoryInMBs', description='Physical memory in megabytes') - start_time: datetime | None = Field(None, alias='startTime', description='Process Start Time\nExample: `"2020-03-31T00:00:00.000Z"`') - total_processes: float | None = Field(None, alias='totalProcesses', description='Number of processes running at the time of collection') - container_id: str | None = Field(None, alias='containerId', description='Container id if this process corresponds to a running container in the host') - disk_bytes_read: float | None = Field(None, alias='diskBytesRead', description='Bytes Read') - disk_bytes_written: float | None = Field(None, alias='diskBytesWritten', description='Bytes Written') - disk_iops_read: float | None = Field(None, alias='diskIopsRead', description='Read transactions per second') - disk_iops_written: float | None = Field(None, alias='diskIopsWritten', description='Write transactions per second') - disk_iops: float | None = Field(None, alias='diskIops', description='IO Transactions per second') - - -class HostedEntityCollection(OpsiBaseModel): - """Returns a list of hosted entities for the specific host.""" - - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - items: list[HostedEntitySummary] = Field(..., alias='items', description='List of hosted entities details.') - - -class HostedEntitySummary(OpsiBaseModel): - """Information about a hosted entity which includes identifier, name, and type.""" - - entity_identifier: str = Field(..., alias='entityIdentifier', description='The identifier of the entity.') - entity_name: str = Field(..., alias='entityName', description='The entity name.') - entity_type: str = Field(..., alias='entityType', description='The entity type.') - - -class ImportableAgentEntitySummary(OpsiBaseModel): - """An agent entity that can be imported into Operations Insights.""" - - entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Source of the importable agent entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') - management_agent_display_name: str = Field(..., alias='managementAgentDisplayName', description='The Display Name of the Management Agent.') - - -class ImportableAgentEntitySummaryCollection(OpsiBaseModel): - """Collection of importable agent entity objects.""" - - items: list[ImportableAgentEntitySummary] = Field(..., alias='items', description='Array of importable agent entity objects.') - - -class ImportableComputeEntitySummary(OpsiBaseModel): - """A compute entity that can be imported into Operations Insights.""" - - entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Source of the importable agent entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - compute_id: str = Field(..., alias='computeId', description='The OCID of the Compute Instance.') - compute_display_name: str = Field(..., alias='computeDisplayName', description='The Display Name of the Compute Instance.') - compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') - - -class ImportableComputeEntitySummaryCollection(OpsiBaseModel): - """Collection of importable compute entity objects.""" - - items: list[ImportableComputeEntitySummary] = Field(..., alias='items', description='Array of importable compute entity objects.') - - -class ImportableEnterpriseManagerEntity(OpsiBaseModel): - """An Enterprise Manager entity that can be imported into Operations Insights.""" - - enterprise_manager_identifier: str = Field(..., alias='enterpriseManagerIdentifier', description='Enterprise Manager Unique Identifier') - enterprise_manager_entity_name: str = Field(..., alias='enterpriseManagerEntityName', description='Enterprise Manager Entity Name') - enterprise_manager_entity_type: str = Field(..., alias='enterpriseManagerEntityType', description='Enterprise Manager Entity Type') - enterprise_manager_entity_identifier: str = Field(..., alias='enterpriseManagerEntityIdentifier', description='Enterprise Manager Entity Unique Identifier') - opsi_entity_type: str | None = Field(None, alias='opsiEntityType', description='Ops Insights internal representation of the resource type.') - - -class ImportableEnterpriseManagerEntityCollection(OpsiBaseModel): - """Collection of importable Enterprise Manager entity objects.""" - - items: list[ImportableEnterpriseManagerEntity] = Field(..., alias='items', description='Array of importable Enterprise Manager entity objects.') - - -class IndividualOpsiDataObjectDetailsInQuery(OpsiBaseModel): - """Details applicable for an individual OPSI data object used in a data object query.""" - - data_object_details_target: Literal['INDIVIDUAL_OPSIDATAOBJECT', 'OPSIDATAOBJECTTYPE_OPSIDATAOBJECTS'] = Field(..., alias='dataObjectDetailsTarget', description='Gets the data_object_details_target of this OpsiDataObjectDetailsInQuery.\nData objects to which this OpsiDataObjectDetailsInQuery is applicable.\n\nAllowed values for this property are: "INDIVIDUAL_OPSIDATAOBJECT", "OPSIDATAOBJECTTYPE_OPSIDATAOBJECTS"') - query_params: list[OpsiDataObjectQueryParam] | None = Field(None, alias='queryParams', description='Gets the _query_params of this OpsiDataObjectDetailsInQuery.\nAn array of query parameters to be applied, for the OPSI data objects targetted by dataObjectDetailsTarget, before executing the query.\nRefer to supportedQueryParams of OpsiDataObject for the supported query parameters.') - data_object_identifier: str = Field(..., alias='dataObjectIdentifier', description='Unique OPSI data object identifier.') - - -class IngestAddmReportsDetails(OpsiRequestModel): - """Collection of Addm reports.""" - - items: list[AddmReport] = Field(..., alias='items', description='List of Addm reports') - - -class IngestAddmReportsResponseDetails(OpsiBaseModel): - """The response object returned from IngestAddmReports operation.""" - - message: str = Field(..., alias='message', description='Success message returned as a result of the upload.') - - -class IngestDatabaseConfigurationDetails(OpsiRequestModel): - """Database Configuration Metrics details.""" - - items: list[DatabaseConfigurationMetricGroup] = Field(..., alias='items', description='Array of one or more database configuration metrics objects.') - - -class IngestDatabaseConfigurationResponseDetails(OpsiBaseModel): - """The response object returned from IngestDatabaseConfiguration operation.""" - - message: str = Field(..., alias='message', description='Success message returned as a result of the upload.') - - -class IngestHostConfigurationDetails(OpsiRequestModel): - """Contains the data to ingest for one or more host configuration metrics.""" - - items: list[HostConfigurationMetricGroup] = Field(..., alias='items', description='Collection of one or more host configuration metric data points') - - -class IngestHostConfigurationResponseDetails(OpsiBaseModel): - """The response object returned from IngestHostConfiguration operation.""" - - message: str = Field(..., alias='message', description='Success message returned as a result of the upload.') - - -class IngestHostMetricsDetails(OpsiRequestModel): - """Contains the data to ingest for one or more host performance metrics.""" - - items: list[HostPerformanceMetricGroup] = Field(..., alias='items', description='Collection of one or more host performance metric data points') - - -class IngestHostMetricsResponseDetails(OpsiBaseModel): - """The response object returned from IngestHostMetrics operation.""" - - message: str = Field(..., alias='message', description='Success message returned as a result of the upload.') - - -class IngestMySqlSqlStatsDetails(OpsiRequestModel): - """Collection of MySql SQL Stats Metric Entries.""" - - items: list[MySqlSqlStats] | None = Field(None, alias='items', description='List of MySql SQL Stats Metric Entries.') - - -class IngestMySqlSqlStatsResponseDetails(OpsiBaseModel): - """The response object returned from IngestMySqlSqlStats operation.""" - - message: str = Field(..., alias='message', description='Success message returned as a result of the upload.') - - -class IngestMySqlSqlTextDetails(OpsiRequestModel): - """Collection of SQL Text Entries.""" - - items: list[MySqlSqlText] | None = Field(None, alias='items', description='List of SQL Text Entries.') - - -class IngestMySqlSqlTextResponseDetails(OpsiBaseModel): - """The response object returned from IngestMySqlSqlTextDetails operation.""" - - message: str = Field(..., alias='message', description='Success message returned as a result of the upload.') - - -class IngestSqlBucketDetails(OpsiRequestModel): - """Collection of SQL Bucket Metric Entries.""" - - items: list[SqlBucket] | None = Field(None, alias='items', description='List of SQL Bucket Metric Entries.') - - -class IngestSqlBucketResponseDetails(OpsiBaseModel): - """The response object returned from IngestSqlBucketDetails operation.""" - - message: str = Field(..., alias='message', description='Success message returned as a result of the upload.') - - -class IngestSqlPlanLinesDetails(OpsiRequestModel): - """Collection of SQL Plan Line Entries.""" - - items: list[SqlPlanLine] | None = Field(None, alias='items', description='List of SQL Plan Line Entries.') - - -class IngestSqlPlanLinesResponseDetails(OpsiBaseModel): - """The response object returned from IngestSqlPlanLines operation.""" - - message: str = Field(..., alias='message', description='Success message returned as a result of the upload.') - - -class IngestSqlStatsDetails(OpsiRequestModel): - """Collection of SQL Stats Metric Entries.""" - - items: list[SqlStats] | None = Field(None, alias='items', description='List of SQL Stats Metric Entries.') - - -class IngestSqlStatsResponseDetails(OpsiBaseModel): - """The response object returned from IngestSqlStats operation.""" - - message: str = Field(..., alias='message', description='Success message returned as a result of the upload.') - - -class IngestSqlTextDetails(OpsiRequestModel): - """Collection of SQL Text Entries.""" - - items: list[SqlText] | None = Field(None, alias='items', description='List of SQL Text Entries.') - - -class IngestSqlTextResponseDetails(OpsiBaseModel): - """The response object returned from IngestSqlTextDetails operation.""" - - message: str = Field(..., alias='message', description='Success message returned as a result of the upload.') - - -class InstanceMetrics(OpsiBaseModel): - """Object containing instance metrics.""" - - host_name: str | None = Field(None, alias='hostName', description='The hostname of the database insight resource.') - instance_name: str | None = Field(None, alias='instanceName', description='The instance name of the database insight resource.') - usage: float | None = Field(None, alias='usage', description='Total amount used of the resource metric type (CPU, STORAGE).') - capacity: float | None = Field(None, alias='capacity', description='The maximum allocated amount of the resource metric type (CPU, STORAGE) for a set of databases.') - total_host_capacity: float | None = Field(None, alias='totalHostCapacity', description='The maximum host CPUs (cores x threads/core) on the underlying infrastructure. This only applies to CPU and does not not apply for Autonomous Databases.') - utilization_percent: float | None = Field(None, alias='utilizationPercent', description='Resource utilization in percentage') - usage_change_percent: float | None = Field(None, alias='usageChangePercent', description='Change in resource utilization in percentage') - - -class IoUsageTrend(OpsiBaseModel): - """Usage data for IO interface per usage unit.""" - - end_timestamp: datetime = Field(..., alias='endTimestamp', description='The timestamp in which the current sampling period ends in RFC 3339 format.') - disk_bytes_read_in_mbs: float = Field(..., alias='diskBytesReadInMBs', description='MBs Read.') - disk_bytes_written_in_mbs: float = Field(..., alias='diskBytesWrittenInMBs', description='MBs Written.') - disk_iops_read: float = Field(..., alias='diskIopsRead', description='Read IO operations per second.') - disk_iops_written: float = Field(..., alias='diskIopsWritten', description='Write IO operations per second.') - disk_iops: float = Field(..., alias='diskIops', description='IO operations per second.') - - -class IoUsageTrendAggregation(OpsiBaseModel): - """Usage data per io interface.""" - - mount_point: str = Field(..., alias='mountPoint', description='Mount point is specialized NTFS filesystem object.') - usage_data: list[IoUsageTrend] = Field(..., alias='usageData', description='List of usage data samples for a IO interface.') - - -class ListObjects(OpsiBaseModel): - """List of the objects.""" - - prefixes: list[str] | None = Field(None, alias='prefixes', description='Array comprising of all the prefixes.') - next_start_with: str | None = Field(None, alias='nextStartWith', description='Object names returned by a list query must be greater or equal to this parameter.') - objects: list[ObjectSummary] = Field(..., alias='objects', description='List of the object summary data.') - - -class MacsManagedAutonomousDatabaseConfigurationSummary(OpsiBaseModel): - """Configuration Summary of a Macs Managed Cloud Autonomous database.""" - - database_insight_id: str = Field(..., alias='databaseInsightId', description='Gets the database_insight_id of this DatabaseConfigurationSummary. The OCID of the database insight resource.') - entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseConfigurationSummary.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this DatabaseConfigurationSummary. The OCID of the compartment.') - database_name: str = Field(..., alias='databaseName', description='Gets the database_name of this DatabaseConfigurationSummary.\nThe database name. The database name is unique within the tenancy.') - database_display_name: str = Field(..., alias='databaseDisplayName', description='Gets the database_display_name of this DatabaseConfigurationSummary.\nThe user-friendly name for the database. The name does not have to be unique.') - database_type: str = Field(..., alias='databaseType', description='Gets the database_type of this DatabaseConfigurationSummary.\nOps Insights internal representation of the database type.') - database_version: str = Field(..., alias='databaseVersion', description='Gets the database_version of this DatabaseConfigurationSummary.\nThe version of the database.') - is_advanced_features_enabled: bool = Field(..., alias='isAdvancedFeaturesEnabled', description='Gets the is_advanced_features_enabled of this DatabaseConfigurationSummary.\nFlag is to identify if advanced features for autonomous database is enabled or not') - cdb_name: str = Field(..., alias='cdbName', description='Gets the cdb_name of this DatabaseConfigurationSummary.\nName of the CDB.Only applies to PDB.') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this DatabaseConfigurationSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this DatabaseConfigurationSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseConfigurationSummary.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) - database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') - management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') - parent_id: str = Field(..., alias='parentId', description='The OCID of the database.') - exadata_details: ExadataDetails = Field(..., alias='exadataDetails', description='The exadata_details field of MacsManagedAutonomousDatabaseConfigurationSummary.') - - -class MacsManagedAutonomousDatabaseInsight(OpsiBaseModel): - """Database insight resource.""" - - entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseInsight.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - id: str = Field(..., alias='id', description='Gets the id of this DatabaseInsight.\nDatabase insight identifier') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this DatabaseInsight.\nCompartment identifier of the database') - status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Gets the status of this DatabaseInsight.\nIndicates the status of a database insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_type: str | None = Field(None, alias='databaseType', description='Gets the database_type of this DatabaseInsight.\nOps Insights internal representation of the database type.') - database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this DatabaseInsight.\nThe version of the database.') - processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseInsight.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this DatabaseInsight.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this DatabaseInsight.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this DatabaseInsight.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - time_created: datetime = Field(..., alias='timeCreated', description='Gets the time_created of this DatabaseInsight.\nThe time the the database insight was first enabled. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DatabaseInsight.\nThe time the database insight was updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Gets the lifecycle_state of this DatabaseInsight.\nThe current state of the database.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DatabaseInsight.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - database_connection_status_details: str | None = Field(None, alias='databaseConnectionStatusDetails', description='Gets the database_connection_status_details of this DatabaseInsight.\nA message describing the status of the database connection of this resource. For example, it can be used to provide actionable information about the permission and content validity of the database connection.') - management_agent_id: str | None = Field(None, alias='managementAgentId', description='The OCID of the Management Agent.') - connection_details: ConnectionDetails | None = Field(None, alias='connectionDetails', description='The connection_details field of MacsManagedAutonomousDatabaseInsight.') - connection_credential_details: CredentialDetails | None = Field(None, alias='connectionCredentialDetails', description='The connection_credential_details field of MacsManagedAutonomousDatabaseInsight.') - database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') - database_name: str = Field(..., alias='databaseName', description='Name of database') - database_display_name: str | None = Field(None, alias='databaseDisplayName', description='Display name of database') - database_resource_type: str = Field(..., alias='databaseResourceType', description='OCI database resource type') - db_additional_details: Any | None = Field(None, alias='dbAdditionalDetails', description='Additional details of a database in JSON format. For autonomous databases, this is the AutonomousDatabase object serialized as a JSON string as defined in For EM, pass in null or an empty string. Note that this string needs to be escaped when specified in the curl command.') - parent_id: str | None = Field(None, alias='parentId', description='The OCID of the VM Cluster or DB System ID, depending on which configuration the resource belongs to.') - root_id: str | None = Field(None, alias='rootId', description='The OCID of the Exadata Infrastructure.') - - -class MacsManagedAutonomousDatabaseInsightSummary(OpsiBaseModel): - """Summary of a database insight resource.""" - - id: str = Field(..., alias='id', description='Gets the id of this DatabaseInsightSummary. The OCID of the database insight resource.') - database_id: str = Field(..., alias='databaseId', description='Gets the database_id of this DatabaseInsightSummary. The OCID of the database.') - compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this DatabaseInsightSummary. The OCID of the compartment.') - database_name: str | None = Field(None, alias='databaseName', description='Gets the database_name of this DatabaseInsightSummary.\nThe database name. The database name is unique within the tenancy.') - database_display_name: str | None = Field(None, alias='databaseDisplayName', description='Gets the database_display_name of this DatabaseInsightSummary.\nThe user-friendly name for the database. The name does not have to be unique.') - database_type: str | None = Field(None, alias='databaseType', description='Gets the database_type of this DatabaseInsightSummary.\nOps Insights internal representation of the database type.') - database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this DatabaseInsightSummary.\nThe version of the database.') - database_host_names: list[str] | None = Field(None, alias='databaseHostNames', description='Gets the database_host_names of this DatabaseInsightSummary.\nThe hostnames for the database.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this DatabaseInsightSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this DatabaseInsightSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this DatabaseInsightSummary.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseInsightSummary.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseInsightSummary.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) - status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='status', description='Gets the status of this DatabaseInsightSummary.\nIndicates the status of a database insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DatabaseInsightSummary.\nThe time the the database insight was first enabled. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DatabaseInsightSummary.\nThe time the database insight was updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DatabaseInsightSummary.\nThe current state of the database.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DatabaseInsightSummary.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - database_connection_status_details: str | None = Field(None, alias='databaseConnectionStatusDetails', description='Gets the database_connection_status_details of this DatabaseInsightSummary.\nA message describing the status of the database connection of this resource. For example, it can be used to provide actionable information about the permission and content validity of the database connection.') - database_resource_type: str | None = Field(None, alias='databaseResourceType', description='OCI database resource type') - management_agent_id: str | None = Field(None, alias='managementAgentId', description='The OCID of the Management Agent.') - parent_id: str | None = Field(None, alias='parentId', description='The OCID of the VM Cluster or DB System ID, depending on which configuration the resource belongs to.') - root_id: str | None = Field(None, alias='rootId', description='The OCID of the root resource for a composite target. e.g. for ExaCS members the rootId will be the OCID of the Exadata Infrastructure resource.') - - -class MacsManagedCloudDatabaseConfigurationSummary(OpsiBaseModel): - """Configuration Summary of a Macs Managed Cloud database.""" - - database_insight_id: str = Field(..., alias='databaseInsightId', description='Gets the database_insight_id of this DatabaseConfigurationSummary. The OCID of the database insight resource.') - entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseConfigurationSummary.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this DatabaseConfigurationSummary. The OCID of the compartment.') - database_name: str = Field(..., alias='databaseName', description='Gets the database_name of this DatabaseConfigurationSummary.\nThe database name. The database name is unique within the tenancy.') - database_display_name: str = Field(..., alias='databaseDisplayName', description='Gets the database_display_name of this DatabaseConfigurationSummary.\nThe user-friendly name for the database. The name does not have to be unique.') - database_type: str = Field(..., alias='databaseType', description='Gets the database_type of this DatabaseConfigurationSummary.\nOps Insights internal representation of the database type.') - database_version: str = Field(..., alias='databaseVersion', description='Gets the database_version of this DatabaseConfigurationSummary.\nThe version of the database.') - is_advanced_features_enabled: bool = Field(..., alias='isAdvancedFeaturesEnabled', description='Gets the is_advanced_features_enabled of this DatabaseConfigurationSummary.\nFlag is to identify if advanced features for autonomous database is enabled or not') - cdb_name: str = Field(..., alias='cdbName', description='Gets the cdb_name of this DatabaseConfigurationSummary.\nName of the CDB.Only applies to PDB.') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this DatabaseConfigurationSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this DatabaseConfigurationSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseConfigurationSummary.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) - database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') - management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') - parent_id: str = Field(..., alias='parentId', description='The OCID of the database.') - exadata_details: ExadataDetails = Field(..., alias='exadataDetails', description='The exadata_details field of MacsManagedCloudDatabaseConfigurationSummary.') - - -class MacsManagedCloudDatabaseHostInsight(OpsiBaseModel): - """Cloud MACS-managed database host insight resource.""" - - entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this HostInsight.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - id: str = Field(..., alias='id', description='Gets the id of this HostInsight. The OCID of the host insight resource.') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this HostInsight. The OCID of the compartment.') - host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this HostInsight.\nThe host name. The host name is unique amongst the hosts managed by the same management agent.') - host_display_name: str | None = Field(None, alias='hostDisplayName', description='Gets the host_display_name of this HostInsight.\nThe user-friendly name for the host. The name does not have to be unique.') - host_type: str | None = Field(None, alias='hostType', description='Gets the host_type of this HostInsight.\nOps Insights internal representation of the host type. Possible value is EXTERNAL-HOST.') - processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this HostInsight.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this HostInsight.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this HostInsight.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this HostInsight.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Gets the status of this HostInsight.\nIndicates the status of a host insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime = Field(..., alias='timeCreated', description='Gets the time_created of this HostInsight.\nThe time the the host insight was first enabled. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this HostInsight.\nThe time the host insight was updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Gets the lifecycle_state of this HostInsight.\nThe current state of the host.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this HostInsight.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') - platform_name: str | None = Field(None, alias='platformName', description='Platform name.') - platform_type: Literal['LINUX', 'SOLARIS', 'SUNOS', 'ZLINUX', 'WINDOWS', 'AIX', 'HP_UX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='platformType', description='Platform type.\nSupported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS].\nSupported platformType(s) for MACS-managed cloud host insight: [LINUX].\nSupported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX].\n\nAllowed values for this property are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - platform_version: str | None = Field(None, alias='platformVersion', description='Platform version.') - parent_id: str | None = Field(None, alias='parentId', description='The OCID of the VM Cluster or DB System ID, depending on which configuration the resource belongs to.') - root_id: str | None = Field(None, alias='rootId', description='The OCID of the Exadata Infrastructure.') - - -class MacsManagedCloudDatabaseHostInsightSummary(OpsiBaseModel): - """Summary of a Cloud MACS-managed database host insight resource.""" - - entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this HostInsightSummary.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - id: str = Field(..., alias='id', description='Gets the id of this HostInsightSummary. The OCID of the host insight resource.') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this HostInsightSummary. The OCID of the compartment.') - host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this HostInsightSummary.\nThe host name. The host name is unique amongst the hosts managed by the same management agent.') - host_display_name: str | None = Field(None, alias='hostDisplayName', description='Gets the host_display_name of this HostInsightSummary.\nThe user-friendly name for the host. The name does not have to be unique.') - host_type: str | None = Field(None, alias='hostType', description='Gets the host_type of this HostInsightSummary.\nOps Insights internal representation of the host type. Possible value is EXTERNAL-HOST.') - processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this HostInsightSummary.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this HostInsightSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this HostInsightSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this HostInsightSummary.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - opsi_private_endpoint_id: str | None = Field(None, alias='opsiPrivateEndpointId', description='Gets the opsi_private_endpoint_id of this HostInsightSummary. The OCID of the OPSI private endpoint.') - status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='status', description='Gets the status of this HostInsightSummary.\nIndicates the status of a host insight in Ops Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this HostInsightSummary.\nThe time the the host insight was first enabled. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this HostInsightSummary.\nThe time the host insight was updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this HostInsightSummary.\nThe current state of the host.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this HostInsightSummary.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') - parent_id: str | None = Field(None, alias='parentId', description='The OCID of the VM Cluster or DB System ID, depending on which configuration the resource belongs to.') - root_id: str | None = Field(None, alias='rootId', description='The OCID of the Exadata Infrastructure.') - platform_type: Literal['LINUX', 'SOLARIS', 'SUNOS', 'ZLINUX', 'WINDOWS', 'AIX', 'HP_UX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='platformType', description='Platform type.\nSupported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS].\nSupported platformType(s) for MACS-managed cloud host insight: [LINUX].\nSupported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX].\n\nAllowed values for this property are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class MacsManagedCloudDatabaseInsight(OpsiBaseModel): - """Database insight resource.""" - - entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseInsight.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - id: str = Field(..., alias='id', description='Gets the id of this DatabaseInsight.\nDatabase insight identifier') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this DatabaseInsight.\nCompartment identifier of the database') - status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Gets the status of this DatabaseInsight.\nIndicates the status of a database insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_type: str | None = Field(None, alias='databaseType', description='Gets the database_type of this DatabaseInsight.\nOps Insights internal representation of the database type.') - database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this DatabaseInsight.\nThe version of the database.') - processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseInsight.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this DatabaseInsight.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this DatabaseInsight.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this DatabaseInsight.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - time_created: datetime = Field(..., alias='timeCreated', description='Gets the time_created of this DatabaseInsight.\nThe time the the database insight was first enabled. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DatabaseInsight.\nThe time the database insight was updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Gets the lifecycle_state of this DatabaseInsight.\nThe current state of the database.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DatabaseInsight.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - database_connection_status_details: str | None = Field(None, alias='databaseConnectionStatusDetails', description='Gets the database_connection_status_details of this DatabaseInsight.\nA message describing the status of the database connection of this resource. For example, it can be used to provide actionable information about the permission and content validity of the database connection.') - management_agent_id: str | None = Field(None, alias='managementAgentId', description='The OCID of the Management Agent.') - connection_details: ConnectionDetails | None = Field(None, alias='connectionDetails', description='The connection_details field of MacsManagedCloudDatabaseInsight.') - connection_credential_details: CredentialDetails | None = Field(None, alias='connectionCredentialDetails', description='The connection_credential_details field of MacsManagedCloudDatabaseInsight.') - database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') - database_name: str = Field(..., alias='databaseName', description='Name of database') - database_display_name: str | None = Field(None, alias='databaseDisplayName', description='Display name of database') - database_resource_type: str = Field(..., alias='databaseResourceType', description='OCI database resource type') - db_additional_details: Any | None = Field(None, alias='dbAdditionalDetails', description='Additional details of a database in JSON format. For autonomous databases, this is the AutonomousDatabase object serialized as a JSON string as defined in For EM, pass in null or an empty string. Note that this string needs to be escaped when specified in the curl command.') - parent_id: str | None = Field(None, alias='parentId', description='The OCID of the VM Cluster or DB System ID, depending on which configuration the resource belongs to.') - root_id: str | None = Field(None, alias='rootId', description='The OCID of the Exadata Infrastructure.') - - -class MacsManagedCloudDatabaseInsightSummary(OpsiBaseModel): - """Summary of a database insight resource.""" - - id: str = Field(..., alias='id', description='Gets the id of this DatabaseInsightSummary. The OCID of the database insight resource.') - database_id: str = Field(..., alias='databaseId', description='Gets the database_id of this DatabaseInsightSummary. The OCID of the database.') - compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this DatabaseInsightSummary. The OCID of the compartment.') - database_name: str | None = Field(None, alias='databaseName', description='Gets the database_name of this DatabaseInsightSummary.\nThe database name. The database name is unique within the tenancy.') - database_display_name: str | None = Field(None, alias='databaseDisplayName', description='Gets the database_display_name of this DatabaseInsightSummary.\nThe user-friendly name for the database. The name does not have to be unique.') - database_type: str | None = Field(None, alias='databaseType', description='Gets the database_type of this DatabaseInsightSummary.\nOps Insights internal representation of the database type.') - database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this DatabaseInsightSummary.\nThe version of the database.') - database_host_names: list[str] | None = Field(None, alias='databaseHostNames', description='Gets the database_host_names of this DatabaseInsightSummary.\nThe hostnames for the database.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this DatabaseInsightSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this DatabaseInsightSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this DatabaseInsightSummary.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseInsightSummary.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseInsightSummary.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) - status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='status', description='Gets the status of this DatabaseInsightSummary.\nIndicates the status of a database insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DatabaseInsightSummary.\nThe time the the database insight was first enabled. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DatabaseInsightSummary.\nThe time the database insight was updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DatabaseInsightSummary.\nThe current state of the database.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DatabaseInsightSummary.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - database_connection_status_details: str | None = Field(None, alias='databaseConnectionStatusDetails', description='Gets the database_connection_status_details of this DatabaseInsightSummary.\nA message describing the status of the database connection of this resource. For example, it can be used to provide actionable information about the permission and content validity of the database connection.') - database_resource_type: str | None = Field(None, alias='databaseResourceType', description='OCI database resource type') - management_agent_id: str | None = Field(None, alias='managementAgentId', description='The OCID of the Management Agent.') - parent_id: str | None = Field(None, alias='parentId', description='The OCID of the VM Cluster or DB System ID, depending on which configuration the resource belongs to.') - root_id: str | None = Field(None, alias='rootId', description='The OCID of the root resource for a composite target. e.g. for ExaCS members the rootId will be the OCID of the Exadata Infrastructure resource.') - - -class MacsManagedCloudDbHostConfigurationSummary(OpsiBaseModel): - """Configuration Summary of Cloud MACS-managed database host insight resource.""" - - host_insight_id: str = Field(..., alias='hostInsightId', description='Gets the host_insight_id of this HostConfigurationSummary. The OCID of the host insight resource.') - entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this HostConfigurationSummary.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this HostConfigurationSummary. The OCID of the compartment.') - host_name: str = Field(..., alias='hostName', description='Gets the host_name of this HostConfigurationSummary.\nThe host name. The host name is unique amongst the hosts managed by the same management agent.') - platform_type: Literal['LINUX', 'SOLARIS', 'SUNOS', 'ZLINUX', 'WINDOWS', 'AIX', 'HP_UX', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='platformType', description='Gets the platform_type of this HostConfigurationSummary.\nPlatform type.\nSupported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS].\nSupported platformType(s) for MACS-managed cloud host insight: [LINUX].\nSupported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX].\n\nAllowed values for this property are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - platform_version: str = Field(..., alias='platformVersion', description='Gets the platform_version of this HostConfigurationSummary.\nPlatform version.') - platform_vendor: str = Field(..., alias='platformVendor', description='Gets the platform_vendor of this HostConfigurationSummary.\nPlatform vendor.') - total_cpus: int = Field(..., alias='totalCpus', description='Gets the total_cpus of this HostConfigurationSummary.\nTotal CPU on this host.') - total_memory_in_gbs: float = Field(..., alias='totalMemoryInGBs', description='Gets the total_memory_in_gbs of this HostConfigurationSummary.\nTotal amount of usable physical memory in gibabytes') - cpu_architecture: str = Field(..., alias='cpuArchitecture', description='Gets the cpu_architecture of this HostConfigurationSummary.\nCPU architechure') - cpu_cache_in_mbs: float = Field(..., alias='cpuCacheInMBs', description='Gets the cpu_cache_in_mbs of this HostConfigurationSummary.\nSize of cache memory in megabytes.') - cpu_vendor: str = Field(..., alias='cpuVendor', description='Gets the cpu_vendor of this HostConfigurationSummary.\nName of the CPU vendor.') - cpu_frequency_in_mhz: float = Field(..., alias='cpuFrequencyInMhz', description='Gets the cpu_frequency_in_mhz of this HostConfigurationSummary.\nClock frequency of the processor in megahertz.') - cpu_implementation: str = Field(..., alias='cpuImplementation', description='Gets the cpu_implementation of this HostConfigurationSummary.\nModel name of processor.') - cores_per_socket: int = Field(..., alias='coresPerSocket', description='Gets the cores_per_socket of this HostConfigurationSummary.\nNumber of cores per socket.') - total_sockets: int = Field(..., alias='totalSockets', description='Gets the total_sockets of this HostConfigurationSummary.\nNumber of total sockets.') - threads_per_socket: int = Field(..., alias='threadsPerSocket', description='Gets the threads_per_socket of this HostConfigurationSummary.\nNumber of threads per socket.') - is_hyper_threading_enabled: bool = Field(..., alias='isHyperThreadingEnabled', description='Gets the is_hyper_threading_enabled of this HostConfigurationSummary.\nIndicates if hyper-threading is enabled or not') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this HostConfigurationSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this HostConfigurationSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') - parent_id: str = Field(..., alias='parentId', description='The OCID of the database.') - exadata_details: ExadataDetails = Field(..., alias='exadataDetails', description='The exadata_details field of MacsManagedCloudDbHostConfigurationSummary.') - - -class MacsManagedCloudExadataInsight(OpsiBaseModel): - """Cloud MACS-managed Exadata insight resource (ExaCC) (ExaCS will be supported in the future).""" - - entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this ExadataInsight.\nSource of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - id: str = Field(..., alias='id', description='Gets the id of this ExadataInsight.\nExadata insight identifier') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this ExadataInsight.\nCompartment identifier of the Exadata insight resource') - exadata_name: str = Field(..., alias='exadataName', description='Gets the exadata_name of this ExadataInsight.\nThe Exadata system name. If the Exadata systems managed by Enterprise Manager, the name is unique amongst the Exadata systems managed by the same Enterprise Manager.') - exadata_display_name: str | None = Field(None, alias='exadataDisplayName', description='Gets the exadata_display_name of this ExadataInsight.\nThe user-friendly name for the Exadata system. The name does not have to be unique.') - exadata_type: Literal['DBMACHINE', 'EXACS', 'EXACC', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='exadataType', description='Gets the exadata_type of this ExadataInsight.\nOperations Insights internal representation of the the Exadata system type.\n\nAllowed values for this property are: "DBMACHINE", "EXACS", "EXACC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - exadata_rack_type: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'FLEX', 'BASE', 'ELASTIC', 'ELASTIC_BASE', 'ELASTIC_LARGE', 'ELASTIC_EXTRA_LARGE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='exadataRackType', description='Gets the exadata_rack_type of this ExadataInsight.\nExadata rack type.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", "FLEX", "BASE", "ELASTIC", "ELASTIC_BASE", "ELASTIC_LARGE", "ELASTIC_EXTRA_LARGE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - is_virtualized_exadata: bool | None = Field(None, alias='isVirtualizedExadata', description='Gets the is_virtualized_exadata of this ExadataInsight.\ntrue if virtualization is used in the Exadata system') - status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Gets the status of this ExadataInsight.\nIndicates the status of an Exadata insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - chargeback_plan_details: ChargebackPlanDetails | None = Field(None, alias='chargebackPlanDetails', description='Gets the chargeback_plan_details of this ExadataInsight.') - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this ExadataInsight.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this ExadataInsight.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExadataInsight.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - time_created: datetime = Field(..., alias='timeCreated', description='Gets the time_created of this ExadataInsight.\nThe time the the Exadata insight was first enabled. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this ExadataInsight.\nThe time the Exadata insight was updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Gets the lifecycle_state of this ExadataInsight.\nThe current state of the Exadata insight.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExadataInsight.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - status_details: str | None = Field(None, alias='statusDetails', description='Gets the status_details of this ExadataInsight.\nA message describing the status of the Exadata Resource. For example, it can be used to provide actionable information about the policies needed to access the Exadata Resource.') - exadata_infra_id: str = Field(..., alias='exadataInfraId', description='The OCID of the Exadata Infrastructure.') - exadata_infra_resource_type: Literal['cloudExadataInfrastructure', 'exadataInfrastructure', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataInfraResourceType', description='OCI exadata infrastructure resource type\n\nAllowed values for this property are: "cloudExadataInfrastructure", "exadataInfrastructure", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - exadata_shape: str = Field(..., alias='exadataShape', description='The shape of the Exadata Infrastructure.') - - -class MacsManagedCloudExadataInsightSummary(OpsiBaseModel): - """Summary of a Cloud MACS-managed Exadata insight resource (ExaCC).""" - - entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this ExadataInsightSummary.\nSource of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - id: str = Field(..., alias='id', description='Gets the id of this ExadataInsightSummary. The OCID of the Exadata insight resource.') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this ExadataInsightSummary. The OCID of the compartment.') - exadata_name: str = Field(..., alias='exadataName', description='Gets the exadata_name of this ExadataInsightSummary.\nThe Exadata system name. If the Exadata systems managed by Enterprise Manager, the name is unique amongst the Exadata systems managed by the same Enterprise Manager.') - exadata_display_name: str | None = Field(None, alias='exadataDisplayName', description='Gets the exadata_display_name of this ExadataInsightSummary.\nThe user-friendly name for the Exadata system. The name does not have to be unique.') - exadata_type: Literal['DBMACHINE', 'EXACS', 'EXACC', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='exadataType', description='Gets the exadata_type of this ExadataInsightSummary.\nOperations Insights internal representation of the the Exadata system type.\n\nAllowed values for this property are: "DBMACHINE", "EXACS", "EXACC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - exadata_rack_type: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'FLEX', 'BASE', 'ELASTIC', 'ELASTIC_BASE', 'ELASTIC_LARGE', 'ELASTIC_EXTRA_LARGE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='exadataRackType', description='Gets the exadata_rack_type of this ExadataInsightSummary.\nOperations Insights internal representation of the the Exadata system rack type.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", "FLEX", "BASE", "ELASTIC", "ELASTIC_BASE", "ELASTIC_LARGE", "ELASTIC_EXTRA_LARGE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this ExadataInsightSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this ExadataInsightSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExadataInsightSummary.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Gets the status of this ExadataInsightSummary.\nIndicates the status of an Exadata insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - chargeback_plan_details: ChargebackPlanDetails | None = Field(None, alias='chargebackPlanDetails', description='Gets the chargeback_plan_details of this ExadataInsightSummary.') - time_created: datetime = Field(..., alias='timeCreated', description='Gets the time_created of this ExadataInsightSummary.\nThe time the the Exadata insight was first enabled. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this ExadataInsightSummary.\nThe time the Exadata insight was updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Gets the lifecycle_state of this ExadataInsightSummary.\nThe current state of the Exadata insight.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExadataInsightSummary.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - status_details: str | None = Field(None, alias='statusDetails', description='Gets the status_details of this ExadataInsightSummary.\nA message describing the status of the Exadata Resource. For example, it can be used to provide actionable information about the policies needed to access the Exadata Resource.') - exadata_infra_id: str = Field(..., alias='exadataInfraId', description='The OCID of the Exadata Infrastructure.') - exadata_infra_resource_type: Literal['cloudExadataInfrastructure', 'exadataInfrastructure', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataInfraResourceType', description='OCI exadata infrastructure resource type\n\nAllowed values for this property are: "cloudExadataInfrastructure", "exadataInfrastructure", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - exadata_shape: str = Field(..., alias='exadataShape', description='The shape of the Exadata Infrastructure.') - - -class MacsManagedCloudHostConfigurationSummary(OpsiBaseModel): - """Configuration Summary of a Macs Managed Cloud host.""" - - host_insight_id: str = Field(..., alias='hostInsightId', description='Gets the host_insight_id of this HostConfigurationSummary. The OCID of the host insight resource.') - entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this HostConfigurationSummary.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this HostConfigurationSummary. The OCID of the compartment.') - host_name: str = Field(..., alias='hostName', description='Gets the host_name of this HostConfigurationSummary.\nThe host name. The host name is unique amongst the hosts managed by the same management agent.') - platform_type: Literal['LINUX', 'SOLARIS', 'SUNOS', 'ZLINUX', 'WINDOWS', 'AIX', 'HP_UX', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='platformType', description='Gets the platform_type of this HostConfigurationSummary.\nPlatform type.\nSupported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS].\nSupported platformType(s) for MACS-managed cloud host insight: [LINUX].\nSupported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX].\n\nAllowed values for this property are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - platform_version: str = Field(..., alias='platformVersion', description='Gets the platform_version of this HostConfigurationSummary.\nPlatform version.') - platform_vendor: str = Field(..., alias='platformVendor', description='Gets the platform_vendor of this HostConfigurationSummary.\nPlatform vendor.') - total_cpus: int = Field(..., alias='totalCpus', description='Gets the total_cpus of this HostConfigurationSummary.\nTotal CPU on this host.') - total_memory_in_gbs: float = Field(..., alias='totalMemoryInGBs', description='Gets the total_memory_in_gbs of this HostConfigurationSummary.\nTotal amount of usable physical memory in gibabytes') - cpu_architecture: str = Field(..., alias='cpuArchitecture', description='Gets the cpu_architecture of this HostConfigurationSummary.\nCPU architechure') - cpu_cache_in_mbs: float = Field(..., alias='cpuCacheInMBs', description='Gets the cpu_cache_in_mbs of this HostConfigurationSummary.\nSize of cache memory in megabytes.') - cpu_vendor: str = Field(..., alias='cpuVendor', description='Gets the cpu_vendor of this HostConfigurationSummary.\nName of the CPU vendor.') - cpu_frequency_in_mhz: float = Field(..., alias='cpuFrequencyInMhz', description='Gets the cpu_frequency_in_mhz of this HostConfigurationSummary.\nClock frequency of the processor in megahertz.') - cpu_implementation: str = Field(..., alias='cpuImplementation', description='Gets the cpu_implementation of this HostConfigurationSummary.\nModel name of processor.') - cores_per_socket: int = Field(..., alias='coresPerSocket', description='Gets the cores_per_socket of this HostConfigurationSummary.\nNumber of cores per socket.') - total_sockets: int = Field(..., alias='totalSockets', description='Gets the total_sockets of this HostConfigurationSummary.\nNumber of total sockets.') - threads_per_socket: int = Field(..., alias='threadsPerSocket', description='Gets the threads_per_socket of this HostConfigurationSummary.\nNumber of threads per socket.') - is_hyper_threading_enabled: bool = Field(..., alias='isHyperThreadingEnabled', description='Gets the is_hyper_threading_enabled of this HostConfigurationSummary.\nIndicates if hyper-threading is enabled or not') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this HostConfigurationSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this HostConfigurationSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - compute_id: str = Field(..., alias='computeId', description='The OCID of the Compute Instance.') - management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') - connector_id: str | None = Field(None, alias='connectorId', description='The OCID of External Database Connector.') - - -class MacsManagedCloudHostInsight(OpsiBaseModel): - """MACS-managed OCI Compute host insight resource.""" - - entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this HostInsight.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - id: str = Field(..., alias='id', description='Gets the id of this HostInsight. The OCID of the host insight resource.') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this HostInsight. The OCID of the compartment.') - host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this HostInsight.\nThe host name. The host name is unique amongst the hosts managed by the same management agent.') - host_display_name: str | None = Field(None, alias='hostDisplayName', description='Gets the host_display_name of this HostInsight.\nThe user-friendly name for the host. The name does not have to be unique.') - host_type: str | None = Field(None, alias='hostType', description='Gets the host_type of this HostInsight.\nOps Insights internal representation of the host type. Possible value is EXTERNAL-HOST.') - processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this HostInsight.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this HostInsight.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this HostInsight.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this HostInsight.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Gets the status of this HostInsight.\nIndicates the status of a host insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime = Field(..., alias='timeCreated', description='Gets the time_created of this HostInsight.\nThe time the the host insight was first enabled. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this HostInsight.\nThe time the host insight was updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Gets the lifecycle_state of this HostInsight.\nThe current state of the host.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this HostInsight.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - compute_id: str = Field(..., alias='computeId', description='The OCID of the Compute Instance.') - management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') - platform_name: str | None = Field(None, alias='platformName', description='Platform name.') - platform_type: Literal['LINUX', 'SOLARIS', 'SUNOS', 'ZLINUX', 'WINDOWS', 'AIX', 'HP_UX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='platformType', description='Platform type.\nSupported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS].\nSupported platformType(s) for MACS-managed cloud host insight: [LINUX].\nSupported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX].\n\nAllowed values for this property are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - platform_version: str | None = Field(None, alias='platformVersion', description='Platform version.') - - -class MacsManagedCloudHostInsightSummary(OpsiBaseModel): - """Summary of a MACS-managed cloud host insight resource.""" - - entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this HostInsightSummary.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - id: str = Field(..., alias='id', description='Gets the id of this HostInsightSummary. The OCID of the host insight resource.') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this HostInsightSummary. The OCID of the compartment.') - host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this HostInsightSummary.\nThe host name. The host name is unique amongst the hosts managed by the same management agent.') - host_display_name: str | None = Field(None, alias='hostDisplayName', description='Gets the host_display_name of this HostInsightSummary.\nThe user-friendly name for the host. The name does not have to be unique.') - host_type: str | None = Field(None, alias='hostType', description='Gets the host_type of this HostInsightSummary.\nOps Insights internal representation of the host type. Possible value is EXTERNAL-HOST.') - processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this HostInsightSummary.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this HostInsightSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this HostInsightSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this HostInsightSummary.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - opsi_private_endpoint_id: str | None = Field(None, alias='opsiPrivateEndpointId', description='Gets the opsi_private_endpoint_id of this HostInsightSummary. The OCID of the OPSI private endpoint.') - status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='status', description='Gets the status of this HostInsightSummary.\nIndicates the status of a host insight in Ops Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this HostInsightSummary.\nThe time the the host insight was first enabled. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this HostInsightSummary.\nThe time the host insight was updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this HostInsightSummary.\nThe current state of the host.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this HostInsightSummary.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - compute_id: str = Field(..., alias='computeId', description='The OCID of the Compute Instance.') - management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') - platform_type: Literal['LINUX', 'SOLARIS', 'SUNOS', 'ZLINUX', 'WINDOWS', 'AIX', 'HP_UX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='platformType', description='Platform type.\nSupported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS].\nSupported platformType(s) for MACS-managed cloud host insight: [LINUX].\nSupported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX].\n\nAllowed values for this property are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class MacsManagedExternalDatabaseConfigurationSummary(OpsiBaseModel): - """Configuration Summary of a Macs Managed External database.""" - - database_insight_id: str = Field(..., alias='databaseInsightId', description='Gets the database_insight_id of this DatabaseConfigurationSummary. The OCID of the database insight resource.') - entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseConfigurationSummary.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this DatabaseConfigurationSummary. The OCID of the compartment.') - database_name: str = Field(..., alias='databaseName', description='Gets the database_name of this DatabaseConfigurationSummary.\nThe database name. The database name is unique within the tenancy.') - database_display_name: str = Field(..., alias='databaseDisplayName', description='Gets the database_display_name of this DatabaseConfigurationSummary.\nThe user-friendly name for the database. The name does not have to be unique.') - database_type: str = Field(..., alias='databaseType', description='Gets the database_type of this DatabaseConfigurationSummary.\nOps Insights internal representation of the database type.') - database_version: str = Field(..., alias='databaseVersion', description='Gets the database_version of this DatabaseConfigurationSummary.\nThe version of the database.') - is_advanced_features_enabled: bool = Field(..., alias='isAdvancedFeaturesEnabled', description='Gets the is_advanced_features_enabled of this DatabaseConfigurationSummary.\nFlag is to identify if advanced features for autonomous database is enabled or not') - cdb_name: str = Field(..., alias='cdbName', description='Gets the cdb_name of this DatabaseConfigurationSummary.\nName of the CDB.Only applies to PDB.') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this DatabaseConfigurationSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this DatabaseConfigurationSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseConfigurationSummary.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) - database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') - management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') - connector_id: str = Field(..., alias='connectorId', description='The OCID of External Database Connector.') - instances: list[HostInstanceMap] = Field(..., alias='instances', description='Array of hostname and instance name.') - - -class MacsManagedExternalDatabaseInsight(OpsiBaseModel): - """Database insight resource.""" - - entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseInsight.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - id: str = Field(..., alias='id', description='Gets the id of this DatabaseInsight.\nDatabase insight identifier') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this DatabaseInsight.\nCompartment identifier of the database') - status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Gets the status of this DatabaseInsight.\nIndicates the status of a database insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_type: str | None = Field(None, alias='databaseType', description='Gets the database_type of this DatabaseInsight.\nOps Insights internal representation of the database type.') - database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this DatabaseInsight.\nThe version of the database.') - processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseInsight.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this DatabaseInsight.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this DatabaseInsight.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this DatabaseInsight.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - time_created: datetime = Field(..., alias='timeCreated', description='Gets the time_created of this DatabaseInsight.\nThe time the the database insight was first enabled. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DatabaseInsight.\nThe time the database insight was updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Gets the lifecycle_state of this DatabaseInsight.\nThe current state of the database.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DatabaseInsight.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - database_connection_status_details: str | None = Field(None, alias='databaseConnectionStatusDetails', description='Gets the database_connection_status_details of this DatabaseInsight.\nA message describing the status of the database connection of this resource. For example, it can be used to provide actionable information about the permission and content validity of the database connection.') - management_agent_id: str | None = Field(None, alias='managementAgentId', description='The OCID of the Management Agent.') - connector_id: str | None = Field(None, alias='connectorId', description='The OCID of External Database Connector.') - connection_details: ConnectionDetails | None = Field(None, alias='connectionDetails', description='The connection_details field of MacsManagedExternalDatabaseInsight.') - connection_credential_details: CredentialDetails | None = Field(None, alias='connectionCredentialDetails', description='The connection_credential_details field of MacsManagedExternalDatabaseInsight.') - database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') - database_name: str = Field(..., alias='databaseName', description='Name of database') - database_display_name: str | None = Field(None, alias='databaseDisplayName', description='Display name of database') - database_resource_type: str = Field(..., alias='databaseResourceType', description='OCI database resource type') - db_additional_details: Any | None = Field(None, alias='dbAdditionalDetails', description='Additional details of a database in JSON format. For autonomous databases, this is the AutonomousDatabase object serialized as a JSON string as defined in For EM, pass in null or an empty string. Note that this string needs to be escaped when specified in the curl command.') - - -class MacsManagedExternalDatabaseInsightSummary(OpsiBaseModel): - """Summary of a database insight resource.""" - - id: str = Field(..., alias='id', description='Gets the id of this DatabaseInsightSummary. The OCID of the database insight resource.') - database_id: str = Field(..., alias='databaseId', description='Gets the database_id of this DatabaseInsightSummary. The OCID of the database.') - compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this DatabaseInsightSummary. The OCID of the compartment.') - database_name: str | None = Field(None, alias='databaseName', description='Gets the database_name of this DatabaseInsightSummary.\nThe database name. The database name is unique within the tenancy.') - database_display_name: str | None = Field(None, alias='databaseDisplayName', description='Gets the database_display_name of this DatabaseInsightSummary.\nThe user-friendly name for the database. The name does not have to be unique.') - database_type: str | None = Field(None, alias='databaseType', description='Gets the database_type of this DatabaseInsightSummary.\nOps Insights internal representation of the database type.') - database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this DatabaseInsightSummary.\nThe version of the database.') - database_host_names: list[str] | None = Field(None, alias='databaseHostNames', description='Gets the database_host_names of this DatabaseInsightSummary.\nThe hostnames for the database.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this DatabaseInsightSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this DatabaseInsightSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this DatabaseInsightSummary.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseInsightSummary.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseInsightSummary.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) - status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='status', description='Gets the status of this DatabaseInsightSummary.\nIndicates the status of a database insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DatabaseInsightSummary.\nThe time the the database insight was first enabled. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DatabaseInsightSummary.\nThe time the database insight was updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DatabaseInsightSummary.\nThe current state of the database.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DatabaseInsightSummary.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - database_connection_status_details: str | None = Field(None, alias='databaseConnectionStatusDetails', description='Gets the database_connection_status_details of this DatabaseInsightSummary.\nA message describing the status of the database connection of this resource. For example, it can be used to provide actionable information about the permission and content validity of the database connection.') - database_resource_type: str | None = Field(None, alias='databaseResourceType', description='OCI database resource type') - management_agent_id: str | None = Field(None, alias='managementAgentId', description='The OCID of the Management Agent.') - connector_id: str | None = Field(None, alias='connectorId', description='The OCID of External Database Connector.') - - -class MacsManagedExternalHostConfigurationSummary(OpsiBaseModel): - """Configuration Summary of a Macs Managed External host.""" - - host_insight_id: str = Field(..., alias='hostInsightId', description='Gets the host_insight_id of this HostConfigurationSummary. The OCID of the host insight resource.') - entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this HostConfigurationSummary.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this HostConfigurationSummary. The OCID of the compartment.') - host_name: str = Field(..., alias='hostName', description='Gets the host_name of this HostConfigurationSummary.\nThe host name. The host name is unique amongst the hosts managed by the same management agent.') - platform_type: Literal['LINUX', 'SOLARIS', 'SUNOS', 'ZLINUX', 'WINDOWS', 'AIX', 'HP_UX', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='platformType', description='Gets the platform_type of this HostConfigurationSummary.\nPlatform type.\nSupported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS].\nSupported platformType(s) for MACS-managed cloud host insight: [LINUX].\nSupported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX].\n\nAllowed values for this property are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - platform_version: str = Field(..., alias='platformVersion', description='Gets the platform_version of this HostConfigurationSummary.\nPlatform version.') - platform_vendor: str = Field(..., alias='platformVendor', description='Gets the platform_vendor of this HostConfigurationSummary.\nPlatform vendor.') - total_cpus: int = Field(..., alias='totalCpus', description='Gets the total_cpus of this HostConfigurationSummary.\nTotal CPU on this host.') - total_memory_in_gbs: float = Field(..., alias='totalMemoryInGBs', description='Gets the total_memory_in_gbs of this HostConfigurationSummary.\nTotal amount of usable physical memory in gibabytes') - cpu_architecture: str = Field(..., alias='cpuArchitecture', description='Gets the cpu_architecture of this HostConfigurationSummary.\nCPU architechure') - cpu_cache_in_mbs: float = Field(..., alias='cpuCacheInMBs', description='Gets the cpu_cache_in_mbs of this HostConfigurationSummary.\nSize of cache memory in megabytes.') - cpu_vendor: str = Field(..., alias='cpuVendor', description='Gets the cpu_vendor of this HostConfigurationSummary.\nName of the CPU vendor.') - cpu_frequency_in_mhz: float = Field(..., alias='cpuFrequencyInMhz', description='Gets the cpu_frequency_in_mhz of this HostConfigurationSummary.\nClock frequency of the processor in megahertz.') - cpu_implementation: str = Field(..., alias='cpuImplementation', description='Gets the cpu_implementation of this HostConfigurationSummary.\nModel name of processor.') - cores_per_socket: int = Field(..., alias='coresPerSocket', description='Gets the cores_per_socket of this HostConfigurationSummary.\nNumber of cores per socket.') - total_sockets: int = Field(..., alias='totalSockets', description='Gets the total_sockets of this HostConfigurationSummary.\nNumber of total sockets.') - threads_per_socket: int = Field(..., alias='threadsPerSocket', description='Gets the threads_per_socket of this HostConfigurationSummary.\nNumber of threads per socket.') - is_hyper_threading_enabled: bool = Field(..., alias='isHyperThreadingEnabled', description='Gets the is_hyper_threading_enabled of this HostConfigurationSummary.\nIndicates if hyper-threading is enabled or not') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this HostConfigurationSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this HostConfigurationSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') - connector_id: str | None = Field(None, alias='connectorId', description='The OCID of External Database Connector.') - - -class MacsManagedExternalHostInsight(OpsiBaseModel): - """MACS-managed external host insight resource.""" - - entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this HostInsight.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - id: str = Field(..., alias='id', description='Gets the id of this HostInsight. The OCID of the host insight resource.') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this HostInsight. The OCID of the compartment.') - host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this HostInsight.\nThe host name. The host name is unique amongst the hosts managed by the same management agent.') - host_display_name: str | None = Field(None, alias='hostDisplayName', description='Gets the host_display_name of this HostInsight.\nThe user-friendly name for the host. The name does not have to be unique.') - host_type: str | None = Field(None, alias='hostType', description='Gets the host_type of this HostInsight.\nOps Insights internal representation of the host type. Possible value is EXTERNAL-HOST.') - processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this HostInsight.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this HostInsight.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this HostInsight.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this HostInsight.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Gets the status of this HostInsight.\nIndicates the status of a host insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime = Field(..., alias='timeCreated', description='Gets the time_created of this HostInsight.\nThe time the the host insight was first enabled. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this HostInsight.\nThe time the host insight was updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Gets the lifecycle_state of this HostInsight.\nThe current state of the host.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this HostInsight.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') - platform_name: str | None = Field(None, alias='platformName', description='Platform name.') - platform_type: Literal['LINUX', 'SOLARIS', 'SUNOS', 'ZLINUX', 'WINDOWS', 'AIX', 'HP_UX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='platformType', description='Platform type.\nSupported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS].\nSupported platformType(s) for MACS-managed cloud host insight: [LINUX].\nSupported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX].\n\nAllowed values for this property are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - platform_version: str | None = Field(None, alias='platformVersion', description='Platform version.') - - -class MacsManagedExternalHostInsightSummary(OpsiBaseModel): - """Summary of a MACS-managed external host insight resource.""" - - entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this HostInsightSummary.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - id: str = Field(..., alias='id', description='Gets the id of this HostInsightSummary. The OCID of the host insight resource.') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this HostInsightSummary. The OCID of the compartment.') - host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this HostInsightSummary.\nThe host name. The host name is unique amongst the hosts managed by the same management agent.') - host_display_name: str | None = Field(None, alias='hostDisplayName', description='Gets the host_display_name of this HostInsightSummary.\nThe user-friendly name for the host. The name does not have to be unique.') - host_type: str | None = Field(None, alias='hostType', description='Gets the host_type of this HostInsightSummary.\nOps Insights internal representation of the host type. Possible value is EXTERNAL-HOST.') - processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this HostInsightSummary.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this HostInsightSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this HostInsightSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this HostInsightSummary.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - opsi_private_endpoint_id: str | None = Field(None, alias='opsiPrivateEndpointId', description='Gets the opsi_private_endpoint_id of this HostInsightSummary. The OCID of the OPSI private endpoint.') - status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='status', description='Gets the status of this HostInsightSummary.\nIndicates the status of a host insight in Ops Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this HostInsightSummary.\nThe time the the host insight was first enabled. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this HostInsightSummary.\nThe time the host insight was updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this HostInsightSummary.\nThe current state of the host.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this HostInsightSummary.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') - platform_type: Literal['LINUX', 'SOLARIS', 'SUNOS', 'ZLINUX', 'WINDOWS', 'AIX', 'HP_UX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='platformType', description='Platform type.\nSupported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS].\nSupported platformType(s) for MACS-managed cloud host insight: [LINUX].\nSupported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX].\n\nAllowed values for this property are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class MdsMySqlDatabaseInsight(OpsiBaseModel): - """MySQL support within the OCI Ops Insights service has been deprecated as of January 29, 2026. Database insight resource.""" - - entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseInsight.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - id: str = Field(..., alias='id', description='Gets the id of this DatabaseInsight.\nDatabase insight identifier') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this DatabaseInsight.\nCompartment identifier of the database') - status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Gets the status of this DatabaseInsight.\nIndicates the status of a database insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_type: str | None = Field(None, alias='databaseType', description='Gets the database_type of this DatabaseInsight.\nOps Insights internal representation of the database type.') - database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this DatabaseInsight.\nThe version of the database.') - processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseInsight.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this DatabaseInsight.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this DatabaseInsight.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this DatabaseInsight.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - time_created: datetime = Field(..., alias='timeCreated', description='Gets the time_created of this DatabaseInsight.\nThe time the the database insight was first enabled. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DatabaseInsight.\nThe time the database insight was updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Gets the lifecycle_state of this DatabaseInsight.\nThe current state of the database.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DatabaseInsight.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - database_connection_status_details: str | None = Field(None, alias='databaseConnectionStatusDetails', description='Gets the database_connection_status_details of this DatabaseInsight.\nA message describing the status of the database connection of this resource. For example, it can be used to provide actionable information about the permission and content validity of the database connection.') - database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') - database_name: str = Field(..., alias='databaseName', description='Name of database') - database_display_name: str | None = Field(None, alias='databaseDisplayName', description='Display name of database') - database_resource_type: str = Field(..., alias='databaseResourceType', description='OCI database resource type') - is_highly_available: bool | None = Field(None, alias='isHighlyAvailable', description='Specifies if MYSQL DB System is highly available.') - is_heat_wave_cluster_attached: bool | None = Field(None, alias='isHeatWaveClusterAttached', description='Specifies if MYSQL DB System has heatwave cluster attached.') - db_additional_details: Any | None = Field(None, alias='dbAdditionalDetails', description='Additional details of a db system in JSON format. For MySQL DB System, this is the DbSystem object serialized as a JSON string as defined in.') - - -class MdsMySqlDatabaseInsightSummary(OpsiBaseModel): - """MySQL support within the OCI Ops Insights service has been deprecated as of January 29, 2026. Summary of a database insight resource.""" - - id: str = Field(..., alias='id', description='Gets the id of this DatabaseInsightSummary. The OCID of the database insight resource.') - database_id: str = Field(..., alias='databaseId', description='Gets the database_id of this DatabaseInsightSummary. The OCID of the database.') - compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this DatabaseInsightSummary. The OCID of the compartment.') - database_name: str | None = Field(None, alias='databaseName', description='Gets the database_name of this DatabaseInsightSummary.\nThe database name. The database name is unique within the tenancy.') - database_display_name: str | None = Field(None, alias='databaseDisplayName', description='Gets the database_display_name of this DatabaseInsightSummary.\nThe user-friendly name for the database. The name does not have to be unique.') - database_type: str | None = Field(None, alias='databaseType', description='Gets the database_type of this DatabaseInsightSummary.\nOps Insights internal representation of the database type.') - database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this DatabaseInsightSummary.\nThe version of the database.') - database_host_names: list[str] | None = Field(None, alias='databaseHostNames', description='Gets the database_host_names of this DatabaseInsightSummary.\nThe hostnames for the database.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this DatabaseInsightSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this DatabaseInsightSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this DatabaseInsightSummary.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseInsightSummary.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseInsightSummary.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) - status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='status', description='Gets the status of this DatabaseInsightSummary.\nIndicates the status of a database insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DatabaseInsightSummary.\nThe time the the database insight was first enabled. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DatabaseInsightSummary.\nThe time the database insight was updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DatabaseInsightSummary.\nThe current state of the database.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DatabaseInsightSummary.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - database_connection_status_details: str | None = Field(None, alias='databaseConnectionStatusDetails', description='Gets the database_connection_status_details of this DatabaseInsightSummary.\nA message describing the status of the database connection of this resource. For example, it can be used to provide actionable information about the permission and content validity of the database connection.') - database_resource_type: str | None = Field(None, alias='databaseResourceType', description='OCI database resource type') - - -class MdsMysqlDatabaseConfigurationSummary(OpsiBaseModel): - """Configuration Summary of a MDS MYSQL database.""" - - database_insight_id: str = Field(..., alias='databaseInsightId', description='Gets the database_insight_id of this DatabaseConfigurationSummary. The OCID of the database insight resource.') - entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseConfigurationSummary.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this DatabaseConfigurationSummary. The OCID of the compartment.') - database_name: str = Field(..., alias='databaseName', description='Gets the database_name of this DatabaseConfigurationSummary.\nThe database name. The database name is unique within the tenancy.') - database_display_name: str = Field(..., alias='databaseDisplayName', description='Gets the database_display_name of this DatabaseConfigurationSummary.\nThe user-friendly name for the database. The name does not have to be unique.') - database_type: str = Field(..., alias='databaseType', description='Gets the database_type of this DatabaseConfigurationSummary.\nOps Insights internal representation of the database type.') - database_version: str = Field(..., alias='databaseVersion', description='Gets the database_version of this DatabaseConfigurationSummary.\nThe version of the database.') - is_advanced_features_enabled: bool = Field(..., alias='isAdvancedFeaturesEnabled', description='Gets the is_advanced_features_enabled of this DatabaseConfigurationSummary.\nFlag is to identify if advanced features for autonomous database is enabled or not') - cdb_name: str = Field(..., alias='cdbName', description='Gets the cdb_name of this DatabaseConfigurationSummary.\nName of the CDB.Only applies to PDB.') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this DatabaseConfigurationSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this DatabaseConfigurationSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseConfigurationSummary.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) - database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') - is_heat_wave_cluster_attached: bool = Field(..., alias='isHeatWaveClusterAttached', description='Specifies if MYSQL DB System has heatwave cluster attached.') - is_highly_available: bool = Field(..., alias='isHighlyAvailable', description='Specifies if MYSQL DB System is highly available.') - shape_name: str = Field(..., alias='shapeName', description='The shape of the primary instances of MYSQL DB system. The shape determines resources allocated to a DB System - CPU cores\nand memory for VM shapes; CPU cores, memory and storage for non-VM shapes.') - - -class MySqlSqlStats(OpsiBaseModel): - """MySql Sql Stats type object.""" - - digest: str = Field(..., alias='digest', description='Unique SQL ID Digest for a MySql Statement.\nExample: `"c20fcea11911be36651b7ca7bd3712d4ed9ac1134cee9c6620039e1fb13b5eff"`') - time_collected: datetime = Field(..., alias='timeCollected', description='Collection timestamp.\nExample: `"2020-03-31T00:00:00.000Z"`') - command_type: str | None = Field(None, alias='commandType', description='Type of statement such as select, update or delete.') - total_rows: int | None = Field(None, alias='totalRows', description='Total number of SQL statements used in collection ranking calculation.') - perf_schema_used_percent: int | None = Field(None, alias='perfSchemaUsedPercent', description='Percent of SQL statements in the perf schema table relative to max or overflow count set in @@GLOBAL.performance_schema_digests_size.') - schema_name: str | None = Field(None, alias='schemaName', description='Name of Database Schema.\nExample: `"performance_schema"`') - exec_count: int | None = Field(None, alias='execCount', description='The total number of times the statement has executed.', ge=0) - total_latency_in_ps: int | None = Field(None, alias='totalLatencyInPs', description='The total wait time (in picoseconds) of timed occurrences of the statement.') - lock_latency_in_ps: int | None = Field(None, alias='lockLatencyInPs', description='The total time waiting (in picoseconds) for locks by timed occurrences of the statement.') - err_count: int | None = Field(None, alias='errCount', description='The total number of errors produced by occurrences of the statement.', ge=0) - warn_count: int | None = Field(None, alias='warnCount', description='The total number of warnings produced by occurrences of the statement.', ge=0) - rows_affected: int | None = Field(None, alias='rowsAffected', description='The total number of rows affected by occurrences of the statement.') - rows_sent: int | None = Field(None, alias='rowsSent', description='The total number of rows returned by occurrences of the statement.') - rows_examined: int | None = Field(None, alias='rowsExamined', description='The total number of rows read from storage engines by occurrences of the statement.') - tmp_disk_tables: int | None = Field(None, alias='tmpDiskTables', description='The total number of internal on-disk temporary tables created by occurrences of the statement.') - tmp_tables: int | None = Field(None, alias='tmpTables', description='The total number of internal in-memory temporary tables created by occurrences of the statement Count') - select_full_join: int | None = Field(None, alias='selectFullJoin', description='The total number of joins that perform table scans because they do not use indexes by occurrences of the statement. If this value is not 0') - select_full_range_join: int | None = Field(None, alias='selectFullRangeJoin', description='The total number of joins that used a range search on a reference table by occurrences of the statement') - select_range: int | None = Field(None, alias='selectRange', description='The total number of joins that used ranges on the first table by occurrences of the statement. This is normally not a critical issue even if the value is quite large. Count') - select_range_check: int | None = Field(None, alias='selectRangeCheck', description='The total number of joins without keys that check for key usage after each row by occurrences of the statement. If this is not 0') - select_scan: int | None = Field(None, alias='selectScan', description='The total number of joins that did a full scan of the first table by occurrences of the statement Count') - sort_merge_passes: int | None = Field(None, alias='sortMergePasses', description='The total number of sort merge passes by occurrences of the statement.') - sort_range: int | None = Field(None, alias='sortRange', description='The total number of sorts that were done using ranges by occurrences of the statement.') - rows_sorted: int | None = Field(None, alias='rowsSorted', description='The total number of rows sorted by occurrences of the statement.') - sort_scan: int | None = Field(None, alias='sortScan', description='The total number of sorts that were done by scanning the table by occurrences of the statement.') - no_index_used_count: int | None = Field(None, alias='noIndexUsedCount', description='The number of occurences of the statement which performed a table scan without using an index Count', ge=0) - no_good_index_used_count: int | None = Field(None, alias='noGoodIndexUsedCount', description='The number of occurences of the statement where the server found no good index to use Count', ge=0) - cpu_latency_in_ps: int | None = Field(None, alias='cpuLatencyInPs', description='The total time spent on CPU (in picoseconds) for the current thread.') - max_controlled_memory_in_bytes: int | None = Field(None, alias='maxControlledMemoryInBytes', description='The maximum amount of controlled memory (in bytes) used by the statement.') - max_total_memory_in_bytes: int | None = Field(None, alias='maxTotalMemoryInBytes', description='The maximum amount of memory (in bytes) used by the statement.') - exec_count_secondary: int | None = Field(None, alias='execCountSecondary', description='The total number of times a query was processed on the secondary engine (HEATWAVE) for occurrences of this statement Count.') - time_first_seen: datetime | None = Field(None, alias='timeFirstSeen', description='The time at which statement was first seen.\nExample: `"2023-01-16 08:04:31.533577"`') - time_last_seen: datetime | None = Field(None, alias='timeLastSeen', description='The time at which statement was most recently seen for all occurrences of the statement.\nExample: `"2023-01-30 02:17:08.067961"`') - - -class MySqlSqlText(OpsiBaseModel): - """MySql SQL Text type object.""" - - schema_name: str | None = Field(None, alias='schemaName', description='Name of Database Schema.\nExample: `"performance_schema"`') - digest: str = Field(..., alias='digest', description='digest\nExample: `"323k3k99ua09a90adf"`') - time_collected: datetime = Field(..., alias='timeCollected', description='Collection timestamp.\nExample: `"2020-05-06T00:00:00.000Z"`') - command_type: str | None = Field(None, alias='commandType', description='SQL event name\nExample: `"SELECT"`') - digest_text: str = Field(..., alias='digestText', description='The normalized statement string.\nExample: `"SELECT username,profile,default_tablespace,temporary_tablespace FROM dba_users"`') - - -class NetworkUsageTrend(OpsiBaseModel): - """Usage data samples.""" - - end_timestamp: datetime = Field(..., alias='endTimestamp', description='The timestamp in which the current sampling period ends in RFC 3339 format.') - all_network_read_in_mbps: float = Field(..., alias='allNetworkReadInMbps', description='Network read in Mbps.') - all_network_write_in_mbps: float = Field(..., alias='allNetworkWriteInMbps', description='Network write in Mbps.') - all_network_io_in_mbps: float = Field(..., alias='allNetworkIoInMbps', description='Network input/output in Mbps.') - - -class NetworkUsageTrendAggregation(OpsiBaseModel): - """Usage data per network interface.""" - - interface_name: str = Field(..., alias='interfaceName', description='Name of interface.') - ip_address: str = Field(..., alias='ipAddress', description='Address that is connected to a computer network that uses the Internet Protocol for communication.') - mac_address: str = Field(..., alias='macAddress', description='Unique identifier assigned to a network interface.') - usage_data: list[NetworkUsageTrend] = Field(..., alias='usageData', description='List of usage data samples for a network interface.') - - -class NewsContentTypes(OpsiBaseModel): - """Content types that the news report can handle.""" - - capacity_planning_resources: list[Any] | None = Field(None, alias='capacityPlanningResources', description='Supported resources for capacity planning content type.') - sql_insights_fleet_analysis_resources: list[Any] | None = Field(None, alias='sqlInsightsFleetAnalysisResources', description='Supported resources for SQL insights - fleet analysis content type.') - sql_insights_plan_changes_resources: list[Any] | None = Field(None, alias='sqlInsightsPlanChangesResources', description='Supported resources for SQL insights - plan changes content type.') - sql_insights_top_databases_resources: list[Any] | None = Field(None, alias='sqlInsightsTopDatabasesResources', description='Supported resources for SQL insights - top databases content type.') - sql_insights_top_sql_by_insights_resources: list[Any] | None = Field(None, alias='sqlInsightsTopSqlByInsightsResources', description='Supported resources for SQL insights - top SQL by insights content type.') - sql_insights_top_sql_resources: list[Any] | None = Field(None, alias='sqlInsightsTopSqlResources', description='Supported resources for SQL insights - top SQL content type.') - sql_insights_performance_degradation_resources: list[Any] | None = Field(None, alias='sqlInsightsPerformanceDegradationResources', description='Supported resources for SQL insights - performance degradation content type.') - actionable_insights_resources: list[Any] | None = Field(None, alias='actionableInsightsResources', description='Supported resources for actionable insights content type.') - - -class NewsReport(OpsiBaseModel): - """News report resource.""" - - news_frequency: Literal['WEEKLY', 'DAILY', 'HOURLY', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='newsFrequency', description='News report frequency.\n\nAllowed values for this property are: "WEEKLY", "DAILY", "HOURLY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - content_types: NewsContentTypes = Field(..., alias='contentTypes', description='The content_types field of NewsReport.') - locale: Literal['EN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='locale', description='Language of the news report.\n\nAllowed values for this property are: "EN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - id: str = Field(..., alias='id', description='The OCID of the news report resource.') - description: str | None = Field(None, alias='description', description='The description of the news report.') - compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') - name: str | None = Field(None, alias='name', description='The news report name.') - ons_topic_id: str = Field(..., alias='onsTopicId', description='The OCID of the ONS topic.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='status', description='Indicates the status of a news report in Ops Insights.\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime | None = Field(None, alias='timeCreated', description='The time the the news report was first enabled. An RFC3339 formatted datetime string.') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='The time the news report was updated. An RFC3339 formatted datetime string.') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='The current state of the news report.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - day_of_week: Literal['MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SUNDAY', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='dayOfWeek', description='Day of the week in which the news report will be sent if the frequency is set to WEEKLY.\n\nAllowed values for this property are: "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - are_child_compartments_included: bool | None = Field(None, alias='areChildCompartmentsIncluded', description='A flag to consider the resources within a given compartment and all sub-compartments.') - tag_filters: list[str] | None = Field(None, alias='tagFilters', description="List of tag filters; each filter composed by a namespace, key, and value.\nExample for defined tags - '.='.\nExample for freeform tags - '='.") - match_rule: Literal['MATCH_ANY', 'MATCH_ALL', 'MATCH_NONE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='matchRule', description='Match rule used for tag filters.\n\nAllowed values for this property are: "MATCH_ANY", "MATCH_ALL", "MATCH_NONE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class NewsReportCollection(OpsiBaseModel): - """Collection of news reports summary objects.""" - - items: list[NewsReportSummary] = Field(..., alias='items', description='Array of news reports summary objects.') - - -class NewsReportSummary(OpsiBaseModel): - """Summary of a news report resource.""" - - news_frequency: Literal['WEEKLY', 'DAILY', 'HOURLY', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='newsFrequency', description='News report frequency.\n\nAllowed values for this property are: "WEEKLY", "DAILY", "HOURLY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - content_types: NewsContentTypes = Field(..., alias='contentTypes', description='The content_types field of NewsReportSummary.') - locale: Literal['EN', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='locale', description='Language of the news report.\n\nAllowed values for this property are: "EN", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - id: str = Field(..., alias='id', description='The OCID of the news report resource.') - description: str | None = Field(None, alias='description', description='The description of the news report.') - compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') - name: str | None = Field(None, alias='name', description='The news report name.') - ons_topic_id: str | None = Field(None, alias='onsTopicId', description='The OCID of the ONS topic.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='status', description='Indicates the status of a news report in Ops Insights.\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime | None = Field(None, alias='timeCreated', description='The time the the news report was first enabled. An RFC3339 formatted datetime string.') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='The time the news report was updated. An RFC3339 formatted datetime string.') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='The current state of the news report.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - day_of_week: Literal['MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SUNDAY', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='dayOfWeek', description='Day of the week in which the news report will be sent if the frequency is set to WEEKLY.\n\nAllowed values for this property are: "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - are_child_compartments_included: bool | None = Field(None, alias='areChildCompartmentsIncluded', description='A flag to consider the resources within a given compartment and all sub-compartments.') - tag_filters: list[str] | None = Field(None, alias='tagFilters', description="List of tag filters; each filter composed by a namespace, key, and value.\nExample for defined tags - '.='.\nExample for freeform tags - '='.") - match_rule: Literal['MATCH_ANY', 'MATCH_ALL', 'MATCH_NONE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='matchRule', description='Match rule used for tag filters.\n\nAllowed values for this property are: "MATCH_ANY", "MATCH_ALL", "MATCH_NONE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class NewsReports(OpsiBaseModel): - """Logical grouping used for Operations Insights news reports related operations.""" - - news_reports: Any | None = Field(None, alias='newsReports', description='News report object.') - - -class ObjectSummary(OpsiBaseModel): - """Summary resource object.""" - - name: str | None = Field(None, alias='name', description='The name of the Awr Hub object.') - size: int | None = Field(None, alias='size', description='Size of the Awr Hub object in bytes.') - md5: str | None = Field(None, alias='md5', description='Base64-encoded MD5 hash of the Awr Hub object data.') - time_created: datetime | None = Field(None, alias='timeCreated', description='The time at which the resource was first created. An RFC3339 formatted datetime string') - etag: str | None = Field(None, alias='etag', description='For optimistic concurrency control. See `if-match`.') - storage_tier: Literal['STANDARD', 'INFREQUENTACCESS', 'ARCHIVE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='storageTier', description='The object\'s storage tier.\n\nAllowed values for this property are: "STANDARD", "INFREQUENTACCESS", "ARCHIVE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - archival_state: Literal['ARCHIVED', 'RESTORING', 'RESTORED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='archivalState', description='Archival state of an object for those in the archival tier.\n\nAllowed values for this property are: "ARCHIVED", "RESTORING", "RESTORED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_modified: datetime | None = Field(None, alias='timeModified', description='The date and time the Awr Hub object was modified') - - -class OperationsInsightsPrivateEndpoint(OpsiBaseModel): - """A private endpoint that allows Operation Insights services to connect to databases in a customer's virtual cloud network (VCN).""" - - id: str = Field(..., alias='id', description='The OCID of the Private service accessed database.') - display_name: str = Field(..., alias='displayName', description='The display name of the private endpoint.') - compartment_id: str = Field(..., alias='compartmentId', description='The compartment OCID of the Private service accessed database.') - vcn_id: str = Field(..., alias='vcnId', description='The OCID of the VCN.') - subnet_id: str = Field(..., alias='subnetId', description='The OCID of the subnet.') - private_ip: str | None = Field(None, alias='privateIp', description='The private IP addresses assigned to the private endpoint. All IP addresses will be concatenated if it is RAC DBs.') - description: str | None = Field(None, alias='description', description='The description of the private endpoint.') - time_created: datetime | None = Field(None, alias='timeCreated', description='The date and time the private endpoint was created, in the format defined by RFC3339.') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='The current state of the private endpoint.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - private_endpoint_status_details: str | None = Field(None, alias='privateEndpointStatusDetails', description='A message describing the status of the private endpoint connection of this resource. For example, it can be used to provide actionable information about the validity of the private endpoint connection.') - is_used_for_rac_dbs: bool | None = Field(None, alias='isUsedForRacDbs', description='The flag is to identify if private endpoint is used for rac database or not. This flag is deprecated and no longer is used.') - nsg_ids: list[str] | None = Field(None, alias='nsgIds', description='The OCIDs of the network security groups that the private endpoint belongs to.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - - -class OperationsInsightsPrivateEndpointCollection(OpsiBaseModel): - """A collection of Operation Insights private endpoint objects.""" - - items: list[OperationsInsightsPrivateEndpointSummary] = Field(..., alias='items', description='A list of OperationsInsightsPrivateEndpointSummary objects.') - - -class OperationsInsightsPrivateEndpointSummary(OpsiBaseModel): - """Summary of a Operation Insights private endpoint.""" - - id: str = Field(..., alias='id', description='The OCID of the Private service accessed database.') - display_name: str = Field(..., alias='displayName', description='The display name of the private endpoint.') - compartment_id: str = Field(..., alias='compartmentId', description='The compartment OCID of the Private service accessed database.') - vcn_id: str = Field(..., alias='vcnId', description='The OCID of the VCN.') - subnet_id: str = Field(..., alias='subnetId', description='The OCID of the subnet.') - is_used_for_rac_dbs: bool | None = Field(None, alias='isUsedForRacDbs', description='The flag to identify if private endpoint is used for rac database or not. This flag is deprecated and no longer is used.') - description: str | None = Field(None, alias='description', description='The description of the private endpoint.') - time_created: datetime = Field(..., alias='timeCreated', description='The date and time the private endpoint was created, in the format defined by RFC3339.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Private endpoint lifecycle states\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - private_endpoint_status_details: str | None = Field(None, alias='privateEndpointStatusDetails', description='A message describing the status of the private endpoint connection of this resource. For example, it can be used to provide actionable information about the validity of the private endpoint connection.') - - -class OperationsInsightsWarehouse(OpsiBaseModel): - """OPSI warehouse resource.""" - - id: str = Field(..., alias='id', description='OPSI Warehouse OCID') - compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') - display_name: str = Field(..., alias='displayName', description='User-friedly name of Ops Insights Warehouse that does not have to be unique.') - cpu_allocated: float = Field(..., alias='cpuAllocated', description='Number of CPUs allocated to OPSI Warehouse ADW.') - compute_model: Literal['OCPU', 'ECPU', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='computeModel', description='The compute model for the OPSI warehouse ADW (OCPU or ECPU)\n\nAllowed values for this property are: "OCPU", "ECPU", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - cpu_used: float | None = Field(None, alias='cpuUsed', description='Number of OCPUs used by OPSI Warehouse ADW. Can be fractional.') - storage_allocated_in_gbs: float | None = Field(None, alias='storageAllocatedInGBs', description='Storage allocated to OPSI Warehouse ADW.') - storage_used_in_gbs: float | None = Field(None, alias='storageUsedInGBs', description='Storage by OPSI Warehouse ADW in GB.') - dynamic_group_id: str | None = Field(None, alias='dynamicGroupId', description='OCID of the dynamic group created for the warehouse') - operations_insights_tenancy_id: str | None = Field(None, alias='operationsInsightsTenancyId', description='Tenancy Identifier of Ops Insights service') - time_last_wallet_rotated: datetime | None = Field(None, alias='timeLastWalletRotated', description='The time at which the ADW wallet was last rotated for the Ops Insights Warehouse. An RFC3339 formatted datetime string') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - time_created: datetime = Field(..., alias='timeCreated', description='The time at which the resource was first created. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='The time at which the resource was last updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Possible lifecycle states\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - - -class OperationsInsightsWarehouseSummary(OpsiBaseModel): - """Summary of a Operations Insights Warehouse resource.""" - - id: str = Field(..., alias='id', description='OPSI Warehouse OCID') - compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') - display_name: str = Field(..., alias='displayName', description='User-friedly name of Ops Insights Warehouse that does not have to be unique.') - cpu_allocated: float = Field(..., alias='cpuAllocated', description='Number of CPUs allocated to OPSI Warehouse ADW.') - compute_model: str | None = Field(None, alias='computeModel', description='The compute model for the OPSI warehouse ADW (OCPU or ECPU)') - cpu_used: float | None = Field(None, alias='cpuUsed', description='Number of OCPUs used by OPSI Warehouse ADW. Can be fractional.') - storage_allocated_in_gbs: float | None = Field(None, alias='storageAllocatedInGBs', description='Storage allocated to OPSI Warehouse ADW.') - storage_used_in_gbs: float | None = Field(None, alias='storageUsedInGBs', description='Storage by OPSI Warehouse ADW in GB.') - dynamic_group_id: str | None = Field(None, alias='dynamicGroupId', description='OCID of the dynamic group created for the warehouse') - operations_insights_tenancy_id: str | None = Field(None, alias='operationsInsightsTenancyId', description='Tenancy Identifier of Ops Insights service') - time_last_wallet_rotated: datetime | None = Field(None, alias='timeLastWalletRotated', description='The time at which the ADW wallet was last rotated for the Ops Insights Warehouse. An RFC3339 formatted datetime string') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - time_created: datetime = Field(..., alias='timeCreated', description='The time at which the resource was first created. An RFC3339 formatted datetime string') - time_updated: datetime = Field(..., alias='timeUpdated', description='The time at which the resource was last updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Possible lifecycle states\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - - -class OperationsInsightsWarehouseSummaryCollection(OpsiBaseModel): - """Collection of Operations Insights Warehouse summary objects.""" - - items: list[OperationsInsightsWarehouseSummary] = Field(..., alias='items', description='Array of Operations Insights Warehouse summary objects.') - - -class OperationsInsightsWarehouseUser(OpsiBaseModel): - """OPSI warehouse User.""" - - operations_insights_warehouse_id: str = Field(..., alias='operationsInsightsWarehouseId', description='OPSI Warehouse OCID') - id: str = Field(..., alias='id', description='Hub User OCID') - compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') - name: str = Field(..., alias='name', description='Username for schema which would have access to AWR Data, Enterprise Manager Data and Ops Insights OPSI Hub.') - connection_password: str | None = Field(None, alias='connectionPassword', description='User provided connection password for the AWR Data, Enterprise Manager Data and Ops Insights OPSI Hub.') - is_awr_data_access: bool = Field(..., alias='isAwrDataAccess', description='Indicate whether user has access to AWR data.') - is_em_data_access: bool | None = Field(None, alias='isEmDataAccess', description='Indicate whether user has access to EM data.') - is_opsi_data_access: bool | None = Field(None, alias='isOpsiDataAccess', description='Indicate whether user has access to OPSI data.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - time_created: datetime = Field(..., alias='timeCreated', description='The time at which the resource was first created. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='The time at which the resource was last updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Possible lifecycle states\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - - -class OperationsInsightsWarehouseUserSummary(OpsiBaseModel): - """Summary of a Operations Insights Warehouse User.""" - - operations_insights_warehouse_id: str = Field(..., alias='operationsInsightsWarehouseId', description='OPSI Warehouse OCID') - id: str = Field(..., alias='id', description='Hub User OCID') - compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') - name: str = Field(..., alias='name', description='Username for schema which would have access to AWR Data, Enterprise Manager Data and Ops Insights OPSI Hub.') - connection_password: str | None = Field(None, alias='connectionPassword', description='User provided connection password for the AWR Data, Enterprise Manager Data and Ops Insights OPSI Hub.') - is_awr_data_access: bool = Field(..., alias='isAwrDataAccess', description='Indicate whether user has access to AWR data.') - is_em_data_access: bool | None = Field(None, alias='isEmDataAccess', description='Indicate whether user has access to EM data.') - is_opsi_data_access: bool | None = Field(None, alias='isOpsiDataAccess', description='Indicate whether user has access to OPSI data.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - time_created: datetime = Field(..., alias='timeCreated', description='The time at which the resource was first created. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='The time at which the resource was last updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Possible lifecycle states\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - - -class OperationsInsightsWarehouseUserSummaryCollection(OpsiBaseModel): - """Collection of Operations Insights Warehouse User summary objects.""" - - items: list[OperationsInsightsWarehouseUserSummary] = Field(..., alias='items', description='Array of Operations Insights Warehouse user summary objects.') - - -class OperationsInsightsWarehouseUsers(OpsiBaseModel): - """Logical grouping used for Operations Insights Warehouse User operations.""" - - operations_insights_warehouse_users: Any | None = Field(None, alias='operationsInsightsWarehouseUsers', description='Operations Insights Warehouse User Object.') - - -class OperationsInsightsWarehouses(OpsiBaseModel): - """Logical grouping used for Ops Insights Warehouse operations.""" - - operations_insights_warehouses: Any | None = Field(None, alias='operationsInsightsWarehouses', description='Ops Insights Warehouse Object.') - - -class OpsiConfiguration(OpsiBaseModel): - """OPSI configuration.""" - - id: str | None = Field(None, alias='id', description='OCID of OPSI configuration resource.') - compartment_id: str | None = Field(None, alias='compartmentId', description='The OCID of the compartment.') - opsi_config_type: Literal['UX_CONFIGURATION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='opsiConfigType', description='OPSI configuration type.\n\nAllowed values for this property are: "UX_CONFIGURATION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - display_name: str | None = Field(None, alias='displayName', description='User-friendly display name for the OPSI configuration. The name does not have to be unique.') - description: str | None = Field(None, alias='description', description='Description of OPSI configuration.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - time_created: datetime | None = Field(None, alias='timeCreated', description='The time at which the resource was first created. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='The time at which the resource was last updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='OPSI configuration resource lifecycle state.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - config_items: list[OpsiConfigurationConfigurationItemSummary] | None = Field(None, alias='configItems', description='Array of configuration item summary objects.') - - -class OpsiConfigurationBasicConfigurationItemSummary(OpsiBaseModel): - """Basic configuration item summary. Value and defaultValue fields will contain the custom value stored in the resource and default value from Ops Insights respectively.""" - - config_item_type: Literal['BASIC', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='configItemType', description='Gets the config_item_type of this OpsiConfigurationConfigurationItemSummary.\nType of configuration item.\n\nAllowed values for this property are: "BASIC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - name: str | None = Field(None, alias='name', description='Name of configuration item.') - value: str | None = Field(None, alias='value', description='Value of configuration item.') - default_value: str | None = Field(None, alias='defaultValue', description='Value of configuration item.') - applicable_contexts: list[str] | None = Field(None, alias='applicableContexts', description='List of contexts in Operations Insights where this configuration item is applicable.') - metadata: ConfigurationItemMetadata | None = Field(None, alias='metadata', description='The metadata field of OpsiConfigurationBasicConfigurationItemSummary.') - - -class OpsiConfigurationConfigurationItemSummary(OpsiBaseModel): - """Configuration item summary.""" - - config_item_type: Literal['BASIC', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='configItemType', description='Type of configuration item.\n\nAllowed values for this property are: "BASIC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class OpsiConfigurationSummary(OpsiBaseModel): - """OPSI configuration summary.""" - - id: str | None = Field(None, alias='id', description='OCID of OPSI configuration resource.') - compartment_id: str | None = Field(None, alias='compartmentId', description='The OCID of the compartment.') - opsi_config_type: Literal['UX_CONFIGURATION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='opsiConfigType', description='OPSI configuration type.\n\nAllowed values for this property are: "UX_CONFIGURATION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - display_name: str | None = Field(None, alias='displayName', description='User-friendly display name for the OPSI configuration. The name does not have to be unique.') - description: str | None = Field(None, alias='description', description='Description of OPSI configuration.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - time_created: datetime | None = Field(None, alias='timeCreated', description='The time at which the resource was first created. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='The time at which the resource was last updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='OPSI configuration resource lifecycle state.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - - -class OpsiConfigurations(OpsiBaseModel): - """An OPSI configuration resource is a container for storing custom values for customizable configuration items exposed by Operations Insights.""" - - opsi_configurations: Any | None = Field(None, alias='opsiConfigurations', description='OPSI Configuration Object.') - - -class OpsiConfigurationsCollection(OpsiBaseModel): - """Collection of OPSI configuration summary objects.""" - - items: list[OpsiConfigurationSummary] = Field(..., alias='items', description='Array of OPSI configuration summary objects.') - - -class OpsiDataObject(OpsiBaseModel): - """OPSI data object.""" - - identifier: str = Field(..., alias='identifier', description='Unique identifier of OPSI data object.') - data_object_type: Literal['DATABASE_INSIGHTS_DATA_OBJECT', 'HOST_INSIGHTS_DATA_OBJECT', 'EXADATA_INSIGHTS_DATA_OBJECT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dataObjectType', description='Type of OPSI data object.\n\nAllowed values for this property are: "DATABASE_INSIGHTS_DATA_OBJECT", "HOST_INSIGHTS_DATA_OBJECT", "EXADATA_INSIGHTS_DATA_OBJECT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - display_name: str = Field(..., alias='displayName', description='User-friendly name of OPSI data object.') - description: str | None = Field(None, alias='description', description='Description of OPSI data object.') - name: str | None = Field(None, alias='name', description='Name of the data object, which can be used in data object queries just like how view names are used in a query.') - group_names: list[str] | None = Field(None, alias='groupNames', description='Names of all the groups to which the data object belongs to.') - supported_query_time_period: str | None = Field(None, alias='supportedQueryTimePeriod', description='Time period supported by the data object for quering data.\nTime period is in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D.\nExamples: P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months).') - columns_metadata: list[DataObjectColumnMetadata] = Field(..., alias='columnsMetadata', description='Metadata of columns in a data object.') - supported_query_params: list[OpsiDataObjectSupportedQueryParam] | None = Field(None, alias='supportedQueryParams', description='Supported query parameters by this OPSI data object that can be configured while a data object query involving this data object is executed.') - - -class OpsiDataObjectDetailsInQuery(OpsiBaseModel): - """Details for OPSI data object used in a data object query.""" - - data_object_details_target: Literal['INDIVIDUAL_OPSIDATAOBJECT', 'OPSIDATAOBJECTTYPE_OPSIDATAOBJECTS'] = Field(..., alias='dataObjectDetailsTarget', description='Data objects to which this OpsiDataObjectDetailsInQuery is applicable.\n\nAllowed values for this property are: "INDIVIDUAL_OPSIDATAOBJECT", "OPSIDATAOBJECTTYPE_OPSIDATAOBJECTS"') - query_params: list[OpsiDataObjectQueryParam] | None = Field(None, alias='queryParams', description='An array of query parameters to be applied, for the OPSI data objects targetted by dataObjectDetailsTarget, before executing the query.\nRefer to supportedQueryParams of OpsiDataObject for the supported query parameters.') - - -class OpsiDataObjectQueryParam(OpsiBaseModel): - """Details for a query parameter to be applied on an OPSI data object, when a data object query is executed.""" - - name: str = Field(..., alias='name', description='Name of the query parameter.') - value: Any = Field(..., alias='value', description='Value for the query parameter.') - - -class OpsiDataObjectSummary(OpsiBaseModel): - """Summary of an OPSI data object.""" - - identifier: str = Field(..., alias='identifier', description='Unique identifier of OPSI data object.') - data_object_type: Literal['DATABASE_INSIGHTS_DATA_OBJECT', 'HOST_INSIGHTS_DATA_OBJECT', 'EXADATA_INSIGHTS_DATA_OBJECT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dataObjectType', description='Type of OPSI data object.\n\nAllowed values for this property are: "DATABASE_INSIGHTS_DATA_OBJECT", "HOST_INSIGHTS_DATA_OBJECT", "EXADATA_INSIGHTS_DATA_OBJECT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - display_name: str = Field(..., alias='displayName', description='User-friendly name of OPSI data object.') - description: str | None = Field(None, alias='description', description='Description of OPSI data object.') - name: str | None = Field(None, alias='name', description='Name of the data object, which can be used in data object queries just like how view names are used in a query.') - group_names: list[str] | None = Field(None, alias='groupNames', description='Names of all the groups to which the data object belongs to.') - - -class OpsiDataObjectSupportedQueryParam(OpsiBaseModel): - """Details of query parameter supported by an OPSI data object.""" - - name: str = Field(..., alias='name', description='Name of the query parameter.') - description: str | None = Field(None, alias='description', description='Description of the query parameter.') - data_type: str | None = Field(None, alias='dataType', description='Data type of the for the query parameter.') - - -class OpsiDataObjectTypeOpsiDataObjectDetailsInQuery(OpsiBaseModel): - """Details applicable for all OPSI data objects of a specific OpsiDataObjectType used in a data object query.""" - - data_object_details_target: Literal['INDIVIDUAL_OPSIDATAOBJECT', 'OPSIDATAOBJECTTYPE_OPSIDATAOBJECTS'] = Field(..., alias='dataObjectDetailsTarget', description='Gets the data_object_details_target of this OpsiDataObjectDetailsInQuery.\nData objects to which this OpsiDataObjectDetailsInQuery is applicable.\n\nAllowed values for this property are: "INDIVIDUAL_OPSIDATAOBJECT", "OPSIDATAOBJECTTYPE_OPSIDATAOBJECTS"') - query_params: list[OpsiDataObjectQueryParam] | None = Field(None, alias='queryParams', description='Gets the _query_params of this OpsiDataObjectDetailsInQuery.\nAn array of query parameters to be applied, for the OPSI data objects targetted by dataObjectDetailsTarget, before executing the query.\nRefer to supportedQueryParams of OpsiDataObject for the supported query parameters.') - data_object_type: Literal['DATABASE_INSIGHTS_DATA_OBJECT', 'HOST_INSIGHTS_DATA_OBJECT', 'EXADATA_INSIGHTS_DATA_OBJECT'] = Field(..., alias='dataObjectType', description='Type of OPSI data object.\n\nAllowed values for this property are: "DATABASE_INSIGHTS_DATA_OBJECT", "HOST_INSIGHTS_DATA_OBJECT", "EXADATA_INSIGHTS_DATA_OBJECT"') - - -class OpsiDataObjects(OpsiBaseModel): - """Logical grouping used for OPSI data object targeted operations.""" - - opsi_data_objects: Any | None = Field(None, alias='opsiDataObjects', description='OPSI Data Object.') - - -class OpsiDataObjectsCollection(OpsiBaseModel): - """Collection of OPSI data object summary objects.""" - - items: list[OpsiDataObjectSummary] = Field(..., alias='items', description='Array of OPSI data object summary objects.') - - -class OpsiDataStores(OpsiBaseModel): - """Logical grouping used for Ops Insights Data Store operations.""" - - opsi_data_stores: Any | None = Field(None, alias='opsiDataStores', description='OPSI Data Store Object.') - - -class OpsiUxConfiguration(OpsiBaseModel): - """OPSI UX configuration.""" - - id: str | None = Field(None, alias='id', description='Gets the id of this OpsiConfiguration. OCID of OPSI configuration resource.') - compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this OpsiConfiguration. The OCID of the compartment.') - opsi_config_type: Literal['UX_CONFIGURATION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='opsiConfigType', description='Gets the opsi_config_type of this OpsiConfiguration.\nOPSI configuration type.\n\nAllowed values for this property are: "UX_CONFIGURATION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - display_name: str | None = Field(None, alias='displayName', description='Gets the display_name of this OpsiConfiguration.\nUser-friendly display name for the OPSI configuration. The name does not have to be unique.') - description: str | None = Field(None, alias='description', description='Gets the description of this OpsiConfiguration.\nDescription of OPSI configuration.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this OpsiConfiguration.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this OpsiConfiguration.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this OpsiConfiguration.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this OpsiConfiguration.\nThe time at which the resource was first created. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this OpsiConfiguration.\nThe time at which the resource was last updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this OpsiConfiguration.\nOPSI configuration resource lifecycle state.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this OpsiConfiguration.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - config_items: list[OpsiConfigurationConfigurationItemSummary] | None = Field(None, alias='configItems', description='Gets the config_items of this OpsiConfiguration.\nArray of configuration item summary objects.') - - -class OpsiUxConfigurationSummary(OpsiBaseModel): - """OPSI UX configuration summary.""" - - id: str | None = Field(None, alias='id', description='Gets the id of this OpsiConfigurationSummary. OCID of OPSI configuration resource.') - compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this OpsiConfigurationSummary. The OCID of the compartment.') - opsi_config_type: Literal['UX_CONFIGURATION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='opsiConfigType', description='Gets the opsi_config_type of this OpsiConfigurationSummary.\nOPSI configuration type.\n\nAllowed values for this property are: "UX_CONFIGURATION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - display_name: str | None = Field(None, alias='displayName', description='Gets the display_name of this OpsiConfigurationSummary.\nUser-friendly display name for the OPSI configuration. The name does not have to be unique.') - description: str | None = Field(None, alias='description', description='Gets the description of this OpsiConfigurationSummary.\nDescription of OPSI configuration.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this OpsiConfigurationSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this OpsiConfigurationSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this OpsiConfigurationSummary.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this OpsiConfigurationSummary.\nThe time at which the resource was first created. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this OpsiConfigurationSummary.\nThe time at which the resource was last updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this OpsiConfigurationSummary.\nOPSI configuration resource lifecycle state.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this OpsiConfigurationSummary.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - - -class OpsiWarehouseDataObjects(OpsiBaseModel): - """Logical grouping used for Operations Insights Warehouse data objects operations.""" - - opsi_warehouse_data_objects: Any | None = Field(None, alias='opsiWarehouseDataObjects', description='Operations Insights Warehouse Data Object.') - - -class PeComanagedDatabaseConnectionDetails(OpsiBaseModel): - """Connection details of the private endpoints.""" - - hosts: list[PeComanagedDatabaseHostDetails] = Field(..., alias='hosts', description='List of hosts and port for private endpoint accessed database resource.') - protocol: Literal['TCP', 'TCPS', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='protocol', description='Protocol used for connection requests for private endpoint accssed database resource.\n\nAllowed values for this property are: "TCP", "TCPS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - service_name: str | None = Field(None, alias='serviceName', description='Database service name used for connection requests.') - - -class PeComanagedDatabaseHostDetails(OpsiBaseModel): - """Input Host Details used for connection requests for private endpoint accessed db resource.""" - - host_ip: str | None = Field(None, alias='hostIp', description='Host IP used for connection requests for Cloud DB resource.') - port: int | None = Field(None, alias='port', description='Listener port number used for connection requests for rivate endpoint accessed db resource.') - - -class PeComanagedDatabaseInsight(OpsiBaseModel): - """Database insight resource.""" - - entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseInsight.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - id: str = Field(..., alias='id', description='Gets the id of this DatabaseInsight.\nDatabase insight identifier') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this DatabaseInsight.\nCompartment identifier of the database') - status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Gets the status of this DatabaseInsight.\nIndicates the status of a database insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - database_type: str | None = Field(None, alias='databaseType', description='Gets the database_type of this DatabaseInsight.\nOps Insights internal representation of the database type.') - database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this DatabaseInsight.\nThe version of the database.') - processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseInsight.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this DatabaseInsight.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this DatabaseInsight.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this DatabaseInsight.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - time_created: datetime = Field(..., alias='timeCreated', description='Gets the time_created of this DatabaseInsight.\nThe time the the database insight was first enabled. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DatabaseInsight.\nThe time the database insight was updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Gets the lifecycle_state of this DatabaseInsight.\nThe current state of the database.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DatabaseInsight.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - database_connection_status_details: str | None = Field(None, alias='databaseConnectionStatusDetails', description='Gets the database_connection_status_details of this DatabaseInsight.\nA message describing the status of the database connection of this resource. For example, it can be used to provide actionable information about the permission and content validity of the database connection.') - opsi_private_endpoint_id: str | None = Field(None, alias='opsiPrivateEndpointId', description='The OCID of the OPSI private endpoint.') - connection_details: PeComanagedDatabaseConnectionDetails | None = Field(None, alias='connectionDetails', description='The connection_details field of PeComanagedDatabaseInsight.') - credential_details: CredentialDetails | None = Field(None, alias='credentialDetails', description='The credential_details field of PeComanagedDatabaseInsight.') - database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') - database_name: str = Field(..., alias='databaseName', description='Name of database') - database_display_name: str | None = Field(None, alias='databaseDisplayName', description='Display name of database') - database_resource_type: str = Field(..., alias='databaseResourceType', description='OCI database resource type') - parent_id: str | None = Field(None, alias='parentId', description='The OCID of the VM Cluster or DB System ID, depending on which configuration the resource belongs to.') - root_id: str | None = Field(None, alias='rootId', description='The OCID of the Exadata Infrastructure.') - - -class PeComanagedDatabaseInsightSummary(OpsiBaseModel): - """Summary of a database insight resource.""" - - id: str = Field(..., alias='id', description='Gets the id of this DatabaseInsightSummary. The OCID of the database insight resource.') - database_id: str = Field(..., alias='databaseId', description='Gets the database_id of this DatabaseInsightSummary. The OCID of the database.') - compartment_id: str | None = Field(None, alias='compartmentId', description='Gets the compartment_id of this DatabaseInsightSummary. The OCID of the compartment.') - database_name: str | None = Field(None, alias='databaseName', description='Gets the database_name of this DatabaseInsightSummary.\nThe database name. The database name is unique within the tenancy.') - database_display_name: str | None = Field(None, alias='databaseDisplayName', description='Gets the database_display_name of this DatabaseInsightSummary.\nThe user-friendly name for the database. The name does not have to be unique.') - database_type: str | None = Field(None, alias='databaseType', description='Gets the database_type of this DatabaseInsightSummary.\nOps Insights internal representation of the database type.') - database_version: str | None = Field(None, alias='databaseVersion', description='Gets the database_version of this DatabaseInsightSummary.\nThe version of the database.') - database_host_names: list[str] | None = Field(None, alias='databaseHostNames', description='Gets the database_host_names of this DatabaseInsightSummary.\nThe hostnames for the database.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this DatabaseInsightSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this DatabaseInsightSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this DatabaseInsightSummary.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseInsightSummary.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseInsightSummary.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) - status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='status', description='Gets the status of this DatabaseInsightSummary.\nIndicates the status of a database insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this DatabaseInsightSummary.\nThe time the the database insight was first enabled. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this DatabaseInsightSummary.\nThe time the database insight was updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this DatabaseInsightSummary.\nThe current state of the database.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this DatabaseInsightSummary.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - database_connection_status_details: str | None = Field(None, alias='databaseConnectionStatusDetails', description='Gets the database_connection_status_details of this DatabaseInsightSummary.\nA message describing the status of the database connection of this resource. For example, it can be used to provide actionable information about the permission and content validity of the database connection.') - database_resource_type: str | None = Field(None, alias='databaseResourceType', description='OCI database resource type') - opsi_private_endpoint_id: str | None = Field(None, alias='opsiPrivateEndpointId', description='The OCID of the OPSI private endpoint.') - parent_id: str | None = Field(None, alias='parentId', description='The OCID of the VM Cluster or DB System ID, depending on which configuration the resource belongs to.') - root_id: str | None = Field(None, alias='rootId', description='The OCID of the root resource for a composite target. e.g. for ExaCS members the rootId will be the OCID of the Exadata Infrastructure resource.') - - -class PeComanagedExadataInsight(OpsiBaseModel): - """Private endpoint managed Exadata insight resource (ExaCS).""" - - entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this ExadataInsight.\nSource of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - id: str = Field(..., alias='id', description='Gets the id of this ExadataInsight.\nExadata insight identifier') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this ExadataInsight.\nCompartment identifier of the Exadata insight resource') - exadata_name: str = Field(..., alias='exadataName', description='Gets the exadata_name of this ExadataInsight.\nThe Exadata system name. If the Exadata systems managed by Enterprise Manager, the name is unique amongst the Exadata systems managed by the same Enterprise Manager.') - exadata_display_name: str | None = Field(None, alias='exadataDisplayName', description='Gets the exadata_display_name of this ExadataInsight.\nThe user-friendly name for the Exadata system. The name does not have to be unique.') - exadata_type: Literal['DBMACHINE', 'EXACS', 'EXACC', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='exadataType', description='Gets the exadata_type of this ExadataInsight.\nOperations Insights internal representation of the the Exadata system type.\n\nAllowed values for this property are: "DBMACHINE", "EXACS", "EXACC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - exadata_rack_type: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'FLEX', 'BASE', 'ELASTIC', 'ELASTIC_BASE', 'ELASTIC_LARGE', 'ELASTIC_EXTRA_LARGE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='exadataRackType', description='Gets the exadata_rack_type of this ExadataInsight.\nExadata rack type.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", "FLEX", "BASE", "ELASTIC", "ELASTIC_BASE", "ELASTIC_LARGE", "ELASTIC_EXTRA_LARGE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - is_virtualized_exadata: bool | None = Field(None, alias='isVirtualizedExadata', description='Gets the is_virtualized_exadata of this ExadataInsight.\ntrue if virtualization is used in the Exadata system') - status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Gets the status of this ExadataInsight.\nIndicates the status of an Exadata insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - chargeback_plan_details: ChargebackPlanDetails | None = Field(None, alias='chargebackPlanDetails', description='Gets the chargeback_plan_details of this ExadataInsight.') - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this ExadataInsight.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this ExadataInsight.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExadataInsight.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - time_created: datetime = Field(..., alias='timeCreated', description='Gets the time_created of this ExadataInsight.\nThe time the the Exadata insight was first enabled. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this ExadataInsight.\nThe time the Exadata insight was updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Gets the lifecycle_state of this ExadataInsight.\nThe current state of the Exadata insight.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExadataInsight.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - status_details: str | None = Field(None, alias='statusDetails', description='Gets the status_details of this ExadataInsight.\nA message describing the status of the Exadata Resource. For example, it can be used to provide actionable information about the policies needed to access the Exadata Resource.') - exadata_infra_id: str = Field(..., alias='exadataInfraId', description='The OCID of the Exadata Infrastructure.') - exadata_infra_resource_type: Literal['cloudExadataInfrastructure', 'exadataInfrastructure', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataInfraResourceType', description='OCI exadata infrastructure resource type\n\nAllowed values for this property are: "cloudExadataInfrastructure", "exadataInfrastructure", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - exadata_shape: str = Field(..., alias='exadataShape', description='The shape of the Exadata Infrastructure.') - - -class PeComanagedExadataInsightSummary(OpsiBaseModel): - """Summary of a Private endpoint managed Exadata insight resource (ExaCS).""" - - entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this ExadataInsightSummary.\nSource of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - id: str = Field(..., alias='id', description='Gets the id of this ExadataInsightSummary. The OCID of the Exadata insight resource.') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this ExadataInsightSummary. The OCID of the compartment.') - exadata_name: str = Field(..., alias='exadataName', description='Gets the exadata_name of this ExadataInsightSummary.\nThe Exadata system name. If the Exadata systems managed by Enterprise Manager, the name is unique amongst the Exadata systems managed by the same Enterprise Manager.') - exadata_display_name: str | None = Field(None, alias='exadataDisplayName', description='Gets the exadata_display_name of this ExadataInsightSummary.\nThe user-friendly name for the Exadata system. The name does not have to be unique.') - exadata_type: Literal['DBMACHINE', 'EXACS', 'EXACC', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='exadataType', description='Gets the exadata_type of this ExadataInsightSummary.\nOperations Insights internal representation of the the Exadata system type.\n\nAllowed values for this property are: "DBMACHINE", "EXACS", "EXACC", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - exadata_rack_type: Literal['FULL', 'HALF', 'QUARTER', 'EIGHTH', 'FLEX', 'BASE', 'ELASTIC', 'ELASTIC_BASE', 'ELASTIC_LARGE', 'ELASTIC_EXTRA_LARGE', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='exadataRackType', description='Gets the exadata_rack_type of this ExadataInsightSummary.\nOperations Insights internal representation of the the Exadata system rack type.\n\nAllowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", "FLEX", "BASE", "ELASTIC", "ELASTIC_BASE", "ELASTIC_LARGE", "ELASTIC_EXTRA_LARGE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this ExadataInsightSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this ExadataInsightSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this ExadataInsightSummary.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Gets the status of this ExadataInsightSummary.\nIndicates the status of an Exadata insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - chargeback_plan_details: ChargebackPlanDetails | None = Field(None, alias='chargebackPlanDetails', description='Gets the chargeback_plan_details of this ExadataInsightSummary.') - time_created: datetime = Field(..., alias='timeCreated', description='Gets the time_created of this ExadataInsightSummary.\nThe time the the Exadata insight was first enabled. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this ExadataInsightSummary.\nThe time the Exadata insight was updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Gets the lifecycle_state of this ExadataInsightSummary.\nThe current state of the Exadata insight.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this ExadataInsightSummary.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - status_details: str | None = Field(None, alias='statusDetails', description='Gets the status_details of this ExadataInsightSummary.\nA message describing the status of the Exadata Resource. For example, it can be used to provide actionable information about the policies needed to access the Exadata Resource.') - exadata_infra_id: str = Field(..., alias='exadataInfraId', description='The OCID of the Exadata Infrastructure.') - exadata_infra_resource_type: Literal['cloudExadataInfrastructure', 'exadataInfrastructure', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataInfraResourceType', description='OCI exadata infrastructure resource type\n\nAllowed values for this property are: "cloudExadataInfrastructure", "exadataInfrastructure", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - exadata_shape: str = Field(..., alias='exadataShape', description='The shape of the Exadata Infrastructure.') - - -class PeComanagedHostConfigurationSummary(OpsiBaseModel): - """Configuration Summary of a PeComanaged host.""" - - host_insight_id: str = Field(..., alias='hostInsightId', description='Gets the host_insight_id of this HostConfigurationSummary. The OCID of the host insight resource.') - entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this HostConfigurationSummary.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this HostConfigurationSummary. The OCID of the compartment.') - host_name: str = Field(..., alias='hostName', description='Gets the host_name of this HostConfigurationSummary.\nThe host name. The host name is unique amongst the hosts managed by the same management agent.') - platform_type: Literal['LINUX', 'SOLARIS', 'SUNOS', 'ZLINUX', 'WINDOWS', 'AIX', 'HP_UX', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='platformType', description='Gets the platform_type of this HostConfigurationSummary.\nPlatform type.\nSupported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS].\nSupported platformType(s) for MACS-managed cloud host insight: [LINUX].\nSupported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX].\n\nAllowed values for this property are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - platform_version: str = Field(..., alias='platformVersion', description='Gets the platform_version of this HostConfigurationSummary.\nPlatform version.') - platform_vendor: str = Field(..., alias='platformVendor', description='Gets the platform_vendor of this HostConfigurationSummary.\nPlatform vendor.') - total_cpus: int = Field(..., alias='totalCpus', description='Gets the total_cpus of this HostConfigurationSummary.\nTotal CPU on this host.') - total_memory_in_gbs: float = Field(..., alias='totalMemoryInGBs', description='Gets the total_memory_in_gbs of this HostConfigurationSummary.\nTotal amount of usable physical memory in gibabytes') - cpu_architecture: str = Field(..., alias='cpuArchitecture', description='Gets the cpu_architecture of this HostConfigurationSummary.\nCPU architechure') - cpu_cache_in_mbs: float = Field(..., alias='cpuCacheInMBs', description='Gets the cpu_cache_in_mbs of this HostConfigurationSummary.\nSize of cache memory in megabytes.') - cpu_vendor: str = Field(..., alias='cpuVendor', description='Gets the cpu_vendor of this HostConfigurationSummary.\nName of the CPU vendor.') - cpu_frequency_in_mhz: float = Field(..., alias='cpuFrequencyInMhz', description='Gets the cpu_frequency_in_mhz of this HostConfigurationSummary.\nClock frequency of the processor in megahertz.') - cpu_implementation: str = Field(..., alias='cpuImplementation', description='Gets the cpu_implementation of this HostConfigurationSummary.\nModel name of processor.') - cores_per_socket: int = Field(..., alias='coresPerSocket', description='Gets the cores_per_socket of this HostConfigurationSummary.\nNumber of cores per socket.') - total_sockets: int = Field(..., alias='totalSockets', description='Gets the total_sockets of this HostConfigurationSummary.\nNumber of total sockets.') - threads_per_socket: int = Field(..., alias='threadsPerSocket', description='Gets the threads_per_socket of this HostConfigurationSummary.\nNumber of threads per socket.') - is_hyper_threading_enabled: bool = Field(..., alias='isHyperThreadingEnabled', description='Gets the is_hyper_threading_enabled of this HostConfigurationSummary.\nIndicates if hyper-threading is enabled or not') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this HostConfigurationSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this HostConfigurationSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - opsi_private_endpoint_id: str = Field(..., alias='opsiPrivateEndpointId', description='The OCID of the OPSI private endpoint.') - parent_id: str = Field(..., alias='parentId', description='The OCID of the database.') - exadata_details: ExadataDetails = Field(..., alias='exadataDetails', description='The exadata_details field of PeComanagedHostConfigurationSummary.') - - -class PeComanagedHostInsight(OpsiBaseModel): - """Private Endpoint host insight resource.""" - - entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this HostInsight.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - id: str = Field(..., alias='id', description='Gets the id of this HostInsight. The OCID of the host insight resource.') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this HostInsight. The OCID of the compartment.') - host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this HostInsight.\nThe host name. The host name is unique amongst the hosts managed by the same management agent.') - host_display_name: str | None = Field(None, alias='hostDisplayName', description='Gets the host_display_name of this HostInsight.\nThe user-friendly name for the host. The name does not have to be unique.') - host_type: str | None = Field(None, alias='hostType', description='Gets the host_type of this HostInsight.\nOps Insights internal representation of the host type. Possible value is EXTERNAL-HOST.') - processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this HostInsight.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this HostInsight.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this HostInsight.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this HostInsight.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Gets the status of this HostInsight.\nIndicates the status of a host insight in Operations Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime = Field(..., alias='timeCreated', description='Gets the time_created of this HostInsight.\nThe time the the host insight was first enabled. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this HostInsight.\nThe time the host insight was updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Gets the lifecycle_state of this HostInsight.\nThe current state of the host.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this HostInsight.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - opsi_private_endpoint_id: str = Field(..., alias='opsiPrivateEndpointId', description='The OCID of the OPSI private endpoint.') - platform_type: Literal['LINUX', 'SOLARIS', 'SUNOS', 'ZLINUX', 'WINDOWS', 'AIX', 'HP_UX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='platformType', description='Platform type.\nSupported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS].\nSupported platformType(s) for MACS-managed cloud host insight: [LINUX].\nSupported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX].\n\nAllowed values for this property are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - parent_id: str | None = Field(None, alias='parentId', description='The OCID of the VM Cluster or DB System ID, depending on which configuration the resource belongs to.') - root_id: str | None = Field(None, alias='rootId', description='The OCID of the Exadata Infrastructure.') - - -class PeComanagedHostInsightSummary(OpsiBaseModel): - """Summary of a Private Endpoint host insight resource.""" - - entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this HostInsightSummary.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - id: str = Field(..., alias='id', description='Gets the id of this HostInsightSummary. The OCID of the host insight resource.') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this HostInsightSummary. The OCID of the compartment.') - host_name: str | None = Field(None, alias='hostName', description='Gets the host_name of this HostInsightSummary.\nThe host name. The host name is unique amongst the hosts managed by the same management agent.') - host_display_name: str | None = Field(None, alias='hostDisplayName', description='Gets the host_display_name of this HostInsightSummary.\nThe user-friendly name for the host. The name does not have to be unique.') - host_type: str | None = Field(None, alias='hostType', description='Gets the host_type of this HostInsightSummary.\nOps Insights internal representation of the host type. Possible value is EXTERNAL-HOST.') - processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this HostInsightSummary.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this HostInsightSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this HostInsightSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this HostInsightSummary.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - opsi_private_endpoint_id: str | None = Field(None, alias='opsiPrivateEndpointId', description='Gets the opsi_private_endpoint_id of this HostInsightSummary. The OCID of the OPSI private endpoint.') - status: Literal['DISABLED', 'ENABLED', 'TERMINATED', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='status', description='Gets the status of this HostInsightSummary.\nIndicates the status of a host insight in Ops Insights\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_created: datetime | None = Field(None, alias='timeCreated', description='Gets the time_created of this HostInsightSummary.\nThe time the the host insight was first enabled. An RFC3339 formatted datetime string') - time_updated: datetime | None = Field(None, alias='timeUpdated', description='Gets the time_updated of this HostInsightSummary.\nThe time the host insight was updated. An RFC3339 formatted datetime string') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'NEEDS_ATTENTION', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='lifecycleState', description='Gets the lifecycle_state of this HostInsightSummary.\nThe current state of the host.\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - lifecycle_details: str | None = Field(None, alias='lifecycleDetails', description='Gets the lifecycle_details of this HostInsightSummary.\nA message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.') - platform_type: Literal['LINUX', 'SOLARIS', 'SUNOS', 'ZLINUX', 'WINDOWS', 'AIX', 'HP_UX', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='platformType', description='Platform type.\nSupported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS].\nSupported platformType(s) for MACS-managed cloud host insight: [LINUX].\nSupported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX].\n\nAllowed values for this property are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - parent_id: str | None = Field(None, alias='parentId', description='The OCID of the VM Cluster or DB System ID, depending on which configuration the resource belongs to.') - root_id: str | None = Field(None, alias='rootId', description='The OCID of the Exadata Infrastructure.') - - -class PeComanagedManagedExternalDatabaseConfigurationSummary(OpsiBaseModel): - """Configuration Summary of a Private Endpoint Co-managed External database.""" - - database_insight_id: str = Field(..., alias='databaseInsightId', description='Gets the database_insight_id of this DatabaseConfigurationSummary. The OCID of the database insight resource.') - entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='entitySource', description='Gets the entity_source of this DatabaseConfigurationSummary.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - compartment_id: str = Field(..., alias='compartmentId', description='Gets the compartment_id of this DatabaseConfigurationSummary. The OCID of the compartment.') - database_name: str = Field(..., alias='databaseName', description='Gets the database_name of this DatabaseConfigurationSummary.\nThe database name. The database name is unique within the tenancy.') - database_display_name: str = Field(..., alias='databaseDisplayName', description='Gets the database_display_name of this DatabaseConfigurationSummary.\nThe user-friendly name for the database. The name does not have to be unique.') - database_type: str = Field(..., alias='databaseType', description='Gets the database_type of this DatabaseConfigurationSummary.\nOps Insights internal representation of the database type.') - database_version: str = Field(..., alias='databaseVersion', description='Gets the database_version of this DatabaseConfigurationSummary.\nThe version of the database.') - is_advanced_features_enabled: bool = Field(..., alias='isAdvancedFeaturesEnabled', description='Gets the is_advanced_features_enabled of this DatabaseConfigurationSummary.\nFlag is to identify if advanced features for autonomous database is enabled or not') - cdb_name: str = Field(..., alias='cdbName', description='Gets the cdb_name of this DatabaseConfigurationSummary.\nName of the CDB.Only applies to PDB.') - defined_tags: dict[str, dict[str, Any]] = Field(..., alias='definedTags', description='Gets the defined_tags of this DatabaseConfigurationSummary.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - freeform_tags: dict[str, str] = Field(..., alias='freeformTags', description='Gets the freeform_tags of this DatabaseConfigurationSummary.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - processor_count: int | None = Field(None, alias='processorCount', description='Gets the processor_count of this DatabaseConfigurationSummary.\nProcessor count. This is the OCPU count for Autonomous Database and CPU core count for other database types.', ge=0) - database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') - parent_id: str = Field(..., alias='parentId', description='The OCID of the database.') - opsi_private_endpoint_id: str = Field(..., alias='opsiPrivateEndpointId', description='The OCID of the OPSI private endpoint.') - instances: list[HostInstanceMap] = Field(..., alias='instances', description='Array of hostname and instance name.') - exadata_details: ExadataDetails = Field(..., alias='exadataDetails', description='The exadata_details field of PeComanagedManagedExternalDatabaseConfigurationSummary.') - - -class ProjectedDataItem(OpsiBaseModel): - """The timestamp of the projected event and their corresponding resource value. `highValue` and `lowValue` are the uncertainty bounds of the corresponding value.""" - - end_timestamp: datetime = Field(..., alias='endTimestamp', description='The timestamp in which the current sampling period ends in RFC 3339 format.') - usage: float = Field(..., alias='usage', description='Total amount used of the resource metric type (CPU, STORAGE).') - high_value: float = Field(..., alias='highValue', description='Upper uncertainty bound of the current usage value.') - low_value: float = Field(..., alias='lowValue', description='Lower uncertainty bound of the current usage value.') - - -class QueryDataObjectJsonResultSetRowsCollection(OpsiBaseModel): - """Collection of result set rows from the data object query.""" - - format: Literal['JSON', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='format', description='Gets the format of this QueryDataObjectResultSetRowsCollection.\nFormat type of data object query result set.\n\nAllowed values for this property are: "JSON", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - items: list[Any] = Field(..., alias='items', description='Array of result set rows.') - items_metadata: list[QueryDataObjectResultSetColumnMetadata] = Field(..., alias='itemsMetadata', description='Array of QueryDataObjectResultSetColumnMetadata objects that describe the result set columns.') - query_execution_time_in_seconds: float | None = Field(None, alias='queryExecutionTimeInSeconds', description='Time taken for executing the data object query (in seconds).\nConsider optimizing the query or reducing the target data range, if query execution time is longer.') - - -class QueryDataObjectResultSetColumnMetadata(OpsiBaseModel): - """Metadata of a column in a data object query result set.""" - - name: str = Field(..., alias='name', description='Name of the column in a data object query result set.') - data_type: Literal['NUMBER', 'OTHER', 'TIMESTAMP', 'VARCHAR2'] | None = Field(None, alias='dataType', description='Type of the column in a data object query result.') - data_type_name: Literal['NUMBER', 'TIMESTAMP', 'VARCHAR2', 'OTHER', 'UNKNOWN_ENUM_VALUE'] | None = Field(None, alias='dataTypeName', description='Type name of the column in a data object query result set.\n\nAllowed values for this property are: "NUMBER", "TIMESTAMP", "VARCHAR2", "OTHER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class QueryDataObjectResultSetRowsCollection(OpsiBaseModel): - """Collection of result set rows from the data object query.""" - - format: Literal['JSON', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='format', description='Format type of data object query result set.\n\nAllowed values for this property are: "JSON", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class QueryOpsiDataObjectDataDetails(OpsiRequestModel): - """Information required to form and execute query on an OPSI data object.""" - - data_object_identifier: str | None = Field(None, alias='dataObjectIdentifier', description='Unique OPSI data object identifier.') - data_objects: list[OpsiDataObjectDetailsInQuery] | None = Field(None, alias='dataObjects', description='Details of OPSI data objects used in the query.') - query: DataObjectQuery = Field(..., alias='query', description='The query field of QueryOpsiDataObjectDataDetails.') - resource_filters: ResourceFilters | None = Field(None, alias='resourceFilters', description='The resource_filters field of QueryOpsiDataObjectDataDetails.') - - -class QueryWarehouseDataObjectDataDetails(OpsiRequestModel): - """Information required to form and execute Operations Insights Warehouse data objects query.""" - - query: DataObjectQuery = Field(..., alias='query', description='The query field of QueryWarehouseDataObjectDataDetails.') - - -class RelatedObjectTypeDetails(OpsiBaseModel): - """Related object details.""" - - type: Literal['SCHEMA_OBJECT', 'SQL', 'DATABASE_PARAMETER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='type', description='Type of related object\n\nAllowed values for this property are: "SCHEMA_OBJECT", "SQL", "DATABASE_PARAMETER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class ReportGroupingDetails(OpsiBaseModel): - """Report groupings.""" - - key: str = Field(..., alias='key', description='Selected grouping key.') - value: str = Field(..., alias='value', description='Selected grouping value.') - - -class ReportPropertyDetails(OpsiBaseModel): - """Chargeback plan report properties.""" - - analysis_time_interval: str = Field(..., alias='analysisTimeInterval', description='Specify time period in ISO 8601 format with respect to current time.\nIf timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored.\nExamples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).') - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - group_by: Any = Field(..., alias='groupBy', description='Report filters used in grouping') - - -class ResourceCapacityTrendAggregation(OpsiBaseModel): - """Resource Capacity samples.""" - - end_timestamp: datetime = Field(..., alias='endTimestamp', description='The timestamp in which the current sampling period ends in RFC 3339 format.') - capacity: float = Field(..., alias='capacity', description='The maximum allocated amount of the resource metric type (CPU, STORAGE) for a set of databases.') - base_capacity: float = Field(..., alias='baseCapacity', description='The base allocated amount of the resource metric type (CPU, STORAGE) for a set of databases.') - total_host_capacity: float | None = Field(None, alias='totalHostCapacity', description='The maximum host CPUs (cores x threads/core) on the underlying infrastructure. This only applies to CPU and does not not apply for Autonomous Databases.') - - -class ResourceFilters(OpsiBaseModel): - """Information to filter the actual target resources in an operation. e.g: While querying a DATABASE_INSIGHTS_DATA_OBJECT using /opsiDataObjects/actions/queryData API, if resourceFilters is set with valid value for definedTagEquals field, only data of the database insights resources for which the specified freeform tags exist will be considered for the actual query scope.""" - - defined_tag_equals: list[str] | None = Field(None, alias='definedTagEquals', description='A list of tag filters to apply. Only resources with a defined tag matching the value will be considered.\nEach item in the list has the format "{namespace}.{tagName}.{value}". All inputs are case-insensitive.\nMultiple values for the same key (i.e. same namespace and tag name) are interpreted as "OR".\nValues for different keys (i.e. different namespaces, different tag names, or both) are interpreted as "AND".') - freeform_tag_equals: list[str] | None = Field(None, alias='freeformTagEquals', description='A list of tag filters to apply. Only resources with a freeform tag matching the value will be considered.\nThe key for each tag is "{tagName}.{value}". All inputs are case-insensitive.\nMultiple values for the same tag name are interpreted as "OR". Values for different tag names are interpreted as "AND".') - defined_tag_exists: list[str] | None = Field(None, alias='definedTagExists', description='A list of tag existence filters to apply. Only resources for which the specified defined tags exist will be considered.\nEach item in the list has the format "{namespace}.{tagName}.true" (for checking existence of a defined tag)\nor "{namespace}.true". All inputs are case-insensitive.\nCurrently, only existence ("true" at the end) is supported. Absence ("false" at the end) is not supported.\nMultiple values for the same key (i.e. same namespace and tag name) are interpreted as "OR".\nValues for different keys (i.e. different namespaces, different tag names, or both) are interpreted as "AND".') - freeform_tag_exists: list[str] | None = Field(None, alias='freeformTagExists', description='A list of tag existence filters to apply. Only resources for which the specified freeform tags exist will be considered.\nThe key for each tag is "{tagName}.true". All inputs are case-insensitive.\nCurrently, only existence ("true" at the end) is supported. Absence ("false" at the end) is not supported.\nMultiple values for different tag names are interpreted as "AND".') - compartment_id_in_subtree: bool | None = Field(None, alias='compartmentIdInSubtree', description='A flag to consider all resources within a given compartment and all sub-compartments.') - resource_status: list[str] | None = Field(None, alias='resourceStatus', description='Filter resources by status, multiple options could be chosen to show authorized resources even if those are disabled or deleted.\n\nAllowed values for items in this list are: "DISABLED", "ENABLED", "TERMINATED"') - - -class ResourceInsightCurrentUtilization(OpsiBaseModel): - """Current utilization(High/low) for cpu or storage.""" - - low: list[str] | None = Field(None, alias='low', description='List of db ids with low usage') - high: list[str] | None = Field(None, alias='high', description='List of db ids with high usage') - - -class ResourceInsightProjectedUtilization(OpsiBaseModel): - """Projected utilization(High/low) for cpu or storage.""" - - low: list[ResourceInsightProjectedUtilizationItem] = Field(..., alias='low', description='List of db ids with low usage') - high: list[ResourceInsightProjectedUtilizationItem] = Field(..., alias='high', description='List of db ids with high usage') - - -class ResourceInsightProjectedUtilizationItem(OpsiBaseModel): - """Projected utilization object containing dbid and daysToReach value.""" - - id: str = Field(..., alias='id', description='Db id') - days_to_reach: int = Field(..., alias='daysToReach', description='Days to reach projected utilization') - - -class ResourceStatistics(OpsiBaseModel): - """Contains resource statistics with usage unit.""" - - usage: float = Field(..., alias='usage', description='Total amount used of the resource metric type (CPU, STORAGE).') - capacity: float = Field(..., alias='capacity', description='The maximum allocated amount of the resource metric type (CPU, STORAGE) for a set of databases.') - base_capacity: float | None = Field(None, alias='baseCapacity', description='The base allocated amount of the resource metric type (CPU, STORAGE) for a set of databases.') - is_auto_scaling_enabled: bool | None = Field(None, alias='isAutoScalingEnabled', description='Indicates if auto scaling feature is enabled or disabled on a database. It will be false for all metrics other than CPU.') - utilization_percent: float = Field(..., alias='utilizationPercent', description='Resource utilization in percentage') - usage_change_percent: float = Field(..., alias='usageChangePercent', description='Change in resource utilization in percentage') - instance_metrics: list[InstanceMetrics] | None = Field(None, alias='instanceMetrics', description='Array of instance metrics') - total_host_capacity: float | None = Field(None, alias='totalHostCapacity', description='The maximum host CPUs (cores x threads/core) on the underlying infrastructure. This only applies to CPU and does not not apply for Autonomous Databases.') - is_heat_wave_cluster_attached: bool | None = Field(None, alias='isHeatWaveClusterAttached', description='Specifies if MYSQL DB System has heatwave cluster attached.') - is_highly_available: bool | None = Field(None, alias='isHighlyAvailable', description='Specifies if MYSQL DB System is highly available.') - - -class ResourceStatisticsAggregation(OpsiBaseModel): - """Contains database details and resource statistics.""" - - database_details: DatabaseDetails | None = Field(None, alias='databaseDetails', description='The database_details field of ResourceStatisticsAggregation.') - current_statistics: ResourceStatistics | None = Field(None, alias='currentStatistics', description='The current_statistics field of ResourceStatisticsAggregation.') - - -class ResourceUsageSummary(OpsiBaseModel): - """Contains resource usage summary.""" - - exadata_insight_id: str = Field(..., alias='exadataInsightId', description='The OCID of the Exadata insight.') - exadata_display_name: str | None = Field(None, alias='exadataDisplayName', description='The user-friendly name for the Exadata system. The name does not have to be unique.') - usage: float = Field(..., alias='usage', description='Total amount used of the resource metric type (CPU, STORAGE).') - capacity: float = Field(..., alias='capacity', description='The maximum allocated amount of the resource metric type (CPU, STORAGE) for a set of databases.') - utilization_percent: float = Field(..., alias='utilizationPercent', description='Resource utilization in percentage') - usage_change_percent: float = Field(..., alias='usageChangePercent', description='Change in resource utilization in percentage') - total_host_capacity: float | None = Field(None, alias='totalHostCapacity', description='The maximum host CPUs (cores x threads/core) on the underlying infrastructure. This only applies to CPU and does not not apply for Autonomous Databases.') - - -class ResourceUsageTrendAggregation(OpsiBaseModel): - """Aggregate usage samples.""" - - end_timestamp: datetime = Field(..., alias='endTimestamp', description='The timestamp in which the current sampling period ends in RFC 3339 format.') - usage: float = Field(..., alias='usage', description='Total amount used of the resource metric type (CPU, STORAGE).') - capacity: float = Field(..., alias='capacity', description='The maximum allocated amount of the resource metric type (CPU, STORAGE) for a set of databases.') - total_host_capacity: float | None = Field(None, alias='totalHostCapacity', description='The maximum host CPUs (cores x threads/core) on the underlying infrastructure. This only applies to CPU and does not not apply for Autonomous Databases.') - - -class SchemaObjectTypeDetails(OpsiBaseModel): - """Schema object details.""" - - type: Literal['SCHEMA_OBJECT', 'SQL', 'DATABASE_PARAMETER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='type', description='Gets the type of this RelatedObjectTypeDetails.\nType of related object\n\nAllowed values for this property are: "SCHEMA_OBJECT", "SQL", "DATABASE_PARAMETER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - object_id: int = Field(..., alias='objectId', description='Object id (from RDBMS)') - owner: str = Field(..., alias='owner', description='Owner of object') - object_name: str = Field(..., alias='objectName', description='Name of object') - sub_object_name: str | None = Field(None, alias='subObjectName', description='Subobject name; for example, partition name') - object_type: str = Field(..., alias='objectType', description='Type of the object (such as TABLE, INDEX)') - - -class SqlBucket(OpsiBaseModel): - """Sql bucket type object.""" - - version: float | None = Field(None, alias='version', description='Version\nExample: `1`') - database_type: str | None = Field(None, alias='databaseType', description='Ops Insights internal representation of the database type.') - time_collected: datetime = Field(..., alias='timeCollected', description='Collection timestamp\nExample: `"2020-03-31T00:00:00.000Z"`') - sql_identifier: str = Field(..., alias='sqlIdentifier', description='Unique SQL_ID for a SQL Statement.') - plan_hash: int = Field(..., alias='planHash', description='Plan hash value for the SQL Execution Plan') - bucket_id: str = Field(..., alias='bucketId', description='SQL Bucket ID, examples <= 3 secs, 3-10 secs, 10-60 secs, 1-5 min, > 5 min\nExample: `"<= 3 secs"`') - executions_count: int | None = Field(None, alias='executionsCount', description='Total number of executions\nExample: `60`', ge=0) - cpu_time_in_sec: float | None = Field(None, alias='cpuTimeInSec', description='Total CPU time\nExample: `1046`') - io_time_in_sec: float | None = Field(None, alias='ioTimeInSec', description='Total IO time\nExample: `5810`') - other_wait_time_in_sec: float | None = Field(None, alias='otherWaitTimeInSec', description='Total other wait time\nExample: `24061`') - total_time_in_sec: float | None = Field(None, alias='totalTimeInSec', description='Total time\nExample: `30917`') - - -class SqlInsightAggregation(OpsiBaseModel): - """Represents a SQL Insight.""" - - text: str = Field(..., alias='text', description='Insight text.\nFor example `Degrading SQLs`, `Variant SQLs`,\n`Inefficient SQLs`, `Improving SQLs`, `SQLs with Plan Changes`,\n`Degrading SQLs have increasing IO Time above 50%`,\n`Degrading SQLs are variant`,\n`2 of the 2 variant SQLs have plan changes`,\n`Inefficient SQLs have increasing CPU Time above 50%') - values: list[int] = Field(..., alias='values', description='SQL counts for a given insight. For example insight text `2 of 10 SQLs have degrading response time` will have values as [2,10]"') - category: str = Field(..., alias='category', description='Insight category. It would be one of the following\nDEGRADING,\nVARIANT,\nINEFFICIENT,\nCHANGING_PLANS,\nIMPROVING,\nDEGRADING_VARIANT,\nDEGRADING_INEFFICIENT,\nDEGRADING_CHANGING_PLANS,\nDEGRADING_INCREASING_IO,\nDEGRADING_INCREASING_CPU,\nDEGRADING_INCREASING_INEFFICIENT_WAIT,\nDEGRADING_CHANGING_PLANS_AND_INCREASING_IO,\nDEGRADING_CHANGING_PLANS_AND_INCREASING_CPU,\nDEGRADING_CHANGING_PLANS_AND_INCREASING_INEFFICIENT_WAIT,VARIANT_INEFFICIENT,\nVARIANT_CHANGING_PLANS,\nVARIANT_INCREASING_IO,\nVARIANT_INCREASING_CPU,\nVARIANT_INCREASING_INEFFICIENT_WAIT,\nVARIANT_CHANGING_PLANS_AND_INCREASING_IO,\nVARIANT_CHANGING_PLANS_AND_INCREASING_CPU,\nVARIANT_CHANGING_PLANS_AND_INCREASING_INEFFICIENT_WAIT,\nINEFFICIENT_CHANGING_PLANS,\nINEFFICIENT_INCREASING_INEFFICIENT_WAIT,\nINEFFICIENT_CHANGING_PLANS_AND_INCREASING_INEFFICIENT_WAIT') - - -class SqlInsightAggregationCollection(OpsiBaseModel): - """SQL Insights response.""" - - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - inventory: SqlInventory = Field(..., alias='inventory', description='The inventory field of SqlInsightAggregationCollection.') - items: list[SqlInsightAggregation] = Field(..., alias='items', description='List of insights.') - thresholds: SqlInsightThresholds = Field(..., alias='thresholds', description='The thresholds field of SqlInsightAggregationCollection.') - - -class SqlInsightThresholds(OpsiBaseModel): - """Inventory details.""" - - degradation_in_pct: int = Field(..., alias='degradationInPct', description='Degradation Percent Threshold is used to derive degrading SQLs.') - variability: float = Field(..., alias='variability', description='Variability Percent Threshold is used to derive variant SQLs.') - inefficiency_in_pct: int = Field(..., alias='inefficiencyInPct', description='Inefficiency Percent Threshold is used to derive inefficient SQLs.') - increase_in_io_in_pct: int = Field(..., alias='increaseInIOInPct', description='PctIncreaseInIO is used for deriving insights for SQLs which are degrading or\nvariant or inefficient. And these SQLs should also have increasing change in IO Time\nbeyond threshold. Insights are derived using linear regression.') - increase_in_cpu_in_pct: int = Field(..., alias='increaseInCPUInPct', description='PctIncreaseInCPU is used for deriving insights for SQLs which are degrading or\nvariant or inefficient. And these SQLs should also have increasing change in CPU Time\nbeyond threshold. Insights are derived using linear regression.') - increase_in_inefficient_wait_in_pct: int = Field(..., alias='increaseInInefficientWaitInPct', description='PctIncreaseInIO is used for deriving insights for SQLs which are degrading or\nvariant or inefficient. And these SQLs should also have increasing change in\nOther Wait Time beyond threshold. Insights are derived using linear regression.') - improved_in_pct: int = Field(..., alias='improvedInPct', description='Improved Percent Threshold is used to derive improving SQLs.') - - -class SqlInventory(OpsiBaseModel): - """Inventory details.""" - - total_sqls: int = Field(..., alias='totalSqls', description='Total number of sqls. Example `2000`') - total_databases: int = Field(..., alias='totalDatabases', description='Total number of Databases. Example `400`') - sqls_analyzed: int = Field(..., alias='sqlsAnalyzed', description='Total number of sqls analyzed by the query. Example `120`') - - -class SqlPlanCollection(OpsiBaseModel): - """SQL Plans for the particular SQL.""" - - sql_identifier: str = Field(..., alias='sqlIdentifier', description='Unique SQL_ID for a SQL Statement.') - id: str = Field(..., alias='id', description='The OCID of the database insight resource.') - database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') - items: list[SqlPlanSummary] = Field(..., alias='items', description='array of SQL Plans.') - - -class SqlPlanInsightAggregation(OpsiBaseModel): - """SQL execution plan Performance statistics.""" - - plan_hash: int = Field(..., alias='planHash', description='Plan hash value for the SQL Execution Plan') - io_time_in_sec: float = Field(..., alias='ioTimeInSec', description='IO Time in seconds') - cpu_time_in_sec: float = Field(..., alias='cpuTimeInSec', description='CPU Time in seconds') - inefficient_wait_time_in_sec: float = Field(..., alias='inefficientWaitTimeInSec', description='Inefficient Wait Time in seconds') - executions_count: int = Field(..., alias='executionsCount', description='Total number of executions', ge=0) - - -class SqlPlanInsightAggregationCollection(OpsiBaseModel): - """SQL plan insights response.""" - - sql_identifier: str = Field(..., alias='sqlIdentifier', description='Unique SQL_ID for a SQL Statement.') - id: str = Field(..., alias='id', description='The OCID of the database insight resource.') - database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - insights: list[SqlPlanInsights] = Field(..., alias='insights', description='List of SQL plan insights.') - items: list[SqlPlanInsightAggregation] = Field(..., alias='items', description='List of SQL plan statistics.') - - -class SqlPlanInsights(OpsiBaseModel): - """Represents collection of SQL Plan Insights.""" - - text: str = Field(..., alias='text', description='SQL Plan Insight text.\nFor example `Number of Plans Used`, `Most Executed Plan`,\n`Best Performing Plan`, `Worst Performing Plan`,\n`Plan With Most IO`,\n`Plan with Most CPU`') - value: int = Field(..., alias='value', description='SQL execution plan hash value for a given insight. For example `Most Executed Plan` insight will have value as "3975467901"') - category: str = Field(..., alias='category', description='SQL Insight category. For example PLANS_USED, MOST_EXECUTED, BEST_PERFORMER, WORST_PERFORMER, MOST_CPU or MOST_IO.') - - -class SqlPlanLine(OpsiBaseModel): - """SQL Plan Line type object.""" - - version: float | None = Field(None, alias='version', description='Version\nExample: `1`') - sql_identifier: str = Field(..., alias='sqlIdentifier', description='Unique SQL_ID for a SQL Statement.') - plan_hash: int = Field(..., alias='planHash', description='Plan hash value for the SQL Execution Plan') - force_matching_signature: str | None = Field(None, alias='forceMatchingSignature', description='Force matching signature\nExample: `"18067345456756876713"`') - time_generated: datetime | None = Field(None, alias='timeGenerated', description='Generation time stamp\nExample: `"2020-05-05T02:10:00.000Z"`') - time_collected: datetime = Field(..., alias='timeCollected', description='Collection time stamp\nExample: `"2020-05-06T00:00:00.000Z"`') - operation: str = Field(..., alias='operation', description='Operation\nExample: `"SELECT STATEMENT"`') - remark: str | None = Field(None, alias='remark', description='Remark\nExample: `""`') - options: str | None = Field(None, alias='options', description='Options\nExample: `"RANGE SCAN"`') - object_node: str | None = Field(None, alias='objectNode', description='Object Node\nExample: `"Q4000"`') - object_owner: str | None = Field(None, alias='objectOwner', description='Object Owner\nExample: `"TENANT_A#SCHEMA"`') - object_name: str | None = Field(None, alias='objectName', description='Object Name\nExample: `"PLAN_LINES_PK"`') - object_alias: str | None = Field(None, alias='objectAlias', description='Object Alias\nExample: `"PLAN_LINES@SEL$1"`') - object_instance: int | None = Field(None, alias='objectInstance', description='Object Instance\nExample: `37472`') - object_type: str | None = Field(None, alias='objectType', description='Object Type\nExample: `"INDEX (UNIQUE)"`') - optimizer: str | None = Field(None, alias='optimizer', description='Optimizer\nExample: `"CLUSTER"`') - search_columns: int | None = Field(None, alias='searchColumns', description='Search Columns\nExample: `3`') - identifier: int = Field(..., alias='identifier', description='Identifier\nExample: `3`') - parent_identifier: int | None = Field(None, alias='parentIdentifier', description='Parent Identifier\nExample: `2`') - depth: int | None = Field(None, alias='depth', description='Depth\nExample: `3`') - position: int | None = Field(None, alias='position', description='Position\nExample: `1`') - cost: int | None = Field(None, alias='cost', description='Cost\nExample: `1`') - cardinality: int | None = Field(None, alias='cardinality', description='Cardinality\nExample: `1`') - bytes: int | None = Field(None, alias='bytes', description='Bytes\nExample: `150`') - other: str | None = Field(None, alias='other', description='Other\nExample: ``') - other_tag: str | None = Field(None, alias='otherTag', description='Other Tag\nExample: `"PARALLEL_COMBINED_WITH_PARENT"`') - partition_start: str | None = Field(None, alias='partitionStart', description='Partition start\nExample: `1`') - partition_stop: str | None = Field(None, alias='partitionStop', description='Partition stop\nExample: `2`') - partition_identifier: int | None = Field(None, alias='partitionIdentifier', description='Partition identifier\nExample: `8`') - distribution: str | None = Field(None, alias='distribution', description='Distribution\nExample: `"QC (RANDOM)"`') - cpu_cost: int | None = Field(None, alias='cpuCost', description='CPU cost\nExample: `7321`') - io_cost: int | None = Field(None, alias='ioCost', description='IO cost\nExample: `1`') - temp_space: int | None = Field(None, alias='tempSpace', description='Time space\nExample: `15614000`') - access_predicates: str | None = Field(None, alias='accessPredicates', description='Access predicates\nExample: `"\\"RESOURCE_ID\\"=:1 AND \\"QUERY_ID\\"=:2"`') - filter_predicates: str | None = Field(None, alias='filterPredicates', description='Filter predicates\nExample: `"(INTERNAL_FUNCTION(\\"J\\".\\"DATABASE_ROLE\\") OR (\\"J\\".\\"DATABASE_ROLE\\" IS NULL AND SYS_CONTEXT(\'userenv\',\'database_role\')=\'PRIMARY\'))"`') - projection: str | None = Field(None, alias='projection', description='Projection\nExample: `"COUNT(*)[22]"`') - qblock_name: str | None = Field(None, alias='qblockName', description='Qblock Name\nExample: `"SEL$1"`') - elapsed_time_in_sec: float | None = Field(None, alias='elapsedTimeInSec', description='Total elapsed time\nExample: `1.2`') - other_xml: str | None = Field(None, alias='otherXML', description='Other SQL\nExample: `"18.0.0.04838927842709293936483892784"`') - - -class SqlPlanSummary(OpsiBaseModel): - """SQL Plan details.""" - - plan_hash: int = Field(..., alias='planHash', description='Plan hash value for the SQL Execution Plan') - plan_content: str = Field(..., alias='planContent', description='Plan XML Content') - - -class SqlResponseTimeDistributionAggregation(OpsiBaseModel): - """SQL Response time distribution entry.""" - - bucket_id: str = Field(..., alias='bucketId', description='Response time bucket id') - executions_count: int = Field(..., alias='executionsCount', description='Total number of SQL executions', ge=0) - - -class SqlResponseTimeDistributionAggregationCollection(OpsiBaseModel): - """SQL response time distribution over the selected time window.""" - - sql_identifier: str = Field(..., alias='sqlIdentifier', description='Unique SQL_ID for a SQL Statement.') - id: str = Field(..., alias='id', description='The OCID of the database insight resource.') - database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - items: list[SqlResponseTimeDistributionAggregation] = Field(..., alias='items', description='Array of pre defined SQL response time bucket id and SQL executions count.') - - -class SqlSearchCollection(OpsiBaseModel): - """Search SQL response.""" - - sql_identifier: str | None = Field(None, alias='sqlIdentifier', description='Unique SQL_ID for a SQL Statement.') - sql_text: str | None = Field(None, alias='sqlText', description='SQL Statement Text') - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - items: list[SqlSearchSummary] = Field(..., alias='items', description='List of Databases executing the sql.') - - -class SqlSearchSummary(OpsiBaseModel): - """Database summary object resulting from a sql search operation.""" - - id: str = Field(..., alias='id', description='The OCID of the database insight resource.') - database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') - compartment_id: str = Field(..., alias='compartmentId', description='The OCID of the compartment.') - database_name: str = Field(..., alias='databaseName', description='The database name. The database name is unique within the tenancy.') - database_display_name: str = Field(..., alias='databaseDisplayName', description='The user-friendly name for the database. The name does not have to be unique.') - database_type: str = Field(..., alias='databaseType', description='Ops Insights internal representation of the database type.') - database_version: str = Field(..., alias='databaseVersion', description='The version of the database.') - - -class SqlStatisticAggregation(OpsiBaseModel): - """SQL Statistics.""" - - sql_identifier: str = Field(..., alias='sqlIdentifier', description='Unique SQL_ID for a SQL Statement.') - database_details: DatabaseDetails = Field(..., alias='databaseDetails', description='The database_details field of SqlStatisticAggregation.') - category: list[str] = Field(..., alias='category', description='SQL belongs to one or more categories based on the insights.') - statistics: SqlStatistics | None = Field(None, alias='statistics', description='The statistics field of SqlStatisticAggregation.') - - -class SqlStatisticAggregationCollection(OpsiBaseModel): - """SQL statistics response.""" - - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - items: list[SqlStatisticAggregation] = Field(..., alias='items', description='Array of SQLs along with its statistics statisfying the query criteria.') - - -class SqlStatistics(OpsiBaseModel): - """Performance statistics for the SQL.""" - - database_time_in_sec: float = Field(..., alias='databaseTimeInSec', description='Database Time in seconds') - executions_per_hour: float = Field(..., alias='executionsPerHour', description='Number of executions per hour') - executions_count: int = Field(..., alias='executionsCount', description='Total number of executions', ge=0) - cpu_time_in_sec: float = Field(..., alias='cpuTimeInSec', description='CPU Time in seconds') - io_time_in_sec: float = Field(..., alias='ioTimeInSec', description='I/O Time in seconds') - inefficient_wait_time_in_sec: float = Field(..., alias='inefficientWaitTimeInSec', description='Inefficient Wait Time in seconds') - response_time_in_sec: float = Field(..., alias='responseTimeInSec', description='Response time is the average elaspsed time per execution. It is the ratio of Total Database Time to the number of executions') - plan_count: int = Field(..., alias='planCount', description='Number of SQL execution plans used by the SQL', ge=0) - variability: float = Field(..., alias='variability', description='Variability is the ratio of the standard deviation in response time to the mean of response time of the SQL') - average_active_sessions: float = Field(..., alias='averageActiveSessions', description='Average Active Sessions represent the average active sessions at a point in time. It is the number of sessions that are either working or waiting.') - database_time_pct: float = Field(..., alias='databaseTimePct', description='Percentage of Database Time') - inefficiency_in_pct: float = Field(..., alias='inefficiencyInPct', description='Percentage of Inefficiency. It is calculated by Total Database Time divided by Total Wait Time') - change_in_cpu_time_in_pct: float = Field(..., alias='changeInCpuTimeInPct', description='Percent change in CPU Time based on linear regression') - change_in_io_time_in_pct: float = Field(..., alias='changeInIoTimeInPct', description='Percent change in IO Time based on linear regression') - change_in_inefficient_wait_time_in_pct: float = Field(..., alias='changeInInefficientWaitTimeInPct', description='Percent change in Inefficient Wait Time based on linear regression') - change_in_response_time_in_pct: float = Field(..., alias='changeInResponseTimeInPct', description='Percent change in Response Time based on linear regression') - change_in_average_active_sessions_in_pct: float = Field(..., alias='changeInAverageActiveSessionsInPct', description='Percent change in Average Active Sessions based on linear regression') - change_in_executions_per_hour_in_pct: float = Field(..., alias='changeInExecutionsPerHourInPct', description='Percent change in Executions per hour based on linear regression') - change_in_inefficiency_in_pct: float = Field(..., alias='changeInInefficiencyInPct', description='Percent change in Inefficiency based on linear regression') - - -class SqlStatisticsTimeSeries(OpsiBaseModel): - """SQL performance statistics per database.""" - - name: str = Field(..., alias='name', description='SQL performance statistic name') - values: list[float] = Field(..., alias='values', description='SQL performance statistic value') - - -class SqlStatisticsTimeSeriesAggregation(OpsiBaseModel): - """Database details and SQL performance statistics for a given database.""" - - database_details: DatabaseDetails = Field(..., alias='databaseDetails', description='The database_details field of SqlStatisticsTimeSeriesAggregation.') - statistics: list[SqlStatisticsTimeSeries] = Field(..., alias='statistics', description='SQL performance statistics for a given database') - - -class SqlStatisticsTimeSeriesAggregationCollection(OpsiBaseModel): - """SQL performance statistics over the selected time window.""" - - sql_identifier: str = Field(..., alias='sqlIdentifier', description='Unique SQL_ID for a SQL Statement.') - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - item_duration_in_ms: int = Field(..., alias='itemDurationInMs', description='Time duration in milliseconds between data points (one hour or one day).') - end_timestamps: list[datetime] | None = Field(None, alias='endTimestamps', description='Array comprising of all the sampling period end timestamps in RFC 3339 format.') - items: list[SqlStatisticsTimeSeriesAggregation] = Field(..., alias='items', description='Array of SQL performance statistics across databases.') - - -class SqlStatisticsTimeSeriesByPlanAggregation(OpsiBaseModel): - """SQL performance statistics for a given plan.""" - - plan_hash: int = Field(..., alias='planHash', description='Plan hash value for the SQL Execution Plan') - statistics: list[SqlStatisticsTimeSeries] = Field(..., alias='statistics', description='SQL performance statistics for a given plan') - - -class SqlStatisticsTimeSeriesByPlanAggregationCollection(OpsiBaseModel): - """SQL performance statistics by plan over the selected time window.""" - - sql_identifier: str = Field(..., alias='sqlIdentifier', description='Unique SQL_ID for a SQL Statement.') - id: str = Field(..., alias='id', description='The OCID of the database insight resource.') - database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - item_duration_in_ms: int = Field(..., alias='itemDurationInMs', description='Time duration in milliseconds between data points (one hour or one day).') - end_timestamps: list[datetime] = Field(..., alias='endTimestamps', description='Array comprising of all the sampling period end timestamps in RFC 3339 format.') - items: list[SqlStatisticsTimeSeriesByPlanAggregation] = Field(..., alias='items', description='array of SQL performance statistics by plans') - - -class SqlStats(OpsiBaseModel): - """Sql Stats type object.""" - - sql_identifier: str = Field(..., alias='sqlIdentifier', description='Unique SQL_ID for a SQL Statement.') - plan_hash_value: int = Field(..., alias='planHashValue', description='Plan hash value for the SQL Execution Plan') - time_collected: datetime = Field(..., alias='timeCollected', description='Collection timestamp\nExample: `"2020-03-31T00:00:00.000Z"`') - instance_name: str = Field(..., alias='instanceName', description='Name of Database Instance\nExample: `"DB10902_1"`') - last_active_time: str | None = Field(None, alias='lastActiveTime', description='last_active_time\nExample: `"0000000099CCE300"`') - parse_calls: int | None = Field(None, alias='parseCalls', description='Total integer of parse calls\nExample: `60`') - disk_reads: int | None = Field(None, alias='diskReads', description='Number of disk reads') - direct_reads: int | None = Field(None, alias='directReads', description='Number of direct reads') - direct_writes: int | None = Field(None, alias='directWrites', description='Number of Direct writes') - buffer_gets: int | None = Field(None, alias='bufferGets', description='Number of Buffer Gets') - rows_processed: int | None = Field(None, alias='rowsProcessed', description='Number of row processed') - serializable_aborts: int | None = Field(None, alias='serializableAborts', description='Number of serializable aborts') - fetches: int | None = Field(None, alias='fetches', description='Number of fetches') - executions: int | None = Field(None, alias='executions', description='Number of executions') - avoided_executions: int | None = Field(None, alias='avoidedExecutions', description='Number of executions attempted on this object, but prevented due to the SQL statement being in quarantine') - end_of_fetch_count: int | None = Field(None, alias='endOfFetchCount', description='Number of times this cursor was fully executed since the cursor was brought into the library cache', ge=0) - loads: int | None = Field(None, alias='loads', description='Number of times the object was either loaded or reloaded') - version_count: int | None = Field(None, alias='versionCount', description='Number of cursors present in the cache with this SQL text and plan', ge=0) - invalidations: int | None = Field(None, alias='invalidations', description='Number of times this child cursor has been invalidated') - obsolete_count: int | None = Field(None, alias='obsoleteCount', description='Number of times that a parent cursor became obsolete', ge=0) - px_servers_executions: int | None = Field(None, alias='pxServersExecutions', description='Total number of executions performed by parallel execution servers (0 when the statement has never been executed in parallel)') - cpu_time_in_us: int | None = Field(None, alias='cpuTimeInUs', description='CPU time (in microseconds) used by this cursor for parsing, executing, and fetching') - elapsed_time_in_us: int | None = Field(None, alias='elapsedTimeInUs', description='Elapsed time (in microseconds) used by this cursor for parsing, executing, and fetching.') - avg_hard_parse_time_in_us: int | None = Field(None, alias='avgHardParseTimeInUs', description='Average hard parse time (in microseconds) used by this cursor') - concurrency_wait_time_in_us: int | None = Field(None, alias='concurrencyWaitTimeInUs', description='Concurrency wait time (in microseconds)') - application_wait_time_in_us: int | None = Field(None, alias='applicationWaitTimeInUs', description='Application wait time (in microseconds)') - cluster_wait_time_in_us: int | None = Field(None, alias='clusterWaitTimeInUs', description='Cluster wait time (in microseconds). This value is specific to Oracle RAC') - user_io_wait_time_in_us: int | None = Field(None, alias='userIoWaitTimeInUs', description='User I/O wait time (in microseconds)') - plsql_exec_time_in_us: int | None = Field(None, alias='plsqlExecTimeInUs', description='PL/SQL execution time (in microseconds)') - java_exec_time_in_us: int | None = Field(None, alias='javaExecTimeInUs', description='Java execution time (in microseconds)') - sorts: int | None = Field(None, alias='sorts', description='Number of sorts that were done for the child cursor') - sharable_mem: int | None = Field(None, alias='sharableMem', description='Total shared memory (in bytes) currently occupied by all cursors with this SQL text and plan') - total_sharable_mem: int | None = Field(None, alias='totalSharableMem', description='Total shared memory (in bytes) occupied by all cursors with this SQL text and plan if they were to be fully loaded in the shared pool (that is, cursor size)') - type_check_mem: int | None = Field(None, alias='typeCheckMem', description='Typecheck memory') - io_cell_offload_eligible_bytes: int | None = Field(None, alias='ioCellOffloadEligibleBytes', description='Number of I/O bytes which can be filtered by the Exadata storage system') - io_interconnect_bytes: int | None = Field(None, alias='ioInterconnectBytes', description='Number of I/O bytes exchanged between Oracle Database and the storage system. Typically used for Cache Fusion or parallel queries') - physical_read_requests: int | None = Field(None, alias='physicalReadRequests', description='Number of physical read I/O requests issued by the monitored SQL. The requests may not be disk reads') - physical_read_bytes: int | None = Field(None, alias='physicalReadBytes', description='Number of bytes read from disks by the monitored SQL') - physical_write_requests: int | None = Field(None, alias='physicalWriteRequests', description='Number of physical write I/O requests issued by the monitored SQL') - physical_write_bytes: int | None = Field(None, alias='physicalWriteBytes', description='Number of bytes written to disks by the monitored SQL') - exact_matching_signature: str | None = Field(None, alias='exactMatchingSignature', description='exact_matching_signature\nExample: `"18067345456756876713"`') - force_matching_signature: str | None = Field(None, alias='forceMatchingSignature', description='force_matching_signature\nExample: `"18067345456756876713"`') - io_cell_uncompressed_bytes: int | None = Field(None, alias='ioCellUncompressedBytes', description='Number of uncompressed bytes (that is, size after decompression) that are offloaded to the Exadata cells') - io_cell_offload_returned_bytes: int | None = Field(None, alias='ioCellOffloadReturnedBytes', description='Number of bytes that are returned by Exadata cell through the regular I/O path') - child_number: int | None = Field(None, alias='childNumber', description='Number of this child cursor') - command_type: int | None = Field(None, alias='commandType', description='Oracle command type definition') - users_opening: int | None = Field(None, alias='usersOpening', description='Number of users that have any of the child cursors open') - users_executing: int | None = Field(None, alias='usersExecuting', description='Number of users executing the statement') - optimizer_cost: int | None = Field(None, alias='optimizerCost', description='Cost of this query given by the optimizer') - full_plan_hash_value: str | None = Field(None, alias='fullPlanHashValue', description='Total Number of rows in SQLStats table') - module: str | None = Field(None, alias='module', description='Module name') - service: str | None = Field(None, alias='service', description='Service name') - action: str | None = Field(None, alias='action', description='Contains the name of the action that was executing when the SQL statement was first parsed, which is set by calling DBMS_APPLICATION_INFO.SET_ACTION') - sql_profile: str | None = Field(None, alias='sqlProfile', description='SQL profile used for this statement, if any') - sql_patch: str | None = Field(None, alias='sqlPatch', description='SQL patch used for this statement, if any') - sql_plan_baseline: str | None = Field(None, alias='sqlPlanBaseline', description='SQL plan baseline used for this statement, if any') - delta_execution_count: int | None = Field(None, alias='deltaExecutionCount', description='Number of executions for the cursor since the last AWR snapshot', ge=0) - delta_cpu_time: int | None = Field(None, alias='deltaCpuTime', description='CPU time (in microseconds) for the cursor since the last AWR snapshot') - delta_io_bytes: int | None = Field(None, alias='deltaIoBytes', description='Number of I/O bytes exchanged between the Oracle database and the storage system for the cursor since the last AWR snapshot') - delta_cpu_rank: int | None = Field(None, alias='deltaCpuRank', description='Rank based on CPU Consumption') - delta_execs_rank: int | None = Field(None, alias='deltaExecsRank', description='Rank based on number of execution') - sharable_mem_rank: int | None = Field(None, alias='sharableMemRank', description='Rank based on sharable memory') - delta_io_rank: int | None = Field(None, alias='deltaIoRank', description='Rank based on I/O Consumption') - harmonic_sum: int | None = Field(None, alias='harmonicSum', description='Harmonic sum based on ranking parameters') - wt_harmonic_sum: int | None = Field(None, alias='wtHarmonicSum', description='Weight based harmonic sum of ranking parameters') - total_sql_count: int | None = Field(None, alias='totalSqlCount', description='Total number of rows in SQLStats table', ge=0) - - -class SqlText(OpsiBaseModel): - """SQL Text type object.""" - - version: float | None = Field(None, alias='version', description='Version\nExample: `1`') - sql_identifier: str = Field(..., alias='sqlIdentifier', description='Unique SQL_ID for a SQL Statement.') - time_collected: datetime = Field(..., alias='timeCollected', description='Collection timestamp\nExample: `"2020-05-06T00:00:00.000Z"`') - sql_command: str = Field(..., alias='sqlCommand', description='SQL command\nExample: `"SELECT"`') - exact_matching_signature: str | None = Field(None, alias='exactMatchingSignature', description='Exact matching signature\nExample: `"18067345456756876713"`') - force_matching_signature: str | None = Field(None, alias='forceMatchingSignature', description='Force matching signature\nExample: `"18067345456756876713"`') - sql_full_text: str = Field(..., alias='sqlFullText', description='Full SQL Text\nExample: `"SELECT username,profile,default_tablespace,temporary_tablespace FROM dba_users"`\nDisclaimer: SQL text being uploaded explicitly via APIs is not masked. Any sensitive literals contained in the sqlFullText column should be masked prior to ingestion.') - - -class SqlTextCollection(OpsiBaseModel): - """SQL Text for the particular SQL.""" - - items: list[SqlTextSummary] = Field(..., alias='items', description='array of SQL Texts.') - - -class SqlTextSummary(OpsiBaseModel): - """SQL Text details.""" - - sql_identifier: str = Field(..., alias='sqlIdentifier', description='Unique SQL_ID for a SQL Statement.') - id: str = Field(..., alias='id', description='The OCID of the database insight resource.') - database_id: str = Field(..., alias='databaseId', description='The OCID of the database.') - compartment_id: str | None = Field(None, alias='compartmentId', description='The OCID of the compartment.') - sql_text: str = Field(..., alias='sqlText', description='SQL Text') - - -class SqlTypeDetails(OpsiBaseModel): - """SQL details.""" - - type: Literal['SCHEMA_OBJECT', 'SQL', 'DATABASE_PARAMETER', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='type', description='Gets the type of this RelatedObjectTypeDetails.\nType of related object\n\nAllowed values for this property are: "SCHEMA_OBJECT", "SQL", "DATABASE_PARAMETER", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - sql_id: str = Field(..., alias='sqlId', description='SQL identifier') - sql_text: str = Field(..., alias='sqlText', description='First 3800 characters of the SQL text') - is_sql_text_truncated: bool = Field(..., alias='isSqlTextTruncated', description='SQL identifier') - sql_command: str = Field(..., alias='sqlCommand', description='SQL command name (such as SELECT, INSERT)') - - -class StorageServerDetails(OpsiBaseModel): - """Partial information about a storage server which includes name and displayName.""" - - storage_server_name: str = Field(..., alias='storageServerName', description='The storage server name.') - storage_server_display_name: str = Field(..., alias='storageServerDisplayName', description='The user-friendly name for the storage server. The name does not have to be unique.') - - -class StorageUsageTrend(OpsiBaseModel): - """Usage data samples.""" - - end_timestamp: datetime = Field(..., alias='endTimestamp', description='The timestamp in which the current sampling period ends in RFC 3339 format.') - file_system_usage_in_gbs: float = Field(..., alias='fileSystemUsageInGBs', description='Filesystem usage in GB.') - file_system_avail_in_percent: float = Field(..., alias='fileSystemAvailInPercent', description='Filesystem available in percent.') - - -class StorageUsageTrendAggregation(OpsiBaseModel): - """Usage data per filesystem.""" - - file_system_name: str = Field(..., alias='fileSystemName', description='Name of filesystem.') - mount_point: str = Field(..., alias='mountPoint', description='Mount points are specialized NTFS filesystem objects.') - file_system_size_in_gbs: float = Field(..., alias='fileSystemSizeInGBs', description='Size of filesystem.') - usage_data: list[StorageUsageTrend] = Field(..., alias='usageData', description='List of usage data samples for a filesystem.') - - -class SummarizeAwrSourcesSummariesCollection(OpsiBaseModel): - """Collection of AwrSource summary objects.""" - - items: list[AwrSourceSummary] = Field(..., alias='items', description='Array of AwrSource summary objects.') - - -class SummarizeDatabaseInsightResourceCapacityTrendAggregationCollection(OpsiBaseModel): - """Collection of resource capacity trend.""" - - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - high_utilization_threshold: int = Field(..., alias='highUtilizationThreshold', description='Percent value in which a resource metric is considered highly utilized.') - low_utilization_threshold: int = Field(..., alias='lowUtilizationThreshold', description='Percent value in which a resource metric is considered lowly utilized.') - resource_metric: Literal['CPU', 'STORAGE', 'IO', 'MEMORY', 'MEMORY_PGA', 'MEMORY_SGA', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceMetric', description='Defines the type of resource metric (example: CPU, STORAGE)\n\nAllowed values for this property are: "CPU", "STORAGE", "IO", "MEMORY", "MEMORY_PGA", "MEMORY_SGA", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - usage_unit: Literal['CORES', 'GB', 'MBPS', 'IOPS', 'PERCENT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='usageUnit', description='Displays usage unit ( CORES, GB, PERCENT, MBPS)\n\nAllowed values for this property are: "CORES", "GB", "MBPS", "IOPS", "PERCENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - item_duration_in_ms: int = Field(..., alias='itemDurationInMs', description='Time duration in milliseconds between data points (one hour or one day).') - capacity_data: list[ResourceCapacityTrendAggregation] = Field(..., alias='capacityData', description='Capacity Data with time interval') - - -class SummarizeDatabaseInsightResourceForecastTrendAggregation(OpsiBaseModel): - """Forecast results from the selected time period.""" - - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - high_utilization_threshold: int = Field(..., alias='highUtilizationThreshold', description='Percent value in which a resource metric is considered highly utilized.') - low_utilization_threshold: int = Field(..., alias='lowUtilizationThreshold', description='Percent value in which a resource metric is considered lowly utilized.') - resource_metric: Literal['CPU', 'STORAGE', 'IO', 'MEMORY', 'MEMORY_PGA', 'MEMORY_SGA', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceMetric', description='Defines the type of resource metric (example: CPU, STORAGE)\n\nAllowed values for this property are: "CPU", "STORAGE", "IO", "MEMORY", "MEMORY_PGA", "MEMORY_SGA", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - usage_unit: Literal['CORES', 'GB', 'MBPS', 'IOPS', 'PERCENT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='usageUnit', description='Displays usage unit ( CORES, GB, PERCENT, MBPS)\n\nAllowed values for this property are: "CORES", "GB", "MBPS", "IOPS", "PERCENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - selected_forecast_algorithm: str | None = Field(None, alias='selectedForecastAlgorithm', description='Auto-ML algorithm leveraged for the forecast. Only applicable for Auto-ML forecast.') - pattern: Literal['LINEAR', 'MONTHLY_SEASONS', 'MONTHLY_AND_YEARLY_SEASONS', 'WEEKLY_SEASONS', 'WEEKLY_AND_MONTHLY_SEASONS', 'WEEKLY_MONTHLY_AND_YEARLY_SEASONS', 'WEEKLY_AND_YEARLY_SEASONS', 'YEARLY_SEASONS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='pattern', description='Time series patterns used in the forecasting.\n\nAllowed values for this property are: "LINEAR", "MONTHLY_SEASONS", "MONTHLY_AND_YEARLY_SEASONS", "WEEKLY_SEASONS", "WEEKLY_AND_MONTHLY_SEASONS", "WEEKLY_MONTHLY_AND_YEARLY_SEASONS", "WEEKLY_AND_YEARLY_SEASONS", "YEARLY_SEASONS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - tablespace_name: str = Field(..., alias='tablespaceName', description='The name of tablespace.') - historical_data: list[HistoricalDataItem] = Field(..., alias='historicalData', description='Time series data used for the forecast analysis.') - projected_data: list[ProjectedDataItem] = Field(..., alias='projectedData', description='Time series data result of the forecasting analysis.') - - -class SummarizeDatabaseInsightResourceStatisticsAggregationCollection(OpsiBaseModel): - """Returns list of the Databases with resource statistics like usage, capacity, utilization and usage change percent.""" - - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - high_utilization_threshold: int = Field(..., alias='highUtilizationThreshold', description='Percent value in which a resource metric is considered highly utilized.') - low_utilization_threshold: int = Field(..., alias='lowUtilizationThreshold', description='Percent value in which a resource metric is considered lowly utilized.') - resource_metric: Literal['CPU', 'STORAGE', 'IO', 'MEMORY', 'MEMORY_PGA', 'MEMORY_SGA', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceMetric', description='Defines the type of resource metric (example: CPU, STORAGE)\n\nAllowed values for this property are: "CPU", "STORAGE", "IO", "MEMORY", "MEMORY_PGA", "MEMORY_SGA", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - usage_unit: Literal['CORES', 'GB', 'MBPS', 'IOPS', 'PERCENT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='usageUnit', description='Displays usage unit ( CORES, GB, PERCENT, MBPS)\n\nAllowed values for this property are: "CORES", "GB", "MBPS", "IOPS", "PERCENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - items: list[ResourceStatisticsAggregation] = Field(..., alias='items', description='Collection of Resource Statistics items') - - -class SummarizeDatabaseInsightResourceUsageAggregation(OpsiBaseModel): - """Resource usage summation for the current time period.""" - - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - resource_metric: Literal['CPU', 'STORAGE', 'IO', 'MEMORY', 'MEMORY_PGA', 'MEMORY_SGA', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceMetric', description='Defines the type of resource metric (example: CPU, STORAGE)\n\nAllowed values for this property are: "CPU", "STORAGE", "IO", "MEMORY", "MEMORY_PGA", "MEMORY_SGA", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - usage_unit: Literal['CORES', 'GB', 'MBPS', 'IOPS', 'PERCENT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='usageUnit', description='Displays usage unit ( CORES, GB, PERCENT, MBPS)\n\nAllowed values for this property are: "CORES", "GB", "MBPS", "IOPS", "PERCENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - usage: float = Field(..., alias='usage', description='Total amount used of the resource metric type (CPU, STORAGE).') - capacity: float = Field(..., alias='capacity', description='The maximum allocated amount of the resource metric type (CPU, STORAGE) for a set of databases.') - usage_change_percent: float = Field(..., alias='usageChangePercent', description='Percentage change in resource usage during the current period calculated using linear regression functions') - total_host_capacity: float | None = Field(None, alias='totalHostCapacity', description='The maximum host CPUs (cores x threads/core) on the underlying infrastructure. This only applies to CPU and does not not apply for Autonomous Databases.') - - -class SummarizeDatabaseInsightResourceUsageTrendAggregationCollection(OpsiBaseModel): - """Top level response object.""" - - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - resource_metric: Literal['CPU', 'STORAGE', 'IO', 'MEMORY', 'MEMORY_PGA', 'MEMORY_SGA', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceMetric', description='Defines the type of resource metric (example: CPU, STORAGE)\n\nAllowed values for this property are: "CPU", "STORAGE", "IO", "MEMORY", "MEMORY_PGA", "MEMORY_SGA", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - usage_unit: Literal['CORES', 'GB', 'MBPS', 'IOPS', 'PERCENT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='usageUnit', description='Displays usage unit ( CORES, GB, PERCENT, MBPS)\n\nAllowed values for this property are: "CORES", "GB", "MBPS", "IOPS", "PERCENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - item_duration_in_ms: int = Field(..., alias='itemDurationInMs', description='Time duration in milliseconds between data points (one hour or one day).') - usage_data: list[ResourceUsageTrendAggregation] = Field(..., alias='usageData', description='Usage Data with time stamps') - - -class SummarizeDatabaseInsightResourceUtilizationInsightAggregation(OpsiBaseModel): - """Insights response containing current/projected groups for storage or CPU.""" - - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - high_utilization_threshold: int = Field(..., alias='highUtilizationThreshold', description='Percent value in which a resource metric is considered highly utilized.') - low_utilization_threshold: int = Field(..., alias='lowUtilizationThreshold', description='Percent value in which a resource metric is considered lowly utilized.') - resource_metric: Literal['CPU', 'STORAGE', 'IO', 'MEMORY', 'MEMORY_PGA', 'MEMORY_SGA', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceMetric', description='Defines the type of resource metric (example: CPU, STORAGE)\n\nAllowed values for this property are: "CPU", "STORAGE", "IO", "MEMORY", "MEMORY_PGA", "MEMORY_SGA", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - projected_utilization: ResourceInsightProjectedUtilization = Field(..., alias='projectedUtilization', description='The projected_utilization field of SummarizeDatabaseInsightResourceUtilizationInsightAggregation.') - current_utilization: ResourceInsightCurrentUtilization = Field(..., alias='currentUtilization', description='The current_utilization field of SummarizeDatabaseInsightResourceUtilizationInsightAggregation.') - - -class SummarizeDatabaseInsightTablespaceUsageTrendAggregationCollection(OpsiBaseModel): - """Top level response object.""" - - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - usage_unit: Literal['CORES', 'GB', 'MBPS', 'IOPS', 'PERCENT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='usageUnit', description='Displays usage unit ( CORES, GB, PERCENT, MBPS)\n\nAllowed values for this property are: "CORES", "GB", "MBPS", "IOPS", "PERCENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - item_duration_in_ms: int = Field(..., alias='itemDurationInMs', description='Time duration in milliseconds between data points (one hour or one day).') - items: list[TablespaceUsageTrendAggregation] = Field(..., alias='items', description='Collection of Usage Data with time stamps for top five tablespace') - - -class SummarizeExadataInsightResourceCapacityTrendAggregation(OpsiBaseModel): - """Collection of resource capacity trend.""" - - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - exadata_resource_metric: Literal['CPU', 'STORAGE', 'IO', 'MEMORY', 'IOPS', 'THROUGHPUT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataResourceMetric', description='Defines the type of exadata resource metric (example: CPU, STORAGE)\n\nAllowed values for this property are: "CPU", "STORAGE", "IO", "MEMORY", "IOPS", "THROUGHPUT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - exadata_resource_type: Literal['DATABASE', 'HOST', 'STORAGE_SERVER', 'DISKGROUP', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataResourceType', description='Defines the resource type for an exadata (example: DATABASE, STORAGE_SERVER, HOST, DISKGROUP)\n\nAllowed values for this property are: "DATABASE", "HOST", "STORAGE_SERVER", "DISKGROUP", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - usage_unit: Literal['CORES', 'GB', 'MBPS', 'IOPS', 'PERCENT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='usageUnit', description='Displays usage unit ( CORES, GB, PERCENT, MBPS)\n\nAllowed values for this property are: "CORES", "GB", "MBPS", "IOPS", "PERCENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - item_duration_in_ms: int = Field(..., alias='itemDurationInMs', description='Time duration in milliseconds between data points (one hour or one day).') - capacity_data: list[ExadataInsightResourceCapacityTrendAggregation] = Field(..., alias='capacityData', description='Capacity Data with time interval') - - -class SummarizeExadataInsightResourceCapacityTrendCollection(OpsiBaseModel): - """capacity results with breakdown by databases, hosts, storage servers or diskgroup.""" - - exadata_insight_id: str = Field(..., alias='exadataInsightId', description='The OCID of the Exadata insight.') - exadata_resource_type: Literal['DATABASE', 'HOST', 'STORAGE_SERVER', 'DISKGROUP', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataResourceType', description='Defines the resource type for an exadata (example: DATABASE, STORAGE_SERVER, HOST, DISKGROUP)\n\nAllowed values for this property are: "DATABASE", "HOST", "STORAGE_SERVER", "DISKGROUP", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - exadata_resource_metric: Literal['CPU', 'STORAGE', 'IO', 'MEMORY', 'IOPS', 'THROUGHPUT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataResourceMetric', description='Defines the type of exadata resource metric (example: CPU, STORAGE)\n\nAllowed values for this property are: "CPU", "STORAGE", "IO", "MEMORY", "IOPS", "THROUGHPUT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - usage_unit: Literal['CORES', 'GB', 'MBPS', 'IOPS', 'PERCENT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='usageUnit', description='Displays usage unit ( CORES, GB, PERCENT, MBPS)\n\nAllowed values for this property are: "CORES", "GB", "MBPS", "IOPS", "PERCENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - items: list[ExadataInsightResourceCapacityTrendSummary] = Field(..., alias='items', description='Capacity Data with time interval') - - -class SummarizeExadataInsightResourceForecastTrendAggregation(OpsiBaseModel): - """Usage and Forecast results from the selected time period.""" - - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - exadata_resource_metric: Literal['CPU', 'STORAGE', 'IO', 'MEMORY', 'IOPS', 'THROUGHPUT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataResourceMetric', description='Defines the type of exadata resource metric (example: CPU, STORAGE)\n\nAllowed values for this property are: "CPU", "STORAGE", "IO", "MEMORY", "IOPS", "THROUGHPUT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - exadata_resource_type: Literal['DATABASE', 'HOST', 'STORAGE_SERVER', 'DISKGROUP', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataResourceType', description='Defines the resource type for an exadata (example: DATABASE, STORAGE_SERVER, HOST, DISKGROUP)\n\nAllowed values for this property are: "DATABASE", "HOST", "STORAGE_SERVER", "DISKGROUP", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - usage_unit: Literal['CORES', 'GB', 'MBPS', 'IOPS', 'PERCENT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='usageUnit', description='Displays usage unit ( CORES, GB, PERCENT, MBPS)\n\nAllowed values for this property are: "CORES", "GB", "MBPS", "IOPS", "PERCENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - selected_forecast_algorithm: str | None = Field(None, alias='selectedForecastAlgorithm', description='Auto-ML algorithm leveraged for the forecast. Only applicable for Auto-ML forecast.') - pattern: Literal['LINEAR', 'MONTHLY_SEASONS', 'MONTHLY_AND_YEARLY_SEASONS', 'WEEKLY_SEASONS', 'WEEKLY_AND_MONTHLY_SEASONS', 'WEEKLY_MONTHLY_AND_YEARLY_SEASONS', 'WEEKLY_AND_YEARLY_SEASONS', 'YEARLY_SEASONS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='pattern', description='Time series patterns used in the forecasting.\n\nAllowed values for this property are: "LINEAR", "MONTHLY_SEASONS", "MONTHLY_AND_YEARLY_SEASONS", "WEEKLY_SEASONS", "WEEKLY_AND_MONTHLY_SEASONS", "WEEKLY_MONTHLY_AND_YEARLY_SEASONS", "WEEKLY_AND_YEARLY_SEASONS", "YEARLY_SEASONS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - days_to_reach_capacity: int = Field(..., alias='daysToReachCapacity', description='Days to reach capacity for a storage server') - historical_data: list[HistoricalDataItem] = Field(..., alias='historicalData', description='Time series data used for the forecast analysis.') - projected_data: list[ProjectedDataItem] = Field(..., alias='projectedData', description='Time series data result of the forecasting analysis.') - - -class SummarizeExadataInsightResourceForecastTrendCollection(OpsiBaseModel): - """Usage and Forecast results with breakdown by databases, hosts or storage servers.""" - - exadata_insight_id: str = Field(..., alias='exadataInsightId', description='The OCID of the Exadata insight.') - exadata_resource_type: Literal['DATABASE', 'HOST', 'STORAGE_SERVER', 'DISKGROUP', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataResourceType', description='Defines the resource type for an exadata (example: DATABASE, STORAGE_SERVER, HOST, DISKGROUP)\n\nAllowed values for this property are: "DATABASE", "HOST", "STORAGE_SERVER", "DISKGROUP", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - exadata_resource_metric: Literal['CPU', 'STORAGE', 'IO', 'MEMORY', 'IOPS', 'THROUGHPUT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataResourceMetric', description='Defines the type of exadata resource metric (example: CPU, STORAGE)\n\nAllowed values for this property are: "CPU", "STORAGE", "IO", "MEMORY", "IOPS", "THROUGHPUT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - usage_unit: Literal['CORES', 'GB', 'MBPS', 'IOPS', 'PERCENT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='usageUnit', description='Displays usage unit ( CORES, GB, PERCENT, MBPS)\n\nAllowed values for this property are: "CORES", "GB", "MBPS", "IOPS", "PERCENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - items: list[ExadataInsightResourceForecastTrendSummary] = Field(..., alias='items', description='Collection of id, name, daysToReach Capacity, historical usage and projected usage forecast.') - - -class SummarizeExadataInsightResourceStatisticsAggregationCollection(OpsiBaseModel): - """Returns list of the resources with resource statistics like usage,capacity,utilization and usage change percent.""" - - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - items: list[ExadataInsightResourceStatisticsAggregation] = Field(..., alias='items', description='Collection of Resource Statistics items') - usage_unit: Literal['CORES', 'GB', 'MBPS', 'IOPS', 'PERCENT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='usageUnit', description='Displays usage unit ( CORES, GB, PERCENT, MBPS)\n\nAllowed values for this property are: "CORES", "GB", "MBPS", "IOPS", "PERCENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - exadata_resource_metric: Literal['CPU', 'STORAGE', 'IO', 'MEMORY', 'IOPS', 'THROUGHPUT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataResourceMetric', description='Defines the type of exadata resource metric (example: CPU, STORAGE)\n\nAllowed values for this property are: "CPU", "STORAGE", "IO", "MEMORY", "IOPS", "THROUGHPUT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - exadata_insight_id: str = Field(..., alias='exadataInsightId', description='The OCID of the Exadata insight.') - exadata_display_name: str | None = Field(None, alias='exadataDisplayName', description='The user-friendly name for the Exadata system. The name does not have to be unique.') - - -class SummarizeExadataInsightResourceUsageAggregation(OpsiBaseModel): - """Resource usage summation for the current time period.""" - - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - exadata_resource_metric: Literal['CPU', 'STORAGE', 'IO', 'MEMORY', 'IOPS', 'THROUGHPUT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataResourceMetric', description='Defines the type of exadata resource metric (example: CPU, STORAGE)\n\nAllowed values for this property are: "CPU", "STORAGE", "IO", "MEMORY", "IOPS", "THROUGHPUT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - exadata_resource_type: Literal['DATABASE', 'HOST', 'STORAGE_SERVER', 'DISKGROUP', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataResourceType', description='Defines the resource type for an exadata (example: DATABASE, STORAGE_SERVER, HOST, DISKGROUP)\n\nAllowed values for this property are: "DATABASE", "HOST", "STORAGE_SERVER", "DISKGROUP", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - usage_unit: Literal['CORES', 'GB', 'MBPS', 'IOPS', 'PERCENT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='usageUnit', description='Displays usage unit ( CORES, GB, PERCENT, MBPS)\n\nAllowed values for this property are: "CORES", "GB", "MBPS", "IOPS", "PERCENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - usage: float = Field(..., alias='usage', description='Total amount used of the resource metric type (CPU, STORAGE).') - capacity: float = Field(..., alias='capacity', description='The maximum allocated amount of the resource metric type (CPU, STORAGE) for a set of databases.') - usage_change_percent: float = Field(..., alias='usageChangePercent', description='Percentage change in resource usage during the current period calculated using linear regression functions') - total_host_capacity: float | None = Field(None, alias='totalHostCapacity', description='The maximum host CPUs (cores x threads/core) on the underlying infrastructure. This only applies to CPU and does not not apply for Autonomous Databases.') - - -class SummarizeExadataInsightResourceUsageCollection(OpsiBaseModel): - """Resource usage, allocation, utilization and usage ChangePercent for the current time period.""" - - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - exadata_resource_metric: Literal['CPU', 'STORAGE', 'IO', 'MEMORY', 'IOPS', 'THROUGHPUT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataResourceMetric', description='Defines the type of exadata resource metric (example: CPU, STORAGE)\n\nAllowed values for this property are: "CPU", "STORAGE", "IO", "MEMORY", "IOPS", "THROUGHPUT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - exadata_resource_type: Literal['DATABASE', 'HOST', 'STORAGE_SERVER', 'DISKGROUP', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataResourceType', description='Defines the resource type for an exadata (example: DATABASE, STORAGE_SERVER, HOST, DISKGROUP)\n\nAllowed values for this property are: "DATABASE", "HOST", "STORAGE_SERVER", "DISKGROUP", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - usage_unit: Literal['CORES', 'GB', 'MBPS', 'IOPS', 'PERCENT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='usageUnit', description='Displays usage unit ( CORES, GB, PERCENT, MBPS)\n\nAllowed values for this property are: "CORES", "GB", "MBPS", "IOPS", "PERCENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - items: list[ResourceUsageSummary] = Field(..., alias='items', description='Collection of Resource Usage Summary items') - - -class SummarizeExadataInsightResourceUtilizationInsightAggregation(OpsiBaseModel): - """Insights response containing utilization values for exadata systems.""" - - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - high_utilization_threshold: int = Field(..., alias='highUtilizationThreshold', description='Percent value in which a resource metric is considered highly utilized.') - low_utilization_threshold: int = Field(..., alias='lowUtilizationThreshold', description='Percent value in which a resource metric is considered lowly utilized.') - exadata_resource_metric: Literal['CPU', 'STORAGE', 'IO', 'MEMORY', 'IOPS', 'THROUGHPUT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataResourceMetric', description='Defines the type of exadata resource metric (example: CPU, STORAGE)\n\nAllowed values for this property are: "CPU", "STORAGE", "IO", "MEMORY", "IOPS", "THROUGHPUT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - exadata_resource_type: Literal['DATABASE', 'HOST', 'STORAGE_SERVER', 'DISKGROUP', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='exadataResourceType', description='Defines the resource type for an exadata (example: DATABASE, STORAGE_SERVER, HOST, DISKGROUP)\n\nAllowed values for this property are: "DATABASE", "HOST", "STORAGE_SERVER", "DISKGROUP", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - utilization: list[ExadataInsightResourceInsightUtilizationItem] = Field(..., alias='utilization', description='Collection of Exadata system utilization') - - -class SummarizeHostInsightHostRecommendationAggregation(OpsiBaseModel): - """Returns list of hosts with resource statistics like usage, capacity, utilization, usage change percent and load.""" - - resource_metric: Literal['CPU', 'MEMORY', 'LOGICAL_MEMORY', 'STORAGE', 'NETWORK', 'GPU_UTILIZATION', 'GPU_MEMORY_USAGE', 'IO', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceMetric', description='Defines the type of resource metric (CPU, Physical Memory, Logical Memory)\n\nAllowed values for this property are: "CPU", "MEMORY", "LOGICAL_MEMORY", "STORAGE", "NETWORK", "GPU_UTILIZATION", "GPU_MEMORY_USAGE", "IO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - usage_unit: Literal['CORES', 'GB', 'MBPS', 'IOPS', 'PERCENT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='usageUnit', description='Displays usage unit ( CORES, GB, PERCENT, MBPS)\n\nAllowed values for this property are: "CORES", "GB", "MBPS", "IOPS", "PERCENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - item_duration_in_ms: int = Field(..., alias='itemDurationInMs', description='Time duration in milliseconds between data points (one hour or one day).') - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - details: HostInsightHostRecommendations | None = Field(None, alias='details', description='The details field of SummarizeHostInsightHostRecommendationAggregation.') - - -class SummarizeHostInsightIoUsageTrendAggregationCollection(OpsiBaseModel): - """Top level response object.""" - - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - item_duration_in_ms: int = Field(..., alias='itemDurationInMs', description='Time duration in milliseconds between data points (one hour or one day).') - items: list[IoUsageTrendAggregation] = Field(..., alias='items', description='Collection of Usage Data with time stamps for all IO interfaces.') - - -class SummarizeHostInsightNetworkUsageTrendAggregationCollection(OpsiBaseModel): - """Top level response object.""" - - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - usage_unit: Literal['CORES', 'GB', 'MBPS', 'IOPS', 'PERCENT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='usageUnit', description='Displays usage unit ( CORES, GB, PERCENT, MBPS)\n\nAllowed values for this property are: "CORES", "GB", "MBPS", "IOPS", "PERCENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - item_duration_in_ms: int = Field(..., alias='itemDurationInMs', description='Time duration in milliseconds between data points (one hour or one day).') - items: list[NetworkUsageTrendAggregation] = Field(..., alias='items', description='Collection of Usage Data with time stamps for all network interfaces.') - - -class SummarizeHostInsightResourceCapacityTrendAggregationCollection(OpsiBaseModel): - """Top level response object.""" - - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - high_utilization_threshold: int = Field(..., alias='highUtilizationThreshold', description='Percent value in which a resource metric is considered highly utilized.') - low_utilization_threshold: int = Field(..., alias='lowUtilizationThreshold', description='Percent value in which a resource metric is considered lowly utilized.') - resource_metric: Literal['CPU', 'MEMORY', 'LOGICAL_MEMORY', 'STORAGE', 'NETWORK', 'GPU_UTILIZATION', 'GPU_MEMORY_USAGE', 'IO', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceMetric', description='Defines the type of resource metric (CPU, Physical Memory, Logical Memory)\n\nAllowed values for this property are: "CPU", "MEMORY", "LOGICAL_MEMORY", "STORAGE", "NETWORK", "GPU_UTILIZATION", "GPU_MEMORY_USAGE", "IO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - usage_unit: Literal['CORES', 'GB', 'MBPS', 'IOPS', 'PERCENT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='usageUnit', description='Displays usage unit ( CORES, GB, PERCENT, MBPS)\n\nAllowed values for this property are: "CORES", "GB", "MBPS", "IOPS", "PERCENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - item_duration_in_ms: int = Field(..., alias='itemDurationInMs', description='Time duration in milliseconds between data points (one hour or one day).') - capacity_data: list[HostResourceCapacityTrendAggregation] = Field(..., alias='capacityData', description='Capacity Data with timestamp.') - - -class SummarizeHostInsightResourceForecastTrendAggregation(OpsiBaseModel): - """Forecast results from the selected time period.""" - - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - high_utilization_threshold: int = Field(..., alias='highUtilizationThreshold', description='Percent value in which a resource metric is considered highly utilized.') - low_utilization_threshold: int = Field(..., alias='lowUtilizationThreshold', description='Percent value in which a resource metric is considered lowly utilized.') - resource_metric: Literal['CPU', 'MEMORY', 'LOGICAL_MEMORY', 'STORAGE', 'NETWORK', 'GPU_UTILIZATION', 'GPU_MEMORY_USAGE', 'IO', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceMetric', description='Defines the type of resource metric (CPU, Physical Memory, Logical Memory)\n\nAllowed values for this property are: "CPU", "MEMORY", "LOGICAL_MEMORY", "STORAGE", "NETWORK", "GPU_UTILIZATION", "GPU_MEMORY_USAGE", "IO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - usage_unit: Literal['CORES', 'GB', 'MBPS', 'IOPS', 'PERCENT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='usageUnit', description='Displays usage unit ( CORES, GB, PERCENT, MBPS)\n\nAllowed values for this property are: "CORES", "GB", "MBPS", "IOPS", "PERCENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - selected_forecast_algorithm: str | None = Field(None, alias='selectedForecastAlgorithm', description='Auto-ML algorithm leveraged for the forecast. Only applicable for Auto-ML forecast.') - pattern: Literal['LINEAR', 'MONTHLY_SEASONS', 'MONTHLY_AND_YEARLY_SEASONS', 'WEEKLY_SEASONS', 'WEEKLY_AND_MONTHLY_SEASONS', 'WEEKLY_MONTHLY_AND_YEARLY_SEASONS', 'WEEKLY_AND_YEARLY_SEASONS', 'YEARLY_SEASONS', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='pattern', description='Time series patterns used in the forecasting.\n\nAllowed values for this property are: "LINEAR", "MONTHLY_SEASONS", "MONTHLY_AND_YEARLY_SEASONS", "WEEKLY_SEASONS", "WEEKLY_AND_MONTHLY_SEASONS", "WEEKLY_MONTHLY_AND_YEARLY_SEASONS", "WEEKLY_AND_YEARLY_SEASONS", "YEARLY_SEASONS", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - historical_data: list[HistoricalDataItem] = Field(..., alias='historicalData', description='Time series data used for the forecast analysis.') - projected_data: list[ProjectedDataItem] = Field(..., alias='projectedData', description='Time series data result of the forecasting analysis.') - - -class SummarizeHostInsightResourceStatisticsAggregationCollection(OpsiBaseModel): - """Returns list of hosts with resource statistics like usage, capacity, utilization, usage change percent and load.""" - - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - high_utilization_threshold: int = Field(..., alias='highUtilizationThreshold', description='Percent value in which a resource metric is considered highly utilized.') - low_utilization_threshold: int = Field(..., alias='lowUtilizationThreshold', description='Percent value in which a resource metric is considered lowly utilized.') - resource_metric: Literal['CPU', 'MEMORY', 'LOGICAL_MEMORY', 'STORAGE', 'NETWORK', 'GPU_UTILIZATION', 'GPU_MEMORY_USAGE', 'IO', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceMetric', description='Defines the type of resource metric (CPU, Physical Memory, Logical Memory)\n\nAllowed values for this property are: "CPU", "MEMORY", "LOGICAL_MEMORY", "STORAGE", "NETWORK", "GPU_UTILIZATION", "GPU_MEMORY_USAGE", "IO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - usage_unit: Literal['CORES', 'GB', 'MBPS', 'IOPS', 'PERCENT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='usageUnit', description='Displays usage unit ( CORES, GB, PERCENT, MBPS)\n\nAllowed values for this property are: "CORES", "GB", "MBPS", "IOPS", "PERCENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - items: list[HostInsightResourceStatisticsAggregation] = Field(..., alias='items', description='Collection of Resource Statistics items') - - -class SummarizeHostInsightResourceUsageAggregation(OpsiBaseModel): - """Resource usage summation for the current time period.""" - - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - resource_metric: Literal['CPU', 'MEMORY', 'LOGICAL_MEMORY', 'STORAGE', 'NETWORK', 'GPU_UTILIZATION', 'GPU_MEMORY_USAGE', 'IO', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceMetric', description='Defines the type of resource metric (CPU, Physical Memory, Logical Memory)\n\nAllowed values for this property are: "CPU", "MEMORY", "LOGICAL_MEMORY", "STORAGE", "NETWORK", "GPU_UTILIZATION", "GPU_MEMORY_USAGE", "IO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - usage_unit: Literal['CORES', 'GB', 'MBPS', 'IOPS', 'PERCENT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='usageUnit', description='Displays usage unit ( CORES, GB, PERCENT, MBPS)\n\nAllowed values for this property are: "CORES", "GB", "MBPS", "IOPS", "PERCENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - usage: float = Field(..., alias='usage', description='Total amount used of the resource metric type (CPU, STORAGE).') - capacity: float = Field(..., alias='capacity', description='The maximum allocated amount of the resource metric type (CPU, STORAGE) for a set of databases.') - usage_change_percent: float = Field(..., alias='usageChangePercent', description='Percentage change in resource usage during the current period calculated using linear regression functions') - - -class SummarizeHostInsightResourceUsageTrendAggregationCollection(OpsiBaseModel): - """Top level response object.""" - - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - resource_metric: Literal['CPU', 'MEMORY', 'LOGICAL_MEMORY', 'STORAGE', 'NETWORK', 'GPU_UTILIZATION', 'GPU_MEMORY_USAGE', 'IO', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceMetric', description='Defines the type of resource metric (CPU, Physical Memory, Logical Memory)\n\nAllowed values for this property are: "CPU", "MEMORY", "LOGICAL_MEMORY", "STORAGE", "NETWORK", "GPU_UTILIZATION", "GPU_MEMORY_USAGE", "IO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - usage_unit: Literal['CORES', 'GB', 'MBPS', 'IOPS', 'PERCENT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='usageUnit', description='Displays usage unit ( CORES, GB, PERCENT, MBPS)\n\nAllowed values for this property are: "CORES", "GB", "MBPS", "IOPS", "PERCENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - item_duration_in_ms: int = Field(..., alias='itemDurationInMs', description='Time duration in milliseconds between data points (one hour or one day).') - usage_data: list[ResourceUsageTrendAggregation] = Field(..., alias='usageData', description='Usage Data with timestamp.') - - -class SummarizeHostInsightResourceUtilizationInsightAggregation(OpsiBaseModel): - """Insights response containing current/projected groups for CPU or memory.""" - - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - high_utilization_threshold: int = Field(..., alias='highUtilizationThreshold', description='Percent value in which a resource metric is considered highly utilized.') - low_utilization_threshold: int = Field(..., alias='lowUtilizationThreshold', description='Percent value in which a resource metric is considered lowly utilized.') - resource_metric: Literal['CPU', 'MEMORY', 'LOGICAL_MEMORY', 'STORAGE', 'NETWORK', 'GPU_UTILIZATION', 'GPU_MEMORY_USAGE', 'IO', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='resourceMetric', description='Defines the type of resource metric (CPU, Physical Memory, Logical Memory)\n\nAllowed values for this property are: "CPU", "MEMORY", "LOGICAL_MEMORY", "STORAGE", "NETWORK", "GPU_UTILIZATION", "GPU_MEMORY_USAGE", "IO", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - projected_utilization: ResourceInsightProjectedUtilization = Field(..., alias='projectedUtilization', description='The projected_utilization field of SummarizeHostInsightResourceUtilizationInsightAggregation.') - current_utilization: ResourceInsightCurrentUtilization = Field(..., alias='currentUtilization', description='The current_utilization field of SummarizeHostInsightResourceUtilizationInsightAggregation.') - - -class SummarizeHostInsightStorageUsageTrendAggregationCollection(OpsiBaseModel): - """Top level response object.""" - - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - usage_unit: Literal['CORES', 'GB', 'MBPS', 'IOPS', 'PERCENT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='usageUnit', description='Displays usage unit ( CORES, GB, PERCENT, MBPS)\n\nAllowed values for this property are: "CORES", "GB", "MBPS", "IOPS", "PERCENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - item_duration_in_ms: int = Field(..., alias='itemDurationInMs', description='Time duration in milliseconds between data points (one hour or one day).') - items: list[StorageUsageTrendAggregation] = Field(..., alias='items', description='Collection of Usage Data with time stamps for all filesystems.') - - -class SummarizeHostInsightsDiskStatisticsCollection(OpsiBaseModel): - """Top level response object.""" - - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - usage_unit: Literal['CORES', 'GB', 'MBPS', 'IOPS', 'PERCENT', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='usageUnit', description='Displays usage unit ( CORES, GB, PERCENT, MBPS)\n\nAllowed values for this property are: "CORES", "GB", "MBPS", "IOPS", "PERCENT", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - item_duration_in_ms: int = Field(..., alias='itemDurationInMs', description='Time duration in milliseconds between data points (one hour or one day).') - items: list[DiskStatistics] = Field(..., alias='items', description='Collection of Data for all disks in a host.') - - -class SummarizeHostInsightsTopProcessesUsageCollection(OpsiBaseModel): - """Top level response object.""" - - timestamp: datetime = Field(..., alias='timestamp', description='The start timestamp that was passed into the request.') - items: list[TopProcessesUsage] = Field(..., alias='items', description='List of usage data samples for a top process on a specific date.') - - -class SummarizeHostInsightsTopProcessesUsageTrendCollection(OpsiBaseModel): - """Top level response object.""" - - time_interval_start: datetime = Field(..., alias='timeIntervalStart', description='The start timestamp that was passed into the request.') - time_interval_end: datetime = Field(..., alias='timeIntervalEnd', description='The end timestamp that was passed into the request.') - items: list[TopProcessesUsageTrendAggregation] = Field(..., alias='items', description='Collection of Usage Data with time stamps for top processes') - - -class SummarizeOperationsInsightsWarehouseResourceUsageAggregation(OpsiBaseModel): - """Details of resource usage by an Operations Insights Warehouse resource.""" - - id: str = Field(..., alias='id', description='OPSI Warehouse OCID') - cpu_used: float | None = Field(None, alias='cpuUsed', description='Number of OCPUs used by OPSI Warehouse ADW. Can be fractional.') - storage_used_in_gbs: float | None = Field(None, alias='storageUsedInGBs', description='Storage by OPSI Warehouse ADW in GB.') - lifecycle_state: Literal['CREATING', 'UPDATING', 'ACTIVE', 'DELETING', 'DELETED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='lifecycleState', description='Possible lifecycle states\n\nAllowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class SummaryStatistics(OpsiBaseModel): - """Contains common summary statistics.""" - - minimum: float = Field(..., alias='minimum', description='The smallest number in the data set.') - maximum: float = Field(..., alias='maximum', description='The largest number in the data set.') - average: float = Field(..., alias='average', description='The average number in the data set.') - median: float = Field(..., alias='median', description='The middle number in the data set.') - lower_quartile: float = Field(..., alias='lowerQuartile', description="The middle number between the smallest number and the median of the data set. It's also known as the 25th quartile.") - upper_quartile: float = Field(..., alias='upperQuartile', description="The middle number between the median and the largest number of the data set. It's also known as the 75th quartile.") - - -class SynchronizeAutonomousDatabaseToExadataDetails(OpsiRequestModel): - """The details of onboarded autonomous database need to synchroized with infracture information.""" - - entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Source of the database entity. Currently only AUTONOMOUS_DATABASE source is supported.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') - - -class TablespaceUsageTrend(OpsiBaseModel): - """Usage data samples.""" - - end_timestamp: datetime = Field(..., alias='endTimestamp', description='The timestamp in which the current sampling period ends in RFC 3339 format.') - usage: float = Field(..., alias='usage', description='Total amount used of the resource metric type (CPU, STORAGE).') - capacity: float = Field(..., alias='capacity', description='The maximum allocated amount of the resource metric type (CPU, STORAGE) for a set of databases.') - - -class TablespaceUsageTrendAggregation(OpsiBaseModel): - """Usage data per tablespace for a Pluggable database.""" - - tablespace_name: str = Field(..., alias='tablespaceName', description='The name of tablespace.') - tablespace_type: str = Field(..., alias='tablespaceType', description='Type of tablespace') - usage_data: list[TablespaceUsageTrend] = Field(..., alias='usageData', description='List of usage data samples for a tablespace') - - -class TestMacsManagedAutonomousDatabaseInsightConnectionDetails(OpsiRequestModel): - """Connection details of a MACS-managed Autonomous database.""" - - management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') - connection_details: ConnectionDetails = Field(..., alias='connectionDetails', description='The connection_details field of TestMacsManagedAutonomousDatabaseInsightConnectionDetails.') - connection_credential_details: CredentialDetails = Field(..., alias='connectionCredentialDetails', description='The connection_credential_details field of TestMacsManagedAutonomousDatabaseInsightConnectionDetails.') - - -class TestMacsManagedCloudDatabaseInsightConnectionDetails(OpsiRequestModel): - """Connection details of a MACS-managed cloud database.""" - - management_agent_id: str = Field(..., alias='managementAgentId', description='The OCID of the Management Agent.') - connection_details: ConnectionDetails = Field(..., alias='connectionDetails', description='The connection_details field of TestMacsManagedCloudDatabaseInsightConnectionDetails.') - connection_credential_details: CredentialDetails = Field(..., alias='connectionCredentialDetails', description='The connection_credential_details field of TestMacsManagedCloudDatabaseInsightConnectionDetails.') - - -class TopProcessesUsage(OpsiBaseModel): - """Aggregated data for top processes on a specific date.""" - - command: str = Field(..., alias='command', description='Command line and arguments used to launch process.') - container_id: str | None = Field(None, alias='containerId', description='Container id if this process corresponds to a running container in the host.') - process_hash: str = Field(..., alias='processHash', description='Unique identifier for a process.') - cpu_usage: float = Field(..., alias='cpuUsage', description='Process CPU usage.') - cpu_utilization: float = Field(..., alias='cpuUtilization', description='Process CPU utilization percentage.') - memory_utilization: float = Field(..., alias='memoryUtilization', description='Process memory utilization percentage.') - virtual_memory_in_mbs: float = Field(..., alias='virtualMemoryInMBs', description='Process virtual memory in Megabytes.') - physical_memory_in_mbs: float = Field(..., alias='physicalMemoryInMBs', description='Procress physical memory in Megabytes.') - max_process_count: int = Field(..., alias='maxProcessCount', description='Maximum number of processes running at time of collection.', ge=0) - - -class TopProcessesUsageTrend(OpsiBaseModel): - """Aggregated data for top processes.""" - - end_timestamp: datetime = Field(..., alias='endTimestamp', description='The timestamp in which the current sampling period ends in RFC 3339 format.') - container_id: str | None = Field(None, alias='containerId', description='Container id if this process corresponds to a running container in the host.') - cpu_usage: float = Field(..., alias='cpuUsage', description='Process CPU usage.') - cpu_utilization: float = Field(..., alias='cpuUtilization', description='Process CPU utilization percentage') - memory_utilization: float = Field(..., alias='memoryUtilization', description='Process memory utilization percentage') - virtual_memory_in_mbs: float = Field(..., alias='virtualMemoryInMBs', description='Process virtual memory in Megabytes') - physical_memory_in_mbs: float = Field(..., alias='physicalMemoryInMBs', description='Procress physical memory in Megabytes') - max_process_count: int = Field(..., alias='maxProcessCount', description='Maximum number of processes running at time of collection', ge=0) - - -class TopProcessesUsageTrendAggregation(OpsiBaseModel): - """Usage data per host top process.""" - - command: str = Field(..., alias='command', description='Command line and arguments used to launch process') - usage_data: list[TopProcessesUsageTrend] = Field(..., alias='usageData', description='List of usage data samples for a top process') - - -class UpdateAutonomousDatabaseInsightDetails(OpsiBaseModel): - """Update fields for an autonomous database insight. Include only mutable fields that should change.""" - - entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Gets the entity_source of this UpdateDatabaseInsightDetails.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this UpdateDatabaseInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this UpdateDatabaseInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - - -class UpdateAwrHubDetails(OpsiRequestModel): - """Update fields for an AWR Hub, such as display name and tags. Include only fields that should change.""" - - display_name: str | None = Field(None, alias='displayName', description='User-friedly name of AWR Hub that does not have to be unique.') - - -class UpdateAwrHubSourceDetails(OpsiRequestModel): - """Awr hub source update object information.""" - - type: Literal['ADW_S', 'ATP_S', 'ADW_D', 'ATP_D', 'EXTERNAL_PDB', 'EXTERNAL_NONCDB', 'COMANAGED_VM_CDB', 'COMANAGED_VM_PDB', 'COMANAGED_VM_NONCDB', 'COMANAGED_BM_CDB', 'COMANAGED_BM_PDB', 'COMANAGED_BM_NONCDB', 'COMANAGED_EXACS_CDB', 'COMANAGED_EXACS_PDB', 'COMANAGED_EXACS_NONCDB', 'LH_S', 'APEX_S', 'AJD_S', 'AVD_S', 'LH_D', 'APEX_D', 'AJD_D', 'AVD_D', 'UNDEFINED'] | None = Field(None, alias='type', description='source type of the database\n\nAllowed values for this property are: "ADW_S", "ATP_S", "ADW_D", "ATP_D", "EXTERNAL_PDB", "EXTERNAL_NONCDB", "COMANAGED_VM_CDB", "COMANAGED_VM_PDB", "COMANAGED_VM_NONCDB", "COMANAGED_BM_CDB", "COMANAGED_BM_PDB", "COMANAGED_BM_NONCDB", "COMANAGED_EXACS_CDB", "COMANAGED_EXACS_PDB", "COMANAGED_EXACS_NONCDB", "LH_S", "APEX_S", "AJD_S", "AVD_S", "LH_D", "APEX_D", "AJD_D", "AVD_D", "UNDEFINED"') - - -class UpdateBasicConfigurationItemDetails(OpsiBaseModel): - """Configuration item details for OPSI configuration update.""" - - config_item_type: Literal['BASIC'] = Field(..., alias='configItemType', description='Gets the config_item_type of this UpdateConfigurationItemDetails.\nType of configuration item.\n\nAllowed values for this property are: "BASIC"') - name: str | None = Field(None, alias='name', description='Name of configuration item.') - value: str | None = Field(None, alias='value', description='Value of configuration item.') - - -class UpdateChargebackPlanDetails(OpsiRequestModel): - """The details used to update a Ops Insights chargeback plan.""" - - plan_description: str | None = Field(None, alias='planDescription', description='Description of OPSI Chargeback Plan.') - plan_name: str | None = Field(None, alias='planName', description='Name for the OPSI Chargeback plan.') - plan_custom_items: list[CreatePlanCustomItemDetails] | None = Field(None, alias='planCustomItems', description='List of chargeback plan customizations.') - - -class UpdateChargebackPlanReportDetails(OpsiRequestModel): - """The details used to update a Ops Insights chargeback plan report.""" - - report_name: str = Field(..., alias='reportName', description='The chargeback plan report name.') - report_properties: ReportPropertyDetails = Field(..., alias='reportProperties', description='The report_properties field of UpdateChargebackPlanReportDetails.') - - -class UpdateConfigurationItemDetails(OpsiBaseModel): - """Configuration item details for OPSI configuration update.""" - - config_item_type: Literal['BASIC'] = Field(..., alias='configItemType', description='Type of configuration item.\n\nAllowed values for this property are: "BASIC"') - - -class UpdateDatabaseInsightDetails(OpsiRequestModel): - """Base update payload for database insights. Include the entitySource discriminator and any mutable tags or subtype fields to change.""" - - entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Source of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') - - -class UpdateEmManagedExternalDatabaseInsightDetails(OpsiBaseModel): - """Update fields for an Enterprise Manager-managed external database insight.""" - - entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Gets the entity_source of this UpdateDatabaseInsightDetails.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this UpdateDatabaseInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this UpdateDatabaseInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - - -class UpdateEmManagedExternalExadataInsightDetails(OpsiBaseModel): - """Update fields for an Enterprise Manager-managed external Exadata insight.""" - - entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA'] = Field(..., alias='entitySource', description='Gets the entity_source of this UpdateExadataInsightDetails.\nSource of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA"') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this UpdateExadataInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this UpdateExadataInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - is_auto_sync_enabled: bool | None = Field(None, alias='isAutoSyncEnabled', description='Set to true to enable automatic enablement and disablement of related targets from Enterprise Manager. New resources (e.g. Database Insights) will be placed in the same compartment as the related Exadata Insight.') - - -class UpdateEmManagedExternalHostInsightDetails(OpsiBaseModel): - """Update fields for an Enterprise Manager-managed external host insight.""" - - entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST'] = Field(..., alias='entitySource', description='Gets the entity_source of this UpdateHostInsightDetails.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST"') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this UpdateHostInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this UpdateHostInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - - -class UpdateEnterpriseManagerBridgeDetails(OpsiRequestModel): - """Update fields for an Enterprise Manager bridge, such as display name, description, and tags.""" - - display_name: str | None = Field(None, alias='displayName', description='User-friedly name of Enterprise Manager Bridge that does not have to be unique.') - description: str | None = Field(None, alias='description', description='Description of Enterprise Manager Bridge') - - -class UpdateExadataInsightDetails(OpsiRequestModel): - """Base update payload for Exadata insights. Include the entitySource discriminator and any mutable tags or subtype fields to change.""" - - entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA'] = Field(..., alias='entitySource', description='Source of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA"') - - -class UpdateExternalMysqlDatabaseInsightDetails(OpsiBaseModel): - """Database insight resource.""" - - entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Gets the entity_source of this UpdateDatabaseInsightDetails.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this UpdateDatabaseInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this UpdateDatabaseInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - - -class UpdateHostInsightDetails(OpsiRequestModel): - """Base update payload for host insights. Include the entitySource discriminator and any mutable tags or subtype fields to change.""" - - entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST'] = Field(..., alias='entitySource', description='Source of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST"') - - -class UpdateMacsManagedAutonomousDatabaseInsightDetails(OpsiBaseModel): - """The freeformTags and definedTags to be updated.""" - - entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Gets the entity_source of this UpdateDatabaseInsightDetails.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this UpdateDatabaseInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this UpdateDatabaseInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - - -class UpdateMacsManagedCloudDatabaseHostInsightDetails(OpsiBaseModel): - """Update fields for a MACS-managed cloud database host insight.""" - - entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST'] = Field(..., alias='entitySource', description='Gets the entity_source of this UpdateHostInsightDetails.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST"') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this UpdateHostInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this UpdateHostInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - - -class UpdateMacsManagedCloudDatabaseInsightDetails(OpsiBaseModel): - """The freeformTags and definedTags to be updated.""" - - entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Gets the entity_source of this UpdateDatabaseInsightDetails.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this UpdateDatabaseInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this UpdateDatabaseInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - - -class UpdateMacsManagedCloudExadataInsightDetails(OpsiBaseModel): - """Update fields for a MACS-managed cloud Exadata insight.""" - - entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA'] = Field(..., alias='entitySource', description='Gets the entity_source of this UpdateExadataInsightDetails.\nSource of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA"') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this UpdateExadataInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this UpdateExadataInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - - -class UpdateMacsManagedCloudHostInsightDetails(OpsiBaseModel): - """Update fields for a MACS-managed cloud host insight.""" - - entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST'] = Field(..., alias='entitySource', description='Gets the entity_source of this UpdateHostInsightDetails.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST"') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this UpdateHostInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this UpdateHostInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - - -class UpdateMacsManagedExternalDatabaseInsightDetails(OpsiBaseModel): - """The freeformTags and definedTags to be updated.""" - - entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Gets the entity_source of this UpdateDatabaseInsightDetails.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this UpdateDatabaseInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this UpdateDatabaseInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - - -class UpdateMacsManagedExternalHostInsightDetails(OpsiBaseModel): - """Update fields for a MACS-managed external host insight.""" - - entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST'] = Field(..., alias='entitySource', description='Gets the entity_source of this UpdateHostInsightDetails.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST"') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this UpdateHostInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this UpdateHostInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - - -class UpdateMdsMySqlDatabaseInsight(OpsiBaseModel): - """Database insight resource.""" - - entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Gets the entity_source of this UpdateDatabaseInsightDetails.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this UpdateDatabaseInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this UpdateDatabaseInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - - -class UpdateNewsReportDetails(OpsiRequestModel): - """The information about the news report to be updated.""" - - status: Literal['DISABLED', 'ENABLED', 'TERMINATED'] | None = Field(None, alias='status', description='Defines if the news report will be enabled or disabled.\n\nAllowed values for this property are: "DISABLED", "ENABLED", "TERMINATED"') - news_frequency: Literal['WEEKLY', 'DAILY', 'HOURLY'] | None = Field(None, alias='newsFrequency', description='News report frequency.\n\nAllowed values for this property are: "WEEKLY", "DAILY", "HOURLY"') - locale: Literal['EN'] | None = Field(None, alias='locale', description='Language of the news report.\n\nAllowed values for this property are: "EN"') - content_types: NewsContentTypes | None = Field(None, alias='contentTypes', description='The content_types field of UpdateNewsReportDetails.') - ons_topic_id: str | None = Field(None, alias='onsTopicId', description='The OCID of the ONS topic.') - name: str | None = Field(None, alias='name', description='The news report name.') - description: str | None = Field(None, alias='description', description='The description of the news report.') - day_of_week: Literal['MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SUNDAY'] | None = Field(None, alias='dayOfWeek', description='Day of the week in which the news report will be sent if the frequency is set to WEEKLY.\n\nAllowed values for this property are: "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"') - are_child_compartments_included: bool | None = Field(None, alias='areChildCompartmentsIncluded', description='A flag to consider the resources within a given compartment and all sub-compartments.') - - -class UpdateOperationsInsightsPrivateEndpointDetails(OpsiRequestModel): - """The details used to update a Operation Insights private endpoint.""" - - display_name: str | None = Field(None, alias='displayName', description='The display name of the private endpoint.') - description: str | None = Field(None, alias='description', description='The description of the private endpoint.') - nsg_ids: list[str] | None = Field(None, alias='nsgIds', description='The OCID of the network security groups that the Private service accessed the database.') - - -class UpdateOperationsInsightsWarehouseDetails(OpsiRequestModel): - """Update fields for an Operations Insights warehouse, such as display name, allocated CPU, storage, and tags.""" - - display_name: str | None = Field(None, alias='displayName', description='User-friedly name of Ops Insights Warehouse that does not have to be unique.') - cpu_allocated: float | None = Field(None, alias='cpuAllocated', description='Number of CPUs allocated to OPSI Warehouse ADW.') - compute_model: str | None = Field(None, alias='computeModel', description='The compute model for the OPSI warehouse ADW (OCPU or ECPU)') - storage_allocated_in_gbs: float | None = Field(None, alias='storageAllocatedInGBs', description='Storage allocated to OPSI Warehouse ADW.') - - -class UpdateOperationsInsightsWarehouseUserDetails(OpsiRequestModel): - """Update fields for an Operations Insights warehouse user, including access flags, password, and tags.""" - - connection_password: str | None = Field(None, alias='connectionPassword', description='User provided connection password for the AWR Data, Enterprise Manager Data and Ops Insights OPSI Hub.') - is_awr_data_access: bool | None = Field(None, alias='isAwrDataAccess', description='Indicate whether user has access to AWR data.') - is_em_data_access: bool | None = Field(None, alias='isEmDataAccess', description='Indicate whether user has access to EM data.') - is_opsi_data_access: bool | None = Field(None, alias='isOpsiDataAccess', description='Indicate whether user has access to OPSI data.') - - -class UpdateOpsiConfigurationDetails(OpsiRequestModel): - """Information to be updated in OPSI configuration resource.""" - - opsi_config_type: Literal['UX_CONFIGURATION'] = Field(..., alias='opsiConfigType', description='OPSI configuration type.\n\nAllowed values for this property are: "UX_CONFIGURATION"') - display_name: str | None = Field(None, alias='displayName', description='User-friendly display name for the OPSI configuration. The name does not have to be unique.') - description: str | None = Field(None, alias='description', description='Description of OPSI configuration.') - config_items: list[UpdateConfigurationItemDetails] | None = Field(None, alias='configItems', description='Array of configuration items with custom values. All and only configuration items requiring custom values should be part of this array.\nThis array overwrites the existing custom configuration items array for this resource.') - - -class UpdateOpsiUxConfigurationDetails(OpsiBaseModel): - """Information to be updated in OPSI UX configuration.""" - - opsi_config_type: Literal['UX_CONFIGURATION'] = Field(..., alias='opsiConfigType', description='Gets the opsi_config_type of this UpdateOpsiConfigurationDetails.\nOPSI configuration type.\n\nAllowed values for this property are: "UX_CONFIGURATION"') - display_name: str | None = Field(None, alias='displayName', description='Gets the display_name of this UpdateOpsiConfigurationDetails.\nUser-friendly display name for the OPSI configuration. The name does not have to be unique.') - description: str | None = Field(None, alias='description', description='Gets the description of this UpdateOpsiConfigurationDetails.\nDescription of OPSI configuration.') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this UpdateOpsiConfigurationDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this UpdateOpsiConfigurationDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - system_tags: dict[str, dict[str, Any]] | None = Field(None, alias='systemTags', description='Gets the system_tags of this UpdateOpsiConfigurationDetails.\nSystem tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"orcl-cloud": {"free-tier-retained": "true"}}`') - config_items: list[UpdateConfigurationItemDetails] | None = Field(None, alias='configItems', description='Gets the config_items of this UpdateOpsiConfigurationDetails.\nArray of configuration items with custom values. All and only configuration items requiring custom values should be part of this array.\nThis array overwrites the existing custom configuration items array for this resource.') - - -class UpdatePeComanagedDatabaseInsightDetails(OpsiBaseModel): - """The freeformTags and definedTags to be updated.""" - - entity_source: Literal['AUTONOMOUS_DATABASE', 'EM_MANAGED_EXTERNAL_DATABASE', 'MACS_MANAGED_EXTERNAL_DATABASE', 'PE_COMANAGED_DATABASE', 'MDS_MYSQL_DATABASE_SYSTEM', 'EXTERNAL_MYSQL_DATABASE_SYSTEM', 'MACS_MANAGED_CLOUD_DATABASE', 'MACS_MANAGED_AUTONOMOUS_DATABASE'] = Field(..., alias='entitySource', description='Gets the entity_source of this UpdateDatabaseInsightDetails.\nSource of the database entity.\n\nAllowed values for this property are: "AUTONOMOUS_DATABASE", "EM_MANAGED_EXTERNAL_DATABASE", "MACS_MANAGED_EXTERNAL_DATABASE", "PE_COMANAGED_DATABASE", "MDS_MYSQL_DATABASE_SYSTEM", "EXTERNAL_MYSQL_DATABASE_SYSTEM", "MACS_MANAGED_CLOUD_DATABASE", "MACS_MANAGED_AUTONOMOUS_DATABASE"') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this UpdateDatabaseInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this UpdateDatabaseInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - - -class UpdatePeComanagedExadataInsightDetails(OpsiBaseModel): - """Update fields for a private-endpoint co-managed Exadata insight.""" - - entity_source: Literal['EM_MANAGED_EXTERNAL_EXADATA', 'PE_COMANAGED_EXADATA', 'MACS_MANAGED_CLOUD_EXADATA'] = Field(..., alias='entitySource', description='Gets the entity_source of this UpdateExadataInsightDetails.\nSource of the Exadata system.\n\nAllowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", "MACS_MANAGED_CLOUD_EXADATA"') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this UpdateExadataInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this UpdateExadataInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - - -class UpdatePeComanagedHostInsightDetails(OpsiBaseModel): - """Update fields for a private-endpoint co-managed host insight.""" - - entity_source: Literal['MACS_MANAGED_EXTERNAL_HOST', 'EM_MANAGED_EXTERNAL_HOST', 'MACS_MANAGED_CLOUD_HOST', 'PE_COMANAGED_HOST', 'MACS_MANAGED_CLOUD_DB_HOST'] = Field(..., alias='entitySource', description='Gets the entity_source of this UpdateHostInsightDetails.\nSource of the host entity.\n\nAllowed values for this property are: "MACS_MANAGED_EXTERNAL_HOST", "EM_MANAGED_EXTERNAL_HOST", "MACS_MANAGED_CLOUD_HOST", "PE_COMANAGED_HOST", "MACS_MANAGED_CLOUD_DB_HOST"') - freeform_tags: dict[str, str] | None = Field(None, alias='freeformTags', description='Gets the freeform_tags of this UpdateHostInsightDetails.\nSimple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.\nExample: `{"bar-key": "value"}`') - defined_tags: dict[str, dict[str, Any]] | None = Field(None, alias='definedTags', description='Gets the defined_tags of this UpdateHostInsightDetails.\nDefined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{"foo-namespace": {"bar-key": "value"}}`') - - -class UxConfigurationItemsCollection(OpsiBaseModel): - """Collection of ux configuration item summary objects.""" - - opsi_config_type: Literal['UX_CONFIGURATION', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='opsiConfigType', description='Gets the opsi_config_type of this ConfigurationItemsCollection.\nOPSI configuration type.\n\nAllowed values for this property are: "UX_CONFIGURATION", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - config_items: list[ConfigurationItemSummary] | None = Field(None, alias='configItems', description='Gets the config_items of this ConfigurationItemsCollection.\nArray of configuration item summary objects.') - - -class VmClusterSummary(OpsiBaseModel): - """Partial information about the VM Cluster which includes name, memory allocated etc.""" - - vmcluster_name: str = Field(..., alias='vmclusterName', description='The name of the VM Cluster.') - memory_allocated_in_gbs: int | None = Field(None, alias='memoryAllocatedInGBs', description='The memory allocated on a VM Cluster.') - cpu_allocated: int | None = Field(None, alias='cpuAllocated', description='The CPU allocated on a VM Cluster.') - db_nodes_count: int | None = Field(None, alias='dbNodesCount', description='The number of DB nodes on a VM Cluster.', ge=0) - storage_allocated_in_gbs: int | None = Field(None, alias='storageAllocatedInGBs', description='The storage allocated on a VM Cluster.') - vm_cluster_id: str | None = Field(None, alias='vmClusterId', description='The OCID of the VM Cluster.') - - -class WarehouseDataObjectCollection(OpsiBaseModel): - """Collection of Warehouse data object summary objects.""" - - items: list[WarehouseDataObjectSummary] = Field(..., alias='items', description='Array of Warehouse data object summary objects.') - - -class WarehouseDataObjectDetails(OpsiBaseModel): - """Warehouse data object details.""" - - data_object_type: Literal['VIEW', 'TABLE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dataObjectType', description='Type of the data object.\n\nAllowed values for this property are: "VIEW", "TABLE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - - -class WarehouseDataObjectSummary(OpsiBaseModel): - """Summary of a Warehouse data object.""" - - data_object_type: Literal['VIEW', 'TABLE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dataObjectType', description='Type of the data object.\n\nAllowed values for this property are: "VIEW", "TABLE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - name: str | None = Field(None, alias='name', description='Name of the data object, which can be used in data object queries just like how view names are used in a query.') - owner: str | None = Field(None, alias='owner', description='Owner of the data object, which can be used in data object queries in front of data object names just like SCHEMA.VIEW notation in queries.') - details: WarehouseDataObjectDetails | None = Field(None, alias='details', description='The details field of WarehouseDataObjectSummary.') - - -class WarehouseTableDataObjectDetails(OpsiBaseModel): - """Details of a TABLE type data object in a Warehouse.""" - - data_object_type: Literal['VIEW', 'TABLE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dataObjectType', description='Gets the data_object_type of this WarehouseDataObjectDetails.\nType of the data object.\n\nAllowed values for this property are: "VIEW", "TABLE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - columns_metadata: list[DataObjectColumnMetadata] | None = Field(None, alias='columnsMetadata', description='Metadata of columns in the data object.') - - -class WarehouseViewDataObjectDetails(OpsiBaseModel): - """Details of a VIEW type data object in a Warehouse.""" - - data_object_type: Literal['VIEW', 'TABLE', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='dataObjectType', description='Gets the data_object_type of this WarehouseDataObjectDetails.\nType of the data object.\n\nAllowed values for this property are: "VIEW", "TABLE", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - columns_metadata: list[DataObjectColumnMetadata] | None = Field(None, alias='columnsMetadata', description='Metadata of columns in the data object.') - - -class WorkRequest(OpsiBaseModel): - """A description of workrequest status.""" - - operation_type: Literal['ENABLE_DATABASE_INSIGHT', 'DISABLE_DATABASE_INSIGHT', 'UPDATE_DATABASE_INSIGHT', 'CREATE_DATABASE_INSIGHT', 'MOVE_DATABASE_INSIGHT', 'DELETE_DATABASE_INSIGHT', 'CREATE_ENTERPRISE_MANAGER_BRIDGE', 'UDPATE_ENTERPRISE_MANAGER_BRIDGE', 'MOVE_ENTERPRISE_MANAGER_BRIDGE', 'DELETE_ENTERPRISE_MANAGER_BRIDGE', 'ENABLE_HOST_INSIGHT', 'DISABLE_HOST_INSIGHT', 'UPDATE_HOST_INSIGHT', 'CREATE_HOST_INSIGHT', 'MOVE_HOST_INSIGHT', 'DELETE_HOST_INSIGHT', 'CREATE_EXADATA_INSIGHT', 'ENABLE_EXADATA_INSIGHT', 'DISABLE_EXADATA_INSIGHT', 'UPDATE_EXADATA_INSIGHT', 'MOVE_EXADATA_INSIGHT', 'DELETE_EXADATA_INSIGHT', 'ADD_EXADATA_INSIGHT_MEMBERS', 'EXADATA_AUTO_SYNC', 'UPDATE_OPSI_WAREHOUSE', 'CREATE_OPSI_WAREHOUSE', 'MOVE_OPSI_WAREHOUSE', 'DELETE_OPSI_WAREHOUSE', 'ROTATE_OPSI_WAREHOUSE_WALLET', 'UPDATE_OPSI_WAREHOUSE_USER', 'CREATE_OPSI_WAREHOUSE_USER', 'MOVE_OPSI_WAREHOUSE_USER', 'DELETE_OPSI_WAREHOUSE_USER', 'UPDATE_AWRHUB', 'CREATE_AWRHUB', 'MOVE_AWRHUB', 'DELETE_AWRHUB', 'UPDATE_PRIVATE_ENDPOINT', 'CREATE_PRIVATE_ENDPOINT', 'MOVE_PRIVATE_ENDPOINT', 'DELETE_PRIVATE_ENDPOINT', 'CHANGE_PE_COMANAGED_DATABASE_INSIGHT_DETAILS', 'UPDATE_OPSI_CONFIGURATION', 'CREATE_OPSI_CONFIGURATION', 'MOVE_OPSI_CONFIGURATION', 'DELETE_OPSI_CONFIGURATION', 'ENABLE_ADB_ADVANCED_FEATURES', 'DISABLE_ADB_ADVANCED_FEATURES', 'UPDATE_ADB_ADVANCED_FEATURES', 'CREATE_NEWS_REPORT', 'ENABLE_NEWS_REPORT', 'DISABLE_NEWS_REPORT', 'UPDATE_NEWS_REPORT', 'MOVE_NEWS_REPORT', 'DELETE_NEWS_REPORT', 'CREATE_AWRHUB_SOURCE', 'DELETE_AWRHUB_SOURCE', 'UPDATE_AWRHUB_SOURCE', 'MOVE_AWRHUB_SOURCE', 'ENABLE_AWRHUB_SOURCE', 'DISABLE_AWRHUB_SOURCE', 'CHANGE_MACS_MANAGED_CLOUD_DATABASE_INSIGHT_CONNECTION_DETAILS', 'TEST_MACS_MANAGED_CLOUD_DATABASE_INSIGHT_CONNECTION_DETAILS', 'CHANGE_EXTERNAL_MYSQL_DATABASE_INSIGHT_CONNECTION_DETAILS', 'CHANGE_MACS_MANAGED_ADB_CONNECTION_DETAILS', 'TEST_MACS_MANAGED_ADB_CONNECTION_DETAILS', 'SYNCHRONIZE_AUTONOMOUS_DATABASE_TO_EXADATA', 'CREATE_CHARGE_BACK', 'ENABLE_CHARGE_BACK', 'DISABLE_CHARGE_BACK', 'UPDATE_CHARGE_BACK', 'MOVE_CHARGE_BACK', 'DELETE_CHARGE_BACK', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='operationType', description='Type of the work request\n\nAllowed values for this property are: "ENABLE_DATABASE_INSIGHT", "DISABLE_DATABASE_INSIGHT", "UPDATE_DATABASE_INSIGHT", "CREATE_DATABASE_INSIGHT", "MOVE_DATABASE_INSIGHT", "DELETE_DATABASE_INSIGHT", "CREATE_ENTERPRISE_MANAGER_BRIDGE", "UDPATE_ENTERPRISE_MANAGER_BRIDGE", "MOVE_ENTERPRISE_MANAGER_BRIDGE", "DELETE_ENTERPRISE_MANAGER_BRIDGE", "ENABLE_HOST_INSIGHT", "DISABLE_HOST_INSIGHT", "UPDATE_HOST_INSIGHT", "CREATE_HOST_INSIGHT", "MOVE_HOST_INSIGHT", "DELETE_HOST_INSIGHT", "CREATE_EXADATA_INSIGHT", "ENABLE_EXADATA_INSIGHT", "DISABLE_EXADATA_INSIGHT", "UPDATE_EXADATA_INSIGHT", "MOVE_EXADATA_INSIGHT", "DELETE_EXADATA_INSIGHT", "ADD_EXADATA_INSIGHT_MEMBERS", "EXADATA_AUTO_SYNC", "UPDATE_OPSI_WAREHOUSE", "CREATE_OPSI_WAREHOUSE", "MOVE_OPSI_WAREHOUSE", "DELETE_OPSI_WAREHOUSE", "ROTATE_OPSI_WAREHOUSE_WALLET", "UPDATE_OPSI_WAREHOUSE_USER", "CREATE_OPSI_WAREHOUSE_USER", "MOVE_OPSI_WAREHOUSE_USER", "DELETE_OPSI_WAREHOUSE_USER", "UPDATE_AWRHUB", "CREATE_AWRHUB", "MOVE_AWRHUB", "DELETE_AWRHUB", "UPDATE_PRIVATE_ENDPOINT", "CREATE_PRIVATE_ENDPOINT", "MOVE_PRIVATE_ENDPOINT", "DELETE_PRIVATE_ENDPOINT", "CHANGE_PE_COMANAGED_DATABASE_INSIGHT_DETAILS", "UPDATE_OPSI_CONFIGURATION", "CREATE_OPSI_CONFIGURATION", "MOVE_OPSI_CONFIGURATION", "DELETE_OPSI_CONFIGURATION", "ENABLE_ADB_ADVANCED_FEATURES", "DISABLE_ADB_ADVANCED_FEATURES", "UPDATE_ADB_ADVANCED_FEATURES", "CREATE_NEWS_REPORT", "ENABLE_NEWS_REPORT", "DISABLE_NEWS_REPORT", "UPDATE_NEWS_REPORT", "MOVE_NEWS_REPORT", "DELETE_NEWS_REPORT", "CREATE_AWRHUB_SOURCE", "DELETE_AWRHUB_SOURCE", "UPDATE_AWRHUB_SOURCE", "MOVE_AWRHUB_SOURCE", "ENABLE_AWRHUB_SOURCE", "DISABLE_AWRHUB_SOURCE", "CHANGE_MACS_MANAGED_CLOUD_DATABASE_INSIGHT_CONNECTION_DETAILS", "TEST_MACS_MANAGED_CLOUD_DATABASE_INSIGHT_CONNECTION_DETAILS", "CHANGE_EXTERNAL_MYSQL_DATABASE_INSIGHT_CONNECTION_DETAILS", "CHANGE_MACS_MANAGED_ADB_CONNECTION_DETAILS", "TEST_MACS_MANAGED_ADB_CONNECTION_DETAILS", "SYNCHRONIZE_AUTONOMOUS_DATABASE_TO_EXADATA", "CREATE_CHARGE_BACK", "ENABLE_CHARGE_BACK", "DISABLE_CHARGE_BACK", "UPDATE_CHARGE_BACK", "MOVE_CHARGE_BACK", "DELETE_CHARGE_BACK", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - status: Literal['ACCEPTED', 'IN_PROGRESS', 'WAITING', 'FAILED', 'SUCCEEDED', 'CANCELING', 'CANCELED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='status', description='Status of current work request.\n\nAllowed values for this property are: "ACCEPTED", "IN_PROGRESS", "WAITING", "FAILED", "SUCCEEDED", "CANCELING", "CANCELED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - id: str = Field(..., alias='id', description='The id of the work request.') - compartment_id: str = Field(..., alias='compartmentId', description='The ocid of the compartment that contains the work request. Work requests should be scoped to\nthe same compartment as the resource the work request affects. If the work request affects multiple resources,\nand those resources are not in the same compartment, it is up to the service team to pick the primary\nresource whose compartment should be used') - resources: list[WorkRequestResource] = Field(..., alias='resources', description='The resources affected by this work request.') - percent_complete: float = Field(..., alias='percentComplete', description='Percentage of the request completed.') - time_accepted: datetime = Field(..., alias='timeAccepted', description='The date and time the request was created, as described in RFC 3339, section 14.29.') - time_started: datetime | None = Field(None, alias='timeStarted', description='The date and time the request was started, as described in RFC 3339, section 14.29.') - time_finished: datetime | None = Field(None, alias='timeFinished', description='The date and time the object was finished, as described in RFC 3339.') - - -class WorkRequestCollection(OpsiBaseModel): - """Results of a workRequest search. Contains both WorkRequest items and other information, such as metadata.""" - - items: list[WorkRequest] = Field(..., alias='items', description='List of workRequests.') - - -class WorkRequestError(OpsiBaseModel): - """An error encountered while executing a work request.""" - - code: str = Field(..., alias='code', description='A machine-usable code for the error that occured. Error codes are listed on.') - message: str = Field(..., alias='message', description='A human readable description of the issue encountered.') - timestamp: datetime = Field(..., alias='timestamp', description='The time the error occured. An RFC3339 formatted datetime string.') - - -class WorkRequestErrorCollection(OpsiBaseModel): - """Results of a workRequestError search. Contains both WorkRequestError items and other information, such as metadata.""" - - items: list[WorkRequestError] = Field(..., alias='items', description='List of workRequestError objects.') - - -class WorkRequestLogEntry(OpsiBaseModel): - """A log message from the execution of a work request.""" - - message: str = Field(..., alias='message', description='Human-readable log message.') - timestamp: datetime = Field(..., alias='timestamp', description='The time the log message was written. An RFC3339 formatted datetime string') - - -class WorkRequestLogEntryCollection(OpsiBaseModel): - """Results of a workRequestLog search. Contains both workRequestLog items and other information, such as metadata.""" - - items: list[WorkRequestLogEntry] = Field(..., alias='items', description='List of workRequestLogEntries.') - - -class WorkRequestResource(OpsiBaseModel): - """A resource created or operated on by a work request.""" - - entity_type: str = Field(..., alias='entityType', description='The resource type the work request affects.') - action_type: Literal['CREATED', 'UPDATED', 'DELETED', 'IN_PROGRESS', 'RELATED', 'FAILED', 'UNKNOWN_ENUM_VALUE'] = Field(..., alias='actionType', description='The way in which this resource is affected by the work tracked in the work request.\nA resource being created, updated, or deleted will remain in the IN_PROGRESS state until\nwork is complete for that resource at which point it will transition to CREATED, UPDATED,\nor DELETED, respectively.\n\nAllowed values for this property are: "CREATED", "UPDATED", "DELETED", "IN_PROGRESS", "RELATED", "FAILED", \'UNKNOWN_ENUM_VALUE\'.\nAny unrecognized values returned by a service will be mapped to \'UNKNOWN_ENUM_VALUE\'.') - identifier: str = Field(..., alias='identifier', description='The identifier of the resource the work request affects.') - entity_uri: str | None = Field(None, alias='entityUri', description='The URI path that the user can do a GET on to access the resource') - metadata: dict[str, str] | None = Field(None, alias='metadata', description='Additional information that helps to explain the resource.') - - -class WorkRequests(OpsiBaseModel): - """Logical grouping used for Ops Insights Work Request operations.""" - - work_requests: Any | None = Field(None, alias='workRequests', description='OPSI Work Request Object.') - - -OPSI_MODEL_NAMES = ['AddEmManagedExternalExadataInsightMembersDetails', 'AddExadataInsightMembersDetails', 'AddMacsManagedCloudExadataInsightMembersDetails', 'AddPeComanagedExadataInsightMembersDetails', 'AddmDbCollection', 'AddmDbFindingAggregation', 'AddmDbFindingAggregationCollection', 'AddmDbFindingCategoryCollection', 'AddmDbFindingCategorySummary', 'AddmDbFindingsTimeSeriesCollection', 'AddmDbFindingsTimeSeriesSummary', 'AddmDbParameterAggregation', 'AddmDbParameterAggregationCollection', 'AddmDbParameterCategoryCollection', 'AddmDbParameterCategorySummary', 'AddmDbParameterChangeAggregation', 'AddmDbParameterChangeAggregationCollection', 'AddmDbRecommendationAggregation', 'AddmDbRecommendationAggregationCollection', 'AddmDbRecommendationCategoryCollection', 'AddmDbRecommendationCategorySummary', 'AddmDbRecommendationsTimeSeriesCollection', 'AddmDbRecommendationsTimeSeriesSummary', 'AddmDbSchemaObjectCollection', 'AddmDbSchemaObjectSummary', 'AddmDbSqlStatementCollection', 'AddmDbSqlStatementSummary', 'AddmDbSummary', 'AddmReport', 'AutonomousDatabaseConfigurationSummary', 'AutonomousDatabaseInsight', 'AutonomousDatabaseInsightSummary', 'AwrDatabaseCollection', 'AwrDatabaseCpuUsageCollection', 'AwrDatabaseCpuUsageSummary', 'AwrDatabaseMetricCollection', 'AwrDatabaseMetricSummary', 'AwrDatabaseParameterChangeCollection', 'AwrDatabaseParameterChangeSummary', 'AwrDatabaseParameterCollection', 'AwrDatabaseParameterSummary', 'AwrDatabaseReport', 'AwrDatabaseSnapshotCollection', 'AwrDatabaseSnapshotRangeCollection', 'AwrDatabaseSnapshotRangeSummary', 'AwrDatabaseSnapshotSummary', 'AwrDatabaseSqlReport', 'AwrDatabaseSummary', 'AwrDatabaseSysstatCollection', 'AwrDatabaseSysstatSummary', 'AwrDatabaseTopWaitEventCollection', 'AwrDatabaseTopWaitEventSummary', 'AwrDatabaseWaitEventBucketCollection', 'AwrDatabaseWaitEventBucketSummary', 'AwrDatabaseWaitEventCollection', 'AwrDatabaseWaitEventSummary', 'AwrHub', 'AwrHubObjects', 'AwrHubSource', 'AwrHubSourceSummary', 'AwrHubSourceSummaryCollection', 'AwrHubSources', 'AwrHubSummary', 'AwrHubSummaryCollection', 'AwrHubs', 'AwrQueryResult', 'AwrReport', 'AwrSnapshotCollection', 'AwrSnapshotSummary', 'AwrSourceSummary', 'BasicConfigurationItemMetadata', 'BasicConfigurationItemSummary', 'ChangeAutonomousDatabaseInsightAdvancedFeaturesDetails', 'ChangeAwrHubSourceCompartmentDetails', 'ChangeChargebackPlanCompartmentDetails', 'ChangeDatabaseInsightCompartmentDetails', 'ChangeEnterpriseManagerBridgeCompartmentDetails', 'ChangeExadataInsightCompartmentDetails', 'ChangeExternalMysqlDatabaseInsightConnectionDetails', 'ChangeHostInsightCompartmentDetails', 'ChangeMacsManagedAutonomousDatabaseInsightConnectionDetails', 'ChangeMacsManagedCloudDatabaseInsightConnectionDetails', 'ChangeNewsReportCompartmentDetails', 'ChangeOperationsInsightsPrivateEndpointCompartmentDetails', 'ChangeOperationsInsightsWarehouseCompartmentDetails', 'ChangeOpsiConfigurationCompartmentDetails', 'ChangePeComanagedDatabaseInsightDetails', 'ChargebackPlan', 'ChargebackPlanCollection', 'ChargebackPlanDetails', 'ChargebackPlanReport', 'ChargebackPlanReportCollection', 'ChargebackPlanReportSummary', 'ChargebackPlanSummary', 'CloudImportableComputeEntitySummary', 'ConfigurationItemAllowedValueDetails', 'ConfigurationItemFreeTextAllowedValueDetails', 'ConfigurationItemLimitAllowedValueDetails', 'ConfigurationItemMetadata', 'ConfigurationItemPickAllowedValueDetails', 'ConfigurationItemSummary', 'ConfigurationItemUnitDetails', 'ConfigurationItemsCollection', 'ConnectionDetails', 'CreateAutonomousDatabaseInsightDetails', 'CreateAwrHubDetails', 'CreateAwrHubSourceDetails', 'CreateBasicConfigurationItemDetails', 'CreateChargebackPlanDetails', 'CreateChargebackPlanExadataDetails', 'CreateChargebackPlanReportDetails', 'CreateConfigurationItemDetails', 'CreateDatabaseInsightDetails', 'CreateEmManagedExternalDatabaseInsightDetails', 'CreateEmManagedExternalExadataInsightDetails', 'CreateEmManagedExternalExadataMemberEntityDetails', 'CreateEmManagedExternalHostInsightDetails', 'CreateEnterpriseManagerBridgeDetails', 'CreateExadataInsightDetails', 'CreateExternalMysqlDatabaseInsightDetails', 'CreateHostInsightDetails', 'CreateMacsManagedAutonomousDatabaseInsightDetails', 'CreateMacsManagedCloudDatabaseInsightDetails', 'CreateMacsManagedCloudExadataClusterDetails', 'CreateMacsManagedCloudExadataInsightDetails', 'CreateMacsManagedCloudExadataVmclusterDetails', 'CreateMacsManagedCloudHostInsightDetails', 'CreateMacsManagedExternalHostInsightDetails', 'CreateMdsMySqlDatabaseInsightDetails', 'CreateNewsReportDetails', 'CreateOperationsInsightsPrivateEndpointDetails', 'CreateOperationsInsightsWarehouseDetails', 'CreateOperationsInsightsWarehouseUserDetails', 'CreateOpsiConfigurationDetails', 'CreateOpsiUxConfigurationDetails', 'CreatePeComanagedDatabaseInsightDetails', 'CreatePeComanagedExadataInsightDetails', 'CreatePeComanagedExadataVmclusterDetails', 'CreatePlanCustomItemDetails', 'CredentialByIam', 'CredentialByNamedCredentials', 'CredentialByVault', 'CredentialDetails', 'CredentialsBySource', 'DBConnectionStatus', 'DBExternalInstance', 'DBExternalProperties', 'DBOSConfigInstance', 'DBParameters', 'DataObjectBindParameter', 'DataObjectColumnMetadata', 'DataObjectColumnUnit', 'DataObjectCoreColumnUnit', 'DataObjectCustomColumnUnit', 'DataObjectDataSizeColumnUnit', 'DataObjectFrequencyColumnUnit', 'DataObjectOtherStandardColumnUnit', 'DataObjectPowerColumnUnit', 'DataObjectQuery', 'DataObjectQueryTimeFilters', 'DataObjectRateColumnUnit', 'DataObjectStandardQuery', 'DataObjectTemperatureColumnUnit', 'DataObjectTemplatizedQuery', 'DataObjectTimeColumnUnit', 'DatabaseConfigurationCollection', 'DatabaseConfigurationMetricGroup', 'DatabaseConfigurationSummary', 'DatabaseDetails', 'DatabaseInsight', 'DatabaseInsightSummary', 'DatabaseInsights', 'DatabaseInsightsCollection', 'DatabaseInsightsDataObject', 'DatabaseInsightsDataObjectSummary', 'DatabaseParameterTypeDetails', 'DiskGroupDetails', 'DiskStatistics', 'DownloadOperationsInsightsWarehouseWalletDetails', 'EmManagedExternalDatabaseConfigurationSummary', 'EmManagedExternalDatabaseInsight', 'EmManagedExternalDatabaseInsightSummary', 'EmManagedExternalExadataInsight', 'EmManagedExternalExadataInsightSummary', 'EmManagedExternalHostConfigurationSummary', 'EmManagedExternalHostInsight', 'EmManagedExternalHostInsightSummary', 'EnableAutonomousDatabaseInsightAdvancedFeaturesDetails', 'EnableAutonomousDatabaseInsightDetails', 'EnableDatabaseInsightDetails', 'EnableEmManagedExternalDatabaseInsightDetails', 'EnableEmManagedExternalExadataInsightDetails', 'EnableEmManagedExternalHostInsightDetails', 'EnableExadataInsightDetails', 'EnableExternalMysqlDatabaseInsightDetails', 'EnableHostInsightDetails', 'EnableMacsManagedAutonomousDatabaseInsightDetails', 'EnableMacsManagedCloudDatabaseInsightDetails', 'EnableMacsManagedCloudExadataInsightDetails', 'EnableMacsManagedCloudHostInsightDetails', 'EnableMacsManagedExternalHostInsightDetails', 'EnableMdsMySqlDatabaseInsightDetails', 'EnablePeComanagedDatabaseInsightDetails', 'EnablePeComanagedExadataInsightDetails', 'EnablePlanExadataInsightDetails', 'EnterpriseManagerBridge', 'EnterpriseManagerBridgeCollection', 'EnterpriseManagerBridgeSummary', 'EnterpriseManagerBridges', 'ExadataAsmEntity', 'ExadataCellConfig', 'ExadataConfigurationCollection', 'ExadataConfigurationSummary', 'ExadataDatabaseMachineConfigurationSummary', 'ExadataDatabaseStatisticsSummary', 'ExadataDetails', 'ExadataDiskgroupStatisticsSummary', 'ExadataExaccConfigurationSummary', 'ExadataExacsConfigurationSummary', 'ExadataHostStatisticsSummary', 'ExadataInsight', 'ExadataInsightResourceCapacityTrendAggregation', 'ExadataInsightResourceCapacityTrendSummary', 'ExadataInsightResourceForecastTrendSummary', 'ExadataInsightResourceInsightUtilizationItem', 'ExadataInsightResourceStatistics', 'ExadataInsightResourceStatisticsAggregation', 'ExadataInsightSummary', 'ExadataInsightSummaryCollection', 'ExadataInsights', 'ExadataInsightsDataObject', 'ExadataInsightsDataObjectSummary', 'ExadataMemberCollection', 'ExadataMemberSummary', 'ExadataStorageServerStatisticsSummary', 'ExternalMysqlDatabaseConfigurationSummary', 'ExternalMysqlDatabaseInsight', 'ExternalMysqlDatabaseInsightSummary', 'HistoricalDataItem', 'HostAllocation', 'HostConfigurationCollection', 'HostConfigurationMetricGroup', 'HostConfigurationSummary', 'HostContainers', 'HostCpuHardwareConfiguration', 'HostCpuRecommendations', 'HostCpuStatistics', 'HostCpuUsage', 'HostDetails', 'HostEntities', 'HostFilesystemConfiguration', 'HostFilesystemUsage', 'HostGpuConfiguration', 'HostGpuProcesses', 'HostGpuUsage', 'HostHardwareConfiguration', 'HostImportableAgentEntitySummary', 'HostInsight', 'HostInsightHostRecommendations', 'HostInsightResourceStatisticsAggregation', 'HostInsightSummary', 'HostInsightSummaryCollection', 'HostInsights', 'HostInsightsDataObject', 'HostInsightsDataObjectSummary', 'HostInstanceMap', 'HostIoStatistics', 'HostIoUsage', 'HostMemoryConfiguration', 'HostMemoryRecommendations', 'HostMemoryStatistics', 'HostMemoryUsage', 'HostNetworkActivitySummary', 'HostNetworkConfiguration', 'HostNetworkRecommendations', 'HostNetworkStatistics', 'HostPerformanceMetricGroup', 'HostProduct', 'HostResourceAllocation', 'HostResourceCapacityTrendAggregation', 'HostResourceStatistics', 'HostStorageRecommendations', 'HostStorageStatistics', 'HostTopProcesses', 'HostedEntityCollection', 'HostedEntitySummary', 'ImportableAgentEntitySummary', 'ImportableAgentEntitySummaryCollection', 'ImportableComputeEntitySummary', 'ImportableComputeEntitySummaryCollection', 'ImportableEnterpriseManagerEntity', 'ImportableEnterpriseManagerEntityCollection', 'IndividualOpsiDataObjectDetailsInQuery', 'IngestAddmReportsDetails', 'IngestAddmReportsResponseDetails', 'IngestDatabaseConfigurationDetails', 'IngestDatabaseConfigurationResponseDetails', 'IngestHostConfigurationDetails', 'IngestHostConfigurationResponseDetails', 'IngestHostMetricsDetails', 'IngestHostMetricsResponseDetails', 'IngestMySqlSqlStatsDetails', 'IngestMySqlSqlStatsResponseDetails', 'IngestMySqlSqlTextDetails', 'IngestMySqlSqlTextResponseDetails', 'IngestSqlBucketDetails', 'IngestSqlBucketResponseDetails', 'IngestSqlPlanLinesDetails', 'IngestSqlPlanLinesResponseDetails', 'IngestSqlStatsDetails', 'IngestSqlStatsResponseDetails', 'IngestSqlTextDetails', 'IngestSqlTextResponseDetails', 'InstanceMetrics', 'IoUsageTrend', 'IoUsageTrendAggregation', 'ListObjects', 'MacsManagedAutonomousDatabaseConfigurationSummary', 'MacsManagedAutonomousDatabaseInsight', 'MacsManagedAutonomousDatabaseInsightSummary', 'MacsManagedCloudDatabaseConfigurationSummary', 'MacsManagedCloudDatabaseHostInsight', 'MacsManagedCloudDatabaseHostInsightSummary', 'MacsManagedCloudDatabaseInsight', 'MacsManagedCloudDatabaseInsightSummary', 'MacsManagedCloudDbHostConfigurationSummary', 'MacsManagedCloudExadataInsight', 'MacsManagedCloudExadataInsightSummary', 'MacsManagedCloudHostConfigurationSummary', 'MacsManagedCloudHostInsight', 'MacsManagedCloudHostInsightSummary', 'MacsManagedExternalDatabaseConfigurationSummary', 'MacsManagedExternalDatabaseInsight', 'MacsManagedExternalDatabaseInsightSummary', 'MacsManagedExternalHostConfigurationSummary', 'MacsManagedExternalHostInsight', 'MacsManagedExternalHostInsightSummary', 'MdsMySqlDatabaseInsight', 'MdsMySqlDatabaseInsightSummary', 'MdsMysqlDatabaseConfigurationSummary', 'MySqlSqlStats', 'MySqlSqlText', 'NetworkUsageTrend', 'NetworkUsageTrendAggregation', 'NewsContentTypes', 'NewsReport', 'NewsReportCollection', 'NewsReportSummary', 'NewsReports', 'ObjectSummary', 'OperationsInsightsPrivateEndpoint', 'OperationsInsightsPrivateEndpointCollection', 'OperationsInsightsPrivateEndpointSummary', 'OperationsInsightsWarehouse', 'OperationsInsightsWarehouseSummary', 'OperationsInsightsWarehouseSummaryCollection', 'OperationsInsightsWarehouseUser', 'OperationsInsightsWarehouseUserSummary', 'OperationsInsightsWarehouseUserSummaryCollection', 'OperationsInsightsWarehouseUsers', 'OperationsInsightsWarehouses', 'OpsiConfiguration', 'OpsiConfigurationBasicConfigurationItemSummary', 'OpsiConfigurationConfigurationItemSummary', 'OpsiConfigurationSummary', 'OpsiConfigurations', 'OpsiConfigurationsCollection', 'OpsiDataObject', 'OpsiDataObjectDetailsInQuery', 'OpsiDataObjectQueryParam', 'OpsiDataObjectSummary', 'OpsiDataObjectSupportedQueryParam', 'OpsiDataObjectTypeOpsiDataObjectDetailsInQuery', 'OpsiDataObjects', 'OpsiDataObjectsCollection', 'OpsiDataStores', 'OpsiUxConfiguration', 'OpsiUxConfigurationSummary', 'OpsiWarehouseDataObjects', 'PeComanagedDatabaseConnectionDetails', 'PeComanagedDatabaseHostDetails', 'PeComanagedDatabaseInsight', 'PeComanagedDatabaseInsightSummary', 'PeComanagedExadataInsight', 'PeComanagedExadataInsightSummary', 'PeComanagedHostConfigurationSummary', 'PeComanagedHostInsight', 'PeComanagedHostInsightSummary', 'PeComanagedManagedExternalDatabaseConfigurationSummary', 'ProjectedDataItem', 'QueryDataObjectJsonResultSetRowsCollection', 'QueryDataObjectResultSetColumnMetadata', 'QueryDataObjectResultSetRowsCollection', 'QueryOpsiDataObjectDataDetails', 'QueryWarehouseDataObjectDataDetails', 'RelatedObjectTypeDetails', 'ReportGroupingDetails', 'ReportPropertyDetails', 'ResourceCapacityTrendAggregation', 'ResourceFilters', 'ResourceInsightCurrentUtilization', 'ResourceInsightProjectedUtilization', 'ResourceInsightProjectedUtilizationItem', 'ResourceStatistics', 'ResourceStatisticsAggregation', 'ResourceUsageSummary', 'ResourceUsageTrendAggregation', 'SchemaObjectTypeDetails', 'SqlBucket', 'SqlInsightAggregation', 'SqlInsightAggregationCollection', 'SqlInsightThresholds', 'SqlInventory', 'SqlPlanCollection', 'SqlPlanInsightAggregation', 'SqlPlanInsightAggregationCollection', 'SqlPlanInsights', 'SqlPlanLine', 'SqlPlanSummary', 'SqlResponseTimeDistributionAggregation', 'SqlResponseTimeDistributionAggregationCollection', 'SqlSearchCollection', 'SqlSearchSummary', 'SqlStatisticAggregation', 'SqlStatisticAggregationCollection', 'SqlStatistics', 'SqlStatisticsTimeSeries', 'SqlStatisticsTimeSeriesAggregation', 'SqlStatisticsTimeSeriesAggregationCollection', 'SqlStatisticsTimeSeriesByPlanAggregation', 'SqlStatisticsTimeSeriesByPlanAggregationCollection', 'SqlStats', 'SqlText', 'SqlTextCollection', 'SqlTextSummary', 'SqlTypeDetails', 'StorageServerDetails', 'StorageUsageTrend', 'StorageUsageTrendAggregation', 'SummarizeAwrSourcesSummariesCollection', 'SummarizeDatabaseInsightResourceCapacityTrendAggregationCollection', 'SummarizeDatabaseInsightResourceForecastTrendAggregation', 'SummarizeDatabaseInsightResourceStatisticsAggregationCollection', 'SummarizeDatabaseInsightResourceUsageAggregation', 'SummarizeDatabaseInsightResourceUsageTrendAggregationCollection', 'SummarizeDatabaseInsightResourceUtilizationInsightAggregation', 'SummarizeDatabaseInsightTablespaceUsageTrendAggregationCollection', 'SummarizeExadataInsightResourceCapacityTrendAggregation', 'SummarizeExadataInsightResourceCapacityTrendCollection', 'SummarizeExadataInsightResourceForecastTrendAggregation', 'SummarizeExadataInsightResourceForecastTrendCollection', 'SummarizeExadataInsightResourceStatisticsAggregationCollection', 'SummarizeExadataInsightResourceUsageAggregation', 'SummarizeExadataInsightResourceUsageCollection', 'SummarizeExadataInsightResourceUtilizationInsightAggregation', 'SummarizeHostInsightHostRecommendationAggregation', 'SummarizeHostInsightIoUsageTrendAggregationCollection', 'SummarizeHostInsightNetworkUsageTrendAggregationCollection', 'SummarizeHostInsightResourceCapacityTrendAggregationCollection', 'SummarizeHostInsightResourceForecastTrendAggregation', 'SummarizeHostInsightResourceStatisticsAggregationCollection', 'SummarizeHostInsightResourceUsageAggregation', 'SummarizeHostInsightResourceUsageTrendAggregationCollection', 'SummarizeHostInsightResourceUtilizationInsightAggregation', 'SummarizeHostInsightStorageUsageTrendAggregationCollection', 'SummarizeHostInsightsDiskStatisticsCollection', 'SummarizeHostInsightsTopProcessesUsageCollection', 'SummarizeHostInsightsTopProcessesUsageTrendCollection', 'SummarizeOperationsInsightsWarehouseResourceUsageAggregation', 'SummaryStatistics', 'SynchronizeAutonomousDatabaseToExadataDetails', 'TablespaceUsageTrend', 'TablespaceUsageTrendAggregation', 'TestMacsManagedAutonomousDatabaseInsightConnectionDetails', 'TestMacsManagedCloudDatabaseInsightConnectionDetails', 'TopProcessesUsage', 'TopProcessesUsageTrend', 'TopProcessesUsageTrendAggregation', 'UpdateAutonomousDatabaseInsightDetails', 'UpdateAwrHubDetails', 'UpdateAwrHubSourceDetails', 'UpdateBasicConfigurationItemDetails', 'UpdateChargebackPlanDetails', 'UpdateChargebackPlanReportDetails', 'UpdateConfigurationItemDetails', 'UpdateDatabaseInsightDetails', 'UpdateEmManagedExternalDatabaseInsightDetails', 'UpdateEmManagedExternalExadataInsightDetails', 'UpdateEmManagedExternalHostInsightDetails', 'UpdateEnterpriseManagerBridgeDetails', 'UpdateExadataInsightDetails', 'UpdateExternalMysqlDatabaseInsightDetails', 'UpdateHostInsightDetails', 'UpdateMacsManagedAutonomousDatabaseInsightDetails', 'UpdateMacsManagedCloudDatabaseHostInsightDetails', 'UpdateMacsManagedCloudDatabaseInsightDetails', 'UpdateMacsManagedCloudExadataInsightDetails', 'UpdateMacsManagedCloudHostInsightDetails', 'UpdateMacsManagedExternalDatabaseInsightDetails', 'UpdateMacsManagedExternalHostInsightDetails', 'UpdateMdsMySqlDatabaseInsight', 'UpdateNewsReportDetails', 'UpdateOperationsInsightsPrivateEndpointDetails', 'UpdateOperationsInsightsWarehouseDetails', 'UpdateOperationsInsightsWarehouseUserDetails', 'UpdateOpsiConfigurationDetails', 'UpdateOpsiUxConfigurationDetails', 'UpdatePeComanagedDatabaseInsightDetails', 'UpdatePeComanagedExadataInsightDetails', 'UpdatePeComanagedHostInsightDetails', 'UxConfigurationItemsCollection', 'VmClusterSummary', 'WarehouseDataObjectCollection', 'WarehouseDataObjectDetails', 'WarehouseDataObjectSummary', 'WarehouseTableDataObjectDetails', 'WarehouseViewDataObjectDetails', 'WorkRequest', 'WorkRequestCollection', 'WorkRequestError', 'WorkRequestErrorCollection', 'WorkRequestLogEntry', 'WorkRequestLogEntryCollection', 'WorkRequestResource', 'WorkRequests'] - -for _model_name in OPSI_MODEL_NAMES: - globals()[_model_name].model_rebuild() - -BOOTSTRAP_MODEL_NAMES = ["Compartment", "CompartmentCollection"] - -__all__ = ["OpsiBaseModel", "OpsiRequestModel", *BOOTSTRAP_MODEL_NAMES, *OPSI_MODEL_NAMES] diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/runtime.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/runtime.py deleted file mode 100644 index 11724b2e..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/runtime.py +++ /dev/null @@ -1,122 +0,0 @@ -""" -Copyright (c) 2026, Oracle and/or its affiliates. -Licensed under the Universal Permissive License v1.0 as shown at -https://oss.oracle.com/licenses/upl. -""" - -from __future__ import annotations - -from functools import lru_cache -from logging import Logger -from typing import Any - -import oci -from pydantic import BaseModel -from pydantic.fields import FieldInfo -from pydantic_core import PydanticUndefined - -from oracle.oci_oracle_db_observability.v1.auth import build_client -from oracle.oci_oracle_db_observability.v1.conversion import ( - polymorphic_request_to_sdk_model, - pydantic_to_sdk_model, -) -from oracle.oci_oracle_db_observability.v1.pagination import call_with_auto_pagination -from oracle.oci_oracle_db_observability.v1.response_mapping import map_response_data - -from . import __project__, __version__ -from .metadata import REQUEST_MODEL_TYPES - -logger = Logger(__name__, level="INFO") - - -@lru_cache(maxsize=1) -def get_opsi_client() -> oci.opsi.OperationsInsightsClient: - """Create the OCI Operations Insights SDK client.""" - - return build_client( - oci.opsi.OperationsInsightsClient, - project=__project__, - version=__version__, - logger=logger, - ) - - -@lru_cache(maxsize=1) -def get_identity_client() -> oci.identity.IdentityClient: - """Create the OCI Identity SDK client.""" - - return build_client( - oci.identity.IdentityClient, - project=__project__, - version=__version__, - logger=logger, - ) - - -def normalize_tool_value(value: Any) -> Any: - """Resolve FastMCP/Pydantic Field defaults when a tool is called directly.""" - - if isinstance(value, FieldInfo): - default = value.get_default(call_default_factory=True) - return None if default is PydanticUndefined else default - return value - - -def _coerce_argument(method_name: str, key: str, value: Any) -> Any: - value = normalize_tool_value(value) - if value is None: - return None - request_model_name = REQUEST_MODEL_TYPES.get((method_name, key)) - if request_model_name is not None: - sdk_type = getattr(oci.opsi.models, request_model_name) - return polymorphic_request_to_sdk_model(value, sdk_type) - if isinstance(value, BaseModel): - sdk_type = getattr(oci.opsi.models, value.__class__.__name__, None) - if sdk_type is not None: - return pydantic_to_sdk_model(value, sdk_type) - return value.model_dump(by_alias=True, exclude_none=True) - if isinstance(value, list): - return [_coerce_argument(method_name, key, item) for item in value] - if isinstance(value, dict): - return { - item_key: _coerce_argument(method_name, item_key, item) - for item_key, item in value.items() - if item is not None - } - return value - - -def invoke_opsi(method_name: str, **kwargs: Any) -> Any: - """Invoke an OPSI SDK method and map the SDK response for MCP.""" - - client = get_opsi_client() - method = getattr(client, method_name) - sdk_kwargs = {} - for key, value in kwargs.items(): - coerced_value = _coerce_argument(method_name, key, value) - if coerced_value is not None: - sdk_kwargs[key] = coerced_value - try: - response = call_with_auto_pagination(method, sdk_kwargs) - return map_response_data(getattr(response, "data", None)) - except Exception as exc: - logger.error("Error in OPSI tool %s: %s", method_name, exc) - raise - - -def invoke_identity(method_name: str, **kwargs: Any) -> Any: - """Invoke an OCI Identity SDK method and map the SDK response for MCP.""" - - client = get_identity_client() - method = getattr(client, method_name) - sdk_kwargs = {} - for key, value in kwargs.items(): - coerced_value = _coerce_argument(method_name, key, value) - if coerced_value is not None: - sdk_kwargs[key] = coerced_value - try: - response = call_with_auto_pagination(method, sdk_kwargs) - return map_response_data(getattr(response, "data", None)) - except Exception as exc: - logger.error("Error in Identity tool %s: %s", method_name, exc) - raise diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/server.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/server.py deleted file mode 100644 index ac7a1695..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/server.py +++ /dev/null @@ -1,57 +0,0 @@ -""" -Copyright (c) 2026, Oracle and/or its affiliates. -Licensed under the Universal Permissive License v1.0 as shown at -https://oss.oracle.com/licenses/upl. -""" - -from __future__ import annotations - -import os - -from fastmcp.server.auth.providers.oci import OCIProvider -from fastmcp.utilities.auth import parse_scopes - -from . import __project__ -from . import tools as _tools # noqa: F401 -from .mcp import mcp - - -def _default_required_scopes() -> list[str]: - server_name = __project__.removeprefix("oracle.oci-").removesuffix("-mcp-server") - return f"openid profile email oci_mcp.{server_name.replace('-', '_')}.invoke".split() - - -def main() -> None: - """Run the OPSI MCP server with stdio or HTTP transport.""" - - host = os.getenv("ORACLE_MCP_HOST") - port = os.getenv("ORACLE_MCP_PORT") - - if not (host and port): - mcp.run() - return - - domain = os.getenv("IDCS_DOMAIN") - client_id = os.getenv("IDCS_CLIENT_ID") - client_secret = os.getenv("IDCS_CLIENT_SECRET") - base_url = os.getenv("ORACLE_MCP_BASE_URL", "") - audience = os.getenv("IDCS_AUDIENCE") - if not all((domain, client_id, client_secret, audience, base_url)): - raise RuntimeError( - "HTTP transport requires IDCS authentication. " - "Set IDCS_DOMAIN, IDCS_CLIENT_ID, IDCS_CLIENT_SECRET, IDCS_AUDIENCE, " - "ORACLE_MCP_BASE_URL, ORACLE_MCP_HOST, and ORACLE_MCP_PORT." - ) - mcp.auth = OCIProvider( - config_url=f"https://{domain}/.well-known/openid-configuration", - client_id=client_id, - client_secret=client_secret, - audience=audience, - required_scopes=parse_scopes(os.getenv("IDCS_REQUIRED_SCOPES")) or _default_required_scopes(), - base_url=base_url, - ) - mcp.run(transport="http", host=host, port=int(port)) - - -if __name__ == "__main__": - main() diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/__init__.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/__init__.py deleted file mode 100644 index b8f69b97..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -""" -Copyright (c) 2026, Oracle and/or its affiliates. -Licensed under the Universal Permissive License v1.0 as shown at -https://oss.oracle.com/licenses/upl. -""" diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/test_auth_and_server.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/test_auth_and_server.py deleted file mode 100644 index 63e952b1..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/test_auth_and_server.py +++ /dev/null @@ -1,86 +0,0 @@ -""" -Copyright (c) 2026, Oracle and/or its affiliates. -Licensed under the Universal Permissive License v1.0 as shown at -https://oss.oracle.com/licenses/upl. -""" - -from __future__ import annotations - -import asyncio -import logging -from types import SimpleNamespace - -from oracle.oci_oracle_db_observability.v1 import auth -from oracle.oci_oracle_db_observability.v1.oci_opsi_mcp_server import server, tools - -TEST_LOGGER = logging.getLogger(__name__) - - -def test_stdio_build_client_uses_security_token_config(monkeypatch, tmp_path) -> None: - token_file = tmp_path / "security-token" - token_file.write_text("SECURITY_TOKEN", encoding="utf-8") - monkeypatch.delenv("ORACLE_MCP_HOST", raising=False) - monkeypatch.delenv("ORACLE_MCP_PORT", raising=False) - monkeypatch.setattr( - auth.oci.config, - "from_file", - lambda file_location, profile_name: { - "region": "us-phoenix-1", - "tenancy": "ocid1.tenancy.oc1..example", - "key_file": "/keys/oci.pem", - "security_token_file": str(token_file), - }, - ) - monkeypatch.setattr(auth.oci.signer, "load_private_key_from_file", lambda key_file: "private-key") - monkeypatch.setattr( - auth.oci.auth.signers, - "SecurityTokenSigner", - lambda token, private_key: f"{token}:{private_key}", - ) - - client = auth.build_client( - lambda config, **kwargs: SimpleNamespace(config=config, kwargs=kwargs), - project="oracle.oci-opsi-mcp-server", - version="1.0.0", - logger=TEST_LOGGER, - ) - - assert client.config["region"] == "us-phoenix-1" - assert client.config["tenancy"] == "ocid1.tenancy.oc1..example" - assert client.config["additional_user_agent"] == "oci-opsi/1.0.0" - assert client.kwargs["signer"] == "SECURITY_TOKEN:private-key" - - -def test_http_build_client_uses_token_exchange(monkeypatch) -> None: - monkeypatch.setenv("ORACLE_MCP_HOST", "127.0.0.1") - monkeypatch.setenv("ORACLE_MCP_PORT", "8888") - monkeypatch.setenv("OCI_REGION", "us-ashburn-1") - monkeypatch.setenv("IDCS_DOMAIN", "idcs.example.com") - monkeypatch.setenv("IDCS_CLIENT_ID", "client-id") - monkeypatch.setenv("IDCS_CLIENT_SECRET", "client-secret") - monkeypatch.setattr(auth, "get_access_token", lambda: SimpleNamespace(token="ACCESS_TOKEN")) - monkeypatch.setattr( - auth.oci.auth.signers, - "TokenExchangeSigner", - lambda token, domain, client_id, client_secret, region: "token-exchange-signer", - ) - - client = auth.build_client( - lambda config, **kwargs: SimpleNamespace(config=config, kwargs=kwargs), - project="oracle.oci-opsi-mcp-server", - version="1.0.0", - logger=TEST_LOGGER, - ) - - assert client.config["region"] == "us-ashburn-1" - assert client.config["additional_user_agent"] == "oci-opsi/1.0.0" - assert client.kwargs["signer"] == "token-exchange-signer" - - -def test_server_registers_expected_tools() -> None: - registered = asyncio.run(server.mcp.list_tools(run_middleware=False)) - - assert {tool.name for tool in registered} == tools.TOOL_NAMES - - for tool in registered: - assert tool.annotations == tools.TOOL_ANNOTATIONS[tool.name] diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/test_bootstrap.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/test_bootstrap.py deleted file mode 100644 index d63c04a1..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/test_bootstrap.py +++ /dev/null @@ -1,130 +0,0 @@ -""" -Copyright (c) 2026, Oracle and/or its affiliates. -Licensed under the Universal Permissive License v1.0 as shown at -https://oss.oracle.com/licenses/upl. -""" - -from __future__ import annotations - -from typing import Any - -import oci - -from oracle.oci_oracle_db_observability.v1.oci_opsi_mcp_server import runtime, tools - - -class _Response: - def __init__( - self, - data: Any, - next_page: str | None = None, - headers: dict[str, str] | None = None, - ) -> None: - self.data = data - self.next_page = next_page - self.headers = headers or {} - - -def _oci_config(tenancy_id: str | None = "ocid1.tenancy.oc1..example") -> dict[str, str]: - config = {"region": "us-phoenix-1"} - if tenancy_id is not None: - config["tenancy"] = tenancy_id - return config - - -def _compartment(compartment_id: str = "ocid1.compartment.oc1..example") -> oci.identity.models.Compartment: - return oci.identity.models.Compartment( - id=compartment_id, - compartment_id="ocid1.tenancy.oc1..example", - name="Database", - description="Database compartment", - lifecycle_state="ACTIVE", - ) - - -def test_get_compartment_calls_identity_client(monkeypatch) -> None: - captured: dict[str, Any] = {} - - class FakeIdentityClient: - def get_compartment(self, **kwargs): - captured.update(kwargs) - return _Response(_compartment()) - - monkeypatch.setattr(runtime, "get_identity_client", lambda: FakeIdentityClient()) - - result = tools.get_compartment("ocid1.compartment.oc1..example") - - assert captured["compartment_id"] == "ocid1.compartment.oc1..example" - assert result["id"] == "ocid1.compartment.oc1..example" - assert result["name"] == "Database" - - -def test_list_compartments_defaults_to_tenancy_and_maps_collection(monkeypatch) -> None: - captured: dict[str, Any] = {} - monkeypatch.setattr(tools, "get_oci_config", lambda project, version: _oci_config()) - - class FakeIdentityClient: - def list_compartments(self, **kwargs): - captured.update(kwargs) - return _Response([_compartment()]) - - monkeypatch.setattr(runtime, "get_identity_client", lambda: FakeIdentityClient()) - - result = tools.list_compartments(name="Database") - - assert captured["compartment_id"] == "ocid1.tenancy.oc1..example" - assert captured["compartment_id_in_subtree"] is True - assert captured["access_level"] == "ACCESSIBLE" - assert captured["name"] == "Database" - assert captured["limit"] == 50 - assert result["count"] == 1 - assert result["items"][0]["id"] == "ocid1.compartment.oc1..example" - - -def test_list_compartments_auto_paginates(monkeypatch) -> None: - calls: list[dict[str, Any]] = [] - monkeypatch.setattr(tools, "get_oci_config", lambda project, version: _oci_config()) - - class FakeIdentityClient: - def list_compartments(self, page=None, limit=None, **kwargs): - calls.append({"page": page, "limit": limit, **kwargs}) - if page is None: - return _Response( - [_compartment("ocid1.compartment.oc1..one")], - next_page="page-2", - ) - return _Response([_compartment("ocid1.compartment.oc1..two")]) - - monkeypatch.setattr(runtime, "get_identity_client", lambda: FakeIdentityClient()) - - result = tools.list_compartments(limit=10) - - assert result["count"] == 2 - assert [item["id"] for item in result["items"]] == [ - "ocid1.compartment.oc1..one", - "ocid1.compartment.oc1..two", - ] - assert calls[0]["limit"] == 10 - assert calls[1]["page"] == "page-2" - assert calls[1]["limit"] == 9 - - -def test_list_compartments_allows_explicit_root_without_tenancy_config(monkeypatch) -> None: - captured: dict[str, Any] = {} - monkeypatch.setattr(tools, "get_oci_config", lambda project, version: _oci_config(tenancy_id=None)) - - class FakeIdentityClient: - def list_compartments(self, **kwargs): - captured.update(kwargs) - return _Response([_compartment()]) - - monkeypatch.setattr(runtime, "get_identity_client", lambda: FakeIdentityClient()) - - result = tools.list_compartments( - root_compartment_id="ocid1.compartment.oc1..example", - include_subtree=True, - ) - - assert captured["compartment_id"] == "ocid1.compartment.oc1..example" - assert captured["compartment_id_in_subtree"] is True - assert result["count"] == 1 diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/test_metadata_and_schemas.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/test_metadata_and_schemas.py deleted file mode 100644 index 002fddfe..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/test_metadata_and_schemas.py +++ /dev/null @@ -1,147 +0,0 @@ -""" -Copyright (c) 2026, Oracle and/or its affiliates. -Licensed under the Universal Permissive License v1.0 as shown at -https://oss.oracle.com/licenses/upl. -""" - -from __future__ import annotations - -import inspect -from typing import Any, get_args, get_origin, get_type_hints - -import pytest -from pydantic import ValidationError - -from oracle.oci_oracle_db_observability.v1.oci_opsi_mcp_server import metadata, models, tools - - -REMOVED_TOOL_NAMES = { - "add_exadata_insight_members", - "download_operations_insights_warehouse_wallet", - "head_awr_hub_object", - "ingest_addm_reports", - "ingest_database_configuration", - "ingest_host_configuration", - "ingest_host_metrics", - "ingest_my_sql_sql_stats", - "ingest_my_sql_sql_text", - "ingest_sql_bucket", - "ingest_sql_plan_lines", - "ingest_sql_stats", - "ingest_sql_text", - "put_awr_hub_object", - "rotate_operations_insights_warehouse_wallet", - "synchronize_autonomous_database_to_exadata", - "test_macs_managed_autonomous_database_insight_connection", - "test_macs_managed_cloud_database_insight_connection", -} - - -def test_expected_tool_metadata_exposes_runtime_tool_sets() -> None: - assert len(metadata.INCLUDED_METHOD_NAMES) == 158 - assert len(metadata.REQUEST_MODEL_TYPES) == 47 - assert len(tools.TOOL_NAMES) == 160 - assert tools.TOOL_NAMES == frozenset(metadata.INCLUDED_METHOD_NAMES) | tools.BOOTSTRAP_TOOL_NAMES - assert tools.MUTABLE_TOOL_NAMES == frozenset(metadata.MUTABLE_METHOD_NAMES) - assert set(metadata.MUTABLE_METHOD_NAMES).issubset(metadata.INCLUDED_METHOD_NAMES) - assert REMOVED_TOOL_NAMES.isdisjoint(metadata.INCLUDED_METHOD_NAMES) - assert REMOVED_TOOL_NAMES.isdisjoint(tools.TOOL_NAMES) - assert REMOVED_TOOL_NAMES.isdisjoint(tools.TOOL_DESCRIPTIONS) - assert all(not name.startswith("delete_") for name in metadata.INCLUDED_METHOD_NAMES) - assert all(not name.startswith("summarize_sql_") for name in metadata.INCLUDED_METHOD_NAMES) - - -def test_tool_descriptions_do_not_duplicate_mutability_metadata() -> None: - for description in tools.TOOL_DESCRIPTIONS.values(): - assert "WARNING:" not in description - - -def test_tool_annotations_match_mutability() -> None: - assert set(tools.TOOL_ANNOTATIONS) == tools.TOOL_NAMES - - for name, annotations in tools.TOOL_ANNOTATIONS.items(): - is_mutable = name in tools.MUTABLE_TOOL_NAMES - assert annotations.title == name.replace("_", " ").title() - assert annotations.readOnlyHint is not is_mutable - assert annotations.destructiveHint is is_mutable - assert annotations.idempotentHint is not is_mutable - assert annotations.openWorldHint is True - - -def test_schema_fields_include_descriptions_aliases_and_literals() -> None: - field = models.CreateDatabaseInsightDetails.model_fields["entity_source"] - - assert field.is_required() - assert field.alias == "entitySource" - assert "Source of the database entity" in (field.description or "") - assert "EM_MANAGED_EXTERNAL_DATABASE" in get_args(field.annotation) - - -def test_schema_fields_include_documented_constraints() -> None: - parameter = inspect.signature(tools.list_database_insights).parameters["limit"] - constraints = {item.__class__.__name__: item for item in parameter.default.metadata} - - assert parameter.default.description.startswith("For list pagination") - assert constraints["Ge"].ge == 1 - assert constraints["Le"].le == 1000 - - -def test_request_body_parameters_accept_dict_or_generated_model() -> None: - annotation = get_type_hints( - tools.create_database_insight, - vars(tools), - vars(tools), - )["create_database_insight_details"] - dict_arg, model_arg = get_args(annotation) - - assert get_origin(dict_arg) is dict - assert get_args(dict_arg) == (str, Any) - assert model_arg is models.CreateDatabaseInsightDetails - - -def test_tool_response_annotations_are_generic() -> None: - for name in tools.TOOL_NAMES: - annotation = get_type_hints(getattr(tools, name), vars(tools), vars(tools))["return"] - assert annotation is Any - - -def test_tools_do_not_expose_skipped_sdk_transport_parameters() -> None: - skipped = { - "allow_control_chars", - "buffer_limit", - "defined_tag_equals", - "defined_tag_exists", - "enable_strict_url_encoding", - "freeform_tag_equals", - "freeform_tag_exists", - "if_match", - "opc_request_id", - "opc_retry_token", - "page", - } - - for name in metadata.INCLUDED_METHOD_NAMES: - assert skipped.isdisjoint(inspect.signature(getattr(tools, name)).parameters) - - -def test_request_models_do_not_expose_tag_mutation_fields() -> None: - request_tag_fields = {"defined_tags", "freeform_tags", "system_tags", "tag_filters", "match_rule"} - - assert request_tag_fields.isdisjoint(models.CreateDatabaseInsightDetails.model_fields) - assert request_tag_fields.isdisjoint(models.CreateNewsReportDetails.model_fields) - assert "defined_tags" in models.DatabaseInsight.model_fields - - with pytest.raises(ValidationError): - models.CreateDatabaseInsightDetails( - entity_source="EM_MANAGED_EXTERNAL_DATABASE", - compartment_id="ocid1.compartment.oc1..example", - freeform_tags={"owner": "opsi"}, - ) - - -def test_leading_underscore_sdk_fields_get_public_pydantic_names() -> None: - fields = models.IndividualOpsiDataObjectDetailsInQuery.model_fields - - assert "query_params" in fields - assert "_query_params" not in fields - assert fields["query_params"].alias == "queryParams" diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/test_response_mapping.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/test_response_mapping.py deleted file mode 100644 index 9368e4c6..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/test_response_mapping.py +++ /dev/null @@ -1,57 +0,0 @@ -""" -Copyright (c) 2026, Oracle and/or its affiliates. -Licensed under the Universal Permissive License v1.0 as shown at -https://oss.oracle.com/licenses/upl. -""" - -from __future__ import annotations - -from datetime import UTC, datetime - -import oci - -from oracle.oci_oracle_db_observability.v1.response_mapping import map_response_data - - -def _database_insight(suffix: str) -> oci.opsi.models.DatabaseInsight: - return oci.opsi.models.DatabaseInsight( - entity_source="AUTONOMOUS_DATABASE", - id=f"ocid1.opsidatabaseinsight.oc1..{suffix}", - compartment_id="ocid1.compartment.oc1..example", - status="ENABLED", - freeform_tags={}, - defined_tags={}, - time_created=datetime(2026, 1, 1, tzinfo=UTC), - lifecycle_state="ACTIVE", - ) - - -def test_shared_mapper_preserves_none_and_scalars() -> None: - assert map_response_data(None) is None - assert map_response_data("plain report content") == "plain report content" - assert map_response_data(42) == 42 - assert map_response_data(False) is False - - -def test_shared_mapper_maps_sdk_model_to_plain_dict() -> None: - result = map_response_data(_database_insight("one")) - - assert isinstance(result, dict) - assert result["id"] == "ocid1.opsidatabaseinsight.oc1..one" - - -def test_shared_mapper_recursively_maps_lists() -> None: - result = map_response_data([_database_insight("one"), _database_insight("two")]) - - assert [item["id"] for item in result] == [ - "ocid1.opsidatabaseinsight.oc1..one", - "ocid1.opsidatabaseinsight.oc1..two", - ] - assert all(isinstance(item, dict) for item in result) - - -def test_shared_mapper_falls_back_to_plain_data() -> None: - assert map_response_data({"id": "example", "count": 1}) == { - "id": "example", - "count": 1, - } diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/test_runtime.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/test_runtime.py deleted file mode 100644 index eb74e37d..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tests/test_runtime.py +++ /dev/null @@ -1,435 +0,0 @@ -""" -Copyright (c) 2026, Oracle and/or its affiliates. -Licensed under the Universal Permissive License v1.0 as shown at -https://oss.oracle.com/licenses/upl. -""" - -from __future__ import annotations - -from datetime import UTC, datetime -from typing import Any - -import oci -import pytest - -from oracle.oci_oracle_db_observability.v1.oci_opsi_mcp_server import models, runtime, tools - - -class _Response: - def __init__( - self, - data: Any, - next_page: str | None = None, - headers: dict[str, str] | None = None, - ) -> None: - self.data = data - self.next_page = next_page - self.headers = headers or {} - - -def _database_insight_summary(suffix: str) -> oci.opsi.models.DatabaseInsightSummary: - return oci.opsi.models.DatabaseInsightSummary( - id=f"ocid1.opsidatabaseinsight.oc1..{suffix}", - database_id=f"ocid1.database.oc1..{suffix}", - entity_source="AUTONOMOUS_DATABASE", - ) - - -def _database_insight_response() -> _Response: - return _Response( - oci.opsi.models.DatabaseInsight( - entity_source="AUTONOMOUS_DATABASE", - id="ocid1.opsidatabaseinsight.oc1..example", - compartment_id="ocid1.compartment.oc1..example", - status="ENABLED", - freeform_tags={}, - defined_tags={}, - time_created=datetime(2026, 1, 1, tzinfo=UTC), - lifecycle_state="ACTIVE", - ) - ) - - -def _pe_comanaged_host_insight() -> oci.opsi.models.PeComanagedHostInsight: - return oci.opsi.models.PeComanagedHostInsight( - entity_source="PE_COMANAGED_HOST", - id="ocid1.opsihostinsight.oc1..example", - compartment_id="ocid1.compartment.oc1..example", - host_name=None, - freeform_tags={}, - defined_tags={}, - status="ENABLED", - time_created=datetime(2026, 1, 1, tzinfo=UTC), - lifecycle_state="ACTIVE", - opsi_private_endpoint_id="ocid1.opsiprivateendpoint.oc1..example", - ) - - -def _pe_comanaged_host_insight_summary() -> oci.opsi.models.PeComanagedHostInsightSummary: - return oci.opsi.models.PeComanagedHostInsightSummary( - entity_source="PE_COMANAGED_HOST", - id="ocid1.opsihostinsight.oc1..example", - compartment_id="ocid1.compartment.oc1..example", - host_name=None, - opsi_private_endpoint_id="ocid1.opsiprivateendpoint.oc1..example", - ) - - -def test_create_tool_converts_pydantic_model_to_sdk_model(monkeypatch) -> None: - captured: dict[str, Any] = {} - - class FakeClient: - def create_database_insight(self, **kwargs): - captured.update(kwargs) - return _database_insight_response() - - monkeypatch.setattr(runtime, "get_opsi_client", lambda: FakeClient()) - - result = tools.create_database_insight( - create_database_insight_details=models.CreateDatabaseInsightDetails( - entity_source="EM_MANAGED_EXTERNAL_DATABASE", - compartment_id="ocid1.compartment.oc1..example", - ) - ) - - assert isinstance(captured["create_database_insight_details"], oci.opsi.models.CreateDatabaseInsightDetails) - assert captured["create_database_insight_details"].entity_source == "EM_MANAGED_EXTERNAL_DATABASE" - assert result["id"] == "ocid1.opsidatabaseinsight.oc1..example" - - -def test_create_tool_accepts_polymorphic_dict_request(monkeypatch) -> None: - captured: dict[str, Any] = {} - - class FakeClient: - def create_database_insight(self, **kwargs): - captured.update(kwargs) - return _database_insight_response() - - monkeypatch.setattr(runtime, "get_opsi_client", lambda: FakeClient()) - - tools.create_database_insight( - create_database_insight_details={ - "entity_source": "EM_MANAGED_EXTERNAL_DATABASE", - "compartment_id": "ocid1.compartment.oc1..example", - "enterprise_manager_identifier": "em1", - "enterprise_manager_bridge_id": "ocid1.opsienterprisemanagerbridge.oc1..example", - "enterprise_manager_entity_identifier": "entity1", - } - ) - - details = captured["create_database_insight_details"] - assert isinstance(details, oci.opsi.models.CreateEmManagedExternalDatabaseInsightDetails) - assert details.entity_source == "EM_MANAGED_EXTERNAL_DATABASE" - assert details.enterprise_manager_identifier == "em1" - assert details.enterprise_manager_bridge_id == "ocid1.opsienterprisemanagerbridge.oc1..example" - assert details.enterprise_manager_entity_identifier == "entity1" - - -def test_create_tool_accepts_polymorphic_dict_request_with_camel_case_keys(monkeypatch) -> None: - captured: dict[str, Any] = {} - - class FakeClient: - def create_database_insight(self, **kwargs): - captured.update(kwargs) - return _database_insight_response() - - monkeypatch.setattr(runtime, "get_opsi_client", lambda: FakeClient()) - - tools.create_database_insight( - create_database_insight_details={ - "entitySource": "EM_MANAGED_EXTERNAL_DATABASE", - "compartmentId": "ocid1.compartment.oc1..example", - "enterpriseManagerIdentifier": "em1", - "enterpriseManagerBridgeId": "ocid1.opsienterprisemanagerbridge.oc1..example", - "enterpriseManagerEntityIdentifier": "entity1", - } - ) - - details = captured["create_database_insight_details"] - assert isinstance(details, oci.opsi.models.CreateEmManagedExternalDatabaseInsightDetails) - assert details.compartment_id == "ocid1.compartment.oc1..example" - assert details.enterprise_manager_identifier == "em1" - - -def test_polymorphic_dict_request_rejects_unknown_fields_before_sdk_call(monkeypatch) -> None: - called = False - - class FakeClient: - def create_database_insight(self, **kwargs): - nonlocal called - called = True - return _database_insight_response() - - monkeypatch.setattr(runtime, "get_opsi_client", lambda: FakeClient()) - - with pytest.raises(ValueError, match="unsupported fields"): - tools.create_database_insight( - create_database_insight_details={ - "entity_source": "EM_MANAGED_EXTERNAL_DATABASE", - "compartment_id": "ocid1.compartment.oc1..example", - "enterprise_manager_identifier": "em1", - "enterprise_manager_bridge_id": "ocid1.opsienterprisemanagerbridge.oc1..example", - "enterprise_manager_entity_identifier": "entity1", - "not_a_real_field": "bad", - } - ) - - assert called is False - - -def test_polymorphic_dict_request_rejects_tag_fields_before_sdk_call(monkeypatch) -> None: - called = False - - class FakeClient: - def create_database_insight(self, **kwargs): - nonlocal called - called = True - return _database_insight_response() - - monkeypatch.setattr(runtime, "get_opsi_client", lambda: FakeClient()) - - with pytest.raises(ValueError, match="forbidden request tag mutation fields"): - tools.create_database_insight( - create_database_insight_details={ - "entitySource": "EM_MANAGED_EXTERNAL_DATABASE", - "compartmentId": "ocid1.compartment.oc1..example", - "enterpriseManagerIdentifier": "em1", - "enterpriseManagerBridgeId": "ocid1.opsienterprisemanagerbridge.oc1..example", - "enterpriseManagerEntityIdentifier": "entity1", - "freeformTags": {"owner": "opsi"}, - } - ) - - assert called is False - - -def test_get_host_insight_allows_null_host_name(monkeypatch) -> None: - class FakeClient: - def get_host_insight(self, **kwargs): - return _Response(_pe_comanaged_host_insight()) - - monkeypatch.setattr(runtime, "get_opsi_client", lambda: FakeClient()) - - result = tools.get_host_insight(host_insight_id="ocid1.opsihostinsight.oc1..example") - - assert result["host_name"] is None - assert result["id"] == "ocid1.opsihostinsight.oc1..example" - - -def test_list_host_insights_allows_null_host_name(monkeypatch) -> None: - class FakeClient: - def list_host_insights(self, **kwargs): - return _Response( - oci.opsi.models.HostInsightSummaryCollection( - items=[_pe_comanaged_host_insight_summary()] - ) - ) - - monkeypatch.setattr(runtime, "get_opsi_client", lambda: FakeClient()) - - result = tools.list_host_insights( - compartment_id="ocid1.compartment.oc1..example", - limit=10, - ) - - assert result["items"][0]["host_name"] is None - assert result["items"][0]["id"] == "ocid1.opsihostinsight.oc1..example" - - -def test_list_tool_auto_paginates_collection_with_next_page(monkeypatch) -> None: - calls: list[dict[str, Any]] = [] - - class FakeClient: - def list_database_insights(self, page=None, limit=None, **kwargs): - calls.append({"page": page, "limit": limit, **kwargs}) - if page is None: - return _Response( - oci.opsi.models.DatabaseInsightsCollection( - items=[_database_insight_summary("one")] - ), - next_page="page-2", - ) - return _Response( - oci.opsi.models.DatabaseInsightsCollection( - items=[_database_insight_summary("two")] - ) - ) - - monkeypatch.setattr(runtime, "get_opsi_client", lambda: FakeClient()) - - result = tools.list_database_insights( - compartment_id="ocid1.compartment.oc1..example", - limit=10, - ) - - assert [item["id"] for item in result["items"]] == [ - "ocid1.opsidatabaseinsight.oc1..one", - "ocid1.opsidatabaseinsight.oc1..two", - ] - assert calls[0]["page"] is None - assert calls[0]["limit"] == 10 - assert calls[1]["page"] == "page-2" - assert calls[1]["limit"] == 9 - - -def test_list_tool_uses_opc_next_page_header_fallback(monkeypatch) -> None: - calls: list[dict[str, Any]] = [] - - class FakeClient: - def list_database_insights(self, page=None, limit=None, **kwargs): - calls.append({"page": page, "limit": limit, **kwargs}) - if page is None: - return _Response( - oci.opsi.models.DatabaseInsightsCollection( - items=[_database_insight_summary("one")] - ), - headers={"opc-next-page": "page-2"}, - ) - return _Response( - oci.opsi.models.DatabaseInsightsCollection( - items=[_database_insight_summary("two")] - ) - ) - - monkeypatch.setattr(runtime, "get_opsi_client", lambda: FakeClient()) - - result = tools.list_database_insights(compartment_id="ocid1.compartment.oc1..example") - - assert [item["id"] for item in result["items"]] == [ - "ocid1.opsidatabaseinsight.oc1..one", - "ocid1.opsidatabaseinsight.oc1..two", - ] - assert calls[1]["page"] == "page-2" - - -def test_list_tool_limit_caps_total_items(monkeypatch) -> None: - calls: list[dict[str, Any]] = [] - - class FakeClient: - def list_database_insights(self, page=None, limit=None, **kwargs): - calls.append({"page": page, "limit": limit, **kwargs}) - if page is None: - return _Response( - oci.opsi.models.DatabaseInsightsCollection( - items=[ - _database_insight_summary("one"), - _database_insight_summary("two"), - ] - ), - next_page="page-2", - ) - return _Response( - oci.opsi.models.DatabaseInsightsCollection( - items=[ - _database_insight_summary("three"), - _database_insight_summary("four"), - ] - ) - ) - - monkeypatch.setattr(runtime, "get_opsi_client", lambda: FakeClient()) - - result = tools.list_database_insights( - compartment_id="ocid1.compartment.oc1..example", - limit=3, - ) - - assert [item["id"] for item in result["items"]] == [ - "ocid1.opsidatabaseinsight.oc1..one", - "ocid1.opsidatabaseinsight.oc1..two", - "ocid1.opsidatabaseinsight.oc1..three", - ] - assert calls[1]["limit"] == 1 - - -def test_non_paginated_get_operation_makes_one_sdk_call(monkeypatch) -> None: - calls: list[dict[str, Any]] = [] - - class FakeClient: - def get_database_insight(self, database_insight_id=None, **kwargs): - calls.append({"database_insight_id": database_insight_id, **kwargs}) - return _Response( - oci.opsi.models.DatabaseInsight( - entity_source="AUTONOMOUS_DATABASE", - id=database_insight_id, - compartment_id="ocid1.compartment.oc1..example", - status="ENABLED", - freeform_tags={}, - defined_tags={}, - time_created=datetime(2026, 1, 1, tzinfo=UTC), - lifecycle_state="ACTIVE", - ), - next_page="ignored", - ) - - monkeypatch.setattr(runtime, "get_opsi_client", lambda: FakeClient()) - - result = tools.get_database_insight("ocid1.opsidatabaseinsight.oc1..example") - - assert result["id"] == "ocid1.opsidatabaseinsight.oc1..example" - assert len(calls) == 1 - - -def test_list_tool_passes_limit_and_filters(monkeypatch) -> None: - captured: dict[str, Any] = {} - - class FakeClient: - def list_database_insights(self, **kwargs): - captured.update(kwargs) - return _Response(oci.opsi.models.DatabaseInsightsCollection(items=[])) - - monkeypatch.setattr(runtime, "get_opsi_client", lambda: FakeClient()) - - result = tools.list_database_insights( - compartment_id="ocid1.compartment.oc1..example", - limit=25, - status=["ENABLED"], - ) - - assert captured["limit"] == 25 - assert captured["status"] == ["ENABLED"] - assert result == {"items": []} - - -def test_list_host_configurations_accepts_nullable_platform_and_cpu_fields(monkeypatch) -> None: - class FakeClient: - def list_host_configurations(self, **kwargs): - return _Response( - oci.opsi.models.HostConfigurationCollection( - items=[ - oci.opsi.models.HostConfigurationSummary( - host_insight_id="ocid1.opsihostinsight.oc1..example", - entity_source="EM_MANAGED_EXTERNAL_HOST", - compartment_id="ocid1.compartment.oc1..example", - host_name="host.example.com", - platform_type=None, - platform_version=None, - platform_vendor=None, - total_cpus=4, - total_memory_in_gbs=16.0, - cpu_architecture=None, - cpu_cache_in_mbs=8.0, - cpu_vendor=None, - cpu_frequency_in_mhz=2400.0, - cpu_implementation=None, - cores_per_socket=2, - total_sockets=2, - threads_per_socket=2, - is_hyper_threading_enabled=True, - defined_tags={}, - freeform_tags={}, - ) - ] - ) - ) - - monkeypatch.setattr(runtime, "get_opsi_client", lambda: FakeClient()) - - result = tools.list_host_configurations(compartment_id="ocid1.compartment.oc1..example") - - assert result["items"][0]["platform_type"] is None - assert result["items"][0]["platform_version"] is None - assert result["items"][0]["platform_vendor"] is None - assert result["items"][0]["cpu_architecture"] is None - assert result["items"][0]["cpu_vendor"] is None - assert result["items"][0]["cpu_implementation"] is None diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tools.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tools.py deleted file mode 100644 index f83988a3..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/oci_opsi_mcp_server/tools.py +++ /dev/null @@ -1,2275 +0,0 @@ -""" -Copyright (c) 2026, Oracle and/or its affiliates. -Licensed under the Universal Permissive License v1.0 as shown at - -""" - -from __future__ import annotations - -from mcp.types import ToolAnnotations -from pydantic import Field -from datetime import datetime -from typing import Any - -from oracle.oci_oracle_db_observability.v1.auth import get_oci_config - -from. import __project__, __version__ -from. import models -from.metadata import BOOTSTRAP_TOOL_NAMES, MUTABLE_TOOL_NAMES, TOOL_DESCRIPTIONS, TOOL_NAMES -from.models import * # noqa: F403 -from.mcp import mcp -from.runtime import invoke_identity, invoke_opsi, normalize_tool_value - - -def _tool_title(name: str) -> str: - return name.replace("_", " ").title() - - -def _tool_annotations(name: str) -> ToolAnnotations: - is_mutable = name in MUTABLE_TOOL_NAMES - return ToolAnnotations( - title=_tool_title(name), - readOnlyHint=not is_mutable, - destructiveHint=is_mutable, - idempotentHint=not is_mutable, - openWorldHint=True,) - - -TOOL_ANNOTATIONS = {name: _tool_annotations(name) for name in TOOL_NAMES} - - -def _require_tenancy_id() -> str: - config = get_oci_config(__project__, __version__) - tenancy_id = config.get("tenancy") - if not tenancy_id: - raise ValueError("Configured OCI authentication context is missing tenancy.") - return tenancy_id - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_compartment"], - annotations=TOOL_ANNOTATIONS["get_compartment"],) -def get_compartment( - compartment_id: str = Field(..., description="The compartment OCID."),) -> Any: - """Get a compartment by OCID.""" - - compartment_id = normalize_tool_value(compartment_id) - if not compartment_id: - raise ValueError("compartment_id is required.") - - result = invoke_identity("get_compartment", compartment_id=compartment_id) - if result is None: - raise ValueError("identity.get_compartment returned an empty response payload.") - return result - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_compartments"], - annotations=TOOL_ANNOTATIONS["list_compartments"],) -def list_compartments( - root_compartment_id: str | None = Field( - None, - description="The root compartment OCID. Defaults to the configured tenancy OCID.",), - include_subtree: bool = Field( - True, - description="Whether to include subcompartments.",), - access_level: models.CompartmentAccessLevel = Field( - "ACCESSIBLE", - description="Compartment visibility filter: ANY or ACCESSIBLE.",), - name: str | None = Field(None, description="Optional exact compartment name filter."), - lifecycle_state: models.CompartmentLifecycleState | None = Field( - None, - description="Optional compartment lifecycle state filter.",), - limit: int = Field(50, description="Maximum number of compartments to return.", ge=1, le=1000),) -> Any: - """List compartments from a root compartment.""" - - root_compartment_id = normalize_tool_value(root_compartment_id) - include_subtree = normalize_tool_value(include_subtree) - access_level = normalize_tool_value(access_level) - name = normalize_tool_value(name) - lifecycle_state = normalize_tool_value(lifecycle_state) - limit = normalize_tool_value(limit) - - resolved_root_compartment_id = root_compartment_id or _require_tenancy_id() - - result = invoke_identity( - "list_compartments", - compartment_id=resolved_root_compartment_id, - compartment_id_in_subtree=include_subtree, - access_level=access_level, - name=name, - lifecycle_state=lifecycle_state, - limit=limit,) - if result is None: - raise ValueError("identity.list_compartments returned an empty response payload.") - return {"items": result, "count": len(result)} - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["change_autonomous_database_insight_advanced_features"], - annotations=TOOL_ANNOTATIONS["change_autonomous_database_insight_advanced_features"],) -def change_autonomous_database_insight_advanced_features( - change_autonomous_database_insight_advanced_features_details: dict[str, Any] | ChangeAutonomousDatabaseInsightAdvancedFeaturesDetails = Field(..., description='Details for the advanced features of Autonomous Database in Operations Insights.'), - database_insight_id: str = Field(..., description='Unique database insight identifier'),) -> Any: - return invoke_opsi('change_autonomous_database_insight_advanced_features', change_autonomous_database_insight_advanced_features_details=change_autonomous_database_insight_advanced_features_details, database_insight_id=database_insight_id) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["change_awr_hub_source_compartment"], - annotations=TOOL_ANNOTATIONS["change_awr_hub_source_compartment"],) -def change_awr_hub_source_compartment( - awr_hub_source_id: str = Field(..., description='Unique Awr Hub Source identifier'), - change_awr_hub_source_compartment_details: dict[str, Any] | ChangeAwrHubSourceCompartmentDetails = Field(..., description='The destination compartment for the AWR Hub source.'),) -> Any: - return invoke_opsi('change_awr_hub_source_compartment', awr_hub_source_id=awr_hub_source_id, change_awr_hub_source_compartment_details=change_awr_hub_source_compartment_details) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["change_chargeback_plan_compartment"], - annotations=TOOL_ANNOTATIONS["change_chargeback_plan_compartment"],) -def change_chargeback_plan_compartment( - chargebackplan_id: str = Field(..., description='The OCID of the Ops Insights chargeback plan.'), - change_chargeback_plan_compartment_details: dict[str, Any] | ChangeChargebackPlanCompartmentDetails = Field(..., description='The destination compartment for the chargeback plan.'),) -> Any: - return invoke_opsi('change_chargeback_plan_compartment', chargebackplan_id=chargebackplan_id, change_chargeback_plan_compartment_details=change_chargeback_plan_compartment_details) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["change_database_insight_compartment"], - annotations=TOOL_ANNOTATIONS["change_database_insight_compartment"],) -def change_database_insight_compartment( - database_insight_id: str = Field(..., description='Unique database insight identifier'), - change_database_insight_compartment_details: dict[str, Any] | ChangeDatabaseInsightCompartmentDetails = Field(..., description='The destination compartment for the database insight.'),) -> Any: - return invoke_opsi('change_database_insight_compartment', database_insight_id=database_insight_id, change_database_insight_compartment_details=change_database_insight_compartment_details) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["change_enterprise_manager_bridge_compartment"], - annotations=TOOL_ANNOTATIONS["change_enterprise_manager_bridge_compartment"],) -def change_enterprise_manager_bridge_compartment( - enterprise_manager_bridge_id: str = Field(..., description='Unique Enterprise Manager bridge identifier'), - change_enterprise_manager_bridge_compartment_details: dict[str, Any] | ChangeEnterpriseManagerBridgeCompartmentDetails = Field(..., description='The destination compartment for the Enterprise Manager bridge.'),) -> Any: - return invoke_opsi('change_enterprise_manager_bridge_compartment', enterprise_manager_bridge_id=enterprise_manager_bridge_id, change_enterprise_manager_bridge_compartment_details=change_enterprise_manager_bridge_compartment_details) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["change_exadata_insight_compartment"], - annotations=TOOL_ANNOTATIONS["change_exadata_insight_compartment"],) -def change_exadata_insight_compartment( - exadata_insight_id: str = Field(..., description='Unique Exadata insight identifier'), - change_exadata_insight_compartment_details: dict[str, Any] | ChangeExadataInsightCompartmentDetails = Field(..., description='The destination compartment for the Exadata insight.'),) -> Any: - return invoke_opsi('change_exadata_insight_compartment', exadata_insight_id=exadata_insight_id, change_exadata_insight_compartment_details=change_exadata_insight_compartment_details) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["change_host_insight_compartment"], - annotations=TOOL_ANNOTATIONS["change_host_insight_compartment"],) -def change_host_insight_compartment( - host_insight_id: str = Field(..., description='Unique host insight identifier'), - change_host_insight_compartment_details: dict[str, Any] | ChangeHostInsightCompartmentDetails = Field(..., description='The destination compartment for the host insight.'),) -> Any: - return invoke_opsi('change_host_insight_compartment', host_insight_id=host_insight_id, change_host_insight_compartment_details=change_host_insight_compartment_details) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["change_macs_managed_autonomous_database_insight_connection"], - annotations=TOOL_ANNOTATIONS["change_macs_managed_autonomous_database_insight_connection"],) -def change_macs_managed_autonomous_database_insight_connection( - database_insight_id: str = Field(..., description='Unique database insight identifier'), - change_macs_managed_autonomous_database_insight_connection_details: dict[str, Any] | ChangeMacsManagedAutonomousDatabaseInsightConnectionDetails = Field(..., description='The replacement connection details for the MACS-managed Autonomous Database insight.'),) -> Any: - return invoke_opsi('change_macs_managed_autonomous_database_insight_connection', database_insight_id=database_insight_id, change_macs_managed_autonomous_database_insight_connection_details=change_macs_managed_autonomous_database_insight_connection_details) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["change_macs_managed_cloud_database_insight_connection"], - annotations=TOOL_ANNOTATIONS["change_macs_managed_cloud_database_insight_connection"],) -def change_macs_managed_cloud_database_insight_connection( - database_insight_id: str = Field(..., description='Unique database insight identifier'), - change_macs_managed_cloud_database_insight_connection_details: dict[str, Any] | ChangeMacsManagedCloudDatabaseInsightConnectionDetails = Field(..., description='The replacement connection details for the Cloud MACS-managed database insight.'),) -> Any: - return invoke_opsi('change_macs_managed_cloud_database_insight_connection', database_insight_id=database_insight_id, change_macs_managed_cloud_database_insight_connection_details=change_macs_managed_cloud_database_insight_connection_details) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["change_news_report_compartment"], - annotations=TOOL_ANNOTATIONS["change_news_report_compartment"],) -def change_news_report_compartment( - news_report_id: str = Field(..., description='Unique news report identifier.'), - change_news_report_compartment_details: dict[str, Any] | ChangeNewsReportCompartmentDetails = Field(..., description='The destination compartment for the news report.'),) -> Any: - return invoke_opsi('change_news_report_compartment', news_report_id=news_report_id, change_news_report_compartment_details=change_news_report_compartment_details) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["change_operations_insights_private_endpoint_compartment"], - annotations=TOOL_ANNOTATIONS["change_operations_insights_private_endpoint_compartment"],) -def change_operations_insights_private_endpoint_compartment( - operations_insights_private_endpoint_id: str = Field(..., description='The OCID of the Operation Insights private endpoint.'), - change_operations_insights_private_endpoint_compartment_details: dict[str, Any] | ChangeOperationsInsightsPrivateEndpointCompartmentDetails = Field(..., description='The details used to change the compartment of a private endpoint'),) -> Any: - return invoke_opsi('change_operations_insights_private_endpoint_compartment', operations_insights_private_endpoint_id=operations_insights_private_endpoint_id, change_operations_insights_private_endpoint_compartment_details=change_operations_insights_private_endpoint_compartment_details) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["change_operations_insights_warehouse_compartment"], - annotations=TOOL_ANNOTATIONS["change_operations_insights_warehouse_compartment"],) -def change_operations_insights_warehouse_compartment( - operations_insights_warehouse_id: str = Field(..., description='Unique Ops Insights Warehouse identifier'), - change_operations_insights_warehouse_compartment_details: dict[str, Any] | ChangeOperationsInsightsWarehouseCompartmentDetails = Field(..., description='The destination compartment for the Operations Insights Warehouse.'),) -> Any: - return invoke_opsi('change_operations_insights_warehouse_compartment', operations_insights_warehouse_id=operations_insights_warehouse_id, change_operations_insights_warehouse_compartment_details=change_operations_insights_warehouse_compartment_details) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["change_opsi_configuration_compartment"], - annotations=TOOL_ANNOTATIONS["change_opsi_configuration_compartment"],) -def change_opsi_configuration_compartment( - opsi_configuration_id: str = Field(..., description='OCID of OPSI configuration resource.'), - change_opsi_configuration_compartment_details: dict[str, Any] | ChangeOpsiConfigurationCompartmentDetails = Field(..., description='The destination compartment for the OPSI configuration resource.'),) -> Any: - return invoke_opsi('change_opsi_configuration_compartment', opsi_configuration_id=opsi_configuration_id, change_opsi_configuration_compartment_details=change_opsi_configuration_compartment_details) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["change_pe_comanaged_database_insight"], - annotations=TOOL_ANNOTATIONS["change_pe_comanaged_database_insight"],) -def change_pe_comanaged_database_insight( - database_insight_id: str = Field(..., description='Unique database insight identifier'), - change_pe_comanaged_database_insight_details: dict[str, Any] | ChangePeComanagedDatabaseInsightDetails = Field(..., description='The replacement connection or private endpoint details for the private-endpoint co-managed database insight.'),) -> Any: - return invoke_opsi('change_pe_comanaged_database_insight', database_insight_id=database_insight_id, change_pe_comanaged_database_insight_details=change_pe_comanaged_database_insight_details) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["create_awr_hub"], - annotations=TOOL_ANNOTATIONS["create_awr_hub"],) -def create_awr_hub( - create_awr_hub_details: dict[str, Any] | CreateAwrHubDetails = Field(..., description='Details using which an AWR hub resource will be created in Operations Insights.'),) -> Any: - return invoke_opsi('create_awr_hub', create_awr_hub_details=create_awr_hub_details) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["create_awr_hub_source"], - annotations=TOOL_ANNOTATIONS["create_awr_hub_source"],) -def create_awr_hub_source( - create_awr_hub_source_details: dict[str, Any] | CreateAwrHubSourceDetails = Field(..., description='Payload containing details to register the source database'),) -> Any: - return invoke_opsi('create_awr_hub_source', create_awr_hub_source_details=create_awr_hub_source_details) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["create_chargeback_plan"], - annotations=TOOL_ANNOTATIONS["create_chargeback_plan"],) -def create_chargeback_plan( - create_chargeback_plan_details: dict[str, Any] | CreateChargebackPlanDetails = Field(..., description='Details to create a new chargeback plan resource.'),) -> Any: - return invoke_opsi('create_chargeback_plan', create_chargeback_plan_details=create_chargeback_plan_details) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["create_chargeback_plan_report"], - annotations=TOOL_ANNOTATIONS["create_chargeback_plan_report"],) -def create_chargeback_plan_report( - create_chargeback_plan_report_details: dict[str, Any] | CreateChargebackPlanReportDetails = Field(..., description='Details for the chargeback plan report to be created in Ops Insights.'), - id: str = Field(..., description='Unique Ops insight identifier'), - resource_type: str = Field(..., description='Filter by resource type. Supported values are EXADATA_INSIGHT, HOST_INSIGHT, DATABASE_INSIGHT.'),) -> Any: - return invoke_opsi('create_chargeback_plan_report', create_chargeback_plan_report_details=create_chargeback_plan_report_details, id=id, resource_type=resource_type) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["create_database_insight"], - annotations=TOOL_ANNOTATIONS["create_database_insight"],) -def create_database_insight( - create_database_insight_details: dict[str, Any] | CreateDatabaseInsightDetails = Field(..., description='Details for the database for which a Database Insight resource will be created in Operations Insights.'),) -> Any: - return invoke_opsi('create_database_insight', create_database_insight_details=create_database_insight_details) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["create_enterprise_manager_bridge"], - annotations=TOOL_ANNOTATIONS["create_enterprise_manager_bridge"],) -def create_enterprise_manager_bridge( - create_enterprise_manager_bridge_details: dict[str, Any] | CreateEnterpriseManagerBridgeDetails = Field(..., description='Details for the Enterprise Manager bridge to be created in Operations Insights.'),) -> Any: - return invoke_opsi('create_enterprise_manager_bridge', create_enterprise_manager_bridge_details=create_enterprise_manager_bridge_details) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["create_exadata_insight"], - annotations=TOOL_ANNOTATIONS["create_exadata_insight"],) -def create_exadata_insight( - create_exadata_insight_details: dict[str, Any] | CreateExadataInsightDetails = Field(..., description='Details for the Exadata system for which an Exadata insight resource will be created in Operations Insights.'),) -> Any: - return invoke_opsi('create_exadata_insight', create_exadata_insight_details=create_exadata_insight_details) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["create_host_insight"], - annotations=TOOL_ANNOTATIONS["create_host_insight"],) -def create_host_insight( - create_host_insight_details: dict[str, Any] | CreateHostInsightDetails = Field(..., description='Details for the host for which a Host Insight resource will be created in Ops Insights.'),) -> Any: - return invoke_opsi('create_host_insight', create_host_insight_details=create_host_insight_details) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["create_news_report"], - annotations=TOOL_ANNOTATIONS["create_news_report"],) -def create_news_report( - create_news_report_details: dict[str, Any] | CreateNewsReportDetails = Field(..., description='Details for the news report that will be created in Ops Insights.'),) -> Any: - return invoke_opsi('create_news_report', create_news_report_details=create_news_report_details) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["create_operations_insights_private_endpoint"], - annotations=TOOL_ANNOTATIONS["create_operations_insights_private_endpoint"],) -def create_operations_insights_private_endpoint( - create_operations_insights_private_endpoint_details: dict[str, Any] | CreateOperationsInsightsPrivateEndpointDetails = Field(..., description='Details to create a new private endpoint.'),) -> Any: - return invoke_opsi('create_operations_insights_private_endpoint', create_operations_insights_private_endpoint_details=create_operations_insights_private_endpoint_details) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["create_operations_insights_warehouse"], - annotations=TOOL_ANNOTATIONS["create_operations_insights_warehouse"],) -def create_operations_insights_warehouse( - create_operations_insights_warehouse_details: dict[str, Any] | CreateOperationsInsightsWarehouseDetails = Field(..., description='Details using which an Ops Insights Warehouse resource will be created in Ops Insights.'),) -> Any: - return invoke_opsi('create_operations_insights_warehouse', create_operations_insights_warehouse_details=create_operations_insights_warehouse_details) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["create_operations_insights_warehouse_user"], - annotations=TOOL_ANNOTATIONS["create_operations_insights_warehouse_user"],) -def create_operations_insights_warehouse_user( - create_operations_insights_warehouse_user_details: dict[str, Any] | CreateOperationsInsightsWarehouseUserDetails = Field(..., description='Parameter using which an Operations Insights Warehouse user resource will be created.'),) -> Any: - return invoke_opsi('create_operations_insights_warehouse_user', create_operations_insights_warehouse_user_details=create_operations_insights_warehouse_user_details) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["create_opsi_configuration"], - annotations=TOOL_ANNOTATIONS["create_opsi_configuration"],) -def create_opsi_configuration( - create_opsi_configuration_details: dict[str, Any] | CreateOpsiConfigurationDetails = Field(..., description='Information about OPSI configuration resource to be created.'), - opsi_config_field: list[str] | None = Field(None, description='Optional fields to return as part of OpsiConfiguration object. Unless requested, these fields will not be returned by default. Allowed values are: "configItems"'), - config_item_custom_status: list[str] | None = Field(None, description='Specifies whether only customized configuration items or only non-customized configuration items or both have to be returned. By default only customized configuration items are returned. Allowed values are: "customized", "nonCustomized"'), - config_items_applicable_context: list[str] | None = Field(None, description='Returns the configuration items filtered by applicable contexts sent in this param. By default configuration items of all applicable contexts are returned.'), - config_item_field: list[str] | None = Field(None, description='Specifies the fields to return in a config item summary. Allowed values are: "name", "value", "defaultValue", "metadata", "applicableContexts"'),) -> Any: - return invoke_opsi('create_opsi_configuration', create_opsi_configuration_details=create_opsi_configuration_details, opsi_config_field=opsi_config_field, config_item_custom_status=config_item_custom_status, config_items_applicable_context=config_items_applicable_context, config_item_field=config_item_field) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["disable_autonomous_database_insight_advanced_features"], - annotations=TOOL_ANNOTATIONS["disable_autonomous_database_insight_advanced_features"],) -def disable_autonomous_database_insight_advanced_features( - database_insight_id: str = Field(..., description='Unique database insight identifier'),) -> Any: - return invoke_opsi('disable_autonomous_database_insight_advanced_features', database_insight_id=database_insight_id) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["disable_awr_hub_source"], - annotations=TOOL_ANNOTATIONS["disable_awr_hub_source"],) -def disable_awr_hub_source( - awr_hub_source_id: str = Field(..., description='Unique Awr Hub Source identifier'),) -> Any: - return invoke_opsi('disable_awr_hub_source', awr_hub_source_id=awr_hub_source_id) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["disable_database_insight"], - annotations=TOOL_ANNOTATIONS["disable_database_insight"],) -def disable_database_insight( - database_insight_id: str = Field(..., description='Unique database insight identifier'),) -> Any: - return invoke_opsi('disable_database_insight', database_insight_id=database_insight_id) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["disable_exadata_insight"], - annotations=TOOL_ANNOTATIONS["disable_exadata_insight"],) -def disable_exadata_insight( - exadata_insight_id: str = Field(..., description='Unique Exadata insight identifier'),) -> Any: - return invoke_opsi('disable_exadata_insight', exadata_insight_id=exadata_insight_id) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["disable_host_insight"], - annotations=TOOL_ANNOTATIONS["disable_host_insight"],) -def disable_host_insight( - host_insight_id: str = Field(..., description='Unique host insight identifier'),) -> Any: - return invoke_opsi('disable_host_insight', host_insight_id=host_insight_id) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["disable_plan_exadata_insight"], - annotations=TOOL_ANNOTATIONS["disable_plan_exadata_insight"],) -def disable_plan_exadata_insight( - exadata_insight_id: str = Field(..., description='Unique Exadata insight identifier'),) -> Any: - return invoke_opsi('disable_plan_exadata_insight', exadata_insight_id=exadata_insight_id) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["enable_autonomous_database_insight_advanced_features"], - annotations=TOOL_ANNOTATIONS["enable_autonomous_database_insight_advanced_features"],) -def enable_autonomous_database_insight_advanced_features( - enable_autonomous_database_insight_advanced_features_details: dict[str, Any] | EnableAutonomousDatabaseInsightAdvancedFeaturesDetails = Field(..., description='Connection Details for the Autonomous Database in Operations Insights.'), - database_insight_id: str = Field(..., description='Unique database insight identifier'),) -> Any: - return invoke_opsi('enable_autonomous_database_insight_advanced_features', enable_autonomous_database_insight_advanced_features_details=enable_autonomous_database_insight_advanced_features_details, database_insight_id=database_insight_id) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["enable_awr_hub_source"], - annotations=TOOL_ANNOTATIONS["enable_awr_hub_source"],) -def enable_awr_hub_source( - awr_hub_source_id: str = Field(..., description='Unique Awr Hub Source identifier'),) -> Any: - return invoke_opsi('enable_awr_hub_source', awr_hub_source_id=awr_hub_source_id) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["enable_database_insight"], - annotations=TOOL_ANNOTATIONS["enable_database_insight"],) -def enable_database_insight( - enable_database_insight_details: dict[str, Any] | EnableDatabaseInsightDetails = Field(..., description='Details for the database to be enabled in Operations Insights.'), - database_insight_id: str = Field(..., description='Unique database insight identifier'),) -> Any: - return invoke_opsi('enable_database_insight', enable_database_insight_details=enable_database_insight_details, database_insight_id=database_insight_id) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["enable_exadata_insight"], - annotations=TOOL_ANNOTATIONS["enable_exadata_insight"],) -def enable_exadata_insight( - enable_exadata_insight_details: dict[str, Any] | EnableExadataInsightDetails = Field(..., description='Details for the Exadata system to be enabled in Operations Insights.'), - exadata_insight_id: str = Field(..., description='Unique Exadata insight identifier'),) -> Any: - return invoke_opsi('enable_exadata_insight', enable_exadata_insight_details=enable_exadata_insight_details, exadata_insight_id=exadata_insight_id) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["enable_host_insight"], - annotations=TOOL_ANNOTATIONS["enable_host_insight"],) -def enable_host_insight( - enable_host_insight_details: dict[str, Any] | EnableHostInsightDetails = Field(..., description='Details for the host to be enabled in Ops Insights.'), - host_insight_id: str = Field(..., description='Unique host insight identifier'),) -> Any: - return invoke_opsi('enable_host_insight', enable_host_insight_details=enable_host_insight_details, host_insight_id=host_insight_id) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["enable_plan_exadata_insight"], - annotations=TOOL_ANNOTATIONS["enable_plan_exadata_insight"],) -def enable_plan_exadata_insight( - enable_plan_exadata_insight_details: dict[str, Any] | EnablePlanExadataInsightDetails = Field(..., description='Details for the Exadata system to be enabled in Operations Insights.'), - exadata_insight_id: str = Field(..., description='Unique Exadata insight identifier'),) -> Any: - return invoke_opsi('enable_plan_exadata_insight', enable_plan_exadata_insight_details=enable_plan_exadata_insight_details, exadata_insight_id=exadata_insight_id) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_awr_database_report"], - annotations=TOOL_ANNOTATIONS["get_awr_database_report"],) -def get_awr_database_report( - awr_hub_id: str = Field(..., description='Unique Awr Hub identifier'), - awr_source_database_identifier: str = Field(..., description='Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.'), - instance_number: str | None = Field(None, description='The optional single value query parameter to filter by database instance number.'), - begin_snapshot_identifier_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), - end_snapshot_identifier_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot Identifier.'), - time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), - time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), - report_type: str | None = Field(None, description='The query parameter to filter the AWR report types. Allowed values are: "AWR", "ASH"'), - report_format: str | None = Field(None, description='The format of the AWR report. Allowed values are: "HTML", "TEXT"'),) -> Any: - return invoke_opsi('get_awr_database_report', awr_hub_id=awr_hub_id, awr_source_database_identifier=awr_source_database_identifier, instance_number=instance_number, begin_snapshot_identifier_greater_than_or_equal_to=begin_snapshot_identifier_greater_than_or_equal_to, end_snapshot_identifier_less_than_or_equal_to=end_snapshot_identifier_less_than_or_equal_to, time_greater_than_or_equal_to=time_greater_than_or_equal_to, time_less_than_or_equal_to=time_less_than_or_equal_to, report_type=report_type, report_format=report_format) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_awr_database_sql_report"], - annotations=TOOL_ANNOTATIONS["get_awr_database_sql_report"],) -def get_awr_database_sql_report( - awr_hub_id: str = Field(..., description='Unique Awr Hub identifier'), - awr_source_database_identifier: str = Field(..., description='Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.'), - sql_id: str = Field(..., description='Oracle-generated SQL ID for a SQL statement in the AWR data.'), - instance_number: str | None = Field(None, description='The optional single value query parameter to filter by database instance number.'), - begin_snapshot_identifier_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), - end_snapshot_identifier_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot Identifier.'), - time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), - time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), - report_format: str | None = Field(None, description='The format of the AWR report. Allowed values are: "HTML", "TEXT"'),) -> Any: - return invoke_opsi('get_awr_database_sql_report', awr_hub_id=awr_hub_id, awr_source_database_identifier=awr_source_database_identifier, sql_id=sql_id, instance_number=instance_number, begin_snapshot_identifier_greater_than_or_equal_to=begin_snapshot_identifier_greater_than_or_equal_to, end_snapshot_identifier_less_than_or_equal_to=end_snapshot_identifier_less_than_or_equal_to, time_greater_than_or_equal_to=time_greater_than_or_equal_to, time_less_than_or_equal_to=time_less_than_or_equal_to, report_format=report_format) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_awr_hub"], - annotations=TOOL_ANNOTATIONS["get_awr_hub"],) -def get_awr_hub( - awr_hub_id: str = Field(..., description='Unique Awr Hub identifier'),) -> Any: - return invoke_opsi('get_awr_hub', awr_hub_id=awr_hub_id) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_awr_hub_object"], - annotations=TOOL_ANNOTATIONS["get_awr_hub_object"],) -def get_awr_hub_object( - awr_hub_source_id: str = Field(..., description='Unique Awr Hub Source identifier'), - object_name: str = Field(..., description='Unique Awr Hub Object identifier'),) -> Any: - return invoke_opsi('get_awr_hub_object', awr_hub_source_id=awr_hub_source_id, object_name=object_name) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_awr_hub_source"], - annotations=TOOL_ANNOTATIONS["get_awr_hub_source"],) -def get_awr_hub_source( - awr_hub_source_id: str = Field(..., description='Unique Awr Hub Source identifier'),) -> Any: - return invoke_opsi('get_awr_hub_source', awr_hub_source_id=awr_hub_source_id) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_awr_report"], - annotations=TOOL_ANNOTATIONS["get_awr_report"],) -def get_awr_report( - awr_hub_id: str = Field(..., description='Unique Awr Hub identifier'), - awr_source_database_identifier: str = Field(..., description='Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.'), - report_format: str | None = Field(None, description='The format of the AWR report. Default report format is HTML. Allowed values are: "HTML", "TEXT"'), - instance_number: str | None = Field(None, description='The optional single value query parameter to filter by database instance number.'), - begin_snapshot_identifier_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), - end_snapshot_identifier_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot Identifier.'), - time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), - time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'),) -> Any: - return invoke_opsi('get_awr_report', awr_hub_id=awr_hub_id, awr_source_database_identifier=awr_source_database_identifier, report_format=report_format, instance_number=instance_number, begin_snapshot_identifier_greater_than_or_equal_to=begin_snapshot_identifier_greater_than_or_equal_to, end_snapshot_identifier_less_than_or_equal_to=end_snapshot_identifier_less_than_or_equal_to, time_greater_than_or_equal_to=time_greater_than_or_equal_to, time_less_than_or_equal_to=time_less_than_or_equal_to) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_chargeback_plan"], - annotations=TOOL_ANNOTATIONS["get_chargeback_plan"],) -def get_chargeback_plan( - chargebackplan_id: str = Field(..., description='The OCID of the Ops Insights chargeback plan.'),) -> Any: - return invoke_opsi('get_chargeback_plan', chargebackplan_id=chargebackplan_id) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_chargeback_plan_report"], - annotations=TOOL_ANNOTATIONS["get_chargeback_plan_report"],) -def get_chargeback_plan_report( - chargeback_plan_report_id: str = Field(..., description='The OCID of the Ops Insights chargeback plan report.'), - id: str = Field(..., description='Unique Ops insight identifier'), - resource_type: str = Field(..., description='Filter by resource type. Supported values are EXADATA_INSIGHT, HOST_INSIGHT, DATABASE_INSIGHT.'),) -> Any: - return invoke_opsi('get_chargeback_plan_report', chargeback_plan_report_id=chargeback_plan_report_id, id=id, resource_type=resource_type) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_chargeback_plan_report_content"], - annotations=TOOL_ANNOTATIONS["get_chargeback_plan_report_content"],) -def get_chargeback_plan_report_content( - chargeback_plan_report_id: str = Field(..., description='The OCID of the Ops Insights chargeback plan report.'), - id: str = Field(..., description='Unique Ops insight identifier'), - resource_type: str = Field(..., description='Filter by resource type. Supported values are EXADATA_INSIGHT, HOST_INSIGHT, DATABASE_INSIGHT.'), - time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), - time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), - relative_time_interval: str | None = Field(None, description='Specify relative time period with respect to current time. If relativeTimeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P1M (previous month), P1Q (previous quarter) and P1Y (previous year).'),) -> Any: - return invoke_opsi('get_chargeback_plan_report_content', chargeback_plan_report_id=chargeback_plan_report_id, id=id, resource_type=resource_type, time_interval_start=time_interval_start, time_interval_end=time_interval_end, relative_time_interval=relative_time_interval) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_database_insight"], - annotations=TOOL_ANNOTATIONS["get_database_insight"],) -def get_database_insight( - database_insight_id: str = Field(..., description='Unique database insight identifier'),) -> Any: - return invoke_opsi('get_database_insight', database_insight_id=database_insight_id) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_enterprise_manager_bridge"], - annotations=TOOL_ANNOTATIONS["get_enterprise_manager_bridge"],) -def get_enterprise_manager_bridge( - enterprise_manager_bridge_id: str = Field(..., description='Unique Enterprise Manager bridge identifier'),) -> Any: - return invoke_opsi('get_enterprise_manager_bridge', enterprise_manager_bridge_id=enterprise_manager_bridge_id) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_exadata_insight"], - annotations=TOOL_ANNOTATIONS["get_exadata_insight"],) -def get_exadata_insight( - exadata_insight_id: str = Field(..., description='Unique Exadata insight identifier'),) -> Any: - return invoke_opsi('get_exadata_insight', exadata_insight_id=exadata_insight_id) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_host_insight"], - annotations=TOOL_ANNOTATIONS["get_host_insight"],) -def get_host_insight( - host_insight_id: str = Field(..., description='Unique host insight identifier'),) -> Any: - return invoke_opsi('get_host_insight', host_insight_id=host_insight_id) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_news_report"], - annotations=TOOL_ANNOTATIONS["get_news_report"],) -def get_news_report( - news_report_id: str = Field(..., description='Unique news report identifier.'),) -> Any: - return invoke_opsi('get_news_report', news_report_id=news_report_id) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_operations_insights_private_endpoint"], - annotations=TOOL_ANNOTATIONS["get_operations_insights_private_endpoint"],) -def get_operations_insights_private_endpoint( - operations_insights_private_endpoint_id: str = Field(..., description='The OCID of the Operation Insights private endpoint.'),) -> Any: - return invoke_opsi('get_operations_insights_private_endpoint', operations_insights_private_endpoint_id=operations_insights_private_endpoint_id) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_operations_insights_warehouse"], - annotations=TOOL_ANNOTATIONS["get_operations_insights_warehouse"],) -def get_operations_insights_warehouse( - operations_insights_warehouse_id: str = Field(..., description='Unique Ops Insights Warehouse identifier'),) -> Any: - return invoke_opsi('get_operations_insights_warehouse', operations_insights_warehouse_id=operations_insights_warehouse_id) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_operations_insights_warehouse_user"], - annotations=TOOL_ANNOTATIONS["get_operations_insights_warehouse_user"],) -def get_operations_insights_warehouse_user( - operations_insights_warehouse_user_id: str = Field(..., description='Unique Operations Insights Warehouse User identifier'),) -> Any: - return invoke_opsi('get_operations_insights_warehouse_user', operations_insights_warehouse_user_id=operations_insights_warehouse_user_id) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_opsi_configuration"], - annotations=TOOL_ANNOTATIONS["get_opsi_configuration"],) -def get_opsi_configuration( - opsi_configuration_id: str = Field(..., description='OCID of OPSI configuration resource.'), - opsi_config_field: list[str] | None = Field(None, description='Optional fields to return as part of OpsiConfiguration object. Unless requested, these fields will not be returned by default. Allowed values are: "configItems"'), - config_item_custom_status: list[str] | None = Field(None, description='Specifies whether only customized configuration items or only non-customized configuration items or both have to be returned. By default only customized configuration items are returned. Allowed values are: "customized", "nonCustomized"'), - config_items_applicable_context: list[str] | None = Field(None, description='Returns the configuration items filtered by applicable contexts sent in this param. By default configuration items of all applicable contexts are returned.'), - config_item_field: list[str] | None = Field(None, description='Specifies the fields to return in a config item summary. Allowed values are: "name", "value", "defaultValue", "metadata", "applicableContexts"'),) -> Any: - return invoke_opsi('get_opsi_configuration', opsi_configuration_id=opsi_configuration_id, opsi_config_field=opsi_config_field, config_item_custom_status=config_item_custom_status, config_items_applicable_context=config_items_applicable_context, config_item_field=config_item_field) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_opsi_data_object"], - annotations=TOOL_ANNOTATIONS["get_opsi_data_object"],) -def get_opsi_data_object( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - opsi_data_object_identifier: str = Field(..., description='Unique OPSI data object identifier.'),) -> Any: - return invoke_opsi('get_opsi_data_object', compartment_id=compartment_id, opsi_data_object_identifier=opsi_data_object_identifier) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["get_work_request"], - annotations=TOOL_ANNOTATIONS["get_work_request"],) -def get_work_request( - work_request_id: str = Field(..., description='The ID of the asynchronous request.'),) -> Any: - return invoke_opsi('get_work_request', work_request_id=work_request_id) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_addm_db_finding_categories"], - annotations=TOOL_ANNOTATIONS["list_addm_db_finding_categories"],) -def list_addm_db_finding_categories( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - database_id: list[str] | None = Field(None, description='Optional list of database OCIDs of the associated DBaaS entity.'), - id: list[str] | None = Field(None, description='Optional list of database insight resource OCIDs.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='Field name for sorting the finding categories Allowed values are: "name"'), - compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: - return invoke_opsi('list_addm_db_finding_categories', compartment_id=compartment_id, database_id=database_id, id=id, limit=limit, sort_order=sort_order, sort_by=sort_by, compartment_id_in_subtree=compartment_id_in_subtree) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_addm_db_findings_time_series"], - annotations=TOOL_ANNOTATIONS["list_addm_db_findings_time_series"],) -def list_addm_db_findings_time_series( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - database_id: list[str] | None = Field(None, description='Optional list of database OCIDs of the associated DBaaS entity.'), - id: list[str] | None = Field(None, description='Optional list of database insight resource OCIDs.'), - instance_number: str | None = Field(None, description='The optional single value query parameter to filter by database instance number.'), - time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), - time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), - category_name: str | None = Field(None, description='Optional value filter to match the finding category exactly.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='Field name for sorting the ADDM finding time series summary data Allowed values are: "timestamp"'), - compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: - return invoke_opsi('list_addm_db_findings_time_series', compartment_id=compartment_id, database_id=database_id, id=id, instance_number=instance_number, time_interval_start=time_interval_start, time_interval_end=time_interval_end, category_name=category_name, limit=limit, sort_order=sort_order, sort_by=sort_by, compartment_id_in_subtree=compartment_id_in_subtree) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_addm_db_parameter_categories"], - annotations=TOOL_ANNOTATIONS["list_addm_db_parameter_categories"],) -def list_addm_db_parameter_categories( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - database_id: list[str] | None = Field(None, description='Optional list of database OCIDs of the associated DBaaS entity.'), - id: list[str] | None = Field(None, description='Optional list of database insight resource OCIDs.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='Field name for sorting the database parameter categories Allowed values are: "name"'), - compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: - return invoke_opsi('list_addm_db_parameter_categories', compartment_id=compartment_id, database_id=database_id, id=id, limit=limit, sort_order=sort_order, sort_by=sort_by, compartment_id_in_subtree=compartment_id_in_subtree) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_addm_db_recommendation_categories"], - annotations=TOOL_ANNOTATIONS["list_addm_db_recommendation_categories"],) -def list_addm_db_recommendation_categories( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - database_id: list[str] | None = Field(None, description='Optional list of database OCIDs of the associated DBaaS entity.'), - id: list[str] | None = Field(None, description='Optional list of database insight resource OCIDs.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='Field name for sorting the recommendation categories Allowed values are: "name"'), - compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: - return invoke_opsi('list_addm_db_recommendation_categories', compartment_id=compartment_id, database_id=database_id, id=id, limit=limit, sort_order=sort_order, sort_by=sort_by, compartment_id_in_subtree=compartment_id_in_subtree) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_addm_db_recommendations_time_series"], - annotations=TOOL_ANNOTATIONS["list_addm_db_recommendations_time_series"],) -def list_addm_db_recommendations_time_series( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - database_id: list[str] | None = Field(None, description='Optional list of database OCIDs of the associated DBaaS entity.'), - id: list[str] | None = Field(None, description='Optional list of database insight resource OCIDs.'), - instance_number: str | None = Field(None, description='The optional single value query parameter to filter by database instance number.'), - time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), - time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), - category_name: str | None = Field(None, description='Optional value filter to match the finding category exactly.'), - sql_identifier: str | None = Field(None, description='Optional filter to return only resources whose sql id matches the value given. Only considered when categoryName is SQL_TUNING.'), - owner_or_name_contains: str | None = Field(None, description='Optional filter to return only resources whose owner or name contains the substring given. The match is not case sensitive. Only considered when categoryName is SCHEMA_OBJECT.'), - name_contains: str | None = Field(None, description='Optional filter to return only resources whose name contains the substring given. The match is not case sensitive. Only considered when categoryName is DATABASE_CONFIGURATION.'), - name: str | None = Field(None, description='Optional filter to return only resources whose name exactly matches the substring given. The match is case sensitive. Only considered when categoryName is DATABASE_CONFIGURATION.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='Field name for sorting the ADDM recommendation time series summary data Allowed values are: "timestamp"'), - compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: - return invoke_opsi('list_addm_db_recommendations_time_series', compartment_id=compartment_id, database_id=database_id, id=id, instance_number=instance_number, time_interval_start=time_interval_start, time_interval_end=time_interval_end, category_name=category_name, sql_identifier=sql_identifier, owner_or_name_contains=owner_or_name_contains, name_contains=name_contains, name=name, limit=limit, sort_order=sort_order, sort_by=sort_by, compartment_id_in_subtree=compartment_id_in_subtree) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_addm_dbs"], - annotations=TOOL_ANNOTATIONS["list_addm_dbs"],) -def list_addm_dbs( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - database_id: list[str] | None = Field(None, description='Optional list of database OCIDs of the associated DBaaS entity.'), - id: list[str] | None = Field(None, description='Optional list of database insight resource OCIDs.'), - time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), - time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='Field name for sorting ADDM database data Allowed values are: "databaseName", "numberOfFindings"'), - compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: - return invoke_opsi('list_addm_dbs', compartment_id=compartment_id, database_id=database_id, id=id, time_interval_start=time_interval_start, time_interval_end=time_interval_end, limit=limit, sort_order=sort_order, sort_by=sort_by, compartment_id_in_subtree=compartment_id_in_subtree) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_awr_database_snapshots"], - annotations=TOOL_ANNOTATIONS["list_awr_database_snapshots"],) -def list_awr_database_snapshots( - awr_hub_id: str = Field(..., description='Unique Awr Hub identifier'), - awr_source_database_identifier: str = Field(..., description='Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.'), - instance_number: str | None = Field(None, description='The optional single value query parameter to filter by database instance number.'), - begin_snapshot_identifier_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), - end_snapshot_identifier_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot Identifier.'), - time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), - time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: str | None = Field(None, description='The option to sort the AWR snapshot summary data. Allowed values are: "TIME_BEGIN", "SNAPSHOT_ID"'), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'),) -> Any: - return invoke_opsi('list_awr_database_snapshots', awr_hub_id=awr_hub_id, awr_source_database_identifier=awr_source_database_identifier, instance_number=instance_number, begin_snapshot_identifier_greater_than_or_equal_to=begin_snapshot_identifier_greater_than_or_equal_to, end_snapshot_identifier_less_than_or_equal_to=end_snapshot_identifier_less_than_or_equal_to, time_greater_than_or_equal_to=time_greater_than_or_equal_to, time_less_than_or_equal_to=time_less_than_or_equal_to, limit=limit, sort_by=sort_by, sort_order=sort_order) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_awr_databases"], - annotations=TOOL_ANNOTATIONS["list_awr_databases"],) -def list_awr_databases( - awr_hub_id: str = Field(..., description='Unique Awr Hub identifier'), - name: str | None = Field(None, description='The optional single value query parameter to filter the entity name.'), - time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), - time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: str | None = Field(None, description='The option to sort the AWR summary data. Allowed values are: "END_INTERVAL_TIME", "NAME"'), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'),) -> Any: - return invoke_opsi('list_awr_databases', awr_hub_id=awr_hub_id, name=name, time_greater_than_or_equal_to=time_greater_than_or_equal_to, time_less_than_or_equal_to=time_less_than_or_equal_to, limit=limit, sort_by=sort_by, sort_order=sort_order) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_awr_hub_objects"], - annotations=TOOL_ANNOTATIONS["list_awr_hub_objects"],) -def list_awr_hub_objects( - awr_hub_source_id: str = Field(..., description='Unique Awr Hub Source identifier'), - prefix: str | None = Field(None, description='The string to use for matching against the start of object names in a Awr Hub list objects query.'), - start: str | None = Field(None, description='Object names returned by Awr Hub list objects query must be greater or equal to this parameter.'), - end: str | None = Field(None, description='Object names returned by Awr Hub list objects query must be strictly less than this parameter.'), - delimiter: str | None = Field(None, description="When this parameter is set, only objects whose names do not contain the delimiter character (after an optionally specified prefix) are returned in the Awr Hub list objects key of the response body. Scanned objects whose names contain the delimiter have the part of their name up to the first occurrence of the delimiter (including the optional prefix) returned as a set of prefixes. Note that only '/' is a supported delimiter character at this time."), - start_after: str | None = Field(None, description='Awr Hub Object name after which remaining objects are listed'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - fields: str | None = Field(None, description='By default all the fields are returned. Use this parameter to fetch specific fields \'size\', \'etag\', \'md5\', \'timeCreated\', \'timeModified\', \'storageTier\' and \'archivalState\' fields. List the names of those fields in a comma-separated, case-insensitive list as the value of this parameter. For example: \'name,etag,timeCreated,md5,timeModified,storageTier,archivalState\'. Allowed values are: "name", "size", "etag", "timeCreated", "md5", "archivalState", "timeModified", "storageTier"'),) -> Any: - return invoke_opsi('list_awr_hub_objects', awr_hub_source_id=awr_hub_source_id, prefix=prefix, start=start, end=end, delimiter=delimiter, start_after=start_after, limit=limit, fields=fields) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_awr_hub_sources"], - annotations=TOOL_ANNOTATIONS["list_awr_hub_sources"],) -def list_awr_hub_sources( - awr_hub_id: str = Field(..., description='Unique Awr Hub identifier'), - compartment_id: str | None = Field(None, description='The OCID of the compartment.'), - awr_hub_source_id: str | None = Field(None, description='Awr Hub source identifier'), - source_type: list[str] | None = Field(None, description='Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: "ADW_S", "ATP_S", "ADW_D", "ATP_D", "EXTERNAL_PDB", "EXTERNAL_NONCDB", "COMANAGED_VM_CDB", "COMANAGED_VM_PDB", "COMANAGED_VM_NONCDB", "COMANAGED_BM_CDB", "COMANAGED_BM_PDB", "COMANAGED_BM_NONCDB", "COMANAGED_EXACS_CDB", "COMANAGED_EXACS_PDB", "COMANAGED_EXACS_NONCDB", "LH_S", "APEX_S", "AJD_S", "AVD_S", "LH_D", "APEX_D", "AJD_D", "AVD_D", "UNDEFINED"'), - name: str | None = Field(None, description='Awr Hub source database name'), - status: list[str] | None = Field(None, description='Resource Status Allowed values are: "ACCEPTING", "NOT_ACCEPTING", "NOT_REGISTERED", "TERMINATED"'), - lifecycle_state: list[str] | None = Field(None, description='Lifecycle states Allowed values are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED"'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='The field to sort by. Only one sort order may be provided. Default order for timeCreated is descending. Default order for displayName is ascending. If no value is specified timeCreated is default. Allowed values are: "timeCreated", "displayName"'),) -> Any: - return invoke_opsi('list_awr_hub_sources', awr_hub_id=awr_hub_id, compartment_id=compartment_id, awr_hub_source_id=awr_hub_source_id, source_type=source_type, name=name, status=status, lifecycle_state=lifecycle_state, limit=limit, sort_order=sort_order, sort_by=sort_by) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_awr_hubs"], - annotations=TOOL_ANNOTATIONS["list_awr_hubs"],) -def list_awr_hubs( - operations_insights_warehouse_id: str = Field(..., description='Unique Operations Insights Warehouse identifier'), - compartment_id: str | None = Field(None, description='The OCID of the compartment.'), - display_name: str | None = Field(None, description='A filter to return only resources that match the entire display name.'), - id: str | None = Field(None, description='Unique Awr Hub identifier'), - lifecycle_state: list[str] | None = Field(None, description='Lifecycle states Allowed values are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED"'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='The field to sort by. Only one sort order may be provided. Default order for timeCreated is descending. Default order for displayName is ascending. If no value is specified timeCreated is default. Allowed values are: "timeCreated", "displayName"'),) -> Any: - return invoke_opsi('list_awr_hubs', operations_insights_warehouse_id=operations_insights_warehouse_id, compartment_id=compartment_id, display_name=display_name, id=id, lifecycle_state=lifecycle_state, limit=limit, sort_order=sort_order, sort_by=sort_by) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_awr_snapshots"], - annotations=TOOL_ANNOTATIONS["list_awr_snapshots"],) -def list_awr_snapshots( - awr_hub_id: str = Field(..., description='Unique Awr Hub identifier'), - awr_source_database_identifier: str = Field(..., description='Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.'), - time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), - time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='The option to sort the AWR snapshot summary data. Default sort is by timeBegin. Allowed values are: "timeBegin", "snapshotId"'),) -> Any: - return invoke_opsi('list_awr_snapshots', awr_hub_id=awr_hub_id, awr_source_database_identifier=awr_source_database_identifier, time_greater_than_or_equal_to=time_greater_than_or_equal_to, time_less_than_or_equal_to=time_less_than_or_equal_to, limit=limit, sort_order=sort_order, sort_by=sort_by) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_chargeback_plan_reports"], - annotations=TOOL_ANNOTATIONS["list_chargeback_plan_reports"],) -def list_chargeback_plan_reports( - id: str = Field(..., description='Unique Ops insight identifier'), - resource_type: str = Field(..., description='Filter by resource type. Supported values are EXADATA_INSIGHT, HOST_INSIGHT, DATABASE_INSIGHT.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='The field to sort chargeback plan reports. Allowed values are: "timeCreated", "id"'),) -> Any: - return invoke_opsi('list_chargeback_plan_reports', id=id, resource_type=resource_type, limit=limit, sort_order=sort_order, sort_by=sort_by) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_chargeback_plans"], - annotations=TOOL_ANNOTATIONS["list_chargeback_plans"],) -def list_chargeback_plans( - compartment_id: str | None = Field(None, description='The OCID of the compartment.'), - chargebackplan_id: str | None = Field(None, description='The OCID of the Ops Insights chargeback plan.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='The field to sort chargeback plans. Allowed values are: "timeCreated", "id", "lifecycleState"'), - compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: - return invoke_opsi('list_chargeback_plans', compartment_id=compartment_id, chargebackplan_id=chargebackplan_id, limit=limit, sort_order=sort_order, sort_by=sort_by, compartment_id_in_subtree=compartment_id_in_subtree) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_database_configurations"], - annotations=TOOL_ANNOTATIONS["list_database_configurations"],) -def list_database_configurations( - compartment_id: str | None = Field(None, description='The OCID of the compartment.'), - enterprise_manager_bridge_id: str | None = Field(None, description='Unique Enterprise Manager bridge identifier'), - id: list[str] | None = Field(None, description='Optional list of database insight resource OCIDs.'), - database_id: list[str] | None = Field(None, description='Optional list of database OCIDs of the associated DBaaS entity.'), - exadata_insight_id: list[str] | None = Field(None, description='Optional list of exadata insight resource OCIDs.'), - cdb_name: list[str] | None = Field(None, description='Filter by one or more cdb name.'), - database_type: list[str] | None = Field(None, description='Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: "ADW-S", "ATP-S", "ADW-D", "ATP-D", "EXTERNAL-PDB", "EXTERNAL-NONCDB", "COMANAGED-VM-CDB", "COMANAGED-VM-PDB", "COMANAGED-VM-NONCDB", "COMANAGED-BM-CDB", "COMANAGED-BM-PDB", "COMANAGED-BM-NONCDB", "COMANAGED-EXACS-CDB", "COMANAGED-EXACS-PDB", "COMANAGED-EXACS-NONCDB", "COMANAGED-EXACC-CDB", "COMANAGED-EXACC-PDB", "COMANAGED-EXACC-NONCDB", "MDS-MYSQL", "EXTERNAL-MYSQL", "ATP-EXACC", "ADW-EXACC", "EXTERNAL-ADW", "EXTERNAL-ATP", "LH-D", "APEX-D", "AJD-D", "AVD-D", "LH-S", "APEX-S", "AJD-S", "AVD-S", "LH-EXACC", "APEX-EXACC", "AJD-EXACC", "AVD-EXACC"'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='Database configuration list sort options. If `fields` parameter is selected, the `sortBy` parameter must be one of the fields specified. Allowed values are: "databaseName", "databaseDisplayName", "databaseType"'), - host_name: list[str] | None = Field(None, description='Filter by one or more hostname.'), - compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'), - vmcluster_name: list[str] | None = Field(None, description='Optional list of Exadata Insight VM cluster name.'),) -> Any: - return invoke_opsi('list_database_configurations', compartment_id=compartment_id, enterprise_manager_bridge_id=enterprise_manager_bridge_id, id=id, database_id=database_id, exadata_insight_id=exadata_insight_id, cdb_name=cdb_name, database_type=database_type, limit=limit, sort_order=sort_order, sort_by=sort_by, host_name=host_name, compartment_id_in_subtree=compartment_id_in_subtree, vmcluster_name=vmcluster_name) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_database_insights"], - annotations=TOOL_ANNOTATIONS["list_database_insights"],) -def list_database_insights( - compartment_id: str | None = Field(None, description='The OCID of the compartment.'), - enterprise_manager_bridge_id: str | None = Field(None, description='Unique Enterprise Manager bridge identifier'), - id: list[str] | None = Field(None, description='Optional list of database insight resource OCIDs.'), - status: list[str] | None = Field(None, description='Resource Status Allowed values are: "DISABLED", "ENABLED", "TERMINATED"'), - lifecycle_state: list[str] | None = Field(None, description='Lifecycle states Allowed values are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION"'), - database_type: list[str] | None = Field(None, description='Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: "ADW-S", "ATP-S", "ADW-D", "ATP-D", "EXTERNAL-PDB", "EXTERNAL-NONCDB", "COMANAGED-VM-CDB", "COMANAGED-VM-PDB", "COMANAGED-VM-NONCDB", "COMANAGED-BM-CDB", "COMANAGED-BM-PDB", "COMANAGED-BM-NONCDB", "COMANAGED-EXACS-CDB", "COMANAGED-EXACS-PDB", "COMANAGED-EXACS-NONCDB", "COMANAGED-EXACC-CDB", "COMANAGED-EXACC-PDB", "COMANAGED-EXACC-NONCDB", "MDS-MYSQL", "EXTERNAL-MYSQL", "ATP-EXACC", "ADW-EXACC", "EXTERNAL-ADW", "EXTERNAL-ATP", "LH-D", "APEX-D", "AJD-D", "AVD-D", "LH-S", "APEX-S", "AJD-S", "AVD-S", "LH-EXACC", "APEX-EXACC", "AJD-EXACC", "AVD-EXACC"'), - database_id: list[str] | None = Field(None, description='Optional list of database OCIDs of the associated DBaaS entity.'), - fields: list[str] | None = Field(None, description='Specifies the fields to return in a database summary response. By default all fields are returned if omitted. Allowed values are: "compartmentId", "databaseName", "databaseDisplayName", "databaseType", "databaseVersion", "databaseHostNames", "freeformTags", "definedTags"'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='Database insight list sort options. If `fields` parameter is selected, the `sortBy` parameter must be one of the fields specified. Allowed values are: "databaseName", "databaseDisplayName", "databaseType"'), - exadata_insight_id: str | None = Field(None, description='OCID of exadata insight resource.'), - compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'), - opsi_private_endpoint_id: str | None = Field(None, description='Unique Operations Insights PrivateEndpoint identifier'),) -> Any: - return invoke_opsi('list_database_insights', compartment_id=compartment_id, enterprise_manager_bridge_id=enterprise_manager_bridge_id, id=id, status=status, lifecycle_state=lifecycle_state, database_type=database_type, database_id=database_id, fields=fields, limit=limit, sort_order=sort_order, sort_by=sort_by, exadata_insight_id=exadata_insight_id, compartment_id_in_subtree=compartment_id_in_subtree, opsi_private_endpoint_id=opsi_private_endpoint_id) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_enterprise_manager_bridges"], - annotations=TOOL_ANNOTATIONS["list_enterprise_manager_bridges"],) -def list_enterprise_manager_bridges( - compartment_id: str | None = Field(None, description='The OCID of the compartment.'), - display_name: str | None = Field(None, description='A filter to return only resources that match the entire display name.'), - id: str | None = Field(None, description='Unique Enterprise Manager bridge identifier'), - lifecycle_state: list[str] | None = Field(None, description='Lifecycle states Allowed values are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION"'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='The field to sort by. Only one sort order may be provided. Default order for timeCreated is descending. Default order for displayName is ascending. If no value is specified timeCreated is default. Allowed values are: "timeCreated", "displayName"'), - compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: - return invoke_opsi('list_enterprise_manager_bridges', compartment_id=compartment_id, display_name=display_name, id=id, lifecycle_state=lifecycle_state, limit=limit, sort_order=sort_order, sort_by=sort_by, compartment_id_in_subtree=compartment_id_in_subtree) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_exadata_configurations"], - annotations=TOOL_ANNOTATIONS["list_exadata_configurations"],) -def list_exadata_configurations( - compartment_id: str | None = Field(None, description='The OCID of the compartment.'), - exadata_insight_id: list[str] | None = Field(None, description='Optional list of exadata insight resource OCIDs.'), - exadata_type: list[str] | None = Field(None, description='Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='Exadata configuration list sort options. If `fields` parameter is selected, the `sortBy` parameter must be one of the fields specified. Allowed values are: "exadataName", "exadataDisplayName", "exadataType"'), - compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: - return invoke_opsi('list_exadata_configurations', compartment_id=compartment_id, exadata_insight_id=exadata_insight_id, exadata_type=exadata_type, limit=limit, sort_order=sort_order, sort_by=sort_by, compartment_id_in_subtree=compartment_id_in_subtree) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_exadata_insights"], - annotations=TOOL_ANNOTATIONS["list_exadata_insights"],) -def list_exadata_insights( - compartment_id: str | None = Field(None, description='The OCID of the compartment.'), - enterprise_manager_bridge_id: str | None = Field(None, description='Unique Enterprise Manager bridge identifier'), - id: list[str] | None = Field(None, description='Optional list of Exadata insight resource OCIDs.'), - status: list[str] | None = Field(None, description='Resource Status Allowed values are: "DISABLED", "ENABLED", "TERMINATED"'), - lifecycle_state: list[str] | None = Field(None, description='Lifecycle states Allowed values are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION"'), - exadata_type: list[str] | None = Field(None, description='Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='Exadata insight list sort options. If `fields` parameter is selected, the `sortBy` parameter must be one of the fields specified. Default order for timeCreated is descending. Default order for exadataName is ascending. If no value is specified timeCreated is default. Allowed values are: "timeCreated", "exadataName"'), - compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: - return invoke_opsi('list_exadata_insights', compartment_id=compartment_id, enterprise_manager_bridge_id=enterprise_manager_bridge_id, id=id, status=status, lifecycle_state=lifecycle_state, exadata_type=exadata_type, limit=limit, sort_order=sort_order, sort_by=sort_by, compartment_id_in_subtree=compartment_id_in_subtree) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_host_configurations"], - annotations=TOOL_ANNOTATIONS["list_host_configurations"],) -def list_host_configurations( - compartment_id: str | None = Field(None, description='The OCID of the compartment.'), - enterprise_manager_bridge_id: str | None = Field(None, description='Unique Enterprise Manager bridge identifier'), - id: list[str] | None = Field(None, description='Optional list of host insight resource OCIDs.'), - exadata_insight_id: list[str] | None = Field(None, description='Optional list of exadata insight resource OCIDs.'), - platform_type: list[str] | None = Field(None, description='Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX"'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='Host configuration list sort options. Allowed values are: "hostName", "platformType"'), - compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'), - host_type: list[str] | None = Field(None, description='Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST'), - host_id: str | None = Field(None, description='Optional OCID of the host (Compute Id).'), - vmcluster_name: list[str] | None = Field(None, description='Optional list of Exadata Insight VM cluster name.'), - status: list[str] | None = Field(None, description='Resource Status Allowed values are: "DISABLED", "ENABLED", "TERMINATED"'),) -> Any: - return invoke_opsi('list_host_configurations', compartment_id=compartment_id, enterprise_manager_bridge_id=enterprise_manager_bridge_id, id=id, exadata_insight_id=exadata_insight_id, platform_type=platform_type, limit=limit, sort_order=sort_order, sort_by=sort_by, compartment_id_in_subtree=compartment_id_in_subtree, host_type=host_type, host_id=host_id, vmcluster_name=vmcluster_name, status=status) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_host_insights"], - annotations=TOOL_ANNOTATIONS["list_host_insights"],) -def list_host_insights( - compartment_id: str | None = Field(None, description='The OCID of the compartment.'), - id: list[str] | None = Field(None, description='Optional list of host insight resource OCIDs.'), - status: list[str] | None = Field(None, description='Resource Status Allowed values are: "DISABLED", "ENABLED", "TERMINATED"'), - lifecycle_state: list[str] | None = Field(None, description='Lifecycle states Allowed values are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION"'), - host_type: list[str] | None = Field(None, description='Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST'), - platform_type: list[str] | None = Field(None, description='Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX"'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='Host insight list sort options. If `fields` parameter is selected, the `sortBy` parameter must be one of the fields specified. Allowed values are: "hostName", "hostType"'), - enterprise_manager_bridge_id: str | None = Field(None, description='Unique Enterprise Manager bridge identifier'), - exadata_insight_id: str | None = Field(None, description='OCID of exadata insight resource.'), - compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: - return invoke_opsi('list_host_insights', compartment_id=compartment_id, id=id, status=status, lifecycle_state=lifecycle_state, host_type=host_type, platform_type=platform_type, limit=limit, sort_order=sort_order, sort_by=sort_by, enterprise_manager_bridge_id=enterprise_manager_bridge_id, exadata_insight_id=exadata_insight_id, compartment_id_in_subtree=compartment_id_in_subtree) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_hosted_entities"], - annotations=TOOL_ANNOTATIONS["list_hosted_entities"],) -def list_hosted_entities( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - id: str = Field(..., description='Required OCID of the host insight resource.'), - analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), - time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), - time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), - platform_type: list[str] | None = Field(None, description='Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX"'), - exadata_insight_id: str | None = Field(None, description='OCID of exadata insight resource.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='Hosted entity list sort options. Allowed values are: "entityName", "entityType"'), - host_type: list[str] | None = Field(None, description='Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST'), - host_id: str | None = Field(None, description='Optional OCID of the host (Compute Id).'), - status: list[str] | None = Field(None, description='Resource Status Allowed values are: "DISABLED", "ENABLED", "TERMINATED"'),) -> Any: - return invoke_opsi('list_hosted_entities', compartment_id=compartment_id, id=id, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, platform_type=platform_type, exadata_insight_id=exadata_insight_id, limit=limit, sort_order=sort_order, sort_by=sort_by, host_type=host_type, host_id=host_id, status=status) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_importable_agent_entities"], - annotations=TOOL_ANNOTATIONS["list_importable_agent_entities"],) -def list_importable_agent_entities( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='Hosted entity list sort options. Allowed values are: "entityName", "entityType"'),) -> Any: - return invoke_opsi('list_importable_agent_entities', compartment_id=compartment_id, limit=limit, sort_order=sort_order, sort_by=sort_by) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_importable_compute_entities"], - annotations=TOOL_ANNOTATIONS["list_importable_compute_entities"],) -def list_importable_compute_entities( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='Compute entity list sort options. Allowed values are: "computeId", "computeDisplayName", "platformType", "hostName"'),) -> Any: - return invoke_opsi('list_importable_compute_entities', compartment_id=compartment_id, limit=limit, sort_order=sort_order, sort_by=sort_by) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_importable_enterprise_manager_entities"], - annotations=TOOL_ANNOTATIONS["list_importable_enterprise_manager_entities"],) -def list_importable_enterprise_manager_entities( - enterprise_manager_bridge_id: str = Field(..., description='Unique Enterprise Manager bridge identifier'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - enterprise_manager_entity_type: list[str] | None = Field(None, description='Filter by one or more Enterprise Manager entity types. Currently, the supported types are "oracle_pdb", "oracle_database", "host", "oracle_dbmachine", "oracle_exa_cloud_service", and "oracle_oci_exadata_cloud_service". If this parameter is not specified, targets of all supported entity types are returned by default.'), - enterprise_manager_identifier: str | None = Field(None, description='Used in combination with enterpriseManagerParentEntityIdentifier to return the members of a particular Enterprise Manager parent entity. Both enterpriseManagerIdentifier and enterpriseManagerParentEntityIdentifier must be specified to identify a particular Enterprise Manager parent entity.'), - enterprise_manager_parent_entity_identifier: str | None = Field(None, description='Used in combination with enterpriseManagerIdentifier to return the members of a particular Enterprise Manager parent entity. Both enterpriseManagerIdentifier and enterpriseManagerParentEntityIdentifier must be specified to identify a particular Enterprise Manager parent entity.'),) -> Any: - return invoke_opsi('list_importable_enterprise_manager_entities', enterprise_manager_bridge_id=enterprise_manager_bridge_id, limit=limit, enterprise_manager_entity_type=enterprise_manager_entity_type, enterprise_manager_identifier=enterprise_manager_identifier, enterprise_manager_parent_entity_identifier=enterprise_manager_parent_entity_identifier) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_news_reports"], - annotations=TOOL_ANNOTATIONS["list_news_reports"],) -def list_news_reports( - compartment_id: str | None = Field(None, description='The OCID of the compartment.'), - news_report_id: str | None = Field(None, description='Unique Ops Insights news report identifier'), - status: list[str] | None = Field(None, description='Resource Status Allowed values are: "DISABLED", "ENABLED", "TERMINATED"'), - lifecycle_state: list[str] | None = Field(None, description='Lifecycle states Allowed values are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION"'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='News report list sort options. If `fields` parameter is selected, the `sortBy` parameter must be one of the fields specified. Allowed values are: "name", "newsFrequency"'), - compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: - return invoke_opsi('list_news_reports', compartment_id=compartment_id, news_report_id=news_report_id, status=status, lifecycle_state=lifecycle_state, limit=limit, sort_order=sort_order, sort_by=sort_by, compartment_id_in_subtree=compartment_id_in_subtree) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_operations_insights_private_endpoints"], - annotations=TOOL_ANNOTATIONS["list_operations_insights_private_endpoints"],) -def list_operations_insights_private_endpoints( - compartment_id: str | None = Field(None, description='The OCID of the compartment.'), - display_name: str | None = Field(None, description='A filter to return only resources that match the entire display name.'), - opsi_private_endpoint_id: str | None = Field(None, description='Unique Operations Insights PrivateEndpoint identifier'), - is_used_for_rac_dbs: bool | None = Field(None, description='The option to filter OPSI private endpoints that can used for RAC. Should be used along with vcnId query parameter.'), - vcn_id: str | None = Field(None, description='The OCID of the VCN.'), - lifecycle_state: list[str] | None = Field(None, description='Lifecycle states Allowed values are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION"'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='The field to sort private endpoints. Allowed values are: "timeCreated", "id", "displayName"'), - compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: - return invoke_opsi('list_operations_insights_private_endpoints', compartment_id=compartment_id, display_name=display_name, opsi_private_endpoint_id=opsi_private_endpoint_id, is_used_for_rac_dbs=is_used_for_rac_dbs, vcn_id=vcn_id, lifecycle_state=lifecycle_state, limit=limit, sort_order=sort_order, sort_by=sort_by, compartment_id_in_subtree=compartment_id_in_subtree) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_operations_insights_warehouse_users"], - annotations=TOOL_ANNOTATIONS["list_operations_insights_warehouse_users"],) -def list_operations_insights_warehouse_users( - operations_insights_warehouse_id: str = Field(..., description='Unique Operations Insights Warehouse identifier'), - compartment_id: str | None = Field(None, description='The OCID of the compartment.'), - display_name: str | None = Field(None, description='A filter to return only resources that match the entire display name.'), - id: str | None = Field(None, description='Unique Operations Insights Warehouse User identifier'), - lifecycle_state: list[str] | None = Field(None, description='Lifecycle states Allowed values are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED"'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='The field to sort by. Only one sort order may be provided. Default order for timeCreated is descending. Default order for displayName is ascending. If no value is specified timeCreated is default. Allowed values are: "timeCreated", "displayName"'),) -> Any: - return invoke_opsi('list_operations_insights_warehouse_users', operations_insights_warehouse_id=operations_insights_warehouse_id, compartment_id=compartment_id, display_name=display_name, id=id, lifecycle_state=lifecycle_state, limit=limit, sort_order=sort_order, sort_by=sort_by) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_operations_insights_warehouses"], - annotations=TOOL_ANNOTATIONS["list_operations_insights_warehouses"],) -def list_operations_insights_warehouses( - compartment_id: str | None = Field(None, description='The OCID of the compartment.'), - display_name: str | None = Field(None, description='A filter to return only resources that match the entire display name.'), - id: str | None = Field(None, description='Unique Ops Insights Warehouse identifier'), - lifecycle_state: list[str] | None = Field(None, description='Lifecycle states Allowed values are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED"'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='The field to sort by. Only one sort order may be provided. Default order for timeCreated is descending. Default order for displayName is ascending. If no value is specified timeCreated is default. Allowed values are: "timeCreated", "displayName"'),) -> Any: - return invoke_opsi('list_operations_insights_warehouses', compartment_id=compartment_id, display_name=display_name, id=id, lifecycle_state=lifecycle_state, limit=limit, sort_order=sort_order, sort_by=sort_by) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_opsi_configurations"], - annotations=TOOL_ANNOTATIONS["list_opsi_configurations"],) -def list_opsi_configurations( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - display_name: str | None = Field(None, description='Filter to return based on resources that match the entire display name.'), - lifecycle_state: list[str] | None = Field(None, description='Filter to return based on Lifecycle state of OPSI configuration. Allowed values are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED"'), - opsi_config_type: list[str] | None = Field(None, description='Filter to return based on configuration type of OPSI configuration. Allowed values are: "UX_CONFIGURATION"'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='OPSI configurations list sort options. Allowed values are: "displayName"'),) -> Any: - return invoke_opsi('list_opsi_configurations', compartment_id=compartment_id, display_name=display_name, lifecycle_state=lifecycle_state, opsi_config_type=opsi_config_type, limit=limit, sort_order=sort_order, sort_by=sort_by) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_opsi_data_objects"], - annotations=TOOL_ANNOTATIONS["list_opsi_data_objects"],) -def list_opsi_data_objects( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - data_object_type: list[str] | None = Field(None, description='OPSI data object types. Allowed values are: "DATABASE_INSIGHTS_DATA_OBJECT", "HOST_INSIGHTS_DATA_OBJECT", "EXADATA_INSIGHTS_DATA_OBJECT"'), - display_name: str | None = Field(None, description='A filter to return only resources that match the entire display name.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='OPSI data object list sort options. Allowed values are: "displayName", "dataObjectType", "name"'), - group_name: str | None = Field(None, description='A filter to return only data objects that belongs to the group of the given group name. By default, no filtering will be applied on group name.'), - name: str | None = Field(None, description='A filter to return only data objects that match the entire data object name. By default, no filtering will be applied on data object name.'),) -> Any: - return invoke_opsi('list_opsi_data_objects', compartment_id=compartment_id, data_object_type=data_object_type, display_name=display_name, limit=limit, sort_order=sort_order, sort_by=sort_by, group_name=group_name, name=name) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_sql_plans"], - annotations=TOOL_ANNOTATIONS["list_sql_plans"],) -def list_sql_plans( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - sql_identifier: str = Field(..., description='Unique SQL_ID for a SQL Statement. Example: `6rgjh9bjmy2s7`'), - plan_hash: list[int] = Field(..., description='Unique plan hash for a SQL Plan of a particular SQL Statement. Example: `9820154385`'), - database_id: str | None = Field(None, description='Optional OCID of the associated DBaaS entity.'), - id: str | None = Field(None, description='OCID of the database insight resource.'),) -> Any: - return invoke_opsi('list_sql_plans', compartment_id=compartment_id, sql_identifier=sql_identifier, plan_hash=plan_hash, database_id=database_id, id=id) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_sql_texts"], - annotations=TOOL_ANNOTATIONS["list_sql_texts"],) -def list_sql_texts( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - sql_identifier: list[str] = Field(..., description='One or more unique SQL_IDs for a SQL Statement. Example: `6rgjh9bjmy2s7`'), - database_id: list[str] | None = Field(None, description='Optional list of database OCIDs of the assosicated DBaaS entity.'), - id: list[str] | None = Field(None, description='Optional list of database OCIDs of the database insight resource.'), - compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: - return invoke_opsi('list_sql_texts', compartment_id=compartment_id, sql_identifier=sql_identifier, database_id=database_id, id=id, compartment_id_in_subtree=compartment_id_in_subtree) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_warehouse_data_objects"], - annotations=TOOL_ANNOTATIONS["list_warehouse_data_objects"],) -def list_warehouse_data_objects( - warehouse_type: str = Field(..., description='Type of the Warehouse. Allowed values are: "awrHubs"'), - warehouse_id: str = Field(..., description='The OCID of a Warehouse.'), - data_object_type: list[str] | None = Field(None, description='A filter to return only data objects that match the data object type. By default, no filtering will be applied on data object type. Allowed values are: "VIEW", "TABLE"'), - name: str | None = Field(None, description='A filter to return only data objects that match the entire data object name. By default, no filtering will be applied on data object name.'), - owner: str | None = Field(None, description='A filter to return only data objects that match the entire data object owner name. By default, no filtering will be applied on data object owner name.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='Sort options for Warehouse data objects list. Allowed values are: "dataObjectType", "name", "owner"'), - summary_field: list[str] | None = Field(None, description='Specifies the optional fields to return in a WarehouseDataObjectSummary. Unless requested, these fields are not returned by default. Allowed values are: "details"'),) -> Any: - return invoke_opsi('list_warehouse_data_objects', warehouse_type=warehouse_type, warehouse_id=warehouse_id, data_object_type=data_object_type, name=name, owner=owner, limit=limit, sort_order=sort_order, sort_by=sort_by, summary_field=summary_field) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_work_request_errors"], - annotations=TOOL_ANNOTATIONS["list_work_request_errors"],) -def list_work_request_errors( - work_request_id: str = Field(..., description='The ID of the asynchronous request.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: str | None = Field(None, description='The field to sort by. Only one sort order may be provided. Default order for timeAccepted is descending. Allowed values are: "timeAccepted"'), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'),) -> Any: - return invoke_opsi('list_work_request_errors', work_request_id=work_request_id, limit=limit, sort_by=sort_by, sort_order=sort_order) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_work_request_logs"], - annotations=TOOL_ANNOTATIONS["list_work_request_logs"],) -def list_work_request_logs( - work_request_id: str = Field(..., description='The ID of the asynchronous request.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: str | None = Field(None, description='The field to sort by. Only one sort order may be provided. Default order for timeAccepted is descending. Allowed values are: "timeAccepted"'), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'),) -> Any: - return invoke_opsi('list_work_request_logs', work_request_id=work_request_id, limit=limit, sort_by=sort_by, sort_order=sort_order) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["list_work_requests"], - annotations=TOOL_ANNOTATIONS["list_work_requests"],) -def list_work_requests( - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - compartment_id: str | None = Field(None, description='The OCID of the compartment.'), - id: str | None = Field(None, description='The ID of the asynchronous work request.'), - status: str | None = Field(None, description='A filter to return only resources their lifecycleState matches the given OperationStatus. Allowed values are: "ACCEPTED", "IN_PROGRESS", "WAITING", "FAILED", "SUCCEEDED", "CANCELING", "CANCELED"'), - resource_id: str | None = Field(None, description='The ID of the resource affected by the work request.'), - related_resource_id: str | None = Field(None, description='The ID of the related resource for the resource affected by the work request, e.g. the related Exadata Insight OCID of the Database Insight work request'), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='The field to sort by. Only one sort order may be provided. Default order for timeAccepted is descending. Allowed values are: "timeAccepted"'),) -> Any: - return invoke_opsi('list_work_requests', limit=limit, compartment_id=compartment_id, id=id, status=status, resource_id=resource_id, related_resource_id=related_resource_id, sort_order=sort_order, sort_by=sort_by) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["query_opsi_data_object_data"], - annotations=TOOL_ANNOTATIONS["query_opsi_data_object_data"],) -def query_opsi_data_object_data( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - query_opsi_data_object_data_details: dict[str, Any] | QueryOpsiDataObjectDataDetails = Field(..., description='The information to be used for querying an OPSI data object.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000),) -> Any: - return invoke_opsi('query_opsi_data_object_data', compartment_id=compartment_id, query_opsi_data_object_data_details=query_opsi_data_object_data_details, limit=limit) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["query_warehouse_data_object_data"], - annotations=TOOL_ANNOTATIONS["query_warehouse_data_object_data"],) -def query_warehouse_data_object_data( - warehouse_type: str = Field(..., description='Type of the Warehouse. Allowed values are: "awrHubs"'), - warehouse_id: str = Field(..., description='The OCID of a Warehouse.'), - query_warehouse_data_object_data_details: dict[str, Any] | QueryWarehouseDataObjectDataDetails = Field(..., description='The information to be used for querying a Warehouse.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000),) -> Any: - return invoke_opsi('query_warehouse_data_object_data', warehouse_type=warehouse_type, warehouse_id=warehouse_id, query_warehouse_data_object_data_details=query_warehouse_data_object_data_details, limit=limit) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_addm_db_findings"], - annotations=TOOL_ANNOTATIONS["summarize_addm_db_findings"],) -def summarize_addm_db_findings( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - database_id: list[str] | None = Field(None, description='Optional list of database OCIDs of the associated DBaaS entity.'), - id: list[str] | None = Field(None, description='Optional list of database insight resource OCIDs.'), - instance_number: str | None = Field(None, description='The optional single value query parameter to filter by database instance number.'), - time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), - time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), - category_name: str | None = Field(None, description='Optional value filter to match the finding category exactly.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='Field name for sorting the ADDM finding summary data Allowed values are: "impactOverallPercent", "impactMaxPercent", "impactAvgActiveSessions", "frequencyCount"'), - compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: - return invoke_opsi('summarize_addm_db_findings', compartment_id=compartment_id, database_id=database_id, id=id, instance_number=instance_number, time_interval_start=time_interval_start, time_interval_end=time_interval_end, category_name=category_name, limit=limit, sort_order=sort_order, sort_by=sort_by, compartment_id_in_subtree=compartment_id_in_subtree) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_addm_db_parameter_changes"], - annotations=TOOL_ANNOTATIONS["summarize_addm_db_parameter_changes"],) -def summarize_addm_db_parameter_changes( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - name: str = Field(..., description='Required filter to return only changes for the specified parameter. The match is case sensitive.'), - database_id: list[str] | None = Field(None, description='Optional list of database OCIDs of the associated DBaaS entity.'), - id: list[str] | None = Field(None, description='Optional list of database insight resource OCIDs.'), - instance_number: str | None = Field(None, description='The optional single value query parameter to filter by database instance number.'), - time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), - time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), - value_contains: str | None = Field(None, description='Optional filter to return only resources whose value contains the substring given. The match is not case sensitive.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='Field name for sorting the database parameter change data Allowed values are: "isChanged", "beginSnapId"'), - compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: - return invoke_opsi('summarize_addm_db_parameter_changes', compartment_id=compartment_id, name=name, database_id=database_id, id=id, instance_number=instance_number, time_interval_start=time_interval_start, time_interval_end=time_interval_end, value_contains=value_contains, limit=limit, sort_order=sort_order, sort_by=sort_by, compartment_id_in_subtree=compartment_id_in_subtree) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_addm_db_parameters"], - annotations=TOOL_ANNOTATIONS["summarize_addm_db_parameters"],) -def summarize_addm_db_parameters( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - database_id: list[str] | None = Field(None, description='Optional list of database OCIDs of the associated DBaaS entity.'), - id: list[str] | None = Field(None, description='Optional list of database insight resource OCIDs.'), - instance_number: str | None = Field(None, description='The optional single value query parameter to filter by database instance number.'), - time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), - time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), - category_name: str | None = Field(None, description='Optional value filter to match an ADDM database parameter category exactly. Use a category name returned by ADDM database parameter category results.'), - name_or_value_contains: str | None = Field(None, description='Optional filter to return only resources whose name or value contains the substring given. The match is not case sensitive.'), - is_changed: str | None = Field(None, description='Optional filter to return only parameters whose value changed in the specified time period. Valid values include: TRUE, FALSE Allowed values are: "TRUE", "FALSE"'), - is_default: str | None = Field(None, description='Optional filter to return only parameters whose end value was set to the default value (TRUE) or was specified in the parameter file (FALSE). Valid values include: TRUE, FALSE Allowed values are: "TRUE", "FALSE"'), - has_recommendations: str | None = Field(None, description='Optional filter to return only parameters which have recommendations in the specified time period. Valid values include: TRUE, FALSE Allowed values are: "TRUE", "FALSE"'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='Field name for sorting the database parameter data Allowed values are: "isChanged", "name"'), - compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: - return invoke_opsi('summarize_addm_db_parameters', compartment_id=compartment_id, database_id=database_id, id=id, instance_number=instance_number, time_interval_start=time_interval_start, time_interval_end=time_interval_end, category_name=category_name, name_or_value_contains=name_or_value_contains, is_changed=is_changed, is_default=is_default, has_recommendations=has_recommendations, limit=limit, sort_order=sort_order, sort_by=sort_by, compartment_id_in_subtree=compartment_id_in_subtree) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_addm_db_recommendations"], - annotations=TOOL_ANNOTATIONS["summarize_addm_db_recommendations"],) -def summarize_addm_db_recommendations( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - database_id: list[str] | None = Field(None, description='Optional list of database OCIDs of the associated DBaaS entity.'), - id: list[str] | None = Field(None, description='Optional list of database insight resource OCIDs.'), - instance_number: str | None = Field(None, description='The optional single value query parameter to filter by database instance number.'), - time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), - time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), - category_name: str | None = Field(None, description='Optional value filter to match the finding category exactly.'), - finding_identifier: str | None = Field(None, description='Unique finding ID'), - sql_identifier: str | None = Field(None, description='Optional filter to return only resources whose sql id matches the value given. Only considered when categoryName is SQL_TUNING.'), - owner_or_name_contains: str | None = Field(None, description='Optional filter to return only resources whose owner or name contains the substring given. The match is not case sensitive. Only considered when categoryName is SCHEMA_OBJECT.'), - name_contains: str | None = Field(None, description='Optional filter to return only resources whose name contains the substring given. The match is not case sensitive. Only considered when categoryName is DATABASE_CONFIGURATION.'), - name: str | None = Field(None, description='Optional filter to return only resources whose name exactly matches the substring given. The match is case sensitive. Only considered when categoryName is DATABASE_CONFIGURATION.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='Field name for sorting the recommendation data Allowed values are: "maxBenefitPercent", "maxBenefitAvgActiveSessions", "frequencyCount"'), - compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: - return invoke_opsi('summarize_addm_db_recommendations', compartment_id=compartment_id, database_id=database_id, id=id, instance_number=instance_number, time_interval_start=time_interval_start, time_interval_end=time_interval_end, category_name=category_name, finding_identifier=finding_identifier, sql_identifier=sql_identifier, owner_or_name_contains=owner_or_name_contains, name_contains=name_contains, name=name, limit=limit, sort_order=sort_order, sort_by=sort_by, compartment_id_in_subtree=compartment_id_in_subtree) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_addm_db_schema_objects"], - annotations=TOOL_ANNOTATIONS["summarize_addm_db_schema_objects"],) -def summarize_addm_db_schema_objects( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - object_identifier: list[int] = Field(..., description='One or more unique Object id (from RDBMS)'), - database_id: list[str] | None = Field(None, description='Optional list of database OCIDs of the associated DBaaS entity.'), - id: list[str] | None = Field(None, description='Optional list of database insight resource OCIDs.'), - time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), - time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: - return invoke_opsi('summarize_addm_db_schema_objects', compartment_id=compartment_id, object_identifier=object_identifier, database_id=database_id, id=id, time_interval_start=time_interval_start, time_interval_end=time_interval_end, limit=limit, compartment_id_in_subtree=compartment_id_in_subtree) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_addm_db_sql_statements"], - annotations=TOOL_ANNOTATIONS["summarize_addm_db_sql_statements"],) -def summarize_addm_db_sql_statements( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - sql_identifier: list[str] = Field(..., description='One or more unique SQL_IDs for a SQL Statement. Example: `6rgjh9bjmy2s7`'), - database_id: list[str] | None = Field(None, description='Optional list of database OCIDs of the associated DBaaS entity.'), - id: list[str] | None = Field(None, description='Optional list of database insight resource OCIDs.'), - time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), - time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: - return invoke_opsi('summarize_addm_db_sql_statements', compartment_id=compartment_id, sql_identifier=sql_identifier, database_id=database_id, id=id, time_interval_start=time_interval_start, time_interval_end=time_interval_end, limit=limit, compartment_id_in_subtree=compartment_id_in_subtree) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_awr_database_cpu_usages"], - annotations=TOOL_ANNOTATIONS["summarize_awr_database_cpu_usages"],) -def summarize_awr_database_cpu_usages( - awr_hub_id: str = Field(..., description='Unique Awr Hub identifier'), - awr_source_database_identifier: str = Field(..., description='Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.'), - instance_number: str | None = Field(None, description='The optional single value query parameter to filter by database instance number.'), - begin_snapshot_identifier_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), - end_snapshot_identifier_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot Identifier.'), - time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), - time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), - session_type: str | None = Field(None, description='The optional query parameter to filter ASH activities by FOREGROUND or BACKGROUND. Allowed values are: "FOREGROUND", "BACKGROUND", "ALL"'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: str | None = Field(None, description='The option to sort the AWR CPU usage summary data. Allowed values are: "TIME_SAMPLED", "AVG_VALUE"'), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'),) -> Any: - return invoke_opsi('summarize_awr_database_cpu_usages', awr_hub_id=awr_hub_id, awr_source_database_identifier=awr_source_database_identifier, instance_number=instance_number, begin_snapshot_identifier_greater_than_or_equal_to=begin_snapshot_identifier_greater_than_or_equal_to, end_snapshot_identifier_less_than_or_equal_to=end_snapshot_identifier_less_than_or_equal_to, time_greater_than_or_equal_to=time_greater_than_or_equal_to, time_less_than_or_equal_to=time_less_than_or_equal_to, session_type=session_type, limit=limit, sort_by=sort_by, sort_order=sort_order) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_awr_database_metrics"], - annotations=TOOL_ANNOTATIONS["summarize_awr_database_metrics"],) -def summarize_awr_database_metrics( - awr_hub_id: str = Field(..., description='Unique Awr Hub identifier'), - awr_source_database_identifier: str = Field(..., description='Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.'), - name: list[str] = Field(..., description='The required multiple value query parameter to filter the entity name.'), - instance_number: str | None = Field(None, description='The optional single value query parameter to filter by database instance number.'), - begin_snapshot_identifier_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), - end_snapshot_identifier_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot Identifier.'), - time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), - time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: str | None = Field(None, description='The option to sort the AWR time series summary data. Allowed values are: "TIMESTAMP", "NAME"'), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'),) -> Any: - return invoke_opsi('summarize_awr_database_metrics', awr_hub_id=awr_hub_id, awr_source_database_identifier=awr_source_database_identifier, name=name, instance_number=instance_number, begin_snapshot_identifier_greater_than_or_equal_to=begin_snapshot_identifier_greater_than_or_equal_to, end_snapshot_identifier_less_than_or_equal_to=end_snapshot_identifier_less_than_or_equal_to, time_greater_than_or_equal_to=time_greater_than_or_equal_to, time_less_than_or_equal_to=time_less_than_or_equal_to, limit=limit, sort_by=sort_by, sort_order=sort_order) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_awr_database_parameter_changes"], - annotations=TOOL_ANNOTATIONS["summarize_awr_database_parameter_changes"],) -def summarize_awr_database_parameter_changes( - awr_hub_id: str = Field(..., description='Unique Awr Hub identifier'), - awr_source_database_identifier: str = Field(..., description='Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.'), - name: str = Field(..., description='The required single value query parameter to filter the entity name.'), - instance_number: str | None = Field(None, description='The optional single value query parameter to filter by database instance number.'), - begin_snapshot_identifier_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), - end_snapshot_identifier_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot Identifier.'), - time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), - time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: str | None = Field(None, description='The option to sort the AWR database parameter change history data. Allowed values are: "IS_CHANGED", "NAME"'), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'),) -> Any: - return invoke_opsi('summarize_awr_database_parameter_changes', awr_hub_id=awr_hub_id, awr_source_database_identifier=awr_source_database_identifier, name=name, instance_number=instance_number, begin_snapshot_identifier_greater_than_or_equal_to=begin_snapshot_identifier_greater_than_or_equal_to, end_snapshot_identifier_less_than_or_equal_to=end_snapshot_identifier_less_than_or_equal_to, time_greater_than_or_equal_to=time_greater_than_or_equal_to, time_less_than_or_equal_to=time_less_than_or_equal_to, limit=limit, sort_by=sort_by, sort_order=sort_order) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_awr_database_parameters"], - annotations=TOOL_ANNOTATIONS["summarize_awr_database_parameters"],) -def summarize_awr_database_parameters( - awr_hub_id: str = Field(..., description='Unique Awr Hub identifier'), - awr_source_database_identifier: str = Field(..., description='Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.'), - instance_number: str | None = Field(None, description='The optional single value query parameter to filter by database instance number.'), - begin_snapshot_identifier_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), - end_snapshot_identifier_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot Identifier.'), - time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), - time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), - name: list[str] | None = Field(None, description='The optional multiple value query parameter to filter the entity name.'), - name_contains: str | None = Field(None, description='The optional contains query parameter to filter the entity name by any part of the name.'), - value_changed: str | None = Field(None, description='The optional query parameter to filter database parameters whose values were changed. Allowed values are: "Y", "N"'), - value_default: str | None = Field(None, description='The optional query parameter to filter the database parameters that had the default value in the last snapshot. Allowed values are: "TRUE", "FALSE"'), - value_modified: str | None = Field(None, description='The optional query parameter to filter the database parameters that had a modified value in the last snapshot. Allowed values are: "MODIFIED", "SYSTEM_MOD", "FALSE"'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: str | None = Field(None, description='The option to sort the AWR database parameter change history data. Allowed values are: "IS_CHANGED", "NAME"'), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'),) -> Any: - return invoke_opsi('summarize_awr_database_parameters', awr_hub_id=awr_hub_id, awr_source_database_identifier=awr_source_database_identifier, instance_number=instance_number, begin_snapshot_identifier_greater_than_or_equal_to=begin_snapshot_identifier_greater_than_or_equal_to, end_snapshot_identifier_less_than_or_equal_to=end_snapshot_identifier_less_than_or_equal_to, time_greater_than_or_equal_to=time_greater_than_or_equal_to, time_less_than_or_equal_to=time_less_than_or_equal_to, name=name, name_contains=name_contains, value_changed=value_changed, value_default=value_default, value_modified=value_modified, limit=limit, sort_by=sort_by, sort_order=sort_order) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_awr_database_snapshot_ranges"], - annotations=TOOL_ANNOTATIONS["summarize_awr_database_snapshot_ranges"],) -def summarize_awr_database_snapshot_ranges( - awr_hub_id: str = Field(..., description='Unique Awr Hub identifier'), - name: str | None = Field(None, description='The optional single value query parameter to filter the entity name.'), - time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), - time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: str | None = Field(None, description='The option to sort the AWR summary data. Allowed values are: "END_INTERVAL_TIME", "NAME"'), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'),) -> Any: - return invoke_opsi('summarize_awr_database_snapshot_ranges', awr_hub_id=awr_hub_id, name=name, time_greater_than_or_equal_to=time_greater_than_or_equal_to, time_less_than_or_equal_to=time_less_than_or_equal_to, limit=limit, sort_by=sort_by, sort_order=sort_order) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_awr_database_sysstats"], - annotations=TOOL_ANNOTATIONS["summarize_awr_database_sysstats"],) -def summarize_awr_database_sysstats( - awr_hub_id: str = Field(..., description='Unique Awr Hub identifier'), - awr_source_database_identifier: str = Field(..., description='Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.'), - name: list[str] = Field(..., description='The required multiple value query parameter to filter the entity name.'), - instance_number: str | None = Field(None, description='The optional single value query parameter to filter by database instance number.'), - begin_snapshot_identifier_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), - end_snapshot_identifier_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot Identifier.'), - time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), - time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: str | None = Field(None, description='The option to sort the data within a time period. Allowed values are: "TIME_BEGIN", "NAME"'), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'),) -> Any: - return invoke_opsi('summarize_awr_database_sysstats', awr_hub_id=awr_hub_id, awr_source_database_identifier=awr_source_database_identifier, name=name, instance_number=instance_number, begin_snapshot_identifier_greater_than_or_equal_to=begin_snapshot_identifier_greater_than_or_equal_to, end_snapshot_identifier_less_than_or_equal_to=end_snapshot_identifier_less_than_or_equal_to, time_greater_than_or_equal_to=time_greater_than_or_equal_to, time_less_than_or_equal_to=time_less_than_or_equal_to, limit=limit, sort_by=sort_by, sort_order=sort_order) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_awr_database_top_wait_events"], - annotations=TOOL_ANNOTATIONS["summarize_awr_database_top_wait_events"],) -def summarize_awr_database_top_wait_events( - awr_hub_id: str = Field(..., description='Unique Awr Hub identifier'), - awr_source_database_identifier: str = Field(..., description='Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.'), - instance_number: str | None = Field(None, description='The optional single value query parameter to filter by database instance number.'), - begin_snapshot_identifier_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), - end_snapshot_identifier_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot Identifier.'), - time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), - time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), - session_type: str | None = Field(None, description='The optional query parameter to filter ASH activities by FOREGROUND or BACKGROUND. Allowed values are: "FOREGROUND", "BACKGROUND", "ALL"'), - top_n: int | None = Field(None, description='The optional query parameter to filter the number of top categories to be returned.'), - sort_by: str | None = Field(None, description='The option to sort the AWR top event summary data. Allowed values are: "WAITS_PERSEC", "AVG_WAIT_TIME_PERSEC"'), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'),) -> Any: - return invoke_opsi('summarize_awr_database_top_wait_events', awr_hub_id=awr_hub_id, awr_source_database_identifier=awr_source_database_identifier, instance_number=instance_number, begin_snapshot_identifier_greater_than_or_equal_to=begin_snapshot_identifier_greater_than_or_equal_to, end_snapshot_identifier_less_than_or_equal_to=end_snapshot_identifier_less_than_or_equal_to, time_greater_than_or_equal_to=time_greater_than_or_equal_to, time_less_than_or_equal_to=time_less_than_or_equal_to, session_type=session_type, top_n=top_n, sort_by=sort_by, sort_order=sort_order) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_awr_database_wait_event_buckets"], - annotations=TOOL_ANNOTATIONS["summarize_awr_database_wait_event_buckets"],) -def summarize_awr_database_wait_event_buckets( - awr_hub_id: str = Field(..., description='Unique Awr Hub identifier'), - awr_source_database_identifier: str = Field(..., description='Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.'), - name: str = Field(..., description='The required single value query parameter to filter the entity name.'), - instance_number: str | None = Field(None, description='The optional single value query parameter to filter by database instance number.'), - begin_snapshot_identifier_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), - end_snapshot_identifier_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot Identifier.'), - time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), - time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), - num_bucket: int | None = Field(None, description='The number of buckets within the histogram.'), - min_value: float | None = Field(None, description='The minimum value of the histogram.'), - max_value: float | None = Field(None, description='The maximum value of the histogram.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: str | None = Field(None, description='The option to sort distribution data. Allowed values are: "CATEGORY", "PERCENTAGE"'), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'),) -> Any: - return invoke_opsi('summarize_awr_database_wait_event_buckets', awr_hub_id=awr_hub_id, awr_source_database_identifier=awr_source_database_identifier, name=name, instance_number=instance_number, begin_snapshot_identifier_greater_than_or_equal_to=begin_snapshot_identifier_greater_than_or_equal_to, end_snapshot_identifier_less_than_or_equal_to=end_snapshot_identifier_less_than_or_equal_to, time_greater_than_or_equal_to=time_greater_than_or_equal_to, time_less_than_or_equal_to=time_less_than_or_equal_to, num_bucket=num_bucket, min_value=min_value, max_value=max_value, limit=limit, sort_by=sort_by, sort_order=sort_order) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_awr_database_wait_events"], - annotations=TOOL_ANNOTATIONS["summarize_awr_database_wait_events"],) -def summarize_awr_database_wait_events( - awr_hub_id: str = Field(..., description='Unique Awr Hub identifier'), - awr_source_database_identifier: str = Field(..., description='Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.'), - instance_number: str | None = Field(None, description='The optional single value query parameter to filter by database instance number.'), - begin_snapshot_identifier_greater_than_or_equal_to: int | None = Field(None, description='The optional greater than or equal to filter on the snapshot ID.'), - end_snapshot_identifier_less_than_or_equal_to: int | None = Field(None, description='The optional less than or equal to query parameter to filter the snapshot Identifier.'), - time_greater_than_or_equal_to: datetime | None = Field(None, description='The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), - time_less_than_or_equal_to: datetime | None = Field(None, description='The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z'), - name: list[str] | None = Field(None, description='The optional multiple value query parameter to filter the entity name.'), - session_type: str | None = Field(None, description='The optional query parameter to filter ASH activities by FOREGROUND or BACKGROUND. Allowed values are: "FOREGROUND", "BACKGROUND", "ALL"'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: str | None = Field(None, description='The option to sort the data within a time period. Allowed values are: "TIME_BEGIN", "NAME"'), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'),) -> Any: - return invoke_opsi('summarize_awr_database_wait_events', awr_hub_id=awr_hub_id, awr_source_database_identifier=awr_source_database_identifier, instance_number=instance_number, begin_snapshot_identifier_greater_than_or_equal_to=begin_snapshot_identifier_greater_than_or_equal_to, end_snapshot_identifier_less_than_or_equal_to=end_snapshot_identifier_less_than_or_equal_to, time_greater_than_or_equal_to=time_greater_than_or_equal_to, time_less_than_or_equal_to=time_less_than_or_equal_to, name=name, session_type=session_type, limit=limit, sort_by=sort_by, sort_order=sort_order) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_awr_sources_summaries"], - annotations=TOOL_ANNOTATIONS["summarize_awr_sources_summaries"],) -def summarize_awr_sources_summaries( - awr_hub_id: str = Field(..., description='Unique Awr Hub identifier'), - compartment_id: str | None = Field(None, description='The OCID of the compartment.'), - name: str | None = Field(None, description='Name for an Awr source database'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_by: str | None = Field(None, description='The order in which Awr sources summary records are listed Allowed values are: "snapshotsUploaded", "name"'), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'),) -> Any: - return invoke_opsi('summarize_awr_sources_summaries', awr_hub_id=awr_hub_id, compartment_id=compartment_id, name=name, limit=limit, sort_by=sort_by, sort_order=sort_order) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_configuration_items"], - annotations=TOOL_ANNOTATIONS["summarize_configuration_items"],) -def summarize_configuration_items( - compartment_id: str | None = Field(None, description='The OCID of the compartment.'), - opsi_config_type: str | None = Field(None, description='Filter to return configuration items based on configuration type of OPSI configuration. Allowed values are: "UX_CONFIGURATION"'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - config_items_applicable_context: list[str] | None = Field(None, description='Returns the configuration items filtered by applicable contexts sent in this param. By default configuration items of all applicable contexts are returned.'), - config_item_field: list[str] | None = Field(None, description='Specifies the fields to return in a config item summary. Allowed values are: "name", "value", "defaultValue", "valueSourceConfig", "metadata", "applicableContexts"'), - name: str | None = Field(None, description='A filter to return only configuration items that match the entire name.'),) -> Any: - return invoke_opsi('summarize_configuration_items', compartment_id=compartment_id, opsi_config_type=opsi_config_type, limit=limit, config_items_applicable_context=config_items_applicable_context, config_item_field=config_item_field, name=name) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_database_insight_resource_capacity_trend"], - annotations=TOOL_ANNOTATIONS["summarize_database_insight_resource_capacity_trend"],) -def summarize_database_insight_resource_capacity_trend( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - resource_metric: str = Field(..., description='Filter by resource metric. Supported values are CPU, STORAGE, MEMORY and IO.'), - analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), - time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), - time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), - database_type: list[str] | None = Field(None, description='Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: "ADW-S", "ATP-S", "ADW-D", "ATP-D", "EXTERNAL-PDB", "EXTERNAL-NONCDB", "COMANAGED-VM-CDB", "COMANAGED-VM-PDB", "COMANAGED-VM-NONCDB", "COMANAGED-BM-CDB", "COMANAGED-BM-PDB", "COMANAGED-BM-NONCDB", "COMANAGED-EXACS-CDB", "COMANAGED-EXACS-PDB", "COMANAGED-EXACS-NONCDB", "COMANAGED-EXACC-CDB", "COMANAGED-EXACC-PDB", "COMANAGED-EXACC-NONCDB", "MDS-MYSQL", "EXTERNAL-MYSQL", "ATP-EXACC", "ADW-EXACC", "EXTERNAL-ADW", "EXTERNAL-ATP", "LH-D", "APEX-D", "AJD-D", "AVD-D", "LH-S", "APEX-S", "AJD-S", "AVD-S", "LH-EXACC", "APEX-EXACC", "AJD-EXACC", "AVD-EXACC"'), - database_id: list[str] | None = Field(None, description='Optional list of database OCIDs of the associated DBaaS entity.'), - id: list[str] | None = Field(None, description='Optional list of database insight resource OCIDs.'), - exadata_insight_id: list[str] | None = Field(None, description='Optional list of exadata insight resource OCIDs.'), - cdb_name: list[str] | None = Field(None, description='Filter by one or more cdb name.'), - utilization_level: str | None = Field(None, description='Filter by utilization level by the following buckets: - HIGH_UTILIZATION: DBs with utilization greater or equal than 75. - LOW_UTILIZATION: DBs with utilization lower than 25. - MEDIUM_HIGH_UTILIZATION: DBs with utilization greater or equal than 50 but lower than 75. - MEDIUM_LOW_UTILIZATION: DBs with utilization greater or equal than 25 but lower than 50. Allowed values are: "HIGH_UTILIZATION", "LOW_UTILIZATION", "MEDIUM_HIGH_UTILIZATION", "MEDIUM_LOW_UTILIZATION"'), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='Sorts using end timestamp, capacity or baseCapacity Allowed values are: "endTimestamp", "capacity", "baseCapacity"'), - tablespace_name: str | None = Field(None, description='Tablespace name for a database'), - host_name: list[str] | None = Field(None, description='Filter by one or more hostname.'), - is_database_instance_level_metrics: bool | None = Field(None, description='Flag to indicate if database instance level metrics should be returned. The flag is ignored when a host name filter is not applied. When a hostname filter is applied this flag will determine whether to return metrics for the instances located on the specified host or for the whole database which contains an instance on this host.'), - compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'), - vmcluster_name: list[str] | None = Field(None, description='Optional list of Exadata Insight VM cluster name.'), - high_utilization_threshold: int | None = Field(None, description='Percent value in which a resource metric is considered highly utilized.'), - low_utilization_threshold: int | None = Field(None, description='Percent value in which a resource metric is considered low utilized.'),) -> Any: - return invoke_opsi('summarize_database_insight_resource_capacity_trend', compartment_id=compartment_id, resource_metric=resource_metric, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, database_type=database_type, database_id=database_id, id=id, exadata_insight_id=exadata_insight_id, cdb_name=cdb_name, utilization_level=utilization_level, sort_order=sort_order, sort_by=sort_by, tablespace_name=tablespace_name, host_name=host_name, is_database_instance_level_metrics=is_database_instance_level_metrics, compartment_id_in_subtree=compartment_id_in_subtree, vmcluster_name=vmcluster_name, high_utilization_threshold=high_utilization_threshold, low_utilization_threshold=low_utilization_threshold) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_database_insight_resource_forecast_trend"], - annotations=TOOL_ANNOTATIONS["summarize_database_insight_resource_forecast_trend"],) -def summarize_database_insight_resource_forecast_trend( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - resource_metric: str = Field(..., description='Filter by resource metric. Supported values are CPU, STORAGE, MEMORY and IO.'), - analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), - time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), - time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), - database_type: list[str] | None = Field(None, description='Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: "ADW-S", "ATP-S", "ADW-D", "ATP-D", "EXTERNAL-PDB", "EXTERNAL-NONCDB", "COMANAGED-VM-CDB", "COMANAGED-VM-PDB", "COMANAGED-VM-NONCDB", "COMANAGED-BM-CDB", "COMANAGED-BM-PDB", "COMANAGED-BM-NONCDB", "COMANAGED-EXACS-CDB", "COMANAGED-EXACS-PDB", "COMANAGED-EXACS-NONCDB", "COMANAGED-EXACC-CDB", "COMANAGED-EXACC-PDB", "COMANAGED-EXACC-NONCDB", "MDS-MYSQL", "EXTERNAL-MYSQL", "ATP-EXACC", "ADW-EXACC", "EXTERNAL-ADW", "EXTERNAL-ATP", "LH-D", "APEX-D", "AJD-D", "AVD-D", "LH-S", "APEX-S", "AJD-S", "AVD-S", "LH-EXACC", "APEX-EXACC", "AJD-EXACC", "AVD-EXACC"'), - database_id: list[str] | None = Field(None, description='Optional list of database OCIDs of the associated DBaaS entity.'), - id: list[str] | None = Field(None, description='Optional list of database insight resource OCIDs.'), - exadata_insight_id: list[str] | None = Field(None, description='Optional list of exadata insight resource OCIDs.'), - cdb_name: list[str] | None = Field(None, description='Filter by one or more cdb name.'), - statistic: str | None = Field(None, description='Choose the type of statistic metric data to be used for forecasting. Allowed values are: "AVG", "MAX"'), - forecast_days: int | None = Field(None, description='Number of days used for utilization forecast analysis.'), - forecast_model: str | None = Field(None, description='Choose algorithm model for the forecasting. Possible values: - LINEAR: Uses linear regression algorithm for forecasting. - ML_AUTO: Automatically detects best algorithm to use for forecasting. - ML_NO_AUTO: Automatically detects seasonality of the data for forecasting using linear or seasonal algorithm. Allowed values are: "LINEAR", "ML_AUTO", "ML_NO_AUTO"'), - utilization_level: str | None = Field(None, description='Filter by utilization level by the following buckets: - HIGH_UTILIZATION: DBs with utilization greater or equal than 75. - LOW_UTILIZATION: DBs with utilization lower than 25. - MEDIUM_HIGH_UTILIZATION: DBs with utilization greater or equal than 50 but lower than 75. - MEDIUM_LOW_UTILIZATION: DBs with utilization greater or equal than 25 but lower than 50. Allowed values are: "HIGH_UTILIZATION", "LOW_UTILIZATION", "MEDIUM_HIGH_UTILIZATION", "MEDIUM_LOW_UTILIZATION"'), - confidence: int | None = Field(None, description="This parameter is used to change data's confidence level, this data is ingested by the forecast algorithm. Confidence is the probability of an interval to contain the expected population parameter. Manipulation of this value will lead to different results. If not set, default confidence value is 95%."), - host_name: list[str] | None = Field(None, description='Filter by one or more hostname.'), - tablespace_name: str | None = Field(None, description='Tablespace name for a database'), - is_database_instance_level_metrics: bool | None = Field(None, description='Flag to indicate if database instance level metrics should be returned. The flag is ignored when a host name filter is not applied. When a hostname filter is applied this flag will determine whether to return metrics for the instances located on the specified host or for the whole database which contains an instance on this host.'), - compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'), - vmcluster_name: list[str] | None = Field(None, description='Optional list of Exadata Insight VM cluster name.'), - high_utilization_threshold: int | None = Field(None, description='Percent value in which a resource metric is considered highly utilized.'), - low_utilization_threshold: int | None = Field(None, description='Percent value in which a resource metric is considered low utilized.'),) -> Any: - return invoke_opsi('summarize_database_insight_resource_forecast_trend', compartment_id=compartment_id, resource_metric=resource_metric, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, database_type=database_type, database_id=database_id, id=id, exadata_insight_id=exadata_insight_id, cdb_name=cdb_name, statistic=statistic, forecast_days=forecast_days, forecast_model=forecast_model, utilization_level=utilization_level, confidence=confidence, host_name=host_name, tablespace_name=tablespace_name, is_database_instance_level_metrics=is_database_instance_level_metrics, compartment_id_in_subtree=compartment_id_in_subtree, vmcluster_name=vmcluster_name, high_utilization_threshold=high_utilization_threshold, low_utilization_threshold=low_utilization_threshold) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_database_insight_resource_statistics"], - annotations=TOOL_ANNOTATIONS["summarize_database_insight_resource_statistics"],) -def summarize_database_insight_resource_statistics( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - resource_metric: str = Field(..., description='Filter by resource metric. Supported values are CPU, STORAGE, MEMORY and IO.'), - analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), - time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), - time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), - database_type: list[str] | None = Field(None, description='Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: "ADW-S", "ATP-S", "ADW-D", "ATP-D", "EXTERNAL-PDB", "EXTERNAL-NONCDB", "COMANAGED-VM-CDB", "COMANAGED-VM-PDB", "COMANAGED-VM-NONCDB", "COMANAGED-BM-CDB", "COMANAGED-BM-PDB", "COMANAGED-BM-NONCDB", "COMANAGED-EXACS-CDB", "COMANAGED-EXACS-PDB", "COMANAGED-EXACS-NONCDB", "COMANAGED-EXACC-CDB", "COMANAGED-EXACC-PDB", "COMANAGED-EXACC-NONCDB", "MDS-MYSQL", "EXTERNAL-MYSQL", "ATP-EXACC", "ADW-EXACC", "EXTERNAL-ADW", "EXTERNAL-ATP", "LH-D", "APEX-D", "AJD-D", "AVD-D", "LH-S", "APEX-S", "AJD-S", "AVD-S", "LH-EXACC", "APEX-EXACC", "AJD-EXACC", "AVD-EXACC"'), - database_id: list[str] | None = Field(None, description='Optional list of database OCIDs of the associated DBaaS entity.'), - id: list[str] | None = Field(None, description='Optional list of database insight resource OCIDs.'), - exadata_insight_id: list[str] | None = Field(None, description='Optional list of exadata insight resource OCIDs.'), - cdb_name: list[str] | None = Field(None, description='Filter by one or more cdb name.'), - percentile: int | None = Field(None, description='Percentile values of daily usage to be used for computing the aggregate resource usage.'), - insight_by: str | None = Field(None, description='Return data of a specific insight Possible values are High Utilization, Low Utilization, Any,High Utilization Forecast, Low Utilization Forecast'), - forecast_days: int | None = Field(None, description='Number of days used for utilization forecast analysis.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='The order in which resource statistics records are listed Allowed values are: "utilizationPercent", "usage", "usageChangePercent", "databaseName", "databaseType"'), - host_name: list[str] | None = Field(None, description='Filter by one or more hostname.'), - is_database_instance_level_metrics: bool | None = Field(None, description='Flag to indicate if database instance level metrics should be returned. The flag is ignored when a host name filter is not applied. When a hostname filter is applied this flag will determine whether to return metrics for the instances located on the specified host or for the whole database which contains an instance on this host.'), - compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'), - vmcluster_name: list[str] | None = Field(None, description='Optional list of Exadata Insight VM cluster name.'), - high_utilization_threshold: int | None = Field(None, description='Percent value in which a resource metric is considered highly utilized.'), - low_utilization_threshold: int | None = Field(None, description='Percent value in which a resource metric is considered low utilized.'),) -> Any: - return invoke_opsi('summarize_database_insight_resource_statistics', compartment_id=compartment_id, resource_metric=resource_metric, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, database_type=database_type, database_id=database_id, id=id, exadata_insight_id=exadata_insight_id, cdb_name=cdb_name, percentile=percentile, insight_by=insight_by, forecast_days=forecast_days, limit=limit, sort_order=sort_order, sort_by=sort_by, host_name=host_name, is_database_instance_level_metrics=is_database_instance_level_metrics, compartment_id_in_subtree=compartment_id_in_subtree, vmcluster_name=vmcluster_name, high_utilization_threshold=high_utilization_threshold, low_utilization_threshold=low_utilization_threshold) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_database_insight_resource_usage"], - annotations=TOOL_ANNOTATIONS["summarize_database_insight_resource_usage"],) -def summarize_database_insight_resource_usage( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - resource_metric: str = Field(..., description='Filter by resource metric. Supported values are CPU, STORAGE, MEMORY and IO.'), - analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), - time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), - time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), - database_type: list[str] | None = Field(None, description='Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: "ADW-S", "ATP-S", "ADW-D", "ATP-D", "EXTERNAL-PDB", "EXTERNAL-NONCDB", "COMANAGED-VM-CDB", "COMANAGED-VM-PDB", "COMANAGED-VM-NONCDB", "COMANAGED-BM-CDB", "COMANAGED-BM-PDB", "COMANAGED-BM-NONCDB", "COMANAGED-EXACS-CDB", "COMANAGED-EXACS-PDB", "COMANAGED-EXACS-NONCDB", "COMANAGED-EXACC-CDB", "COMANAGED-EXACC-PDB", "COMANAGED-EXACC-NONCDB", "MDS-MYSQL", "EXTERNAL-MYSQL", "ATP-EXACC", "ADW-EXACC", "EXTERNAL-ADW", "EXTERNAL-ATP", "LH-D", "APEX-D", "AJD-D", "AVD-D", "LH-S", "APEX-S", "AJD-S", "AVD-S", "LH-EXACC", "APEX-EXACC", "AJD-EXACC", "AVD-EXACC"'), - database_id: list[str] | None = Field(None, description='Optional list of database OCIDs of the associated DBaaS entity.'), - id: list[str] | None = Field(None, description='Optional list of database insight resource OCIDs.'), - exadata_insight_id: list[str] | None = Field(None, description='Optional list of exadata insight resource OCIDs.'), - host_name: list[str] | None = Field(None, description='Filter by one or more hostname.'), - is_database_instance_level_metrics: bool | None = Field(None, description='Flag to indicate if database instance level metrics should be returned. The flag is ignored when a host name filter is not applied. When a hostname filter is applied this flag will determine whether to return metrics for the instances located on the specified host or for the whole database which contains an instance on this host.'), - percentile: int | None = Field(None, description='Percentile values of daily usage to be used for computing the aggregate resource usage.'), - compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'), - vmcluster_name: list[str] | None = Field(None, description='Optional list of Exadata Insight VM cluster name.'), - cdb_name: list[str] | None = Field(None, description='Filter by one or more cdb name.'),) -> Any: - return invoke_opsi('summarize_database_insight_resource_usage', compartment_id=compartment_id, resource_metric=resource_metric, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, database_type=database_type, database_id=database_id, id=id, exadata_insight_id=exadata_insight_id, host_name=host_name, is_database_instance_level_metrics=is_database_instance_level_metrics, percentile=percentile, compartment_id_in_subtree=compartment_id_in_subtree, vmcluster_name=vmcluster_name, cdb_name=cdb_name) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_database_insight_resource_usage_trend"], - annotations=TOOL_ANNOTATIONS["summarize_database_insight_resource_usage_trend"],) -def summarize_database_insight_resource_usage_trend( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - resource_metric: str = Field(..., description='Filter by resource metric. Supported values are CPU, STORAGE, MEMORY and IO.'), - analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), - time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), - time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), - database_type: list[str] | None = Field(None, description='Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: "ADW-S", "ATP-S", "ADW-D", "ATP-D", "EXTERNAL-PDB", "EXTERNAL-NONCDB", "COMANAGED-VM-CDB", "COMANAGED-VM-PDB", "COMANAGED-VM-NONCDB", "COMANAGED-BM-CDB", "COMANAGED-BM-PDB", "COMANAGED-BM-NONCDB", "COMANAGED-EXACS-CDB", "COMANAGED-EXACS-PDB", "COMANAGED-EXACS-NONCDB", "COMANAGED-EXACC-CDB", "COMANAGED-EXACC-PDB", "COMANAGED-EXACC-NONCDB", "MDS-MYSQL", "EXTERNAL-MYSQL", "ATP-EXACC", "ADW-EXACC", "EXTERNAL-ADW", "EXTERNAL-ATP", "LH-D", "APEX-D", "AJD-D", "AVD-D", "LH-S", "APEX-S", "AJD-S", "AVD-S", "LH-EXACC", "APEX-EXACC", "AJD-EXACC", "AVD-EXACC"'), - database_id: list[str] | None = Field(None, description='Optional list of database OCIDs of the associated DBaaS entity.'), - id: list[str] | None = Field(None, description='Optional list of database insight resource OCIDs.'), - exadata_insight_id: list[str] | None = Field(None, description='Optional list of exadata insight resource OCIDs.'), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='Sorts using end timestamp, usage or capacity Allowed values are: "endTimestamp", "usage", "capacity"'), - host_name: list[str] | None = Field(None, description='Filter by one or more hostname.'), - is_database_instance_level_metrics: bool | None = Field(None, description='Flag to indicate if database instance level metrics should be returned. The flag is ignored when a host name filter is not applied. When a hostname filter is applied this flag will determine whether to return metrics for the instances located on the specified host or for the whole database which contains an instance on this host.'), - compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'), - vmcluster_name: list[str] | None = Field(None, description='Optional list of Exadata Insight VM cluster name.'), - cdb_name: list[str] | None = Field(None, description='Filter by one or more cdb name.'),) -> Any: - return invoke_opsi('summarize_database_insight_resource_usage_trend', compartment_id=compartment_id, resource_metric=resource_metric, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, database_type=database_type, database_id=database_id, id=id, exadata_insight_id=exadata_insight_id, sort_order=sort_order, sort_by=sort_by, host_name=host_name, is_database_instance_level_metrics=is_database_instance_level_metrics, compartment_id_in_subtree=compartment_id_in_subtree, vmcluster_name=vmcluster_name, cdb_name=cdb_name) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_database_insight_resource_utilization_insight"], - annotations=TOOL_ANNOTATIONS["summarize_database_insight_resource_utilization_insight"],) -def summarize_database_insight_resource_utilization_insight( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - resource_metric: str = Field(..., description='Filter by resource metric. Supported values are CPU, STORAGE, MEMORY and IO.'), - analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), - time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), - time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), - database_type: list[str] | None = Field(None, description='Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: "ADW-S", "ATP-S", "ADW-D", "ATP-D", "EXTERNAL-PDB", "EXTERNAL-NONCDB", "COMANAGED-VM-CDB", "COMANAGED-VM-PDB", "COMANAGED-VM-NONCDB", "COMANAGED-BM-CDB", "COMANAGED-BM-PDB", "COMANAGED-BM-NONCDB", "COMANAGED-EXACS-CDB", "COMANAGED-EXACS-PDB", "COMANAGED-EXACS-NONCDB", "COMANAGED-EXACC-CDB", "COMANAGED-EXACC-PDB", "COMANAGED-EXACC-NONCDB", "MDS-MYSQL", "EXTERNAL-MYSQL", "ATP-EXACC", "ADW-EXACC", "EXTERNAL-ADW", "EXTERNAL-ATP", "LH-D", "APEX-D", "AJD-D", "AVD-D", "LH-S", "APEX-S", "AJD-S", "AVD-S", "LH-EXACC", "APEX-EXACC", "AJD-EXACC", "AVD-EXACC"'), - database_id: list[str] | None = Field(None, description='Optional list of database OCIDs of the associated DBaaS entity.'), - id: list[str] | None = Field(None, description='Optional list of database insight resource OCIDs.'), - exadata_insight_id: list[str] | None = Field(None, description='Optional list of exadata insight resource OCIDs.'), - forecast_days: int | None = Field(None, description='Number of days used for utilization forecast analysis.'), - host_name: list[str] | None = Field(None, description='Filter by one or more hostname.'), - is_database_instance_level_metrics: bool | None = Field(None, description='Flag to indicate if database instance level metrics should be returned. The flag is ignored when a host name filter is not applied. When a hostname filter is applied this flag will determine whether to return metrics for the instances located on the specified host or for the whole database which contains an instance on this host.'), - compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'), - vmcluster_name: list[str] | None = Field(None, description='Optional list of Exadata Insight VM cluster name.'), - cdb_name: list[str] | None = Field(None, description='Filter by one or more cdb name.'), - high_utilization_threshold: int | None = Field(None, description='Percent value in which a resource metric is considered highly utilized.'), - low_utilization_threshold: int | None = Field(None, description='Percent value in which a resource metric is considered low utilized.'),) -> Any: - return invoke_opsi('summarize_database_insight_resource_utilization_insight', compartment_id=compartment_id, resource_metric=resource_metric, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, database_type=database_type, database_id=database_id, id=id, exadata_insight_id=exadata_insight_id, forecast_days=forecast_days, host_name=host_name, is_database_instance_level_metrics=is_database_instance_level_metrics, compartment_id_in_subtree=compartment_id_in_subtree, vmcluster_name=vmcluster_name, cdb_name=cdb_name, high_utilization_threshold=high_utilization_threshold, low_utilization_threshold=low_utilization_threshold) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_database_insight_tablespace_usage_trend"], - annotations=TOOL_ANNOTATIONS["summarize_database_insight_tablespace_usage_trend"],) -def summarize_database_insight_tablespace_usage_trend( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), - time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), - time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), - database_id: str | None = Field(None, description='Optional OCID of the associated DBaaS entity.'), - id: str | None = Field(None, description='OCID of the database insight resource.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000),) -> Any: - return invoke_opsi('summarize_database_insight_tablespace_usage_trend', compartment_id=compartment_id, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, database_id=database_id, id=id, limit=limit) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_exadata_insight_resource_capacity_trend"], - annotations=TOOL_ANNOTATIONS["summarize_exadata_insight_resource_capacity_trend"],) -def summarize_exadata_insight_resource_capacity_trend( - resource_type: str = Field(..., description='Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE'), - resource_metric: str = Field(..., description='Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT'), - exadata_insight_id: str = Field(..., description='OCID of exadata insight resource.'), - compartment_id: str | None = Field(None, description='The OCID of the compartment.'), - analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), - time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), - time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), - database_insight_id: list[str] | None = Field(None, description='Optional list of database insight resource OCIDs.'), - host_insight_id: list[str] | None = Field(None, description='Optional list of host insight resource OCIDs.'), - storage_server_name: list[str] | None = Field(None, description='Optional storage server name on an exadata system.'), - exadata_type: list[str] | None = Field(None, description='Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC.'), - cdb_name: list[str] | None = Field(None, description='Filter by one or more cdb name.'), - host_name: list[str] | None = Field(None, description='Filter by hostname.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='The order in which resource capacity trend records are listed Allowed values are: "id", "name"'),) -> Any: - return invoke_opsi('summarize_exadata_insight_resource_capacity_trend', resource_type=resource_type, resource_metric=resource_metric, exadata_insight_id=exadata_insight_id, compartment_id=compartment_id, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, database_insight_id=database_insight_id, host_insight_id=host_insight_id, storage_server_name=storage_server_name, exadata_type=exadata_type, cdb_name=cdb_name, host_name=host_name, limit=limit, sort_order=sort_order, sort_by=sort_by) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_exadata_insight_resource_capacity_trend_aggregated"], - annotations=TOOL_ANNOTATIONS["summarize_exadata_insight_resource_capacity_trend_aggregated"],) -def summarize_exadata_insight_resource_capacity_trend_aggregated( - resource_type: str = Field(..., description='Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE'), - resource_metric: str = Field(..., description='Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT'), - compartment_id: str | None = Field(None, description='The OCID of the compartment.'), - analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), - time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), - time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), - exadata_insight_id: list[str] | None = Field(None, description='Optional list of exadata insight resource OCIDs.'), - exadata_type: list[str] | None = Field(None, description='Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC.'), - cdb_name: list[str] | None = Field(None, description='Filter by one or more cdb name.'), - host_name: list[str] | None = Field(None, description='Filter by hostname.'), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='Sorts using end timestamp or capacity. Allowed values are: "endTimestamp", "capacity"'), - compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: - return invoke_opsi('summarize_exadata_insight_resource_capacity_trend_aggregated', resource_type=resource_type, resource_metric=resource_metric, compartment_id=compartment_id, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, exadata_insight_id=exadata_insight_id, exadata_type=exadata_type, cdb_name=cdb_name, host_name=host_name, sort_order=sort_order, sort_by=sort_by, compartment_id_in_subtree=compartment_id_in_subtree) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_exadata_insight_resource_forecast_trend"], - annotations=TOOL_ANNOTATIONS["summarize_exadata_insight_resource_forecast_trend"],) -def summarize_exadata_insight_resource_forecast_trend( - resource_type: str = Field(..., description='Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE'), - resource_metric: str = Field(..., description='Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT'), - exadata_insight_id: str = Field(..., description='OCID of exadata insight resource.'), - analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), - time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), - time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), - database_insight_id: list[str] | None = Field(None, description='Optional list of database insight resource OCIDs.'), - host_insight_id: list[str] | None = Field(None, description='Optional list of host insight resource OCIDs.'), - storage_server_name: list[str] | None = Field(None, description='Optional storage server name on an exadata system.'), - exadata_type: list[str] | None = Field(None, description='Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC.'), - statistic: str | None = Field(None, description='Choose the type of statistic metric data to be used for forecasting. Allowed values are: "AVG", "MAX"'), - forecast_start_day: int | None = Field(None, description='Number of days used for utilization forecast analysis.'), - forecast_days: int | None = Field(None, description='Number of days used for utilization forecast analysis.'), - forecast_model: str | None = Field(None, description='Choose algorithm model for the forecasting. Possible values: - LINEAR: Uses linear regression algorithm for forecasting. - ML_AUTO: Automatically detects best algorithm to use for forecasting. - ML_NO_AUTO: Automatically detects seasonality of the data for forecasting using linear or seasonal algorithm. Allowed values are: "LINEAR", "ML_AUTO", "ML_NO_AUTO"'), - cdb_name: list[str] | None = Field(None, description='Filter by one or more cdb name.'), - host_name: list[str] | None = Field(None, description='Filter by hostname.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - confidence: int | None = Field(None, description="This parameter is used to change data's confidence level, this data is ingested by the forecast algorithm. Confidence is the probability of an interval to contain the expected population parameter. Manipulation of this value will lead to different results. If not set, default confidence value is 95%."), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='The order in which resource Forecast trend records are listed Allowed values are: "id", "name", "daysToReachCapacity"'),) -> Any: - return invoke_opsi('summarize_exadata_insight_resource_forecast_trend', resource_type=resource_type, resource_metric=resource_metric, exadata_insight_id=exadata_insight_id, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, database_insight_id=database_insight_id, host_insight_id=host_insight_id, storage_server_name=storage_server_name, exadata_type=exadata_type, statistic=statistic, forecast_start_day=forecast_start_day, forecast_days=forecast_days, forecast_model=forecast_model, cdb_name=cdb_name, host_name=host_name, limit=limit, confidence=confidence, sort_order=sort_order, sort_by=sort_by) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_exadata_insight_resource_forecast_trend_aggregated"], - annotations=TOOL_ANNOTATIONS["summarize_exadata_insight_resource_forecast_trend_aggregated"],) -def summarize_exadata_insight_resource_forecast_trend_aggregated( - resource_type: str = Field(..., description='Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE'), - resource_metric: str = Field(..., description='Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT'), - compartment_id: str | None = Field(None, description='The OCID of the compartment.'), - analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), - time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), - time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), - exadata_insight_id: list[str] | None = Field(None, description='Optional list of exadata insight resource OCIDs.'), - exadata_type: list[str] | None = Field(None, description='Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC.'), - statistic: str | None = Field(None, description='Choose the type of statistic metric data to be used for forecasting. Allowed values are: "AVG", "MAX"'), - forecast_start_day: int | None = Field(None, description='Number of days used for utilization forecast analysis.'), - forecast_days: int | None = Field(None, description='Number of days used for utilization forecast analysis.'), - forecast_model: str | None = Field(None, description='Choose algorithm model for the forecasting. Possible values: - LINEAR: Uses linear regression algorithm for forecasting. - ML_AUTO: Automatically detects best algorithm to use for forecasting. - ML_NO_AUTO: Automatically detects seasonality of the data for forecasting using linear or seasonal algorithm. Allowed values are: "LINEAR", "ML_AUTO", "ML_NO_AUTO"'), - cdb_name: list[str] | None = Field(None, description='Filter by one or more cdb name.'), - host_name: list[str] | None = Field(None, description='Filter by hostname.'), - confidence: int | None = Field(None, description="This parameter is used to change data's confidence level, this data is ingested by the forecast algorithm. Confidence is the probability of an interval to contain the expected population parameter. Manipulation of this value will lead to different results. If not set, default confidence value is 95%."), - compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: - return invoke_opsi('summarize_exadata_insight_resource_forecast_trend_aggregated', resource_type=resource_type, resource_metric=resource_metric, compartment_id=compartment_id, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, exadata_insight_id=exadata_insight_id, exadata_type=exadata_type, statistic=statistic, forecast_start_day=forecast_start_day, forecast_days=forecast_days, forecast_model=forecast_model, cdb_name=cdb_name, host_name=host_name, confidence=confidence, compartment_id_in_subtree=compartment_id_in_subtree) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_exadata_insight_resource_statistics"], - annotations=TOOL_ANNOTATIONS["summarize_exadata_insight_resource_statistics"],) -def summarize_exadata_insight_resource_statistics( - exadata_insight_id: str = Field(..., description='OCID of exadata insight resource.'), - resource_type: str = Field(..., description='Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE'), - resource_metric: str = Field(..., description='Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT'), - analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), - time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), - time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), - exadata_type: list[str] | None = Field(None, description='Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC.'), - cdb_name: list[str] | None = Field(None, description='Filter by one or more cdb name.'), - host_name: list[str] | None = Field(None, description='Filter by hostname.'), - percentile: int | None = Field(None, description='Percentile values of daily usage to be used for computing the aggregate resource usage.'), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='The order in which resource statistics records are listed Allowed values are: "utilizationPercent", "usage", "usageChangePercent"'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000),) -> Any: - return invoke_opsi('summarize_exadata_insight_resource_statistics', exadata_insight_id=exadata_insight_id, resource_type=resource_type, resource_metric=resource_metric, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, exadata_type=exadata_type, cdb_name=cdb_name, host_name=host_name, percentile=percentile, sort_order=sort_order, sort_by=sort_by, limit=limit) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_exadata_insight_resource_usage"], - annotations=TOOL_ANNOTATIONS["summarize_exadata_insight_resource_usage"],) -def summarize_exadata_insight_resource_usage( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - resource_type: str = Field(..., description='Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE'), - resource_metric: str = Field(..., description='Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT'), - analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), - time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), - time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), - exadata_insight_id: list[str] | None = Field(None, description='Optional list of exadata insight resource OCIDs.'), - exadata_type: list[str] | None = Field(None, description='Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC.'), - cdb_name: list[str] | None = Field(None, description='Filter by one or more cdb name.'), - host_name: list[str] | None = Field(None, description='Filter by hostname.'), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='The order in which resource usage summary records are listed Allowed values are: "utilizationPercent", "usage", "capacity", "usageChangePercent"'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - percentile: int | None = Field(None, description='Percentile values of daily usage to be used for computing the aggregate resource usage.'), - compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: - return invoke_opsi('summarize_exadata_insight_resource_usage', compartment_id=compartment_id, resource_type=resource_type, resource_metric=resource_metric, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, exadata_insight_id=exadata_insight_id, exadata_type=exadata_type, cdb_name=cdb_name, host_name=host_name, sort_order=sort_order, sort_by=sort_by, limit=limit, percentile=percentile, compartment_id_in_subtree=compartment_id_in_subtree) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_exadata_insight_resource_usage_aggregated"], - annotations=TOOL_ANNOTATIONS["summarize_exadata_insight_resource_usage_aggregated"],) -def summarize_exadata_insight_resource_usage_aggregated( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - resource_type: str = Field(..., description='Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE'), - resource_metric: str = Field(..., description='Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT'), - analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), - time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), - time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), - exadata_insight_id: list[str] | None = Field(None, description='Optional list of exadata insight resource OCIDs.'), - exadata_type: list[str] | None = Field(None, description='Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC.'), - cdb_name: list[str] | None = Field(None, description='Filter by one or more cdb name.'), - host_name: list[str] | None = Field(None, description='Filter by hostname.'), - percentile: int | None = Field(None, description='Percentile values of daily usage to be used for computing the aggregate resource usage.'), - compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'),) -> Any: - return invoke_opsi('summarize_exadata_insight_resource_usage_aggregated', compartment_id=compartment_id, resource_type=resource_type, resource_metric=resource_metric, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, exadata_insight_id=exadata_insight_id, exadata_type=exadata_type, cdb_name=cdb_name, host_name=host_name, percentile=percentile, compartment_id_in_subtree=compartment_id_in_subtree) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_exadata_insight_resource_utilization_insight"], - annotations=TOOL_ANNOTATIONS["summarize_exadata_insight_resource_utilization_insight"],) -def summarize_exadata_insight_resource_utilization_insight( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - resource_type: str = Field(..., description='Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE'), - resource_metric: str = Field(..., description='Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT'), - analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), - time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), - time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), - exadata_insight_id: list[str] | None = Field(None, description='Optional list of exadata insight resource OCIDs.'), - exadata_type: list[str] | None = Field(None, description='Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC.'), - forecast_start_day: int | None = Field(None, description='Number of days used for utilization forecast analysis.'), - forecast_days: int | None = Field(None, description='Number of days used for utilization forecast analysis.'), - cdb_name: list[str] | None = Field(None, description='Filter by one or more cdb name.'), - host_name: list[str] | None = Field(None, description='Filter by hostname.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'), - high_utilization_threshold: int | None = Field(None, description='Percent value in which a resource metric is considered highly utilized.'), - low_utilization_threshold: int | None = Field(None, description='Percent value in which a resource metric is considered low utilized.'),) -> Any: - return invoke_opsi('summarize_exadata_insight_resource_utilization_insight', compartment_id=compartment_id, resource_type=resource_type, resource_metric=resource_metric, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, exadata_insight_id=exadata_insight_id, exadata_type=exadata_type, forecast_start_day=forecast_start_day, forecast_days=forecast_days, cdb_name=cdb_name, host_name=host_name, limit=limit, compartment_id_in_subtree=compartment_id_in_subtree, high_utilization_threshold=high_utilization_threshold, low_utilization_threshold=low_utilization_threshold) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_exadata_members"], - annotations=TOOL_ANNOTATIONS["summarize_exadata_members"],) -def summarize_exadata_members( - exadata_insight_id: str = Field(..., description='OCID of exadata insight resource.'), - exadata_type: list[str] | None = Field(None, description='Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC.'), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='The order in which exadata member records are listed Allowed values are: "name", "displayName", "entityType"'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000),) -> Any: - return invoke_opsi('summarize_exadata_members', exadata_insight_id=exadata_insight_id, exadata_type=exadata_type, sort_order=sort_order, sort_by=sort_by, limit=limit) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_host_insight_disk_statistics"], - annotations=TOOL_ANNOTATIONS["summarize_host_insight_disk_statistics"],) -def summarize_host_insight_disk_statistics( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - id: str = Field(..., description='Required OCID of the host insight resource.'), - analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), - time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), - time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), - host_id: str | None = Field(None, description='Optional OCID of the host (Compute Id).'), - statistic: str | None = Field(None, description='Choose the type of statistic metric data to be used for forecasting. Allowed values are: "AVG", "MAX"'), - status: list[str] | None = Field(None, description='Resource Status Allowed values are: "DISABLED", "ENABLED", "TERMINATED"'),) -> Any: - return invoke_opsi('summarize_host_insight_disk_statistics', compartment_id=compartment_id, id=id, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, host_id=host_id, statistic=statistic, status=status) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_host_insight_host_recommendation"], - annotations=TOOL_ANNOTATIONS["summarize_host_insight_host_recommendation"],) -def summarize_host_insight_host_recommendation( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - id: str = Field(..., description='Required OCID of the host insight resource.'), - resource_metric: str = Field(..., description='Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK.'), - analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), - time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), - time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), - host_id: str | None = Field(None, description='Optional OCID of the host (Compute Id).'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - statistic: str | None = Field(None, description='Choose the type of statistic metric data to be used for forecasting. Allowed values are: "AVG", "MAX"'),) -> Any: - return invoke_opsi('summarize_host_insight_host_recommendation', compartment_id=compartment_id, id=id, resource_metric=resource_metric, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, host_id=host_id, limit=limit, statistic=statistic) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_host_insight_io_usage_trend"], - annotations=TOOL_ANNOTATIONS["summarize_host_insight_io_usage_trend"],) -def summarize_host_insight_io_usage_trend( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - id: str = Field(..., description='Required OCID of the host insight resource.'), - analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), - time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), - time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), - host_id: str | None = Field(None, description='Optional OCID of the host (Compute Id).'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - statistic: str | None = Field(None, description='Choose the type of statistic metric data to be used for forecasting. Allowed values are: "AVG", "MAX"'), - status: list[str] | None = Field(None, description='Resource Status Allowed values are: "DISABLED", "ENABLED", "TERMINATED"'),) -> Any: - return invoke_opsi('summarize_host_insight_io_usage_trend', compartment_id=compartment_id, id=id, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, host_id=host_id, limit=limit, statistic=statistic, status=status) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_host_insight_network_usage_trend"], - annotations=TOOL_ANNOTATIONS["summarize_host_insight_network_usage_trend"],) -def summarize_host_insight_network_usage_trend( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - id: str = Field(..., description='Required OCID of the host insight resource.'), - analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), - time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), - time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), - host_id: str | None = Field(None, description='Optional OCID of the host (Compute Id).'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - statistic: str | None = Field(None, description='Choose the type of statistic metric data to be used for forecasting. Allowed values are: "AVG", "MAX"'), - status: list[str] | None = Field(None, description='Resource Status Allowed values are: "DISABLED", "ENABLED", "TERMINATED"'),) -> Any: - return invoke_opsi('summarize_host_insight_network_usage_trend', compartment_id=compartment_id, id=id, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, host_id=host_id, limit=limit, statistic=statistic, status=status) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_host_insight_resource_capacity_trend"], - annotations=TOOL_ANNOTATIONS["summarize_host_insight_resource_capacity_trend"],) -def summarize_host_insight_resource_capacity_trend( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - resource_metric: str = Field(..., description='Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK.'), - analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), - time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), - time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), - platform_type: list[str] | None = Field(None, description='Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX"'), - id: list[str] | None = Field(None, description='Optional list of host insight resource OCIDs.'), - exadata_insight_id: list[str] | None = Field(None, description='Optional list of exadata insight resource OCIDs.'), - utilization_level: str | None = Field(None, description='Filter by utilization level by the following buckets: - HIGH_UTILIZATION: DBs with utilization greater or equal than 75. - LOW_UTILIZATION: DBs with utilization lower than 25. - MEDIUM_HIGH_UTILIZATION: DBs with utilization greater or equal than 50 but lower than 75. - MEDIUM_LOW_UTILIZATION: DBs with utilization greater or equal than 25 but lower than 50. Allowed values are: "HIGH_UTILIZATION", "LOW_UTILIZATION", "MEDIUM_HIGH_UTILIZATION", "MEDIUM_LOW_UTILIZATION"'), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='Sorts using end timestamp or capacity Allowed values are: "endTimestamp", "capacity"'), - compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'), - host_type: list[str] | None = Field(None, description='Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST'), - host_id: str | None = Field(None, description='Optional OCID of the host (Compute Id).'), - vmcluster_name: list[str] | None = Field(None, description='Optional list of Exadata Insight VM cluster name.'), - high_utilization_threshold: int | None = Field(None, description='Percent value in which a resource metric is considered highly utilized.'), - low_utilization_threshold: int | None = Field(None, description='Percent value in which a resource metric is considered low utilized.'), - status: list[str] | None = Field(None, description='Resource Status Allowed values are: "DISABLED", "ENABLED", "TERMINATED"'),) -> Any: - return invoke_opsi('summarize_host_insight_resource_capacity_trend', compartment_id=compartment_id, resource_metric=resource_metric, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, platform_type=platform_type, id=id, exadata_insight_id=exadata_insight_id, utilization_level=utilization_level, sort_order=sort_order, sort_by=sort_by, compartment_id_in_subtree=compartment_id_in_subtree, host_type=host_type, host_id=host_id, vmcluster_name=vmcluster_name, high_utilization_threshold=high_utilization_threshold, low_utilization_threshold=low_utilization_threshold, status=status) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_host_insight_resource_forecast_trend"], - annotations=TOOL_ANNOTATIONS["summarize_host_insight_resource_forecast_trend"],) -def summarize_host_insight_resource_forecast_trend( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - resource_metric: str = Field(..., description='Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK.'), - analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), - time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), - time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), - platform_type: list[str] | None = Field(None, description='Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX"'), - id: list[str] | None = Field(None, description='Optional list of host insight resource OCIDs.'), - exadata_insight_id: list[str] | None = Field(None, description='Optional list of exadata insight resource OCIDs.'), - statistic: str | None = Field(None, description='Choose the type of statistic metric data to be used for forecasting. Allowed values are: "AVG", "MAX"'), - forecast_days: int | None = Field(None, description='Number of days used for utilization forecast analysis.'), - forecast_model: str | None = Field(None, description='Choose algorithm model for the forecasting. Possible values: - LINEAR: Uses linear regression algorithm for forecasting. - ML_AUTO: Automatically detects best algorithm to use for forecasting. - ML_NO_AUTO: Automatically detects seasonality of the data for forecasting using linear or seasonal algorithm. Allowed values are: "LINEAR", "ML_AUTO", "ML_NO_AUTO"'), - utilization_level: str | None = Field(None, description='Filter by utilization level by the following buckets: - HIGH_UTILIZATION: DBs with utilization greater or equal than 75. - LOW_UTILIZATION: DBs with utilization lower than 25. - MEDIUM_HIGH_UTILIZATION: DBs with utilization greater or equal than 50 but lower than 75. - MEDIUM_LOW_UTILIZATION: DBs with utilization greater or equal than 25 but lower than 50. Allowed values are: "HIGH_UTILIZATION", "LOW_UTILIZATION", "MEDIUM_HIGH_UTILIZATION", "MEDIUM_LOW_UTILIZATION"'), - confidence: int | None = Field(None, description="This parameter is used to change data's confidence level, this data is ingested by the forecast algorithm. Confidence is the probability of an interval to contain the expected population parameter. Manipulation of this value will lead to different results. If not set, default confidence value is 95%."), - compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'), - host_type: list[str] | None = Field(None, description='Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST'), - host_id: str | None = Field(None, description='Optional OCID of the host (Compute Id).'), - vmcluster_name: list[str] | None = Field(None, description='Optional list of Exadata Insight VM cluster name.'), - high_utilization_threshold: int | None = Field(None, description='Percent value in which a resource metric is considered highly utilized.'), - low_utilization_threshold: int | None = Field(None, description='Percent value in which a resource metric is considered low utilized.'), - mount_point: str | None = Field(None, description='Mount points are specialized NTFS filesystem objects.'), - interface_name: str | None = Field(None, description='Name of the network interface.'), - gpu_id: int | None = Field(None, description='GPU identifier.'), - status: list[str] | None = Field(None, description='Resource Status Allowed values are: "DISABLED", "ENABLED", "TERMINATED"'),) -> Any: - return invoke_opsi('summarize_host_insight_resource_forecast_trend', compartment_id=compartment_id, resource_metric=resource_metric, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, platform_type=platform_type, id=id, exadata_insight_id=exadata_insight_id, statistic=statistic, forecast_days=forecast_days, forecast_model=forecast_model, utilization_level=utilization_level, confidence=confidence, compartment_id_in_subtree=compartment_id_in_subtree, host_type=host_type, host_id=host_id, vmcluster_name=vmcluster_name, high_utilization_threshold=high_utilization_threshold, low_utilization_threshold=low_utilization_threshold, mount_point=mount_point, interface_name=interface_name, gpu_id=gpu_id, status=status) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_host_insight_resource_statistics"], - annotations=TOOL_ANNOTATIONS["summarize_host_insight_resource_statistics"],) -def summarize_host_insight_resource_statistics( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - resource_metric: str = Field(..., description='Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK.'), - analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), - time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), - time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), - platform_type: list[str] | None = Field(None, description='Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX"'), - id: list[str] | None = Field(None, description='Optional list of host insight resource OCIDs.'), - exadata_insight_id: list[str] | None = Field(None, description='Optional list of exadata insight resource OCIDs.'), - percentile: int | None = Field(None, description='Percentile values of daily usage to be used for computing the aggregate resource usage.'), - insight_by: str | None = Field(None, description='Return data of a specific insight Possible values are High Utilization, Low Utilization, Any,High Utilization Forecast, Low Utilization Forecast'), - forecast_days: int | None = Field(None, description='Number of days used for utilization forecast analysis.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='The order in which resource statistics records are listed. Allowed values are: "utilizationPercent", "usage", "usageChangePercent", "hostName", "platformType"'), - compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'), - host_type: list[str] | None = Field(None, description='Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST'), - host_id: str | None = Field(None, description='Optional OCID of the host (Compute Id).'), - vmcluster_name: list[str] | None = Field(None, description='Optional list of Exadata Insight VM cluster name.'), - high_utilization_threshold: int | None = Field(None, description='Percent value in which a resource metric is considered highly utilized.'), - low_utilization_threshold: int | None = Field(None, description='Percent value in which a resource metric is considered low utilized.'), - status: list[str] | None = Field(None, description='Resource Status Allowed values are: "DISABLED", "ENABLED", "TERMINATED"'),) -> Any: - return invoke_opsi('summarize_host_insight_resource_statistics', compartment_id=compartment_id, resource_metric=resource_metric, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, platform_type=platform_type, id=id, exadata_insight_id=exadata_insight_id, percentile=percentile, insight_by=insight_by, forecast_days=forecast_days, limit=limit, sort_order=sort_order, sort_by=sort_by, compartment_id_in_subtree=compartment_id_in_subtree, host_type=host_type, host_id=host_id, vmcluster_name=vmcluster_name, high_utilization_threshold=high_utilization_threshold, low_utilization_threshold=low_utilization_threshold, status=status) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_host_insight_resource_usage"], - annotations=TOOL_ANNOTATIONS["summarize_host_insight_resource_usage"],) -def summarize_host_insight_resource_usage( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - resource_metric: str = Field(..., description='Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK.'), - analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), - time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), - time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), - platform_type: list[str] | None = Field(None, description='Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX"'), - id: list[str] | None = Field(None, description='Optional list of host insight resource OCIDs.'), - exadata_insight_id: list[str] | None = Field(None, description='Optional list of exadata insight resource OCIDs.'), - percentile: int | None = Field(None, description='Percentile values of daily usage to be used for computing the aggregate resource usage.'), - compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'), - host_type: list[str] | None = Field(None, description='Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST'), - host_id: str | None = Field(None, description='Optional OCID of the host (Compute Id).'), - vmcluster_name: list[str] | None = Field(None, description='Optional list of Exadata Insight VM cluster name.'), - status: list[str] | None = Field(None, description='Resource Status Allowed values are: "DISABLED", "ENABLED", "TERMINATED"'),) -> Any: - return invoke_opsi('summarize_host_insight_resource_usage', compartment_id=compartment_id, resource_metric=resource_metric, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, platform_type=platform_type, id=id, exadata_insight_id=exadata_insight_id, percentile=percentile, compartment_id_in_subtree=compartment_id_in_subtree, host_type=host_type, host_id=host_id, vmcluster_name=vmcluster_name, status=status) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_host_insight_resource_usage_trend"], - annotations=TOOL_ANNOTATIONS["summarize_host_insight_resource_usage_trend"],) -def summarize_host_insight_resource_usage_trend( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - resource_metric: str = Field(..., description='Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK.'), - analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), - time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), - time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), - platform_type: list[str] | None = Field(None, description='Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX"'), - id: list[str] | None = Field(None, description='Optional list of host insight resource OCIDs.'), - exadata_insight_id: list[str] | None = Field(None, description='Optional list of exadata insight resource OCIDs.'), - sort_order: str | None = Field(None, description='The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: "ASC", "DESC"'), - sort_by: str | None = Field(None, description='Sorts using end timestamp, usage or capacity Allowed values are: "endTimestamp", "usage", "capacity"'), - compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'), - host_type: list[str] | None = Field(None, description='Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST'), - host_id: str | None = Field(None, description='Optional OCID of the host (Compute Id).'), - vmcluster_name: list[str] | None = Field(None, description='Optional list of Exadata Insight VM cluster name.'), - status: list[str] | None = Field(None, description='Resource Status Allowed values are: "DISABLED", "ENABLED", "TERMINATED"'),) -> Any: - return invoke_opsi('summarize_host_insight_resource_usage_trend', compartment_id=compartment_id, resource_metric=resource_metric, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, platform_type=platform_type, id=id, exadata_insight_id=exadata_insight_id, sort_order=sort_order, sort_by=sort_by, compartment_id_in_subtree=compartment_id_in_subtree, host_type=host_type, host_id=host_id, vmcluster_name=vmcluster_name, status=status) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_host_insight_resource_utilization_insight"], - annotations=TOOL_ANNOTATIONS["summarize_host_insight_resource_utilization_insight"],) -def summarize_host_insight_resource_utilization_insight( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - resource_metric: str = Field(..., description='Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK.'), - analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), - time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), - time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), - platform_type: list[str] | None = Field(None, description='Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: "LINUX", "SOLARIS", "SUNOS", "ZLINUX", "WINDOWS", "AIX", "HP_UX"'), - id: list[str] | None = Field(None, description='Optional list of host insight resource OCIDs.'), - exadata_insight_id: list[str] | None = Field(None, description='Optional list of exadata insight resource OCIDs.'), - forecast_days: int | None = Field(None, description='Number of days used for utilization forecast analysis.'), - compartment_id_in_subtree: bool | None = Field(None, description='A flag to search all resources within a given compartment and all sub-compartments.'), - host_type: list[str] | None = Field(None, description='Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST'), - host_id: str | None = Field(None, description='Optional OCID of the host (Compute Id).'), - vmcluster_name: list[str] | None = Field(None, description='Optional list of Exadata Insight VM cluster name.'), - high_utilization_threshold: int | None = Field(None, description='Percent value in which a resource metric is considered highly utilized.'), - low_utilization_threshold: int | None = Field(None, description='Percent value in which a resource metric is considered low utilized.'), - status: list[str] | None = Field(None, description='Resource Status Allowed values are: "DISABLED", "ENABLED", "TERMINATED"'),) -> Any: - return invoke_opsi('summarize_host_insight_resource_utilization_insight', compartment_id=compartment_id, resource_metric=resource_metric, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, platform_type=platform_type, id=id, exadata_insight_id=exadata_insight_id, forecast_days=forecast_days, compartment_id_in_subtree=compartment_id_in_subtree, host_type=host_type, host_id=host_id, vmcluster_name=vmcluster_name, high_utilization_threshold=high_utilization_threshold, low_utilization_threshold=low_utilization_threshold, status=status) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_host_insight_storage_usage_trend"], - annotations=TOOL_ANNOTATIONS["summarize_host_insight_storage_usage_trend"],) -def summarize_host_insight_storage_usage_trend( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - id: str = Field(..., description='Required OCID of the host insight resource.'), - analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), - time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), - time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), - host_id: str | None = Field(None, description='Optional OCID of the host (Compute Id).'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - statistic: str | None = Field(None, description='Choose the type of statistic metric data to be used for forecasting. Allowed values are: "AVG", "MAX"'), - status: list[str] | None = Field(None, description='Resource Status Allowed values are: "DISABLED", "ENABLED", "TERMINATED"'),) -> Any: - return invoke_opsi('summarize_host_insight_storage_usage_trend', compartment_id=compartment_id, id=id, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, host_id=host_id, limit=limit, statistic=statistic, status=status) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_host_insight_top_processes_usage"], - annotations=TOOL_ANNOTATIONS["summarize_host_insight_top_processes_usage"],) -def summarize_host_insight_top_processes_usage( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - id: str = Field(..., description='Required OCID of the host insight resource.'), - resource_metric: str = Field(..., description='Host top processes resource metric sort options. Supported values are CPU, MEMORY, VIIRTUAL_MEMORY.'), - timestamp: datetime = Field(..., description='Timestamp at which to gather the top processes. This will be top processes over the hour or over the day pending the time range passed into the query.'), - time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), - time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), - host_type: list[str] | None = Field(None, description='Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST'), - host_id: str | None = Field(None, description='Optional OCID of the host (Compute Id).'), - statistic: str | None = Field(None, description='Choose the type of statistic metric data to be used for forecasting. Allowed values are: "AVG", "MAX"'), - status: list[str] | None = Field(None, description='Resource Status Allowed values are: "DISABLED", "ENABLED", "TERMINATED"'),) -> Any: - return invoke_opsi('summarize_host_insight_top_processes_usage', compartment_id=compartment_id, id=id, resource_metric=resource_metric, timestamp=timestamp, time_interval_start=time_interval_start, time_interval_end=time_interval_end, limit=limit, analysis_time_interval=analysis_time_interval, host_type=host_type, host_id=host_id, statistic=statistic, status=status) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_host_insight_top_processes_usage_trend"], - annotations=TOOL_ANNOTATIONS["summarize_host_insight_top_processes_usage_trend"],) -def summarize_host_insight_top_processes_usage_trend( - compartment_id: str = Field(..., description='The OCID of the compartment.'), - id: str = Field(..., description='Required OCID of the host insight resource.'), - resource_metric: str = Field(..., description='Host top processes resource metric sort options. Supported values are CPU, MEMORY, VIIRTUAL_MEMORY.'), - analysis_time_interval: str | None = Field(None, description='Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).'), - time_interval_start: datetime | None = Field(None, description='Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.'), - time_interval_end: datetime | None = Field(None, description='Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.'), - limit: int | None = Field(None, description='For list pagination. Maximum number of results to return in one response page. Example: 50.', ge=1, le=1000), - host_type: list[str] | None = Field(None, description='Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST'), - host_id: str | None = Field(None, description='Optional OCID of the host (Compute Id).'), - process_hash: str | None = Field(None, description='Unique identifier for a process.'), - statistic: str | None = Field(None, description='Choose the type of statistic metric data to be used for forecasting. Allowed values are: "AVG", "MAX"'), - status: list[str] | None = Field(None, description='Resource Status Allowed values are: "DISABLED", "ENABLED", "TERMINATED"'),) -> Any: - return invoke_opsi('summarize_host_insight_top_processes_usage_trend', compartment_id=compartment_id, id=id, resource_metric=resource_metric, analysis_time_interval=analysis_time_interval, time_interval_start=time_interval_start, time_interval_end=time_interval_end, limit=limit, host_type=host_type, host_id=host_id, process_hash=process_hash, statistic=statistic, status=status) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["summarize_operations_insights_warehouse_resource_usage"], - annotations=TOOL_ANNOTATIONS["summarize_operations_insights_warehouse_resource_usage"],) -def summarize_operations_insights_warehouse_resource_usage( - operations_insights_warehouse_id: str = Field(..., description='Unique Ops Insights Warehouse identifier'),) -> Any: - return invoke_opsi('summarize_operations_insights_warehouse_resource_usage', operations_insights_warehouse_id=operations_insights_warehouse_id) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_awr_hub"], - annotations=TOOL_ANNOTATIONS["update_awr_hub"],) -def update_awr_hub( - awr_hub_id: str = Field(..., description='Unique Awr Hub identifier'), - update_awr_hub_details: dict[str, Any] | UpdateAwrHubDetails = Field(..., description='The AWR Hub configuration fields to update.'),) -> Any: - return invoke_opsi('update_awr_hub', awr_hub_id=awr_hub_id, update_awr_hub_details=update_awr_hub_details) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_awr_hub_source"], - annotations=TOOL_ANNOTATIONS["update_awr_hub_source"],) -def update_awr_hub_source( - update_awr_hub_source_details: dict[str, Any] | UpdateAwrHubSourceDetails = Field(..., description='The AWR Hub source configuration fields to update.'), - awr_hub_source_id: str = Field(..., description='Unique Awr Hub Source identifier'),) -> Any: - return invoke_opsi('update_awr_hub_source', update_awr_hub_source_details=update_awr_hub_source_details, awr_hub_source_id=awr_hub_source_id) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_chargeback_plan"], - annotations=TOOL_ANNOTATIONS["update_chargeback_plan"],) -def update_chargeback_plan( - chargebackplan_id: str = Field(..., description='The OCID of the Ops Insights chargeback plan.'), - update_chargeback_plan_details: dict[str, Any] | UpdateChargebackPlanDetails = Field(..., description='The details used to update a chargeback plan.'),) -> Any: - return invoke_opsi('update_chargeback_plan', chargebackplan_id=chargebackplan_id, update_chargeback_plan_details=update_chargeback_plan_details) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_chargeback_plan_report"], - annotations=TOOL_ANNOTATIONS["update_chargeback_plan_report"],) -def update_chargeback_plan_report( - chargeback_plan_report_id: str = Field(..., description='The OCID of the Ops Insights chargeback plan report.'), - id: str = Field(..., description='Unique Ops insight identifier'), - resource_type: str = Field(..., description='Filter by resource type. Supported values are EXADATA_INSIGHT, HOST_INSIGHT, DATABASE_INSIGHT.'), - update_chargeback_plan_report_details: dict[str, Any] | UpdateChargebackPlanReportDetails = Field(..., description='The details used to update a chargeback plan report.'),) -> Any: - return invoke_opsi('update_chargeback_plan_report', chargeback_plan_report_id=chargeback_plan_report_id, id=id, resource_type=resource_type, update_chargeback_plan_report_details=update_chargeback_plan_report_details) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_database_insight"], - annotations=TOOL_ANNOTATIONS["update_database_insight"],) -def update_database_insight( - database_insight_id: str = Field(..., description='Unique database insight identifier'), - update_database_insight_details: dict[str, Any] | UpdateDatabaseInsightDetails = Field(..., description='The database insight configuration fields to update.'),) -> Any: - return invoke_opsi('update_database_insight', database_insight_id=database_insight_id, update_database_insight_details=update_database_insight_details) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_enterprise_manager_bridge"], - annotations=TOOL_ANNOTATIONS["update_enterprise_manager_bridge"],) -def update_enterprise_manager_bridge( - enterprise_manager_bridge_id: str = Field(..., description='Unique Enterprise Manager bridge identifier'), - update_enterprise_manager_bridge_details: dict[str, Any] | UpdateEnterpriseManagerBridgeDetails = Field(..., description='The Enterprise Manager bridge configuration fields to update.'),) -> Any: - return invoke_opsi('update_enterprise_manager_bridge', enterprise_manager_bridge_id=enterprise_manager_bridge_id, update_enterprise_manager_bridge_details=update_enterprise_manager_bridge_details) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_exadata_insight"], - annotations=TOOL_ANNOTATIONS["update_exadata_insight"],) -def update_exadata_insight( - exadata_insight_id: str = Field(..., description='Unique Exadata insight identifier'), - update_exadata_insight_details: dict[str, Any] | UpdateExadataInsightDetails = Field(..., description='The Exadata insight configuration fields to update.'),) -> Any: - return invoke_opsi('update_exadata_insight', exadata_insight_id=exadata_insight_id, update_exadata_insight_details=update_exadata_insight_details) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_host_insight"], - annotations=TOOL_ANNOTATIONS["update_host_insight"],) -def update_host_insight( - host_insight_id: str = Field(..., description='Unique host insight identifier'), - update_host_insight_details: dict[str, Any] | UpdateHostInsightDetails = Field(..., description='The host insight configuration fields to update.'),) -> Any: - return invoke_opsi('update_host_insight', host_insight_id=host_insight_id, update_host_insight_details=update_host_insight_details) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_news_report"], - annotations=TOOL_ANNOTATIONS["update_news_report"],) -def update_news_report( - news_report_id: str = Field(..., description='Unique news report identifier.'), - update_news_report_details: dict[str, Any] | UpdateNewsReportDetails = Field(..., description='The news report configuration fields to update.'),) -> Any: - return invoke_opsi('update_news_report', news_report_id=news_report_id, update_news_report_details=update_news_report_details) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_operations_insights_private_endpoint"], - annotations=TOOL_ANNOTATIONS["update_operations_insights_private_endpoint"],) -def update_operations_insights_private_endpoint( - operations_insights_private_endpoint_id: str = Field(..., description='The OCID of the Operation Insights private endpoint.'), - update_operations_insights_private_endpoint_details: dict[str, Any] | UpdateOperationsInsightsPrivateEndpointDetails = Field(..., description='The details used to update a private endpoint.'),) -> Any: - return invoke_opsi('update_operations_insights_private_endpoint', operations_insights_private_endpoint_id=operations_insights_private_endpoint_id, update_operations_insights_private_endpoint_details=update_operations_insights_private_endpoint_details) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_operations_insights_warehouse"], - annotations=TOOL_ANNOTATIONS["update_operations_insights_warehouse"],) -def update_operations_insights_warehouse( - operations_insights_warehouse_id: str = Field(..., description='Unique Ops Insights Warehouse identifier'), - update_operations_insights_warehouse_details: dict[str, Any] | UpdateOperationsInsightsWarehouseDetails = Field(..., description='The Operations Insights Warehouse configuration fields to update.'),) -> Any: - return invoke_opsi('update_operations_insights_warehouse', operations_insights_warehouse_id=operations_insights_warehouse_id, update_operations_insights_warehouse_details=update_operations_insights_warehouse_details) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_operations_insights_warehouse_user"], - annotations=TOOL_ANNOTATIONS["update_operations_insights_warehouse_user"],) -def update_operations_insights_warehouse_user( - operations_insights_warehouse_user_id: str = Field(..., description='Unique Operations Insights Warehouse User identifier'), - update_operations_insights_warehouse_user_details: dict[str, Any] | UpdateOperationsInsightsWarehouseUserDetails = Field(..., description='The Operations Insights Warehouse User configuration fields to update.'),) -> Any: - return invoke_opsi('update_operations_insights_warehouse_user', operations_insights_warehouse_user_id=operations_insights_warehouse_user_id, update_operations_insights_warehouse_user_details=update_operations_insights_warehouse_user_details) - - -@mcp.tool( - description=TOOL_DESCRIPTIONS["update_opsi_configuration"], - annotations=TOOL_ANNOTATIONS["update_opsi_configuration"],) -def update_opsi_configuration( - opsi_configuration_id: str = Field(..., description='OCID of OPSI configuration resource.'), - update_opsi_configuration_details: dict[str, Any] | UpdateOpsiConfigurationDetails = Field(..., description='The OPSI configuration resource details to be updated.'),) -> Any: - return invoke_opsi('update_opsi_configuration', opsi_configuration_id=opsi_configuration_id, update_opsi_configuration_details=update_opsi_configuration_details) diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/pagination.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/pagination.py deleted file mode 100644 index e4f54302..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/pagination.py +++ /dev/null @@ -1,150 +0,0 @@ -""" -Copyright (c) 2026, Oracle and/or its affiliates. -Licensed under the Universal Permissive License v1.0 as shown at -https://oss.oracle.com/licenses/upl. -""" - -from __future__ import annotations - -from collections.abc import Callable, Mapping, Sequence -import inspect -import re -from typing import Any - - -_EXPECTED_KWARGS_RE = re.compile(r"expected_kwargs\s*=\s*\[(.*?)\]", re.DOTALL) -_KWARG_RE = re.compile(r"['\"]([a-zA-Z0-9_]+)['\"]") - - -def _expected_kwargs_from_source(method: Callable[..., Any]) -> set[str] | None: - try: - source = inspect.getsource(method) - except (OSError, TypeError): - return None - - match = _EXPECTED_KWARGS_RE.search(source) - if match is None: - return None - return set(_KWARG_RE.findall(match.group(1))) - - -def _method_accepts_page(method: Callable[..., Any]) -> bool: - expected_kwargs = _expected_kwargs_from_source(method) - if expected_kwargs is not None: - return "page" in expected_kwargs - - try: - signature = inspect.signature(method) - except (TypeError, ValueError): - return False - return "page" in signature.parameters - - -def _next_page_token(response: Any) -> str | None: - token = getattr(response, "next_page", None) - if token: - return str(token) - - headers = getattr(response, "headers", None) - if not headers: - return None - if hasattr(headers, "get"): - token = headers.get("opc-next-page") or headers.get("Opc-Next-Page") - else: - token = dict(headers).get("opc-next-page") - return str(token) if token else None - - -def _collection_items(data: Any) -> list[Any] | None: - if isinstance(data, list): - return list(data) - if isinstance(data, tuple): - return list(data) - if isinstance(data, Mapping): - return None - - items = getattr(data, "items", None) - if items is None or callable(items): - return None - if isinstance(items, Sequence) and not isinstance(items, str | bytes | bytearray): - return list(items) - return list(items) - - -def _set_collection_items(data: Any, items: list[Any]) -> Any: - if isinstance(data, list): - return items - if isinstance(data, tuple): - return items - setattr(data, "items", items) - return data - - -def _set_response_data(response: Any, data: Any) -> None: - try: - setattr(response, "data", data) - except AttributeError: - pass - - -def _normalized_limit(value: Any) -> int | None: - if isinstance(value, bool) or value is None: - return None - if isinstance(value, int) and value > 0: - return value - return None - - -def _remaining_limit(limit: int | None, collected_count: int) -> int | None: - if limit is None: - return None - return max(limit - collected_count, 0) - - -def call_with_auto_pagination(method: Callable[..., Any], sdk_kwargs: dict[str, Any]) -> Any: - """Call an OCI SDK method and aggregate paginated collection response data.""" - - first_response = method(**sdk_kwargs) - if not _method_accepts_page(method): - return first_response - - first_data = getattr(first_response, "data", None) - if first_data is None: - return first_response - - first_items = _collection_items(first_data) - if first_items is None: - return first_response - - limit = _normalized_limit(sdk_kwargs.get("limit")) - aggregated = first_items[:limit] if limit is not None else first_items - first_data = _set_collection_items(first_data, aggregated) - _set_response_data(first_response, first_data) - - next_token = _next_page_token(first_response) - seen_tokens: set[str] = set() - while next_token and next_token not in seen_tokens: - remaining = _remaining_limit(limit, len(aggregated)) - if remaining == 0: - break - - seen_tokens.add(next_token) - page_kwargs = dict(sdk_kwargs) - page_kwargs["page"] = next_token - if remaining is not None: - page_kwargs["limit"] = remaining - - page_response = method(**page_kwargs) - page_data = getattr(page_response, "data", None) - page_items = _collection_items(page_data) - if page_items is None: - break - - if remaining is not None: - page_items = page_items[:remaining] - aggregated.extend(page_items) - first_data = _set_collection_items(first_data, aggregated) - _set_response_data(first_response, first_data) - next_token = _next_page_token(page_response) - - return first_response diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/response_mapping.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/response_mapping.py deleted file mode 100644 index bc55fa3c..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/v1/response_mapping.py +++ /dev/null @@ -1,37 +0,0 @@ -""" -Copyright (c) 2026, Oracle and/or its affiliates. -Licensed under the Universal Permissive License v1.0 as shown at -https://oss.oracle.com/licenses/upl. -""" - -from __future__ import annotations - -import json -from typing import Any - -import oci - - -def map_response_data(data: Any) -> Any: - """Serialize OCI SDK response data into MCP-facing plain values.""" - - if data is None: - return data - - if isinstance(data, bytes | bytearray): - data = data.decode("utf-8") - - if isinstance(data, str): - try: - return json.loads(data) - except json.JSONDecodeError: - return data - - try: - return oci.util.to_dict(data) - except Exception: - if isinstance(data, list | tuple): - return [map_response_data(item) for item in data] - if isinstance(data, dict): - return {key: map_response_data(value) for key, value in data.items()} - return data diff --git a/src/oci-oracle-db-observability-mcp-server/pyproject.toml b/src/oci-oracle-db-observability-mcp-server/pyproject.toml index 038cd5d1..d7faf015 100644 --- a/src/oci-oracle-db-observability-mcp-server/pyproject.toml +++ b/src/oci-oracle-db-observability-mcp-server/pyproject.toml @@ -1,7 +1,7 @@ [project] -name = "oracle.oracle-db-observability" -version = "1.0.0" -description = "Oracle Database Observability MCP servers" +name = "oracle.oci-db-observability" +version = "0.1.0" +description = "Unified Oracle Database Observability MCP server" readme = "README.md" requires-python = ">=3.13" license = "UPL-1.0" @@ -11,8 +11,10 @@ authors = [ ] dependencies = [ "fastmcp==3.2.4", - "oci==2.174.0", + "oci==2.179.0", "pydantic==2.12.3", + "jsonschema>=4.25.0,<5.0.0", + "oracle-mcp-common>=0.1.0,<0.2.0", ] classifiers = [ @@ -22,16 +24,24 @@ classifiers = [ ] [project.scripts] -"oracle.oci-opsi-mcp-server" = "oracle.oci_oracle_db_observability.v1.oci_opsi_mcp_server.server:main" -"oracle.oci-dbm-mcp-server" = "oracle.oci_oracle_db_observability.v1.oci_dbm_mcp_server.server:main" +"oracle.oci-db-observability-mcp-server" = "oracle.oci_oracle_db_observability.server:main" [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.build.targets.wheel] -packages = ["oracle", "generation"] -exclude = ["/oracle/**/tests/**", "/generation/**/tests/**"] +packages = ["oracle"] +exclude = ["/oracle/**/tests/**"] + +[tool.hatch.build.targets.wheel.force-include] +"oracle/oci_oracle_db_observability/metadata" = "oracle/oci_oracle_db_observability/metadata" + +[tool.uv.sources] +oracle-mcp-common = { workspace = true } + +[tool.uv.workspace] +members = ["../common"] [dependency-groups] dev = [ diff --git a/src/oci-oracle-db-observability-mcp-server/uv.lock b/src/oci-oracle-db-observability-mcp-server/uv.lock index ddd557b0..e6c1ed21 100644 --- a/src/oci-oracle-db-observability-mcp-server/uv.lock +++ b/src/oci-oracle-db-observability-mcp-server/uv.lock @@ -2,6 +2,12 @@ version = 1 revision = 2 requires-python = ">=3.13" +[manifest] +members = [ + "oracle-mcp-common", + "oracle-oci-db-observability", +] + [[package]] name = "aiofile" version = "3.11.1" @@ -245,6 +251,36 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/61/e8/cb8e80d6f9f55b99588625062822bf946cf03ed06315df4bd8397f5632a1/coverage-7.14.0-py3-none-any.whl", hash = "sha256:8de5b61163aee3d05c8a2beab6f47913df7981dad1baf82c414d99158c286ab1", size = 211764, upload_time = "2026-05-10T18:02:29.538Z" }, ] +[[package]] +name = "crc32c" +version = "2.7.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7f/4c/4e40cc26347ac8254d3f25b9f94710b8e8df24ee4dddc1ba41907a88a94d/crc32c-2.7.1.tar.gz", hash = "sha256:f91b144a21eef834d64178e01982bb9179c354b3e9e5f4c803b0e5096384968c", size = 45712, upload_time = "2024-09-24T06:20:17.553Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bf/98/1a6d60d5b3b5edc8382777b64100343cb4aa6a7e172fae4a6cfcb8ebbbd9/crc32c-2.7.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:24949bffb06fc411cc18188d33357923cb935273642164d0bb37a5f375654169", size = 49567, upload_time = "2024-09-24T06:18:44.485Z" }, + { url = "https://files.pythonhosted.org/packages/4f/56/0dd652d4e950e6348bbf16b964b3325e4ad8220470774128fc0b0dd069cb/crc32c-2.7.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2d5d326e7e118d4fa60187770d86b66af2fdfc63ce9eeb265f0d3e7d49bebe0b", size = 37018, upload_time = "2024-09-24T06:18:45.434Z" }, + { url = "https://files.pythonhosted.org/packages/47/02/2bd65fdef10139b6a802d83a7f966b7750fe5ffb1042f7cbe5dbb6403869/crc32c-2.7.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ba110df60c64c8e2d77a9425b982a520ccdb7abe42f06604f4d98a45bb1fff62", size = 35374, upload_time = "2024-09-24T06:18:46.304Z" }, + { url = "https://files.pythonhosted.org/packages/a9/0d/3e797d1ed92d357a6a4c5b41cea15a538b27a8fdf18c7863747eb50b73ad/crc32c-2.7.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c277f9d16a3283e064d54854af0976b72abaa89824955579b2b3f37444f89aae", size = 54641, upload_time = "2024-09-24T06:18:47.207Z" }, + { url = "https://files.pythonhosted.org/packages/a7/d3/4ddeef755caaa75680c559562b6c71f5910fee4c4f3a2eb5ea8b57f0e48c/crc32c-2.7.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:881af0478a01331244e27197356929edbdeaef6a9f81b5c6bacfea18d2139289", size = 52338, upload_time = "2024-09-24T06:18:49.31Z" }, + { url = "https://files.pythonhosted.org/packages/01/cf/32f019be5de9f6e180926a50ee5f08648e686c7d9a59f2c5d0806a77b1c7/crc32c-2.7.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:724d5ff4d29ff093a983ae656be3307093706d850ea2a233bf29fcacc335d945", size = 53447, upload_time = "2024-09-24T06:18:50.296Z" }, + { url = "https://files.pythonhosted.org/packages/b2/8b/92f3f62f3bafe8f7ab4af7bfb7246dc683fd11ec0d6dfb73f91e09079f69/crc32c-2.7.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b2416c4d88696ac322632555c0f81ab35e15f154bc96055da6cf110d642dbc10", size = 54484, upload_time = "2024-09-24T06:18:51.311Z" }, + { url = "https://files.pythonhosted.org/packages/98/b2/113a50f8781f76af5ac65ffdb907e72bddbe974de8e02247f0d58bc48040/crc32c-2.7.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:60254251b88ec9b9795215f0f9ec015a6b5eef8b2c5fba1267c672d83c78fc02", size = 52703, upload_time = "2024-09-24T06:18:52.488Z" }, + { url = "https://files.pythonhosted.org/packages/b4/6c/309229e9acda8cf36a8ff4061d70b54d905f79b7037e16883ce6590a24ab/crc32c-2.7.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:edefc0e46f3c37372183f70338e5bdee42f6789b62fcd36ec53aa933e9dfbeaf", size = 53367, upload_time = "2024-09-24T06:18:53.49Z" }, + { url = "https://files.pythonhosted.org/packages/b5/2a/6c6324d920396e1bd9f3efbe8753da071be0ca52bd22d6c82d446b8d6975/crc32c-2.7.1-cp313-cp313-win32.whl", hash = "sha256:813af8111218970fe2adb833c5e5239f091b9c9e76f03b4dd91aaba86e99b499", size = 38377, upload_time = "2024-09-24T06:18:54.487Z" }, + { url = "https://files.pythonhosted.org/packages/db/a0/f01ccfab538db07ef3f6b4ede46357ff147a81dd4f3c59ca6a34c791a549/crc32c-2.7.1-cp313-cp313-win_amd64.whl", hash = "sha256:7d9ede7be8e4ec1c9e90aaf6884decbeef10e3473e6ddac032706d710cab5888", size = 39803, upload_time = "2024-09-24T06:18:55.419Z" }, + { url = "https://files.pythonhosted.org/packages/1b/80/61dcae7568b33acfde70c9d651c7d891c0c578c39cc049107c1cf61f1367/crc32c-2.7.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:db9ac92294284b22521356715784b91cc9094eee42a5282ab281b872510d1831", size = 49386, upload_time = "2024-09-24T06:18:56.813Z" }, + { url = "https://files.pythonhosted.org/packages/1e/f1/80f17c089799ab2b4c247443bdd101d6ceda30c46d7f193e16b5ca29c5a0/crc32c-2.7.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:8fcd7f2f29a30dc92af64a9ee3d38bde0c82bd20ad939999427aac94bbd87373", size = 36937, upload_time = "2024-09-24T06:18:57.77Z" }, + { url = "https://files.pythonhosted.org/packages/63/42/5fcfc71a3de493d920fd2590843762a2749981ea56b802b380e5df82309d/crc32c-2.7.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5c056ef043393085523e149276a7ce0cb534b872e04f3e20d74d9a94a75c0ad7", size = 35292, upload_time = "2024-09-24T06:18:58.676Z" }, + { url = "https://files.pythonhosted.org/packages/03/de/fef962e898a953558fe1c55141644553e84ef4190693a31244c59a0856c7/crc32c-2.7.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:03a92551a343702629af91f78d205801219692b6909f8fa126b830e332bfb0e0", size = 54223, upload_time = "2024-09-24T06:18:59.675Z" }, + { url = "https://files.pythonhosted.org/packages/21/14/fceca1a6f45c0a1814fe8602a65657b75c27425162445925ba87438cad6b/crc32c-2.7.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fb9424ec1a8ca54763155a703e763bcede82e6569fe94762614bb2de1412d4e1", size = 51588, upload_time = "2024-09-24T06:19:00.938Z" }, + { url = "https://files.pythonhosted.org/packages/13/3b/13d40a7dfbf9ef05c84a0da45544ee72080dca4ce090679e5105689984bd/crc32c-2.7.1-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88732070f6175530db04e0bb36880ac45c33d49f8ac43fa0e50cfb1830049d23", size = 52678, upload_time = "2024-09-24T06:19:02.661Z" }, + { url = "https://files.pythonhosted.org/packages/36/09/65ffc4fb9fa60ff6714eeb50a92284a4525e5943f0b040b572c0c76368c1/crc32c-2.7.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:57a20dfc27995f568f64775eea2bbb58ae269f1a1144561df5e4a4955f79db32", size = 53847, upload_time = "2024-09-24T06:19:03.705Z" }, + { url = "https://files.pythonhosted.org/packages/24/71/938e926085b7288da052db7c84416f3ce25e71baf7ab5b63824c7bcb6f22/crc32c-2.7.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:f7186d098bfd2cff25eac6880b7c7ad80431b90610036131c1c7dd0eab42a332", size = 51860, upload_time = "2024-09-24T06:19:04.726Z" }, + { url = "https://files.pythonhosted.org/packages/3c/d8/4526d5380189d6f2fa27256c204100f30214fe402f47cf6e9fb9a91ab890/crc32c-2.7.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:55a77e29a265418fa34bef15bd0f2c60afae5348988aaf35ed163b4bbf93cf37", size = 52508, upload_time = "2024-09-24T06:19:05.731Z" }, + { url = "https://files.pythonhosted.org/packages/19/30/15f7e35176488b77e5b88751947d321d603fccac273099ace27c7b2d50a6/crc32c-2.7.1-cp313-cp313t-win32.whl", hash = "sha256:ae38a4b6aa361595d81cab441405fbee905c72273e80a1c010fb878ae77ac769", size = 38319, upload_time = "2024-09-24T06:19:07.233Z" }, + { url = "https://files.pythonhosted.org/packages/19/c4/0b3eee04dac195f4730d102d7a9fbea894ae7a32ce075f84336df96a385d/crc32c-2.7.1-cp313-cp313t-win_amd64.whl", hash = "sha256:eee2a43b663feb6c79a6c1c6e5eae339c2b72cfac31ee54ec0209fa736cf7ee5", size = 39781, upload_time = "2024-09-24T06:19:08.182Z" }, +] + [[package]] name = "cryptography" version = "46.0.7" @@ -638,20 +674,21 @@ wheels = [ [[package]] name = "oci" -version = "2.174.0" +version = "2.179.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "certifi" }, { name = "circuitbreaker" }, + { name = "crc32c" }, { name = "cryptography" }, { name = "pyopenssl" }, { name = "python-dateutil" }, { name = "pytz" }, { name = "urllib3" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/22/45/5edb442e8197860b4fc26fd82305abf3df356827862ee11febfd8bf6ebbe/oci-2.174.0.tar.gz", hash = "sha256:f960e413a7f0e59ca5523b57349165f992812bd2738abc34bd9fecbce4722733", size = 17352965, upload_time = "2026-05-12T00:52:26.527Z" } +sdist = { url = "https://files.pythonhosted.org/packages/cf/28/6f09d1fb1f1d7489b978c6dcbab7847941302f9d5ae45b1c2cdca0b42765/oci-2.179.0.tar.gz", hash = "sha256:0b276d22ddc6eabdf4f4c3d8beefbd1f9d9fc80134d739f51ee0c203f6238eba", size = 17459638, upload_time = "2026-06-16T06:20:44.175Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7d/37/37a7d97a32e897b066f367448851471f52fcf8d46a16255a4532b2684821/oci-2.174.0-py3-none-any.whl", hash = "sha256:36c377fb59452b607686d73c1ae1604f2c19e3cabd7d12abe43a4404b10a17c5", size = 35404400, upload_time = "2026-05-12T00:52:17.116Z" }, + { url = "https://files.pythonhosted.org/packages/f1/fe/f5885e4338c2bb9ebcb9d9b2ace058105b46630d34906c2914de12772a62/oci-2.179.0-py3-none-any.whl", hash = "sha256:8d696afb94e7a4f803c4499d172573c36ffa7e685907190d070f353969dba28e", size = 35745640, upload_time = "2026-06-16T06:20:35.828Z" }, ] [[package]] @@ -679,12 +716,41 @@ wheels = [ ] [[package]] -name = "oracle-oracle-db-observability" -version = "1.0.0" +name = "oracle-mcp-common" +version = "0.1.0" +source = { editable = "../common" } +dependencies = [ + { name = "fastmcp" }, + { name = "oci" }, +] + +[package.dev-dependencies] +dev = [ + { name = "pytest" }, + { name = "pytest-cov" }, +] + +[package.metadata] +requires-dist = [ + { name = "fastmcp", specifier = ">=3.2.4,<4.0.0" }, + { name = "oci", specifier = ">=2.179.0" }, +] + +[package.metadata.requires-dev] +dev = [ + { name = "pytest", specifier = ">=9.0.3" }, + { name = "pytest-cov", specifier = ">=7.0.0" }, +] + +[[package]] +name = "oracle-oci-db-observability" +version = "0.1.0" source = { editable = "." } dependencies = [ { name = "fastmcp" }, + { name = "jsonschema" }, { name = "oci" }, + { name = "oracle-mcp-common" }, { name = "pydantic" }, ] @@ -700,7 +766,9 @@ dev = [ [package.metadata] requires-dist = [ { name = "fastmcp", specifier = "==3.2.4" }, - { name = "oci", specifier = "==2.174.0" }, + { name = "jsonschema", specifier = ">=4.25.0,<5.0.0" }, + { name = "oci", specifier = "==2.179.0" }, + { name = "oracle-mcp-common", editable = "../common" }, { name = "pydantic", specifier = "==2.12.3" }, ] From 69223c547afb2b08cbc51676f2e5d59be398bd22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Luis=20Castro=20Garc=C3=ADa?= Date: Wed, 29 Jul 2026 17:10:09 -0600 Subject: [PATCH 04/23] updated uv.lock --- src/oci-oracle-db-observability-mcp-server/uv.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/oci-oracle-db-observability-mcp-server/uv.lock b/src/oci-oracle-db-observability-mcp-server/uv.lock index e6c1ed21..e7a52ed9 100644 --- a/src/oci-oracle-db-observability-mcp-server/uv.lock +++ b/src/oci-oracle-db-observability-mcp-server/uv.lock @@ -717,7 +717,7 @@ wheels = [ [[package]] name = "oracle-mcp-common" -version = "0.1.0" +version = "0.1.2" source = { editable = "../common" } dependencies = [ { name = "fastmcp" }, From 5e95afe64ad5fd3df5f7cf38a8fc9d513a77ec1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Luis=20Castro=20Garc=C3=ADa?= Date: Wed, 29 Jul 2026 18:03:59 -0600 Subject: [PATCH 05/23] fixed coverage MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: José Luis Castro García --- .../README.md | 4 + .../oci_oracle_db_observability/runtime.py | 35 ++-- .../tests/test_mcp_surface.py | 87 ++++++++ .../tests/test_runtime.py | 186 ++++++++++++++++++ .../tests/test_server.py | 32 +++ .../pyproject.toml | 8 +- .../uv.lock | 30 +-- 7 files changed, 337 insertions(+), 45 deletions(-) create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/tests/test_mcp_surface.py create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/tests/test_runtime.py create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/tests/test_server.py diff --git a/src/oci-oracle-db-observability-mcp-server/README.md b/src/oci-oracle-db-observability-mcp-server/README.md index ccd40260..30812ec8 100644 --- a/src/oci-oracle-db-observability-mcp-server/README.md +++ b/src/oci-oracle-db-observability-mcp-server/README.md @@ -36,6 +36,10 @@ uvx oracle.oci-db-observability-mcp-server Register `${ORACLE_MCP_BASE_URL}/auth/callback` in the OCI IAM confidential application. If `IDCS_REQUIRED_SCOPES` is unset, the default scope is `oci_mcp.db_observability.invoke` together with the standard OpenID scopes. +The server uses `oracle-mcp-common` 0.1.2 or later for OCI authentication. For +HTTP token-exchange authentication, set `OCI_MCP_TENANCY_ID_OVERRIDE` when the +caller signer does not expose a tenancy and `list_compartments` is called +without `root_compartment_id`. ## Discovery workflow diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/runtime.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/runtime.py index 82ef0581..9845d37e 100644 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/runtime.py +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/runtime.py @@ -25,34 +25,40 @@ def configure_http_auth(policy: IDCSHttpAuth) -> None: _http_auth = policy -def _client_context() -> tuple[dict[str, Any], Any, str | None]: - if _http_auth is not None: - token = get_access_token() - if token is None: - raise RuntimeError("HTTP requests require an authenticated IDCS access token.") - context = _http_auth.context_for(token.token) - tenancy_id = getattr(context.signer, "tenancy_id", None) or os.getenv("OCI_MCP_TENANCY_ID_OVERRIDE") - return ({**context.config, "additional_user_agent": _USER_AGENT}, context.signer, tenancy_id) +def _get_http_config_and_signer(access_token: Any) -> tuple[dict[str, Any], Any, str | None]: + """Build caller-specific OCI SDK authentication for one HTTP request.""" + if _http_auth is None: + raise RuntimeError("HTTP authentication policy has not been initialized.") + context = _http_auth.context_for(access_token.token if access_token else None) + tenancy_id = getattr(context.signer, "tenancy_id", None) or os.getenv("OCI_MCP_TENANCY_ID_OVERRIDE") + return ({**context.config, "additional_user_agent": _USER_AGENT}, context.signer, tenancy_id) + + +def _get_config_and_signer(access_token: Any | None = None) -> tuple[dict[str, Any], Any, str | None]: + """Resolve HTTP caller credentials or configured stdio OCI credentials.""" + if access_token is not None: + return _get_http_config_and_signer(access_token) context = build_auth_context() return ({**context.config, "additional_user_agent": _USER_AGENT}, context.signer, context.tenancy_id) @lru_cache(maxsize=None) def _stdio_client(service: str, client_name: str) -> Any: - config, signer, _ = _client_context() + config, signer, _ = _get_config_and_signer() return client_class(service, client_name)(config, signer=signer) def _client(service: str, client_name: str) -> Any: - if _http_auth is None: + access_token = get_access_token() + if access_token is None: return _stdio_client(service, client_name) - config, signer, _ = _client_context() + config, signer, _ = _get_config_and_signer(access_token) return client_class(service, client_name)(config, signer=signer) def identity_bootstrap_client() -> tuple[Any, str]: """Create the Identity client and resolve the configured tenancy scope.""" - config, signer, tenancy_id = _client_context() + config, signer, tenancy_id = _get_config_and_signer(get_access_token()) if not tenancy_id: raise ValueError("Configured OCI authentication context is missing tenancy.") client = client_class("identity", "IdentityClient")(config, signer=signer) @@ -98,8 +104,11 @@ def _coerce(value: Any, type_name: str | None, models: Any) -> Any: payload = {key: item for key, item in value.items() if key != "model_type"} swagger = getattr(model, "swagger_types", {}) payload = {key: _coerce(item, swagger.get(key), models) for key, item in payload.items()} + from_dict = getattr(oci.util, "from_dict", None) + if not callable(from_dict): + return model(**payload) try: - return oci.util.from_dict(model, payload) + return from_dict(model, payload) except (TypeError, ValueError): return model(**payload) diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/tests/test_mcp_surface.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/tests/test_mcp_surface.py new file mode 100644 index 00000000..f127bc14 --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/tests/test_mcp_surface.py @@ -0,0 +1,87 @@ +from __future__ import annotations + +import pytest + +from oracle.oci_oracle_db_observability import mcp as mcp_module +from oracle.oci_oracle_db_observability.mcp import mcp + + +@pytest.mark.asyncio +async def test_unified_mcp_exposes_only_discovery_dispatch_and_compartment_tools() -> None: + tools = await mcp.list_tools() + + assert {tool.name for tool in tools} == { + "describe_tool", + "get_compartment", + "invoke_tool", + "list_compartments", + "list_skills", + "list_tools", + } + + +def test_compartment_tools_use_the_shared_bootstrap_client(monkeypatch) -> None: + calls: dict[str, object] = {} + + class Client: + def get_compartment(self, **kwargs): + calls["get"] = kwargs + return object() + + def list_compartments(self, **kwargs): + calls["list"] = kwargs + return object() + + monkeypatch.setattr(mcp_module, "identity_bootstrap_client", lambda: (Client(), "tenancy-ocid")) + monkeypatch.setattr(mcp_module, "serialize_response", lambda _response: [{"id": "compartment-ocid"}]) + + assert mcp_module.get_compartment("compartment-ocid") == [{"id": "compartment-ocid"}] + assert calls["get"] == {"compartment_id": "compartment-ocid"} + assert mcp_module.list_compartments( + root_compartment_id=None, + include_subtree=True, + access_level="ACCESSIBLE", + name="production", + lifecycle_state=None, + limit=10, + ) == { + "items": [{"id": "compartment-ocid"}], + "count": 1, + } + assert calls["list"] == { + "compartment_id": "tenancy-ocid", + "compartment_id_in_subtree": True, + "access_level": "ACCESSIBLE", + "name": "production", + "lifecycle_state": None, + "limit": 10, + } + + +def test_get_compartment_requires_an_ocid() -> None: + with pytest.raises(ValueError, match="compartment_id is required"): + mcp_module.get_compartment("") + + +def test_discovery_and_invocation_tools_delegate_to_registry(monkeypatch) -> None: + skills = mcp_module.list_skills()["skills"] + assert len(skills) == 32 + assert {"name", "description", "toolCount"}.issubset(skills[0]) + + listed = mcp_module.list_tools(["database-insights"], ["database", "insights"], limit=1) + assert listed["count"] >= 1 + assert len(listed["tools"]) == 1 + assert listed["truncated"] is (listed["count"] > 1) + assert "database-insights" in listed["tools"][0]["skills"] + + described = mcp_module.describe_tool("list_database_insights") + assert described["name"] == "list_database_insights" + assert described["inputSchema"]["type"] == "object" + + expected = {"result": "ok"} + monkeypatch.setattr(mcp_module, "invoke_registered_tool", lambda tool, arguments: (tool["name"], arguments, expected)) + assert mcp_module.invoke_tool("list_database_insights", {"compartment_id": "ocid"}) == ( + "list_database_insights", + {"compartment_id": "ocid"}, + expected, + ) diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/tests/test_runtime.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/tests/test_runtime.py new file mode 100644 index 00000000..361c7349 --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/tests/test_runtime.py @@ -0,0 +1,186 @@ +from __future__ import annotations + +from types import SimpleNamespace +from unittest.mock import Mock + +import pytest + +from oracle.oci_oracle_db_observability import __project__, __version__ +from oracle.oci_oracle_db_observability import runtime + + +EXPECTED_USER_AGENT = f"{__project__.split('oracle.', 1)[1].removesuffix('-server')}/{__version__}" + + +class FakeClient: + def __init__(self, config, signer=None): + self.config = config + self.signer = signer + + +@pytest.mark.parametrize("auth_type", ["api_key", "security_token", "instance_principal"]) +def test_stdio_client_uses_common_auth_context_and_user_agent(monkeypatch, auth_type) -> None: + runtime._stdio_client.cache_clear() + signer = object() + context = SimpleNamespace( + auth_type=auth_type, + config={"region": "us-phoenix-1"}, + signer=signer, + tenancy_id="tenant", + ) + build_context = Mock(return_value=context) + monkeypatch.setattr(runtime, "build_auth_context", build_context) + monkeypatch.setattr(runtime, "get_access_token", lambda: None) + monkeypatch.setattr(runtime, "client_class", lambda _service, _client: FakeClient) + + client = runtime._client("opsi", "OperationsInsightsClient") + + build_context.assert_called_once_with() + assert client.signer is signer + assert client.config == {"region": "us-phoenix-1", "additional_user_agent": EXPECTED_USER_AGENT} + assert context.auth_type == auth_type + + +def test_http_clients_are_caller_specific_and_not_cached(monkeypatch) -> None: + runtime._stdio_client.cache_clear() + first_signer, second_signer = object(), object() + contexts = { + "first-token": SimpleNamespace(config={"region": "us-chicago-1"}, signer=first_signer), + "second-token": SimpleNamespace(config={"region": "us-chicago-1"}, signer=second_signer), + } + calls: list[str] = [] + + def context_for(token: str): + calls.append(token) + return contexts[token] + + tokens = iter([SimpleNamespace(token="first-token"), SimpleNamespace(token="second-token")]) + monkeypatch.setattr(runtime, "_http_auth", SimpleNamespace(context_for=context_for)) + monkeypatch.setattr(runtime, "get_access_token", lambda: next(tokens)) + monkeypatch.setattr(runtime, "build_auth_context", lambda: pytest.fail("HTTP must not use stdio credentials")) + monkeypatch.setattr(runtime, "client_class", lambda _service, _client: FakeClient) + + first = runtime._client("opsi", "OperationsInsightsClient") + second = runtime._client("opsi", "OperationsInsightsClient") + + assert calls == ["first-token", "second-token"] + assert first is not second + assert first.signer is first_signer + assert second.signer is second_signer + assert first.config["additional_user_agent"] == EXPECTED_USER_AGENT + assert second.config["additional_user_agent"] == EXPECTED_USER_AGENT + + +def test_http_access_token_requires_initialized_policy(monkeypatch) -> None: + monkeypatch.setattr(runtime, "_http_auth", None) + + with pytest.raises(RuntimeError, match="policy has not been initialized"): + runtime._get_config_and_signer(SimpleNamespace(token="caller-token")) + + +def test_identity_bootstrap_uses_http_context_and_tenancy_override(monkeypatch) -> None: + signer = object() + monkeypatch.setattr( + runtime, + "_http_auth", + SimpleNamespace(context_for=lambda token: SimpleNamespace(config={"region": "us-ashburn-1"}, signer=signer)), + ) + monkeypatch.setattr(runtime, "get_access_token", lambda: SimpleNamespace(token="caller-token")) + monkeypatch.setenv("OCI_MCP_TENANCY_ID_OVERRIDE", "ocid1.tenancy.oc1..example") + monkeypatch.setattr(runtime, "client_class", lambda _service, _client: FakeClient) + + client, tenancy_id = runtime.identity_bootstrap_client() + + assert isinstance(client, FakeClient) + assert client.signer is signer + assert tenancy_id == "ocid1.tenancy.oc1..example" + + +def test_identity_bootstrap_requires_tenancy(monkeypatch) -> None: + monkeypatch.setattr(runtime, "get_access_token", lambda: None) + monkeypatch.setattr( + runtime, + "build_auth_context", + lambda: SimpleNamespace(config={}, signer=object(), tenancy_id=None), + ) + monkeypatch.delenv("OCI_MCP_TENANCY_ID_OVERRIDE", raising=False) + + with pytest.raises(ValueError, match="missing tenancy"): + runtime.identity_bootstrap_client() + + +def test_invoke_validates_before_creating_sdk_client(monkeypatch) -> None: + tool = { + "name": "example_tool", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "get_example", + "inputSchema": { + "type": "object", + "properties": {"compartment_id": {"type": "string"}}, + "required": ["compartment_id"], + "additionalProperties": False, + }, + } + monkeypatch.setattr(runtime, "_client", lambda *_args: pytest.fail("client must not be created")) + + with pytest.raises(ValueError, match="compartment_id"): + runtime.invoke_registered_tool(tool, {}) + + +def test_response_serialization_and_model_helpers(monkeypatch) -> None: + assert runtime.serialize_response(SimpleNamespace(data={"value": "ok"})) == {"value": "ok"} + monkeypatch.setattr(runtime.oci.util, "to_dict", lambda _data: (_ for _ in ()).throw(TypeError("bad data"))) + assert runtime.serialize_response(SimpleNamespace(data="fallback")) == "fallback" + assert runtime._type_name("ExampleDetails") == "ExampleDetails" + assert runtime._type_name(int) == "int" + assert runtime._type_name(object()) is None + + class Details: + swagger_types = {"child": "ChildDetails"} + + def __init__(self, **kwargs): + self.kwargs = kwargs + + class ChildDetails: + swagger_types = {} + + def __init__(self, **kwargs): + self.kwargs = kwargs + + models = SimpleNamespace(Details=Details, ChildDetails=ChildDetails) + monkeypatch.setattr(runtime.oci.util, "from_dict", lambda model, payload: (model, payload), raising=False) + assert runtime._coerce({"child": {"name": "child"}}, "Details", models) == ( + Details, + {"child": (ChildDetails, {"name": "child"})}, + ) + monkeypatch.setattr(runtime.oci.util, "from_dict", lambda *_args: (_ for _ in ()).throw(ValueError("use constructor"))) + assert runtime._coerce({"name": "details"}, "Details", models).kwargs == {"name": "details"} + assert runtime._coerce({"name": "unchanged"}, "Missing", models) == {"name": "unchanged"} + + +def test_registered_tool_coerces_arguments_serializes_and_wraps_oci_errors(monkeypatch) -> None: + tool = { + "name": "example_tool", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "get_example", + "inputSchema": {"type": "object", "properties": {"value": {"type": "string"}}, "additionalProperties": False}, + } + + class Client: + def get_example(self, value: str): + return SimpleNamespace(data={"value": value}) + + monkeypatch.setattr(runtime, "_client", lambda *_args: Client()) + assert runtime.invoke_registered_tool(tool, {"value": "ok"}) == {"value": "ok"} + with pytest.raises(ValueError, match="arguments must be a JSON object"): + runtime.invoke_registered_tool(tool, []) + + class FailingClient: + def get_example(self, value: str): + raise RuntimeError("SDK failure") + + monkeypatch.setattr(runtime, "_client", lambda *_args: FailingClient()) + with pytest.raises(RuntimeError, match="OCI operation example_tool failed: SDK failure"): + runtime.invoke_registered_tool(tool, {"value": "ok"}) diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/tests/test_server.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/tests/test_server.py new file mode 100644 index 00000000..fe6206ae --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/tests/test_server.py @@ -0,0 +1,32 @@ +from __future__ import annotations + +from types import SimpleNamespace + +from oracle.oci_oracle_db_observability import server + + +def test_main_runs_stdio_without_http_environment(monkeypatch) -> None: + calls: list[tuple[tuple, dict]] = [] + monkeypatch.delenv("ORACLE_MCP_HOST", raising=False) + monkeypatch.delenv("ORACLE_MCP_PORT", raising=False) + monkeypatch.setattr(server.mcp, "run", lambda *args, **kwargs: calls.append((args, kwargs))) + + server.main() + + assert calls == [((), {})] + + +def test_main_configures_idcs_http_auth(monkeypatch) -> None: + calls: list[tuple[tuple, dict]] = [] + policy = SimpleNamespace(provider=object()) + monkeypatch.setenv("ORACLE_MCP_HOST", "127.0.0.1") + monkeypatch.setenv("ORACLE_MCP_PORT", "8080") + monkeypatch.setenv("IDCS_REQUIRED_SCOPES", "openid custom.scope") + monkeypatch.setattr(server, "build_idcs_http_auth", lambda scopes: policy) + monkeypatch.setattr(server, "configure_http_auth", lambda actual: calls.append((("policy", actual), {}))) + monkeypatch.setattr(server.mcp, "run", lambda *args, **kwargs: calls.append((args, kwargs))) + + server.main() + + assert server.mcp.auth is policy.provider + assert calls == [(("policy", policy), {}), ((), {"transport": "http", "host": "127.0.0.1", "port": 8080})] diff --git a/src/oci-oracle-db-observability-mcp-server/pyproject.toml b/src/oci-oracle-db-observability-mcp-server/pyproject.toml index d7faf015..64595455 100644 --- a/src/oci-oracle-db-observability-mcp-server/pyproject.toml +++ b/src/oci-oracle-db-observability-mcp-server/pyproject.toml @@ -14,7 +14,7 @@ dependencies = [ "oci==2.179.0", "pydantic==2.12.3", "jsonschema>=4.25.0,<5.0.0", - "oracle-mcp-common>=0.1.0,<0.2.0", + "oracle-mcp-common>=0.1.2,<0.2.0", ] classifiers = [ @@ -37,12 +37,6 @@ exclude = ["/oracle/**/tests/**"] [tool.hatch.build.targets.wheel.force-include] "oracle/oci_oracle_db_observability/metadata" = "oracle/oci_oracle_db_observability/metadata" -[tool.uv.sources] -oracle-mcp-common = { workspace = true } - -[tool.uv.workspace] -members = ["../common"] - [dependency-groups] dev = [ "openapi-pydantic>=0.5.1", diff --git a/src/oci-oracle-db-observability-mcp-server/uv.lock b/src/oci-oracle-db-observability-mcp-server/uv.lock index e7a52ed9..62a30976 100644 --- a/src/oci-oracle-db-observability-mcp-server/uv.lock +++ b/src/oci-oracle-db-observability-mcp-server/uv.lock @@ -2,12 +2,6 @@ version = 1 revision = 2 requires-python = ">=3.13" -[manifest] -members = [ - "oracle-mcp-common", - "oracle-oci-db-observability", -] - [[package]] name = "aiofile" version = "3.11.1" @@ -718,28 +712,14 @@ wheels = [ [[package]] name = "oracle-mcp-common" version = "0.1.2" -source = { editable = "../common" } +source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "fastmcp" }, { name = "oci" }, ] - -[package.dev-dependencies] -dev = [ - { name = "pytest" }, - { name = "pytest-cov" }, -] - -[package.metadata] -requires-dist = [ - { name = "fastmcp", specifier = ">=3.2.4,<4.0.0" }, - { name = "oci", specifier = ">=2.179.0" }, -] - -[package.metadata.requires-dev] -dev = [ - { name = "pytest", specifier = ">=9.0.3" }, - { name = "pytest-cov", specifier = ">=7.0.0" }, +sdist = { url = "https://files.pythonhosted.org/packages/4d/6b/100af78875f52330c2818b6cc785dadfa974d4ce7eb6576e7917abd0e5f4/oracle_mcp_common-0.1.2.tar.gz", hash = "sha256:b01eceb3e17392bfcb65b589ba8f56f1f3fc9205a0498aba2eb79e89227d3ac8", size = 73783, upload_time = "2026-07-29T19:10:55.142Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/70/63/698ff36d71a2c58c4a2112ba2495490d2d978720a8b18894d1b831012864/oracle_mcp_common-0.1.2-py3-none-any.whl", hash = "sha256:7d476b54b962b721aadd1f2439bc117e244a87b4143fddef8f9defbbbfdb19b8", size = 11868, upload_time = "2026-07-29T19:10:53.99Z" }, ] [[package]] @@ -768,7 +748,7 @@ requires-dist = [ { name = "fastmcp", specifier = "==3.2.4" }, { name = "jsonschema", specifier = ">=4.25.0,<5.0.0" }, { name = "oci", specifier = "==2.179.0" }, - { name = "oracle-mcp-common", editable = "../common" }, + { name = "oracle-mcp-common", specifier = ">=0.1.2,<0.2.0" }, { name = "pydantic", specifier = "==2.12.3" }, ] From 665ad1ce67f3d6e6b28804dd777ee09fa9065380 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Luis=20Castro=20Garc=C3=ADa?= Date: Wed, 29 Jul 2026 18:11:21 -0600 Subject: [PATCH 06/23] fixed uv build MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: José Luis Castro García --- src/oci-oracle-db-observability-mcp-server/CHANGELOG.md | 1 + src/oci-oracle-db-observability-mcp-server/pyproject.toml | 3 --- 2 files changed, 1 insertion(+), 3 deletions(-) create mode 100644 src/oci-oracle-db-observability-mcp-server/CHANGELOG.md diff --git a/src/oci-oracle-db-observability-mcp-server/CHANGELOG.md b/src/oci-oracle-db-observability-mcp-server/CHANGELOG.md new file mode 100644 index 00000000..825c32f0 --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/CHANGELOG.md @@ -0,0 +1 @@ +# Changelog diff --git a/src/oci-oracle-db-observability-mcp-server/pyproject.toml b/src/oci-oracle-db-observability-mcp-server/pyproject.toml index 64595455..264c537c 100644 --- a/src/oci-oracle-db-observability-mcp-server/pyproject.toml +++ b/src/oci-oracle-db-observability-mcp-server/pyproject.toml @@ -34,9 +34,6 @@ build-backend = "hatchling.build" packages = ["oracle"] exclude = ["/oracle/**/tests/**"] -[tool.hatch.build.targets.wheel.force-include] -"oracle/oci_oracle_db_observability/metadata" = "oracle/oci_oracle_db_observability/metadata" - [dependency-groups] dev = [ "openapi-pydantic>=0.5.1", From 3adc0f33c41907eaee24c99d30eb1a01a796ab14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Luis=20Castro=20Garc=C3=ADa?= Date: Mon, 3 Aug 2026 11:00:41 -0600 Subject: [PATCH 07/23] updated descriptions for DBO mcp --- .../README.md | 10 ++-- .../oracle/oci_oracle_db_observability/mcp.py | 57 +++++++++---------- 2 files changed, 31 insertions(+), 36 deletions(-) diff --git a/src/oci-oracle-db-observability-mcp-server/README.md b/src/oci-oracle-db-observability-mcp-server/README.md index 30812ec8..1724bd45 100644 --- a/src/oci-oracle-db-observability-mcp-server/README.md +++ b/src/oci-oracle-db-observability-mcp-server/README.md @@ -43,13 +43,13 @@ without `root_compartment_id`. ## Discovery workflow -1. Call `list_compartments` or `get_compartment` to resolve OCI scope. -2. Call `list_skills` and select the smallest relevant skill set. -3. Call `list_tools` for those skills, optionally with separate `keywords`. +1. Call `list_oci_compartments` or `get_oci_compartment` to resolve OCI scope. +2. Call `list_dbo_skills` and select the smallest relevant skill set. +3. Call `list_dbo_tools` for those skills, optionally with separate `keywords`. Every keyword must match a tool name or description; use `['database', 'insights']`, not `['database_insights']`. -4. Call `describe_tool` for the chosen operation. -5. Call `invoke_tool` with arguments matching the returned schema. +4. Call `describe_dbo_tool` for the chosen operation. +5. Call `invoke_dbo_tool` with arguments matching the returned schema. The complete skill and tool catalogs are packaged as JSON under `oracle/oci_oracle_db_observability/metadata`. The tool catalog contains diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/mcp.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/mcp.py index 4c982d75..d91bff8a 100644 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/mcp.py +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/mcp.py @@ -10,12 +10,11 @@ registry = load_registry() mcp = FastMCP( name="oracle.oci-db-observability-mcp-server", - instructions=( - "Use list_compartments or get_compartment to resolve OCI scope. Then call " - "list_skills, select the smallest relevant skills, and call list_tools. Use " - "separate keywords such as ['database', 'insights'], not one underscored SDK " - "name. Call describe_tool before invoke_tool." - ), + instructions="Resolve OCI scope with `list_compartments` or `get_compartment`. Use `list_dbo_skills` to discover " + "the smallest relevant Oracle Database Observability capability for the user's goal, then `list_dbo_tools` " + "to find candidate operations using separate plain-language keywords only. Do not use underscored SDK " + "names as search terms. Before execution, call `describe_dbo_tool` to get the exact contract, then " + "`invoke_dbo_tool` with arguments that match the returned input schema exactly." ) @mcp.tool( @@ -25,7 +24,7 @@ ), annotations={"readOnlyHint": True, "destructiveHint": False, "idempotentHint": True, "openWorldHint": True}, ) -def get_compartment( +def get_oci_compartment( compartment_id: str = Field( ..., description="Required OCI compartment OCID to retrieve, for example ocid1.compartment...", @@ -43,7 +42,7 @@ def get_compartment( ), annotations={"readOnlyHint": True, "destructiveHint": False, "idempotentHint": True, "openWorldHint": True}, ) -def list_compartments( +def list_oci_compartments( root_compartment_id: str | None = Field(None, description="Optional root compartment OCID. Omit it to start at the authenticated tenancy."), include_subtree: bool = Field(True, description="When true, include all descendant compartments below the root."), access_level: str = Field("ACCESSIBLE", description="Visibility filter: ACCESSIBLE returns compartments available to the caller; ANY includes all visible states."), @@ -64,23 +63,22 @@ def list_compartments( return {"items": items, "count": len(items)} @mcp.tool( - description=( - "Start Database Observability discovery here. Returns compact skill summaries, not " - "operation schemas. Select the smallest skills relevant to the user's goal, then call list_tools." - ) + description="Entry point for Oracle Database Observability capability discovery. Returns a compact list of available " + "skills with short summaries only; does not return operation schemas. Use this to resolve the smallest " + "relevant capability for the user’s request, then call `list_dbo_tools` for executable operations." ) -def list_skills() -> dict[str, Any]: +def list_dbo_skills() -> dict[str, Any]: return {"skills": [{"name": s["name"], "description": s["description"], "toolCount": len(s["tools"])} for s in registry.skills]} @mcp.tool( - description=( - "Discover registered OCI operations within selected skills. Use keywords as separate " - "plain-language terms that must all match a tool name or description; for example, " - "use ['database', 'insights'] to find list_database_insights. Do not use an underscored " - "SDK operation name as one keyword. Call describe_tool on a selected result before invoke_tool." - ) + description="Discovery endpoint for Oracle Database Observability operations within selected skills. Use it to find " + "the smallest executable operation that matches the user's goal. Search terms `keywords` must be " + "separate plain-language keywords, and every keyword must match a tool name or description; " + "for example, `['database', 'insights']` may resolve `list_database_insights`. Do not use underscored " + "SDK operation names as search keywords. Resolve a candidate with `describe_dbo_tool` before " + "calling `invoke_dbo_tool`." ) -def list_tools( +def list_dbo_tools( skill_names: list[str] = Field( ..., min_length=1, @@ -109,12 +107,11 @@ def list_tools( } @mcp.tool( - description=( - "Get the complete invocation contract for one tool returned by list_tools. Returns the " - "exact JSON input schema, required arguments, and mutability. Use immediately before invoke_tool." - ) + description="Retrieve the complete invocation contract for one Oracle Database Observability tool selected from " + "`list_dbo_tools`. Returns the exact JSON input schema, required fields, and mutability metadata. " + "Must be called immediately before `invoke_dbo_tool`." ) -def describe_tool( +def describe_dbo_tool( tool_name: str = Field(..., description="Required logical tool name returned by list_tools, for example list_database_insights."), ) -> dict[str, Any]: tool = registry.get_tool(tool_name) @@ -127,13 +124,11 @@ def describe_tool( } @mcp.tool( - description=( - "Execute one registered OCI Database Observability operation. First call describe_tool, " - "then supply an arguments object that conforms exactly to its inputSchema. This is the only " - "tool that invokes a catalog operation." - ) + description="Invoke one registered Oracle Database Observability operation. Must be preceded by `describe_dbo_tool`, " + "and the supplied arguments object must conform exactly to the selected tool's `inputSchema`. This is " + "the sole endpoint that executes catalog operations." ) -def invoke_tool( +def invoke_dbo_tool( tool_name: str = Field(..., description="Required logical tool name returned by list_tools and described with describe_tool."), arguments: dict[str, Any] = Field(default_factory=dict, description="Required JSON object of SDK arguments matching the exact inputSchema from describe_tool."), ) -> Any: From ecba383690d6eaf34f23d6cc925d2f9ff1abc245 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Luis=20Castro=20Garc=C3=ADa?= Date: Wed, 5 Aug 2026 14:22:56 -0600 Subject: [PATCH 08/23] Updated the skills and addressed the PR comments --- .../CHANGELOG.md | 31 + .../README.md | 28 +- .../tests/test_registry.py | 95 - .../__init__.py | 0 .../mcp.py | 28 +- .../metadata/manifest.json | 0 .../metadata/skills.json | 115 +- .../metadata/tools.json | 13036 +++++++++++----- .../registry.py | 58 +- .../runtime.py | 23 +- .../sdk_schema.py | 214 + .../server.py | 0 .../tests/__init__.py | 0 .../tests/test_mcp_surface.py | 46 +- .../tests/test_registry.py | 128 + .../tests/test_runtime.py | 66 +- .../tests/test_server.py | 2 +- .../pyproject.toml | 4 +- .../uv.lock | 2 +- 19 files changed, 9746 insertions(+), 4130 deletions(-) delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/tests/test_registry.py rename src/oci-oracle-db-observability-mcp-server/oracle/{oci_oracle_db_observability => oci_oracle_db_observability_mcp_server}/__init__.py (100%) rename src/oci-oracle-db-observability-mcp-server/oracle/{oci_oracle_db_observability => oci_oracle_db_observability_mcp_server}/mcp.py (81%) rename src/oci-oracle-db-observability-mcp-server/oracle/{oci_oracle_db_observability => oci_oracle_db_observability_mcp_server}/metadata/manifest.json (100%) rename src/oci-oracle-db-observability-mcp-server/oracle/{oci_oracle_db_observability => oci_oracle_db_observability_mcp_server}/metadata/skills.json (81%) rename src/oci-oracle-db-observability-mcp-server/oracle/{oci_oracle_db_observability => oci_oracle_db_observability_mcp_server}/metadata/tools.json (61%) rename src/oci-oracle-db-observability-mcp-server/oracle/{oci_oracle_db_observability => oci_oracle_db_observability_mcp_server}/registry.py (71%) rename src/oci-oracle-db-observability-mcp-server/oracle/{oci_oracle_db_observability => oci_oracle_db_observability_mcp_server}/runtime.py (85%) create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/sdk_schema.py rename src/oci-oracle-db-observability-mcp-server/oracle/{oci_oracle_db_observability => oci_oracle_db_observability_mcp_server}/server.py (100%) rename src/oci-oracle-db-observability-mcp-server/oracle/{oci_oracle_db_observability => oci_oracle_db_observability_mcp_server}/tests/__init__.py (100%) rename src/oci-oracle-db-observability-mcp-server/oracle/{oci_oracle_db_observability => oci_oracle_db_observability_mcp_server}/tests/test_mcp_surface.py (63%) create mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_registry.py rename src/oci-oracle-db-observability-mcp-server/oracle/{oci_oracle_db_observability => oci_oracle_db_observability_mcp_server}/tests/test_runtime.py (76%) rename src/oci-oracle-db-observability-mcp-server/oracle/{oci_oracle_db_observability => oci_oracle_db_observability_mcp_server}/tests/test_server.py (95%) diff --git a/src/oci-oracle-db-observability-mcp-server/CHANGELOG.md b/src/oci-oracle-db-observability-mcp-server/CHANGELOG.md index 825c32f0..8174bc63 100644 --- a/src/oci-oracle-db-observability-mcp-server/CHANGELOG.md +++ b/src/oci-oracle-db-observability-mcp-server/CHANGELOG.md @@ -1 +1,32 @@ # Changelog + +## 0.1.0 - 2026-08-05 + +### Server + +- Unified, read-only Oracle Database Observability MCP server for OCI + Operations Insights (OPSI) and Database Management (DBM). + +### Transports + +- STDIO and HTTP streaming transports. + +### Authentication + +- Configured OCI authentication through `oracle-mcp-common`, including + API-key, security-token, instance-principal, and resource-principal flows. +- OCI IAM/IDCS request-token authentication for HTTP deployments. + +### Tool surface + +- Compartment scope discovery through `get_oci_compartment` and + `list_oci_compartments`. +- Catalog discovery and dispatch through `list_dbo_skills`, `list_dbo_tools`, + `describe_dbo_tool`, and `invoke_dbo_tool`. +- 34 workflow skills and 240 read-only OPSI/DBM SDK-backed catalog operations. + +### Package and entry point + +- Distribution: `oracle.oci-db-observability-mcp-server`. +- Console entry point: `oracle.oci-db-observability-mcp-server`. +- Python package: `oracle.oci_oracle_db_observability_mcp_server`. diff --git a/src/oci-oracle-db-observability-mcp-server/README.md b/src/oci-oracle-db-observability-mcp-server/README.md index 1724bd45..d76cfc2e 100644 --- a/src/oci-oracle-db-observability-mcp-server/README.md +++ b/src/oci-oracle-db-observability-mcp-server/README.md @@ -45,16 +45,32 @@ without `root_compartment_id`. 1. Call `list_oci_compartments` or `get_oci_compartment` to resolve OCI scope. 2. Call `list_dbo_skills` and select the smallest relevant skill set. -3. Call `list_dbo_tools` for those skills, optionally with separate `keywords`. - Every keyword must match a tool name or description; use - `['database', 'insights']`, not `['database_insights']`. +3. Call `list_dbo_tools` for those skills to list candidate operations. 4. Call `describe_dbo_tool` for the chosen operation. 5. Call `invoke_dbo_tool` with arguments matching the returned schema. The complete skill and tool catalogs are packaged as JSON under -`oracle/oci_oracle_db_observability/metadata`. The tool catalog contains -OPSI and DBM SDK bindings; it does not expose the individual operations as MCP -tools. +`oracle/oci_oracle_db_observability_mcp_server/metadata`. Skills organize +read-only workflows such as inventory, diagnostics, performance, and fleet +analysis. Their concise descriptions are MCP discovery metadata, not MCP +resources; the detailed OEM.ai skill files are not packaged or required at +runtime. The tool catalog contains OPSI and DBM SDK bindings; it does not +expose the individual operations as MCP tools. + +## Pagination + +Paginated operations accept an optional `page` argument. Responses contain the +page data and a `nextPage` token when more results are available: + +```json +{ + "data": [], + "nextPage": "" +} +``` + +Pass the returned `nextPage` value as `page` in the next invocation. Stop when +`nextPage` is null. ## Development diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/tests/test_registry.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/tests/test_registry.py deleted file mode 100644 index 3fac90b4..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/tests/test_registry.py +++ /dev/null @@ -1,95 +0,0 @@ -from __future__ import annotations - -import json - -import pytest - -from oracle.oci_oracle_db_observability.registry import RegistryError, _validate, load_registry -from oracle.oci_oracle_db_observability.registry import to_jsonable - - -def test_packaged_registry_has_expected_shape() -> None: - registry = load_registry() - - assert len(registry.skills) == 32 - assert len(registry.tools) == 225 - assert len({tool["name"] for tool in registry.tools}) == 225 - assert all(tool["inputSchema"]["type"] == "object" for tool in registry.tools) - assert all(tool["inputSchema"].get("additionalProperties") is not True for tool in registry.tools) - assert "retrieve_data" not in {tool["name"] for tool in registry.tools} - - -def test_tool_filtering_is_skill_scoped() -> None: - registry = load_registry() - - tools = registry.list_tools({"awr-historical-performance-analysis"}) - - assert tools - assert all("awr-historical-performance-analysis" in tool["skills"] for tool in tools) - - -def test_tool_filtering_requires_all_keywords_in_name_or_description() -> None: - registry = load_registry() - - tools = registry.list_tools( - {"database-insights"}, - ["resource", "usage"], - ) - - assert tools - assert all( - all( - keyword in f"{tool['name'].replace('_', ' ')} {tool['description']}".casefold() - for keyword in ("resource", "usage") - ) - for tool in tools - ) - - -def test_tool_filtering_rejects_blank_keywords() -> None: - with pytest.raises(RegistryError, match="Keywords must be non-empty"): - load_registry().list_tools({"database-insights"}, ["resource", " "]) - - -def test_unknown_skill_and_tool_are_rejected() -> None: - registry = load_registry() - - with pytest.raises(RegistryError, match="Unknown skill"): - registry.get_skill("missing") - with pytest.raises(RegistryError, match="Unknown tool"): - registry.get_tool("missing") - with pytest.raises(RegistryError, match="Unknown skill"): - registry.list_tools({"missing"}) - - -def test_duplicate_names_are_rejected() -> None: - registry = load_registry() - duplicate_skill = dict(registry.skills[0]) - duplicate_tool = dict(registry.tools[0]) - - with pytest.raises(RegistryError, match="Duplicate skill"): - _validate([registry.skills[0], duplicate_skill], []) - with pytest.raises(RegistryError, match="Duplicate tool"): - _validate(list(registry.skills), [duplicate_tool, duplicate_tool]) - - -def test_metadata_files_are_valid_json() -> None: - from importlib.resources import files - - metadata = files("oracle.oci_oracle_db_observability").joinpath("metadata") - for name in ("manifest.json", "skills.json", "tools.json"): - json.loads(metadata.joinpath(name).read_text(encoding="utf-8")) - - -def test_compartment_bootstrap_tool_is_not_registry_backed() -> None: - registry = load_registry() - - assert "list_compartments" not in {tool["name"] for tool in registry.tools} - assert "list_compartments" not in registry.get_skill("oci-common")["tools"] - - -def test_registry_values_can_be_returned_as_json() -> None: - schema = to_jsonable(load_registry().get_tool("summarize_database_insight_resource_usage")["inputSchema"]) - - assert isinstance(schema, dict) - assert json.loads(json.dumps(schema)) == schema diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/__init__.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/__init__.py similarity index 100% rename from src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/__init__.py rename to src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/__init__.py diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/mcp.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/mcp.py similarity index 81% rename from src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/mcp.py rename to src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/mcp.py index d91bff8a..926a0b5e 100644 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/mcp.py +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/mcp.py @@ -1,4 +1,3 @@ -"""The four-tool public MCP surface.""" from __future__ import annotations from typing import Any from fastmcp import FastMCP @@ -12,8 +11,7 @@ name="oracle.oci-db-observability-mcp-server", instructions="Resolve OCI scope with `list_compartments` or `get_compartment`. Use `list_dbo_skills` to discover " "the smallest relevant Oracle Database Observability capability for the user's goal, then `list_dbo_tools` " - "to find candidate operations using separate plain-language keywords only. Do not use underscored SDK " - "names as search terms. Before execution, call `describe_dbo_tool` to get the exact contract, then " + "to list candidate operations. Before execution, call `describe_dbo_tool` to get the exact contract, then " "`invoke_dbo_tool` with arguments that match the returned input schema exactly." ) @@ -49,6 +47,7 @@ def list_oci_compartments( name: str | None = Field(None, description="Optional exact compartment-name filter."), lifecycle_state: str | None = Field(None, description="Optional lifecycle-state filter, such as ACTIVE."), limit: int = Field(50, ge=1, le=1000, description="Maximum number of compartments returned in this response."), + page: str | None = Field(None, description="Optional nextPage token returned by a previous call."), ) -> dict[str, Any]: client, tenancy_id = identity_bootstrap_client() response = client.list_compartments( @@ -58,9 +57,11 @@ def list_oci_compartments( name=name, lifecycle_state=lifecycle_state, limit=limit, + page=page, ) - items = serialize_response(response) - return {"items": items, "count": len(items)} + result = serialize_response(response) + items = result["data"] + return {"items": items, "count": len(items), "nextPage": result["nextPage"]} @mcp.tool( description="Entry point for Oracle Database Observability capability discovery. Returns a compact list of available " @@ -71,12 +72,9 @@ def list_dbo_skills() -> dict[str, Any]: return {"skills": [{"name": s["name"], "description": s["description"], "toolCount": len(s["tools"])} for s in registry.skills]} @mcp.tool( - description="Discovery endpoint for Oracle Database Observability operations within selected skills. Use it to find " - "the smallest executable operation that matches the user's goal. Search terms `keywords` must be " - "separate plain-language keywords, and every keyword must match a tool name or description; " - "for example, `['database', 'insights']` may resolve `list_database_insights`. Do not use underscored " - "SDK operation names as search keywords. Resolve a candidate with `describe_dbo_tool` before " - "calling `invoke_dbo_tool`." + description="Discovery endpoint for Oracle Database Observability operations within selected skills. Use it to list " + "candidate operations, then resolve a candidate with `describe_dbo_tool` before calling " + "`invoke_dbo_tool`." ) def list_dbo_tools( skill_names: list[str] = Field( @@ -84,14 +82,10 @@ def list_dbo_tools( min_length=1, description="Required skill names returned by list_skills. Only tools belonging to these skills are searched.", ), - keywords: list[str] | None = Field( - None, - description="Optional separate search terms. Every term must match the tool name or description, case-insensitively; use ['database', 'insights'], not ['database_insights'].", - ), - limit: int = Field(50, ge=1, le=100, description="Maximum compact tool entries to return; use a narrow keyword search before increasing this."), + limit: int = Field(50, ge=1, le=100, description="Maximum compact tool entries to return."), ) -> dict[str, Any]: selected = set(skill_names) - tools = registry.list_tools(selected, keywords) + tools = registry.list_tools(selected) return { "count": len(tools), "tools": [ diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/metadata/manifest.json b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/metadata/manifest.json similarity index 100% rename from src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/metadata/manifest.json rename to src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/metadata/manifest.json diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/metadata/skills.json b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/metadata/skills.json similarity index 81% rename from src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/metadata/skills.json rename to src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/metadata/skills.json index 33eb5fe4..faed5de5 100644 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/metadata/skills.json +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/metadata/skills.json @@ -10,7 +10,7 @@ }, { "name": "async-work-requests-long-running-operations", - "description": "This skill supports read-only tracking of asynchronous OCI work requests, including status, logs, and errors.", + "description": "Read-only tracking of asynchronous OCI work requests, including status, logs, and errors.", "tools": [ "get_work_request", "list_work_request_errors", @@ -30,7 +30,6 @@ "name": "awr-historical-performance-analysis", "description": "AWR historical summarization across CPU, waits, metrics, parameters, and system statistics.", "tools": [ - "list_awr_db_snapshots", "summarize_awr_db_cpu_usages", "summarize_awr_db_metrics", "summarize_awr_db_parameter_changes", @@ -42,25 +41,6 @@ "summarize_awr_db_wait_events" ] }, - { - "name": "awrhubs", - "description": "This skill supports read-only analysis workflows for AWR Hub data in OCI Operations Insights.", - "tools": [ - "get_awr_database_report", - "get_awr_database_sql_report", - "list_awr_database_snapshots", - "list_awr_databases", - "summarize_awr_database_cpu_usages", - "summarize_awr_database_metrics", - "summarize_awr_database_parameter_changes", - "summarize_awr_database_parameters", - "summarize_awr_database_snapshot_ranges", - "summarize_awr_database_sysstats", - "summarize_awr_database_top_wait_events", - "summarize_awr_database_wait_event_buckets", - "summarize_awr_database_wait_events" - ] - }, { "name": "cloud-asm-core", "description": "Cloud ASM inventory, configuration, users, disk groups, and metrics.", @@ -77,7 +57,7 @@ }, { "name": "cloud-db-runtime-topology", - "description": "This skill supports read-only runtime topology and health checks for Cloud DB clusters, nodes, listeners, DB homes, and connectors.", + "description": "Read-only runtime topology and health checks for Cloud DB clusters, nodes, listeners, DB homes, and connectors.", "tools": [ "get_cloud_cluster", "get_cloud_cluster_instance", @@ -99,7 +79,7 @@ }, { "name": "cloud-exadata-storage", - "description": "This skill supports read-only checks for Cloud Exadata storage connectors, servers, grids, IORM plans, and open alerts.", + "description": "Read-only checks for Cloud Exadata storage connectors, servers, grids, IORM plans, and open alerts.", "tools": [ "check_cloud_exadata_storage_connector", "get_cloud_exadata_storage_connector", @@ -113,7 +93,7 @@ }, { "name": "cloud-inventory-discovery-connectivity", - "description": "This skill supports read-only cloud inventory, discovery, and connector connectivity checks for Cloud DB systems.", + "description": "Read-only cloud inventory, discovery, and connector connectivity checks for Cloud DB systems.", "tools": [ "check_cloud_db_system_connector_connection_status", "get_cloud_db_system", @@ -128,7 +108,7 @@ }, { "name": "credentials-and-authentication-preferred-named", - "description": "This skill supports read-only and test workflows for named credentials and preferred credential mappings in OCI DBM.", + "description": "Read-only and test workflows for named credentials and preferred credential mappings in OCI DBM.", "tools": [ "get_named_credential", "get_preferred_credential", @@ -140,7 +120,7 @@ }, { "name": "database-addm-analysis", - "description": "Use this skill to diagnose likely root causes using ADDM findings, recommendations, categories, and time-series patterns across one database or a fleet.", + "description": "Diagnose likely root causes using ADDM findings, recommendations, categories, and time-series patterns across one database or a fleet.", "tools": [ "list_addm_db_finding_categories", "list_addm_db_findings_time_series", @@ -157,12 +137,9 @@ ] }, { - "name": "database-insights", - "description": "Use this skill for fleet and per-database capacity planning, utilization analysis, and growth forecasting.", + "name": "database-capacity-usage-and-forecasting", + "description": "Use this skill for fleet and per-database capacity planning, utilization analysis, usage trending, and growth forecasting.", "tools": [ - "get_database_insight", - "list_database_configurations", - "list_database_insights", "summarize_database_insight_resource_capacity_trend", "summarize_database_insight_resource_forecast_trend", "summarize_database_insight_resource_statistics", @@ -174,14 +151,14 @@ }, { "name": "database-configuration-and-parameters", - "description": "This skill supports read-only database parameter inventory and configuration baseline checks in OCI DBM.", + "description": "Read-only database parameter inventory and configuration baseline checks in OCI DBM.", "tools": [ "list_database_parameters" ] }, { "name": "database-health-and-core-metrics", - "description": "This skill supports read-only health and core runtime metric checks for managed databases in OCI DBM.", + "description": "Read-only health and core runtime metric checks for managed databases in OCI DBM.", "tools": [ "get_cluster_cache_metric", "get_database_home_metrics", @@ -189,15 +166,38 @@ "summarize_managed_database_availability_metrics" ] }, + { + "name": "database-inventory", + "description": "Discover managed databases and database insight resources, then retrieve details for verified targets.", + "tools": [ + "get_database_insight", + "get_managed_database", + "list_database_configurations", + "list_database_insights", + "list_managed_databases" + ] + }, { "name": "database-performance-analysis", "description": "Use this skill for workload regression and bottleneck diagnosis using AWR evidence, wait analysis, CPU profiles, metric trends, and SQL/plan context.", "tools": [ + "get_awr_database_report", + "get_awr_database_sql_report", "get_awr_db_report", - "list_awr_db_snapshots", + "list_awr_database_snapshots", + "list_awr_databases", "list_sql_plans", "list_sql_searches", "list_sql_texts", + "summarize_awr_database_cpu_usages", + "summarize_awr_database_metrics", + "summarize_awr_database_parameter_changes", + "summarize_awr_database_parameters", + "summarize_awr_database_snapshot_ranges", + "summarize_awr_database_sysstats", + "summarize_awr_database_top_wait_events", + "summarize_awr_database_wait_event_buckets", + "summarize_awr_database_wait_events", "summarize_sql_insights", "summarize_sql_plan_insights", "summarize_sql_response_time_distributions", @@ -208,16 +208,18 @@ }, { "name": "exadata-fleet-health-analytics", - "description": "This skill supports read-only Exadata infrastructure fleet health analytics in OCI DBM.", + "description": "Read-only Exadata infrastructure fleet health analytics in OCI DBM.", "tools": [ "get_exadata_infrastructure_fleet_health_metrics" ] }, { - "name": "exadata-insights", - "description": "This skill supports read-only Exadata usage, capacity, forecast, utilization, and member-inventory analysis in OCI Operations Insights.", + "name": "exadatainsights", + "description": "Read-only Exadata usage, capacity, forecast, utilization, and member-inventory analysis in OCI Operations Insights.", "tools": [ + "get_exadata_insight", "list_exadata_configurations", + "list_exadata_insights", "summarize_exadata_insight_resource_capacity_trend", "summarize_exadata_insight_resource_capacity_trend_aggregated", "summarize_exadata_insight_resource_forecast_trend", @@ -316,10 +318,12 @@ ] }, { - "name": "host-insights", - "description": "This skill supports read-only host capacity, usage, forecast, and recommendation analysis in OCI Operations Insights.", + "name": "hostinsights", + "description": "Read-only host capacity, usage, forecast, and recommendation analysis in OCI Operations Insights.", "tools": [ + "get_host_insight", "list_host_configurations", + "list_host_insights", "list_hosted_entities", "summarize_host_insight_disk_statistics", "summarize_host_insight_host_recommendation", @@ -371,28 +375,49 @@ ] }, { - "name": "managed-database-inventory-discover-and-inspect", - "description": "Managed database inventory lookup and detail inspection for OCI Database Management.", + "name": "news-reports-and-advisories", + "description": "Tools related to news-reports-and-advisories functionality.", "tools": [ - "get_managed_database", - "list_managed_databases" + "get_news_report", + "list_news_reports" ] }, { "name": "oci-common", - "description": "This skill supports read-only discovery workflows for OCI Identity (20160918) tenancy, compartment, and region topology.", + "description": "Read-only discovery workflows for OCI Identity (20160918) tenancy, compartment, and region topology.", "tools": [ "list_region_subscriptions", "list_regions" ] }, + { + "name": "operations-insights-warehouse-admin", + "description": "Tools related to operations-insights-warehouse-admin functionality.", + "tools": [ + "get_operations_insights_warehouse", + "get_operations_insights_warehouse_user", + "list_operations_insights_warehouse_users", + "list_operations_insights_warehouses", + "summarize_operations_insights_warehouse_resource_usage" + ] + }, + { + "name": "opsi-configurations-and-datastores", + "description": "Manage and inspect Operations Insights configuration resources and datastores, including datastore encryption-key history, for administrative lifecycle governance.", + "tools": [ + "get_opsi_configuration", + "list_opsi_configurations" + ] + }, { "name": "private-endpoints-and-connectivity", "description": "Database Management private endpoint discovery, inspection, and associated database mapping.", "tools": [ "get_db_management_private_endpoint", + "get_operations_insights_private_endpoint", "list_associated_databases", - "list_db_management_private_endpoints" + "list_db_management_private_endpoints", + "list_operations_insights_private_endpoints" ] }, { diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/metadata/tools.json b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/metadata/tools.json similarity index 61% rename from src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/metadata/tools.json rename to src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/metadata/tools.json index f8418c92..47864e42 100644 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/metadata/tools.json +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/metadata/tools.json @@ -12,38 +12,35 @@ "inputSchema": { "type": "object", "properties": { - "managed_database_group_id": { - "type": "string", - "description": "The [OCID](/Content/General/Concepts/identifiers.htm) of the Managed Database Group." - }, "add_managed_database_to_managed_database_group_details": { "type": "object", - "description": "The Managed Database details required to add it to a Managed Database Group.", "properties": { - "managedDatabaseId": { - "type": "string", - "description": "The [OCID](/Content/General/Concepts/identifiers.htm) of the Managed Database.\n", - "minLength": 1, - "maxLength": 255 + "managed_database_id": { + "type": "string" } - } + }, + "additionalProperties": false, + "required": [ + "managed_database_id" + ] + }, + "managed_database_group_id": { + "type": "string" }, "opc_request_id": { - "type": "string", - "description": "The client request ID for tracing." + "type": "string" }, "opc_retry_token": { - "type": "string", - "description": "A token that uniquely identifies a request so it can be retried in case of a timeout or\nserver error without risk of executing that same action again. Retry tokens expire after 24\nhours, but can be invalidated before then due to conflicting operations. For example, if a resource\nhas been deleted and purged from the system, then a retry of the original creation request\nmight be rejected.\n" + "type": "string" } }, "additionalProperties": false, "required": [ - "managed_database_group_id", - "add_managed_database_to_managed_database_group_details" + "add_managed_database_to_managed_database_group_details", + "managed_database_group_id" ] }, - "mutable": true + "mutable": false }, { "name": "addm_tasks", @@ -55,44 +52,66 @@ "advanced-diagnostics-addm-session-control-bulk-retrieve" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "managed_database_id": { - "description": "The OCID of the Managed Database.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database." }, "opc_named_credential_id": { - "description": "The OCID of the Named Credential.", - "type": "string" + "type": "string", + "description": "The OCID of the Named Credential." }, "sort_by": { - "description": "The option to sort the list of ADDM tasks.\n\nAllowed values are: \"TASK_NAME\", \"TASK_ID\", \"DESCRIPTION\", \"DB_USER\", \"STATUS\", \"TIME_CREATED\", \"BEGIN_TIME\", \"END_TIME\"", - "type": "string" + "type": "string", + "enum": [ + "TASK_NAME", + "TASK_ID", + "DESCRIPTION", + "DB_USER", + "STATUS", + "TIME_CREATED", + "BEGIN_TIME", + "END_TIME" + ], + "description": "The option to sort the list of ADDM tasks.\n\nAllowed values are: \"TASK_NAME\", \"TASK_ID\", \"DESCRIPTION\", \"DB_USER\", \"STATUS\", \"TIME_CREATED\", \"BEGIN_TIME\", \"END_TIME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" }, "time_end": { - "description": "The end of the time range to search for ADDM tasks as defined by date-time RFC3339 format.", + "type": "string", "format": "date-time", - "type": "string" + "description": "The end of the time range to search for ADDM tasks as defined by date-time RFC3339 format." }, "time_start": { - "description": "The beginning of the time range to search for ADDM tasks as defined by date-time RFC3339 format.", + "type": "string", "format": "date-time", + "description": "The beginning of the time range to search for ADDM tasks as defined by date-time RFC3339 format." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "managed_database_id", "time_start", "time_end" - ], - "type": "object" + ] }, "mutable": false }, @@ -106,18 +125,27 @@ "cloud-inventory-discovery-connectivity" ], "inputSchema": { + "type": "object", "properties": { "cloud_db_system_connector_id": { - "description": "The OCID of the cloud connector.", + "type": "string" + }, + "if_match": { + "type": "string" + }, + "opc_request_id": { + "type": "string" + }, + "opc_retry_token": { "type": "string" } }, + "additionalProperties": false, "required": [ "cloud_db_system_connector_id" - ], - "type": "object" + ] }, - "mutable": true + "mutable": false }, { "name": "check_cloud_exadata_storage_connector", @@ -129,18 +157,27 @@ "cloud-exadata-storage" ], "inputSchema": { + "type": "object", "properties": { "cloud_exadata_storage_connector_id": { - "description": "The OCID of the connector to the Exadata storage server.", + "type": "string" + }, + "if_match": { + "type": "string" + }, + "opc_request_id": { + "type": "string" + }, + "opc_retry_token": { "type": "string" } }, + "additionalProperties": false, "required": [ "cloud_exadata_storage_connector_id" - ], - "type": "object" + ] }, - "mutable": true + "mutable": false }, { "name": "check_external_db_system_connector_connection_status", @@ -152,18 +189,27 @@ "external-inventory-discovery-connectivity" ], "inputSchema": { + "type": "object", "properties": { "external_db_system_connector_id": { - "description": "The OCID of the external connector.", + "type": "string" + }, + "if_match": { + "type": "string" + }, + "opc_request_id": { + "type": "string" + }, + "opc_retry_token": { "type": "string" } }, + "additionalProperties": false, "required": [ "external_db_system_connector_id" - ], - "type": "object" + ] }, - "mutable": true + "mutable": false }, { "name": "check_external_exadata_storage_connector", @@ -175,18 +221,27 @@ "external-exadata-storage" ], "inputSchema": { + "type": "object", "properties": { "external_exadata_storage_connector_id": { - "description": "The OCID of the connector to the Exadata storage server.", + "type": "string" + }, + "if_match": { + "type": "string" + }, + "opc_request_id": { + "type": "string" + }, + "opc_retry_token": { "type": "string" } }, + "additionalProperties": false, "required": [ "external_exadata_storage_connector_id" - ], - "type": "object" + ] }, - "mutable": true + "mutable": false }, { "name": "create_managed_database_group", @@ -198,49 +253,53 @@ "managed-database-groups-organize-and-target-sets-of-databases" ], "inputSchema": { + "type": "object", "properties": { "create_managed_database_group_details": { - "additionalProperties": false, - "description": "The details required to create a Managed Database Group.", + "type": "object", "properties": { - "compartmentId": { - "description": "**[Required]** Gets the compartment_id of this CreateManagedDatabaseGroupDetails. The OCID of the compartment in which the Managed Database Group resides.", - "title": "Compartmentid", + "name": { "type": "string" }, "description": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Gets the description of this CreateManagedDatabaseGroupDetails.\nThe information specified by the user about the Managed Database Group.", - "title": "Description" + "type": "string" }, - "name": { - "description": "**[Required]** Gets the name of this CreateManagedDatabaseGroupDetails.\nThe name of the Managed Database Group. Valid characters are uppercase or\nlowercase letters, numbers, and \"_\". The name of the Managed Database Group\ncannot be modified. It must be unique in the compartment and must begin with\nan alphabetic character.", - "title": "Name", + "compartment_id": { "type": "string" + }, + "freeform_tags": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "defined_tags": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": {} + } } }, + "additionalProperties": false, "required": [ "name", - "compartmentId" - ], - "title": "CreateManagedDatabaseGroupDetails", - "type": "object" + "compartment_id" + ] + }, + "opc_request_id": { + "type": "string" + }, + "opc_retry_token": { + "type": "string" } }, + "additionalProperties": false, "required": [ "create_managed_database_group_details" - ], - "type": "object" + ] }, - "mutable": true + "mutable": false }, { "name": "get_awr_database_report", @@ -249,54 +308,66 @@ "client": "OperationsInsightsClient", "operation": "get_awr_database_report", "skills": [ - "awrhubs" + "database-performance-analysis" ], "inputSchema": { + "type": "object", "properties": { "awr_hub_id": { - "description": "Unique Awr Hub identifier", - "type": "string" + "type": "string", + "description": "Unique Awr Hub identifier" }, "awr_source_database_identifier": { - "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.", - "type": "string" + "type": "string", + "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results." }, "begin_snapshot_identifier_greater_than_or_equal_to": { - "description": "The optional greater than or equal to filter on the snapshot ID.", - "type": "integer" + "type": "integer", + "description": "The optional greater than or equal to filter on the snapshot ID." }, "end_snapshot_identifier_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the snapshot Identifier.", - "type": "integer" + "type": "integer", + "description": "The optional less than or equal to query parameter to filter the snapshot Identifier." }, "instance_number": { - "description": "The optional single value query parameter to filter by database instance number.", - "type": "string" + "type": "string", + "description": "The optional single value query parameter to filter by database instance number." }, "report_format": { - "description": "The format of the AWR report. Allowed values are: \"HTML\", \"TEXT\"", - "type": "string" + "type": "string", + "enum": [ + "HTML", + "TEXT" + ], + "description": "The format of the AWR report. Allowed values are: \"HTML\", \"TEXT\"" }, "report_type": { - "description": "The query parameter to filter the AWR report types. Allowed values are: \"AWR\", \"ASH\"", - "type": "string" + "type": "string", + "enum": [ + "AWR", + "ASH" + ], + "description": "The query parameter to filter the AWR report types. Allowed values are: \"AWR\", \"ASH\"" }, "time_greater_than_or_equal_to": { - "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "type": "string", "format": "date-time", - "type": "string" + "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" }, "time_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "type": "string", "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "awr_hub_id", "awr_source_database_identifier" - ], - "type": "object" + ] }, "mutable": false }, @@ -307,55 +378,63 @@ "client": "OperationsInsightsClient", "operation": "get_awr_database_sql_report", "skills": [ - "awrhubs" + "database-performance-analysis" ], "inputSchema": { + "type": "object", "properties": { "awr_hub_id": { - "description": "Unique Awr Hub identifier", - "type": "string" + "type": "string", + "description": "Unique Awr Hub identifier" }, "awr_source_database_identifier": { - "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.", - "type": "string" + "type": "string", + "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results." }, "begin_snapshot_identifier_greater_than_or_equal_to": { - "description": "The optional greater than or equal to filter on the snapshot ID.", - "type": "integer" + "type": "integer", + "description": "The optional greater than or equal to filter on the snapshot ID." }, "end_snapshot_identifier_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the snapshot Identifier.", - "type": "integer" + "type": "integer", + "description": "The optional less than or equal to query parameter to filter the snapshot Identifier." }, "instance_number": { - "description": "The optional single value query parameter to filter by database instance number.", - "type": "string" + "type": "string", + "description": "The optional single value query parameter to filter by database instance number." }, "report_format": { - "description": "The format of the AWR report. Allowed values are: \"HTML\", \"TEXT\"", - "type": "string" + "type": "string", + "enum": [ + "HTML", + "TEXT" + ], + "description": "The format of the AWR report. Allowed values are: \"HTML\", \"TEXT\"" }, "sql_id": { - "description": "Oracle-generated SQL ID for a SQL statement in the AWR data.", - "type": "string" + "type": "string", + "description": "Oracle-generated SQL ID for a SQL statement in the AWR data." }, "time_greater_than_or_equal_to": { - "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "type": "string", "format": "date-time", - "type": "string" + "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" }, "time_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "type": "string", "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "awr_hub_id", "awr_source_database_identifier", "sql_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -369,60 +448,77 @@ "database-performance-analysis" ], "inputSchema": { + "type": "object", "properties": { "awr_db_id": { - "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.", - "type": "string" + "type": "string", + "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results." }, "begin_sn_id_greater_than_or_equal_to": { - "description": "The optional greater than or equal to filter on the snapshot ID.", - "type": "integer" + "type": "integer", + "description": "The optional greater than or equal to filter on the snapshot ID." }, "container_id": { - "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.", - "type": "integer" + "type": "integer", + "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results." }, "end_sn_id_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the snapshot ID.", - "type": "integer" + "type": "integer", + "description": "The optional less than or equal to query parameter to filter the snapshot ID." }, "inst_nums": { - "description": "The optional multiple value query parameter to filter the database instance numbers.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "integer" + }, + "description": "The optional multiple value query parameter to filter the database instance numbers." }, "managed_database_id": { - "description": "The OCID of the Managed Database.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database." }, "opc_named_credential_id": { - "description": "The OCID of the Named Credential.", - "type": "string" + "type": "string", + "description": "The OCID of the Named Credential." }, "report_format": { - "description": "The format of the AWR report.\n\nAllowed values are: \"HTML\", \"TEXT\"", - "type": "string" + "type": "string", + "enum": [ + "HTML", + "TEXT" + ], + "description": "The format of the AWR report.\n\nAllowed values are: \"HTML\", \"TEXT\"" }, "report_type": { - "description": "The query parameter to filter the AWR report types.\n\nAllowed values are: \"AWR\", \"ASH\"", - "type": "string" + "type": "string", + "enum": [ + "AWR", + "ASH" + ], + "description": "The query parameter to filter the AWR report types.\n\nAllowed values are: \"AWR\", \"ASH\"" }, "time_greater_than_or_equal_to": { - "description": "The optional greater than or equal to query parameter to filter the timestamp.", + "type": "string", "format": "date-time", - "type": "string" + "description": "The optional greater than or equal to query parameter to filter the timestamp." }, "time_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the timestamp.", + "type": "string", "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp." + }, + "opc_request_id": { + "type": "string" + }, + "opc_retry_token": { "type": "string" } }, + "additionalProperties": false, "required": [ "managed_database_id", "awr_db_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -436,16 +532,20 @@ "cloud-asm-core" ], "inputSchema": { + "type": "object", "properties": { "cloud_asm_id": { - "description": "The OCID of the cloud ASM.", + "type": "string", + "description": "The OCID of the cloud ASM." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "cloud_asm_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -459,20 +559,24 @@ "cloud-asm-core" ], "inputSchema": { + "type": "object", "properties": { "cloud_asm_id": { - "description": "The OCID of the cloud ASM.", - "type": "string" + "type": "string", + "description": "The OCID of the cloud ASM." }, "opc_named_credential_id": { - "description": "The OCID of the Named Credential.", + "type": "string", + "description": "The OCID of the Named Credential." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "cloud_asm_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -486,16 +590,20 @@ "cloud-asm-core" ], "inputSchema": { + "type": "object", "properties": { "cloud_asm_instance_id": { - "description": "The OCID of the cloud ASM instance.", + "type": "string", + "description": "The OCID of the cloud ASM instance." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "cloud_asm_instance_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -509,16 +617,20 @@ "cloud-db-runtime-topology" ], "inputSchema": { + "type": "object", "properties": { "cloud_cluster_id": { - "description": "The OCID of the cloud cluster.", + "type": "string", + "description": "The OCID of the cloud cluster." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "cloud_cluster_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -532,16 +644,20 @@ "cloud-db-runtime-topology" ], "inputSchema": { + "type": "object", "properties": { "cloud_cluster_instance_id": { - "description": "The OCID of the cloud cluster instance.", + "type": "string", + "description": "The OCID of the cloud cluster instance." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "cloud_cluster_instance_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -555,16 +671,20 @@ "cloud-db-runtime-topology" ], "inputSchema": { + "type": "object", "properties": { "cloud_db_home_id": { - "description": "The OCID of the cloud database home.", + "type": "string", + "description": "The OCID of the cloud database home." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "cloud_db_home_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -578,16 +698,20 @@ "cloud-db-runtime-topology" ], "inputSchema": { + "type": "object", "properties": { "cloud_db_node_id": { - "description": "The OCID of the cloud database node.", + "type": "string", + "description": "The OCID of the cloud database node." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "cloud_db_node_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -601,16 +725,20 @@ "cloud-inventory-discovery-connectivity" ], "inputSchema": { + "type": "object", "properties": { "cloud_db_system_id": { - "description": "The OCID of the cloud DB system.", + "type": "string", + "description": "The OCID of the cloud DB system." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "cloud_db_system_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -624,16 +752,20 @@ "cloud-db-runtime-topology" ], "inputSchema": { + "type": "object", "properties": { "cloud_db_system_connector_id": { - "description": "The OCID of the cloud connector.", + "type": "string", + "description": "The OCID of the cloud connector." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "cloud_db_system_connector_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -647,16 +779,20 @@ "cloud-inventory-discovery-connectivity" ], "inputSchema": { + "type": "object", "properties": { "cloud_db_system_discovery_id": { - "description": "The OCID of the cloud DB system discovery.", + "type": "string", + "description": "The OCID of the cloud DB system discovery." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "cloud_db_system_discovery_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -670,16 +806,20 @@ "cloud-inventory-discovery-connectivity" ], "inputSchema": { + "type": "object", "properties": { "cloud_exadata_infrastructure_id": { - "description": "The OCID of the Exadata infrastructure.", + "type": "string", + "description": "The OCID of the Exadata infrastructure." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "cloud_exadata_infrastructure_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -693,16 +833,20 @@ "cloud-exadata-storage" ], "inputSchema": { + "type": "object", "properties": { "cloud_exadata_storage_connector_id": { - "description": "The OCID of the connector to the Exadata storage server.", + "type": "string", + "description": "The OCID of the connector to the Exadata storage server." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "cloud_exadata_storage_connector_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -716,16 +860,20 @@ "cloud-exadata-storage" ], "inputSchema": { + "type": "object", "properties": { "cloud_exadata_storage_grid_id": { - "description": "The OCID of the Exadata storage grid.", + "type": "string", + "description": "The OCID of the Exadata storage grid." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "cloud_exadata_storage_grid_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -739,16 +887,20 @@ "cloud-exadata-storage" ], "inputSchema": { + "type": "object", "properties": { "cloud_exadata_storage_server_id": { - "description": "The OCID of the Exadata storage server.", + "type": "string", + "description": "The OCID of the Exadata storage server." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "cloud_exadata_storage_server_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -762,16 +914,20 @@ "cloud-exadata-storage" ], "inputSchema": { + "type": "object", "properties": { "cloud_exadata_storage_server_id": { - "description": "The OCID of the Exadata storage server.", + "type": "string", + "description": "The OCID of the Exadata storage server." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "cloud_exadata_storage_server_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -785,16 +941,20 @@ "cloud-db-runtime-topology" ], "inputSchema": { + "type": "object", "properties": { "cloud_listener_id": { - "description": "The OCID of the cloud listener.", + "type": "string", + "description": "The OCID of the cloud listener." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "cloud_listener_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -808,16 +968,20 @@ "cloud-exadata-storage" ], "inputSchema": { + "type": "object", "properties": { "cloud_exadata_storage_server_id": { - "description": "The OCID of the Exadata storage server.", + "type": "string", + "description": "The OCID of the Exadata storage server." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "cloud_exadata_storage_server_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -831,26 +995,30 @@ "database-health-and-core-metrics" ], "inputSchema": { + "type": "object", "properties": { "end_time": { - "description": "The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\".", - "type": "string" + "type": "string", + "description": "The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." }, "managed_database_id": { - "description": "The OCID of the Managed Database.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database." }, "start_time": { - "description": "The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\".", + "type": "string", + "description": "The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "managed_database_id", "start_time", "end_time" - ], - "type": "object" + ] }, "mutable": false }, @@ -864,50 +1032,93 @@ "high-availability-data-guard-and-backups-fleet-single-db" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "database_hosted_in": { - "description": "Indicates whether the database is a cloud database or an external database.\n\nAllowed values are: \"CLOUD\", \"EXTERNAL\"", - "type": "string" + "type": "string", + "enum": [ + "CLOUD", + "EXTERNAL" + ], + "description": "Indicates whether the database is a cloud database or an external database.\n\nAllowed values are: \"CLOUD\", \"EXTERNAL\"" }, "end_time": { - "description": "The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\".", - "type": "string" + "type": "string", + "description": "The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." }, "filter_by_metric_names": { - "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.", - "type": "string" + "type": "string", + "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "managed_database_group_id": { - "description": "The OCID of the Managed Database Group.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database Group." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `DATABASENAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"DATABASENAME\"", - "type": "string" + "type": "string", + "enum": [ + "DATABASENAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `DATABASENAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"DATABASENAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" }, "start_time": { - "description": "The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\".", + "type": "string", + "description": "The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "database_hosted_in", "start_time", "end_time" - ], - "type": "object" + ] }, "mutable": false }, @@ -921,33 +1132,72 @@ "high-availability-data-guard-and-backups-fleet-single-db" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "filter_by_metric_names": { - "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.", - "type": "string" + "type": "string", + "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "managed_database_group_id": { - "description": "The OCID of the Managed Database Group.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database Group." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `DATABASENAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"DATABASENAME\"", - "type": "string" + "type": "string", + "enum": [ + "DATABASENAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `DATABASENAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"DATABASENAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { "type": "string" } }, - "type": "object" + "additionalProperties": false }, "mutable": false }, @@ -961,33 +1211,72 @@ "high-availability-data-guard-and-backups-fleet-single-db" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "filter_by_metric_names": { - "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.", - "type": "string" + "type": "string", + "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "managed_database_group_id": { - "description": "The OCID of the Managed Database Group.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database Group." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `DATABASENAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"DATABASENAME\"", - "type": "string" + "type": "string", + "enum": [ + "DATABASENAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `DATABASENAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"DATABASENAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { "type": "string" } }, - "type": "object" + "additionalProperties": false }, "mutable": false }, @@ -1001,66 +1290,111 @@ "fleet-health-analytics-across-many-databases" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "compare_baseline_time": { - "description": "The baseline time for metrics comparison.", - "type": "string" + "type": "string", + "description": "The baseline time for metrics comparison." }, "compare_target_time": { - "description": "The target time for metrics comparison.", - "type": "string" + "type": "string", + "description": "The target time for metrics comparison." }, "compare_type": { - "description": "The time window used for metrics comparison.\n\nAllowed values are: \"HOUR\", \"DAY\", \"WEEK\"", - "type": "string" + "type": "string", + "enum": [ + "HOUR", + "DAY", + "WEEK" + ], + "description": "The time window used for metrics comparison.\n\nAllowed values are: \"HOUR\", \"DAY\", \"WEEK\"" }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "filter_by_database_deployment_type": { - "description": "The filter used to filter the databases in the fleet by a specific Oracle Database deployment type.", - "type": "string" + "type": "string", + "description": "The filter used to filter the databases in the fleet by a specific Oracle Database deployment type." }, "filter_by_database_sub_type": { - "description": "The filter used to filter the databases in the fleet by a specific Oracle Database subtype.", - "type": "string" + "type": "string", + "description": "The filter used to filter the databases in the fleet by a specific Oracle Database subtype." }, "filter_by_database_type": { - "description": "The filter used to filter the databases in the fleet by a specific Oracle Database type.", - "type": "string" + "type": "string", + "description": "The filter used to filter the databases in the fleet by a specific Oracle Database type." }, "filter_by_database_version": { - "description": "The filter used to filter the databases in the fleet by a specific Oracle Database version.", - "type": "string" + "type": "string", + "description": "The filter used to filter the databases in the fleet by a specific Oracle Database version." }, "filter_by_metric_names": { - "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.", - "type": "string" + "type": "string", + "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "managed_database_group_id": { - "description": "The OCID of the Managed Database Group.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database Group." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIMECREATED", + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", - "type": "string" - } - }, - "required": [ - "compare_baseline_time", - "compare_target_time" - ], - "type": "object" - }, + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compare_baseline_time", + "compare_target_time" + ] + }, "mutable": false }, { @@ -1073,20 +1407,24 @@ "high-availability-data-guard-and-backups-fleet-single-db" ], "inputSchema": { + "type": "object", "properties": { "managed_database_id": { - "description": "The OCID of the Managed Database.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database." }, "opc_named_credential_id": { - "description": "The OCID of the Named Credential.", + "type": "string", + "description": "The OCID of the Named Credential." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "managed_database_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -1100,49 +1438,57 @@ "database-health-and-core-metrics" ], "inputSchema": { + "type": "object", "properties": { "end_time": { - "description": "The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\".", - "type": "string" + "type": "string", + "description": "The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." }, "managed_database_id": { - "description": "The OCID of the Managed Database.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database." }, "start_time": { - "description": "The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\".", + "type": "string", + "description": "The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "managed_database_id", "start_time", "end_time" - ], - "type": "object" + ] }, "mutable": false }, { "name": "get_database_insight", - "description": "Returns detailed database insight information such as `id`, `status`, `databaseId`, tags, and lifecycle timestamps.", + "description": "Returns detailed state for one database insight, including databaseId that maps the insight to the DB resource OCID for downstream calls.", "service": "opsi", "client": "OperationsInsightsClient", "operation": "get_database_insight", "skills": [ - "database-insights" + "database-inventory" ], "inputSchema": { + "type": "object", "properties": { "database_insight_id": { - "description": "Unique database insight identifier", + "type": "string", + "description": "Unique database insight identifier" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "database_insight_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -1156,34 +1502,38 @@ "high-availability-data-guard-and-backups-fleet-single-db" ], "inputSchema": { + "type": "object", "properties": { "end_time": { - "description": "The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\".", - "type": "string" + "type": "string", + "description": "The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." }, "filter_by_metric_names": { - "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.", - "type": "string" + "type": "string", + "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." }, "managed_database_id": { - "description": "The OCID of the Managed Database.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database." }, "peer_database_compartment_id": { - "description": "The OCID of the compartment for which peer database metrics are required. This is not a mandatory parameter and in its absence, all the peer database metrics are returned.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment for which peer database metrics are required. This is not a mandatory parameter and in its absence, all the peer database metrics are returned." }, "start_time": { - "description": "The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\".", + "type": "string", + "description": "The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "managed_database_id", "start_time", "end_time" - ], - "type": "object" + ] }, "mutable": false }, @@ -1197,16 +1547,20 @@ "private-endpoints-and-connectivity" ], "inputSchema": { + "type": "object", "properties": { "db_management_private_endpoint_id": { - "description": "The OCID of the Database Management private endpoint.", + "type": "string", + "description": "The OCID of the Database Management private endpoint." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "db_management_private_endpoint_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -1220,46 +1574,104 @@ "exadata-fleet-health-analytics" ], "inputSchema": { + "type": "object", "properties": { "compare_baseline_time": { - "description": "The baseline time for metrics comparison.", - "type": "string" + "type": "string", + "description": "The baseline time for metrics comparison." }, "compare_target_time": { - "description": "The target time for metrics comparison.", - "type": "string" + "type": "string", + "description": "The target time for metrics comparison." }, "compare_type": { - "description": "The time window used for metrics comparison.\n\nAllowed values are: \"HOUR\", \"DAY\", \"WEEK\"", - "type": "string" + "type": "string", + "enum": [ + "HOUR", + "DAY", + "WEEK" + ], + "description": "The time window used for metrics comparison.\n\nAllowed values are: \"HOUR\", \"DAY\", \"WEEK\"" }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "filter_by_exadata_infrastructure_deployment_type": { - "description": "The filter used to filter the Exadata infrastructures in the fleet by a specific deployment type.\n\nAllowed values are: \"ONPREMISE\", \"EXADATA\", \"EXADATA_CC\"", - "type": "string" + "type": "string", + "enum": [ + "ONPREMISE", + "EXADATA", + "EXADATA_CC" + ], + "description": "The filter used to filter the Exadata infrastructures in the fleet by a specific deployment type.\n\nAllowed values are: \"ONPREMISE\", \"EXADATA\", \"EXADATA_CC\"" }, "filter_by_exadata_infrastructure_lifecycle_state": { - "description": "The filter used to filter the Exadata infrastructure in the fleet by its lifecycle state.\nIf the parameter is not provided, Exdata infrastructures in any state are returned.\n\nAllowed values are: \"CREATING\", \"ACTIVE\", \"INACTIVE\", \"UPDATING\", \"DELETING\", \"DELETED\", \"FAILED\", \"UNKNOWN\"", - "type": "string" + "type": "string", + "enum": [ + "CREATING", + "ACTIVE", + "INACTIVE", + "UPDATING", + "DELETING", + "DELETED", + "FAILED", + "UNKNOWN" + ], + "description": "The filter used to filter the Exadata infrastructure in the fleet by its lifecycle state.\nIf the parameter is not provided, Exdata infrastructures in any state are returned.\n\nAllowed values are: \"CREATING\", \"ACTIVE\", \"INACTIVE\", \"UPDATING\", \"DELETING\", \"DELETED\", \"FAILED\", \"UNKNOWN\"" }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIMECREATED", + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id", "compare_baseline_time", "compare_target_time" - ], - "type": "object" + ] + }, + "mutable": false + }, + { + "name": "get_exadata_insight", + "description": "Returns Exadata insight details so admins can validate monitoring status and resource metadata for an Exadata target.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "get_exadata_insight", + "skills": [ + "exadatainsights" + ], + "inputSchema": { + "type": "object", + "properties": { + "exadata_insight_id": { + "type": "string" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "exadata_insight_id" + ] }, "mutable": false }, @@ -1273,16 +1685,20 @@ "external-asm-core" ], "inputSchema": { + "type": "object", "properties": { "external_asm_id": { - "description": "The OCID of the external ASM.", + "type": "string", + "description": "The OCID of the external ASM." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "external_asm_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -1296,20 +1712,24 @@ "external-asm-core" ], "inputSchema": { + "type": "object", "properties": { "external_asm_id": { - "description": "The OCID of the external ASM.", - "type": "string" + "type": "string", + "description": "The OCID of the external ASM." }, "opc_named_credential_id": { - "description": "The OCID of the Named Credential.", + "type": "string", + "description": "The OCID of the Named Credential." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "external_asm_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -1323,16 +1743,20 @@ "external-asm-core" ], "inputSchema": { + "type": "object", "properties": { "external_asm_instance_id": { - "description": "The OCID of the external ASM instance.", + "type": "string", + "description": "The OCID of the external ASM instance." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "external_asm_instance_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -1346,16 +1770,20 @@ "external-db-runtime-topology" ], "inputSchema": { + "type": "object", "properties": { "external_cluster_id": { - "description": "The OCID of the external cluster.", + "type": "string", + "description": "The OCID of the external cluster." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "external_cluster_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -1369,16 +1797,20 @@ "external-db-runtime-topology" ], "inputSchema": { + "type": "object", "properties": { "external_cluster_instance_id": { - "description": "The OCID of the external cluster instance.", + "type": "string", + "description": "The OCID of the external cluster instance." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "external_cluster_instance_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -1392,16 +1824,20 @@ "external-inventory-discovery-connectivity" ], "inputSchema": { + "type": "object", "properties": { "external_db_home_id": { - "description": "The OCID of the external database home.", + "type": "string", + "description": "The OCID of the external database home." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "external_db_home_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -1415,16 +1851,20 @@ "external-db-runtime-topology" ], "inputSchema": { + "type": "object", "properties": { "external_db_node_id": { - "description": "The OCID of the external database node.", + "type": "string", + "description": "The OCID of the external database node." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "external_db_node_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -1438,16 +1878,20 @@ "external-inventory-discovery-connectivity" ], "inputSchema": { + "type": "object", "properties": { "external_db_system_id": { - "description": "The OCID of the external DB system.", + "type": "string", + "description": "The OCID of the external DB system." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "external_db_system_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -1461,16 +1905,20 @@ "external-inventory-discovery-connectivity" ], "inputSchema": { + "type": "object", "properties": { "external_db_system_connector_id": { - "description": "The OCID of the external connector.", + "type": "string", + "description": "The OCID of the external connector." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "external_db_system_connector_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -1484,16 +1932,20 @@ "external-inventory-discovery-connectivity" ], "inputSchema": { + "type": "object", "properties": { "external_db_system_discovery_id": { - "description": "The OCID of the external DB system discovery.", + "type": "string", + "description": "The OCID of the external DB system discovery." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "external_db_system_discovery_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -1507,16 +1959,20 @@ "external-inventory-discovery-connectivity" ], "inputSchema": { + "type": "object", "properties": { "external_exadata_infrastructure_id": { - "description": "The OCID of the Exadata infrastructure.", + "type": "string", + "description": "The OCID of the Exadata infrastructure." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "external_exadata_infrastructure_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -1530,16 +1986,20 @@ "external-exadata-storage" ], "inputSchema": { + "type": "object", "properties": { "external_exadata_storage_connector_id": { - "description": "The OCID of the connector to the Exadata storage server.", + "type": "string", + "description": "The OCID of the connector to the Exadata storage server." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "external_exadata_storage_connector_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -1553,16 +2013,20 @@ "external-exadata-storage" ], "inputSchema": { + "type": "object", "properties": { "external_exadata_storage_grid_id": { - "description": "The OCID of the Exadata storage grid.", + "type": "string", + "description": "The OCID of the Exadata storage grid." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "external_exadata_storage_grid_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -1576,16 +2040,20 @@ "external-exadata-storage" ], "inputSchema": { + "type": "object", "properties": { "external_exadata_storage_server_id": { - "description": "The OCID of the Exadata storage server.", + "type": "string", + "description": "The OCID of the Exadata storage server." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "external_exadata_storage_server_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -1599,62 +2067,100 @@ "external-db-runtime-topology" ], "inputSchema": { + "type": "object", "properties": { "external_listener_id": { - "description": "The OCID of the external listener.", + "type": "string", + "description": "The OCID of the external listener." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "external_listener_id" - ], - "type": "object" + ] }, "mutable": false }, { - "name": "get_iorm_plan", - "description": "Returns the I/O Resource Management (IORM) plan for an external Exadata storage server to review resource-allocation policy.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_iorm_plan", + "name": "get_host_insight", + "description": "Returns host insight details so admins can validate monitoring status and host resource metadata.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "get_host_insight", "skills": [ - "external-exadata-storage" + "hostinsights" ], "inputSchema": { + "type": "object", "properties": { - "external_exadata_storage_server_id": { - "description": "The OCID of the Exadata storage server.", + "host_insight_id": { + "type": "string" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ - "external_exadata_storage_server_id" - ], - "type": "object" + "host_insight_id" + ] }, "mutable": false }, { - "name": "get_job", - "description": "Returns one job definition so you can verify schedule, target scope, and execution settings.", + "name": "get_iorm_plan", + "description": "Returns the I/O Resource Management (IORM) plan for an external Exadata storage server to review resource-allocation policy.", "service": "dbm", "client": "DbManagementClient", - "operation": "get_job", + "operation": "get_iorm_plan", "skills": [ - "job-orchestration-and-execution-tracking" + "external-exadata-storage" + ], + "inputSchema": { + "type": "object", + "properties": { + "external_exadata_storage_server_id": { + "type": "string", + "description": "The OCID of the Exadata storage server." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "external_exadata_storage_server_id" + ] + }, + "mutable": false + }, + { + "name": "get_job", + "description": "Returns one job definition so you can verify schedule, target scope, and execution settings.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_job", + "skills": [ + "job-orchestration-and-execution-tracking" ], "inputSchema": { + "type": "object", "properties": { "job_id": { - "description": "The identifier of the job.", + "type": "string", + "description": "The identifier of the job." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "job_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -1668,16 +2174,20 @@ "job-orchestration-and-execution-tracking" ], "inputSchema": { + "type": "object", "properties": { "job_execution_id": { - "description": "The identifier of the job execution.", + "type": "string", + "description": "The identifier of the job execution." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "job_execution_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -1691,39 +2201,47 @@ "job-orchestration-and-execution-tracking" ], "inputSchema": { + "type": "object", "properties": { "job_run_id": { - "description": "The identifier of the job run.", + "type": "string", + "description": "The identifier of the job run." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "job_run_id" - ], - "type": "object" + ] }, "mutable": false }, { "name": "get_managed_database", - "description": "Returns full details for a managed database identified by managedDatabaseId.", + "description": "Returns detailed metadata for one managedDatabaseId, which in current tools is the same value as the DB resource OCID.", "service": "dbm", "client": "DbManagementClient", "operation": "get_managed_database", "skills": [ - "managed-database-inventory-discover-and-inspect" + "database-inventory" ], "inputSchema": { + "type": "object", "properties": { "managed_database_id": { - "description": "The OCID of the Managed Database.", + "type": "string", + "description": "The OCID of the Managed Database." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "managed_database_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -1737,16 +2255,20 @@ "managed-database-groups-organize-and-target-sets-of-databases" ], "inputSchema": { + "type": "object", "properties": { "managed_database_group_id": { - "description": "The OCID of the Managed Database Group.", + "type": "string", + "description": "The OCID of the Managed Database Group." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "managed_database_group_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -1760,16 +2282,46 @@ "credentials-and-authentication-preferred-named" ], "inputSchema": { + "type": "object", "properties": { "named_credential_id": { - "description": "The OCID of the named credential.", + "type": "string", + "description": "The OCID of the named credential." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "named_credential_id" - ], - "type": "object" + ] + }, + "mutable": false + }, + { + "name": "get_news_report", + "description": "Returns one news report so admins can review advisory details and decide follow-up actions.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "get_news_report", + "skills": [ + "news-reports-and-advisories" + ], + "inputSchema": { + "type": "object", + "properties": { + "news_report_id": { + "type": "string" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "news_report_id" + ] }, "mutable": false }, @@ -1783,16 +2335,162 @@ "external-exadata-storage" ], "inputSchema": { + "type": "object", "properties": { "external_exadata_storage_server_id": { - "description": "The OCID of the Exadata storage server.", + "type": "string", + "description": "The OCID of the Exadata storage server." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "external_exadata_storage_server_id" - ], - "type": "object" + ] + }, + "mutable": false + }, + { + "name": "get_operations_insights_private_endpoint", + "description": "Returns private endpoint details and lifecycle state so admins can validate secure network connectivity for Operations Insights resources.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "get_operations_insights_private_endpoint", + "skills": [ + "private-endpoints-and-connectivity" + ], + "inputSchema": { + "type": "object", + "properties": { + "opc_request_id": { + "type": "string" + }, + "operations_insights_private_endpoint_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "operations_insights_private_endpoint_id" + ] + }, + "mutable": false + }, + { + "name": "get_operations_insights_warehouse", + "description": "Returns Ops Insights warehouse details so admins can inspect warehouse configuration and lifecycle state.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "get_operations_insights_warehouse", + "skills": [ + "operations-insights-warehouse-admin" + ], + "inputSchema": { + "type": "object", + "properties": { + "opc_request_id": { + "type": "string" + }, + "operations_insights_warehouse_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "operations_insights_warehouse_id" + ] + }, + "mutable": false + }, + { + "name": "get_operations_insights_warehouse_user", + "description": "Returns Operations Insights Warehouse User details so admins can validate warehouse user account state and access context.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "get_operations_insights_warehouse_user", + "skills": [ + "operations-insights-warehouse-admin" + ], + "inputSchema": { + "type": "object", + "properties": { + "opc_request_id": { + "type": "string" + }, + "operations_insights_warehouse_user_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "operations_insights_warehouse_user_id" + ] + }, + "mutable": false + }, + { + "name": "get_opsi_configuration", + "description": "Returns one OPSI configuration resource so admins can inspect current configuration details for a target resource.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "get_opsi_configuration", + "skills": [ + "opsi-configurations-and-datastores" + ], + "inputSchema": { + "type": "object", + "properties": { + "config_item_custom_status": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "customized", + "nonCustomized" + ] + } + }, + "config_item_field": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "value", + "defaultValue", + "metadata", + "applicableContexts" + ] + } + }, + "config_items_applicable_context": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" + }, + "opsi_config_field": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "configItems" + ] + } + }, + "opsi_configuration_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "opsi_configuration_id" + ] }, "mutable": false }, @@ -1806,38 +2504,47 @@ "database-health-and-core-metrics" ], "inputSchema": { + "type": "object", "properties": { "compare_type": { - "description": "The time window used for metrics comparison.\n\nAllowed values are: \"HOUR\", \"DAY\", \"WEEK\"", - "type": "string" + "type": "string", + "enum": [ + "HOUR", + "DAY", + "WEEK" + ], + "description": "The time window used for metrics comparison.\n\nAllowed values are: \"HOUR\", \"DAY\", \"WEEK\"" }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "end_time": { - "description": "The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\".", - "type": "string" + "type": "string", + "description": "The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." }, "filter_by_metric_names": { - "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.", - "type": "string" + "type": "string", + "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." }, "managed_database_id": { - "description": "The OCID of the Managed Database.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database." }, "start_time": { - "description": "The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\".", + "type": "string", + "description": "The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "managed_database_id", "start_time", "end_time" - ], - "type": "object" + ] }, "mutable": false }, @@ -1851,38 +2558,47 @@ "high-availability-data-guard-and-backups-fleet-single-db" ], "inputSchema": { + "type": "object", "properties": { "compare_type": { - "description": "The time window used for metrics comparison.\n\nAllowed values are: \"HOUR\", \"DAY\", \"WEEK\"", - "type": "string" + "type": "string", + "enum": [ + "HOUR", + "DAY", + "WEEK" + ], + "description": "The time window used for metrics comparison.\n\nAllowed values are: \"HOUR\", \"DAY\", \"WEEK\"" }, "end_time": { - "description": "The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\".", - "type": "string" + "type": "string", + "description": "The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." }, "filter_by_metric_names": { - "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.", - "type": "string" + "type": "string", + "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." }, "managed_database_id": { - "description": "The OCID of the Managed Database.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database." }, "peer_database_compartment_id": { - "description": "The OCID of the compartment for which peer database metrics are required. This is not a mandatory parameter and in its absence, all the peer database metrics are returned.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment for which peer database metrics are required. This is not a mandatory parameter and in its absence, all the peer database metrics are returned." }, "start_time": { - "description": "The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\".", + "type": "string", + "description": "The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "managed_database_id", "start_time", "end_time" - ], - "type": "object" + ] }, "mutable": false }, @@ -1896,21 +2612,25 @@ "credentials-and-authentication-preferred-named" ], "inputSchema": { + "type": "object", "properties": { "credential_name": { - "description": "The name of the preferred credential.", - "type": "string" + "type": "string", + "description": "The name of the preferred credential." }, "managed_database_id": { - "description": "The OCID of the Managed Database.", + "type": "string", + "description": "The OCID of the Managed Database." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "managed_database_id", "credential_name" - ], - "type": "object" + ] }, "mutable": false }, @@ -1924,25 +2644,29 @@ "storage-and-space-tablespaces-asm" ], "inputSchema": { + "type": "object", "properties": { "managed_database_id": { - "description": "The OCID of the Managed Database.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database." }, "opc_named_credential_id": { - "description": "The OCID of the Named Credential.", - "type": "string" + "type": "string", + "description": "The OCID of the Named Credential." }, "tablespace_name": { - "description": "The name of the tablespace.", + "type": "string", + "description": "The name of the tablespace." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "managed_database_id", "tablespace_name" - ], - "type": "object" + ] }, "mutable": false }, @@ -1956,16 +2680,20 @@ "external-exadata-storage" ], "inputSchema": { + "type": "object", "properties": { "external_exadata_storage_server_id": { - "description": "The OCID of the Exadata storage server.", + "type": "string", + "description": "The OCID of the Exadata storage server." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "external_exadata_storage_server_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -1979,25 +2707,29 @@ "users-and-privileges-rbac-audit" ], "inputSchema": { + "type": "object", "properties": { "managed_database_id": { - "description": "The OCID of the Managed Database.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database." }, "opc_named_credential_id": { - "description": "The OCID of the Named Credential.", - "type": "string" + "type": "string", + "description": "The OCID of the Named Credential." }, "user_name": { - "description": "The name of the user whose details are to be viewed.", + "type": "string", + "description": "The name of the user whose details are to be viewed." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "managed_database_id", "user_name" - ], - "type": "object" + ] }, "mutable": false }, @@ -2011,16 +2743,20 @@ "async-work-requests-long-running-operations" ], "inputSchema": { + "type": "object", "properties": { "work_request_id": { - "description": "The OCID of the asynchronous work request.", + "type": "string", + "description": "The OCID of the asynchronous work request." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "work_request_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -2034,42 +2770,85 @@ "database-addm-analysis" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "compartment_id_in_subtree": { - "description": "A flag to search all resources within a given compartment and all sub-compartments.", - "type": "boolean" + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." }, "database_id": { - "description": "Optional list of database OCIDs of the associated DBaaS entity.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database OCIDs of the associated DBaaS entity." }, "id": { - "description": "Optional list of database insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource OCIDs." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "sort_by": { - "description": "Field name for sorting the finding categories Allowed values are: \"name\"", - "type": "string" + "type": "string", + "enum": [ + "name" + ], + "description": "Field name for sorting the finding categories Allowed values are: \"name\"" }, "sort_order": { - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -2083,60 +2862,103 @@ "database-addm-analysis" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "category_name": { - "description": "Optional value filter to match the finding category exactly.", - "type": "string" + "type": "string", + "description": "Optional value filter to match the finding category exactly." }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "compartment_id_in_subtree": { - "description": "A flag to search all resources within a given compartment and all sub-compartments.", - "type": "boolean" + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." }, "database_id": { - "description": "Optional list of database OCIDs of the associated DBaaS entity.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database OCIDs of the associated DBaaS entity." }, "id": { - "description": "Optional list of database insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource OCIDs." }, "instance_number": { - "description": "The optional single value query parameter to filter by database instance number.", - "type": "string" + "type": "string", + "description": "The optional single value query parameter to filter by database instance number." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "sort_by": { - "description": "Field name for sorting the ADDM finding time series summary data Allowed values are: \"timestamp\"", - "type": "string" + "type": "string", + "enum": [ + "timestamp" + ], + "description": "Field name for sorting the ADDM finding time series summary data Allowed values are: \"timestamp\"" }, "sort_order": { - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" }, "time_interval_end": { - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." }, "time_interval_start": { - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "type": "string", "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -2150,42 +2972,85 @@ "database-addm-analysis" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "compartment_id_in_subtree": { - "description": "A flag to search all resources within a given compartment and all sub-compartments.", - "type": "boolean" + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." }, "database_id": { - "description": "Optional list of database OCIDs of the associated DBaaS entity.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database OCIDs of the associated DBaaS entity." }, "id": { - "description": "Optional list of database insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource OCIDs." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "sort_by": { - "description": "Field name for sorting the database parameter categories Allowed values are: \"name\"", - "type": "string" + "type": "string", + "enum": [ + "name" + ], + "description": "Field name for sorting the database parameter categories Allowed values are: \"name\"" }, "sort_order": { - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -2199,42 +3064,85 @@ "database-addm-analysis" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "compartment_id_in_subtree": { - "description": "A flag to search all resources within a given compartment and all sub-compartments.", - "type": "boolean" + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." }, "database_id": { - "description": "Optional list of database OCIDs of the associated DBaaS entity.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database OCIDs of the associated DBaaS entity." }, "id": { - "description": "Optional list of database insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource OCIDs." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "sort_by": { - "description": "Field name for sorting the recommendation categories Allowed values are: \"name\"", - "type": "string" + "type": "string", + "enum": [ + "name" + ], + "description": "Field name for sorting the recommendation categories Allowed values are: \"name\"" }, "sort_order": { - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -2248,76 +3156,119 @@ "database-addm-analysis" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "category_name": { - "description": "Optional value filter to match the finding category exactly.", - "type": "string" + "type": "string", + "description": "Optional value filter to match the finding category exactly." }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "compartment_id_in_subtree": { - "description": "A flag to search all resources within a given compartment and all sub-compartments.", - "type": "boolean" + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." }, "database_id": { - "description": "Optional list of database OCIDs of the associated DBaaS entity.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database OCIDs of the associated DBaaS entity." }, "id": { - "description": "Optional list of database insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource OCIDs." }, "instance_number": { - "description": "The optional single value query parameter to filter by database instance number.", - "type": "string" + "type": "string", + "description": "The optional single value query parameter to filter by database instance number." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "name": { - "description": "Optional filter to return only resources whose name exactly matches the substring given. The match is case sensitive. Only considered when categoryName is DATABASE_CONFIGURATION.", - "type": "string" + "type": "string", + "description": "Optional filter to return only resources whose name exactly matches the substring given. The match is case sensitive. Only considered when categoryName is DATABASE_CONFIGURATION." }, "name_contains": { - "description": "Optional filter to return only resources whose name contains the substring given. The match is not case sensitive. Only considered when categoryName is DATABASE_CONFIGURATION.", - "type": "string" + "type": "string", + "description": "Optional filter to return only resources whose name contains the substring given. The match is not case sensitive. Only considered when categoryName is DATABASE_CONFIGURATION." }, "owner_or_name_contains": { - "description": "Optional filter to return only resources whose owner or name contains the substring given. The match is not case sensitive. Only considered when categoryName is SCHEMA_OBJECT.", - "type": "string" + "type": "string", + "description": "Optional filter to return only resources whose owner or name contains the substring given. The match is not case sensitive. Only considered when categoryName is SCHEMA_OBJECT." }, "sort_by": { - "description": "Field name for sorting the ADDM recommendation time series summary data Allowed values are: \"timestamp\"", - "type": "string" + "type": "string", + "enum": [ + "timestamp" + ], + "description": "Field name for sorting the ADDM recommendation time series summary data Allowed values are: \"timestamp\"" }, "sort_order": { - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" }, "sql_identifier": { - "description": "Optional filter to return only resources whose sql id matches the value given. Only considered when categoryName is SQL_TUNING.", - "type": "string" + "type": "string", + "description": "Optional filter to return only resources whose sql id matches the value given. Only considered when categoryName is SQL_TUNING." }, "time_interval_end": { - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." }, "time_interval_start": { - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "type": "string", "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -2331,52 +3282,96 @@ "database-addm-analysis" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "compartment_id_in_subtree": { - "description": "A flag to search all resources within a given compartment and all sub-compartments.", - "type": "boolean" + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." }, "database_id": { - "description": "Optional list of database OCIDs of the associated DBaaS entity.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database OCIDs of the associated DBaaS entity." }, "id": { - "description": "Optional list of database insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource OCIDs." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "sort_by": { - "description": "Field name for sorting ADDM database data Allowed values are: \"databaseName\", \"numberOfFindings\"", - "type": "string" + "type": "string", + "enum": [ + "databaseName", + "numberOfFindings" + ], + "description": "Field name for sorting ADDM database data Allowed values are: \"databaseName\", \"numberOfFindings\"" }, "sort_order": { - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" }, "time_interval_end": { - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." }, "time_interval_start": { - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "type": "string", "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -2390,58 +3385,92 @@ "logs-and-alerts-attention-alert-logs" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "is_regular_expression": { - "description": "The flag to indicate whether the search text is regular expression or not.", - "type": "boolean" + "type": "boolean", + "description": "The flag to indicate whether the search text is regular expression or not." }, "level_filter": { - "description": "The optional parameter to filter the alert logs by log level.\n\nAllowed values are: \"CRITICAL\", \"SEVERE\", \"IMPORTANT\", \"NORMAL\", \"ALL\"", - "type": "string" + "type": "string", + "enum": [ + "CRITICAL", + "SEVERE", + "IMPORTANT", + "NORMAL", + "ALL" + ], + "description": "The optional parameter to filter the alert logs by log level.\n\nAllowed values are: \"CRITICAL\", \"SEVERE\", \"IMPORTANT\", \"NORMAL\", \"ALL\"" }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "log_search_text": { - "description": "The optional query parameter to filter the attention or alert logs by search text.", - "type": "string" + "type": "string", + "description": "The optional query parameter to filter the attention or alert logs by search text." }, "managed_database_id": { - "description": "The OCID of the Managed Database.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database." }, "opc_named_credential_id": { - "description": "The OCID of the Named Credential.", - "type": "string" + "type": "string", + "description": "The OCID of the Named Credential." }, "sort_by": { - "description": "The possible sortBy values of attention logs.\n\nAllowed values are: \"LEVEL\", \"TYPE\", \"MESSAGE\", \"TIMESTAMP\"", - "type": "string" + "type": "string", + "enum": [ + "LEVEL", + "TYPE", + "MESSAGE", + "TIMESTAMP" + ], + "description": "The possible sortBy values of attention logs.\n\nAllowed values are: \"LEVEL\", \"TYPE\", \"MESSAGE\", \"TIMESTAMP\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" }, "time_greater_than_or_equal_to": { - "description": "The optional greater than or equal to timestamp to filter the logs.", + "type": "string", "format": "date-time", - "type": "string" + "description": "The optional greater than or equal to timestamp to filter the logs." }, "time_less_than_or_equal_to": { - "description": "The optional less than or equal to timestamp to filter the logs.", + "type": "string", "format": "date-time", - "type": "string" + "description": "The optional less than or equal to timestamp to filter the logs." }, "type_filter": { - "description": "The optional parameter to filter the attention or alert logs by type.\n\nAllowed values are: \"UNKNOWN\", \"INCIDENT_ERROR\", \"ERROR\", \"WARNING\", \"NOTIFICATION\", \"TRACE\", \"ALL\"", + "type": "string", + "enum": [ + "UNKNOWN", + "INCIDENT_ERROR", + "ERROR", + "WARNING", + "NOTIFICATION", + "TRACE", + "ALL" + ], + "description": "The optional parameter to filter the attention or alert logs by type.\n\nAllowed values are: \"UNKNOWN\", \"INCIDENT_ERROR\", \"ERROR\", \"WARNING\", \"NOTIFICATION\", \"TRACE\", \"ALL\"" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "managed_database_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -2455,32 +3484,48 @@ "storage-and-space-tablespaces-asm" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "managed_database_id": { - "description": "The OCID of the Managed Database.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database." }, "name": { - "description": "A filter to return only resources that match the entire name.", - "type": "string" + "type": "string", + "description": "A filter to return only resources that match the entire name." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIMECREATED", + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "managed_database_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -2494,33 +3539,48 @@ "private-endpoints-and-connectivity" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "db_management_private_endpoint_id": { - "description": "The OCID of the Database Management private endpoint.", - "type": "string" + "type": "string", + "description": "The OCID of the Database Management private endpoint." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "sort_by": { - "description": "The option to sort databases using a specific Database Management private endpoint.\n\nAllowed values are: \"timeRegistered\"", - "type": "string" + "type": "string", + "enum": [ + "timeRegistered" + ], + "description": "The option to sort databases using a specific Database Management private endpoint.\n\nAllowed values are: \"timeRegistered\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "db_management_private_endpoint_id", "compartment_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -2534,58 +3594,94 @@ "logs-and-alerts-attention-alert-logs" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "is_regular_expression": { - "description": "The flag to indicate whether the search text is regular expression or not.", - "type": "boolean" + "type": "boolean", + "description": "The flag to indicate whether the search text is regular expression or not." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "log_search_text": { - "description": "The optional query parameter to filter the attention or alert logs by search text.", - "type": "string" + "type": "string", + "description": "The optional query parameter to filter the attention or alert logs by search text." }, "managed_database_id": { - "description": "The OCID of the Managed Database.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database." }, "opc_named_credential_id": { - "description": "The OCID of the Named Credential.", - "type": "string" + "type": "string", + "description": "The OCID of the Named Credential." }, "sort_by": { - "description": "The possible sortBy values of attention logs.\n\nAllowed values are: \"URGENCY\", \"TYPE\", \"MESSAGE\", \"TIMESTAMP\", \"SCOPE\", \"TARGET_USER\"", - "type": "string" + "type": "string", + "enum": [ + "URGENCY", + "TYPE", + "MESSAGE", + "TIMESTAMP", + "SCOPE", + "TARGET_USER" + ], + "description": "The possible sortBy values of attention logs.\n\nAllowed values are: \"URGENCY\", \"TYPE\", \"MESSAGE\", \"TIMESTAMP\", \"SCOPE\", \"TARGET_USER\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" }, "time_greater_than_or_equal_to": { - "description": "The optional greater than or equal to timestamp to filter the logs.", + "type": "string", "format": "date-time", - "type": "string" + "description": "The optional greater than or equal to timestamp to filter the logs." }, "time_less_than_or_equal_to": { - "description": "The optional less than or equal to timestamp to filter the logs.", + "type": "string", "format": "date-time", - "type": "string" + "description": "The optional less than or equal to timestamp to filter the logs." }, "type_filter": { - "description": "The optional parameter to filter the attention or alert logs by type.\n\nAllowed values are: \"UNKNOWN\", \"INCIDENT_ERROR\", \"ERROR\", \"WARNING\", \"NOTIFICATION\", \"TRACE\", \"ALL\"", - "type": "string" + "type": "string", + "enum": [ + "UNKNOWN", + "INCIDENT_ERROR", + "ERROR", + "WARNING", + "NOTIFICATION", + "TRACE", + "ALL" + ], + "description": "The optional parameter to filter the attention or alert logs by type.\n\nAllowed values are: \"UNKNOWN\", \"INCIDENT_ERROR\", \"ERROR\", \"WARNING\", \"NOTIFICATION\", \"TRACE\", \"ALL\"" }, "urgency_filter": { - "description": "The optional parameter to filter the attention logs by urgency.\n\nAllowed values are: \"IMMEDIATE\", \"SOON\", \"DEFERRABLE\", \"INFO\", \"ALL\"", + "type": "string", + "enum": [ + "IMMEDIATE", + "SOON", + "DEFERRABLE", + "INFO", + "ALL" + ], + "description": "The optional parameter to filter the attention logs by urgency.\n\nAllowed values are: \"IMMEDIATE\", \"SOON\", \"DEFERRABLE\", \"INFO\", \"ALL\"" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "managed_database_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -2596,58 +3692,74 @@ "client": "OperationsInsightsClient", "operation": "list_awr_database_snapshots", "skills": [ - "awrhubs" + "database-performance-analysis" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "awr_hub_id": { - "description": "Unique Awr Hub identifier", - "type": "string" + "type": "string", + "description": "Unique Awr Hub identifier" }, "awr_source_database_identifier": { - "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.", - "type": "string" + "type": "string", + "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results." }, "begin_snapshot_identifier_greater_than_or_equal_to": { - "description": "The optional greater than or equal to filter on the snapshot ID.", - "type": "integer" + "type": "integer", + "description": "The optional greater than or equal to filter on the snapshot ID." }, "end_snapshot_identifier_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the snapshot Identifier.", - "type": "integer" + "type": "integer", + "description": "The optional less than or equal to query parameter to filter the snapshot Identifier." }, "instance_number": { - "description": "The optional single value query parameter to filter by database instance number.", - "type": "string" + "type": "string", + "description": "The optional single value query parameter to filter by database instance number." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "sort_by": { - "description": "The option to sort the AWR snapshot summary data. Allowed values are: \"TIME_BEGIN\", \"SNAPSHOT_ID\"", - "type": "string" + "type": "string", + "enum": [ + "TIME_BEGIN", + "SNAPSHOT_ID" + ], + "description": "The option to sort the AWR snapshot summary data. Allowed values are: \"TIME_BEGIN\", \"SNAPSHOT_ID\"" }, "sort_order": { - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" }, "time_greater_than_or_equal_to": { - "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "type": "string", "format": "date-time", - "type": "string" + "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" }, "time_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "type": "string", "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "awr_hub_id", "awr_source_database_identifier" - ], - "type": "object" + ] }, "mutable": false }, @@ -2658,117 +3770,150 @@ "client": "OperationsInsightsClient", "operation": "list_awr_databases", "skills": [ - "awrhubs" + "database-performance-analysis" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "awr_hub_id": { - "description": "Unique Awr Hub identifier", - "type": "string" + "type": "string", + "description": "Unique Awr Hub identifier" }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "name": { - "description": "The optional single value query parameter to filter the entity name.", - "type": "string" + "type": "string", + "description": "The optional single value query parameter to filter the entity name." }, "sort_by": { - "description": "The option to sort the AWR summary data. Allowed values are: \"END_INTERVAL_TIME\", \"NAME\"", - "type": "string" + "type": "string", + "enum": [ + "END_INTERVAL_TIME", + "NAME" + ], + "description": "The option to sort the AWR summary data. Allowed values are: \"END_INTERVAL_TIME\", \"NAME\"" }, "sort_order": { - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" }, "time_greater_than_or_equal_to": { - "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "type": "string", "format": "date-time", - "type": "string" + "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" }, "time_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "type": "string", "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "awr_hub_id" - ], - "type": "object" + ] }, "mutable": false }, { "name": "list_awr_db_snapshots", - "description": "Lists available AWR snapshots (snapshot IDs and begin/end times) used for reports and comparisons.", + "description": "Returns AWR snapshots for one AWR database so you can choose analysis ranges.", "service": "dbm", "client": "DbManagementClient", "operation": "list_awr_db_snapshots", "skills": [ - "awr-discovery-primitives", - "awr-historical-performance-analysis", - "database-performance-analysis" + "awr-discovery-primitives" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "awr_db_id": { - "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.", - "type": "string" + "type": "string", + "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results." }, "begin_sn_id_greater_than_or_equal_to": { - "description": "The optional greater than or equal to filter on the snapshot ID.", - "type": "integer" + "type": "integer", + "description": "The optional greater than or equal to filter on the snapshot ID." }, "container_id": { - "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.", - "type": "integer" + "type": "integer", + "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results." }, "end_sn_id_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the snapshot ID.", - "type": "integer" + "type": "integer", + "description": "The optional less than or equal to query parameter to filter the snapshot ID." }, "inst_num": { - "description": "The optional single value query parameter to filter the database instance number.", - "type": "string" + "type": "string", + "description": "The optional single value query parameter to filter the database instance number." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "managed_database_id": { - "description": "The OCID of the Managed Database.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database." }, "opc_named_credential_id": { - "description": "The OCID of the Named Credential.", - "type": "string" + "type": "string", + "description": "The OCID of the Named Credential." }, "sort_by": { - "description": "The option to sort the AWR snapshot summary data.\n\nAllowed values are: \"TIME_BEGIN\", \"SNAPSHOT_ID\"", - "type": "string" + "type": "string", + "enum": [ + "TIME_BEGIN", + "SNAPSHOT_ID" + ], + "description": "The option to sort the AWR snapshot summary data.\n\nAllowed values are: \"TIME_BEGIN\", \"SNAPSHOT_ID\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" }, "time_greater_than_or_equal_to": { - "description": "The optional greater than or equal to query parameter to filter the timestamp.", + "type": "string", "format": "date-time", - "type": "string" + "description": "The optional greater than or equal to query parameter to filter the timestamp." }, "time_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the timestamp.", + "type": "string", "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp." + }, + "opc_request_id": { + "type": "string" + }, + "opc_retry_token": { "type": "string" } }, + "additionalProperties": false, "required": [ "managed_database_id", "awr_db_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -2782,46 +3927,65 @@ "awr-discovery-primitives" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "managed_database_id": { - "description": "The OCID of the Managed Database.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database." }, "name": { - "description": "The optional single value query parameter to filter the entity name.", - "type": "string" + "type": "string", + "description": "The optional single value query parameter to filter the entity name." }, "opc_named_credential_id": { - "description": "The OCID of the Named Credential.", - "type": "string" + "type": "string", + "description": "The OCID of the Named Credential." }, "sort_by": { - "description": "The option to sort the AWR summary data.\n\nAllowed values are: \"END_INTERVAL_TIME\", \"NAME\"", - "type": "integer" + "type": "string", + "enum": [ + "END_INTERVAL_TIME", + "NAME" + ], + "description": "The option to sort the AWR summary data.\n\nAllowed values are: \"END_INTERVAL_TIME\", \"NAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" }, "time_greater_than_or_equal_to": { - "description": "The optional greater than or equal to query parameter to filter the timestamp.", + "type": "string", "format": "date-time", - "type": "string" + "description": "The optional greater than or equal to query parameter to filter the timestamp." }, "time_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the timestamp.", + "type": "string", "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp." + }, + "opc_request_id": { + "type": "string" + }, + "opc_retry_token": { "type": "string" } }, + "additionalProperties": false, "required": [ "managed_database_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -2835,32 +3999,47 @@ "cloud-asm-core" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "cloud_asm_id": { - "description": "The OCID of the cloud ASM.", - "type": "string" + "type": "string", + "description": "The OCID of the cloud ASM." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "opc_named_credential_id": { - "description": "The OCID of the Named Credential.", - "type": "string" + "type": "string", + "description": "The OCID of the Named Credential." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"NAME\"", - "type": "string" + "type": "string", + "enum": [ + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"NAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "cloud_asm_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -2874,33 +4053,49 @@ "cloud-asm-core" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "cloud_asm_id": { - "description": "The OCID of the cloud ASM.", - "type": "string" + "type": "string", + "description": "The OCID of the cloud ASM." }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "display_name": { - "description": "A filter to only return the resources that match the entire display name.", - "type": "string" + "type": "string", + "description": "A filter to only return the resources that match the entire display name." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIMECREATED", + "DISPLAYNAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { "type": "string" } }, - "type": "object" + "additionalProperties": false }, "mutable": false }, @@ -2914,32 +4109,47 @@ "cloud-asm-core" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "cloud_asm_id": { - "description": "The OCID of the cloud ASM.", - "type": "string" + "type": "string", + "description": "The OCID of the cloud ASM." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "opc_named_credential_id": { - "description": "The OCID of the Named Credential.", - "type": "string" + "type": "string", + "description": "The OCID of the Named Credential." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"NAME\"", - "type": "string" + "type": "string", + "enum": [ + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"NAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "cloud_asm_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -2953,33 +4163,49 @@ "cloud-asm-core" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "cloud_db_system_id": { - "description": "The OCID of the cloud DB system.", - "type": "string" + "type": "string", + "description": "The OCID of the cloud DB system." }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "display_name": { - "description": "A filter to only return the resources that match the entire display name.", - "type": "string" + "type": "string", + "description": "A filter to only return the resources that match the entire display name." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIMECREATED", + "DISPLAYNAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { "type": "string" } }, - "type": "object" + "additionalProperties": false }, "mutable": false }, @@ -2993,33 +4219,49 @@ "cloud-db-runtime-topology" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "cloud_cluster_id": { - "description": "The OCID of the cloud cluster.", - "type": "string" + "type": "string", + "description": "The OCID of the cloud cluster." }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "display_name": { - "description": "A filter to only return the resources that match the entire display name.", - "type": "string" + "type": "string", + "description": "A filter to only return the resources that match the entire display name." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIMECREATED", + "DISPLAYNAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { "type": "string" } }, - "type": "object" + "additionalProperties": false }, "mutable": false }, @@ -3033,33 +4275,49 @@ "cloud-db-runtime-topology" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "cloud_db_system_id": { - "description": "The OCID of the cloud DB system.", - "type": "string" + "type": "string", + "description": "The OCID of the cloud DB system." }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "display_name": { - "description": "A filter to only return the resources that match the entire display name.", - "type": "string" + "type": "string", + "description": "A filter to only return the resources that match the entire display name." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIMECREATED", + "DISPLAYNAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { "type": "string" } }, - "type": "object" + "additionalProperties": false }, "mutable": false }, @@ -3073,36 +4331,52 @@ "cloud-inventory-discovery-connectivity" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "cloud_db_system_id": { - "description": "The OCID of the cloud DB system.", - "type": "string" + "type": "string", + "description": "The OCID of the cloud DB system." }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "display_name": { - "description": "A filter to only return the resources that match the entire display name.", - "type": "string" + "type": "string", + "description": "A filter to only return the resources that match the entire display name." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIMECREATED", + "DISPLAYNAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "cloud_db_system_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -3116,33 +4390,49 @@ "cloud-db-runtime-topology" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "cloud_db_system_id": { - "description": "The OCID of the cloud DB system.", - "type": "string" + "type": "string", + "description": "The OCID of the cloud DB system." }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "display_name": { - "description": "A filter to only return the resources that match the entire display name.", - "type": "string" + "type": "string", + "description": "A filter to only return the resources that match the entire display name." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIMECREATED", + "DISPLAYNAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { "type": "string" } }, - "type": "object" + "additionalProperties": false }, "mutable": false }, @@ -3156,33 +4446,49 @@ "cloud-db-runtime-topology" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "cloud_db_system_id": { - "description": "The OCID of the cloud DB system.", - "type": "string" + "type": "string", + "description": "The OCID of the cloud DB system." }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "display_name": { - "description": "A filter to only return the resources that match the entire display name.", - "type": "string" + "type": "string", + "description": "A filter to only return the resources that match the entire display name." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIMECREATED", + "DISPLAYNAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { "type": "string" } }, - "type": "object" + "additionalProperties": false }, "mutable": false }, @@ -3196,33 +4502,49 @@ "cloud-db-runtime-topology" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "cloud_db_system_id": { - "description": "The OCID of the cloud DB system.", - "type": "string" + "type": "string", + "description": "The OCID of the cloud DB system." }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "display_name": { - "description": "A filter to only return the resources that match the entire display name.", - "type": "string" + "type": "string", + "description": "A filter to only return the resources that match the entire display name." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIMECREATED", + "DISPLAYNAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { "type": "string" } }, - "type": "object" + "additionalProperties": false }, "mutable": false }, @@ -3236,32 +4558,48 @@ "cloud-inventory-discovery-connectivity" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "display_name": { - "description": "A filter to only return the resources that match the entire display name.", - "type": "string" + "type": "string", + "description": "A filter to only return the resources that match the entire display name." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIMECREATED", + "DISPLAYNAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -3275,44 +4613,74 @@ "cloud-inventory-discovery-connectivity" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "dbaas_parent_infrastructure_id": { - "description": "The OCID of the dbaas parent infrastructure of the cloud DB system.", - "type": "string" + "type": "string", + "description": "The OCID of the dbaas parent infrastructure of the cloud DB system." }, "deployment_type": { - "description": "A filter to return cloud DB systems of the specified deployment type.\n\nAllowed values are: \"VM\", \"EXADATA\", \"EXADATA_CC\", \"EXADATA_XS\"", - "type": "string" + "type": "string", + "enum": [ + "VM", + "EXADATA", + "EXADATA_CC", + "EXADATA_XS" + ], + "description": "A filter to return cloud DB systems of the specified deployment type.\n\nAllowed values are: \"VM\", \"EXADATA\", \"EXADATA_CC\", \"EXADATA_XS\"" }, "display_name": { - "description": "A filter to only return the resources that match the entire display name.", - "type": "string" + "type": "string", + "description": "A filter to only return the resources that match the entire display name." }, "lifecycle_state": { - "description": "The lifecycle state of a resource.\n\nAllowed values are: \"CREATING\", \"ACTIVE\", \"UPDATING\", \"DELETING\", \"DELETED\", \"INACTIVE\"", - "type": "string" + "type": "string", + "enum": [ + "CREATING", + "ACTIVE", + "UPDATING", + "DELETING", + "DELETED", + "INACTIVE" + ], + "description": "The lifecycle state of a resource.\n\nAllowed values are: \"CREATING\", \"ACTIVE\", \"UPDATING\", \"DELETING\", \"DELETED\", \"INACTIVE\"" }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIMECREATED", + "DISPLAYNAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -3326,32 +4694,48 @@ "cloud-inventory-discovery-connectivity" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "display_name": { - "description": "The optional single value query filter parameter on the entity display name.", - "type": "string" + "type": "string", + "description": "The optional single value query filter parameter on the entity display name." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIMECREATED", + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -3365,37 +4749,53 @@ "cloud-exadata-storage" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "cloud_exadata_infrastructure_id": { - "description": "The OCID of the Exadata infrastructure.", - "type": "string" + "type": "string", + "description": "The OCID of the Exadata infrastructure." }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "display_name": { - "description": "The optional single value query filter parameter on the entity display name.", - "type": "string" + "type": "string", + "description": "The optional single value query filter parameter on the entity display name." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIMECREATED", + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id", "cloud_exadata_infrastructure_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -3409,37 +4809,53 @@ "cloud-exadata-storage" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "cloud_exadata_infrastructure_id": { - "description": "The OCID of the Exadata infrastructure.", - "type": "string" + "type": "string", + "description": "The OCID of the Exadata infrastructure." }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "display_name": { - "description": "The optional single value query filter parameter on the entity display name.", - "type": "string" + "type": "string", + "description": "The optional single value query filter parameter on the entity display name." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIMECREATED", + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id", "cloud_exadata_infrastructure_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -3453,37 +4869,52 @@ "cloud-db-runtime-topology" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "cloud_listener_id": { - "description": "The OCID of the cloud listener.", - "type": "string" + "type": "string", + "description": "The OCID of the cloud listener." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "managed_database_id": { - "description": "The OCID of the Managed Database.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database." }, "opc_named_credential_id": { - "description": "The OCID of the Named Credential.", - "type": "string" + "type": "string", + "description": "The OCID of the Named Credential." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"NAME\"", - "type": "string" + "type": "string", + "enum": [ + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"NAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "cloud_listener_id", "managed_database_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -3497,33 +4928,49 @@ "cloud-db-runtime-topology" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "cloud_db_system_id": { - "description": "The OCID of the cloud DB system.", - "type": "string" + "type": "string", + "description": "The OCID of the cloud DB system." }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "display_name": { - "description": "A filter to only return the resources that match the entire display name.", - "type": "string" + "type": "string", + "description": "A filter to only return the resources that match the entire display name." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIMECREATED", + "DISPLAYNAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { "type": "string" } }, - "type": "object" + "additionalProperties": false }, "mutable": false }, @@ -3537,41 +4984,56 @@ "users-and-privileges-rbac-audit" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "managed_database_id": { - "description": "The OCID of the Managed Database.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database." }, "name": { - "description": "A filter to return only resources that match the entire name.", - "type": "string" + "type": "string", + "description": "A filter to return only resources that match the entire name." }, "opc_named_credential_id": { - "description": "The OCID of the Named Credential.", - "type": "string" + "type": "string", + "description": "The OCID of the Named Credential." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018NAME\u2019 is ascending. The \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"NAME\"", - "type": "string" + "type": "string", + "enum": [ + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018NAME\u2019 is ascending. The \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"NAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" }, "user_name": { - "description": "The name of the user whose details are to be viewed.", + "type": "string", + "description": "The name of the user whose details are to be viewed." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "managed_database_id", "user_name" - ], - "type": "object" + ] }, "mutable": false }, @@ -3585,200 +5047,399 @@ "users-and-privileges-rbac-audit" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "managed_database_id": { - "description": "The OCID of the Managed Database.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database." }, "name": { - "description": "A filter to return only resources that match the entire name.", - "type": "string" + "type": "string", + "description": "A filter to return only resources that match the entire name." }, "opc_named_credential_id": { - "description": "The OCID of the Named Credential.", - "type": "string" + "type": "string", + "description": "The OCID of the Named Credential." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018NAME\u2019 is ascending. The \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"NAME\"", - "type": "string" + "type": "string", + "enum": [ + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018NAME\u2019 is ascending. The \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"NAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" }, "user_name": { - "description": "The name of the user whose details are to be viewed.", + "type": "string", + "description": "The name of the user whose details are to be viewed." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "managed_database_id", "user_name" - ], - "type": "object" + ] }, "mutable": false }, { "name": "list_database_configurations", - "description": "Lists database configuration details used by Operations Insights, such as database name/type/version, CDB or PDB context, processor count, and tags.", + "description": "Gets a list of database insights configuration.", "service": "opsi", "client": "OperationsInsightsClient", "operation": "list_database_configurations", "skills": [ - "database-insights" + "database-inventory" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "cdb_name": { - "description": "Filter by one or more cdb name.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more cdb name." }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "compartment_id_in_subtree": { - "description": "A flag to search all resources within a given compartment and all sub-compartments.", - "type": "boolean" + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." }, "database_id": { - "description": "Optional list of database OCIDs of the associated DBaaS entity.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database OCIDs of the associated DBaaS entity." }, "database_type": { - "description": "Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: \"ADW-S\", \"ATP-S\", \"ADW-D\", \"ATP-D\", \"EXTERNAL-PDB\", \"EXTERNAL-NONCDB\", \"COMANAGED-VM-CDB\", \"COMANAGED-VM-PDB\", \"COMANAGED-VM-NONCDB\", \"COMANAGED-BM-CDB\", \"COMANAGED-BM-PDB\", \"COMANAGED-BM-NONCDB\", \"COMANAGED-EXACS-CDB\", \"COMANAGED-EXACS-PDB\", \"COMANAGED-EXACS-NONCDB\", \"COMANAGED-EXACC-CDB\", \"COMANAGED-EXACC-PDB\", \"COMANAGED-EXACC-NONCDB\", \"MDS-MYSQL\", \"EXTERNAL-MYSQL\", \"ATP-EXACC\", \"ADW-EXACC\", \"EXTERNAL-ADW\", \"EXTERNAL-ATP\", \"LH-D\", \"APEX-D\", \"AJD-D\", \"AVD-D\", \"LH-S\", \"APEX-S\", \"AJD-S\", \"AVD-S\", \"LH-EXACC\", \"APEX-EXACC\", \"AJD-EXACC\", \"AVD-EXACC\"", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string", + "enum": [ + "ADW-S", + "ATP-S", + "ADW-D", + "ATP-D", + "EXTERNAL-PDB", + "EXTERNAL-NONCDB", + "COMANAGED-VM-CDB", + "COMANAGED-VM-PDB", + "COMANAGED-VM-NONCDB", + "COMANAGED-BM-CDB", + "COMANAGED-BM-PDB", + "COMANAGED-BM-NONCDB", + "COMANAGED-EXACS-CDB", + "COMANAGED-EXACS-PDB", + "COMANAGED-EXACS-NONCDB", + "COMANAGED-EXACC-CDB", + "COMANAGED-EXACC-PDB", + "COMANAGED-EXACC-NONCDB", + "MDS-MYSQL", + "EXTERNAL-MYSQL", + "ATP-EXACC", + "ADW-EXACC", + "EXTERNAL-ADW", + "EXTERNAL-ATP", + "LH-D", + "APEX-D", + "AJD-D", + "AVD-D", + "LH-S", + "APEX-S", + "AJD-S", + "AVD-S", + "LH-EXACC", + "APEX-EXACC", + "AJD-EXACC", + "AVD-EXACC" + ] + }, + "description": "Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: \"ADW-S\", \"ATP-S\", \"ADW-D\", \"ATP-D\", \"EXTERNAL-PDB\", \"EXTERNAL-NONCDB\", \"COMANAGED-VM-CDB\", \"COMANAGED-VM-PDB\", \"COMANAGED-VM-NONCDB\", \"COMANAGED-BM-CDB\", \"COMANAGED-BM-PDB\", \"COMANAGED-BM-NONCDB\", \"COMANAGED-EXACS-CDB\", \"COMANAGED-EXACS-PDB\", \"COMANAGED-EXACS-NONCDB\", \"COMANAGED-EXACC-CDB\", \"COMANAGED-EXACC-PDB\", \"COMANAGED-EXACC-NONCDB\", \"MDS-MYSQL\", \"EXTERNAL-MYSQL\", \"ATP-EXACC\", \"ADW-EXACC\", \"EXTERNAL-ADW\", \"EXTERNAL-ATP\", \"LH-D\", \"APEX-D\", \"AJD-D\", \"AVD-D\", \"LH-S\", \"APEX-S\", \"AJD-S\", \"AVD-S\", \"LH-EXACC\", \"APEX-EXACC\", \"AJD-EXACC\", \"AVD-EXACC\"" }, "enterprise_manager_bridge_id": { - "description": "Unique Enterprise Manager bridge identifier", - "type": "string" + "type": "string", + "description": "Unique Enterprise Manager bridge identifier" }, "exadata_insight_id": { - "description": "Optional list of exadata insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of exadata insight resource OCIDs." }, "host_name": { - "description": "Filter by one or more hostname.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more hostname." }, "id": { - "description": "Optional list of database insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource OCIDs." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "sort_by": { - "description": "Database configuration list sort options. If `fields` parameter is selected, the `sortBy` parameter must be one of the fields specified. Allowed values are: \"databaseName\", \"databaseDisplayName\", \"databaseType\"", - "type": "string" + "type": "string", + "enum": [ + "databaseName", + "databaseDisplayName", + "databaseType" + ], + "description": "Database configuration list sort options. If `fields` parameter is selected, the `sortBy` parameter must be one of the fields specified. Allowed values are: \"databaseName\", \"databaseDisplayName\", \"databaseType\"" }, "sort_order": { - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" }, "vmcluster_name": { - "description": "Optional list of Exadata Insight VM cluster name.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of Exadata Insight VM cluster name." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" } }, - "type": "object" + "additionalProperties": false }, "mutable": false }, { "name": "list_database_insights", - "description": "Lists database insight resources and status (for example ENABLED/DISABLED), lifecycle state, and key database identifiers.", + "description": "Returns Operations Insights inventory for selected scope and filters so admins can verify insight coverage, status, and candidate databaseInsightId values.", "service": "opsi", "client": "OperationsInsightsClient", "operation": "list_database_insights", "skills": [ - "database-insights" + "database-inventory" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "compartment_id_in_subtree": { - "description": "A flag to search all resources within a given compartment and all sub-compartments.", - "type": "boolean" + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." }, "database_id": { - "description": "Optional list of database OCIDs of the associated DBaaS entity.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database OCIDs of the associated DBaaS entity." }, "database_type": { - "description": "Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: \"ADW-S\", \"ATP-S\", \"ADW-D\", \"ATP-D\", \"EXTERNAL-PDB\", \"EXTERNAL-NONCDB\", \"COMANAGED-VM-CDB\", \"COMANAGED-VM-PDB\", \"COMANAGED-VM-NONCDB\", \"COMANAGED-BM-CDB\", \"COMANAGED-BM-PDB\", \"COMANAGED-BM-NONCDB\", \"COMANAGED-EXACS-CDB\", \"COMANAGED-EXACS-PDB\", \"COMANAGED-EXACS-NONCDB\", \"COMANAGED-EXACC-CDB\", \"COMANAGED-EXACC-PDB\", \"COMANAGED-EXACC-NONCDB\", \"MDS-MYSQL\", \"EXTERNAL-MYSQL\", \"ATP-EXACC\", \"ADW-EXACC\", \"EXTERNAL-ADW\", \"EXTERNAL-ATP\", \"LH-D\", \"APEX-D\", \"AJD-D\", \"AVD-D\", \"LH-S\", \"APEX-S\", \"AJD-S\", \"AVD-S\", \"LH-EXACC\", \"APEX-EXACC\", \"AJD-EXACC\", \"AVD-EXACC\"", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string", + "enum": [ + "ADW-S", + "ATP-S", + "ADW-D", + "ATP-D", + "EXTERNAL-PDB", + "EXTERNAL-NONCDB", + "COMANAGED-VM-CDB", + "COMANAGED-VM-PDB", + "COMANAGED-VM-NONCDB", + "COMANAGED-BM-CDB", + "COMANAGED-BM-PDB", + "COMANAGED-BM-NONCDB", + "COMANAGED-EXACS-CDB", + "COMANAGED-EXACS-PDB", + "COMANAGED-EXACS-NONCDB", + "COMANAGED-EXACC-CDB", + "COMANAGED-EXACC-PDB", + "COMANAGED-EXACC-NONCDB", + "MDS-MYSQL", + "EXTERNAL-MYSQL", + "ATP-EXACC", + "ADW-EXACC", + "EXTERNAL-ADW", + "EXTERNAL-ATP", + "LH-D", + "APEX-D", + "AJD-D", + "AVD-D", + "LH-S", + "APEX-S", + "AJD-S", + "AVD-S", + "LH-EXACC", + "APEX-EXACC", + "AJD-EXACC", + "AVD-EXACC" + ] + }, + "description": "Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: \"ADW-S\", \"ATP-S\", \"ADW-D\", \"ATP-D\", \"EXTERNAL-PDB\", \"EXTERNAL-NONCDB\", \"COMANAGED-VM-CDB\", \"COMANAGED-VM-PDB\", \"COMANAGED-VM-NONCDB\", \"COMANAGED-BM-CDB\", \"COMANAGED-BM-PDB\", \"COMANAGED-BM-NONCDB\", \"COMANAGED-EXACS-CDB\", \"COMANAGED-EXACS-PDB\", \"COMANAGED-EXACS-NONCDB\", \"COMANAGED-EXACC-CDB\", \"COMANAGED-EXACC-PDB\", \"COMANAGED-EXACC-NONCDB\", \"MDS-MYSQL\", \"EXTERNAL-MYSQL\", \"ATP-EXACC\", \"ADW-EXACC\", \"EXTERNAL-ADW\", \"EXTERNAL-ATP\", \"LH-D\", \"APEX-D\", \"AJD-D\", \"AVD-D\", \"LH-S\", \"APEX-S\", \"AJD-S\", \"AVD-S\", \"LH-EXACC\", \"APEX-EXACC\", \"AJD-EXACC\", \"AVD-EXACC\"" }, "enterprise_manager_bridge_id": { - "description": "Unique Enterprise Manager bridge identifier", - "type": "string" + "type": "string", + "description": "Unique Enterprise Manager bridge identifier" }, "exadata_insight_id": { - "description": "OCID of exadata insight resource.", - "type": "string" + "type": "string", + "description": "OCID of exadata insight resource." }, "fields": { - "description": "Specifies the fields to return in a database summary response. By default all fields are returned if omitted. Allowed values are: \"compartmentId\", \"databaseName\", \"databaseDisplayName\", \"databaseType\", \"databaseVersion\", \"databaseHostNames\", \"freeformTags\", \"definedTags\"", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string", + "enum": [ + "compartmentId", + "databaseName", + "databaseDisplayName", + "databaseType", + "databaseVersion", + "databaseHostNames", + "freeformTags", + "definedTags" + ] + }, + "description": "Specifies the fields to return in a database summary response. By default all fields are returned if omitted. Allowed values are: \"compartmentId\", \"databaseName\", \"databaseDisplayName\", \"databaseType\", \"databaseVersion\", \"databaseHostNames\", \"freeformTags\", \"definedTags\"" }, "id": { - "description": "Optional list of database insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource OCIDs." }, "lifecycle_state": { - "description": "Lifecycle states Allowed values are: \"CREATING\", \"UPDATING\", \"ACTIVE\", \"DELETING\", \"DELETED\", \"FAILED\", \"NEEDS_ATTENTION\"", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string", + "enum": [ + "CREATING", + "UPDATING", + "ACTIVE", + "DELETING", + "DELETED", + "FAILED", + "NEEDS_ATTENTION" + ] + }, + "description": "Lifecycle states Allowed values are: \"CREATING\", \"UPDATING\", \"ACTIVE\", \"DELETING\", \"DELETED\", \"FAILED\", \"NEEDS_ATTENTION\"" }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "opsi_private_endpoint_id": { - "description": "Unique Operations Insights PrivateEndpoint identifier", - "type": "string" + "type": "string", + "description": "Unique Operations Insights PrivateEndpoint identifier" }, "sort_by": { - "description": "Database insight list sort options. If `fields` parameter is selected, the `sortBy` parameter must be one of the fields specified. Allowed values are: \"databaseName\", \"databaseDisplayName\", \"databaseType\"", - "type": "string" + "type": "string", + "enum": [ + "databaseName", + "databaseDisplayName", + "databaseType" + ], + "description": "Database insight list sort options. If `fields` parameter is selected, the `sortBy` parameter must be one of the fields specified. Allowed values are: \"databaseName\", \"databaseDisplayName\", \"databaseType\"" }, "sort_order": { - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" }, "status": { - "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED", + "TERMINATED" + ] + }, + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" + }, + "opc_request_id": { + "type": "string" } }, - "type": "object" + "additionalProperties": false }, "mutable": false }, { "name": "list_database_parameters", - "description": "Returns database parameter inventory so admins can review effective configuration values and identify parameter drift.", + "description": "Returns database parameter inventory so admins can review effective configuration values and identify parameter drift", "service": "dbm", "client": "DbManagementClient", "operation": "list_database_parameters", @@ -3786,40 +5447,55 @@ "database-configuration-and-parameters" ], "inputSchema": { + "type": "object", "properties": { "is_allowed_values_included": { - "description": "When true, results include a list of valid values for parameters (if applicable).", - "type": "boolean" + "type": "boolean", + "description": "When true, results include a list of valid values for parameters (if applicable)." }, "managed_database_id": { - "description": "The OCID of the Managed Database.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database." }, "name": { - "description": "A filter to return all parameters that have the text given in their names.", - "type": "string" + "type": "string", + "description": "A filter to return all parameters that have the text given in their names." }, "opc_named_credential_id": { - "description": "The OCID of the Named Credential.", - "type": "string" + "type": "string", + "description": "The OCID of the Named Credential." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"NAME\"", - "type": "string" + "type": "string", + "enum": [ + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"NAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" }, "source": { - "description": "The source used to list database parameters. `CURRENT` is used to get the\ndatabase parameters that are currently in effect for the database\ninstance. `SPFILE` is used to list parameters from the server parameter\nfile. Default is `CURRENT`.\n\nAllowed values are: \"CURRENT\", \"SPFILE\"", + "type": "string", + "enum": [ + "CURRENT", + "SPFILE" + ], + "description": "The source used to list database parameters. `CURRENT` is used to get the\ndatabase parameters that are currently in effect for the database\ninstance. `SPFILE` is used to list parameters from the server parameter\nfile. Default is `CURRENT`.\n\nAllowed values are: \"CURRENT\", \"SPFILE\"" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "managed_database_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -3833,94 +5509,250 @@ "private-endpoints-and-connectivity" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "is_cluster": { - "description": "The option to filter Database Management private endpoints that can used for Oracle Databases in a cluster. This should be used along with the vcnId query parameter.", - "type": "boolean" + "type": "boolean", + "description": "The option to filter Database Management private endpoints that can used for Oracle Databases in a cluster. This should be used along with the vcnId query parameter." }, "is_dns_resolution_enabled": { - "description": "The option to filter Database Management private endpoints which are endbled with DNS proxy server. This should be used along with the vcnId query parameter.\nOnly one of this parameter and IsClusterDbManagementPrivateEndpointQueryParam should be set to true at one time.", - "type": "boolean" + "type": "boolean", + "description": "The option to filter Database Management private endpoints which are endbled with DNS proxy server. This should be used along with the vcnId query parameter.\nOnly one of this parameter and IsClusterDbManagementPrivateEndpointQueryParam should be set to true at one time." }, "lifecycle_state": { - "description": "The lifecycle state of a resource.\n\nAllowed values are: \"CREATING\", \"UPDATING\", \"ACTIVE\", \"DELETING\", \"DELETED\", \"FAILED\"", - "type": "string" + "type": "string", + "enum": [ + "CREATING", + "UPDATING", + "ACTIVE", + "DELETING", + "DELETED", + "FAILED" + ], + "description": "The lifecycle state of a resource.\n\nAllowed values are: \"CREATING\", \"UPDATING\", \"ACTIVE\", \"DELETING\", \"DELETED\", \"FAILED\"" }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "name": { - "description": "A filter to return only resources that match the entire name.", - "type": "string" + "type": "string", + "description": "A filter to return only resources that match the entire name." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIMECREATED", + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" }, "vcn_id": { - "description": "The OCID of the VCN.", + "type": "string", + "description": "The OCID of the VCN." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id" - ], - "type": "object" + ] }, "mutable": false }, { "name": "list_exadata_configurations", - "description": "Returns Exadata configuration records, including system identity and configuration `items` for managed Exadata resources.", + "description": "Returns Exadata configuration records, including system identity and configuration items for managed Exadata resources.", "service": "opsi", "client": "OperationsInsightsClient", "operation": "list_exadata_configurations", "skills": [ - "exadata-insights" + "exadatainsights" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "compartment_id_in_subtree": { + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." + }, + "exadata_insight_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of exadata insight resource OCIDs." + }, + "exadata_type": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "sort_by": { + "type": "string", + "enum": [ + "exadataName", + "exadataDisplayName", + "exadataType" + ], + "description": "Exadata configuration list sort options. If `fields` parameter is selected, the `sortBy` parameter must be one of the fields specified. Allowed values are: \"exadataName\", \"exadataDisplayName\", \"exadataType\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false + }, + "mutable": false + }, + { + "name": "list_exadata_insights", + "description": "Returns Exadata insight inventory so admins can review monitored Exadata resources and lifecycle coverage.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_exadata_insights", + "skills": [ + "exadatainsights" ], "inputSchema": { + "type": "object", "properties": { "compartment_id": { - "description": "The OCID of the compartment.", "type": "string" }, "compartment_id_in_subtree": { - "description": "A flag to search all resources within a given compartment and all sub-compartments.", "type": "boolean" }, - "exadata_insight_id": { - "description": "Optional list of exadata insight resource OCIDs.", - "items": {}, - "type": "array" + "enterprise_manager_bridge_id": { + "type": "string" }, "exadata_type": { - "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + } + }, + "id": { + "type": "array", + "items": { + "type": "string" + } + }, + "lifecycle_state": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "CREATING", + "UPDATING", + "ACTIVE", + "DELETING", + "DELETED", + "FAILED", + "NEEDS_ATTENTION" + ] + } }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", "type": "integer" }, - "sort_by": { - "description": "Exadata configuration list sort options. If `fields` parameter is selected, the `sortBy` parameter must be one of the fields specified. Allowed values are: \"exadataName\", \"exadataDisplayName\", \"exadataType\"", + "opc_request_id": { "type": "string" }, - "sort_order": { - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", + "page": { "type": "string" + }, + "sort_by": { + "type": "string", + "enum": [ + "timeCreated", + "exadataName" + ] + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ] + }, + "status": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED", + "TERMINATED" + ] + } } }, - "type": "object" + "additionalProperties": false }, "mutable": false }, @@ -3934,32 +5766,47 @@ "external-asm-core" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "external_asm_id": { - "description": "The OCID of the external ASM.", - "type": "string" + "type": "string", + "description": "The OCID of the external ASM." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "opc_named_credential_id": { - "description": "The OCID of the Named Credential.", - "type": "string" + "type": "string", + "description": "The OCID of the Named Credential." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"NAME\"", - "type": "string" + "type": "string", + "enum": [ + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"NAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "external_asm_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -3973,33 +5820,49 @@ "external-asm-core" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "display_name": { - "description": "A filter to only return the resources that match the entire display name.", - "type": "string" + "type": "string", + "description": "A filter to only return the resources that match the entire display name." }, "external_asm_id": { - "description": "The OCID of the external ASM.", - "type": "string" + "type": "string", + "description": "The OCID of the external ASM." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIMECREATED", + "DISPLAYNAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { "type": "string" } }, - "type": "object" + "additionalProperties": false }, "mutable": false }, @@ -4013,32 +5876,47 @@ "external-asm-core" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "external_asm_id": { - "description": "The OCID of the external ASM.", - "type": "string" + "type": "string", + "description": "The OCID of the external ASM." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "opc_named_credential_id": { - "description": "The OCID of the Named Credential.", - "type": "string" + "type": "string", + "description": "The OCID of the Named Credential." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"NAME\"", - "type": "string" + "type": "string", + "enum": [ + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"NAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "external_asm_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -4052,33 +5930,49 @@ "external-asm-core" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "display_name": { - "description": "A filter to only return the resources that match the entire display name.", - "type": "string" + "type": "string", + "description": "A filter to only return the resources that match the entire display name." }, "external_db_system_id": { - "description": "The OCID of the external DB system.", - "type": "string" + "type": "string", + "description": "The OCID of the external DB system." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIMECREATED", + "DISPLAYNAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { "type": "string" } }, - "type": "object" + "additionalProperties": false }, "mutable": false }, @@ -4092,33 +5986,49 @@ "external-db-runtime-topology" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "display_name": { - "description": "A filter to only return the resources that match the entire display name.", - "type": "string" + "type": "string", + "description": "A filter to only return the resources that match the entire display name." }, "external_cluster_id": { - "description": "The OCID of the external cluster.", - "type": "string" + "type": "string", + "description": "The OCID of the external cluster." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIMECREATED", + "DISPLAYNAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { "type": "string" } }, - "type": "object" + "additionalProperties": false }, "mutable": false }, @@ -4132,33 +6042,49 @@ "external-db-runtime-topology" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "display_name": { - "description": "A filter to only return the resources that match the entire display name.", - "type": "string" + "type": "string", + "description": "A filter to only return the resources that match the entire display name." }, "external_db_system_id": { - "description": "The OCID of the external DB system.", - "type": "string" + "type": "string", + "description": "The OCID of the external DB system." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIMECREATED", + "DISPLAYNAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { "type": "string" } }, - "type": "object" + "additionalProperties": false }, "mutable": false }, @@ -4172,37 +6098,53 @@ "external-inventory-discovery-connectivity" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "display_name": { - "description": "A filter to only return the resources that match the entire display name.", - "type": "string" + "type": "string", + "description": "A filter to only return the resources that match the entire display name." }, "external_database_id": { - "description": "The OCID of the external database.", - "type": "string" + "type": "string", + "description": "The OCID of the external database." }, "external_db_system_id": { - "description": "The OCID of the external DB system.", - "type": "string" + "type": "string", + "description": "The OCID of the external DB system." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIMECREATED", + "DISPLAYNAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { "type": "string" } }, - "type": "object" + "additionalProperties": false }, "mutable": false }, @@ -4216,33 +6158,49 @@ "external-inventory-discovery-connectivity" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "display_name": { - "description": "A filter to only return the resources that match the entire display name.", - "type": "string" + "type": "string", + "description": "A filter to only return the resources that match the entire display name." }, "external_db_system_id": { - "description": "The OCID of the external DB system.", - "type": "string" + "type": "string", + "description": "The OCID of the external DB system." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIMECREATED", + "DISPLAYNAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { "type": "string" } }, - "type": "object" + "additionalProperties": false }, "mutable": false }, @@ -4256,33 +6214,49 @@ "external-db-runtime-topology" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "display_name": { - "description": "A filter to only return the resources that match the entire display name.", - "type": "string" + "type": "string", + "description": "A filter to only return the resources that match the entire display name." }, "external_db_system_id": { - "description": "The OCID of the external DB system.", - "type": "string" + "type": "string", + "description": "The OCID of the external DB system." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIMECREATED", + "DISPLAYNAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { "type": "string" } }, - "type": "object" + "additionalProperties": false }, "mutable": false }, @@ -4296,33 +6270,49 @@ "external-inventory-discovery-connectivity" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "display_name": { - "description": "A filter to only return the resources that match the entire display name.", - "type": "string" + "type": "string", + "description": "A filter to only return the resources that match the entire display name." }, "external_db_system_id": { - "description": "The OCID of the external DB system.", - "type": "string" + "type": "string", + "description": "The OCID of the external DB system." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIMECREATED", + "DISPLAYNAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { "type": "string" } }, - "type": "object" + "additionalProperties": false }, "mutable": false }, @@ -4336,32 +6326,48 @@ "external-inventory-discovery-connectivity" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "display_name": { - "description": "A filter to only return the resources that match the entire display name.", - "type": "string" + "type": "string", + "description": "A filter to only return the resources that match the entire display name." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIMECREATED", + "DISPLAYNAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -4375,32 +6381,48 @@ "external-inventory-discovery-connectivity" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "display_name": { - "description": "A filter to only return the resources that match the entire display name.", - "type": "string" + "type": "string", + "description": "A filter to only return the resources that match the entire display name." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIMECREATED", + "DISPLAYNAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -4414,32 +6436,48 @@ "external-inventory-discovery-connectivity" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "display_name": { - "description": "The optional single value query filter parameter on the entity display name.", - "type": "string" + "type": "string", + "description": "The optional single value query filter parameter on the entity display name." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIMECREATED", + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", - "type": "string" - } - }, + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, "required": [ "compartment_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -4453,37 +6491,53 @@ "external-exadata-storage" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "display_name": { - "description": "The optional single value query filter parameter on the entity display name.", - "type": "string" + "type": "string", + "description": "The optional single value query filter parameter on the entity display name." }, "external_exadata_infrastructure_id": { - "description": "The OCID of the Exadata infrastructure.", - "type": "string" + "type": "string", + "description": "The OCID of the Exadata infrastructure." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIMECREATED", + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id", "external_exadata_infrastructure_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -4497,37 +6551,53 @@ "external-exadata-storage" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "display_name": { - "description": "The optional single value query filter parameter on the entity display name.", - "type": "string" + "type": "string", + "description": "The optional single value query filter parameter on the entity display name." }, "external_exadata_infrastructure_id": { - "description": "The OCID of the Exadata infrastructure.", - "type": "string" + "type": "string", + "description": "The OCID of the Exadata infrastructure." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIMECREATED", + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id", "external_exadata_infrastructure_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -4541,37 +6611,52 @@ "external-db-runtime-topology" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "external_listener_id": { - "description": "The OCID of the external listener.", - "type": "string" + "type": "string", + "description": "The OCID of the external listener." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "managed_database_id": { - "description": "The OCID of the Managed Database.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database." }, "opc_named_credential_id": { - "description": "The OCID of the Named Credential.", - "type": "string" + "type": "string", + "description": "The OCID of the Named Credential." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"NAME\"", - "type": "string" + "type": "string", + "enum": [ + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"NAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "external_listener_id", "managed_database_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -4585,184 +6670,407 @@ "external-db-runtime-topology" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "display_name": { - "description": "A filter to only return the resources that match the entire display name.", - "type": "string" + "type": "string", + "description": "A filter to only return the resources that match the entire display name." }, "external_db_system_id": { - "description": "The OCID of the external DB system.", - "type": "string" + "type": "string", + "description": "The OCID of the external DB system." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIMECREATED", + "DISPLAYNAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { "type": "string" } }, - "type": "object" + "additionalProperties": false }, "mutable": false }, { "name": "list_host_configurations", - "description": "Returns host configuration records, including host identity, platform details, and onboarding status in `items`.", + "description": "Returns host configuration records, including host identity, platform details, and onboarding status in items.", "service": "opsi", "client": "OperationsInsightsClient", "operation": "list_host_configurations", "skills": [ - "host-insights" + "hostinsights" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "compartment_id_in_subtree": { - "description": "A flag to search all resources within a given compartment and all sub-compartments.", - "type": "boolean" + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." }, "enterprise_manager_bridge_id": { - "description": "Unique Enterprise Manager bridge identifier", - "type": "string" + "type": "string", + "description": "Unique Enterprise Manager bridge identifier" }, "exadata_insight_id": { - "description": "Optional list of exadata insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of exadata insight resource OCIDs." }, "host_id": { - "description": "Optional OCID of the host (Compute Id).", - "type": "string" + "type": "string", + "description": "Optional OCID of the host (Compute Id)." }, "host_type": { - "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST" }, "id": { - "description": "Optional list of host insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of host insight resource OCIDs." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "platform_type": { - "description": "Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: \"LINUX\", \"SOLARIS\", \"SUNOS\", \"ZLINUX\", \"WINDOWS\", \"AIX\", \"HP_UX\"", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string", + "enum": [ + "LINUX", + "SOLARIS", + "SUNOS", + "ZLINUX", + "WINDOWS", + "AIX", + "HP_UX" + ] + }, + "description": "Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: \"LINUX\", \"SOLARIS\", \"SUNOS\", \"ZLINUX\", \"WINDOWS\", \"AIX\", \"HP_UX\"" }, "sort_by": { - "description": "Host configuration list sort options. Allowed values are: \"hostName\", \"platformType\"", - "type": "string" + "type": "string", + "enum": [ + "hostName", + "platformType" + ], + "description": "Host configuration list sort options. Allowed values are: \"hostName\", \"platformType\"" }, "sort_order": { - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" }, "status": { - "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED", + "TERMINATED" + ] + }, + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" }, "vmcluster_name": { - "description": "Optional list of Exadata Insight VM cluster name.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of Exadata Insight VM cluster name." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" } }, - "type": "object" + "additionalProperties": false }, "mutable": false }, { - "name": "list_hosted_entities", - "description": "Returns entities hosted on selected hosts, including entity `items` and related interval context.", + "name": "list_host_insights", + "description": "Returns host insight inventory so admins can review monitored host resources and lifecycle coverage.", "service": "opsi", "client": "OperationsInsightsClient", - "operation": "list_hosted_entities", + "operation": "list_host_insights", "skills": [ - "host-insights" + "hostinsights" ], "inputSchema": { + "type": "object", "properties": { - "analysis_time_interval": { - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", - "type": "string" - }, "compartment_id": { - "description": "The OCID of the compartment.", "type": "string" }, - "exadata_insight_id": { - "description": "OCID of exadata insight resource.", + "compartment_id_in_subtree": { + "type": "boolean" + }, + "enterprise_manager_bridge_id": { "type": "string" }, - "host_id": { - "description": "Optional OCID of the host (Compute Id).", + "exadata_insight_id": { "type": "string" }, "host_type": { - "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + } }, "id": { - "description": "Required OCID of the host insight resource.", - "type": "string" + "type": "array", + "items": { + "type": "string" + } + }, + "lifecycle_state": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "CREATING", + "UPDATING", + "ACTIVE", + "DELETING", + "DELETED", + "FAILED", + "NEEDS_ATTENTION" + ] + } }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", "type": "integer" }, + "opc_request_id": { + "type": "string" + }, + "page": { + "type": "string" + }, "platform_type": { - "description": "Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: \"LINUX\", \"SOLARIS\", \"SUNOS\", \"ZLINUX\", \"WINDOWS\", \"AIX\", \"HP_UX\"", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string", + "enum": [ + "LINUX", + "SOLARIS", + "SUNOS", + "ZLINUX", + "WINDOWS", + "AIX", + "HP_UX" + ] + } }, "sort_by": { - "description": "Hosted entity list sort options. Allowed values are: \"entityName\", \"entityType\"", - "type": "string" + "type": "string", + "enum": [ + "hostName", + "hostType" + ] }, "sort_order": { - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ] }, "status": { - "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"", - "items": {}, - "type": "array" - }, - "time_interval_end": { - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", - "format": "date-time", - "type": "string" - }, - "time_interval_start": { - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", - "format": "date-time", - "type": "string" - } - }, - "required": [ - "compartment_id", + "type": "array", + "items": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED", + "TERMINATED" + ] + } + } + }, + "additionalProperties": false + }, + "mutable": false + }, + { + "name": "list_hosted_entities", + "description": "Returns entities hosted on selected hosts, including entity items and related interval context.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_hosted_entities", + "skills": [ + "hostinsights" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "analysis_time_interval": { + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "exadata_insight_id": { + "type": "string", + "description": "OCID of exadata insight resource." + }, + "host_id": { + "type": "string", + "description": "Optional OCID of the host (Compute Id)." + }, + "host_type": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST" + }, + "id": { + "type": "string", + "description": "Required OCID of the host insight resource." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "platform_type": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "LINUX", + "SOLARIS", + "SUNOS", + "ZLINUX", + "WINDOWS", + "AIX", + "HP_UX" + ] + }, + "description": "Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: \"LINUX\", \"SOLARIS\", \"SUNOS\", \"ZLINUX\", \"WINDOWS\", \"AIX\", \"HP_UX\"" + }, + "sort_by": { + "type": "string", + "enum": [ + "entityName", + "entityType" + ], + "description": "Hosted entity list sort options. Allowed values are: \"entityName\", \"entityType\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "status": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED", + "TERMINATED" + ] + }, + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", "id" - ], - "type": "object" + ] }, "mutable": false }, @@ -4776,56 +7084,72 @@ "job-orchestration-and-execution-tracking" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "id": { - "description": "The identifier of the resource.", - "type": "string" + "type": "string", + "description": "The identifier of the resource." }, "job_id": { - "description": "The identifier of the job.", - "type": "string" + "type": "string", + "description": "The identifier of the job." }, "job_run_id": { - "description": "The identifier of the job run.", - "type": "string" + "type": "string", + "description": "The identifier of the job run." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "managed_database_group_id": { - "description": "The OCID of the Managed Database Group.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database Group." }, "managed_database_id": { - "description": "The OCID of the Managed Database.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database." }, "name": { - "description": "A filter to return only resources that match the entire name.", - "type": "string" + "type": "string", + "description": "A filter to return only resources that match the entire name." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIMECREATED", + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" }, "status": { - "description": "The status of the job execution.", + "type": "string", + "description": "The status of the job execution." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -4839,52 +7163,68 @@ "job-orchestration-and-execution-tracking" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "id": { - "description": "The identifier of the resource.", - "type": "string" + "type": "string", + "description": "The identifier of the resource." }, "job_id": { - "description": "The identifier of the job.", - "type": "string" + "type": "string", + "description": "The identifier of the job." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "managed_database_group_id": { - "description": "The OCID of the Managed Database Group.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database Group." }, "managed_database_id": { - "description": "The OCID of the Managed Database.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database." }, "name": { - "description": "A filter to return only resources that match the entire name.", - "type": "string" + "type": "string", + "description": "A filter to return only resources that match the entire name." }, "run_status": { - "description": "The status of the job run.", - "type": "string" + "type": "string", + "description": "The status of the job run." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIMECREATED", + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -4898,48 +7238,68 @@ "job-orchestration-and-execution-tracking" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "id": { - "description": "The identifier of the resource.", - "type": "string" + "type": "string", + "description": "The identifier of the resource." }, "lifecycle_state": { - "description": "The lifecycle state of the job.\n\nAllowed values are: \"ACTIVE\", \"INACTIVE\"", - "type": "string" + "type": "string", + "enum": [ + "ACTIVE", + "INACTIVE" + ], + "description": "The lifecycle state of the job.\n\nAllowed values are: \"ACTIVE\", \"INACTIVE\"" }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "managed_database_group_id": { - "description": "The OCID of the Managed Database Group.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database Group." }, "managed_database_id": { - "description": "The OCID of the Managed Database.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database." }, "name": { - "description": "A filter to return only resources that match the entire name.", - "type": "string" + "type": "string", + "description": "A filter to return only resources that match the entire name." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIMECREATED", + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -4953,95 +7313,148 @@ "managed-database-groups-organize-and-target-sets-of-databases" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "id": { - "description": "The identifier of the resource.", - "type": "string" + "type": "string", + "description": "The identifier of the resource." }, "lifecycle_state": { - "description": "The lifecycle state of a resource.\n\nAllowed values are: \"CREATING\", \"UPDATING\", \"ACTIVE\", \"DELETING\", \"DELETED\", \"FAILED\"", - "type": "string" + "type": "string", + "enum": [ + "CREATING", + "UPDATING", + "ACTIVE", + "DELETING", + "DELETED", + "FAILED" + ], + "description": "The lifecycle state of a resource.\n\nAllowed values are: \"CREATING\", \"UPDATING\", \"ACTIVE\", \"DELETING\", \"DELETED\", \"FAILED\"" }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "name": { - "description": "A filter to return only resources that match the entire name.", - "type": "string" + "type": "string", + "description": "A filter to return only resources that match the entire name." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIMECREATED", + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id" - ], - "type": "object" + ] }, "mutable": false }, { "name": "list_managed_databases", - "description": "Returns managed databases in a compartment so you can discover the correct managedDatabaseId for follow-up operations.", + "description": "Returns DB Management managed database inventory for a compartment so admins can discover targets and collect managedDatabaseId values.", "service": "dbm", "client": "DbManagementClient", "operation": "list_managed_databases", "skills": [ - "managed-database-inventory-discover-and-inspect" + "database-inventory" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "deployment_type": { - "description": "A filter to return Managed Databases of the specified deployment type.\n\nAllowed values are: \"ONPREMISE\", \"BM\", \"VM\", \"EXADATA\", \"EXADATA_CC\", \"AUTONOMOUS\", \"EXADATA_XS\"", - "type": "string" + "type": "string", + "enum": [ + "ONPREMISE", + "BM", + "VM", + "EXADATA", + "EXADATA_CC", + "AUTONOMOUS", + "EXADATA_XS" + ], + "description": "A filter to return Managed Databases of the specified deployment type.\n\nAllowed values are: \"ONPREMISE\", \"BM\", \"VM\", \"EXADATA\", \"EXADATA_CC\", \"AUTONOMOUS\", \"EXADATA_XS\"" }, "external_exadata_infrastructure_id": { - "description": "The OCID of the Exadata infrastructure.", - "type": "string" + "type": "string", + "description": "The OCID of the Exadata infrastructure." }, "id": { - "description": "The identifier of the resource.", - "type": "string" + "type": "string", + "description": "The identifier of the resource." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "management_option": { - "description": "A filter to return Managed Databases with the specified management option.\n\nAllowed values are: \"BASIC\", \"ADVANCED\"", - "type": "string" + "type": "string", + "enum": [ + "BASIC", + "ADVANCED" + ], + "description": "A filter to return Managed Databases with the specified management option.\n\nAllowed values are: \"BASIC\", \"ADVANCED\"" }, "name": { - "description": "A filter to return only resources that match the entire name.", - "type": "string" + "type": "string", + "description": "A filter to return only resources that match the entire name." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIMECREATED", + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -5055,299 +7468,738 @@ "credentials-and-authentication-preferred-named" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "associated_resource": { - "description": "The resource associated to the named credential.", - "type": "string" + "type": "string", + "description": "The resource associated to the named credential." }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "name": { - "description": "The name of the named credential.", - "type": "string" + "type": "string", + "description": "The name of the named credential." }, "scope": { - "description": "The scope of named credential.\n\nAllowed values are: \"RESOURCE\", \"GLOBAL\"", - "type": "string" + "type": "string", + "enum": [ + "RESOURCE", + "GLOBAL" + ], + "description": "The scope of named credential.\n\nAllowed values are: \"RESOURCE\", \"GLOBAL\"" }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIMECREATED", + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" }, "type": { - "description": "The type of database that is associated to the named credential.\n\nAllowed values are: \"ORACLE_DB\"", + "type": "string", + "enum": [ + "ORACLE_DB" + ], + "description": "The type of database that is associated to the named credential.\n\nAllowed values are: \"ORACLE_DB\"" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id" - ], - "type": "object" + ] }, "mutable": false }, { - "name": "list_object_privileges", - "description": "Returns object privileges granted to a specific user.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_object_privileges", + "name": "list_news_reports", + "description": "Returns news report inventory so admins can triage advisories relevant to Operations Insights administration.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_news_reports", "skills": [ - "users-and-privileges-rbac-audit" + "news-reports-and-advisories" ], "inputSchema": { + "type": "object", "properties": { + "compartment_id": { + "type": "string" + }, + "compartment_id_in_subtree": { + "type": "boolean" + }, + "lifecycle_state": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "CREATING", + "UPDATING", + "ACTIVE", + "DELETING", + "DELETED", + "FAILED", + "NEEDS_ATTENTION" + ] + } + }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", "type": "integer" }, - "managed_database_id": { - "description": "The OCID of the Managed Database.", + "news_report_id": { "type": "string" }, - "name": { - "description": "A filter to return only resources that match the entire name.", + "opc_request_id": { "type": "string" }, - "opc_named_credential_id": { - "description": "The OCID of the Named Credential.", + "page": { "type": "string" }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018NAME\u2019 is ascending. The \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"NAME\"", - "type": "string" + "type": "string", + "enum": [ + "name", + "newsFrequency" + ] }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ] }, - "user_name": { - "description": "The name of the user whose details are to be viewed.", - "type": "string" - } - }, - "required": [ - "managed_database_id", - "user_name" - ], - "type": "object" - }, - "mutable": false - }, - { - "name": "list_preferred_credentials", - "description": "Returns preferred credential assignments for a managed database so admins can verify configured authentication context.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_preferred_credentials", - "skills": [ - "credentials-and-authentication-preferred-named" - ], - "inputSchema": { - "properties": { - "managed_database_id": { - "description": "The OCID of the Managed Database.", - "type": "string" + "status": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED", + "TERMINATED" + ] + } } }, - "required": [ - "managed_database_id" - ], - "type": "object" + "additionalProperties": false }, "mutable": false }, { - "name": "list_proxied_for_users", - "description": "Returns users on whose behalf the specified user can act as proxy.", + "name": "list_object_privileges", + "description": "Returns object privileges granted to a specific user.", "service": "dbm", "client": "DbManagementClient", - "operation": "list_proxied_for_users", + "operation": "list_object_privileges", "skills": [ "users-and-privileges-rbac-audit" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "managed_database_id": { - "description": "The OCID of the Managed Database.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database." }, "name": { - "description": "A filter to return only resources that match the entire name.", - "type": "string" + "type": "string", + "description": "A filter to return only resources that match the entire name." }, "opc_named_credential_id": { - "description": "The OCID of the Named Credential.", - "type": "string" + "type": "string", + "description": "The OCID of the Named Credential." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018NAME\u2019 is ascending. The \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"NAME\"", - "type": "string" + "type": "string", + "enum": [ + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018NAME\u2019 is ascending. The \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"NAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" }, "user_name": { - "description": "The name of the user whose details are to be viewed.", + "type": "string", + "description": "The name of the user whose details are to be viewed." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "managed_database_id", "user_name" - ], - "type": "object" + ] }, "mutable": false }, { - "name": "list_proxy_users", - "description": "Returns proxy users who can act as the specified user.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_proxy_users", + "name": "list_operations_insights_private_endpoints", + "description": "Returns private endpoint inventory so admins can audit endpoint coverage and current connectivity state across scope.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_operations_insights_private_endpoints", "skills": [ - "users-and-privileges-rbac-audit" + "private-endpoints-and-connectivity" ], "inputSchema": { + "type": "object", "properties": { + "compartment_id": { + "type": "string" + }, + "compartment_id_in_subtree": { + "type": "boolean" + }, + "display_name": { + "type": "string" + }, + "is_used_for_rac_dbs": { + "type": "boolean" + }, + "lifecycle_state": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "CREATING", + "UPDATING", + "ACTIVE", + "DELETING", + "DELETED", + "FAILED", + "NEEDS_ATTENTION" + ] + } + }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", "type": "integer" }, - "managed_database_id": { - "description": "The OCID of the Managed Database.", + "opc_request_id": { "type": "string" }, - "name": { - "description": "A filter to return only resources that match the entire name.", + "opsi_private_endpoint_id": { "type": "string" }, - "opc_named_credential_id": { - "description": "The OCID of the Named Credential.", + "page": { "type": "string" }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018NAME\u2019 is ascending. The \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"NAME\"", - "type": "string" + "type": "string", + "enum": [ + "timeCreated", + "id", + "displayName" + ] }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ] }, - "user_name": { - "description": "The name of the user whose details are to be viewed.", + "vcn_id": { "type": "string" } }, - "required": [ - "managed_database_id", - "user_name" - ], - "type": "object" + "additionalProperties": false }, "mutable": false }, { - "name": "list_region_subscriptions", - "description": "Lists region subscriptions for a tenancy. Returns `regionName`, `regionKey`, subscription `status`, and `isHomeRegion` to confirm enabled-region coverage.", - "service": "identity", - "client": "IdentityClient", - "operation": "list_region_subscriptions", + "name": "list_operations_insights_warehouse_users", + "description": "Returns Operations Insights Warehouse User inventory so admins can audit warehouse access coverage and account lifecycle state.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_operations_insights_warehouse_users", "skills": [ - "oci-common" + "operations-insights-warehouse-admin" ], "inputSchema": { "type": "object", "properties": { - "tenancy_id": { + "compartment_id": { + "type": "string" + }, + "display_name": { + "type": "string" + }, + "id": { + "type": "string" + }, + "lifecycle_state": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "CREATING", + "UPDATING", + "ACTIVE", + "DELETING", + "DELETED", + "FAILED" + ] + } + }, + "limit": { + "type": "integer" + }, + "opc_request_id": { + "type": "string" + }, + "operations_insights_warehouse_id": { + "type": "string" + }, + "page": { + "type": "string" + }, + "sort_by": { "type": "string", - "description": "The OCID of the tenancy." + "enum": [ + "timeCreated", + "displayName" + ] + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ] } }, "additionalProperties": false, "required": [ - "tenancy_id" + "operations_insights_warehouse_id" ] }, "mutable": false }, { - "name": "list_regions", - "description": "Lists regions offered by Oracle Cloud Infrastructure. Returns region identifiers such as `name` (for example, `us-phoenix-1`) and `key` (for example, `PHX`).", - "service": "identity", - "client": "IdentityClient", - "operation": "list_regions", + "name": "list_operations_insights_warehouses", + "description": "Returns Ops Insights warehouse inventory so admins can review warehouse lifecycle status and platform coverage.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_operations_insights_warehouses", "skills": [ - "oci-common" + "operations-insights-warehouse-admin" ], "inputSchema": { "type": "object", - "properties": {}, - "additionalProperties": false - }, - "mutable": false - }, - { - "name": "list_roles", - "description": "Returns roles granted to a specific user.", + "properties": { + "compartment_id": { + "type": "string" + }, + "display_name": { + "type": "string" + }, + "id": { + "type": "string" + }, + "lifecycle_state": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "CREATING", + "UPDATING", + "ACTIVE", + "DELETING", + "DELETED", + "FAILED" + ] + } + }, + "limit": { + "type": "integer" + }, + "opc_request_id": { + "type": "string" + }, + "page": { + "type": "string" + }, + "sort_by": { + "type": "string", + "enum": [ + "timeCreated", + "displayName" + ] + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ] + } + }, + "additionalProperties": false + }, + "mutable": false + }, + { + "name": "list_opsi_configurations", + "description": "Returns OPSI configuration resources so admins can audit active configuration state across managed resources.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_opsi_configurations", + "skills": [ + "opsi-configurations-and-datastores" + ], + "inputSchema": { + "type": "object", + "properties": { + "compartment_id": { + "type": "string" + }, + "display_name": { + "type": "string" + }, + "lifecycle_state": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "CREATING", + "UPDATING", + "ACTIVE", + "DELETING", + "DELETED", + "FAILED" + ] + } + }, + "limit": { + "type": "integer" + }, + "opc_request_id": { + "type": "string" + }, + "opsi_config_type": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "UX_CONFIGURATION" + ] + } + }, + "page": { + "type": "string" + }, + "sort_by": { + "type": "string", + "enum": [ + "displayName" + ] + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ] + } + }, + "additionalProperties": false, + "required": [ + "compartment_id" + ] + }, + "mutable": false + }, + { + "name": "list_preferred_credentials", + "description": "Returns preferred credential assignments for a managed database so admins can verify configured authentication context.", "service": "dbm", "client": "DbManagementClient", - "operation": "list_roles", + "operation": "list_preferred_credentials", + "skills": [ + "credentials-and-authentication-preferred-named" + ], + "inputSchema": { + "type": "object", + "properties": { + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id" + ] + }, + "mutable": false + }, + { + "name": "list_proxied_for_users", + "description": "Returns users on whose behalf the specified user can act as proxy.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_proxied_for_users", "skills": [ "users-and-privileges-rbac-audit" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "managed_database_id": { - "description": "The OCID of the Managed Database.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database." }, "name": { - "description": "A filter to return only resources that match the entire name.", - "type": "string" + "type": "string", + "description": "A filter to return only resources that match the entire name." }, "opc_named_credential_id": { - "description": "The OCID of the Named Credential.", - "type": "string" + "type": "string", + "description": "The OCID of the Named Credential." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018NAME\u2019 is ascending. The \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"NAME\"", + "type": "string", + "enum": [ + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018NAME\u2019 is ascending. The \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "user_name": { + "type": "string", + "description": "The name of the user whose details are to be viewed." + }, + "opc_request_id": { "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id", + "user_name" + ] + }, + "mutable": false + }, + { + "name": "list_proxy_users", + "description": "Returns proxy users who can act as the specified user.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_proxy_users", + "skills": [ + "users-and-privileges-rbac-audit" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "name": { + "type": "string", + "description": "A filter to return only resources that match the entire name." + }, + "opc_named_credential_id": { + "type": "string", + "description": "The OCID of the Named Credential." + }, + "sort_by": { + "type": "string", + "enum": [ + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018NAME\u2019 is ascending. The \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"NAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "user_name": { + "type": "string", + "description": "The name of the user whose details are to be viewed." + }, + "opc_request_id": { "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id", + "user_name" + ] + }, + "mutable": false + }, + { + "name": "list_region_subscriptions", + "description": "Lists region subscriptions for a tenancy. Returns `regionName`, `regionKey`, subscription `status`, and `isHomeRegion` to confirm enabled-region coverage.", + "service": "identity", + "client": "IdentityClient", + "operation": "list_region_subscriptions", + "skills": [ + "oci-common" + ], + "inputSchema": { + "type": "object", + "properties": { + "tenancy_id": { + "type": "string", + "description": "The OCID of the tenancy." + } + }, + "additionalProperties": false, + "required": [ + "tenancy_id" + ] + }, + "mutable": false + }, + { + "name": "list_regions", + "description": "Lists regions offered by Oracle Cloud Infrastructure. Returns region identifiers such as `name` (for example, `us-phoenix-1`) and `key` (for example, `PHX`).", + "service": "identity", + "client": "IdentityClient", + "operation": "list_regions", + "skills": [ + "oci-common" + ], + "inputSchema": { + "type": "object", + "properties": {}, + "additionalProperties": false + }, + "mutable": false + }, + { + "name": "list_roles", + "description": "Returns roles granted to a specific user.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_roles", + "skills": [ + "users-and-privileges-rbac-audit" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "name": { + "type": "string", + "description": "A filter to return only resources that match the entire name." + }, + "opc_named_credential_id": { + "type": "string", + "description": "The OCID of the Named Credential." + }, + "sort_by": { + "type": "string", + "enum": [ + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018NAME\u2019 is ascending. The \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" }, "user_name": { - "description": "The name of the user whose details are to be viewed.", + "type": "string", + "description": "The name of the user whose details are to be viewed." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "managed_database_id", "user_name" - ], - "type": "object" + ] }, "mutable": false }, @@ -5361,35 +8213,45 @@ "database-performance-analysis" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "database_id": { - "description": "Optional OCID of the associated DBaaS entity.", - "type": "string" + "type": "string", + "description": "Optional OCID of the associated DBaaS entity." }, "id": { - "description": "OCID of the database insight resource.", - "type": "string" + "type": "string", + "description": "OCID of the database insight resource." }, "plan_hash": { - "description": "Unique plan hash for a SQL Plan of a particular SQL Statement. Example: `9820154385`", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "integer" + }, + "description": "Unique plan hash for a SQL Plan of a particular SQL Statement. Example: `9820154385`" }, "sql_identifier": { - "description": "Unique SQL_ID for a SQL Statement. Example: `6rgjh9bjmy2s7`", + "type": "string", + "description": "Unique SQL_ID for a SQL Statement. Example: `6rgjh9bjmy2s7`" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id", "sql_identifier", "plan_hash" - ], - "type": "object" + ] }, "mutable": false }, @@ -5419,13 +8281,13 @@ }, "time_interval_start": { "type": "string", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\nThe minimum allowed value is 2 years prior to the current day.\ntimeIntervalStart and timeIntervalEnd parameters are used together.\nIf analysisTimeInterval is specified, this parameter is ignored.\n", - "format": "date-time" + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\nThe minimum allowed value is 2 years prior to the current day.\ntimeIntervalStart and timeIntervalEnd parameters are used together.\nIf analysisTimeInterval is specified, this parameter is ignored.\n" }, "time_interval_end": { "type": "string", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\ntimeIntervalStart and timeIntervalEnd are used together.\nIf timeIntervalEnd is not specified, current time is used as timeIntervalEnd.\n", - "format": "date-time" + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\ntimeIntervalStart and timeIntervalEnd are used together.\nIf timeIntervalEnd is not specified, current time is used as timeIntervalEnd.\n" }, "page": { "type": "string", @@ -5437,31 +8299,31 @@ }, "defined_tag_equals": { "type": "array", - "description": "A list of tag filters to apply. Only resources with a defined tag matching the value will be returned.\nEach item in the list has the format \"{namespace}.{tagName}.{value}\". All inputs are case-insensitive.\nMultiple values for the same key (i.e. same namespace and tag name) are interpreted as \"OR\".\nValues for different keys (i.e. different namespaces, different tag names, or both) are interpreted as \"AND\".\n", "items": { "type": "string" - } + }, + "description": "A list of tag filters to apply. Only resources with a defined tag matching the value will be returned.\nEach item in the list has the format \"{namespace}.{tagName}.{value}\". All inputs are case-insensitive.\nMultiple values for the same key (i.e. same namespace and tag name) are interpreted as \"OR\".\nValues for different keys (i.e. different namespaces, different tag names, or both) are interpreted as \"AND\".\n" }, "freeform_tag_equals": { "type": "array", - "description": "A list of tag filters to apply. Only resources with a freeform tag matching the value will be returned.\nThe key for each tag is \"{tagName}.{value}\". All inputs are case-insensitive.\nMultiple values for the same tag name are interpreted as \"OR\". Values for different tag names are interpreted as \"AND\".\n", "items": { "type": "string" - } + }, + "description": "A list of tag filters to apply. Only resources with a freeform tag matching the value will be returned.\nThe key for each tag is \"{tagName}.{value}\". All inputs are case-insensitive.\nMultiple values for the same tag name are interpreted as \"OR\". Values for different tag names are interpreted as \"AND\".\n" }, "defined_tag_exists": { "type": "array", - "description": "A list of tag existence filters to apply. Only resources for which the specified defined tags exist will be returned.\nEach item in the list has the format \"{namespace}.{tagName}.true\" (for checking existence of a defined tag)\nor \"{namespace}.true\". All inputs are case-insensitive.\nCurrently, only existence (\"true\" at the end) is supported. Absence (\"false\" at the end) is not supported.\nMultiple values for the same key (i.e. same namespace and tag name) are interpreted as \"OR\".\nValues for different keys (i.e. different namespaces, different tag names, or both) are interpreted as \"AND\".\n", "items": { "type": "string" - } + }, + "description": "A list of tag existence filters to apply. Only resources for which the specified defined tags exist will be returned.\nEach item in the list has the format \"{namespace}.{tagName}.true\" (for checking existence of a defined tag)\nor \"{namespace}.true\". All inputs are case-insensitive.\nCurrently, only existence (\"true\" at the end) is supported. Absence (\"false\" at the end) is not supported.\nMultiple values for the same key (i.e. same namespace and tag name) are interpreted as \"OR\".\nValues for different keys (i.e. different namespaces, different tag names, or both) are interpreted as \"AND\".\n" }, "freeform_tag_exists": { "type": "array", - "description": "A list of tag existence filters to apply. Only resources for which the specified freeform tags exist the value will be returned.\nThe key for each tag is \"{tagName}.true\". All inputs are case-insensitive.\nCurrently, only existence (\"true\" at the end) is supported. Absence (\"false\" at the end) is not supported.\nMultiple values for different tag names are interpreted as \"AND\".\n", "items": { "type": "string" - } + }, + "description": "A list of tag existence filters to apply. Only resources for which the specified freeform tags exist the value will be returned.\nThe key for each tag is \"{tagName}.true\". All inputs are case-insensitive.\nCurrently, only existence (\"true\" at the end) is supported. Absence (\"false\" at the end) is not supported.\nMultiple values for different tag names are interpreted as \"AND\".\n" }, "compartment_id_in_subtree": { "type": "boolean", @@ -5486,36 +8348,74 @@ "database-performance-analysis" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "compartment_id_in_subtree": { - "description": "A flag to search all resources within a given compartment and all sub-compartments.", - "type": "boolean" + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." }, "database_id": { - "description": "Optional list of database OCIDs of the assosicated DBaaS entity.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database OCIDs of the assosicated DBaaS entity." }, "id": { - "description": "Optional list of database OCIDs of the database insight resource.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database OCIDs of the database insight resource." + }, + "sql_identifier": { + "type": "array", + "items": { + "type": "string" + }, + "description": "One or more unique SQL_IDs for a SQL Statement. Example: `6rgjh9bjmy2s7`" + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } }, - "sql_identifier": { - "description": "One or more unique SQL_IDs for a SQL Statement. Example: `6rgjh9bjmy2s7`", - "items": {}, - "type": "array" + "opc_request_id": { + "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id", "sql_identifier" - ], - "type": "object" + ] }, "mutable": false }, @@ -5529,41 +8429,56 @@ "users-and-privileges-rbac-audit" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "managed_database_id": { - "description": "The OCID of the Managed Database.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database." }, "name": { - "description": "A filter to return only resources that match the entire name.", - "type": "string" + "type": "string", + "description": "A filter to return only resources that match the entire name." }, "opc_named_credential_id": { - "description": "The OCID of the Named Credential.", - "type": "string" + "type": "string", + "description": "The OCID of the Named Credential." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018NAME\u2019 is ascending. The \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"NAME\"", - "type": "string" + "type": "string", + "enum": [ + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018NAME\u2019 is ascending. The \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"NAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" }, "user_name": { - "description": "The name of the user whose details are to be viewed.", + "type": "string", + "description": "The name of the user whose details are to be viewed." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "managed_database_id", "user_name" - ], - "type": "object" + ] }, "mutable": false }, @@ -5577,36 +8492,52 @@ "storage-and-space-tablespaces-asm" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "managed_database_id": { - "description": "The OCID of the Managed Database.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database." }, "name": { - "description": "A filter to return only resources that match the entire name.", - "type": "string" + "type": "string", + "description": "A filter to return only resources that match the entire name." }, "opc_named_credential_id": { - "description": "The OCID of the Named Credential.", - "type": "string" + "type": "string", + "description": "The OCID of the Named Credential." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIMECREATED", + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "managed_database_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -5620,36 +8551,52 @@ "users-and-privileges-rbac-audit" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "managed_database_id": { - "description": "The OCID of the Managed Database.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database." }, "name": { - "description": "A filter to return only resources that match the entire name.", - "type": "string" + "type": "string", + "description": "A filter to return only resources that match the entire name." }, "opc_named_credential_id": { - "description": "The OCID of the Named Credential.", - "type": "string" + "type": "string", + "description": "The OCID of the Named Credential." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIMECREATED", + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "managed_database_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -5663,28 +8610,43 @@ "async-work-requests-long-running-operations" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "sort_by": { - "description": "The field to sort by. Only one sort order may be provided and the default order for timeAccepted is descending.\n\nAllowed values are: \"timeAccepted\"", - "type": "string" + "type": "string", + "enum": [ + "timeAccepted" + ], + "description": "The field to sort by. Only one sort order may be provided and the default order for timeAccepted is descending.\n\nAllowed values are: \"timeAccepted\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" }, "work_request_id": { - "description": "The OCID of the asynchronous work request.", + "type": "string", + "description": "The OCID of the asynchronous work request." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "work_request_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -5698,28 +8660,43 @@ "async-work-requests-long-running-operations" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "sort_by": { - "description": "The field to sort by. Only one sort order may be provided and the default order for timeAccepted is descending.\n\nAllowed values are: \"timeAccepted\"", - "type": "string" + "type": "string", + "enum": [ + "timeAccepted" + ], + "description": "The field to sort by. Only one sort order may be provided and the default order for timeAccepted is descending.\n\nAllowed values are: \"timeAccepted\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" }, "work_request_id": { - "description": "The OCID of the asynchronous work request.", + "type": "string", + "description": "The OCID of the asynchronous work request." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "work_request_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -5733,40 +8710,63 @@ "async-work-requests-long-running-operations" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "resource_id": { - "description": "The OCID of the resource affected by the work request.", - "type": "string" + "type": "string", + "description": "The OCID of the resource affected by the work request." }, "sort_by": { - "description": "The field to sort by. Only one sort order may be provided and the default order for timeAccepted is descending.\n\nAllowed values are: \"timeAccepted\"", - "type": "string" + "type": "string", + "enum": [ + "timeAccepted" + ], + "description": "The field to sort by. Only one sort order may be provided and the default order for timeAccepted is descending.\n\nAllowed values are: \"timeAccepted\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" }, "status": { - "description": "A filter that returns the resources whose status matches the given WorkRequestStatus.\n\nAllowed values are: \"ACCEPTED\", \"IN_PROGRESS\", \"FAILED\", \"SUCCEEDED\", \"CANCELING\", \"CANCELED\"", - "type": "string" + "type": "string", + "enum": [ + "ACCEPTED", + "IN_PROGRESS", + "FAILED", + "SUCCEEDED", + "CANCELING", + "CANCELED" + ], + "description": "A filter that returns the resources whose status matches the given WorkRequestStatus.\n\nAllowed values are: \"ACCEPTED\", \"IN_PROGRESS\", \"FAILED\", \"SUCCEEDED\", \"CANCELING\", \"CANCELED\"" }, "work_request_id": { - "description": "The OCID of the asynchronous work request.", + "type": "string", + "description": "The OCID of the asynchronous work request." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -5783,28 +8783,25 @@ "type": "object", "properties": { "managed_database_group_id": { - "type": "string", - "description": "The [OCID](/Content/General/Concepts/identifiers.htm) of the Managed Database Group." + "type": "string" + }, + "opc_request_id": { + "type": "string" + }, + "opc_retry_token": { + "type": "string" }, "remove_managed_database_from_managed_database_group_details": { "type": "object", - "description": "The Managed Database details required to remove it from a Managed Database Group.", "properties": { - "managedDatabaseId": { - "type": "string", - "description": "The [OCID](/Content/General/Concepts/identifiers.htm) of the Managed Database.\n", - "minLength": 1, - "maxLength": 255 + "managed_database_id": { + "type": "string" } - } - }, - "opc_request_id": { - "type": "string", - "description": "The client request ID for tracing." - }, - "opc_retry_token": { - "type": "string", - "description": "A token that uniquely identifies a request so it can be retried in case of a timeout or\nserver error without risk of executing that same action again. Retry tokens expire after 24\nhours, but can be invalidated before then due to conflicting operations. For example, if a resource\nhas been deleted and purged from the system, then a retry of the original creation request\nmight be rejected.\n" + }, + "additionalProperties": false, + "required": [ + "managed_database_id" + ] } }, "additionalProperties": false, @@ -5813,7 +8810,7 @@ "remove_managed_database_from_managed_database_group_details" ] }, - "mutable": true + "mutable": false }, { "name": "run_historic_addm", @@ -5827,37 +8824,33 @@ "inputSchema": { "type": "object", "properties": { - "opc_retry_token": { - "type": "string", - "description": "A token that uniquely identifies a request so it can be retried in case of a timeout or\nserver error without risk of executing that same action again. Retry tokens expire after 24\nhours, but can be invalidated before then due to conflicting operations. For example, if a resource\nhas been deleted and purged from the system, then a retry of the original creation request\nmight be rejected.\n" - }, "managed_database_id": { - "type": "string", - "description": "The [OCID](/Content/General/Concepts/identifiers.htm) of the Managed Database." + "type": "string" + }, + "opc_named_credential_id": { + "type": "string" }, "opc_request_id": { - "type": "string", - "description": "Unique identifier for the request.\n" + "type": "string" }, - "opc_named_credential_id": { - "type": "string", - "description": "The OCID of the Named Credential." + "opc_retry_token": { + "type": "string" }, "run_historic_addm_details": { "type": "object", - "description": "The details of the ADDM task, which include the beginning and ending AWR snapshot IDs.\n", "properties": { - "startSnapshotId": { - "type": "integer", - "description": "The ID number of the beginning AWR snapshot.", - "format": "int64" + "start_snapshot_id": { + "type": "integer" }, - "endSnapshotId": { - "type": "integer", - "description": "The ID of the ending AWR snapshot.", - "format": "int64" + "end_snapshot_id": { + "type": "integer" } - } + }, + "additionalProperties": false, + "required": [ + "start_snapshot_id", + "end_snapshot_id" + ] } }, "additionalProperties": false, @@ -5866,7 +8859,7 @@ "run_historic_addm_details" ] }, - "mutable": true + "mutable": false }, { "name": "summarize_addm_db_findings", @@ -5878,60 +8871,106 @@ "database-addm-analysis" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "category_name": { - "description": "Optional value filter to match the finding category exactly.", - "type": "string" + "type": "string", + "description": "Optional value filter to match the finding category exactly." }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "compartment_id_in_subtree": { - "description": "A flag to search all resources within a given compartment and all sub-compartments.", - "type": "boolean" + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." }, "database_id": { - "description": "Optional list of database OCIDs of the associated DBaaS entity.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database OCIDs of the associated DBaaS entity." }, "id": { - "description": "Optional list of database insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource OCIDs." }, "instance_number": { - "description": "The optional single value query parameter to filter by database instance number.", - "type": "string" + "type": "string", + "description": "The optional single value query parameter to filter by database instance number." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "sort_by": { - "description": "Field name for sorting the ADDM finding summary data Allowed values are: \"impactOverallPercent\", \"impactMaxPercent\", \"impactAvgActiveSessions\", \"frequencyCount\"", - "type": "string" + "type": "string", + "enum": [ + "impactOverallPercent", + "impactMaxPercent", + "impactAvgActiveSessions", + "frequencyCount" + ], + "description": "Field name for sorting the ADDM finding summary data Allowed values are: \"impactOverallPercent\", \"impactMaxPercent\", \"impactAvgActiveSessions\", \"frequencyCount\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } }, - "sort_order": { - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", - "type": "string" + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } }, - "time_interval_end": { - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", - "format": "date-time", - "type": "string" + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } }, - "time_interval_start": { - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", - "format": "date-time", + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -5945,65 +8984,109 @@ "database-addm-analysis" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "compartment_id_in_subtree": { - "description": "A flag to search all resources within a given compartment and all sub-compartments.", - "type": "boolean" + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." }, "database_id": { - "description": "Optional list of database OCIDs of the associated DBaaS entity.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database OCIDs of the associated DBaaS entity." }, "id": { - "description": "Optional list of database insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource OCIDs." }, "instance_number": { - "description": "The optional single value query parameter to filter by database instance number.", - "type": "string" + "type": "string", + "description": "The optional single value query parameter to filter by database instance number." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "name": { - "description": "Required filter to return only changes for the specified parameter. The match is case sensitive.", - "type": "string" + "type": "string", + "description": "Required filter to return only changes for the specified parameter. The match is case sensitive." }, "sort_by": { - "description": "Field name for sorting the database parameter change data Allowed values are: \"isChanged\", \"beginSnapId\"", - "type": "string" + "type": "string", + "enum": [ + "isChanged", + "beginSnapId" + ], + "description": "Field name for sorting the database parameter change data Allowed values are: \"isChanged\", \"beginSnapId\"" }, "sort_order": { - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" }, "time_interval_end": { - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." }, "time_interval_start": { - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." }, "value_contains": { - "description": "Optional filter to return only resources whose value contains the substring given. The match is not case sensitive.", + "type": "string", + "description": "Optional filter to return only resources whose value contains the substring given. The match is not case sensitive." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id", "name" - ], - "type": "object" + ] }, "mutable": false }, @@ -6017,76 +9100,132 @@ "database-addm-analysis" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "category_name": { - "description": "Optional value filter to match an ADDM database parameter category exactly. Use a category name returned by ADDM database parameter category results.", - "type": "string" + "type": "string", + "description": "Optional value filter to match an ADDM database parameter category exactly. Use a category name returned by ADDM database parameter category results." }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "compartment_id_in_subtree": { - "description": "A flag to search all resources within a given compartment and all sub-compartments.", - "type": "boolean" + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." }, "database_id": { - "description": "Optional list of database OCIDs of the associated DBaaS entity.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database OCIDs of the associated DBaaS entity." }, "has_recommendations": { - "description": "Optional filter to return only parameters which have recommendations in the specified time period. Valid values include: TRUE, FALSE Allowed values are: \"TRUE\", \"FALSE\"", - "type": "string" + "type": "string", + "enum": [ + "TRUE", + "FALSE" + ], + "description": "Optional filter to return only parameters which have recommendations in the specified time period. Valid values include: TRUE, FALSE Allowed values are: \"TRUE\", \"FALSE\"" }, "id": { - "description": "Optional list of database insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource OCIDs." }, "instance_number": { - "description": "The optional single value query parameter to filter by database instance number.", - "type": "string" + "type": "string", + "description": "The optional single value query parameter to filter by database instance number." }, "is_changed": { - "description": "Optional filter to return only parameters whose value changed in the specified time period. Valid values include: TRUE, FALSE Allowed values are: \"TRUE\", \"FALSE\"", - "type": "string" + "type": "string", + "enum": [ + "TRUE", + "FALSE" + ], + "description": "Optional filter to return only parameters whose value changed in the specified time period. Valid values include: TRUE, FALSE Allowed values are: \"TRUE\", \"FALSE\"" }, "is_default": { - "description": "Optional filter to return only parameters whose end value was set to the default value (TRUE) or was specified in the parameter file (FALSE). Valid values include: TRUE, FALSE Allowed values are: \"TRUE\", \"FALSE\"", - "type": "string" + "type": "string", + "enum": [ + "TRUE", + "FALSE" + ], + "description": "Optional filter to return only parameters whose end value was set to the default value (TRUE) or was specified in the parameter file (FALSE). Valid values include: TRUE, FALSE Allowed values are: \"TRUE\", \"FALSE\"" }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "name_or_value_contains": { - "description": "Optional filter to return only resources whose name or value contains the substring given. The match is not case sensitive.", - "type": "string" + "type": "string", + "description": "Optional filter to return only resources whose name or value contains the substring given. The match is not case sensitive." }, "sort_by": { - "description": "Field name for sorting the database parameter data Allowed values are: \"isChanged\", \"name\"", - "type": "string" + "type": "string", + "enum": [ + "isChanged", + "name" + ], + "description": "Field name for sorting the database parameter data Allowed values are: \"isChanged\", \"name\"" }, "sort_order": { - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" }, "time_interval_end": { - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." }, "time_interval_start": { - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "type": "string", "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -6100,80 +9239,125 @@ "database-addm-analysis" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "category_name": { - "description": "Optional value filter to match the finding category exactly.", - "type": "string" + "type": "string", + "description": "Optional value filter to match the finding category exactly." }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "compartment_id_in_subtree": { - "description": "A flag to search all resources within a given compartment and all sub-compartments.", - "type": "boolean" + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." }, "database_id": { - "description": "Optional list of database OCIDs of the associated DBaaS entity.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database OCIDs of the associated DBaaS entity." }, "finding_identifier": { - "description": "Unique finding ID", - "type": "string" + "type": "string", + "description": "Unique finding ID" }, "id": { - "description": "Optional list of database insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource OCIDs." }, "instance_number": { - "description": "The optional single value query parameter to filter by database instance number.", - "type": "string" + "type": "string", + "description": "The optional single value query parameter to filter by database instance number." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "name": { - "description": "Optional filter to return only resources whose name exactly matches the substring given. The match is case sensitive. Only considered when categoryName is DATABASE_CONFIGURATION.", - "type": "string" + "type": "string", + "description": "Optional filter to return only resources whose name exactly matches the substring given. The match is case sensitive. Only considered when categoryName is DATABASE_CONFIGURATION." }, "name_contains": { - "description": "Optional filter to return only resources whose name contains the substring given. The match is not case sensitive. Only considered when categoryName is DATABASE_CONFIGURATION.", - "type": "string" + "type": "string", + "description": "Optional filter to return only resources whose name contains the substring given. The match is not case sensitive. Only considered when categoryName is DATABASE_CONFIGURATION." }, "owner_or_name_contains": { - "description": "Optional filter to return only resources whose owner or name contains the substring given. The match is not case sensitive. Only considered when categoryName is SCHEMA_OBJECT.", - "type": "string" + "type": "string", + "description": "Optional filter to return only resources whose owner or name contains the substring given. The match is not case sensitive. Only considered when categoryName is SCHEMA_OBJECT." }, "sort_by": { - "description": "Field name for sorting the recommendation data Allowed values are: \"maxBenefitPercent\", \"maxBenefitAvgActiveSessions\", \"frequencyCount\"", - "type": "string" + "type": "string", + "enum": [ + "maxBenefitPercent", + "maxBenefitAvgActiveSessions", + "frequencyCount" + ], + "description": "Field name for sorting the recommendation data Allowed values are: \"maxBenefitPercent\", \"maxBenefitAvgActiveSessions\", \"frequencyCount\"" }, "sort_order": { - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" }, "sql_identifier": { - "description": "Optional filter to return only resources whose sql id matches the value given. Only considered when categoryName is SQL_TUNING.", - "type": "string" + "type": "string", + "description": "Optional filter to return only resources whose sql id matches the value given. Only considered when categoryName is SQL_TUNING." }, "time_interval_end": { - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." }, "time_interval_start": { - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "type": "string", "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -6187,50 +9371,88 @@ "database-addm-analysis" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "compartment_id_in_subtree": { - "description": "A flag to search all resources within a given compartment and all sub-compartments.", - "type": "boolean" + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." }, "database_id": { - "description": "Optional list of database OCIDs of the associated DBaaS entity.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database OCIDs of the associated DBaaS entity." }, "id": { - "description": "Optional list of database insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource OCIDs." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "object_identifier": { - "description": "One or more unique Object id (from RDBMS)", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "integer" + }, + "description": "One or more unique Object id (from RDBMS)" }, "time_interval_end": { - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." }, "time_interval_start": { - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "type": "string", "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id", "object_identifier" - ], - "type": "object" + ] }, "mutable": false }, @@ -6244,50 +9466,88 @@ "database-addm-analysis" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "compartment_id_in_subtree": { - "description": "A flag to search all resources within a given compartment and all sub-compartments.", - "type": "boolean" + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." }, "database_id": { - "description": "Optional list of database OCIDs of the associated DBaaS entity.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database OCIDs of the associated DBaaS entity." }, "id": { - "description": "Optional list of database insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource OCIDs." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "sql_identifier": { - "description": "One or more unique SQL_IDs for a SQL Statement. Example: `6rgjh9bjmy2s7`", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "One or more unique SQL_IDs for a SQL Statement. Example: `6rgjh9bjmy2s7`" }, "time_interval_end": { - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." }, "time_interval_start": { - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "type": "string", "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id", "sql_identifier" - ], - "type": "object" + ] }, "mutable": false }, @@ -6301,54 +9561,82 @@ "logs-and-alerts-attention-alert-logs" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "group_by": { - "description": "The optional parameter used to group different alert logs.\n\nAllowed values are: \"LEVEL\", \"TYPE\"", - "type": "string" + "type": "string", + "enum": [ + "LEVEL", + "TYPE" + ], + "description": "The optional parameter used to group different alert logs.\n\nAllowed values are: \"LEVEL\", \"TYPE\"" }, "is_regular_expression": { - "description": "The flag to indicate whether the search text is regular expression or not.", - "type": "boolean" + "type": "boolean", + "description": "The flag to indicate whether the search text is regular expression or not." }, "level_filter": { - "description": "The optional parameter to filter the alert logs by log level.\n\nAllowed values are: \"CRITICAL\", \"SEVERE\", \"IMPORTANT\", \"NORMAL\", \"ALL\"", - "type": "string" + "type": "string", + "enum": [ + "CRITICAL", + "SEVERE", + "IMPORTANT", + "NORMAL", + "ALL" + ], + "description": "The optional parameter to filter the alert logs by log level.\n\nAllowed values are: \"CRITICAL\", \"SEVERE\", \"IMPORTANT\", \"NORMAL\", \"ALL\"" }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "log_search_text": { - "description": "The optional query parameter to filter the attention or alert logs by search text.", - "type": "string" + "type": "string", + "description": "The optional query parameter to filter the attention or alert logs by search text." }, "managed_database_id": { - "description": "The OCID of the Managed Database.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database." }, "opc_named_credential_id": { - "description": "The OCID of the Named Credential.", - "type": "string" + "type": "string", + "description": "The OCID of the Named Credential." }, "time_greater_than_or_equal_to": { - "description": "The optional greater than or equal to timestamp to filter the logs.", + "type": "string", "format": "date-time", - "type": "string" + "description": "The optional greater than or equal to timestamp to filter the logs." }, "time_less_than_or_equal_to": { - "description": "The optional less than or equal to timestamp to filter the logs.", + "type": "string", "format": "date-time", - "type": "string" + "description": "The optional less than or equal to timestamp to filter the logs." }, "type_filter": { - "description": "The optional parameter to filter the attention or alert logs by type.\n\nAllowed values are: \"UNKNOWN\", \"INCIDENT_ERROR\", \"ERROR\", \"WARNING\", \"NOTIFICATION\", \"TRACE\", \"ALL\"", + "type": "string", + "enum": [ + "UNKNOWN", + "INCIDENT_ERROR", + "ERROR", + "WARNING", + "NOTIFICATION", + "TRACE", + "ALL" + ], + "description": "The optional parameter to filter the attention or alert logs by type.\n\nAllowed values are: \"UNKNOWN\", \"INCIDENT_ERROR\", \"ERROR\", \"WARNING\", \"NOTIFICATION\", \"TRACE\", \"ALL\"" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "managed_database_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -6362,54 +9650,82 @@ "logs-and-alerts-attention-alert-logs" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "group_by": { - "description": "The optional parameter used to group different attention logs.\n\nAllowed values are: \"URGENCY\", \"TYPE\"", - "type": "string" + "type": "string", + "enum": [ + "URGENCY", + "TYPE" + ], + "description": "The optional parameter used to group different attention logs.\n\nAllowed values are: \"URGENCY\", \"TYPE\"" }, "is_regular_expression": { - "description": "The flag to indicate whether the search text is regular expression or not.", - "type": "boolean" + "type": "boolean", + "description": "The flag to indicate whether the search text is regular expression or not." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "log_search_text": { - "description": "The optional query parameter to filter the attention or alert logs by search text.", - "type": "string" + "type": "string", + "description": "The optional query parameter to filter the attention or alert logs by search text." }, "managed_database_id": { - "description": "The OCID of the Managed Database.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database." }, "opc_named_credential_id": { - "description": "The OCID of the Named Credential.", - "type": "string" + "type": "string", + "description": "The OCID of the Named Credential." }, "time_greater_than_or_equal_to": { - "description": "The optional greater than or equal to timestamp to filter the logs.", + "type": "string", "format": "date-time", - "type": "string" + "description": "The optional greater than or equal to timestamp to filter the logs." }, "time_less_than_or_equal_to": { - "description": "The optional less than or equal to timestamp to filter the logs.", + "type": "string", "format": "date-time", - "type": "string" + "description": "The optional less than or equal to timestamp to filter the logs." }, "type_filter": { - "description": "The optional parameter to filter the attention or alert logs by type.\n\nAllowed values are: \"UNKNOWN\", \"INCIDENT_ERROR\", \"ERROR\", \"WARNING\", \"NOTIFICATION\", \"TRACE\", \"ALL\"", - "type": "string" + "type": "string", + "enum": [ + "UNKNOWN", + "INCIDENT_ERROR", + "ERROR", + "WARNING", + "NOTIFICATION", + "TRACE", + "ALL" + ], + "description": "The optional parameter to filter the attention or alert logs by type.\n\nAllowed values are: \"UNKNOWN\", \"INCIDENT_ERROR\", \"ERROR\", \"WARNING\", \"NOTIFICATION\", \"TRACE\", \"ALL\"" }, "urgency_filter": { - "description": "The optional parameter to filter the attention logs by urgency.\n\nAllowed values are: \"IMMEDIATE\", \"SOON\", \"DEFERRABLE\", \"INFO\", \"ALL\"", + "type": "string", + "enum": [ + "IMMEDIATE", + "SOON", + "DEFERRABLE", + "INFO", + "ALL" + ], + "description": "The optional parameter to filter the attention logs by urgency.\n\nAllowed values are: \"IMMEDIATE\", \"SOON\", \"DEFERRABLE\", \"INFO\", \"ALL\"" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "managed_database_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -6420,62 +9736,83 @@ "client": "OperationsInsightsClient", "operation": "summarize_awr_database_cpu_usages", "skills": [ - "awrhubs" + "database-performance-analysis" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "awr_hub_id": { - "description": "Unique Awr Hub identifier", - "type": "string" + "type": "string", + "description": "Unique Awr Hub identifier" }, "awr_source_database_identifier": { - "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.", - "type": "string" + "type": "string", + "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results." }, "begin_snapshot_identifier_greater_than_or_equal_to": { - "description": "The optional greater than or equal to filter on the snapshot ID.", - "type": "integer" + "type": "integer", + "description": "The optional greater than or equal to filter on the snapshot ID." }, "end_snapshot_identifier_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the snapshot Identifier.", - "type": "integer" + "type": "integer", + "description": "The optional less than or equal to query parameter to filter the snapshot Identifier." }, "instance_number": { - "description": "The optional single value query parameter to filter by database instance number.", - "type": "string" + "type": "string", + "description": "The optional single value query parameter to filter by database instance number." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "session_type": { - "description": "The optional query parameter to filter ASH activities by FOREGROUND or BACKGROUND. Allowed values are: \"FOREGROUND\", \"BACKGROUND\", \"ALL\"", - "type": "string" + "type": "string", + "enum": [ + "FOREGROUND", + "BACKGROUND", + "ALL" + ], + "description": "The optional query parameter to filter ASH activities by FOREGROUND or BACKGROUND. Allowed values are: \"FOREGROUND\", \"BACKGROUND\", \"ALL\"" }, "sort_by": { - "description": "The option to sort the AWR CPU usage summary data. Allowed values are: \"TIME_SAMPLED\", \"AVG_VALUE\"", - "type": "string" + "type": "string", + "enum": [ + "TIME_SAMPLED", + "AVG_VALUE" + ], + "description": "The option to sort the AWR CPU usage summary data. Allowed values are: \"TIME_SAMPLED\", \"AVG_VALUE\"" }, "sort_order": { - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" }, "time_greater_than_or_equal_to": { - "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "type": "string", "format": "date-time", - "type": "string" + "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" }, "time_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "type": "string", "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "awr_hub_id", "awr_source_database_identifier" - ], - "type": "object" + ] }, "mutable": false }, @@ -6486,64 +9823,82 @@ "client": "OperationsInsightsClient", "operation": "summarize_awr_database_metrics", "skills": [ - "awrhubs" + "database-performance-analysis" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "awr_hub_id": { - "description": "Unique Awr Hub identifier", - "type": "string" + "type": "string", + "description": "Unique Awr Hub identifier" }, "awr_source_database_identifier": { - "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.", - "type": "string" + "type": "string", + "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results." }, "begin_snapshot_identifier_greater_than_or_equal_to": { - "description": "The optional greater than or equal to filter on the snapshot ID.", - "type": "integer" + "type": "integer", + "description": "The optional greater than or equal to filter on the snapshot ID." }, "end_snapshot_identifier_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the snapshot Identifier.", - "type": "integer" + "type": "integer", + "description": "The optional less than or equal to query parameter to filter the snapshot Identifier." }, "instance_number": { - "description": "The optional single value query parameter to filter by database instance number.", - "type": "string" + "type": "string", + "description": "The optional single value query parameter to filter by database instance number." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "name": { - "description": "The required multiple value query parameter to filter the entity name.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "The required multiple value query parameter to filter the entity name." }, "sort_by": { - "description": "The option to sort the AWR time series summary data. Allowed values are: \"TIMESTAMP\", \"NAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIMESTAMP", + "NAME" + ], + "description": "The option to sort the AWR time series summary data. Allowed values are: \"TIMESTAMP\", \"NAME\"" }, "sort_order": { - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" }, "time_greater_than_or_equal_to": { - "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "type": "string", "format": "date-time", - "type": "string" + "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" }, "time_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "type": "string", "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "awr_hub_id", "awr_source_database_identifier", "name" - ], - "type": "object" + ] }, "mutable": false }, @@ -6554,63 +9909,79 @@ "client": "OperationsInsightsClient", "operation": "summarize_awr_database_parameter_changes", "skills": [ - "awrhubs" + "database-performance-analysis" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "awr_hub_id": { - "description": "Unique Awr Hub identifier", - "type": "string" + "type": "string", + "description": "Unique Awr Hub identifier" }, "awr_source_database_identifier": { - "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.", - "type": "string" + "type": "string", + "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results." }, "begin_snapshot_identifier_greater_than_or_equal_to": { - "description": "The optional greater than or equal to filter on the snapshot ID.", - "type": "integer" + "type": "integer", + "description": "The optional greater than or equal to filter on the snapshot ID." }, "end_snapshot_identifier_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the snapshot Identifier.", - "type": "integer" + "type": "integer", + "description": "The optional less than or equal to query parameter to filter the snapshot Identifier." }, "instance_number": { - "description": "The optional single value query parameter to filter by database instance number.", - "type": "string" + "type": "string", + "description": "The optional single value query parameter to filter by database instance number." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "name": { - "description": "The required single value query parameter to filter the entity name.", - "type": "string" + "type": "string", + "description": "The required single value query parameter to filter the entity name." }, "sort_by": { - "description": "The option to sort the AWR database parameter change history data. Allowed values are: \"IS_CHANGED\", \"NAME\"", - "type": "string" + "type": "string", + "enum": [ + "IS_CHANGED", + "NAME" + ], + "description": "The option to sort the AWR database parameter change history data. Allowed values are: \"IS_CHANGED\", \"NAME\"" }, "sort_order": { - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" }, "time_greater_than_or_equal_to": { - "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "type": "string", "format": "date-time", - "type": "string" + "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" }, "time_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "type": "string", "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "awr_hub_id", "awr_source_database_identifier", "name" - ], - "type": "object" + ] }, "mutable": false }, @@ -6621,79 +9992,110 @@ "client": "OperationsInsightsClient", "operation": "summarize_awr_database_parameters", "skills": [ - "awrhubs" + "database-performance-analysis" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "awr_hub_id": { - "description": "Unique Awr Hub identifier", - "type": "string" + "type": "string", + "description": "Unique Awr Hub identifier" }, "awr_source_database_identifier": { - "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.", - "type": "string" + "type": "string", + "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results." }, "begin_snapshot_identifier_greater_than_or_equal_to": { - "description": "The optional greater than or equal to filter on the snapshot ID.", - "type": "integer" + "type": "integer", + "description": "The optional greater than or equal to filter on the snapshot ID." }, "end_snapshot_identifier_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the snapshot Identifier.", - "type": "integer" + "type": "integer", + "description": "The optional less than or equal to query parameter to filter the snapshot Identifier." }, "instance_number": { - "description": "The optional single value query parameter to filter by database instance number.", - "type": "string" + "type": "string", + "description": "The optional single value query parameter to filter by database instance number." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "name": { - "description": "The optional multiple value query parameter to filter the entity name.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "The optional multiple value query parameter to filter the entity name." }, "name_contains": { - "description": "The optional contains query parameter to filter the entity name by any part of the name.", - "type": "string" + "type": "string", + "description": "The optional contains query parameter to filter the entity name by any part of the name." }, "sort_by": { - "description": "The option to sort the AWR database parameter change history data. Allowed values are: \"IS_CHANGED\", \"NAME\"", - "type": "string" + "type": "string", + "enum": [ + "IS_CHANGED", + "NAME" + ], + "description": "The option to sort the AWR database parameter change history data. Allowed values are: \"IS_CHANGED\", \"NAME\"" }, "sort_order": { - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" }, "time_greater_than_or_equal_to": { - "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "type": "string", "format": "date-time", - "type": "string" + "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" }, "time_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "type": "string", "format": "date-time", - "type": "string" + "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" }, "value_changed": { - "description": "The optional query parameter to filter database parameters whose values were changed. Allowed values are: \"Y\", \"N\"", - "type": "string" + "type": "string", + "enum": [ + "Y", + "N" + ], + "description": "The optional query parameter to filter database parameters whose values were changed. Allowed values are: \"Y\", \"N\"" }, "value_default": { - "description": "The optional query parameter to filter the database parameters that had the default value in the last snapshot. Allowed values are: \"TRUE\", \"FALSE\"", - "type": "string" + "type": "string", + "enum": [ + "TRUE", + "FALSE" + ], + "description": "The optional query parameter to filter the database parameters that had the default value in the last snapshot. Allowed values are: \"TRUE\", \"FALSE\"" }, "value_modified": { - "description": "The optional query parameter to filter the database parameters that had a modified value in the last snapshot. Allowed values are: \"MODIFIED\", \"SYSTEM_MOD\", \"FALSE\"", + "type": "string", + "enum": [ + "MODIFIED", + "SYSTEM_MOD", + "FALSE" + ], + "description": "The optional query parameter to filter the database parameters that had a modified value in the last snapshot. Allowed values are: \"MODIFIED\", \"SYSTEM_MOD\", \"FALSE\"" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "awr_hub_id", "awr_source_database_identifier" - ], - "type": "object" + ] }, "mutable": false }, @@ -6704,45 +10106,61 @@ "client": "OperationsInsightsClient", "operation": "summarize_awr_database_snapshot_ranges", "skills": [ - "awrhubs" + "database-performance-analysis" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "awr_hub_id": { - "description": "Unique Awr Hub identifier", - "type": "string" + "type": "string", + "description": "Unique Awr Hub identifier" }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "name": { - "description": "The optional single value query parameter to filter the entity name.", - "type": "string" + "type": "string", + "description": "The optional single value query parameter to filter the entity name." }, "sort_by": { - "description": "The option to sort the AWR summary data. Allowed values are: \"END_INTERVAL_TIME\", \"NAME\"", - "type": "string" + "type": "string", + "enum": [ + "END_INTERVAL_TIME", + "NAME" + ], + "description": "The option to sort the AWR summary data. Allowed values are: \"END_INTERVAL_TIME\", \"NAME\"" }, "sort_order": { - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" }, "time_greater_than_or_equal_to": { - "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "type": "string", "format": "date-time", - "type": "string" + "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" }, "time_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "type": "string", "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "awr_hub_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -6753,64 +10171,82 @@ "client": "OperationsInsightsClient", "operation": "summarize_awr_database_sysstats", "skills": [ - "awrhubs" + "database-performance-analysis" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "awr_hub_id": { - "description": "Unique Awr Hub identifier", - "type": "string" + "type": "string", + "description": "Unique Awr Hub identifier" }, "awr_source_database_identifier": { - "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.", - "type": "string" + "type": "string", + "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results." }, "begin_snapshot_identifier_greater_than_or_equal_to": { - "description": "The optional greater than or equal to filter on the snapshot ID.", - "type": "integer" + "type": "integer", + "description": "The optional greater than or equal to filter on the snapshot ID." }, "end_snapshot_identifier_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the snapshot Identifier.", - "type": "integer" + "type": "integer", + "description": "The optional less than or equal to query parameter to filter the snapshot Identifier." }, "instance_number": { - "description": "The optional single value query parameter to filter by database instance number.", - "type": "string" + "type": "string", + "description": "The optional single value query parameter to filter by database instance number." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "name": { - "description": "The required multiple value query parameter to filter the entity name.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "The required multiple value query parameter to filter the entity name." }, "sort_by": { - "description": "The option to sort the data within a time period. Allowed values are: \"TIME_BEGIN\", \"NAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIME_BEGIN", + "NAME" + ], + "description": "The option to sort the data within a time period. Allowed values are: \"TIME_BEGIN\", \"NAME\"" }, "sort_order": { - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" }, "time_greater_than_or_equal_to": { - "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "type": "string", "format": "date-time", - "type": "string" + "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" }, "time_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "type": "string", "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "awr_hub_id", "awr_source_database_identifier", "name" - ], - "type": "object" + ] }, "mutable": false }, @@ -6821,62 +10257,79 @@ "client": "OperationsInsightsClient", "operation": "summarize_awr_database_top_wait_events", "skills": [ - "awrhubs" + "database-performance-analysis" ], "inputSchema": { + "type": "object", "properties": { "awr_hub_id": { - "description": "Unique Awr Hub identifier", - "type": "string" + "type": "string", + "description": "Unique Awr Hub identifier" }, "awr_source_database_identifier": { - "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.", - "type": "string" + "type": "string", + "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results." }, "begin_snapshot_identifier_greater_than_or_equal_to": { - "description": "The optional greater than or equal to filter on the snapshot ID.", - "type": "integer" + "type": "integer", + "description": "The optional greater than or equal to filter on the snapshot ID." }, "end_snapshot_identifier_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the snapshot Identifier.", - "type": "integer" + "type": "integer", + "description": "The optional less than or equal to query parameter to filter the snapshot Identifier." }, "instance_number": { - "description": "The optional single value query parameter to filter by database instance number.", - "type": "string" + "type": "string", + "description": "The optional single value query parameter to filter by database instance number." }, "session_type": { - "description": "The optional query parameter to filter ASH activities by FOREGROUND or BACKGROUND. Allowed values are: \"FOREGROUND\", \"BACKGROUND\", \"ALL\"", - "type": "string" + "type": "string", + "enum": [ + "FOREGROUND", + "BACKGROUND", + "ALL" + ], + "description": "The optional query parameter to filter ASH activities by FOREGROUND or BACKGROUND. Allowed values are: \"FOREGROUND\", \"BACKGROUND\", \"ALL\"" }, "sort_by": { - "description": "The option to sort the AWR top event summary data. Allowed values are: \"WAITS_PERSEC\", \"AVG_WAIT_TIME_PERSEC\"", - "type": "string" + "type": "string", + "enum": [ + "WAITS_PERSEC", + "AVG_WAIT_TIME_PERSEC" + ], + "description": "The option to sort the AWR top event summary data. Allowed values are: \"WAITS_PERSEC\", \"AVG_WAIT_TIME_PERSEC\"" }, "sort_order": { - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" }, "time_greater_than_or_equal_to": { - "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "type": "string", "format": "date-time", - "type": "string" + "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" }, "time_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "type": "string", "format": "date-time", - "type": "string" + "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" }, "top_n": { - "description": "The optional query parameter to filter the number of top categories to be returned.", - "type": "integer" + "type": "integer", + "description": "The optional query parameter to filter the number of top categories to be returned." + }, + "opc_request_id": { + "type": "string" } }, + "additionalProperties": false, "required": [ "awr_hub_id", "awr_source_database_identifier" - ], - "type": "object" + ] }, "mutable": false }, @@ -6887,75 +10340,91 @@ "client": "OperationsInsightsClient", "operation": "summarize_awr_database_wait_event_buckets", "skills": [ - "awrhubs" + "database-performance-analysis" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "awr_hub_id": { - "description": "Unique Awr Hub identifier", - "type": "string" + "type": "string", + "description": "Unique Awr Hub identifier" }, "awr_source_database_identifier": { - "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.", - "type": "string" + "type": "string", + "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results." }, "begin_snapshot_identifier_greater_than_or_equal_to": { - "description": "The optional greater than or equal to filter on the snapshot ID.", - "type": "integer" + "type": "integer", + "description": "The optional greater than or equal to filter on the snapshot ID." }, "end_snapshot_identifier_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the snapshot Identifier.", - "type": "integer" + "type": "integer", + "description": "The optional less than or equal to query parameter to filter the snapshot Identifier." }, "instance_number": { - "description": "The optional single value query parameter to filter by database instance number.", - "type": "string" + "type": "string", + "description": "The optional single value query parameter to filter by database instance number." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "max_value": { - "description": "The maximum value of the histogram.", - "type": "number" + "type": "number", + "description": "The maximum value of the histogram." }, "min_value": { - "description": "The minimum value of the histogram.", - "type": "number" + "type": "number", + "description": "The minimum value of the histogram." }, "name": { - "description": "The required single value query parameter to filter the entity name.", - "type": "string" + "type": "string", + "description": "The required single value query parameter to filter the entity name." }, "num_bucket": { - "description": "The number of buckets within the histogram.", - "type": "integer" + "type": "integer", + "description": "The number of buckets within the histogram." }, "sort_by": { - "description": "The option to sort distribution data. Allowed values are: \"CATEGORY\", \"PERCENTAGE\"", - "type": "string" + "type": "string", + "enum": [ + "CATEGORY", + "PERCENTAGE" + ], + "description": "The option to sort distribution data. Allowed values are: \"CATEGORY\", \"PERCENTAGE\"" }, "sort_order": { - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" }, "time_greater_than_or_equal_to": { - "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "type": "string", "format": "date-time", - "type": "string" + "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" }, "time_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "type": "string", "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "awr_hub_id", "awr_source_database_identifier", "name" - ], - "type": "object" + ] }, "mutable": false }, @@ -6966,67 +10435,90 @@ "client": "OperationsInsightsClient", "operation": "summarize_awr_database_wait_events", "skills": [ - "awrhubs" + "database-performance-analysis" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "awr_hub_id": { - "description": "Unique Awr Hub identifier", - "type": "string" + "type": "string", + "description": "Unique Awr Hub identifier" }, "awr_source_database_identifier": { - "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results.", - "type": "string" + "type": "string", + "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results." }, "begin_snapshot_identifier_greater_than_or_equal_to": { - "description": "The optional greater than or equal to filter on the snapshot ID.", - "type": "integer" + "type": "integer", + "description": "The optional greater than or equal to filter on the snapshot ID." }, "end_snapshot_identifier_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the snapshot Identifier.", - "type": "integer" + "type": "integer", + "description": "The optional less than or equal to query parameter to filter the snapshot Identifier." }, "instance_number": { - "description": "The optional single value query parameter to filter by database instance number.", - "type": "string" + "type": "string", + "description": "The optional single value query parameter to filter by database instance number." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "name": { - "description": "The optional multiple value query parameter to filter the entity name.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "The optional multiple value query parameter to filter the entity name." }, "session_type": { - "description": "The optional query parameter to filter ASH activities by FOREGROUND or BACKGROUND. Allowed values are: \"FOREGROUND\", \"BACKGROUND\", \"ALL\"", - "type": "string" + "type": "string", + "enum": [ + "FOREGROUND", + "BACKGROUND", + "ALL" + ], + "description": "The optional query parameter to filter ASH activities by FOREGROUND or BACKGROUND. Allowed values are: \"FOREGROUND\", \"BACKGROUND\", \"ALL\"" }, "sort_by": { - "description": "The option to sort the data within a time period. Allowed values are: \"TIME_BEGIN\", \"NAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIME_BEGIN", + "NAME" + ], + "description": "The option to sort the data within a time period. Allowed values are: \"TIME_BEGIN\", \"NAME\"" }, "sort_order": { - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" }, "time_greater_than_or_equal_to": { - "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "type": "string", "format": "date-time", - "type": "string" + "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" }, "time_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z", + "type": "string", "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "awr_hub_id", "awr_source_database_identifier" - ], - "type": "object" + ] }, "mutable": false }, @@ -7040,67 +10532,91 @@ "awr-historical-performance-analysis" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "awr_db_id": { - "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.", - "type": "string" + "type": "string", + "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results." }, "begin_sn_id_greater_than_or_equal_to": { - "description": "The optional greater than or equal to filter on the snapshot ID.", - "type": "integer" + "type": "integer", + "description": "The optional greater than or equal to filter on the snapshot ID." }, "container_id": { - "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.", - "type": "integer" + "type": "integer", + "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results." }, "end_sn_id_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the snapshot ID.", - "type": "integer" + "type": "integer", + "description": "The optional less than or equal to query parameter to filter the snapshot ID." }, "inst_num": { - "description": "The optional single value query parameter to filter the database instance number.", - "type": "string" + "type": "string", + "description": "The optional single value query parameter to filter the database instance number." }, "limit": { - "description": "For large list pagination. Maximum number of results to return in one response page. Example: 1000.", - "type": "integer" + "type": "integer", + "description": "For large list pagination. Maximum number of results to return in one response page. Example: 1000." }, "managed_database_id": { - "description": "The OCID of the Managed Database.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database." }, "opc_named_credential_id": { - "description": "The OCID of the Named Credential.", - "type": "string" + "type": "string", + "description": "The OCID of the Named Credential." }, "session_type": { - "description": "The optional query parameter to filter ASH activities by FOREGROUND or BACKGROUND.\n\nAllowed values are: \"FOREGROUND\", \"BACKGROUND\", \"ALL\"", - "type": "string" + "type": "string", + "enum": [ + "FOREGROUND", + "BACKGROUND", + "ALL" + ], + "description": "The optional query parameter to filter ASH activities by FOREGROUND or BACKGROUND.\n\nAllowed values are: \"FOREGROUND\", \"BACKGROUND\", \"ALL\"" }, "sort_by": { - "description": "The option to sort the AWR CPU usage summary data.\n\nAllowed values are: \"TIME_SAMPLED\", \"AVG_VALUE\"", - "type": "string" + "type": "string", + "enum": [ + "TIME_SAMPLED", + "AVG_VALUE" + ], + "description": "The option to sort the AWR CPU usage summary data.\n\nAllowed values are: \"TIME_SAMPLED\", \"AVG_VALUE\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" }, "time_greater_than_or_equal_to": { - "description": "The optional greater than or equal to query parameter to filter the timestamp.", + "type": "string", "format": "date-time", - "type": "string" + "description": "The optional greater than or equal to query parameter to filter the timestamp." }, "time_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the timestamp.", + "type": "string", "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp." + }, + "opc_request_id": { + "type": "string" + }, + "opc_retry_token": { "type": "string" } }, + "additionalProperties": false, "required": [ "managed_database_id", "awr_db_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -7114,69 +10630,90 @@ "awr-historical-performance-analysis" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "awr_db_id": { - "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.", - "type": "string" + "type": "string", + "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results." }, "begin_sn_id_greater_than_or_equal_to": { - "description": "The optional greater than or equal to filter on the snapshot ID.", - "type": "integer" + "type": "integer", + "description": "The optional greater than or equal to filter on the snapshot ID." }, "container_id": { - "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.", - "type": "integer" + "type": "integer", + "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results." }, "end_sn_id_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the snapshot ID.", - "type": "integer" + "type": "integer", + "description": "The optional less than or equal to query parameter to filter the snapshot ID." }, "inst_num": { - "description": "The optional single value query parameter to filter the database instance number.", - "type": "string" + "type": "string", + "description": "The optional single value query parameter to filter the database instance number." }, "limit": { - "description": "For large list pagination. Maximum number of results to return in one response page. Example: 1000.", - "type": "integer" + "type": "integer", + "description": "For large list pagination. Maximum number of results to return in one response page. Example: 1000." }, "managed_database_id": { - "description": "The OCID of the Managed Database.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database." }, "name": { - "description": "The required multiple value query parameter to filter the entity name.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "The required multiple value query parameter to filter the entity name." }, "opc_named_credential_id": { - "description": "The OCID of the Named Credential.", - "type": "string" + "type": "string", + "description": "The OCID of the Named Credential." }, "sort_by": { - "description": "The option to sort the AWR time series summary data.\n\nAllowed values are: \"TIMESTAMP\", \"NAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIMESTAMP", + "NAME" + ], + "description": "The option to sort the AWR time series summary data.\n\nAllowed values are: \"TIMESTAMP\", \"NAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" }, "time_greater_than_or_equal_to": { - "description": "The optional greater than or equal to query parameter to filter the timestamp.", + "type": "string", "format": "date-time", - "type": "string" + "description": "The optional greater than or equal to query parameter to filter the timestamp." }, "time_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the timestamp.", + "type": "string", "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp." + }, + "opc_request_id": { + "type": "string" + }, + "opc_retry_token": { "type": "string" } }, + "additionalProperties": false, "required": [ "managed_database_id", "awr_db_id", "name" - ], - "type": "object" + ] }, "mutable": false }, @@ -7190,68 +10727,87 @@ "awr-historical-performance-analysis" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "awr_db_id": { - "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.", - "type": "string" + "type": "string", + "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results." }, "begin_sn_id_greater_than_or_equal_to": { - "description": "The optional greater than or equal to filter on the snapshot ID.", - "type": "integer" + "type": "integer", + "description": "The optional greater than or equal to filter on the snapshot ID." }, "container_id": { - "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.", - "type": "integer" + "type": "integer", + "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results." }, "end_sn_id_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the snapshot ID.", - "type": "integer" + "type": "integer", + "description": "The optional less than or equal to query parameter to filter the snapshot ID." }, "inst_num": { - "description": "The optional single value query parameter to filter the database instance number.", - "type": "string" + "type": "string", + "description": "The optional single value query parameter to filter the database instance number." }, "limit": { - "description": "For large list pagination. Maximum number of results to return in one response page. Example: 1000.", - "type": "integer" + "type": "integer", + "description": "For large list pagination. Maximum number of results to return in one response page. Example: 1000." }, "managed_database_id": { - "description": "The OCID of the Managed Database.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database." }, "name": { - "description": "The required single value query parameter to filter the entity name.", - "type": "string" + "type": "string", + "description": "The required single value query parameter to filter the entity name." }, "opc_named_credential_id": { - "description": "The OCID of the Named Credential.", - "type": "string" + "type": "string", + "description": "The OCID of the Named Credential." }, "sort_by": { - "description": "The option to sort the AWR database parameter change history data.\n\nAllowed values are: \"IS_CHANGED\", \"NAME\"", - "type": "string" + "type": "string", + "enum": [ + "IS_CHANGED", + "NAME" + ], + "description": "The option to sort the AWR database parameter change history data.\n\nAllowed values are: \"IS_CHANGED\", \"NAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" }, "time_greater_than_or_equal_to": { - "description": "The optional greater than or equal to query parameter to filter the timestamp.", + "type": "string", "format": "date-time", - "type": "string" + "description": "The optional greater than or equal to query parameter to filter the timestamp." }, "time_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the timestamp.", + "type": "string", "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp." + }, + "opc_request_id": { + "type": "string" + }, + "opc_retry_token": { "type": "string" } }, + "additionalProperties": false, "required": [ "managed_database_id", "awr_db_id", "name" - ], - "type": "object" + ] }, "mutable": false }, @@ -7265,84 +10821,118 @@ "awr-historical-performance-analysis" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "awr_db_id": { - "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.", - "type": "string" + "type": "string", + "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results." }, "begin_sn_id_greater_than_or_equal_to": { - "description": "The optional greater than or equal to filter on the snapshot ID.", - "type": "integer" + "type": "integer", + "description": "The optional greater than or equal to filter on the snapshot ID." }, "container_id": { - "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.", - "type": "integer" + "type": "integer", + "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results." }, "end_sn_id_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the snapshot ID.", - "type": "integer" + "type": "integer", + "description": "The optional less than or equal to query parameter to filter the snapshot ID." }, "inst_num": { - "description": "The optional single value query parameter to filter the database instance number.", - "type": "string" + "type": "string", + "description": "The optional single value query parameter to filter the database instance number." }, "limit": { - "description": "For large list pagination. Maximum number of results to return in one response page. Example: 1000.", - "type": "integer" + "type": "integer", + "description": "For large list pagination. Maximum number of results to return in one response page. Example: 1000." }, "managed_database_id": { - "description": "The OCID of the Managed Database.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database." }, "name": { - "description": "The optional multiple value query parameter to filter the entity name.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "The optional multiple value query parameter to filter the entity name." }, "name_contains": { - "description": "The optional contains query parameter to filter the entity name by any part of the name.", - "type": "string" + "type": "string", + "description": "The optional contains query parameter to filter the entity name by any part of the name." }, "opc_named_credential_id": { - "description": "The OCID of the Named Credential.", - "type": "string" + "type": "string", + "description": "The OCID of the Named Credential." }, "sort_by": { - "description": "The option to sort the AWR database parameter change history data.\n\nAllowed values are: \"IS_CHANGED\", \"NAME\"", - "type": "string" + "type": "string", + "enum": [ + "IS_CHANGED", + "NAME" + ], + "description": "The option to sort the AWR database parameter change history data.\n\nAllowed values are: \"IS_CHANGED\", \"NAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" }, "time_greater_than_or_equal_to": { - "description": "The optional greater than or equal to query parameter to filter the timestamp.", + "type": "string", "format": "date-time", - "type": "string" + "description": "The optional greater than or equal to query parameter to filter the timestamp." }, "time_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the timestamp.", + "type": "string", "format": "date-time", - "type": "string" + "description": "The optional less than or equal to query parameter to filter the timestamp." }, "value_changed": { - "description": "The optional query parameter to filter database parameters whose values were changed.\n\nAllowed values are: \"Y\", \"N\"", - "type": "string" + "type": "string", + "enum": [ + "Y", + "N" + ], + "description": "The optional query parameter to filter database parameters whose values were changed.\n\nAllowed values are: \"Y\", \"N\"" }, "value_default": { - "description": "The optional query parameter to filter the database parameters that had the default value in the last snapshot.\n\nAllowed values are: \"TRUE\", \"FALSE\"", - "type": "string" + "type": "string", + "enum": [ + "TRUE", + "FALSE" + ], + "description": "The optional query parameter to filter the database parameters that had the default value in the last snapshot.\n\nAllowed values are: \"TRUE\", \"FALSE\"" }, "value_modified": { - "description": "The optional query parameter to filter the database parameters that had a modified value in the last snapshot.\n\nAllowed values are: \"MODIFIED\", \"SYSTEM_MOD\", \"FALSE\"", + "type": "string", + "enum": [ + "MODIFIED", + "SYSTEM_MOD", + "FALSE" + ], + "description": "The optional query parameter to filter the database parameters that had a modified value in the last snapshot.\n\nAllowed values are: \"MODIFIED\", \"SYSTEM_MOD\", \"FALSE\"" + }, + "opc_request_id": { + "type": "string" + }, + "opc_retry_token": { "type": "string" } }, + "additionalProperties": false, "required": [ "managed_database_id", "awr_db_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -7356,46 +10946,65 @@ "awr-historical-performance-analysis" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "managed_database_id": { - "description": "The OCID of the Managed Database.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database." }, "name": { - "description": "The optional single value query parameter to filter the entity name.", - "type": "string" + "type": "string", + "description": "The optional single value query parameter to filter the entity name." }, "opc_named_credential_id": { - "description": "The OCID of the Named Credential.", - "type": "string" + "type": "string", + "description": "The OCID of the Named Credential." }, "sort_by": { - "description": "The option to sort the AWR summary data.\n\nAllowed values are: \"END_INTERVAL_TIME\", \"NAME\"", - "type": "integer" + "type": "string", + "enum": [ + "END_INTERVAL_TIME", + "NAME" + ], + "description": "The option to sort the AWR summary data.\n\nAllowed values are: \"END_INTERVAL_TIME\", \"NAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" }, "time_greater_than_or_equal_to": { - "description": "The optional greater than or equal to query parameter to filter the timestamp.", + "type": "string", "format": "date-time", - "type": "string" + "description": "The optional greater than or equal to query parameter to filter the timestamp." }, "time_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the timestamp.", + "type": "string", "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp." + }, + "opc_request_id": { + "type": "string" + }, + "opc_retry_token": { "type": "string" } }, + "additionalProperties": false, "required": [ "managed_database_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -7409,69 +11018,90 @@ "awr-historical-performance-analysis" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "awr_db_id": { - "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.", - "type": "string" + "type": "string", + "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results." }, "begin_sn_id_greater_than_or_equal_to": { - "description": "The optional greater than or equal to filter on the snapshot ID.", - "type": "integer" + "type": "integer", + "description": "The optional greater than or equal to filter on the snapshot ID." }, "container_id": { - "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.", - "type": "integer" + "type": "integer", + "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results." }, "end_sn_id_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the snapshot ID.", - "type": "integer" + "type": "integer", + "description": "The optional less than or equal to query parameter to filter the snapshot ID." }, "inst_num": { - "description": "The optional single value query parameter to filter the database instance number.", - "type": "string" + "type": "string", + "description": "The optional single value query parameter to filter the database instance number." }, "limit": { - "description": "For large list pagination. Maximum number of results to return in one response page. Example: 1000.", - "type": "integer" + "type": "integer", + "description": "For large list pagination. Maximum number of results to return in one response page. Example: 1000." }, "managed_database_id": { - "description": "The OCID of the Managed Database.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database." }, "name": { - "description": "The required multiple value query parameter to filter the entity name.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "The required multiple value query parameter to filter the entity name." }, "opc_named_credential_id": { - "description": "The OCID of the Named Credential.", - "type": "string" + "type": "string", + "description": "The OCID of the Named Credential." }, "sort_by": { - "description": "The option to sort the data within a time period.\n\nAllowed values are: \"TIME_BEGIN\", \"NAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIME_BEGIN", + "NAME" + ], + "description": "The option to sort the data within a time period.\n\nAllowed values are: \"TIME_BEGIN\", \"NAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" }, "time_greater_than_or_equal_to": { - "description": "The optional greater than or equal to query parameter to filter the timestamp.", + "type": "string", "format": "date-time", - "type": "string" + "description": "The optional greater than or equal to query parameter to filter the timestamp." }, "time_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the timestamp.", + "type": "string", "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp." + }, + "opc_request_id": { + "type": "string" + }, + "opc_retry_token": { "type": "string" } }, + "additionalProperties": false, "required": [ "managed_database_id", "awr_db_id", "name" - ], - "type": "object" + ] }, "mutable": false }, @@ -7485,67 +11115,87 @@ "awr-historical-performance-analysis" ], "inputSchema": { + "type": "object", "properties": { "awr_db_id": { - "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.", - "type": "string" + "type": "string", + "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results." }, "begin_sn_id_greater_than_or_equal_to": { - "description": "The optional greater than or equal to filter on the snapshot ID.", - "type": "integer" + "type": "integer", + "description": "The optional greater than or equal to filter on the snapshot ID." }, "container_id": { - "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.", - "type": "integer" + "type": "integer", + "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results." }, "end_sn_id_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the snapshot ID.", - "type": "integer" + "type": "integer", + "description": "The optional less than or equal to query parameter to filter the snapshot ID." }, "inst_num": { - "description": "The optional single value query parameter to filter the database instance number.", - "type": "string" + "type": "string", + "description": "The optional single value query parameter to filter the database instance number." }, "managed_database_id": { - "description": "The OCID of the Managed Database.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database." }, "opc_named_credential_id": { - "description": "The OCID of the Named Credential.", - "type": "string" + "type": "string", + "description": "The OCID of the Named Credential." }, "session_type": { - "description": "The optional query parameter to filter ASH activities by FOREGROUND or BACKGROUND.\n\nAllowed values are: \"FOREGROUND\", \"BACKGROUND\", \"ALL\"", - "type": "string" + "type": "string", + "enum": [ + "FOREGROUND", + "BACKGROUND", + "ALL" + ], + "description": "The optional query parameter to filter ASH activities by FOREGROUND or BACKGROUND.\n\nAllowed values are: \"FOREGROUND\", \"BACKGROUND\", \"ALL\"" }, "sort_by": { - "description": "The option to sort the AWR top event summary data.\n\nAllowed values are: \"WAITS_PERSEC\", \"AVG_WAIT_TIME_PERSEC\"", - "type": "string" + "type": "string", + "enum": [ + "WAITS_PERSEC", + "AVG_WAIT_TIME_PERSEC" + ], + "description": "The option to sort the AWR top event summary data.\n\nAllowed values are: \"WAITS_PERSEC\", \"AVG_WAIT_TIME_PERSEC\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" }, "time_greater_than_or_equal_to": { - "description": "The optional greater than or equal to query parameter to filter the timestamp.", + "type": "string", "format": "date-time", - "type": "string" + "description": "The optional greater than or equal to query parameter to filter the timestamp." }, "time_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the timestamp.", + "type": "string", "format": "date-time", - "type": "string" + "description": "The optional less than or equal to query parameter to filter the timestamp." }, "top_n": { - "description": "The optional query parameter to filter the number of top categories to be returned.", - "type": "integer" + "type": "integer", + "description": "The optional query parameter to filter the number of top categories to be returned." + }, + "opc_request_id": { + "type": "string" + }, + "opc_retry_token": { + "type": "string" } }, + "additionalProperties": false, "required": [ "managed_database_id", "awr_db_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -7559,80 +11209,99 @@ "awr-historical-performance-analysis" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "awr_db_id": { - "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.", - "type": "string" + "type": "string", + "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results." }, "begin_sn_id_greater_than_or_equal_to": { - "description": "The optional greater than or equal to filter on the snapshot ID.", - "type": "integer" + "type": "integer", + "description": "The optional greater than or equal to filter on the snapshot ID." }, "container_id": { - "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.", - "type": "integer" + "type": "integer", + "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results." }, "end_sn_id_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the snapshot ID.", - "type": "integer" + "type": "integer", + "description": "The optional less than or equal to query parameter to filter the snapshot ID." }, "inst_num": { - "description": "The optional single value query parameter to filter the database instance number.", - "type": "string" + "type": "string", + "description": "The optional single value query parameter to filter the database instance number." }, "limit": { - "description": "For large list pagination. Maximum number of results to return in one response page. Example: 1000.", - "type": "integer" + "type": "integer", + "description": "For large list pagination. Maximum number of results to return in one response page. Example: 1000." }, "managed_database_id": { - "description": "The OCID of the Managed Database.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database." }, "max_value": { - "description": "The maximum value of the histogram.", - "type": "number" + "type": "number", + "description": "The maximum value of the histogram." }, "min_value": { - "description": "The minimum value of the histogram.", - "type": "number" + "type": "number", + "description": "The minimum value of the histogram." }, "name": { - "description": "The required single value query parameter to filter the entity name.", - "type": "string" + "type": "string", + "description": "The required single value query parameter to filter the entity name." }, "num_bucket": { - "description": "The number of buckets within the histogram.", - "type": "integer" + "type": "integer", + "description": "The number of buckets within the histogram." }, "opc_named_credential_id": { - "description": "The OCID of the Named Credential.", - "type": "string" + "type": "string", + "description": "The OCID of the Named Credential." }, "sort_by": { - "description": "The option to sort distribution data.\n\nAllowed values are: \"CATEGORY\", \"PERCENTAGE\"", - "type": "string" + "type": "string", + "enum": [ + "CATEGORY", + "PERCENTAGE" + ], + "description": "The option to sort distribution data.\n\nAllowed values are: \"CATEGORY\", \"PERCENTAGE\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" }, "time_greater_than_or_equal_to": { - "description": "The optional greater than or equal to query parameter to filter the timestamp.", + "type": "string", "format": "date-time", - "type": "string" + "description": "The optional greater than or equal to query parameter to filter the timestamp." }, "time_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the timestamp.", + "type": "string", "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp." + }, + "opc_request_id": { + "type": "string" + }, + "opc_retry_token": { "type": "string" } }, + "additionalProperties": false, "required": [ "managed_database_id", "awr_db_id", "name" - ], - "type": "object" + ] }, "mutable": false }, @@ -7646,72 +11315,98 @@ "awr-historical-performance-analysis" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "awr_db_id": { - "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results.", - "type": "string" + "type": "string", + "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results." }, "begin_sn_id_greater_than_or_equal_to": { - "description": "The optional greater than or equal to filter on the snapshot ID.", - "type": "integer" + "type": "integer", + "description": "The optional greater than or equal to filter on the snapshot ID." }, "container_id": { - "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results.", - "type": "integer" + "type": "integer", + "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results." }, "end_sn_id_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the snapshot ID.", - "type": "integer" + "type": "integer", + "description": "The optional less than or equal to query parameter to filter the snapshot ID." }, "inst_num": { - "description": "The optional single value query parameter to filter the database instance number.", - "type": "string" + "type": "string", + "description": "The optional single value query parameter to filter the database instance number." }, "limit": { - "description": "For large list pagination. Maximum number of results to return in one response page. Example: 1000.", - "type": "integer" + "type": "integer", + "description": "For large list pagination. Maximum number of results to return in one response page. Example: 1000." }, "managed_database_id": { - "description": "The OCID of the Managed Database.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database." }, "name": { - "description": "The optional multiple value query parameter to filter the entity name.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "The optional multiple value query parameter to filter the entity name." }, "opc_named_credential_id": { - "description": "The OCID of the Named Credential.", - "type": "string" + "type": "string", + "description": "The OCID of the Named Credential." }, "session_type": { - "description": "The optional query parameter to filter ASH activities by FOREGROUND or BACKGROUND.\n\nAllowed values are: \"FOREGROUND\", \"BACKGROUND\", \"ALL\"", - "type": "string" + "type": "string", + "enum": [ + "FOREGROUND", + "BACKGROUND", + "ALL" + ], + "description": "The optional query parameter to filter ASH activities by FOREGROUND or BACKGROUND.\n\nAllowed values are: \"FOREGROUND\", \"BACKGROUND\", \"ALL\"" }, "sort_by": { - "description": "The option to sort the data within a time period.\n\nAllowed values are: \"TIME_BEGIN\", \"NAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIME_BEGIN", + "NAME" + ], + "description": "The option to sort the data within a time period.\n\nAllowed values are: \"TIME_BEGIN\", \"NAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" }, "time_greater_than_or_equal_to": { - "description": "The optional greater than or equal to query parameter to filter the timestamp.", + "type": "string", "format": "date-time", - "type": "string" + "description": "The optional greater than or equal to query parameter to filter the timestamp." }, "time_less_than_or_equal_to": { - "description": "The optional less than or equal to query parameter to filter the timestamp.", + "type": "string", "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp." + }, + "opc_request_id": { + "type": "string" + }, + "opc_retry_token": { "type": "string" } }, + "additionalProperties": false, "required": [ "managed_database_id", "awr_db_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -7725,34 +11420,42 @@ "cloud-asm-core" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "cloud_asm_id": { - "description": "The OCID of the cloud ASM.", - "type": "string" + "type": "string", + "description": "The OCID of the cloud ASM." }, "end_time": { - "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`.", - "type": "string" + "type": "string", + "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." }, "filter_by_metric_names": { - "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.", - "type": "string" + "type": "string", + "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "start_time": { - "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`.", + "type": "string", + "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "cloud_asm_id", "start_time", "end_time" - ], - "type": "object" + ] }, "mutable": false }, @@ -7766,34 +11469,42 @@ "cloud-db-runtime-topology" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "cloud_cluster_id": { - "description": "The OCID of the cloud cluster.", - "type": "string" + "type": "string", + "description": "The OCID of the cloud cluster." }, "end_time": { - "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`.", - "type": "string" + "type": "string", + "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." }, "filter_by_metric_names": { - "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.", - "type": "string" + "type": "string", + "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "start_time": { - "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`.", + "type": "string", + "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "cloud_cluster_id", "start_time", "end_time" - ], - "type": "object" + ] }, "mutable": false }, @@ -7807,34 +11518,42 @@ "cloud-db-runtime-topology" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "cloud_db_node_id": { - "description": "The OCID of the cloud database node.", - "type": "string" + "type": "string", + "description": "The OCID of the cloud database node." }, "end_time": { - "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`.", - "type": "string" + "type": "string", + "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." }, "filter_by_metric_names": { - "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.", - "type": "string" + "type": "string", + "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "start_time": { - "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`.", + "type": "string", + "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "cloud_db_node_id", "start_time", "end_time" - ], - "type": "object" + ] }, "mutable": false }, @@ -7848,34 +11567,42 @@ "cloud-inventory-discovery-connectivity" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "cloud_db_system_id": { - "description": "The OCID of the cloud DB system.", - "type": "string" + "type": "string", + "description": "The OCID of the cloud DB system." }, "end_time": { - "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`.", - "type": "string" + "type": "string", + "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." }, "filter_by_component_types": { - "description": "The filter used to retrieve metrics for a specific set of component types by passing the desired component types separated by a comma. Note that, by default, the service returns metrics for all DB system component types.", - "type": "string" + "type": "string", + "description": "The filter used to retrieve metrics for a specific set of component types by passing the desired component types separated by a comma. Note that, by default, the service returns metrics for all DB system component types." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "start_time": { - "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`.", + "type": "string", + "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "cloud_db_system_id", "start_time", "end_time" - ], - "type": "object" + ] }, "mutable": false }, @@ -7889,1446 +11616,2351 @@ "cloud-db-runtime-topology" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "cloud_listener_id": { - "description": "The OCID of the cloud listener.", - "type": "string" + "type": "string", + "description": "The OCID of the cloud listener." }, "end_time": { - "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`.", - "type": "string" + "type": "string", + "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." }, "filter_by_metric_names": { - "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.", - "type": "string" + "type": "string", + "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "start_time": { - "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`.", + "type": "string", + "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "cloud_listener_id", "start_time", "end_time" - ], - "type": "object" + ] }, "mutable": false }, { "name": "summarize_database_insight_resource_capacity_trend", - "description": "Shows capacity trend for a selected `resourceMetric` (for example `CPU` or `STORAGE`), including baseline/max capacity and utilization thresholds.", + "description": "Shows capacity trend for a selected resourceMetric (for example CPU or STORAGE), including baseline/max capacity and utilization thresholds.", "service": "opsi", "client": "OperationsInsightsClient", "operation": "summarize_database_insight_resource_capacity_trend", "skills": [ - "database-insights" + "database-capacity-usage-and-forecasting" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "analysis_time_interval": { - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", - "type": "string" + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." }, "cdb_name": { - "description": "Filter by one or more cdb name.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more cdb name." }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "compartment_id_in_subtree": { - "description": "A flag to search all resources within a given compartment and all sub-compartments.", - "type": "boolean" + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." }, "database_id": { - "description": "Optional list of database OCIDs of the associated DBaaS entity.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database OCIDs of the associated DBaaS entity." }, "database_type": { - "description": "Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: \"ADW-S\", \"ATP-S\", \"ADW-D\", \"ATP-D\", \"EXTERNAL-PDB\", \"EXTERNAL-NONCDB\", \"COMANAGED-VM-CDB\", \"COMANAGED-VM-PDB\", \"COMANAGED-VM-NONCDB\", \"COMANAGED-BM-CDB\", \"COMANAGED-BM-PDB\", \"COMANAGED-BM-NONCDB\", \"COMANAGED-EXACS-CDB\", \"COMANAGED-EXACS-PDB\", \"COMANAGED-EXACS-NONCDB\", \"COMANAGED-EXACC-CDB\", \"COMANAGED-EXACC-PDB\", \"COMANAGED-EXACC-NONCDB\", \"MDS-MYSQL\", \"EXTERNAL-MYSQL\", \"ATP-EXACC\", \"ADW-EXACC\", \"EXTERNAL-ADW\", \"EXTERNAL-ATP\", \"LH-D\", \"APEX-D\", \"AJD-D\", \"AVD-D\", \"LH-S\", \"APEX-S\", \"AJD-S\", \"AVD-S\", \"LH-EXACC\", \"APEX-EXACC\", \"AJD-EXACC\", \"AVD-EXACC\"", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string", + "enum": [ + "ADW-S", + "ATP-S", + "ADW-D", + "ATP-D", + "EXTERNAL-PDB", + "EXTERNAL-NONCDB", + "COMANAGED-VM-CDB", + "COMANAGED-VM-PDB", + "COMANAGED-VM-NONCDB", + "COMANAGED-BM-CDB", + "COMANAGED-BM-PDB", + "COMANAGED-BM-NONCDB", + "COMANAGED-EXACS-CDB", + "COMANAGED-EXACS-PDB", + "COMANAGED-EXACS-NONCDB", + "COMANAGED-EXACC-CDB", + "COMANAGED-EXACC-PDB", + "COMANAGED-EXACC-NONCDB", + "MDS-MYSQL", + "EXTERNAL-MYSQL", + "ATP-EXACC", + "ADW-EXACC", + "EXTERNAL-ADW", + "EXTERNAL-ATP", + "LH-D", + "APEX-D", + "AJD-D", + "AVD-D", + "LH-S", + "APEX-S", + "AJD-S", + "AVD-S", + "LH-EXACC", + "APEX-EXACC", + "AJD-EXACC", + "AVD-EXACC" + ] + }, + "description": "Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: \"ADW-S\", \"ATP-S\", \"ADW-D\", \"ATP-D\", \"EXTERNAL-PDB\", \"EXTERNAL-NONCDB\", \"COMANAGED-VM-CDB\", \"COMANAGED-VM-PDB\", \"COMANAGED-VM-NONCDB\", \"COMANAGED-BM-CDB\", \"COMANAGED-BM-PDB\", \"COMANAGED-BM-NONCDB\", \"COMANAGED-EXACS-CDB\", \"COMANAGED-EXACS-PDB\", \"COMANAGED-EXACS-NONCDB\", \"COMANAGED-EXACC-CDB\", \"COMANAGED-EXACC-PDB\", \"COMANAGED-EXACC-NONCDB\", \"MDS-MYSQL\", \"EXTERNAL-MYSQL\", \"ATP-EXACC\", \"ADW-EXACC\", \"EXTERNAL-ADW\", \"EXTERNAL-ATP\", \"LH-D\", \"APEX-D\", \"AJD-D\", \"AVD-D\", \"LH-S\", \"APEX-S\", \"AJD-S\", \"AVD-S\", \"LH-EXACC\", \"APEX-EXACC\", \"AJD-EXACC\", \"AVD-EXACC\"" }, "exadata_insight_id": { - "description": "Optional list of exadata insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of exadata insight resource OCIDs." }, "high_utilization_threshold": { - "description": "Percent value in which a resource metric is considered highly utilized.", - "type": "integer" + "type": "integer", + "description": "Percent value in which a resource metric is considered highly utilized." }, "host_name": { - "description": "Filter by one or more hostname.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more hostname." }, "id": { - "description": "Optional list of database insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource OCIDs." }, "is_database_instance_level_metrics": { - "description": "Flag to indicate if database instance level metrics should be returned. The flag is ignored when a host name filter is not applied. When a hostname filter is applied this flag will determine whether to return metrics for the instances located on the specified host or for the whole database which contains an instance on this host.", - "type": "boolean" + "type": "boolean", + "description": "Flag to indicate if database instance level metrics should be returned. The flag is ignored when a host name filter is not applied. When a hostname filter is applied this flag will determine whether to return metrics for the instances located on the specified host or for the whole database which contains an instance on this host." }, "low_utilization_threshold": { - "description": "Percent value in which a resource metric is considered low utilized.", - "type": "integer" + "type": "integer", + "description": "Percent value in which a resource metric is considered low utilized." }, "resource_metric": { - "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY and IO.", - "type": "string" + "type": "string", + "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY and IO." }, "sort_by": { - "description": "Sorts using end timestamp, capacity or baseCapacity Allowed values are: \"endTimestamp\", \"capacity\", \"baseCapacity\"", - "type": "string" + "type": "string", + "enum": [ + "endTimestamp", + "capacity", + "baseCapacity" + ], + "description": "Sorts using end timestamp, capacity or baseCapacity Allowed values are: \"endTimestamp\", \"capacity\", \"baseCapacity\"" }, "sort_order": { - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" }, "tablespace_name": { - "description": "Tablespace name for a database", - "type": "string" + "type": "string", + "description": "Tablespace name for a database" }, "time_interval_end": { - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." }, "time_interval_start": { - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." }, "utilization_level": { - "description": "Filter by utilization level by the following buckets: - HIGH_UTILIZATION: DBs with utilization greater or equal than 75. - LOW_UTILIZATION: DBs with utilization lower than 25. - MEDIUM_HIGH_UTILIZATION: DBs with utilization greater or equal than 50 but lower than 75. - MEDIUM_LOW_UTILIZATION: DBs with utilization greater or equal than 25 but lower than 50. Allowed values are: \"HIGH_UTILIZATION\", \"LOW_UTILIZATION\", \"MEDIUM_HIGH_UTILIZATION\", \"MEDIUM_LOW_UTILIZATION\"", - "type": "string" + "type": "string", + "enum": [ + "HIGH_UTILIZATION", + "LOW_UTILIZATION", + "MEDIUM_HIGH_UTILIZATION", + "MEDIUM_LOW_UTILIZATION" + ], + "description": "Filter by utilization level by the following buckets: - HIGH_UTILIZATION: DBs with utilization greater or equal than 75. - LOW_UTILIZATION: DBs with utilization lower than 25. - MEDIUM_HIGH_UTILIZATION: DBs with utilization greater or equal than 50 but lower than 75. - MEDIUM_LOW_UTILIZATION: DBs with utilization greater or equal than 25 but lower than 50. Allowed values are: \"HIGH_UTILIZATION\", \"LOW_UTILIZATION\", \"MEDIUM_HIGH_UTILIZATION\", \"MEDIUM_LOW_UTILIZATION\"" }, "vmcluster_name": { - "description": "Optional list of Exadata Insight VM cluster name.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of Exadata Insight VM cluster name." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id", "resource_metric" - ], - "type": "object" + ] }, "mutable": false }, { "name": "summarize_database_insight_resource_forecast_trend", - "description": "Provides historical and projected demand for a selected `resourceMetric` (for example `CPU` or `STORAGE`) and statistic (`AVG` or `MAX`), including forecast algorithm output.", + "description": "Provides historical and projected demand for a selected resourceMetric (for example CPU or STORAGE) and statistic (AVG or MAX), including forecast algorithm output.", "service": "opsi", "client": "OperationsInsightsClient", "operation": "summarize_database_insight_resource_forecast_trend", "skills": [ - "database-insights" + "database-capacity-usage-and-forecasting" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "analysis_time_interval": { - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", - "type": "string" + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." }, "cdb_name": { - "description": "Filter by one or more cdb name.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more cdb name." }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "compartment_id_in_subtree": { - "description": "A flag to search all resources within a given compartment and all sub-compartments.", - "type": "boolean" + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." }, "confidence": { - "description": "This parameter is used to change data's confidence level, this data is ingested by the forecast algorithm. Confidence is the probability of an interval to contain the expected population parameter. Manipulation of this value will lead to different results. If not set, default confidence value is 95%.", - "type": "integer" + "type": "integer", + "description": "This parameter is used to change data's confidence level, this data is ingested by the forecast algorithm. Confidence is the probability of an interval to contain the expected population parameter. Manipulation of this value will lead to different results. If not set, default confidence value is 95%." }, "database_id": { - "description": "Optional list of database OCIDs of the associated DBaaS entity.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database OCIDs of the associated DBaaS entity." }, "database_type": { - "description": "Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: \"ADW-S\", \"ATP-S\", \"ADW-D\", \"ATP-D\", \"EXTERNAL-PDB\", \"EXTERNAL-NONCDB\", \"COMANAGED-VM-CDB\", \"COMANAGED-VM-PDB\", \"COMANAGED-VM-NONCDB\", \"COMANAGED-BM-CDB\", \"COMANAGED-BM-PDB\", \"COMANAGED-BM-NONCDB\", \"COMANAGED-EXACS-CDB\", \"COMANAGED-EXACS-PDB\", \"COMANAGED-EXACS-NONCDB\", \"COMANAGED-EXACC-CDB\", \"COMANAGED-EXACC-PDB\", \"COMANAGED-EXACC-NONCDB\", \"MDS-MYSQL\", \"EXTERNAL-MYSQL\", \"ATP-EXACC\", \"ADW-EXACC\", \"EXTERNAL-ADW\", \"EXTERNAL-ATP\", \"LH-D\", \"APEX-D\", \"AJD-D\", \"AVD-D\", \"LH-S\", \"APEX-S\", \"AJD-S\", \"AVD-S\", \"LH-EXACC\", \"APEX-EXACC\", \"AJD-EXACC\", \"AVD-EXACC\"", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string", + "enum": [ + "ADW-S", + "ATP-S", + "ADW-D", + "ATP-D", + "EXTERNAL-PDB", + "EXTERNAL-NONCDB", + "COMANAGED-VM-CDB", + "COMANAGED-VM-PDB", + "COMANAGED-VM-NONCDB", + "COMANAGED-BM-CDB", + "COMANAGED-BM-PDB", + "COMANAGED-BM-NONCDB", + "COMANAGED-EXACS-CDB", + "COMANAGED-EXACS-PDB", + "COMANAGED-EXACS-NONCDB", + "COMANAGED-EXACC-CDB", + "COMANAGED-EXACC-PDB", + "COMANAGED-EXACC-NONCDB", + "MDS-MYSQL", + "EXTERNAL-MYSQL", + "ATP-EXACC", + "ADW-EXACC", + "EXTERNAL-ADW", + "EXTERNAL-ATP", + "LH-D", + "APEX-D", + "AJD-D", + "AVD-D", + "LH-S", + "APEX-S", + "AJD-S", + "AVD-S", + "LH-EXACC", + "APEX-EXACC", + "AJD-EXACC", + "AVD-EXACC" + ] + }, + "description": "Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: \"ADW-S\", \"ATP-S\", \"ADW-D\", \"ATP-D\", \"EXTERNAL-PDB\", \"EXTERNAL-NONCDB\", \"COMANAGED-VM-CDB\", \"COMANAGED-VM-PDB\", \"COMANAGED-VM-NONCDB\", \"COMANAGED-BM-CDB\", \"COMANAGED-BM-PDB\", \"COMANAGED-BM-NONCDB\", \"COMANAGED-EXACS-CDB\", \"COMANAGED-EXACS-PDB\", \"COMANAGED-EXACS-NONCDB\", \"COMANAGED-EXACC-CDB\", \"COMANAGED-EXACC-PDB\", \"COMANAGED-EXACC-NONCDB\", \"MDS-MYSQL\", \"EXTERNAL-MYSQL\", \"ATP-EXACC\", \"ADW-EXACC\", \"EXTERNAL-ADW\", \"EXTERNAL-ATP\", \"LH-D\", \"APEX-D\", \"AJD-D\", \"AVD-D\", \"LH-S\", \"APEX-S\", \"AJD-S\", \"AVD-S\", \"LH-EXACC\", \"APEX-EXACC\", \"AJD-EXACC\", \"AVD-EXACC\"" }, "exadata_insight_id": { - "description": "Optional list of exadata insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of exadata insight resource OCIDs." }, "forecast_days": { - "description": "Number of days used for utilization forecast analysis.", - "type": "integer" + "type": "integer", + "description": "Number of days used for utilization forecast analysis." }, "forecast_model": { - "description": "Choose algorithm model for the forecasting. Possible values: - LINEAR: Uses linear regression algorithm for forecasting. - ML_AUTO: Automatically detects best algorithm to use for forecasting. - ML_NO_AUTO: Automatically detects seasonality of the data for forecasting using linear or seasonal algorithm. Allowed values are: \"LINEAR\", \"ML_AUTO\", \"ML_NO_AUTO\"", - "type": "string" + "type": "string", + "enum": [ + "LINEAR", + "ML_AUTO", + "ML_NO_AUTO" + ], + "description": "Choose algorithm model for the forecasting. Possible values: - LINEAR: Uses linear regression algorithm for forecasting. - ML_AUTO: Automatically detects best algorithm to use for forecasting. - ML_NO_AUTO: Automatically detects seasonality of the data for forecasting using linear or seasonal algorithm. Allowed values are: \"LINEAR\", \"ML_AUTO\", \"ML_NO_AUTO\"" }, "high_utilization_threshold": { - "description": "Percent value in which a resource metric is considered highly utilized.", - "type": "integer" + "type": "integer", + "description": "Percent value in which a resource metric is considered highly utilized." }, "host_name": { - "description": "Filter by one or more hostname.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more hostname." }, "id": { - "description": "Optional list of database insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource OCIDs." }, "is_database_instance_level_metrics": { - "description": "Flag to indicate if database instance level metrics should be returned. The flag is ignored when a host name filter is not applied. When a hostname filter is applied this flag will determine whether to return metrics for the instances located on the specified host or for the whole database which contains an instance on this host.", - "type": "boolean" + "type": "boolean", + "description": "Flag to indicate if database instance level metrics should be returned. The flag is ignored when a host name filter is not applied. When a hostname filter is applied this flag will determine whether to return metrics for the instances located on the specified host or for the whole database which contains an instance on this host." }, "low_utilization_threshold": { - "description": "Percent value in which a resource metric is considered low utilized.", - "type": "integer" + "type": "integer", + "description": "Percent value in which a resource metric is considered low utilized." }, "resource_metric": { - "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY and IO.", - "type": "string" + "type": "string", + "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY and IO." }, "statistic": { - "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"", - "type": "string" + "type": "string", + "enum": [ + "AVG", + "MAX" + ], + "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"" }, "tablespace_name": { - "description": "Tablespace name for a database", - "type": "string" + "type": "string", + "description": "Tablespace name for a database" }, "time_interval_end": { - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." }, "time_interval_start": { - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." }, "utilization_level": { - "description": "Filter by utilization level by the following buckets: - HIGH_UTILIZATION: DBs with utilization greater or equal than 75. - LOW_UTILIZATION: DBs with utilization lower than 25. - MEDIUM_HIGH_UTILIZATION: DBs with utilization greater or equal than 50 but lower than 75. - MEDIUM_LOW_UTILIZATION: DBs with utilization greater or equal than 25 but lower than 50. Allowed values are: \"HIGH_UTILIZATION\", \"LOW_UTILIZATION\", \"MEDIUM_HIGH_UTILIZATION\", \"MEDIUM_LOW_UTILIZATION\"", - "type": "string" + "type": "string", + "enum": [ + "HIGH_UTILIZATION", + "LOW_UTILIZATION", + "MEDIUM_HIGH_UTILIZATION", + "MEDIUM_LOW_UTILIZATION" + ], + "description": "Filter by utilization level by the following buckets: - HIGH_UTILIZATION: DBs with utilization greater or equal than 75. - LOW_UTILIZATION: DBs with utilization lower than 25. - MEDIUM_HIGH_UTILIZATION: DBs with utilization greater or equal than 50 but lower than 75. - MEDIUM_LOW_UTILIZATION: DBs with utilization greater or equal than 25 but lower than 50. Allowed values are: \"HIGH_UTILIZATION\", \"LOW_UTILIZATION\", \"MEDIUM_HIGH_UTILIZATION\", \"MEDIUM_LOW_UTILIZATION\"" }, "vmcluster_name": { - "description": "Optional list of Exadata Insight VM cluster name.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of Exadata Insight VM cluster name." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id", "resource_metric" - ], - "type": "object" + ] }, "mutable": false }, { "name": "summarize_database_insight_resource_statistics", - "description": "Returns per-database statistics for a selected `resourceMetric` (for example `CPU` or `STORAGE`), including usage, capacity, utilization, and usage-change percent.", + "description": "Returns per-database statistics for a selected resourceMetric (for example CPU or STORAGE), including usage, capacity, utilization, and usage-change percent.", "service": "opsi", "client": "OperationsInsightsClient", "operation": "summarize_database_insight_resource_statistics", "skills": [ - "database-insights" + "database-capacity-usage-and-forecasting" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "analysis_time_interval": { - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", - "type": "string" + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." }, "cdb_name": { - "description": "Filter by one or more cdb name.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more cdb name." }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "compartment_id_in_subtree": { - "description": "A flag to search all resources within a given compartment and all sub-compartments.", - "type": "boolean" + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." }, "database_id": { - "description": "Optional list of database OCIDs of the associated DBaaS entity.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database OCIDs of the associated DBaaS entity." }, "database_type": { - "description": "Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: \"ADW-S\", \"ATP-S\", \"ADW-D\", \"ATP-D\", \"EXTERNAL-PDB\", \"EXTERNAL-NONCDB\", \"COMANAGED-VM-CDB\", \"COMANAGED-VM-PDB\", \"COMANAGED-VM-NONCDB\", \"COMANAGED-BM-CDB\", \"COMANAGED-BM-PDB\", \"COMANAGED-BM-NONCDB\", \"COMANAGED-EXACS-CDB\", \"COMANAGED-EXACS-PDB\", \"COMANAGED-EXACS-NONCDB\", \"COMANAGED-EXACC-CDB\", \"COMANAGED-EXACC-PDB\", \"COMANAGED-EXACC-NONCDB\", \"MDS-MYSQL\", \"EXTERNAL-MYSQL\", \"ATP-EXACC\", \"ADW-EXACC\", \"EXTERNAL-ADW\", \"EXTERNAL-ATP\", \"LH-D\", \"APEX-D\", \"AJD-D\", \"AVD-D\", \"LH-S\", \"APEX-S\", \"AJD-S\", \"AVD-S\", \"LH-EXACC\", \"APEX-EXACC\", \"AJD-EXACC\", \"AVD-EXACC\"", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string", + "enum": [ + "ADW-S", + "ATP-S", + "ADW-D", + "ATP-D", + "EXTERNAL-PDB", + "EXTERNAL-NONCDB", + "COMANAGED-VM-CDB", + "COMANAGED-VM-PDB", + "COMANAGED-VM-NONCDB", + "COMANAGED-BM-CDB", + "COMANAGED-BM-PDB", + "COMANAGED-BM-NONCDB", + "COMANAGED-EXACS-CDB", + "COMANAGED-EXACS-PDB", + "COMANAGED-EXACS-NONCDB", + "COMANAGED-EXACC-CDB", + "COMANAGED-EXACC-PDB", + "COMANAGED-EXACC-NONCDB", + "MDS-MYSQL", + "EXTERNAL-MYSQL", + "ATP-EXACC", + "ADW-EXACC", + "EXTERNAL-ADW", + "EXTERNAL-ATP", + "LH-D", + "APEX-D", + "AJD-D", + "AVD-D", + "LH-S", + "APEX-S", + "AJD-S", + "AVD-S", + "LH-EXACC", + "APEX-EXACC", + "AJD-EXACC", + "AVD-EXACC" + ] + }, + "description": "Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: \"ADW-S\", \"ATP-S\", \"ADW-D\", \"ATP-D\", \"EXTERNAL-PDB\", \"EXTERNAL-NONCDB\", \"COMANAGED-VM-CDB\", \"COMANAGED-VM-PDB\", \"COMANAGED-VM-NONCDB\", \"COMANAGED-BM-CDB\", \"COMANAGED-BM-PDB\", \"COMANAGED-BM-NONCDB\", \"COMANAGED-EXACS-CDB\", \"COMANAGED-EXACS-PDB\", \"COMANAGED-EXACS-NONCDB\", \"COMANAGED-EXACC-CDB\", \"COMANAGED-EXACC-PDB\", \"COMANAGED-EXACC-NONCDB\", \"MDS-MYSQL\", \"EXTERNAL-MYSQL\", \"ATP-EXACC\", \"ADW-EXACC\", \"EXTERNAL-ADW\", \"EXTERNAL-ATP\", \"LH-D\", \"APEX-D\", \"AJD-D\", \"AVD-D\", \"LH-S\", \"APEX-S\", \"AJD-S\", \"AVD-S\", \"LH-EXACC\", \"APEX-EXACC\", \"AJD-EXACC\", \"AVD-EXACC\"" }, "exadata_insight_id": { - "description": "Optional list of exadata insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of exadata insight resource OCIDs." }, "forecast_days": { - "description": "Number of days used for utilization forecast analysis.", - "type": "integer" + "type": "integer", + "description": "Number of days used for utilization forecast analysis." }, "high_utilization_threshold": { - "description": "Percent value in which a resource metric is considered highly utilized.", - "type": "integer" + "type": "integer", + "description": "Percent value in which a resource metric is considered highly utilized." }, "host_name": { - "description": "Filter by one or more hostname.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more hostname." }, "id": { - "description": "Optional list of database insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource OCIDs." }, "insight_by": { - "description": "Return data of a specific insight Possible values are High Utilization, Low Utilization, Any,High Utilization Forecast, Low Utilization Forecast", - "type": "string" + "type": "string", + "description": "Return data of a specific insight Possible values are High Utilization, Low Utilization, Any,High Utilization Forecast, Low Utilization Forecast" }, "is_database_instance_level_metrics": { - "description": "Flag to indicate if database instance level metrics should be returned. The flag is ignored when a host name filter is not applied. When a hostname filter is applied this flag will determine whether to return metrics for the instances located on the specified host or for the whole database which contains an instance on this host.", - "type": "boolean" + "type": "boolean", + "description": "Flag to indicate if database instance level metrics should be returned. The flag is ignored when a host name filter is not applied. When a hostname filter is applied this flag will determine whether to return metrics for the instances located on the specified host or for the whole database which contains an instance on this host." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "low_utilization_threshold": { - "description": "Percent value in which a resource metric is considered low utilized.", - "type": "integer" + "type": "integer", + "description": "Percent value in which a resource metric is considered low utilized." }, "percentile": { - "description": "Percentile values of daily usage to be used for computing the aggregate resource usage.", - "type": "integer" + "type": "integer", + "description": "Percentile values of daily usage to be used for computing the aggregate resource usage." }, "resource_metric": { - "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY and IO.", - "type": "string" + "type": "string", + "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY and IO." }, "sort_by": { - "description": "The order in which resource statistics records are listed Allowed values are: \"utilizationPercent\", \"usage\", \"usageChangePercent\", \"databaseName\", \"databaseType\"", - "type": "string" + "type": "string", + "enum": [ + "utilizationPercent", + "usage", + "usageChangePercent", + "databaseName", + "databaseType" + ], + "description": "The order in which resource statistics records are listed Allowed values are: \"utilizationPercent\", \"usage\", \"usageChangePercent\", \"databaseName\", \"databaseType\"" }, "sort_order": { - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" }, "time_interval_end": { - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." }, "time_interval_start": { - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." }, "vmcluster_name": { - "description": "Optional list of Exadata Insight VM cluster name.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of Exadata Insight VM cluster name." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id", "resource_metric" - ], - "type": "object" + ] }, "mutable": false }, { "name": "summarize_database_insight_resource_usage", - "description": "Shows overall consumption for a selected `resourceMetric` (for example `CPU` or `STORAGE`), including current usage, capacity, and usage change percent.", + "description": "Shows overall consumption for a selected resourceMetric (for example CPU or STORAGE), including current usage, capacity, and usage change percent.", "service": "opsi", "client": "OperationsInsightsClient", "operation": "summarize_database_insight_resource_usage", "skills": [ - "database-insights" + "database-capacity-usage-and-forecasting" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "analysis_time_interval": { - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", - "type": "string" + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." }, "cdb_name": { - "description": "Filter by one or more cdb name.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more cdb name." }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "compartment_id_in_subtree": { - "description": "A flag to search all resources within a given compartment and all sub-compartments.", - "type": "boolean" + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." }, "database_id": { - "description": "Optional list of database OCIDs of the associated DBaaS entity.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database OCIDs of the associated DBaaS entity." }, "database_type": { - "description": "Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: \"ADW-S\", \"ATP-S\", \"ADW-D\", \"ATP-D\", \"EXTERNAL-PDB\", \"EXTERNAL-NONCDB\", \"COMANAGED-VM-CDB\", \"COMANAGED-VM-PDB\", \"COMANAGED-VM-NONCDB\", \"COMANAGED-BM-CDB\", \"COMANAGED-BM-PDB\", \"COMANAGED-BM-NONCDB\", \"COMANAGED-EXACS-CDB\", \"COMANAGED-EXACS-PDB\", \"COMANAGED-EXACS-NONCDB\", \"COMANAGED-EXACC-CDB\", \"COMANAGED-EXACC-PDB\", \"COMANAGED-EXACC-NONCDB\", \"MDS-MYSQL\", \"EXTERNAL-MYSQL\", \"ATP-EXACC\", \"ADW-EXACC\", \"EXTERNAL-ADW\", \"EXTERNAL-ATP\", \"LH-D\", \"APEX-D\", \"AJD-D\", \"AVD-D\", \"LH-S\", \"APEX-S\", \"AJD-S\", \"AVD-S\", \"LH-EXACC\", \"APEX-EXACC\", \"AJD-EXACC\", \"AVD-EXACC\"", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string", + "enum": [ + "ADW-S", + "ATP-S", + "ADW-D", + "ATP-D", + "EXTERNAL-PDB", + "EXTERNAL-NONCDB", + "COMANAGED-VM-CDB", + "COMANAGED-VM-PDB", + "COMANAGED-VM-NONCDB", + "COMANAGED-BM-CDB", + "COMANAGED-BM-PDB", + "COMANAGED-BM-NONCDB", + "COMANAGED-EXACS-CDB", + "COMANAGED-EXACS-PDB", + "COMANAGED-EXACS-NONCDB", + "COMANAGED-EXACC-CDB", + "COMANAGED-EXACC-PDB", + "COMANAGED-EXACC-NONCDB", + "MDS-MYSQL", + "EXTERNAL-MYSQL", + "ATP-EXACC", + "ADW-EXACC", + "EXTERNAL-ADW", + "EXTERNAL-ATP", + "LH-D", + "APEX-D", + "AJD-D", + "AVD-D", + "LH-S", + "APEX-S", + "AJD-S", + "AVD-S", + "LH-EXACC", + "APEX-EXACC", + "AJD-EXACC", + "AVD-EXACC" + ] + }, + "description": "Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: \"ADW-S\", \"ATP-S\", \"ADW-D\", \"ATP-D\", \"EXTERNAL-PDB\", \"EXTERNAL-NONCDB\", \"COMANAGED-VM-CDB\", \"COMANAGED-VM-PDB\", \"COMANAGED-VM-NONCDB\", \"COMANAGED-BM-CDB\", \"COMANAGED-BM-PDB\", \"COMANAGED-BM-NONCDB\", \"COMANAGED-EXACS-CDB\", \"COMANAGED-EXACS-PDB\", \"COMANAGED-EXACS-NONCDB\", \"COMANAGED-EXACC-CDB\", \"COMANAGED-EXACC-PDB\", \"COMANAGED-EXACC-NONCDB\", \"MDS-MYSQL\", \"EXTERNAL-MYSQL\", \"ATP-EXACC\", \"ADW-EXACC\", \"EXTERNAL-ADW\", \"EXTERNAL-ATP\", \"LH-D\", \"APEX-D\", \"AJD-D\", \"AVD-D\", \"LH-S\", \"APEX-S\", \"AJD-S\", \"AVD-S\", \"LH-EXACC\", \"APEX-EXACC\", \"AJD-EXACC\", \"AVD-EXACC\"" }, "exadata_insight_id": { - "description": "Optional list of exadata insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of exadata insight resource OCIDs." }, "host_name": { - "description": "Filter by one or more hostname.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more hostname." }, "id": { - "description": "Optional list of database insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource OCIDs." }, "is_database_instance_level_metrics": { - "description": "Flag to indicate if database instance level metrics should be returned. The flag is ignored when a host name filter is not applied. When a hostname filter is applied this flag will determine whether to return metrics for the instances located on the specified host or for the whole database which contains an instance on this host.", - "type": "boolean" + "type": "boolean", + "description": "Flag to indicate if database instance level metrics should be returned. The flag is ignored when a host name filter is not applied. When a hostname filter is applied this flag will determine whether to return metrics for the instances located on the specified host or for the whole database which contains an instance on this host." }, "percentile": { - "description": "Percentile values of daily usage to be used for computing the aggregate resource usage.", - "type": "integer" + "type": "integer", + "description": "Percentile values of daily usage to be used for computing the aggregate resource usage." }, "resource_metric": { - "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY and IO.", - "type": "string" + "type": "string", + "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY and IO." }, "time_interval_end": { - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." }, "time_interval_start": { - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." }, "vmcluster_name": { - "description": "Optional list of Exadata Insight VM cluster name.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of Exadata Insight VM cluster name." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id", "resource_metric" - ], - "type": "object" + ] }, "mutable": false }, { "name": "summarize_database_insight_resource_usage_trend", - "description": "Shows usage and capacity trend lines over time for a selected `resourceMetric` (for example `CPU` or `STORAGE`) to spot growth or spikes.", + "description": "Shows usage and capacity trend lines over time for a selected resourceMetric (for example CPU or STORAGE) to spot growth or spikes.", "service": "opsi", "client": "OperationsInsightsClient", "operation": "summarize_database_insight_resource_usage_trend", "skills": [ - "database-insights" + "database-capacity-usage-and-forecasting" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "analysis_time_interval": { - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", - "type": "string" + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." }, "cdb_name": { - "description": "Filter by one or more cdb name.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more cdb name." }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "compartment_id_in_subtree": { - "description": "A flag to search all resources within a given compartment and all sub-compartments.", - "type": "boolean" + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." }, "database_id": { - "description": "Optional list of database OCIDs of the associated DBaaS entity.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database OCIDs of the associated DBaaS entity." }, "database_type": { - "description": "Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: \"ADW-S\", \"ATP-S\", \"ADW-D\", \"ATP-D\", \"EXTERNAL-PDB\", \"EXTERNAL-NONCDB\", \"COMANAGED-VM-CDB\", \"COMANAGED-VM-PDB\", \"COMANAGED-VM-NONCDB\", \"COMANAGED-BM-CDB\", \"COMANAGED-BM-PDB\", \"COMANAGED-BM-NONCDB\", \"COMANAGED-EXACS-CDB\", \"COMANAGED-EXACS-PDB\", \"COMANAGED-EXACS-NONCDB\", \"COMANAGED-EXACC-CDB\", \"COMANAGED-EXACC-PDB\", \"COMANAGED-EXACC-NONCDB\", \"MDS-MYSQL\", \"EXTERNAL-MYSQL\", \"ATP-EXACC\", \"ADW-EXACC\", \"EXTERNAL-ADW\", \"EXTERNAL-ATP\", \"LH-D\", \"APEX-D\", \"AJD-D\", \"AVD-D\", \"LH-S\", \"APEX-S\", \"AJD-S\", \"AVD-S\", \"LH-EXACC\", \"APEX-EXACC\", \"AJD-EXACC\", \"AVD-EXACC\"", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string", + "enum": [ + "ADW-S", + "ATP-S", + "ADW-D", + "ATP-D", + "EXTERNAL-PDB", + "EXTERNAL-NONCDB", + "COMANAGED-VM-CDB", + "COMANAGED-VM-PDB", + "COMANAGED-VM-NONCDB", + "COMANAGED-BM-CDB", + "COMANAGED-BM-PDB", + "COMANAGED-BM-NONCDB", + "COMANAGED-EXACS-CDB", + "COMANAGED-EXACS-PDB", + "COMANAGED-EXACS-NONCDB", + "COMANAGED-EXACC-CDB", + "COMANAGED-EXACC-PDB", + "COMANAGED-EXACC-NONCDB", + "MDS-MYSQL", + "EXTERNAL-MYSQL", + "ATP-EXACC", + "ADW-EXACC", + "EXTERNAL-ADW", + "EXTERNAL-ATP", + "LH-D", + "APEX-D", + "AJD-D", + "AVD-D", + "LH-S", + "APEX-S", + "AJD-S", + "AVD-S", + "LH-EXACC", + "APEX-EXACC", + "AJD-EXACC", + "AVD-EXACC" + ] + }, + "description": "Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: \"ADW-S\", \"ATP-S\", \"ADW-D\", \"ATP-D\", \"EXTERNAL-PDB\", \"EXTERNAL-NONCDB\", \"COMANAGED-VM-CDB\", \"COMANAGED-VM-PDB\", \"COMANAGED-VM-NONCDB\", \"COMANAGED-BM-CDB\", \"COMANAGED-BM-PDB\", \"COMANAGED-BM-NONCDB\", \"COMANAGED-EXACS-CDB\", \"COMANAGED-EXACS-PDB\", \"COMANAGED-EXACS-NONCDB\", \"COMANAGED-EXACC-CDB\", \"COMANAGED-EXACC-PDB\", \"COMANAGED-EXACC-NONCDB\", \"MDS-MYSQL\", \"EXTERNAL-MYSQL\", \"ATP-EXACC\", \"ADW-EXACC\", \"EXTERNAL-ADW\", \"EXTERNAL-ATP\", \"LH-D\", \"APEX-D\", \"AJD-D\", \"AVD-D\", \"LH-S\", \"APEX-S\", \"AJD-S\", \"AVD-S\", \"LH-EXACC\", \"APEX-EXACC\", \"AJD-EXACC\", \"AVD-EXACC\"" }, "exadata_insight_id": { - "description": "Optional list of exadata insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of exadata insight resource OCIDs." }, "host_name": { - "description": "Filter by one or more hostname.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more hostname." }, "id": { - "description": "Optional list of database insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource OCIDs." }, "is_database_instance_level_metrics": { - "description": "Flag to indicate if database instance level metrics should be returned. The flag is ignored when a host name filter is not applied. When a hostname filter is applied this flag will determine whether to return metrics for the instances located on the specified host or for the whole database which contains an instance on this host.", - "type": "boolean" + "type": "boolean", + "description": "Flag to indicate if database instance level metrics should be returned. The flag is ignored when a host name filter is not applied. When a hostname filter is applied this flag will determine whether to return metrics for the instances located on the specified host or for the whole database which contains an instance on this host." }, "resource_metric": { - "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY and IO.", - "type": "string" + "type": "string", + "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY and IO." }, "sort_by": { - "description": "Sorts using end timestamp, usage or capacity Allowed values are: \"endTimestamp\", \"usage\", \"capacity\"", - "type": "string" + "type": "string", + "enum": [ + "endTimestamp", + "usage", + "capacity" + ], + "description": "Sorts using end timestamp, usage or capacity Allowed values are: \"endTimestamp\", \"usage\", \"capacity\"" }, "sort_order": { - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" }, "time_interval_end": { - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." }, "time_interval_start": { - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." }, "vmcluster_name": { - "description": "Optional list of Exadata Insight VM cluster name.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of Exadata Insight VM cluster name." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id", "resource_metric" - ], - "type": "object" + ] }, "mutable": false }, { "name": "summarize_database_insight_resource_utilization_insight", - "description": "Groups databases by current and projected utilization bands for a selected `resourceMetric` (for example `CPU` or `STORAGE`).", + "description": "Groups databases by current and projected utilization bands for a selected resourceMetric (for example CPU or STORAGE).", "service": "opsi", "client": "OperationsInsightsClient", "operation": "summarize_database_insight_resource_utilization_insight", "skills": [ - "database-insights" + "database-capacity-usage-and-forecasting" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "analysis_time_interval": { - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", - "type": "string" + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." }, "cdb_name": { - "description": "Filter by one or more cdb name.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more cdb name." }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "compartment_id_in_subtree": { - "description": "A flag to search all resources within a given compartment and all sub-compartments.", - "type": "boolean" + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." }, "database_id": { - "description": "Optional list of database OCIDs of the associated DBaaS entity.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database OCIDs of the associated DBaaS entity." }, "database_type": { - "description": "Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: \"ADW-S\", \"ATP-S\", \"ADW-D\", \"ATP-D\", \"EXTERNAL-PDB\", \"EXTERNAL-NONCDB\", \"COMANAGED-VM-CDB\", \"COMANAGED-VM-PDB\", \"COMANAGED-VM-NONCDB\", \"COMANAGED-BM-CDB\", \"COMANAGED-BM-PDB\", \"COMANAGED-BM-NONCDB\", \"COMANAGED-EXACS-CDB\", \"COMANAGED-EXACS-PDB\", \"COMANAGED-EXACS-NONCDB\", \"COMANAGED-EXACC-CDB\", \"COMANAGED-EXACC-PDB\", \"COMANAGED-EXACC-NONCDB\", \"MDS-MYSQL\", \"EXTERNAL-MYSQL\", \"ATP-EXACC\", \"ADW-EXACC\", \"EXTERNAL-ADW\", \"EXTERNAL-ATP\", \"LH-D\", \"APEX-D\", \"AJD-D\", \"AVD-D\", \"LH-S\", \"APEX-S\", \"AJD-S\", \"AVD-S\", \"LH-EXACC\", \"APEX-EXACC\", \"AJD-EXACC\", \"AVD-EXACC\"", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string", + "enum": [ + "ADW-S", + "ATP-S", + "ADW-D", + "ATP-D", + "EXTERNAL-PDB", + "EXTERNAL-NONCDB", + "COMANAGED-VM-CDB", + "COMANAGED-VM-PDB", + "COMANAGED-VM-NONCDB", + "COMANAGED-BM-CDB", + "COMANAGED-BM-PDB", + "COMANAGED-BM-NONCDB", + "COMANAGED-EXACS-CDB", + "COMANAGED-EXACS-PDB", + "COMANAGED-EXACS-NONCDB", + "COMANAGED-EXACC-CDB", + "COMANAGED-EXACC-PDB", + "COMANAGED-EXACC-NONCDB", + "MDS-MYSQL", + "EXTERNAL-MYSQL", + "ATP-EXACC", + "ADW-EXACC", + "EXTERNAL-ADW", + "EXTERNAL-ATP", + "LH-D", + "APEX-D", + "AJD-D", + "AVD-D", + "LH-S", + "APEX-S", + "AJD-S", + "AVD-S", + "LH-EXACC", + "APEX-EXACC", + "AJD-EXACC", + "AVD-EXACC" + ] + }, + "description": "Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: \"ADW-S\", \"ATP-S\", \"ADW-D\", \"ATP-D\", \"EXTERNAL-PDB\", \"EXTERNAL-NONCDB\", \"COMANAGED-VM-CDB\", \"COMANAGED-VM-PDB\", \"COMANAGED-VM-NONCDB\", \"COMANAGED-BM-CDB\", \"COMANAGED-BM-PDB\", \"COMANAGED-BM-NONCDB\", \"COMANAGED-EXACS-CDB\", \"COMANAGED-EXACS-PDB\", \"COMANAGED-EXACS-NONCDB\", \"COMANAGED-EXACC-CDB\", \"COMANAGED-EXACC-PDB\", \"COMANAGED-EXACC-NONCDB\", \"MDS-MYSQL\", \"EXTERNAL-MYSQL\", \"ATP-EXACC\", \"ADW-EXACC\", \"EXTERNAL-ADW\", \"EXTERNAL-ATP\", \"LH-D\", \"APEX-D\", \"AJD-D\", \"AVD-D\", \"LH-S\", \"APEX-S\", \"AJD-S\", \"AVD-S\", \"LH-EXACC\", \"APEX-EXACC\", \"AJD-EXACC\", \"AVD-EXACC\"" }, "exadata_insight_id": { - "description": "Optional list of exadata insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of exadata insight resource OCIDs." }, "forecast_days": { - "description": "Number of days used for utilization forecast analysis.", - "type": "integer" + "type": "integer", + "description": "Number of days used for utilization forecast analysis." }, "high_utilization_threshold": { - "description": "Percent value in which a resource metric is considered highly utilized.", - "type": "integer" + "type": "integer", + "description": "Percent value in which a resource metric is considered highly utilized." }, "host_name": { - "description": "Filter by one or more hostname.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more hostname." }, "id": { - "description": "Optional list of database insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource OCIDs." }, "is_database_instance_level_metrics": { - "description": "Flag to indicate if database instance level metrics should be returned. The flag is ignored when a host name filter is not applied. When a hostname filter is applied this flag will determine whether to return metrics for the instances located on the specified host or for the whole database which contains an instance on this host.", - "type": "boolean" + "type": "boolean", + "description": "Flag to indicate if database instance level metrics should be returned. The flag is ignored when a host name filter is not applied. When a hostname filter is applied this flag will determine whether to return metrics for the instances located on the specified host or for the whole database which contains an instance on this host." }, "low_utilization_threshold": { - "description": "Percent value in which a resource metric is considered low utilized.", - "type": "integer" + "type": "integer", + "description": "Percent value in which a resource metric is considered low utilized." }, "resource_metric": { - "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY and IO.", - "type": "string" + "type": "string", + "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY and IO." }, "time_interval_end": { - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." }, "time_interval_start": { - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." }, "vmcluster_name": { - "description": "Optional list of Exadata Insight VM cluster name.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of Exadata Insight VM cluster name." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id", "resource_metric" - ], - "type": "object" + ] }, "mutable": false }, { "name": "summarize_database_insight_tablespace_usage_trend", - "description": "Shows which top tablespaces are growing over time, including used vs allocated space per interval (`items.usageData`) and the analysis window.", + "description": "Shows which top tablespaces are growing over time, including used vs allocated space per interval (items.usageData) and the analysis window.", "service": "opsi", "client": "OperationsInsightsClient", "operation": "summarize_database_insight_tablespace_usage_trend", "skills": [ - "database-insights" + "database-capacity-usage-and-forecasting" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "analysis_time_interval": { - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", - "type": "string" + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "database_id": { - "description": "Optional OCID of the associated DBaaS entity.", - "type": "string" + "type": "string", + "description": "Optional OCID of the associated DBaaS entity." }, "id": { - "description": "OCID of the database insight resource.", - "type": "string" + "type": "string", + "description": "OCID of the database insight resource." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "time_interval_end": { - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." }, "time_interval_start": { - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "type": "string", "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id" - ], - "type": "object" + ] }, "mutable": false }, { "name": "summarize_exadata_insight_resource_capacity_trend", - "description": "Returns per-system Exadata capacity trends, including per-system `items`, selected metric/type, and usage units. Example metric/type: `MEMORY` on `DATABASE`.", + "description": "Returns per-system Exadata capacity trends, including per-system items, selected metric/type, and usage units.", "service": "opsi", "client": "OperationsInsightsClient", "operation": "summarize_exadata_insight_resource_capacity_trend", "skills": [ - "exadata-insights" + "exadatainsights" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "analysis_time_interval": { - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", - "type": "string" + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." }, "cdb_name": { - "description": "Filter by one or more cdb name.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more cdb name." }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "database_insight_id": { - "description": "Optional list of database insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource OCIDs." }, "exadata_insight_id": { - "description": "OCID of exadata insight resource.", - "type": "string" + "type": "string", + "description": "OCID of exadata insight resource." }, "exadata_type": { - "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC." }, "host_insight_id": { - "description": "Optional list of host insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of host insight resource OCIDs." }, "host_name": { - "description": "Filter by hostname.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by hostname." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "resource_metric": { - "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT", - "type": "string" + "type": "string", + "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT" }, "resource_type": { - "description": "Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE", - "type": "string" + "type": "string", + "description": "Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE" }, "sort_by": { - "description": "The order in which resource capacity trend records are listed Allowed values are: \"id\", \"name\"", - "type": "string" + "type": "string", + "enum": [ + "id", + "name" + ], + "description": "The order in which resource capacity trend records are listed Allowed values are: \"id\", \"name\"" }, "sort_order": { - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" }, "storage_server_name": { - "description": "Optional storage server name on an exadata system.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional storage server name on an exadata system." }, "time_interval_end": { - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." }, "time_interval_start": { - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "type": "string", "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "resource_type", "resource_metric", "exadata_insight_id" - ], - "type": "object" + ] }, "mutable": false }, { "name": "summarize_exadata_insight_resource_capacity_trend_aggregated", - "description": "Returns fleet-level Exadata capacity trends, including `capacityData`, metric/type context, and interval duration. Example metric/type: `STORAGE` on `DATABASE`.", + "description": "Returns fleet-level Exadata capacity trends, including capacityData, metric/type context, and interval duration.", "service": "opsi", "client": "OperationsInsightsClient", "operation": "summarize_exadata_insight_resource_capacity_trend_aggregated", "skills": [ - "exadata-insights" + "exadatainsights" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "analysis_time_interval": { - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", - "type": "string" + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." }, "cdb_name": { - "description": "Filter by one or more cdb name.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more cdb name." }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "compartment_id_in_subtree": { - "description": "A flag to search all resources within a given compartment and all sub-compartments.", - "type": "boolean" + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." }, "exadata_insight_id": { - "description": "Optional list of exadata insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of exadata insight resource OCIDs." }, "exadata_type": { - "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC." }, "host_name": { - "description": "Filter by hostname.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by hostname." }, "resource_metric": { - "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT", - "type": "string" + "type": "string", + "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT" }, "resource_type": { - "description": "Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE", - "type": "string" + "type": "string", + "description": "Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE" }, "sort_by": { - "description": "Sorts using end timestamp or capacity. Allowed values are: \"endTimestamp\", \"capacity\"", - "type": "string" + "type": "string", + "enum": [ + "endTimestamp", + "capacity" + ], + "description": "Sorts using end timestamp or capacity. Allowed values are: \"endTimestamp\", \"capacity\"" }, "sort_order": { - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" }, "time_interval_end": { - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." }, "time_interval_start": { - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "type": "string", "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "resource_type", "resource_metric" - ], - "type": "object" + ] }, "mutable": false }, { "name": "summarize_exadata_insight_resource_forecast_trend", - "description": "Returns per-system Exadata forecast trends, including `items`, `exadataResourceMetric`, and `exadataResourceType`. Example metric/type: `CPU` on `HOST`.", + "description": "Returns per-system Exadata forecast trends, including items, exadataResourceMetric, and exadataResourceType.", "service": "opsi", "client": "OperationsInsightsClient", "operation": "summarize_exadata_insight_resource_forecast_trend", "skills": [ - "exadata-insights" + "exadatainsights" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "analysis_time_interval": { - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", - "type": "string" + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." }, "cdb_name": { - "description": "Filter by one or more cdb name.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more cdb name." }, "confidence": { - "description": "This parameter is used to change data's confidence level, this data is ingested by the forecast algorithm. Confidence is the probability of an interval to contain the expected population parameter. Manipulation of this value will lead to different results. If not set, default confidence value is 95%.", - "type": "integer" + "type": "integer", + "description": "This parameter is used to change data's confidence level, this data is ingested by the forecast algorithm. Confidence is the probability of an interval to contain the expected population parameter. Manipulation of this value will lead to different results. If not set, default confidence value is 95%." }, "database_insight_id": { - "description": "Optional list of database insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource OCIDs." }, "exadata_insight_id": { - "description": "OCID of exadata insight resource.", - "type": "string" + "type": "string", + "description": "OCID of exadata insight resource." }, "exadata_type": { - "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC." }, "forecast_days": { - "description": "Number of days used for utilization forecast analysis.", - "type": "integer" + "type": "integer", + "description": "Number of days used for utilization forecast analysis." }, "forecast_model": { - "description": "Choose algorithm model for the forecasting. Possible values: - LINEAR: Uses linear regression algorithm for forecasting. - ML_AUTO: Automatically detects best algorithm to use for forecasting. - ML_NO_AUTO: Automatically detects seasonality of the data for forecasting using linear or seasonal algorithm. Allowed values are: \"LINEAR\", \"ML_AUTO\", \"ML_NO_AUTO\"", - "type": "string" + "type": "string", + "enum": [ + "LINEAR", + "ML_AUTO", + "ML_NO_AUTO" + ], + "description": "Choose algorithm model for the forecasting. Possible values: - LINEAR: Uses linear regression algorithm for forecasting. - ML_AUTO: Automatically detects best algorithm to use for forecasting. - ML_NO_AUTO: Automatically detects seasonality of the data for forecasting using linear or seasonal algorithm. Allowed values are: \"LINEAR\", \"ML_AUTO\", \"ML_NO_AUTO\"" }, "forecast_start_day": { - "description": "Number of days used for utilization forecast analysis.", - "type": "integer" + "type": "integer", + "description": "Number of days used for utilization forecast analysis." }, "host_insight_id": { - "description": "Optional list of host insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of host insight resource OCIDs." }, "host_name": { - "description": "Filter by hostname.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by hostname." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "resource_metric": { - "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT", - "type": "string" + "type": "string", + "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT" }, "resource_type": { - "description": "Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE", - "type": "string" + "type": "string", + "description": "Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE" }, "sort_by": { - "description": "The order in which resource Forecast trend records are listed Allowed values are: \"id\", \"name\", \"daysToReachCapacity\"", - "type": "string" + "type": "string", + "enum": [ + "id", + "name", + "daysToReachCapacity" + ], + "description": "The order in which resource Forecast trend records are listed Allowed values are: \"id\", \"name\", \"daysToReachCapacity\"" }, "sort_order": { - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" }, "statistic": { - "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"", - "type": "string" + "type": "string", + "enum": [ + "AVG", + "MAX" + ], + "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"" }, "storage_server_name": { - "description": "Optional storage server name on an exadata system.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional storage server name on an exadata system." }, "time_interval_end": { - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." }, "time_interval_start": { - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "type": "string", "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "resource_type", "resource_metric", "exadata_insight_id" - ], - "type": "object" + ] }, "mutable": false }, { "name": "summarize_exadata_insight_resource_forecast_trend_aggregated", - "description": "Returns aggregated forecast trends across Exadata systems, including `historicalData`, `projectedData`, and `daysToReachCapacity`. Example metric/type: `CPU` on `HOST`.", + "description": "Returns aggregated forecast trends across Exadata systems, including historicalData, projectedData, and daysToReachCapacity.", "service": "opsi", "client": "OperationsInsightsClient", "operation": "summarize_exadata_insight_resource_forecast_trend_aggregated", "skills": [ - "exadata-insights" + "exadatainsights" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "analysis_time_interval": { - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", - "type": "string" + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." }, "cdb_name": { - "description": "Filter by one or more cdb name.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more cdb name." }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "compartment_id_in_subtree": { - "description": "A flag to search all resources within a given compartment and all sub-compartments.", - "type": "boolean" + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." }, "confidence": { - "description": "This parameter is used to change data's confidence level, this data is ingested by the forecast algorithm. Confidence is the probability of an interval to contain the expected population parameter. Manipulation of this value will lead to different results. If not set, default confidence value is 95%.", - "type": "integer" + "type": "integer", + "description": "This parameter is used to change data's confidence level, this data is ingested by the forecast algorithm. Confidence is the probability of an interval to contain the expected population parameter. Manipulation of this value will lead to different results. If not set, default confidence value is 95%." }, "exadata_insight_id": { - "description": "Optional list of exadata insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of exadata insight resource OCIDs." }, "exadata_type": { - "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC." }, "forecast_days": { - "description": "Number of days used for utilization forecast analysis.", - "type": "integer" + "type": "integer", + "description": "Number of days used for utilization forecast analysis." }, "forecast_model": { - "description": "Choose algorithm model for the forecasting. Possible values: - LINEAR: Uses linear regression algorithm for forecasting. - ML_AUTO: Automatically detects best algorithm to use for forecasting. - ML_NO_AUTO: Automatically detects seasonality of the data for forecasting using linear or seasonal algorithm. Allowed values are: \"LINEAR\", \"ML_AUTO\", \"ML_NO_AUTO\"", - "type": "string" + "type": "string", + "enum": [ + "LINEAR", + "ML_AUTO", + "ML_NO_AUTO" + ], + "description": "Choose algorithm model for the forecasting. Possible values: - LINEAR: Uses linear regression algorithm for forecasting. - ML_AUTO: Automatically detects best algorithm to use for forecasting. - ML_NO_AUTO: Automatically detects seasonality of the data for forecasting using linear or seasonal algorithm. Allowed values are: \"LINEAR\", \"ML_AUTO\", \"ML_NO_AUTO\"" }, "forecast_start_day": { - "description": "Number of days used for utilization forecast analysis.", - "type": "integer" + "type": "integer", + "description": "Number of days used for utilization forecast analysis." }, "host_name": { - "description": "Filter by hostname.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by hostname." }, "resource_metric": { - "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT", - "type": "string" + "type": "string", + "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT" }, "resource_type": { - "description": "Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE", - "type": "string" + "type": "string", + "description": "Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE" }, "statistic": { - "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"", - "type": "string" + "type": "string", + "enum": [ + "AVG", + "MAX" + ], + "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"" }, "time_interval_end": { - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." }, "time_interval_start": { - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "type": "string", "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "resource_type", "resource_metric" - ], - "type": "object" + ] }, "mutable": false }, { "name": "summarize_exadata_insight_resource_statistics", - "description": "Returns member-level Exadata resource statistics, including resource `items`, selected metric, and usage unit context. Example metric/type: `IOPS` on `STORAGE_SERVER`.", + "description": "Returns member-level Exadata resource statistics, including resource items, selected metric, and usage unit context.", "service": "opsi", "client": "OperationsInsightsClient", "operation": "summarize_exadata_insight_resource_statistics", "skills": [ - "exadata-insights" + "exadatainsights" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "analysis_time_interval": { - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", - "type": "string" + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." }, "cdb_name": { - "description": "Filter by one or more cdb name.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more cdb name." }, "exadata_insight_id": { - "description": "OCID of exadata insight resource.", - "type": "string" + "type": "string", + "description": "OCID of exadata insight resource." }, "exadata_type": { - "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC." }, "host_name": { - "description": "Filter by hostname.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by hostname." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "percentile": { - "description": "Percentile values of daily usage to be used for computing the aggregate resource usage.", - "type": "integer" + "type": "integer", + "description": "Percentile values of daily usage to be used for computing the aggregate resource usage." }, "resource_metric": { - "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT", - "type": "string" + "type": "string", + "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT" }, "resource_type": { - "description": "Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE", - "type": "string" + "type": "string", + "description": "Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE" }, "sort_by": { - "description": "The order in which resource statistics records are listed Allowed values are: \"utilizationPercent\", \"usage\", \"usageChangePercent\"", - "type": "string" + "type": "string", + "enum": [ + "utilizationPercent", + "usage", + "usageChangePercent" + ], + "description": "The order in which resource statistics records are listed Allowed values are: \"utilizationPercent\", \"usage\", \"usageChangePercent\"" }, "sort_order": { - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" }, "time_interval_end": { - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." }, "time_interval_start": { - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "type": "string", "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "exadata_insight_id", "resource_type", "resource_metric" - ], - "type": "object" + ] }, "mutable": false }, { "name": "summarize_exadata_insight_resource_usage", - "description": "Returns system-level Exadata resource usage, including per-system `items`, selected metric/type, and usage units. Example metric/type: `THROUGHPUT` on `STORAGE_SERVER`.", + "description": "Returns system-level Exadata resource usage, including per-system items, selected metric/type, and usage units.", "service": "opsi", "client": "OperationsInsightsClient", "operation": "summarize_exadata_insight_resource_usage", "skills": [ - "exadata-insights" + "exadatainsights" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "analysis_time_interval": { - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", - "type": "string" + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." }, "cdb_name": { - "description": "Filter by one or more cdb name.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more cdb name." }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "compartment_id_in_subtree": { - "description": "A flag to search all resources within a given compartment and all sub-compartments.", - "type": "boolean" + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." }, "exadata_insight_id": { - "description": "Optional list of exadata insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of exadata insight resource OCIDs." }, "exadata_type": { - "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC." }, "host_name": { - "description": "Filter by hostname.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by hostname." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "percentile": { - "description": "Percentile values of daily usage to be used for computing the aggregate resource usage.", - "type": "integer" + "type": "integer", + "description": "Percentile values of daily usage to be used for computing the aggregate resource usage." }, "resource_metric": { - "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT", - "type": "string" + "type": "string", + "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT" }, "resource_type": { - "description": "Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE", - "type": "string" + "type": "string", + "description": "Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE" }, "sort_by": { - "description": "The order in which resource usage summary records are listed Allowed values are: \"utilizationPercent\", \"usage\", \"capacity\", \"usageChangePercent\"", - "type": "string" + "type": "string", + "enum": [ + "utilizationPercent", + "usage", + "capacity", + "usageChangePercent" + ], + "description": "The order in which resource usage summary records are listed Allowed values are: \"utilizationPercent\", \"usage\", \"capacity\", \"usageChangePercent\"" }, "sort_order": { - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" }, "time_interval_end": { - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." }, "time_interval_start": { - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "type": "string", "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id", "resource_type", "resource_metric" - ], - "type": "object" + ] }, "mutable": false }, { "name": "summarize_exadata_insight_resource_usage_aggregated", - "description": "Returns fleet-level aggregated Exadata usage, including `usage`, `capacity`, and `usageChangePercent`. Example metric/type: `MEMORY` on `DATABASE`.", + "description": "Returns fleet-level aggregated Exadata usage, including usage, capacity, and usageChangePercent.", "service": "opsi", "client": "OperationsInsightsClient", "operation": "summarize_exadata_insight_resource_usage_aggregated", "skills": [ - "exadata-insights" + "exadatainsights" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "analysis_time_interval": { - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", - "type": "string" + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." }, "cdb_name": { - "description": "Filter by one or more cdb name.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more cdb name." }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "compartment_id_in_subtree": { - "description": "A flag to search all resources within a given compartment and all sub-compartments.", - "type": "boolean" + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." }, "exadata_insight_id": { - "description": "Optional list of exadata insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of exadata insight resource OCIDs." }, "exadata_type": { - "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC." }, "host_name": { - "description": "Filter by hostname.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by hostname." }, "percentile": { - "description": "Percentile values of daily usage to be used for computing the aggregate resource usage.", - "type": "integer" + "type": "integer", + "description": "Percentile values of daily usage to be used for computing the aggregate resource usage." }, "resource_metric": { - "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT", - "type": "string" + "type": "string", + "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT" }, "resource_type": { - "description": "Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE", - "type": "string" + "type": "string", + "description": "Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE" }, "time_interval_end": { - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." }, "time_interval_start": { - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "type": "string", "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id", "resource_type", "resource_metric" - ], - "type": "object" + ] }, "mutable": false }, { "name": "summarize_exadata_insight_resource_utilization_insight", - "description": "Returns Exadata utilization insights with thresholds, including `utilization`, high/low threshold values, and metric/type context. Example metric/type: `IO` on `HOST`.", + "description": "Returns Exadata utilization insights with thresholds, including utilization, high/low threshold values, and metric/type context.", "service": "opsi", "client": "OperationsInsightsClient", "operation": "summarize_exadata_insight_resource_utilization_insight", "skills": [ - "exadata-insights" + "exadatainsights" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "analysis_time_interval": { - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", - "type": "string" + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." }, "cdb_name": { - "description": "Filter by one or more cdb name.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more cdb name." }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "compartment_id_in_subtree": { - "description": "A flag to search all resources within a given compartment and all sub-compartments.", - "type": "boolean" + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." }, "exadata_insight_id": { - "description": "Optional list of exadata insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of exadata insight resource OCIDs." }, "exadata_type": { - "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC." }, "forecast_days": { - "description": "Number of days used for utilization forecast analysis.", - "type": "integer" + "type": "integer", + "description": "Number of days used for utilization forecast analysis." }, "forecast_start_day": { - "description": "Number of days used for utilization forecast analysis.", - "type": "integer" + "type": "integer", + "description": "Number of days used for utilization forecast analysis." }, "high_utilization_threshold": { - "description": "Percent value in which a resource metric is considered highly utilized.", - "type": "integer" + "type": "integer", + "description": "Percent value in which a resource metric is considered highly utilized." }, "host_name": { - "description": "Filter by hostname.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by hostname." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "low_utilization_threshold": { - "description": "Percent value in which a resource metric is considered low utilized.", - "type": "integer" + "type": "integer", + "description": "Percent value in which a resource metric is considered low utilized." }, "resource_metric": { - "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT", - "type": "string" + "type": "string", + "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT" }, "resource_type": { - "description": "Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE", - "type": "string" + "type": "string", + "description": "Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE" }, "time_interval_end": { - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." }, "time_interval_start": { - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "type": "string", "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id", "resource_type", "resource_metric" - ], - "type": "object" + ] }, "mutable": false }, { "name": "summarize_exadata_members", - "description": "Returns Exadata member inventory, including rack identity (`exadataName`, `exadataRackType`) and member `items`.", + "description": "Returns Exadata member inventory, including rack identity (exadataName, exadataRackType) and member items.", "service": "opsi", "client": "OperationsInsightsClient", "operation": "summarize_exadata_members", "skills": [ - "exadata-insights" + "exadatainsights" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "exadata_insight_id": { - "description": "OCID of exadata insight resource.", - "type": "string" + "type": "string", + "description": "OCID of exadata insight resource." }, "exadata_type": { - "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "sort_by": { - "description": "The order in which exadata member records are listed Allowed values are: \"name\", \"displayName\", \"entityType\"", - "type": "string" + "type": "string", + "enum": [ + "name", + "displayName", + "entityType" + ], + "description": "The order in which exadata member records are listed Allowed values are: \"name\", \"displayName\", \"entityType\"" }, "sort_order": { - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "exadata_insight_id" - ], - "type": "object" + ] }, "mutable": false }, @@ -9342,34 +13974,42 @@ "external-asm-core" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "end_time": { - "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`.", - "type": "string" + "type": "string", + "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." }, "external_asm_id": { - "description": "The OCID of the external ASM.", - "type": "string" + "type": "string", + "description": "The OCID of the external ASM." }, "filter_by_metric_names": { - "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.", - "type": "string" + "type": "string", + "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "start_time": { - "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`.", + "type": "string", + "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "external_asm_id", "start_time", "end_time" - ], - "type": "object" + ] }, "mutable": false }, @@ -9383,34 +14023,42 @@ "external-db-runtime-topology" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "end_time": { - "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`.", - "type": "string" + "type": "string", + "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." }, "external_cluster_id": { - "description": "The OCID of the external cluster.", - "type": "string" + "type": "string", + "description": "The OCID of the external cluster." }, "filter_by_metric_names": { - "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.", - "type": "string" + "type": "string", + "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "start_time": { - "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`.", + "type": "string", + "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "external_cluster_id", "start_time", "end_time" - ], - "type": "object" + ] }, "mutable": false }, @@ -9424,34 +14072,42 @@ "external-db-runtime-topology" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "end_time": { - "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`.", - "type": "string" + "type": "string", + "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." }, "external_db_node_id": { - "description": "The OCID of the external database node.", - "type": "string" + "type": "string", + "description": "The OCID of the external database node." }, "filter_by_metric_names": { - "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.", - "type": "string" + "type": "string", + "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "start_time": { - "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`.", + "type": "string", + "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "external_db_node_id", "start_time", "end_time" - ], - "type": "object" + ] }, "mutable": false }, @@ -9465,34 +14121,42 @@ "external-inventory-discovery-connectivity" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "end_time": { - "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`.", - "type": "string" + "type": "string", + "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." }, "external_db_system_id": { - "description": "The OCID of the external DB system.", - "type": "string" + "type": "string", + "description": "The OCID of the external DB system." }, "filter_by_component_types": { - "description": "The filter used to retrieve metrics for a specific set of component types by passing the desired component types separated by a comma. Note that, by default, the service returns metrics for all DB system component types.", - "type": "string" + "type": "string", + "description": "The filter used to retrieve metrics for a specific set of component types by passing the desired component types separated by a comma. Note that, by default, the service returns metrics for all DB system component types." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "start_time": { - "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`.", + "type": "string", + "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "external_db_system_id", "start_time", "end_time" - ], - "type": "object" + ] }, "mutable": false }, @@ -9506,1069 +14170,1596 @@ "external-db-runtime-topology" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "end_time": { - "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`.", - "type": "string" + "type": "string", + "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." }, "external_listener_id": { - "description": "The OCID of the external listener.", - "type": "string" + "type": "string", + "description": "The OCID of the external listener." }, "filter_by_metric_names": { - "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.", - "type": "string" + "type": "string", + "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "start_time": { - "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`.", + "type": "string", + "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "external_listener_id", "start_time", "end_time" - ], - "type": "object" + ] }, "mutable": false }, { "name": "summarize_host_insight_disk_statistics", - "description": "Returns disk-level usage statistics for a host, including per-disk `items`, interval duration, and usage units.", + "description": "Returns disk-level usage statistics for a host, including per-disk items, interval duration, and usage units.", "service": "opsi", "client": "OperationsInsightsClient", "operation": "summarize_host_insight_disk_statistics", "skills": [ - "host-insights" + "hostinsights" ], "inputSchema": { + "type": "object", "properties": { "analysis_time_interval": { - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", - "type": "string" + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "host_id": { - "description": "Optional OCID of the host (Compute Id).", - "type": "string" + "type": "string", + "description": "Optional OCID of the host (Compute Id)." }, "id": { - "description": "Required OCID of the host insight resource.", - "type": "string" + "type": "string", + "description": "Required OCID of the host insight resource." }, "statistic": { - "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"", - "type": "string" + "type": "string", + "enum": [ + "AVG", + "MAX" + ], + "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"" }, "status": { - "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED", + "TERMINATED" + ] + }, + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" }, "time_interval_end": { - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." }, "time_interval_start": { - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "type": "string", "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id", "id" - ], - "type": "object" + ] }, "mutable": false }, { "name": "summarize_host_insight_host_recommendation", - "description": "Returns host recommendations for a resource type, including recommendation `details`, interval context, and usage units. Example metric: `STORAGE`.", + "description": "Returns host recommendations for a resource type, including recommendation details, interval context, and usage units.", "service": "opsi", "client": "OperationsInsightsClient", "operation": "summarize_host_insight_host_recommendation", "skills": [ - "host-insights" + "hostinsights" ], "inputSchema": { + "type": "object", "properties": { "analysis_time_interval": { - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", - "type": "string" + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "host_id": { - "description": "Optional OCID of the host (Compute Id).", - "type": "string" + "type": "string", + "description": "Optional OCID of the host (Compute Id)." }, "id": { - "description": "Required OCID of the host insight resource.", - "type": "string" + "type": "string", + "description": "Required OCID of the host insight resource." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "resource_metric": { - "description": "Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK.", - "type": "string" + "type": "string", + "description": "Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK." }, "statistic": { - "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"", - "type": "string" + "type": "string", + "enum": [ + "AVG", + "MAX" + ], + "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"" }, "time_interval_end": { - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." }, "time_interval_start": { - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "type": "string", "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id", "id", "resource_metric" - ], - "type": "object" + ] }, "mutable": false }, { "name": "summarize_host_insight_io_usage_trend", - "description": "Returns host I/O usage time-series data, including `items`, interval duration, and start/end timestamps.", + "description": "Returns host I/O usage time-series data, including items, interval duration, and start/end timestamps.", "service": "opsi", "client": "OperationsInsightsClient", "operation": "summarize_host_insight_io_usage_trend", "skills": [ - "host-insights" + "hostinsights" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "analysis_time_interval": { - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", - "type": "string" + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "host_id": { - "description": "Optional OCID of the host (Compute Id).", - "type": "string" + "type": "string", + "description": "Optional OCID of the host (Compute Id)." }, "id": { - "description": "Required OCID of the host insight resource.", - "type": "string" + "type": "string", + "description": "Required OCID of the host insight resource." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "statistic": { - "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"", - "type": "string" + "type": "string", + "enum": [ + "AVG", + "MAX" + ], + "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"" }, "status": { - "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED", + "TERMINATED" + ] + }, + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" }, "time_interval_end": { - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." }, "time_interval_start": { - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "type": "string", "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id", "id" - ], - "type": "object" + ] }, "mutable": false }, { "name": "summarize_host_insight_network_usage_trend", - "description": "Returns network usage trends for a host, including sampled `items`, interval duration, and usage units.", + "description": "Returns network usage trends for a host, including sampled items, interval duration, and usage units.", "service": "opsi", "client": "OperationsInsightsClient", "operation": "summarize_host_insight_network_usage_trend", "skills": [ - "host-insights" + "hostinsights" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "analysis_time_interval": { - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", - "type": "string" + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "host_id": { - "description": "Optional OCID of the host (Compute Id).", - "type": "string" + "type": "string", + "description": "Optional OCID of the host (Compute Id)." }, "id": { - "description": "Required OCID of the host insight resource.", - "type": "string" + "type": "string", + "description": "Required OCID of the host insight resource." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "statistic": { - "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"", - "type": "string" + "type": "string", + "enum": [ + "AVG", + "MAX" + ], + "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"" }, "status": { - "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED", + "TERMINATED" + ] + }, + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" }, "time_interval_end": { - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." }, "time_interval_start": { - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "type": "string", "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id", "id" - ], - "type": "object" + ] }, "mutable": false }, { "name": "summarize_host_insight_resource_capacity_trend", - "description": "Returns host resource capacity trend data, including `capacityData`, `resourceMetric`, and interval boundaries. Example metric: `CPU`.", + "description": "Returns host resource capacity trend data, including capacityData, resourceMetric, and interval boundaries.", "service": "opsi", "client": "OperationsInsightsClient", "operation": "summarize_host_insight_resource_capacity_trend", "skills": [ - "host-insights" + "hostinsights" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "analysis_time_interval": { - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", - "type": "string" + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "compartment_id_in_subtree": { - "description": "A flag to search all resources within a given compartment and all sub-compartments.", - "type": "boolean" + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." }, "exadata_insight_id": { - "description": "Optional list of exadata insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of exadata insight resource OCIDs." }, "high_utilization_threshold": { - "description": "Percent value in which a resource metric is considered highly utilized.", - "type": "integer" + "type": "integer", + "description": "Percent value in which a resource metric is considered highly utilized." }, "host_id": { - "description": "Optional OCID of the host (Compute Id).", - "type": "string" + "type": "string", + "description": "Optional OCID of the host (Compute Id)." }, "host_type": { - "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST" }, "id": { - "description": "Optional list of host insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of host insight resource OCIDs." }, "low_utilization_threshold": { - "description": "Percent value in which a resource metric is considered low utilized.", - "type": "integer" + "type": "integer", + "description": "Percent value in which a resource metric is considered low utilized." }, "platform_type": { - "description": "Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: \"LINUX\", \"SOLARIS\", \"SUNOS\", \"ZLINUX\", \"WINDOWS\", \"AIX\", \"HP_UX\"", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string", + "enum": [ + "LINUX", + "SOLARIS", + "SUNOS", + "ZLINUX", + "WINDOWS", + "AIX", + "HP_UX" + ] + }, + "description": "Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: \"LINUX\", \"SOLARIS\", \"SUNOS\", \"ZLINUX\", \"WINDOWS\", \"AIX\", \"HP_UX\"" }, "resource_metric": { - "description": "Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK.", - "type": "string" + "type": "string", + "description": "Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK." }, "sort_by": { - "description": "Sorts using end timestamp or capacity Allowed values are: \"endTimestamp\", \"capacity\"", - "type": "string" + "type": "string", + "enum": [ + "endTimestamp", + "capacity" + ], + "description": "Sorts using end timestamp or capacity Allowed values are: \"endTimestamp\", \"capacity\"" }, "sort_order": { - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" }, "status": { - "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED", + "TERMINATED" + ] + }, + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" }, "time_interval_end": { - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." }, "time_interval_start": { - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." }, "utilization_level": { - "description": "Filter by utilization level by the following buckets: - HIGH_UTILIZATION: DBs with utilization greater or equal than 75. - LOW_UTILIZATION: DBs with utilization lower than 25. - MEDIUM_HIGH_UTILIZATION: DBs with utilization greater or equal than 50 but lower than 75. - MEDIUM_LOW_UTILIZATION: DBs with utilization greater or equal than 25 but lower than 50. Allowed values are: \"HIGH_UTILIZATION\", \"LOW_UTILIZATION\", \"MEDIUM_HIGH_UTILIZATION\", \"MEDIUM_LOW_UTILIZATION\"", - "type": "string" + "type": "string", + "enum": [ + "HIGH_UTILIZATION", + "LOW_UTILIZATION", + "MEDIUM_HIGH_UTILIZATION", + "MEDIUM_LOW_UTILIZATION" + ], + "description": "Filter by utilization level by the following buckets: - HIGH_UTILIZATION: DBs with utilization greater or equal than 75. - LOW_UTILIZATION: DBs with utilization lower than 25. - MEDIUM_HIGH_UTILIZATION: DBs with utilization greater or equal than 50 but lower than 75. - MEDIUM_LOW_UTILIZATION: DBs with utilization greater or equal than 25 but lower than 50. Allowed values are: \"HIGH_UTILIZATION\", \"LOW_UTILIZATION\", \"MEDIUM_HIGH_UTILIZATION\", \"MEDIUM_LOW_UTILIZATION\"" }, "vmcluster_name": { - "description": "Optional list of Exadata Insight VM cluster name.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of Exadata Insight VM cluster name." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id", "resource_metric" - ], - "type": "object" + ] }, "mutable": false }, { "name": "summarize_host_insight_resource_forecast_trend", - "description": "Returns historical and projected usage for a host resource, including `historicalData`, `projectedData`, and selected forecast algorithm. Example metric: `NETWORK`.", + "description": "Returns historical and projected usage for a host resource, including historicalData, projectedData, and selected forecast algorithm.", "service": "opsi", "client": "OperationsInsightsClient", "operation": "summarize_host_insight_resource_forecast_trend", "skills": [ - "host-insights" + "hostinsights" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "analysis_time_interval": { - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", - "type": "string" + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "compartment_id_in_subtree": { - "description": "A flag to search all resources within a given compartment and all sub-compartments.", - "type": "boolean" + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." }, "confidence": { - "description": "This parameter is used to change data's confidence level, this data is ingested by the forecast algorithm. Confidence is the probability of an interval to contain the expected population parameter. Manipulation of this value will lead to different results. If not set, default confidence value is 95%.", - "type": "integer" + "type": "integer", + "description": "This parameter is used to change data's confidence level, this data is ingested by the forecast algorithm. Confidence is the probability of an interval to contain the expected population parameter. Manipulation of this value will lead to different results. If not set, default confidence value is 95%." }, "exadata_insight_id": { - "description": "Optional list of exadata insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of exadata insight resource OCIDs." }, "forecast_days": { - "description": "Number of days used for utilization forecast analysis.", - "type": "integer" + "type": "integer", + "description": "Number of days used for utilization forecast analysis." }, "forecast_model": { - "description": "Choose algorithm model for the forecasting. Possible values: - LINEAR: Uses linear regression algorithm for forecasting. - ML_AUTO: Automatically detects best algorithm to use for forecasting. - ML_NO_AUTO: Automatically detects seasonality of the data for forecasting using linear or seasonal algorithm. Allowed values are: \"LINEAR\", \"ML_AUTO\", \"ML_NO_AUTO\"", - "type": "string" + "type": "string", + "enum": [ + "LINEAR", + "ML_AUTO", + "ML_NO_AUTO" + ], + "description": "Choose algorithm model for the forecasting. Possible values: - LINEAR: Uses linear regression algorithm for forecasting. - ML_AUTO: Automatically detects best algorithm to use for forecasting. - ML_NO_AUTO: Automatically detects seasonality of the data for forecasting using linear or seasonal algorithm. Allowed values are: \"LINEAR\", \"ML_AUTO\", \"ML_NO_AUTO\"" }, "gpu_id": { - "description": "GPU identifier.", - "type": "integer" + "type": "integer", + "description": "GPU identifier." }, "high_utilization_threshold": { - "description": "Percent value in which a resource metric is considered highly utilized.", - "type": "integer" + "type": "integer", + "description": "Percent value in which a resource metric is considered highly utilized." }, "host_id": { - "description": "Optional OCID of the host (Compute Id).", - "type": "string" + "type": "string", + "description": "Optional OCID of the host (Compute Id)." }, "host_type": { - "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST" }, "id": { - "description": "Optional list of host insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of host insight resource OCIDs." }, "interface_name": { - "description": "Name of the network interface.", - "type": "string" + "type": "string", + "description": "Name of the network interface." }, "low_utilization_threshold": { - "description": "Percent value in which a resource metric is considered low utilized.", - "type": "integer" + "type": "integer", + "description": "Percent value in which a resource metric is considered low utilized." }, "mount_point": { - "description": "Mount points are specialized NTFS filesystem objects.", - "type": "string" + "type": "string", + "description": "Mount points are specialized NTFS filesystem objects." }, "platform_type": { - "description": "Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: \"LINUX\", \"SOLARIS\", \"SUNOS\", \"ZLINUX\", \"WINDOWS\", \"AIX\", \"HP_UX\"", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string", + "enum": [ + "LINUX", + "SOLARIS", + "SUNOS", + "ZLINUX", + "WINDOWS", + "AIX", + "HP_UX" + ] + }, + "description": "Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: \"LINUX\", \"SOLARIS\", \"SUNOS\", \"ZLINUX\", \"WINDOWS\", \"AIX\", \"HP_UX\"" }, "resource_metric": { - "description": "Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK.", - "type": "string" + "type": "string", + "description": "Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK." }, "statistic": { - "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"", - "type": "string" + "type": "string", + "enum": [ + "AVG", + "MAX" + ], + "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"" }, "status": { - "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED", + "TERMINATED" + ] + }, + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" }, "time_interval_end": { - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." }, "time_interval_start": { - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." }, "utilization_level": { - "description": "Filter by utilization level by the following buckets: - HIGH_UTILIZATION: DBs with utilization greater or equal than 75. - LOW_UTILIZATION: DBs with utilization lower than 25. - MEDIUM_HIGH_UTILIZATION: DBs with utilization greater or equal than 50 but lower than 75. - MEDIUM_LOW_UTILIZATION: DBs with utilization greater or equal than 25 but lower than 50. Allowed values are: \"HIGH_UTILIZATION\", \"LOW_UTILIZATION\", \"MEDIUM_HIGH_UTILIZATION\", \"MEDIUM_LOW_UTILIZATION\"", - "type": "string" + "type": "string", + "enum": [ + "HIGH_UTILIZATION", + "LOW_UTILIZATION", + "MEDIUM_HIGH_UTILIZATION", + "MEDIUM_LOW_UTILIZATION" + ], + "description": "Filter by utilization level by the following buckets: - HIGH_UTILIZATION: DBs with utilization greater or equal than 75. - LOW_UTILIZATION: DBs with utilization lower than 25. - MEDIUM_HIGH_UTILIZATION: DBs with utilization greater or equal than 50 but lower than 75. - MEDIUM_LOW_UTILIZATION: DBs with utilization greater or equal than 25 but lower than 50. Allowed values are: \"HIGH_UTILIZATION\", \"LOW_UTILIZATION\", \"MEDIUM_HIGH_UTILIZATION\", \"MEDIUM_LOW_UTILIZATION\"" }, "vmcluster_name": { - "description": "Optional list of Exadata Insight VM cluster name.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of Exadata Insight VM cluster name." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id", "resource_metric" - ], - "type": "object" + ] }, "mutable": false }, { "name": "summarize_host_insight_resource_statistics", - "description": "Returns host-by-host resource statistics, including per-host `items`, utilization thresholds, and usage units. Example metric: `MEMORY`.", + "description": "Returns host-by-host resource statistics, including per-host items, utilization thresholds, and usage units.", "service": "opsi", "client": "OperationsInsightsClient", "operation": "summarize_host_insight_resource_statistics", "skills": [ - "host-insights" + "hostinsights" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "analysis_time_interval": { - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", - "type": "string" + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "compartment_id_in_subtree": { - "description": "A flag to search all resources within a given compartment and all sub-compartments.", - "type": "boolean" + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." }, "exadata_insight_id": { - "description": "Optional list of exadata insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of exadata insight resource OCIDs." }, "forecast_days": { - "description": "Number of days used for utilization forecast analysis.", - "type": "integer" + "type": "integer", + "description": "Number of days used for utilization forecast analysis." }, "high_utilization_threshold": { - "description": "Percent value in which a resource metric is considered highly utilized.", - "type": "integer" + "type": "integer", + "description": "Percent value in which a resource metric is considered highly utilized." }, "host_id": { - "description": "Optional OCID of the host (Compute Id).", - "type": "string" + "type": "string", + "description": "Optional OCID of the host (Compute Id)." }, "host_type": { - "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST" }, "id": { - "description": "Optional list of host insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of host insight resource OCIDs." }, "insight_by": { - "description": "Return data of a specific insight Possible values are High Utilization, Low Utilization, Any,High Utilization Forecast, Low Utilization Forecast", - "type": "string" + "type": "string", + "description": "Return data of a specific insight Possible values are High Utilization, Low Utilization, Any,High Utilization Forecast, Low Utilization Forecast" }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "low_utilization_threshold": { - "description": "Percent value in which a resource metric is considered low utilized.", - "type": "integer" + "type": "integer", + "description": "Percent value in which a resource metric is considered low utilized." }, "percentile": { - "description": "Percentile values of daily usage to be used for computing the aggregate resource usage.", - "type": "integer" + "type": "integer", + "description": "Percentile values of daily usage to be used for computing the aggregate resource usage." }, "platform_type": { - "description": "Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: \"LINUX\", \"SOLARIS\", \"SUNOS\", \"ZLINUX\", \"WINDOWS\", \"AIX\", \"HP_UX\"", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string", + "enum": [ + "LINUX", + "SOLARIS", + "SUNOS", + "ZLINUX", + "WINDOWS", + "AIX", + "HP_UX" + ] + }, + "description": "Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: \"LINUX\", \"SOLARIS\", \"SUNOS\", \"ZLINUX\", \"WINDOWS\", \"AIX\", \"HP_UX\"" }, "resource_metric": { - "description": "Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK.", - "type": "string" + "type": "string", + "description": "Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK." }, "sort_by": { - "description": "The order in which resource statistics records are listed. Allowed values are: \"utilizationPercent\", \"usage\", \"usageChangePercent\", \"hostName\", \"platformType\"", - "type": "string" + "type": "string", + "enum": [ + "utilizationPercent", + "usage", + "usageChangePercent", + "hostName", + "platformType" + ], + "description": "The order in which resource statistics records are listed. Allowed values are: \"utilizationPercent\", \"usage\", \"usageChangePercent\", \"hostName\", \"platformType\"" }, "sort_order": { - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" }, "status": { - "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED", + "TERMINATED" + ] + }, + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" }, "time_interval_end": { - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." }, "time_interval_start": { - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." }, "vmcluster_name": { - "description": "Optional list of Exadata Insight VM cluster name.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of Exadata Insight VM cluster name." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id", "resource_metric" - ], - "type": "object" + ] }, "mutable": false }, { "name": "summarize_host_insight_resource_usage", - "description": "Returns aggregated host usage for a resource type, including `usage`, `capacity`, and `usageChangePercent`. Example metric: `LOGICAL_MEMORY`.", + "description": "Returns aggregated host usage for a resource type, including usage, capacity, and usageChangePercent.", "service": "opsi", "client": "OperationsInsightsClient", "operation": "summarize_host_insight_resource_usage", "skills": [ - "host-insights" + "hostinsights" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "analysis_time_interval": { - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", - "type": "string" + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "compartment_id_in_subtree": { - "description": "A flag to search all resources within a given compartment and all sub-compartments.", - "type": "boolean" + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." }, "exadata_insight_id": { - "description": "Optional list of exadata insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of exadata insight resource OCIDs." }, "host_id": { - "description": "Optional OCID of the host (Compute Id).", - "type": "string" + "type": "string", + "description": "Optional OCID of the host (Compute Id)." }, "host_type": { - "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST" }, "id": { - "description": "Optional list of host insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of host insight resource OCIDs." }, "percentile": { - "description": "Percentile values of daily usage to be used for computing the aggregate resource usage.", - "type": "integer" + "type": "integer", + "description": "Percentile values of daily usage to be used for computing the aggregate resource usage." }, "platform_type": { - "description": "Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: \"LINUX\", \"SOLARIS\", \"SUNOS\", \"ZLINUX\", \"WINDOWS\", \"AIX\", \"HP_UX\"", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string", + "enum": [ + "LINUX", + "SOLARIS", + "SUNOS", + "ZLINUX", + "WINDOWS", + "AIX", + "HP_UX" + ] + }, + "description": "Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: \"LINUX\", \"SOLARIS\", \"SUNOS\", \"ZLINUX\", \"WINDOWS\", \"AIX\", \"HP_UX\"" }, "resource_metric": { - "description": "Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK.", - "type": "string" + "type": "string", + "description": "Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK." }, "status": { - "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED", + "TERMINATED" + ] + }, + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" }, "time_interval_end": { - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "vmcluster_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of Exadata Insight VM cluster name." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } }, - "time_interval_start": { - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", - "format": "date-time", + "opc_request_id": { "type": "string" - }, - "vmcluster_name": { - "description": "Optional list of Exadata Insight VM cluster name.", - "items": {}, - "type": "array" } }, + "additionalProperties": false, "required": [ "compartment_id", "resource_metric" - ], - "type": "object" + ] }, "mutable": false }, { "name": "summarize_host_insight_resource_usage_trend", - "description": "Returns host usage time series for a resource type, including `usageData`, `resourceMetric`, and interval boundaries. Example metric: `STORAGE`.", + "description": "Returns host usage time series for a resource type, including usageData, resourceMetric, and interval boundaries.", "service": "opsi", "client": "OperationsInsightsClient", "operation": "summarize_host_insight_resource_usage_trend", "skills": [ - "host-insights" + "hostinsights" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "analysis_time_interval": { - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", - "type": "string" + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "compartment_id_in_subtree": { - "description": "A flag to search all resources within a given compartment and all sub-compartments.", - "type": "boolean" + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." }, "exadata_insight_id": { - "description": "Optional list of exadata insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of exadata insight resource OCIDs." }, "host_id": { - "description": "Optional OCID of the host (Compute Id).", - "type": "string" + "type": "string", + "description": "Optional OCID of the host (Compute Id)." }, "host_type": { - "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST" }, "id": { - "description": "Optional list of host insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of host insight resource OCIDs." }, "platform_type": { - "description": "Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: \"LINUX\", \"SOLARIS\", \"SUNOS\", \"ZLINUX\", \"WINDOWS\", \"AIX\", \"HP_UX\"", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string", + "enum": [ + "LINUX", + "SOLARIS", + "SUNOS", + "ZLINUX", + "WINDOWS", + "AIX", + "HP_UX" + ] + }, + "description": "Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: \"LINUX\", \"SOLARIS\", \"SUNOS\", \"ZLINUX\", \"WINDOWS\", \"AIX\", \"HP_UX\"" }, "resource_metric": { - "description": "Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK.", - "type": "string" + "type": "string", + "description": "Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK." }, "sort_by": { - "description": "Sorts using end timestamp, usage or capacity Allowed values are: \"endTimestamp\", \"usage\", \"capacity\"", - "type": "string" + "type": "string", + "enum": [ + "endTimestamp", + "usage", + "capacity" + ], + "description": "Sorts using end timestamp, usage or capacity Allowed values are: \"endTimestamp\", \"usage\", \"capacity\"" }, "sort_order": { - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" }, "status": { - "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED", + "TERMINATED" + ] + }, + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" }, "time_interval_end": { - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." }, "time_interval_start": { - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." }, "vmcluster_name": { - "description": "Optional list of Exadata Insight VM cluster name.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of Exadata Insight VM cluster name." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id", "resource_metric" - ], - "type": "object" + ] }, "mutable": false }, { "name": "summarize_host_insight_resource_utilization_insight", - "description": "Returns current and projected utilization insights, including `currentUtilization`, `projectedUtilization`, and threshold values. Example metric: `CPU`.", + "description": "Returns current and projected utilization insights, including currentUtilization, projectedUtilization, and threshold values.", "service": "opsi", "client": "OperationsInsightsClient", "operation": "summarize_host_insight_resource_utilization_insight", "skills": [ - "host-insights" + "hostinsights" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "analysis_time_interval": { - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", - "type": "string" + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "compartment_id_in_subtree": { - "description": "A flag to search all resources within a given compartment and all sub-compartments.", - "type": "boolean" + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." }, "exadata_insight_id": { - "description": "Optional list of exadata insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of exadata insight resource OCIDs." }, "forecast_days": { - "description": "Number of days used for utilization forecast analysis.", - "type": "integer" + "type": "integer", + "description": "Number of days used for utilization forecast analysis." }, "high_utilization_threshold": { - "description": "Percent value in which a resource metric is considered highly utilized.", - "type": "integer" + "type": "integer", + "description": "Percent value in which a resource metric is considered highly utilized." }, "host_id": { - "description": "Optional OCID of the host (Compute Id).", - "type": "string" + "type": "string", + "description": "Optional OCID of the host (Compute Id)." }, "host_type": { - "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST" }, "id": { - "description": "Optional list of host insight resource OCIDs.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of host insight resource OCIDs." }, "low_utilization_threshold": { - "description": "Percent value in which a resource metric is considered low utilized.", - "type": "integer" + "type": "integer", + "description": "Percent value in which a resource metric is considered low utilized." }, "platform_type": { - "description": "Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: \"LINUX\", \"SOLARIS\", \"SUNOS\", \"ZLINUX\", \"WINDOWS\", \"AIX\", \"HP_UX\"", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string", + "enum": [ + "LINUX", + "SOLARIS", + "SUNOS", + "ZLINUX", + "WINDOWS", + "AIX", + "HP_UX" + ] + }, + "description": "Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: \"LINUX\", \"SOLARIS\", \"SUNOS\", \"ZLINUX\", \"WINDOWS\", \"AIX\", \"HP_UX\"" }, "resource_metric": { - "description": "Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK.", - "type": "string" + "type": "string", + "description": "Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK." }, "status": { - "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED", + "TERMINATED" + ] + }, + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" }, "time_interval_end": { - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." }, "time_interval_start": { - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." }, "vmcluster_name": { - "description": "Optional list of Exadata Insight VM cluster name.", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of Exadata Insight VM cluster name." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id", "resource_metric" - ], - "type": "object" + ] }, "mutable": false }, { "name": "summarize_host_insight_storage_usage_trend", - "description": "Returns storage usage trends for a host, including filesystem-level `items`, interval duration, and usage units.", + "description": "Returns storage usage trends for a host, including filesystem-level items, interval duration, and usage units.", "service": "opsi", "client": "OperationsInsightsClient", "operation": "summarize_host_insight_storage_usage_trend", "skills": [ - "host-insights" + "hostinsights" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "analysis_time_interval": { - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", - "type": "string" + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "host_id": { - "description": "Optional OCID of the host (Compute Id).", - "type": "string" + "type": "string", + "description": "Optional OCID of the host (Compute Id)." }, "id": { - "description": "Required OCID of the host insight resource.", - "type": "string" + "type": "string", + "description": "Required OCID of the host insight resource." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "statistic": { - "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"", - "type": "string" + "type": "string", + "enum": [ + "AVG", + "MAX" + ], + "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"" }, "status": { - "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED", + "TERMINATED" + ] + }, + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" }, "time_interval_end": { - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." }, "time_interval_start": { - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "type": "string", "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id", "id" - ], - "type": "object" + ] }, "mutable": false }, { "name": "summarize_host_insight_top_processes_usage", - "description": "Returns top process usage for a specific date, including process `items` and observation `timestamp`. Example metric: `MEMORY`.", + "description": "Returns top process usage for a specific date, including process items and observation timestamp.", "service": "opsi", "client": "OperationsInsightsClient", "operation": "summarize_host_insight_top_processes_usage", "skills": [ - "host-insights" + "hostinsights" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "analysis_time_interval": { - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", - "type": "string" + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "host_id": { - "description": "Optional OCID of the host (Compute Id).", - "type": "string" + "type": "string", + "description": "Optional OCID of the host (Compute Id)." }, "host_type": { - "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST" }, "id": { - "description": "Required OCID of the host insight resource.", - "type": "string" + "type": "string", + "description": "Required OCID of the host insight resource." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "resource_metric": { - "description": "Host top processes resource metric sort options. Supported values are CPU, MEMORY, VIIRTUAL_MEMORY.", - "type": "string" + "type": "string", + "description": "Host top processes resource metric sort options. Supported values are CPU, MEMORY, VIIRTUAL_MEMORY." }, "statistic": { - "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"", - "type": "string" + "type": "string", + "enum": [ + "AVG", + "MAX" + ], + "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"" }, "status": { - "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED", + "TERMINATED" + ] + }, + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" }, "time_interval_end": { - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." }, "time_interval_start": { - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." }, "timestamp": { - "description": "Timestamp at which to gather the top processes. This will be top processes over the hour or over the day pending the time range passed into the query.", + "type": "string", "format": "date-time", + "description": "Timestamp at which to gather the top processes. This will be top processes over the hour or over the day pending the time range passed into the query." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id", "id", "resource_metric", "timestamp" - ], - "type": "object" + ] }, "mutable": false }, { "name": "summarize_host_insight_top_processes_usage_trend", - "description": "Returns top process usage trends, including process `items` and interval start/end timestamps. Example metric: `CPU`.", + "description": "Returns top process usage trends, including process items and interval start/end timestamps.", "service": "opsi", "client": "OperationsInsightsClient", "operation": "summarize_host_insight_top_processes_usage_trend", "skills": [ - "host-insights" + "hostinsights" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "analysis_time_interval": { - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M).", - "type": "string" + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." }, "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "host_id": { - "description": "Optional OCID of the host (Compute Id).", - "type": "string" + "type": "string", + "description": "Optional OCID of the host (Compute Id)." }, "host_type": { - "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST" }, "id": { - "description": "Required OCID of the host insight resource.", - "type": "string" + "type": "string", + "description": "Required OCID of the host insight resource." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "process_hash": { - "description": "Unique identifier for a process.", - "type": "string" + "type": "string", + "description": "Unique identifier for a process." }, "resource_metric": { - "description": "Host top processes resource metric sort options. Supported values are CPU, MEMORY, VIIRTUAL_MEMORY.", - "type": "string" + "type": "string", + "description": "Host top processes resource metric sort options. Supported values are CPU, MEMORY, VIIRTUAL_MEMORY." }, "statistic": { - "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"", - "type": "string" + "type": "string", + "enum": [ + "AVG", + "MAX" + ], + "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"" }, "status": { - "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"", - "items": {}, - "type": "array" + "type": "array", + "items": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED", + "TERMINATED" + ] + }, + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" }, "time_interval_end": { - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.", + "type": "string", "format": "date-time", - "type": "string" + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." }, "time_interval_start": { - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.", + "type": "string", "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id", "id", "resource_metric" - ], - "type": "object" + ] }, "mutable": false }, @@ -10582,50 +15773,62 @@ "job-orchestration-and-execution-tracking" ], "inputSchema": { + "type": "object", "properties": { "compartment_id": { - "description": "The OCID of the compartment.", - "type": "string" + "type": "string", + "description": "The OCID of the compartment." }, "end_time": { - "description": "The end time of the time range to retrieve the status summary of job executions\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\".", - "type": "string" + "type": "string", + "description": "The end time of the time range to retrieve the status summary of job executions\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." }, "id": { - "description": "The identifier of the resource.", - "type": "string" + "type": "string", + "description": "The identifier of the resource." }, "managed_database_group_id": { - "description": "The OCID of the Managed Database Group.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database Group." }, "managed_database_id": { - "description": "The OCID of the Managed Database.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database." }, "name": { - "description": "A filter to return only resources that match the entire name.", - "type": "string" + "type": "string", + "description": "A filter to return only resources that match the entire name." }, "sort_by": { - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"", - "type": "string" + "type": "string", + "enum": [ + "TIMECREATED", + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" }, "sort_order": { - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"", - "type": "string" + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" }, "start_time": { - "description": "The start time of the time range to retrieve the status summary of job executions\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\".", + "type": "string", + "description": "The start time of the time range to retrieve the status summary of job executions\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "compartment_id", "start_time", "end_time" - ], - "type": "object" + ] }, "mutable": false }, @@ -10639,30 +15842,64 @@ "database-health-and-core-metrics" ], "inputSchema": { + "type": "object", "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, "end_time": { - "description": "The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\".", - "type": "string" + "type": "string", + "description": "The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." }, "limit": { - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50.", - "type": "integer" + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." }, "managed_database_id": { - "description": "The OCID of the Managed Database.", - "type": "string" + "type": "string", + "description": "The OCID of the Managed Database." }, "start_time": { - "description": "The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\".", + "type": "string", + "description": "The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." + }, + "opc_request_id": { "type": "string" } }, + "additionalProperties": false, "required": [ "managed_database_id", "start_time", "end_time" - ], - "type": "object" + ] + }, + "mutable": false + }, + { + "name": "summarize_operations_insights_warehouse_resource_usage", + "description": "Returns warehouse resource-usage details so admins can monitor consumption and plan warehouse capacity operations.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_operations_insights_warehouse_resource_usage", + "skills": [ + "operations-insights-warehouse-admin" + ], + "inputSchema": { + "type": "object", + "properties": { + "opc_request_id": { + "type": "string" + }, + "operations_insights_warehouse_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "operations_insights_warehouse_id" + ] }, "mutable": false }, @@ -10684,7 +15921,6 @@ }, "database_type": { "type": "array", - "description": "Filter by one or more database type.\nPossible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB.\n", "items": { "type": "string", "enum": [ @@ -10713,49 +15949,49 @@ "EXTERNAL-ADW", "EXTERNAL-ATP" ] - } + }, + "description": "Filter by one or more database type.\nPossible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB.\n" }, "database_id": { "type": "array", - "description": "Optional list of database [OCIDs](/iaas/Content/General/Concepts/identifiers.htm) of the associated DBaaS entity.\n", "items": { "type": "string" - } + }, + "description": "Optional list of database [OCIDs](/iaas/Content/General/Concepts/identifiers.htm) of the associated DBaaS entity.\n" }, "id": { "type": "array", - "description": "Optional list of database insight resource [OCIDs](/iaas/Content/General/Concepts/identifiers.htm).\n", "items": { "type": "string" - } + }, + "description": "Optional list of database insight resource [OCIDs](/iaas/Content/General/Concepts/identifiers.htm).\n" }, "exadata_insight_id": { "type": "array", - "description": "Optional list of exadata insight resource [OCIDs](/iaas/Content/General/Concepts/identifiers.htm).\n", "items": { "type": "string" - } + }, + "description": "Optional list of exadata insight resource [OCIDs](/iaas/Content/General/Concepts/identifiers.htm).\n" }, "cdb_name": { "type": "array", - "description": "Filter by one or more cdb name.\n", "items": { "type": "string" - } + }, + "description": "Filter by one or more cdb name.\n" }, "host_name": { "type": "array", - "description": "Filter by one or more hostname.\n", "items": { "type": "string" - } + }, + "description": "Filter by one or more hostname.\n" }, "database_time_pct_greater_than": { "type": "number", - "description": "Filter sqls by percentage of db time.\n", "minimum": 1, "maximum": 100, - "format": "double" + "description": "Filter sqls by percentage of db time.\n" }, "analysis_time_interval": { "type": "string", @@ -10763,13 +15999,13 @@ }, "time_interval_start": { "type": "string", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\nThe minimum allowed value is 2 years prior to the current day.\ntimeIntervalStart and timeIntervalEnd parameters are used together.\nIf analysisTimeInterval is specified, this parameter is ignored.\n", - "format": "date-time" + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\nThe minimum allowed value is 2 years prior to the current day.\ntimeIntervalStart and timeIntervalEnd parameters are used together.\nIf analysisTimeInterval is specified, this parameter is ignored.\n" }, "time_interval_end": { "type": "string", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\ntimeIntervalStart and timeIntervalEnd are used together.\nIf timeIntervalEnd is not specified, current time is used as timeIntervalEnd.\n", - "format": "date-time" + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\ntimeIntervalStart and timeIntervalEnd are used together.\nIf timeIntervalEnd is not specified, current time is used as timeIntervalEnd.\n" }, "page": { "type": "string", @@ -10781,31 +16017,31 @@ }, "defined_tag_equals": { "type": "array", - "description": "A list of tag filters to apply. Only resources with a defined tag matching the value will be returned.\nEach item in the list has the format \"{namespace}.{tagName}.{value}\". All inputs are case-insensitive.\nMultiple values for the same key (i.e. same namespace and tag name) are interpreted as \"OR\".\nValues for different keys (i.e. different namespaces, different tag names, or both) are interpreted as \"AND\".\n", "items": { "type": "string" - } + }, + "description": "A list of tag filters to apply. Only resources with a defined tag matching the value will be returned.\nEach item in the list has the format \"{namespace}.{tagName}.{value}\". All inputs are case-insensitive.\nMultiple values for the same key (i.e. same namespace and tag name) are interpreted as \"OR\".\nValues for different keys (i.e. different namespaces, different tag names, or both) are interpreted as \"AND\".\n" }, "freeform_tag_equals": { "type": "array", - "description": "A list of tag filters to apply. Only resources with a freeform tag matching the value will be returned.\nThe key for each tag is \"{tagName}.{value}\". All inputs are case-insensitive.\nMultiple values for the same tag name are interpreted as \"OR\". Values for different tag names are interpreted as \"AND\".\n", "items": { "type": "string" - } + }, + "description": "A list of tag filters to apply. Only resources with a freeform tag matching the value will be returned.\nThe key for each tag is \"{tagName}.{value}\". All inputs are case-insensitive.\nMultiple values for the same tag name are interpreted as \"OR\". Values for different tag names are interpreted as \"AND\".\n" }, "defined_tag_exists": { "type": "array", - "description": "A list of tag existence filters to apply. Only resources for which the specified defined tags exist will be returned.\nEach item in the list has the format \"{namespace}.{tagName}.true\" (for checking existence of a defined tag)\nor \"{namespace}.true\". All inputs are case-insensitive.\nCurrently, only existence (\"true\" at the end) is supported. Absence (\"false\" at the end) is not supported.\nMultiple values for the same key (i.e. same namespace and tag name) are interpreted as \"OR\".\nValues for different keys (i.e. different namespaces, different tag names, or both) are interpreted as \"AND\".\n", "items": { "type": "string" - } + }, + "description": "A list of tag existence filters to apply. Only resources for which the specified defined tags exist will be returned.\nEach item in the list has the format \"{namespace}.{tagName}.true\" (for checking existence of a defined tag)\nor \"{namespace}.true\". All inputs are case-insensitive.\nCurrently, only existence (\"true\" at the end) is supported. Absence (\"false\" at the end) is not supported.\nMultiple values for the same key (i.e. same namespace and tag name) are interpreted as \"OR\".\nValues for different keys (i.e. different namespaces, different tag names, or both) are interpreted as \"AND\".\n" }, "freeform_tag_exists": { "type": "array", - "description": "A list of tag existence filters to apply. Only resources for which the specified freeform tags exist the value will be returned.\nThe key for each tag is \"{tagName}.true\". All inputs are case-insensitive.\nCurrently, only existence (\"true\" at the end) is supported. Absence (\"false\" at the end) is not supported.\nMultiple values for different tag names are interpreted as \"AND\".\n", "items": { "type": "string" - } + }, + "description": "A list of tag existence filters to apply. Only resources for which the specified freeform tags exist the value will be returned.\nThe key for each tag is \"{tagName}.true\". All inputs are case-insensitive.\nCurrently, only existence (\"true\" at the end) is supported. Absence (\"false\" at the end) is not supported.\nMultiple values for different tag names are interpreted as \"AND\".\n" }, "compartment_id_in_subtree": { "type": "boolean", @@ -10813,10 +16049,10 @@ }, "vmcluster_name": { "type": "array", - "description": "Optional list of Exadata Insight VM cluster name.\n", "items": { "type": "string" - } + }, + "description": "Optional list of Exadata Insight VM cluster name.\n" } }, "additionalProperties": false, @@ -10860,13 +16096,13 @@ }, "time_interval_start": { "type": "string", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\nThe minimum allowed value is 2 years prior to the current day.\ntimeIntervalStart and timeIntervalEnd parameters are used together.\nIf analysisTimeInterval is specified, this parameter is ignored.\n", - "format": "date-time" + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\nThe minimum allowed value is 2 years prior to the current day.\ntimeIntervalStart and timeIntervalEnd parameters are used together.\nIf analysisTimeInterval is specified, this parameter is ignored.\n" }, "time_interval_end": { "type": "string", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\ntimeIntervalStart and timeIntervalEnd are used together.\nIf timeIntervalEnd is not specified, current time is used as timeIntervalEnd.\n", - "format": "date-time" + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\ntimeIntervalStart and timeIntervalEnd are used together.\nIf timeIntervalEnd is not specified, current time is used as timeIntervalEnd.\n" }, "page": { "type": "string", @@ -10919,13 +16155,13 @@ }, "time_interval_start": { "type": "string", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\nThe minimum allowed value is 2 years prior to the current day.\ntimeIntervalStart and timeIntervalEnd parameters are used together.\nIf analysisTimeInterval is specified, this parameter is ignored.\n", - "format": "date-time" + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\nThe minimum allowed value is 2 years prior to the current day.\ntimeIntervalStart and timeIntervalEnd parameters are used together.\nIf analysisTimeInterval is specified, this parameter is ignored.\n" }, "time_interval_end": { "type": "string", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\ntimeIntervalStart and timeIntervalEnd are used together.\nIf timeIntervalEnd is not specified, current time is used as timeIntervalEnd.\n", - "format": "date-time" + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\ntimeIntervalStart and timeIntervalEnd are used together.\nIf timeIntervalEnd is not specified, current time is used as timeIntervalEnd.\n" }, "page": { "type": "string", @@ -10962,7 +16198,6 @@ }, "database_type": { "type": "array", - "description": "Filter by one or more database type.\nPossible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB.\n", "items": { "type": "string", "enum": [ @@ -10991,56 +16226,56 @@ "EXTERNAL-ADW", "EXTERNAL-ATP" ] - } + }, + "description": "Filter by one or more database type.\nPossible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB.\n" }, "database_id": { "type": "array", - "description": "Optional list of database [OCIDs](/iaas/Content/General/Concepts/identifiers.htm) of the associated DBaaS entity.\n", "items": { "type": "string" - } + }, + "description": "Optional list of database [OCIDs](/iaas/Content/General/Concepts/identifiers.htm) of the associated DBaaS entity.\n" }, "id": { "type": "array", - "description": "Optional list of database insight resource [OCIDs](/iaas/Content/General/Concepts/identifiers.htm).\n", "items": { "type": "string" - } + }, + "description": "Optional list of database insight resource [OCIDs](/iaas/Content/General/Concepts/identifiers.htm).\n" }, "exadata_insight_id": { "type": "array", - "description": "Optional list of exadata insight resource [OCIDs](/iaas/Content/General/Concepts/identifiers.htm).\n", "items": { "type": "string" - } + }, + "description": "Optional list of exadata insight resource [OCIDs](/iaas/Content/General/Concepts/identifiers.htm).\n" }, "cdb_name": { "type": "array", - "description": "Filter by one or more cdb name.\n", "items": { "type": "string" - } + }, + "description": "Filter by one or more cdb name.\n" }, "host_name": { "type": "array", - "description": "Filter by one or more hostname.\n", "items": { "type": "string" - } + }, + "description": "Filter by one or more hostname.\n" }, "database_time_pct_greater_than": { "type": "number", - "description": "Filter sqls by percentage of db time.\n", "minimum": 1, "maximum": 100, - "format": "double" + "description": "Filter sqls by percentage of db time.\n" }, "sql_identifier": { "type": "array", - "description": "One or more unique SQL_IDs for a SQL Statement.\nExample: `6rgjh9bjmy2s7`\n", "items": { "type": "string" - } + }, + "description": "One or more unique SQL_IDs for a SQL Statement.\nExample: `6rgjh9bjmy2s7`\n" }, "analysis_time_interval": { "type": "string", @@ -11048,19 +16283,19 @@ }, "time_interval_start": { "type": "string", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\nThe minimum allowed value is 2 years prior to the current day.\ntimeIntervalStart and timeIntervalEnd parameters are used together.\nIf analysisTimeInterval is specified, this parameter is ignored.\n", - "format": "date-time" + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\nThe minimum allowed value is 2 years prior to the current day.\ntimeIntervalStart and timeIntervalEnd parameters are used together.\nIf analysisTimeInterval is specified, this parameter is ignored.\n" }, "time_interval_end": { "type": "string", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\ntimeIntervalStart and timeIntervalEnd are used together.\nIf timeIntervalEnd is not specified, current time is used as timeIntervalEnd.\n", - "format": "date-time" + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\ntimeIntervalStart and timeIntervalEnd are used together.\nIf timeIntervalEnd is not specified, current time is used as timeIntervalEnd.\n" }, "limit": { "type": "integer", - "description": "For list pagination. The maximum number of results per page, or items to\nreturn in a paginated \"List\" call.\nFor important details about how pagination works, see\n[List Pagination](/Content/API/Concepts/usingapi.htm#nine).\nExample: `50`\n", "minimum": 1, - "maximum": 1000 + "maximum": 1000, + "description": "For list pagination. The maximum number of results per page, or items to\nreturn in a paginated \"List\" call.\nFor important details about how pagination works, see\n[List Pagination](/Content/API/Concepts/usingapi.htm#nine).\nExample: `50`\n" }, "page": { "type": "string", @@ -11072,15 +16307,14 @@ }, "sort_order": { "type": "string", - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`).\n", "enum": [ "ASC", "DESC" - ] + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`).\n" }, "sort_by": { "type": "string", - "description": "The field to use when sorting SQL statistics.\nExample: databaseTimeInSec\n", "enum": [ "databaseTimeInSec", "executionsPerHour", @@ -11101,11 +16335,11 @@ "changeInAverageActiveSessionsInPct", "changeInExecutionsPerHourInPct", "changeInInefficiencyInPct" - ] + ], + "description": "The field to use when sorting SQL statistics.\nExample: databaseTimeInSec\n" }, "category": { "type": "array", - "description": "Filter sqls by one or more performance categories.\n", "items": { "type": "string", "enum": [ @@ -11135,35 +16369,36 @@ "INEFFICIENT_INCREASING_INEFFICIENT_WAIT", "INEFFICIENT_CHANGING_PLANS_AND_INCREASING_INEFFICIENT_WAIT" ] - } + }, + "description": "Filter sqls by one or more performance categories.\n" }, "defined_tag_equals": { "type": "array", - "description": "A list of tag filters to apply. Only resources with a defined tag matching the value will be returned.\nEach item in the list has the format \"{namespace}.{tagName}.{value}\". All inputs are case-insensitive.\nMultiple values for the same key (i.e. same namespace and tag name) are interpreted as \"OR\".\nValues for different keys (i.e. different namespaces, different tag names, or both) are interpreted as \"AND\".\n", "items": { "type": "string" - } + }, + "description": "A list of tag filters to apply. Only resources with a defined tag matching the value will be returned.\nEach item in the list has the format \"{namespace}.{tagName}.{value}\". All inputs are case-insensitive.\nMultiple values for the same key (i.e. same namespace and tag name) are interpreted as \"OR\".\nValues for different keys (i.e. different namespaces, different tag names, or both) are interpreted as \"AND\".\n" }, "freeform_tag_equals": { "type": "array", - "description": "A list of tag filters to apply. Only resources with a freeform tag matching the value will be returned.\nThe key for each tag is \"{tagName}.{value}\". All inputs are case-insensitive.\nMultiple values for the same tag name are interpreted as \"OR\". Values for different tag names are interpreted as \"AND\".\n", "items": { "type": "string" - } + }, + "description": "A list of tag filters to apply. Only resources with a freeform tag matching the value will be returned.\nThe key for each tag is \"{tagName}.{value}\". All inputs are case-insensitive.\nMultiple values for the same tag name are interpreted as \"OR\". Values for different tag names are interpreted as \"AND\".\n" }, "defined_tag_exists": { "type": "array", - "description": "A list of tag existence filters to apply. Only resources for which the specified defined tags exist will be returned.\nEach item in the list has the format \"{namespace}.{tagName}.true\" (for checking existence of a defined tag)\nor \"{namespace}.true\". All inputs are case-insensitive.\nCurrently, only existence (\"true\" at the end) is supported. Absence (\"false\" at the end) is not supported.\nMultiple values for the same key (i.e. same namespace and tag name) are interpreted as \"OR\".\nValues for different keys (i.e. different namespaces, different tag names, or both) are interpreted as \"AND\".\n", "items": { "type": "string" - } + }, + "description": "A list of tag existence filters to apply. Only resources for which the specified defined tags exist will be returned.\nEach item in the list has the format \"{namespace}.{tagName}.true\" (for checking existence of a defined tag)\nor \"{namespace}.true\". All inputs are case-insensitive.\nCurrently, only existence (\"true\" at the end) is supported. Absence (\"false\" at the end) is not supported.\nMultiple values for the same key (i.e. same namespace and tag name) are interpreted as \"OR\".\nValues for different keys (i.e. different namespaces, different tag names, or both) are interpreted as \"AND\".\n" }, "freeform_tag_exists": { "type": "array", - "description": "A list of tag existence filters to apply. Only resources for which the specified freeform tags exist the value will be returned.\nThe key for each tag is \"{tagName}.true\". All inputs are case-insensitive.\nCurrently, only existence (\"true\" at the end) is supported. Absence (\"false\" at the end) is not supported.\nMultiple values for different tag names are interpreted as \"AND\".\n", "items": { "type": "string" - } + }, + "description": "A list of tag existence filters to apply. Only resources for which the specified freeform tags exist the value will be returned.\nThe key for each tag is \"{tagName}.true\". All inputs are case-insensitive.\nCurrently, only existence (\"true\" at the end) is supported. Absence (\"false\" at the end) is not supported.\nMultiple values for different tag names are interpreted as \"AND\".\n" }, "compartment_id_in_subtree": { "type": "boolean", @@ -11171,10 +16406,10 @@ }, "vmcluster_name": { "type": "array", - "description": "Optional list of Exadata Insight VM cluster name.\n", "items": { "type": "string" - } + }, + "description": "Optional list of Exadata Insight VM cluster name.\n" } }, "additionalProperties": false, @@ -11202,38 +16437,38 @@ }, "database_id": { "type": "array", - "description": "Optional list of database [OCIDs](/iaas/Content/General/Concepts/identifiers.htm) of the associated DBaaS entity.\n", "items": { "type": "string" - } + }, + "description": "Optional list of database [OCIDs](/iaas/Content/General/Concepts/identifiers.htm) of the associated DBaaS entity.\n" }, "id": { "type": "array", - "description": "Optional list of database [OCIDs](/iaas/Content/General/Concepts/identifiers.htm) of the database insight resource.\n", "items": { "type": "string" - } + }, + "description": "Optional list of database [OCIDs](/iaas/Content/General/Concepts/identifiers.htm) of the database insight resource.\n" }, "exadata_insight_id": { "type": "array", - "description": "Optional list of exadata insight resource [OCIDs](/iaas/Content/General/Concepts/identifiers.htm).\n", "items": { "type": "string" - } + }, + "description": "Optional list of exadata insight resource [OCIDs](/iaas/Content/General/Concepts/identifiers.htm).\n" }, "cdb_name": { "type": "array", - "description": "Filter by one or more cdb name.\n", "items": { "type": "string" - } + }, + "description": "Filter by one or more cdb name.\n" }, "host_name": { "type": "array", - "description": "Filter by one or more hostname.\n", "items": { "type": "string" - } + }, + "description": "Filter by one or more hostname.\n" }, "sql_identifier": { "type": "string", @@ -11245,13 +16480,13 @@ }, "time_interval_start": { "type": "string", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\nThe minimum allowed value is 2 years prior to the current day.\ntimeIntervalStart and timeIntervalEnd parameters are used together.\nIf analysisTimeInterval is specified, this parameter is ignored.\n", - "format": "date-time" + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\nThe minimum allowed value is 2 years prior to the current day.\ntimeIntervalStart and timeIntervalEnd parameters are used together.\nIf analysisTimeInterval is specified, this parameter is ignored.\n" }, "time_interval_end": { "type": "string", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\ntimeIntervalStart and timeIntervalEnd are used together.\nIf timeIntervalEnd is not specified, current time is used as timeIntervalEnd.\n", - "format": "date-time" + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\ntimeIntervalStart and timeIntervalEnd are used together.\nIf timeIntervalEnd is not specified, current time is used as timeIntervalEnd.\n" }, "page": { "type": "string", @@ -11263,31 +16498,31 @@ }, "defined_tag_equals": { "type": "array", - "description": "A list of tag filters to apply. Only resources with a defined tag matching the value will be returned.\nEach item in the list has the format \"{namespace}.{tagName}.{value}\". All inputs are case-insensitive.\nMultiple values for the same key (i.e. same namespace and tag name) are interpreted as \"OR\".\nValues for different keys (i.e. different namespaces, different tag names, or both) are interpreted as \"AND\".\n", "items": { "type": "string" - } + }, + "description": "A list of tag filters to apply. Only resources with a defined tag matching the value will be returned.\nEach item in the list has the format \"{namespace}.{tagName}.{value}\". All inputs are case-insensitive.\nMultiple values for the same key (i.e. same namespace and tag name) are interpreted as \"OR\".\nValues for different keys (i.e. different namespaces, different tag names, or both) are interpreted as \"AND\".\n" }, "freeform_tag_equals": { "type": "array", - "description": "A list of tag filters to apply. Only resources with a freeform tag matching the value will be returned.\nThe key for each tag is \"{tagName}.{value}\". All inputs are case-insensitive.\nMultiple values for the same tag name are interpreted as \"OR\". Values for different tag names are interpreted as \"AND\".\n", "items": { "type": "string" - } + }, + "description": "A list of tag filters to apply. Only resources with a freeform tag matching the value will be returned.\nThe key for each tag is \"{tagName}.{value}\". All inputs are case-insensitive.\nMultiple values for the same tag name are interpreted as \"OR\". Values for different tag names are interpreted as \"AND\".\n" }, "defined_tag_exists": { "type": "array", - "description": "A list of tag existence filters to apply. Only resources for which the specified defined tags exist will be returned.\nEach item in the list has the format \"{namespace}.{tagName}.true\" (for checking existence of a defined tag)\nor \"{namespace}.true\". All inputs are case-insensitive.\nCurrently, only existence (\"true\" at the end) is supported. Absence (\"false\" at the end) is not supported.\nMultiple values for the same key (i.e. same namespace and tag name) are interpreted as \"OR\".\nValues for different keys (i.e. different namespaces, different tag names, or both) are interpreted as \"AND\".\n", "items": { "type": "string" - } + }, + "description": "A list of tag existence filters to apply. Only resources for which the specified defined tags exist will be returned.\nEach item in the list has the format \"{namespace}.{tagName}.true\" (for checking existence of a defined tag)\nor \"{namespace}.true\". All inputs are case-insensitive.\nCurrently, only existence (\"true\" at the end) is supported. Absence (\"false\" at the end) is not supported.\nMultiple values for the same key (i.e. same namespace and tag name) are interpreted as \"OR\".\nValues for different keys (i.e. different namespaces, different tag names, or both) are interpreted as \"AND\".\n" }, "freeform_tag_exists": { "type": "array", - "description": "A list of tag existence filters to apply. Only resources for which the specified freeform tags exist the value will be returned.\nThe key for each tag is \"{tagName}.true\". All inputs are case-insensitive.\nCurrently, only existence (\"true\" at the end) is supported. Absence (\"false\" at the end) is not supported.\nMultiple values for different tag names are interpreted as \"AND\".\n", "items": { "type": "string" - } + }, + "description": "A list of tag existence filters to apply. Only resources for which the specified freeform tags exist the value will be returned.\nThe key for each tag is \"{tagName}.true\". All inputs are case-insensitive.\nCurrently, only existence (\"true\" at the end) is supported. Absence (\"false\" at the end) is not supported.\nMultiple values for different tag names are interpreted as \"AND\".\n" }, "compartment_id_in_subtree": { "type": "boolean", @@ -11295,10 +16530,10 @@ }, "vmcluster_name": { "type": "array", - "description": "Optional list of Exadata Insight VM cluster name.\n", "items": { "type": "string" - } + }, + "description": "Optional list of Exadata Insight VM cluster name.\n" } }, "additionalProperties": false, @@ -11343,13 +16578,13 @@ }, "time_interval_start": { "type": "string", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\nThe minimum allowed value is 2 years prior to the current day.\ntimeIntervalStart and timeIntervalEnd parameters are used together.\nIf analysisTimeInterval is specified, this parameter is ignored.\n", - "format": "date-time" + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\nThe minimum allowed value is 2 years prior to the current day.\ntimeIntervalStart and timeIntervalEnd parameters are used together.\nIf analysisTimeInterval is specified, this parameter is ignored.\n" }, "time_interval_end": { "type": "string", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\ntimeIntervalStart and timeIntervalEnd are used together.\nIf timeIntervalEnd is not specified, current time is used as timeIntervalEnd.\n", - "format": "date-time" + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\ntimeIntervalStart and timeIntervalEnd are used together.\nIf timeIntervalEnd is not specified, current time is used as timeIntervalEnd.\n" }, "page": { "type": "string", @@ -11380,23 +16615,20 @@ "inputSchema": { "type": "object", "properties": { - "opc_request_id": { - "type": "string", - "description": "The client request ID for tracing." - }, "named_credential_id": { - "type": "string", - "description": "The [OCID](/Content/General/Concepts/identifiers.htm) of the named credential." + "type": "string" + }, + "opc_request_id": { + "type": "string" }, "test_named_credential_details": { "type": "object", - "description": "The The [OCID](/Content/General/Concepts/identifiers.htm) of the database against which the credential is to be tested.", "properties": { - "managedDatabaseId": { - "type": "string", - "description": "The [OCID](/Content/General/Concepts/identifiers.htm) of the Managed Database." + "managed_database_id": { + "type": "string" } - } + }, + "additionalProperties": false } }, "additionalProperties": false, @@ -11405,7 +16637,7 @@ "test_named_credential_details" ] }, - "mutable": true + "mutable": false }, { "name": "test_preferred_credential", @@ -11419,40 +16651,69 @@ "inputSchema": { "type": "object", "properties": { - "opc_request_id": { - "type": "string", - "description": "The client request ID for tracing." + "credential_name": { + "type": "string" }, "managed_database_id": { - "type": "string", - "description": "The [OCID](/Content/General/Concepts/identifiers.htm) of the Managed Database." + "type": "string" }, - "credential_name": { - "type": "string", - "description": "The name of the preferred credential. There are 3 built-in preferred credentials with display names and names as below: \n Basic Monitoring(MONITORING)\n Advanced diagnostics(PC_READ)\n Administrator(PC_WRITE)\n" + "opc_request_id": { + "type": "string" }, "test_preferred_credential_details": { - "type": "object", - "description": "The status of the preferred credential test. The status is 'SUCCEEDED' if the preferred credential is working else the status is 'FAILED'.", - "properties": { - "type": { - "type": "string", - "description": "The type of preferred credential. Only 'BASIC' is supported currently.", - "enum": [ - "BASIC", - "NAMED_CREDENTIAL" + "oneOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "NAMED_CREDENTIAL" + ] + }, + "named_credential_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "BASIC" + ] + }, + "user_name": { + "type": "string" + }, + "role": { + "type": "string" + }, + "password_secret_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" ] } - } + ] } }, "additionalProperties": false, "required": [ - "managed_database_id", - "credential_name" + "credential_name", + "managed_database_id" ] }, - "mutable": true + "mutable": false }, { "name": "update_external_exadata_storage_connector", @@ -11464,132 +16725,75 @@ "external-exadata-storage" ], "inputSchema": { + "type": "object", "properties": { "external_exadata_storage_connector_id": { - "description": "The OCID of the connector to the Exadata storage server.", + "type": "string" + }, + "if_match": { + "type": "string" + }, + "opc_request_id": { "type": "string" }, "update_external_exadata_storage_connector_details": { - "$defs": { - "RestCredential": { - "additionalProperties": true, - "description": "The user credential information.", + "type": "object", + "properties": { + "connector_name": { + "type": "string" + }, + "connection_uri": { + "type": "string" + }, + "credential_info": { + "type": "object", "properties": { - "password": { - "description": "**[Required]** Gets the password of this RestCredential.\nThe password of the user.", - "title": "Password", + "username": { "type": "string" }, - "sslTrustStoreLocation": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Gets the ssl_trust_store_location of this RestCredential.\nThe full path of the SSL truststore location in the agent.", - "title": "Ssltruststorelocation" + "password": { + "type": "string" }, - "sslTrustStorePassword": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Gets the ssl_trust_store_password of this RestCredential.\nThe password of the SSL truststore location in the agent.", - "title": "Ssltruststorepassword" + "ssl_trust_store_type": { + "type": "string" }, - "sslTrustStoreType": { - "anyOf": [ - { - "enum": [ - "JKS", - "BCFKS" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Gets the ssl_trust_store_type of this RestCredential.\nThe SSL truststore type.\n\nAllowed values for this property are: \"JKS\", \"BCFKS\"", - "title": "Ssltruststoretype" + "ssl_trust_store_location": { + "type": "string" }, - "username": { - "description": "**[Required]** Gets the username of this RestCredential.\nThe name of the user.", - "title": "Username", + "ssl_trust_store_password": { "type": "string" } }, + "additionalProperties": false, "required": [ "username", "password" - ], - "title": "RestCredential", - "type": "object" - } - }, - "additionalProperties": false, - "description": "The details required to update connections to the Exadata storage servers.", - "properties": { - "connectionUri": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Gets the connection_uri of this UpdateExternalExadataStorageConnectorDetails. The unique string of the connection. For example, \".", - "title": "Connectionuri" + ] }, - "connectorName": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Gets the connector_name of this UpdateExternalExadataStorageConnectorDetails.\nThe name of the Exadata storage server connector.", - "title": "Connectorname" + "freeform_tags": { + "type": "object", + "additionalProperties": { + "type": "string" + } }, - "credentialInfo": { - "anyOf": [ - { - "$ref": "#/$defs/RestCredential" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Gets the credential_info of this UpdateExternalExadataStorageConnectorDetails." + "defined_tags": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": {} + } } }, - "title": "UpdateExternalExadataStorageConnectorDetails", - "type": "object" + "additionalProperties": false } }, + "additionalProperties": false, "required": [ "external_exadata_storage_connector_id", "update_external_exadata_storage_connector_details" - ], - "type": "object" + ] }, - "mutable": true + "mutable": false } ] } diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/registry.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/registry.py similarity index 71% rename from src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/registry.py rename to src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/registry.py index 9d868e84..cd6ca7ff 100644 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/registry.py +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/registry.py @@ -50,25 +50,10 @@ def get_tool(self, name: str) -> Mapping[str, Any]: def list_tools( self, skill_names: set[str], - keywords: list[str] | None = None, ) -> list[Mapping[str, Any]]: for skill_name in skill_names: self.get_skill(skill_name) - selected = [tool for tool in self.tools if skill_names.intersection(tool["skills"])] - if keywords: - normalized_keywords = [keyword.strip().casefold() for keyword in keywords] - if any(not keyword for keyword in normalized_keywords): - raise RegistryError("Keywords must be non-empty strings") - selected = [ - tool - for tool in selected - if all( - keyword - in f"{tool['name'].replace('_', ' ')} {tool['description']}".casefold() - for keyword in normalized_keywords - ) - ] - return selected + return [tool for tool in self.tools if skill_names.intersection(tool["skills"])] def client_class(service: str, client: str) -> type[Any]: @@ -80,7 +65,7 @@ def client_class(service: str, client: str) -> type[Any]: def _read_json(name: str) -> dict[str, Any]: try: - return json.loads(files("oracle.oci_oracle_db_observability").joinpath("metadata", name).read_text()) + return json.loads(files("oracle.oci_oracle_db_observability_mcp_server").joinpath("metadata", name).read_text()) except (OSError, json.JSONDecodeError) as exc: raise RegistryError(f"Unable to load registry file {name}: {exc}") from exc @@ -102,6 +87,42 @@ def to_jsonable(value: Any) -> Any: return value +def _validate_strict_schema(schema: Mapping[str, Any], path: str = "inputSchema") -> None: + """Reject open objects and untyped arrays in packaged tool contracts.""" + if "oneOf" in schema: + variants = schema["oneOf"] + if not isinstance(variants, list) or not variants: + raise RegistryError(f"Tool has invalid oneOf schema: {path}") + for index, variant in enumerate(variants): + if not isinstance(variant, Mapping): + raise RegistryError(f"Tool has invalid oneOf variant: {path}[{index}]") + _validate_strict_schema(variant, f"{path}.oneOf[{index}]") + return + schema_type = schema.get("type") + if schema_type == "array": + items = schema.get("items") + if not isinstance(items, Mapping) or not items: + raise RegistryError(f"Tool has untyped array items: {path}") + _validate_strict_schema(items, f"{path}.items") + if schema_type != "object": + return + additional = schema.get("additionalProperties") + if additional is None or additional is True: + raise RegistryError(f"Tool has unrestricted object schema: {path}") + if additional is False: + properties = schema.get("properties") + if not isinstance(properties, Mapping): + raise RegistryError(f"Tool has invalid object properties: {path}") + for name, property_schema in properties.items(): + if not isinstance(property_schema, Mapping): + raise RegistryError(f"Tool has invalid property schema: {path}.properties.{name}") + _validate_strict_schema(property_schema, f"{path}.properties.{name}") + elif isinstance(additional, Mapping): + _validate_strict_schema(additional, f"{path}.additionalProperties") + else: + raise RegistryError(f"Tool has invalid additionalProperties: {path}") + + def _validate(skills: list[dict[str, Any]], tools: list[dict[str, Any]]) -> Registry: by_skill = {skill.get("name"): skill for skill in skills} if any(not isinstance(skill.get("name"), str) or not skill["name"] for skill in skills): @@ -120,8 +141,7 @@ def _validate(skills: list[dict[str, Any]], tools: list[dict[str, Any]]) -> Regi schema = tool.get("inputSchema") if not isinstance(schema, dict) or schema.get("type") != "object": raise RegistryError(f"Tool has invalid input schema: {tool.get('name')}") - if schema.get("additionalProperties") is True: - raise RegistryError(f"Tool has unrestricted input schema: {tool.get('name')}") + _validate_strict_schema(schema) try: Draft202012Validator.check_schema(schema) except SchemaError as exc: diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/runtime.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/runtime.py similarity index 85% rename from src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/runtime.py rename to src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/runtime.py index 9845d37e..d137aca9 100644 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/runtime.py +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/runtime.py @@ -14,6 +14,7 @@ from . import __project__, __version__ from .registry import client_class +from .sdk_schema import parameter_docs _USER_AGENT = f"{__project__.split('oracle.', 1)[1].removesuffix('-server')}/{__version__}" _http_auth: IDCSHttpAuth | None = None @@ -65,15 +66,21 @@ def identity_bootstrap_client() -> tuple[Any, str]: return client, tenancy_id -def serialize_response(response: Any) -> Any: - """Convert OCI SDK response data to a JSON-safe result.""" - data = getattr(response, "data", response) +def _serialize_data(data: Any) -> Any: + """Convert a response payload to a JSON-safe value.""" try: return json.loads(json.dumps(oci.util.to_dict(data), default=str)) except Exception: return str(data) +def serialize_response(response: Any) -> dict[str, Any]: + """Convert an OCI SDK response to JSON-safe data and pagination metadata.""" + data = getattr(response, "data", response) + headers = getattr(response, "headers", {}) or {} + return {"data": _serialize_data(data), "nextPage": headers.get("opc-next-page")} + + def _models_module(client: type[Any]) -> Any: module = client.__module__.rsplit(".", 1)[0] try: @@ -117,7 +124,15 @@ def _coerce_arguments(client: Any, operation: str, arguments: Mapping[str, Any]) method = getattr(client, operation) models = _models_module(client.__class__) signature = inspect.signature(method) - return {key: _coerce(value, _type_name(signature.parameters[key].annotation) if key in signature.parameters else None, models) for key, value in arguments.items()} + docs = parameter_docs(method) + coerced: dict[str, Any] = {} + for key, value in arguments.items(): + parameter = signature.parameters.get(key) + type_name = _type_name(parameter.annotation) if parameter and parameter.kind is not inspect.Parameter.VAR_KEYWORD else None + if type_name is None and key in docs: + type_name = docs[key][0] + coerced[key] = _coerce(value, type_name, models) + return coerced def invoke_registered_tool(tool: Mapping[str, Any], arguments: dict[str, Any]) -> Any: diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/sdk_schema.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/sdk_schema.py new file mode 100644 index 00000000..f8bd0b39 --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/sdk_schema.py @@ -0,0 +1,214 @@ +"""Derive strict JSON Schema contracts from the locked OCI Python SDK.""" +from __future__ import annotations + +import inspect +import re +from collections.abc import Mapping +from importlib import import_module +from typing import Any + + +TRANSPORT_KWARGS = frozenset({"retry_strategy", "allow_control_chars", "enable_strict_url_encoding"}) +_SCALAR_SCHEMAS = { + "str": {"type": "string"}, + "int": {"type": "integer"}, + "float": {"type": "number"}, + "bool": {"type": "boolean"}, + "datetime": {"type": "string", "format": "date-time"}, +} +_CONSTRAINT_KEYS = frozenset({"enum", "minimum", "maximum", "minLength", "maxLength", "pattern"}) + + +def expected_kwargs(method: Any) -> set[str]: + """Return all generated OCI SDK call arguments, excluding transport controls.""" + source = inspect.getsource(method) + match = re.search(r"expected_kwargs\s*=\s*\[\s*(.*?)\s*\]", source, re.DOTALL) + if not match: + raise ValueError(f"Unable to find expected_kwargs in {method.__qualname__}") + optional = set(re.findall(r"['\"]([a-zA-Z0-9_]+)['\"]", match.group(1))) + required = { + parameter.name + for parameter in inspect.signature(method).parameters.values() + if parameter.name not in {"self", "kwargs"} + and parameter.kind in {parameter.POSITIONAL_ONLY, parameter.POSITIONAL_OR_KEYWORD, parameter.KEYWORD_ONLY} + } + return (required | optional) - TRANSPORT_KWARGS + + +def parameter_docs(method: Any) -> dict[str, tuple[str, bool, str]]: + """Return SDK parameter type, requiredness, and documentation by argument name.""" + text = inspect.getdoc(method) or "" + matches = list(re.finditer(r"^:param\s+([^\s]+)\s+([a-zA-Z0-9_]+):\s*(.*)$", text, re.MULTILINE)) + result: dict[str, tuple[str, bool, str]] = {} + for index, match in enumerate(matches): + end = matches[index + 1].start() if index + 1 < len(matches) else len(text) + detail = f"{match.group(3)}\n{text[match.end():end]}".strip() + result[match.group(2)] = (match.group(1), "(required)" in match.group(3), detail) + return result + + +def _split_generic(value: str) -> tuple[str, str] | None: + match = re.fullmatch(r"(list|dict)\[(.*)\]", value) + if match: + return match.group(1), match.group(2) + match = re.fullmatch(r"dict\((.*)\)", value) + return ("dict", match.group(1)) if match else None + + +def _split_pair(value: str) -> tuple[str, str]: + depth = 0 + for index, character in enumerate(value): + if character in "[(": + depth += 1 + elif character in "])": + depth -= 1 + elif character == "," and depth == 0: + return value[:index].strip(), value[index + 1 :].strip() + raise ValueError(f"Expected two generic arguments in {value!r}") + + +def _enum_from_description(description: str) -> list[str] | None: + match = re.search(r"Allowed values are:\s*(.*?)(?:\n\n|:param|:return:|$)", description, re.DOTALL) + if not match: + return None + values = re.findall(r'"([^"\n]+)"', match.group(1)) + return values or None + + +def _model_maps(model_class: type[Any]) -> tuple[dict[str, str], dict[str, str]]: + instance = model_class() + swagger_types = getattr(instance, "swagger_types", None) + attribute_map = getattr(instance, "attribute_map", None) + if not isinstance(swagger_types, dict) or not isinstance(attribute_map, dict): + raise ValueError(f"OCI model {model_class.__name__} does not expose schema maps") + return swagger_types, attribute_map + + +def _model_required_and_description(model_class: type[Any], field: str) -> tuple[bool, str]: + property_value = getattr(model_class, field, None) + getter = getattr(property_value, "fget", None) + description = inspect.getdoc(getter) or "" + return "**[Required]**" in description, description + + +def _resolve_model(type_name: str, models_module: Any) -> type[Any] | None: + normalized = type_name.removeprefix("oci.") + if ".models." in type_name: + module_name, class_name = type_name.rsplit(".", 1) + return getattr(import_module(module_name), class_name, None) + return getattr(models_module, normalized.rsplit(".", 1)[-1], None) + + +def _model_schema(model_class: type[Any], models_module: Any, seen: frozenset[str]) -> dict[str, Any]: + model_name = f"{model_class.__module__}.{model_class.__name__}" + if model_name in seen: + raise ValueError(f"Recursive OCI model type {model_name}") + swagger_types, _ = _model_maps(model_class) + properties: dict[str, Any] = {} + required: list[str] = [] + for field, field_type in swagger_types.items(): + field_required, field_description = _model_required_and_description(model_class, field) + properties[field] = schema_for_type(field_type, models_module, field_description, seen | {model_name}) + if field_required: + required.append(field) + schema = {"type": "object", "properties": properties, "additionalProperties": False} + if required: + schema["required"] = required + return schema + + +def _polymorphic_schema(model_class: type[Any], models_module: Any, seen: frozenset[str]) -> dict[str, Any]: + source = inspect.getsource(model_class.get_subtype) + variants = re.findall(r"if type == ['\"]([^'\"]+)['\"]:\s*return ['\"]([^'\"]+)['\"]", source) + if not variants: + raise ValueError(f"Unable to resolve polymorphic OCI model type {model_class.__name__}") + discriminator = re.search(r"object_dictionary\[['\"]([^'\"]+)['\"]\]", source) + if not discriminator: + raise ValueError(f"Unable to resolve discriminator for OCI model type {model_class.__name__}") + _, attribute_map = _model_maps(model_class) + fields = [field for field, wire_name in attribute_map.items() if wire_name == discriminator.group(1)] + if len(fields) != 1: + raise ValueError(f"Unable to resolve discriminator field for OCI model type {model_class.__name__}") + discriminator_field = fields[0] + schemas = [] + for discriminator, subtype_name in variants: + subtype = getattr(models_module, subtype_name, None) + if not inspect.isclass(subtype): + raise ValueError(f"Unable to resolve OCI subtype {subtype_name}") + schema = _model_schema(subtype, models_module, seen) + discriminator_schema = schema["properties"].get(discriminator_field) + if not isinstance(discriminator_schema, dict): + raise ValueError(f"OCI subtype {subtype_name} lacks the {discriminator_field} discriminator") + discriminator_schema["enum"] = [discriminator] + if discriminator_field not in schema.get("required", []): + schema["required"] = [*schema.get("required", []), discriminator_field] + schemas.append(schema) + return {"oneOf": schemas} + + +def schema_for_type(type_name: str, models_module: Any, description: str = "", seen: frozenset[str] = frozenset()) -> dict[str, Any]: + """Build a strict JSON Schema fragment for one OCI SDK type spelling.""" + normalized = type_name.removeprefix("oci.opsi.models.").removeprefix("oci.database_management.models.") + if normalized in _SCALAR_SCHEMAS: + schema = dict(_SCALAR_SCHEMAS[normalized]) + enum = _enum_from_description(description) + if enum: + schema["enum"] = enum + return schema + generic = _split_generic(normalized) + if generic: + kind, contents = generic + if kind == "list": + return {"type": "array", "items": schema_for_type(contents.strip(), models_module, description, seen)} + _, value_type = _split_pair(contents) + return { + "type": "object", + "additionalProperties": schema_for_type(value_type, models_module, "", seen), + } + if normalized in {"object", "Any"}: + return {} + model_class = _resolve_model(type_name, models_module) + if not inspect.isclass(model_class): + raise ValueError(f"Unable to resolve OCI SDK type {type_name!r}") + if callable(getattr(model_class, "get_subtype", None)): + return _polymorphic_schema(model_class, models_module, seen) + return _model_schema(model_class, models_module, seen) + + +def schema_for_operation(method: Any, models_module: Any, existing: Mapping[str, Any] | None = None) -> dict[str, Any]: + """Build the strict input schema for an SDK operation and preserve known constraints.""" + docs = parameter_docs(method) + expected = expected_kwargs(method) + if set(docs) - TRANSPORT_KWARGS != expected: + raise ValueError(f"SDK documentation and expected_kwargs differ for {method.__qualname__}") + existing_properties = existing.get("properties", {}) if isinstance(existing, Mapping) else {} + properties: dict[str, Any] = {} + required: list[str] = [] + for name in sorted(expected): + type_name, is_required, description = docs[name] + schema = schema_for_type(type_name, models_module, description) + _preserve_constraints(schema, existing_properties.get(name)) + if isinstance(existing_properties.get(name), Mapping) and "description" in existing_properties[name]: + schema["description"] = existing_properties[name]["description"] + properties[name] = schema + if is_required: + required.append(name) + result: dict[str, Any] = {"type": "object", "properties": properties, "additionalProperties": False} + if required: + existing_required = existing.get("required", []) if isinstance(existing, Mapping) else [] + result["required"] = [name for name in existing_required if name in required] + [name for name in required if name not in existing_required] + return result + + +def _preserve_constraints(schema: dict[str, Any], existing: Any) -> None: + if not isinstance(existing, Mapping): + return + for key in _CONSTRAINT_KEYS: + if key in existing: + schema[key] = existing[key] + if schema.get("type") == "array": + _preserve_constraints(schema["items"], existing.get("items")) + if schema.get("type") == "object" and schema.get("additionalProperties") is False: + existing_properties = existing.get("properties", {}) + for name, nested in schema.get("properties", {}).items(): + _preserve_constraints(nested, existing_properties.get(name)) diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/server.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/server.py similarity index 100% rename from src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/server.py rename to src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/server.py diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/tests/__init__.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/__init__.py similarity index 100% rename from src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/tests/__init__.py rename to src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/__init__.py diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/tests/test_mcp_surface.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_mcp_surface.py similarity index 63% rename from src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/tests/test_mcp_surface.py rename to src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_mcp_surface.py index f127bc14..d89a80ee 100644 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/tests/test_mcp_surface.py +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_mcp_surface.py @@ -2,8 +2,8 @@ import pytest -from oracle.oci_oracle_db_observability import mcp as mcp_module -from oracle.oci_oracle_db_observability.mcp import mcp +from oracle.oci_oracle_db_observability_mcp_server import mcp as mcp_module +from oracle.oci_oracle_db_observability_mcp_server.mcp import mcp @pytest.mark.asyncio @@ -11,12 +11,12 @@ async def test_unified_mcp_exposes_only_discovery_dispatch_and_compartment_tools tools = await mcp.list_tools() assert {tool.name for tool in tools} == { - "describe_tool", - "get_compartment", - "invoke_tool", - "list_compartments", - "list_skills", - "list_tools", + "describe_dbo_tool", + "get_oci_compartment", + "invoke_dbo_tool", + "list_oci_compartments", + "list_dbo_skills", + "list_dbo_tools", } @@ -33,20 +33,29 @@ def list_compartments(self, **kwargs): return object() monkeypatch.setattr(mcp_module, "identity_bootstrap_client", lambda: (Client(), "tenancy-ocid")) - monkeypatch.setattr(mcp_module, "serialize_response", lambda _response: [{"id": "compartment-ocid"}]) + monkeypatch.setattr( + mcp_module, + "serialize_response", + lambda _response: {"data": [{"id": "compartment-ocid"}], "nextPage": "page-2"}, + ) - assert mcp_module.get_compartment("compartment-ocid") == [{"id": "compartment-ocid"}] + assert mcp_module.get_oci_compartment("compartment-ocid") == { + "data": [{"id": "compartment-ocid"}], + "nextPage": "page-2", + } assert calls["get"] == {"compartment_id": "compartment-ocid"} - assert mcp_module.list_compartments( + assert mcp_module.list_oci_compartments( root_compartment_id=None, include_subtree=True, access_level="ACCESSIBLE", name="production", lifecycle_state=None, limit=10, + page="page-1", ) == { "items": [{"id": "compartment-ocid"}], "count": 1, + "nextPage": "page-2", } assert calls["list"] == { "compartment_id": "tenancy-ocid", @@ -55,32 +64,33 @@ def list_compartments(self, **kwargs): "name": "production", "lifecycle_state": None, "limit": 10, + "page": "page-1", } def test_get_compartment_requires_an_ocid() -> None: with pytest.raises(ValueError, match="compartment_id is required"): - mcp_module.get_compartment("") + mcp_module.get_oci_compartment("") def test_discovery_and_invocation_tools_delegate_to_registry(monkeypatch) -> None: - skills = mcp_module.list_skills()["skills"] - assert len(skills) == 32 + skills = mcp_module.list_dbo_skills()["skills"] + assert len(skills) == 34 assert {"name", "description", "toolCount"}.issubset(skills[0]) - listed = mcp_module.list_tools(["database-insights"], ["database", "insights"], limit=1) + listed = mcp_module.list_dbo_tools(["database-inventory"], limit=1) assert listed["count"] >= 1 assert len(listed["tools"]) == 1 assert listed["truncated"] is (listed["count"] > 1) - assert "database-insights" in listed["tools"][0]["skills"] + assert "database-inventory" in listed["tools"][0]["skills"] - described = mcp_module.describe_tool("list_database_insights") + described = mcp_module.describe_dbo_tool("list_database_insights") assert described["name"] == "list_database_insights" assert described["inputSchema"]["type"] == "object" expected = {"result": "ok"} monkeypatch.setattr(mcp_module, "invoke_registered_tool", lambda tool, arguments: (tool["name"], arguments, expected)) - assert mcp_module.invoke_tool("list_database_insights", {"compartment_id": "ocid"}) == ( + assert mcp_module.invoke_dbo_tool("list_database_insights", {"compartment_id": "ocid"}) == ( "list_database_insights", {"compartment_id": "ocid"}, expected, diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_registry.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_registry.py new file mode 100644 index 00000000..234064ea --- /dev/null +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_registry.py @@ -0,0 +1,128 @@ +from __future__ import annotations + +import json +from types import SimpleNamespace + +import pytest + +from oracle.oci_oracle_db_observability_mcp_server.registry import RegistryError, _validate, client_class, load_registry +from oracle.oci_oracle_db_observability_mcp_server.registry import to_jsonable +from oracle.oci_oracle_db_observability_mcp_server.sdk_schema import ( + _enum_from_description, + _model_maps, + _preserve_constraints, + _split_pair, + expected_kwargs, + schema_for_operation, + schema_for_type, +) + + +def test_packaged_registry_has_expected_shape() -> None: + registry = load_registry() + + assert len(registry.skills) == 34 + assert len(registry.tools) == 240 + assert len({tool["name"] for tool in registry.tools}) == 240 + assert all(tool["inputSchema"]["type"] == "object" for tool in registry.tools) + assert all(tool["inputSchema"].get("additionalProperties") is False for tool in registry.tools) + assert "retrieve_data" not in {tool["name"] for tool in registry.tools} + assert not any(tool["mutable"] for tool in registry.tools) + assert "query_opsi_data_object_data" not in {tool["name"] for tool in registry.tools} + + +def test_tool_filtering_is_skill_scoped() -> None: + registry = load_registry() + + tools = registry.list_tools({"awr-historical-performance-analysis"}) + + assert tools + assert all("awr-historical-performance-analysis" in tool["skills"] for tool in tools) + + +def test_unknown_skill_and_tool_are_rejected() -> None: + registry = load_registry() + + with pytest.raises(RegistryError, match="Unknown skill"): + registry.get_skill("missing") + with pytest.raises(RegistryError, match="Unknown tool"): + registry.get_tool("missing") + with pytest.raises(RegistryError, match="Unknown skill"): + registry.list_tools({"missing"}) + + +def test_duplicate_names_are_rejected() -> None: + registry = load_registry() + duplicate_skill = dict(registry.skills[0]) + duplicate_tool = dict(registry.tools[0]) + + with pytest.raises(RegistryError, match="Duplicate skill"): + _validate([registry.skills[0], duplicate_skill], []) + with pytest.raises(RegistryError, match="Duplicate tool"): + _validate(list(registry.skills), [duplicate_tool, duplicate_tool]) + + +def test_metadata_files_are_valid_json() -> None: + from importlib.resources import files + + metadata = files("oracle.oci_oracle_db_observability_mcp_server").joinpath("metadata") + for name in ("manifest.json", "skills.json", "tools.json"): + json.loads(metadata.joinpath(name).read_text(encoding="utf-8")) + + +def test_compartment_bootstrap_tool_is_not_registry_backed() -> None: + registry = load_registry() + + assert "list_compartments" not in {tool["name"] for tool in registry.tools} + assert "list_compartments" not in registry.get_skill("oci-common")["tools"] + + +def test_registry_values_can_be_returned_as_json() -> None: + schema = to_jsonable(load_registry().get_tool("summarize_database_insight_resource_usage")["inputSchema"]) + + assert isinstance(schema, dict) + assert json.loads(json.dumps(schema)) == schema + + +def test_packaged_schemas_match_the_locked_oci_sdk() -> None: + registry = load_registry() + + for tool in registry.tools: + method = getattr(client_class(tool["service"], tool["client"]), tool["operation"]) + models = __import__(f"{method.__module__.rsplit('.', 1)[0]}.models", fromlist=["models"]) + schema = to_jsonable(tool["inputSchema"]) + assert schema == schema_for_operation(method, models, schema) + + +@pytest.mark.parametrize("mutation, error", [(lambda schema: schema.pop("additionalProperties"), "unrestricted object"), (lambda schema: schema["properties"].update({"values": {"type": "array"}}), "untyped array")]) +def test_registry_rejects_open_objects_and_untyped_arrays(mutation, error) -> None: + registry = load_registry() + tool = to_jsonable(registry.tools[0]) + tool["skills"] = ["skill"] + mutation(tool["inputSchema"]) + + with pytest.raises(RegistryError, match=error): + _validate([{"name": "skill", "tools": [tool["name"]]}], [tool]) + + +def test_sdk_schema_helpers_reject_unresolvable_contracts() -> None: + def no_expected_kwargs(self, **kwargs): + return kwargs + + def mismatched_docs(self, **kwargs): + """:param str other: (optional) A different argument.""" + expected_kwargs = ["value"] + return kwargs, expected_kwargs + + assert _split_pair("str, list[int]") == ("str", "list[int]") + assert _enum_from_description("No SDK enum here") is None + assert schema_for_type("Any", SimpleNamespace()) == {} + _preserve_constraints({}, None) + with pytest.raises(ValueError, match="expected_kwargs"): + expected_kwargs(no_expected_kwargs) + with pytest.raises(ValueError, match="does not expose schema maps"): + _model_maps(object) + with pytest.raises(ValueError, match="Unable to resolve OCI SDK type"): + schema_for_type("MissingModel", SimpleNamespace()) + with pytest.raises(ValueError, match="documentation and expected_kwargs differ"): + schema_for_operation(mismatched_docs, SimpleNamespace()) diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/tests/test_runtime.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_runtime.py similarity index 76% rename from src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/tests/test_runtime.py rename to src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_runtime.py index 361c7349..745b0cd0 100644 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/tests/test_runtime.py +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_runtime.py @@ -5,8 +5,8 @@ import pytest -from oracle.oci_oracle_db_observability import __project__, __version__ -from oracle.oci_oracle_db_observability import runtime +from oracle.oci_oracle_db_observability_mcp_server import __project__, __version__ +from oracle.oci_oracle_db_observability_mcp_server import runtime EXPECTED_USER_AGENT = f"{__project__.split('oracle.', 1)[1].removesuffix('-server')}/{__version__}" @@ -128,10 +128,42 @@ def test_invoke_validates_before_creating_sdk_client(monkeypatch) -> None: runtime.invoke_registered_tool(tool, {}) +@pytest.mark.parametrize( + ("tool_name", "arguments"), + [ + ("list_database_insights", {"bogus": 1}), + ("list_database_insights", {"database_id": ["ocid1.database.oc1..example", 7]}), + ( + "create_managed_database_group", + { + "create_managed_database_group_details": { + "name": "group", + "compartment_id": "ocid1.compartment.oc1..example", + "bogus": "value", + } + }, + ), + ], +) +def test_registered_tool_rejects_invalid_sdk_schema_arguments_before_client_creation(monkeypatch, tool_name, arguments) -> None: + from oracle.oci_oracle_db_observability_mcp_server.registry import load_registry + + monkeypatch.setattr(runtime, "_client", lambda *_args: pytest.fail("client must not be created")) + + with pytest.raises(ValueError, match="Invalid arguments"): + runtime.invoke_registered_tool(load_registry().get_tool(tool_name), arguments) + + def test_response_serialization_and_model_helpers(monkeypatch) -> None: - assert runtime.serialize_response(SimpleNamespace(data={"value": "ok"})) == {"value": "ok"} + assert runtime.serialize_response(SimpleNamespace(data={"value": "ok"}, headers={"opc-next-page": "page-2"})) == { + "data": {"value": "ok"}, + "nextPage": "page-2", + } monkeypatch.setattr(runtime.oci.util, "to_dict", lambda _data: (_ for _ in ()).throw(TypeError("bad data"))) - assert runtime.serialize_response(SimpleNamespace(data="fallback")) == "fallback" + assert runtime.serialize_response(SimpleNamespace(data="fallback", headers={})) == { + "data": "fallback", + "nextPage": None, + } assert runtime._type_name("ExampleDetails") == "ExampleDetails" assert runtime._type_name(int) == "int" assert runtime._type_name(object()) is None @@ -159,6 +191,25 @@ def __init__(self, **kwargs): assert runtime._coerce({"name": "unchanged"}, "Missing", models) == {"name": "unchanged"} +def test_coerce_arguments_uses_sdk_doc_types_for_generated_kwargs(monkeypatch) -> None: + class Details: + swagger_types = {"name": "str"} + + def __init__(self, **kwargs): + self.kwargs = kwargs + + class Client: + def create_example(self, **kwargs): + """:param ExampleDetails details: (required) Request details.""" + return kwargs + + monkeypatch.setattr(runtime, "_models_module", lambda _client: SimpleNamespace(ExampleDetails=Details)) + result = runtime._coerce_arguments(Client(), "create_example", {"details": {"name": "example"}}) + + assert isinstance(result["details"], Details) + assert result["details"].kwargs == {"name": "example"} + + def test_registered_tool_coerces_arguments_serializes_and_wraps_oci_errors(monkeypatch) -> None: tool = { "name": "example_tool", @@ -170,10 +221,13 @@ def test_registered_tool_coerces_arguments_serializes_and_wraps_oci_errors(monke class Client: def get_example(self, value: str): - return SimpleNamespace(data={"value": value}) + return SimpleNamespace(data={"value": value}, headers={}) monkeypatch.setattr(runtime, "_client", lambda *_args: Client()) - assert runtime.invoke_registered_tool(tool, {"value": "ok"}) == {"value": "ok"} + assert runtime.invoke_registered_tool(tool, {"value": "ok"}) == { + "data": {"value": "ok"}, + "nextPage": None, + } with pytest.raises(ValueError, match="arguments must be a JSON object"): runtime.invoke_registered_tool(tool, []) diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/tests/test_server.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_server.py similarity index 95% rename from src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/tests/test_server.py rename to src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_server.py index fe6206ae..adabb156 100644 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability/tests/test_server.py +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_server.py @@ -2,7 +2,7 @@ from types import SimpleNamespace -from oracle.oci_oracle_db_observability import server +from oracle.oci_oracle_db_observability_mcp_server import server def test_main_runs_stdio_without_http_environment(monkeypatch) -> None: diff --git a/src/oci-oracle-db-observability-mcp-server/pyproject.toml b/src/oci-oracle-db-observability-mcp-server/pyproject.toml index 264c537c..407a0149 100644 --- a/src/oci-oracle-db-observability-mcp-server/pyproject.toml +++ b/src/oci-oracle-db-observability-mcp-server/pyproject.toml @@ -1,5 +1,5 @@ [project] -name = "oracle.oci-db-observability" +name = "oracle.oci-db-observability-mcp-server" version = "0.1.0" description = "Unified Oracle Database Observability MCP server" readme = "README.md" @@ -24,7 +24,7 @@ classifiers = [ ] [project.scripts] -"oracle.oci-db-observability-mcp-server" = "oracle.oci_oracle_db_observability.server:main" +"oracle.oci-db-observability-mcp-server" = "oracle.oci_oracle_db_observability_mcp_server.server:main" [build-system] requires = ["hatchling"] diff --git a/src/oci-oracle-db-observability-mcp-server/uv.lock b/src/oci-oracle-db-observability-mcp-server/uv.lock index 62a30976..e6b75b3d 100644 --- a/src/oci-oracle-db-observability-mcp-server/uv.lock +++ b/src/oci-oracle-db-observability-mcp-server/uv.lock @@ -723,7 +723,7 @@ wheels = [ ] [[package]] -name = "oracle-oci-db-observability" +name = "oracle-oci-db-observability-mcp-server" version = "0.1.0" source = { editable = "." } dependencies = [ From 52a04afffcf7ce9fe6df6e68dd2caf72d7abd848 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Luis=20Castro=20Garc=C3=ADa?= Date: Fri, 7 Aug 2026 15:53:35 -0600 Subject: [PATCH 09/23] addressed PR comments --- .../CHANGELOG.md | 2 +- .../README.md | 2 +- .../mcp.py | 10 +- .../metadata/skills.json | 19 +- .../metadata/tools.json | 511 ------------------ .../registry.py | 1 - .../tests/test_mcp_surface.py | 10 + .../tests/test_registry.py | 4 +- .../tests/test_runtime.py | 10 - .../pyproject.toml | 6 +- .../uv.lock | 228 +++++--- 11 files changed, 166 insertions(+), 637 deletions(-) diff --git a/src/oci-oracle-db-observability-mcp-server/CHANGELOG.md b/src/oci-oracle-db-observability-mcp-server/CHANGELOG.md index 8174bc63..c651752d 100644 --- a/src/oci-oracle-db-observability-mcp-server/CHANGELOG.md +++ b/src/oci-oracle-db-observability-mcp-server/CHANGELOG.md @@ -23,7 +23,7 @@ `list_oci_compartments`. - Catalog discovery and dispatch through `list_dbo_skills`, `list_dbo_tools`, `describe_dbo_tool`, and `invoke_dbo_tool`. -- 34 workflow skills and 240 read-only OPSI/DBM SDK-backed catalog operations. +- 34 workflow skills and 229 read-only OPSI/DBM SDK-backed catalog operations. ### Package and entry point diff --git a/src/oci-oracle-db-observability-mcp-server/README.md b/src/oci-oracle-db-observability-mcp-server/README.md index d76cfc2e..573b246d 100644 --- a/src/oci-oracle-db-observability-mcp-server/README.md +++ b/src/oci-oracle-db-observability-mcp-server/README.md @@ -38,7 +38,7 @@ application. If `IDCS_REQUIRED_SCOPES` is unset, the default scope is `oci_mcp.db_observability.invoke` together with the standard OpenID scopes. The server uses `oracle-mcp-common` 0.1.2 or later for OCI authentication. For HTTP token-exchange authentication, set `OCI_MCP_TENANCY_ID_OVERRIDE` when the -caller signer does not expose a tenancy and `list_compartments` is called +caller signer does not expose a tenancy and `list_oci_compartments` is called without `root_compartment_id`. ## Discovery workflow diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/mcp.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/mcp.py index 926a0b5e..7749b48b 100644 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/mcp.py +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/mcp.py @@ -9,7 +9,7 @@ registry = load_registry() mcp = FastMCP( name="oracle.oci-db-observability-mcp-server", - instructions="Resolve OCI scope with `list_compartments` or `get_compartment`. Use `list_dbo_skills` to discover " + instructions="Resolve OCI scope with `list_oci_compartments` or `get_oci_compartment`. Use `list_dbo_skills` to discover " "the smallest relevant Oracle Database Observability capability for the user's goal, then `list_dbo_tools` " "to list candidate operations. Before execution, call `describe_dbo_tool` to get the exact contract, then " "`invoke_dbo_tool` with arguments that match the returned input schema exactly." @@ -80,7 +80,7 @@ def list_dbo_tools( skill_names: list[str] = Field( ..., min_length=1, - description="Required skill names returned by list_skills. Only tools belonging to these skills are searched.", + description="Required skill names returned by list_dbo_skills. Only tools belonging to these skills are listed.", ), limit: int = Field(50, ge=1, le=100, description="Maximum compact tool entries to return."), ) -> dict[str, Any]: @@ -106,7 +106,7 @@ def list_dbo_tools( "Must be called immediately before `invoke_dbo_tool`." ) def describe_dbo_tool( - tool_name: str = Field(..., description="Required logical tool name returned by list_tools, for example list_database_insights."), + tool_name: str = Field(..., description="Required logical tool name returned by list_dbo_tools, for example list_database_insights."), ) -> dict[str, Any]: tool = registry.get_tool(tool_name) return { @@ -123,7 +123,7 @@ def describe_dbo_tool( "the sole endpoint that executes catalog operations." ) def invoke_dbo_tool( - tool_name: str = Field(..., description="Required logical tool name returned by list_tools and described with describe_tool."), - arguments: dict[str, Any] = Field(default_factory=dict, description="Required JSON object of SDK arguments matching the exact inputSchema from describe_tool."), + tool_name: str = Field(..., description="Required logical tool name returned by list_dbo_tools and described with describe_dbo_tool."), + arguments: dict[str, Any] = Field(default_factory=dict, description="Required JSON object of SDK arguments matching the exact inputSchema from describe_dbo_tool."), ) -> Any: return invoke_registered_tool(registry.get_tool(tool_name), arguments) diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/metadata/skills.json b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/metadata/skills.json index faed5de5..00009818 100644 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/metadata/skills.json +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/metadata/skills.json @@ -4,8 +4,7 @@ "name": "advanced-diagnostics-addm-session-control-bulk-retrieve", "description": "ADDM execution, session cancellation, and bulk diagnostic data retrieval for managed databases.", "tools": [ - "addm_tasks", - "run_historic_addm" + "addm_tasks" ] }, { @@ -81,7 +80,6 @@ "name": "cloud-exadata-storage", "description": "Read-only checks for Cloud Exadata storage connectors, servers, grids, IORM plans, and open alerts.", "tools": [ - "check_cloud_exadata_storage_connector", "get_cloud_exadata_storage_connector", "get_cloud_exadata_storage_grid", "get_cloud_exadata_storage_server", @@ -95,7 +93,6 @@ "name": "cloud-inventory-discovery-connectivity", "description": "Read-only cloud inventory, discovery, and connector connectivity checks for Cloud DB systems.", "tools": [ - "check_cloud_db_system_connector_connection_status", "get_cloud_db_system", "get_cloud_db_system_discovery", "get_cloud_exadata_infrastructure", @@ -113,9 +110,7 @@ "get_named_credential", "get_preferred_credential", "list_named_credentials", - "list_preferred_credentials", - "test_named_credential", - "test_preferred_credential" + "list_preferred_credentials" ] }, { @@ -267,7 +262,6 @@ "name": "external-exadata-storage", "description": "Read-only and connector-management workflows for external Exadata storage resources in OCI Database Management.", "tools": [ - "check_external_exadata_storage_connector", "get_external_exadata_storage_connector", "get_external_exadata_storage_grid", "get_external_exadata_storage_server", @@ -275,15 +269,13 @@ "get_open_alert_history", "get_top_sql_cpu_activity", "list_external_exadata_storage_connectors", - "list_external_exadata_storage_servers", - "update_external_exadata_storage_connector" + "list_external_exadata_storage_servers" ] }, { "name": "external-inventory-discovery-connectivity", "description": "Discovery, inventory, lookup, and connector-connectivity workflows for external DB systems in OCI Database Management.", "tools": [ - "check_external_db_system_connector_connection_status", "get_external_db_home", "get_external_db_system", "get_external_db_system_connector", @@ -367,11 +359,8 @@ "name": "managed-database-groups-organize-and-target-sets-of-databases", "description": "Managed database group lifecycle and membership workflows in OCI Database Management.", "tools": [ - "add_managed_database_to_managed_database_group", - "create_managed_database_group", "get_managed_database_group", - "list_managed_database_groups", - "remove_managed_database_from_managed_database_group" + "list_managed_database_groups" ] }, { diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/metadata/tools.json b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/metadata/tools.json index 47864e42..eccc893c 100644 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/metadata/tools.json +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/metadata/tools.json @@ -1,47 +1,5 @@ { "tools": [ - { - "name": "add_managed_database_to_managed_database_group", - "description": "Adds a managed database to a managed database group so group-scoped operations include that database.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "add_managed_database_to_managed_database_group", - "skills": [ - "managed-database-groups-organize-and-target-sets-of-databases" - ], - "inputSchema": { - "type": "object", - "properties": { - "add_managed_database_to_managed_database_group_details": { - "type": "object", - "properties": { - "managed_database_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "managed_database_id" - ] - }, - "managed_database_group_id": { - "type": "string" - }, - "opc_request_id": { - "type": "string" - }, - "opc_retry_token": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "add_managed_database_to_managed_database_group_details", - "managed_database_group_id" - ] - }, - "mutable": false - }, { "name": "addm_tasks", "description": "Returns ADDM tasks whose end snapshot time falls within the requested time range.", @@ -115,192 +73,6 @@ }, "mutable": false }, - { - "name": "check_cloud_db_system_connector_connection_status", - "description": "Checks connectivity for one Cloud DB system connector and returns status so admins can validate connector health.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "check_cloud_db_system_connector_connection_status", - "skills": [ - "cloud-inventory-discovery-connectivity" - ], - "inputSchema": { - "type": "object", - "properties": { - "cloud_db_system_connector_id": { - "type": "string" - }, - "if_match": { - "type": "string" - }, - "opc_request_id": { - "type": "string" - }, - "opc_retry_token": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "cloud_db_system_connector_id" - ] - }, - "mutable": false - }, - { - "name": "check_cloud_exadata_storage_connector", - "description": "Checks connectivity for one Cloud Exadata storage connector and returns status so admins can confirm whether storage telemetry access is working.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "check_cloud_exadata_storage_connector", - "skills": [ - "cloud-exadata-storage" - ], - "inputSchema": { - "type": "object", - "properties": { - "cloud_exadata_storage_connector_id": { - "type": "string" - }, - "if_match": { - "type": "string" - }, - "opc_request_id": { - "type": "string" - }, - "opc_retry_token": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "cloud_exadata_storage_connector_id" - ] - }, - "mutable": false - }, - { - "name": "check_external_db_system_connector_connection_status", - "description": "Checks external DB system connector connectivity to confirm the connector can reach the target DB system endpoint.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "check_external_db_system_connector_connection_status", - "skills": [ - "external-inventory-discovery-connectivity" - ], - "inputSchema": { - "type": "object", - "properties": { - "external_db_system_connector_id": { - "type": "string" - }, - "if_match": { - "type": "string" - }, - "opc_request_id": { - "type": "string" - }, - "opc_retry_token": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "external_db_system_connector_id" - ] - }, - "mutable": false - }, - { - "name": "check_external_exadata_storage_connector", - "description": "Checks external Exadata storage connector connectivity to verify the connector can reach the target storage endpoint.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "check_external_exadata_storage_connector", - "skills": [ - "external-exadata-storage" - ], - "inputSchema": { - "type": "object", - "properties": { - "external_exadata_storage_connector_id": { - "type": "string" - }, - "if_match": { - "type": "string" - }, - "opc_request_id": { - "type": "string" - }, - "opc_retry_token": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "external_exadata_storage_connector_id" - ] - }, - "mutable": false - }, - { - "name": "create_managed_database_group", - "description": "Creates a managed database group so you can organize databases into a reusable operational target set.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "create_managed_database_group", - "skills": [ - "managed-database-groups-organize-and-target-sets-of-databases" - ], - "inputSchema": { - "type": "object", - "properties": { - "create_managed_database_group_details": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "compartment_id": { - "type": "string" - }, - "freeform_tags": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "defined_tags": { - "type": "object", - "additionalProperties": { - "type": "object", - "additionalProperties": {} - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "compartment_id" - ] - }, - "opc_request_id": { - "type": "string" - }, - "opc_retry_token": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "create_managed_database_group_details" - ] - }, - "mutable": false - }, { "name": "get_awr_database_report", "description": "Returns the AWR report payload for a selected database and snapshot range, including SQL, wait-event, and load-profile sections.", @@ -8770,97 +8542,6 @@ }, "mutable": false }, - { - "name": "remove_managed_database_from_managed_database_group", - "description": "Removes a managed database from a managed database group so future group-scoped operations exclude that database.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "remove_managed_database_from_managed_database_group", - "skills": [ - "managed-database-groups-organize-and-target-sets-of-databases" - ], - "inputSchema": { - "type": "object", - "properties": { - "managed_database_group_id": { - "type": "string" - }, - "opc_request_id": { - "type": "string" - }, - "opc_retry_token": { - "type": "string" - }, - "remove_managed_database_from_managed_database_group_details": { - "type": "object", - "properties": { - "managed_database_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "managed_database_id" - ] - } - }, - "additionalProperties": false, - "required": [ - "managed_database_group_id", - "remove_managed_database_from_managed_database_group_details" - ] - }, - "mutable": false - }, - { - "name": "run_historic_addm", - "description": "Creates or retrieves a historic ADDM task result for specified AWR snapshot IDs.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "run_historic_addm", - "skills": [ - "advanced-diagnostics-addm-session-control-bulk-retrieve" - ], - "inputSchema": { - "type": "object", - "properties": { - "managed_database_id": { - "type": "string" - }, - "opc_named_credential_id": { - "type": "string" - }, - "opc_request_id": { - "type": "string" - }, - "opc_retry_token": { - "type": "string" - }, - "run_historic_addm_details": { - "type": "object", - "properties": { - "start_snapshot_id": { - "type": "integer" - }, - "end_snapshot_id": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "start_snapshot_id", - "end_snapshot_id" - ] - } - }, - "additionalProperties": false, - "required": [ - "managed_database_id", - "run_historic_addm_details" - ] - }, - "mutable": false - }, { "name": "summarize_addm_db_findings", "description": "Returns ADDM findings with affected databases and finding details for the selected interval.", @@ -16602,198 +16283,6 @@ ] }, "mutable": false - }, - { - "name": "test_named_credential", - "description": "Tests one named credential and returns status so admins can validate credential usability before operational use.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "test_named_credential", - "skills": [ - "credentials-and-authentication-preferred-named" - ], - "inputSchema": { - "type": "object", - "properties": { - "named_credential_id": { - "type": "string" - }, - "opc_request_id": { - "type": "string" - }, - "test_named_credential_details": { - "type": "object", - "properties": { - "managed_database_id": { - "type": "string" - } - }, - "additionalProperties": false - } - }, - "additionalProperties": false, - "required": [ - "named_credential_id", - "test_named_credential_details" - ] - }, - "mutable": false - }, - { - "name": "test_preferred_credential", - "description": "Tests one preferred credential and returns status so admins can confirm connectivity and authentication readiness.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "test_preferred_credential", - "skills": [ - "credentials-and-authentication-preferred-named" - ], - "inputSchema": { - "type": "object", - "properties": { - "credential_name": { - "type": "string" - }, - "managed_database_id": { - "type": "string" - }, - "opc_request_id": { - "type": "string" - }, - "test_preferred_credential_details": { - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "NAMED_CREDENTIAL" - ] - }, - "named_credential_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "BASIC" - ] - }, - "user_name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "password_secret_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - } - ] - } - }, - "additionalProperties": false, - "required": [ - "credential_name", - "managed_database_id" - ] - }, - "mutable": false - }, - { - "name": "update_external_exadata_storage_connector", - "description": "Updates an external Exadata storage connector; on success, new connector settings are used for subsequent connectivity and data collection.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "update_external_exadata_storage_connector", - "skills": [ - "external-exadata-storage" - ], - "inputSchema": { - "type": "object", - "properties": { - "external_exadata_storage_connector_id": { - "type": "string" - }, - "if_match": { - "type": "string" - }, - "opc_request_id": { - "type": "string" - }, - "update_external_exadata_storage_connector_details": { - "type": "object", - "properties": { - "connector_name": { - "type": "string" - }, - "connection_uri": { - "type": "string" - }, - "credential_info": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "password": { - "type": "string" - }, - "ssl_trust_store_type": { - "type": "string" - }, - "ssl_trust_store_location": { - "type": "string" - }, - "ssl_trust_store_password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "password" - ] - }, - "freeform_tags": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "defined_tags": { - "type": "object", - "additionalProperties": { - "type": "object", - "additionalProperties": {} - } - } - }, - "additionalProperties": false - } - }, - "additionalProperties": false, - "required": [ - "external_exadata_storage_connector_id", - "update_external_exadata_storage_connector_details" - ] - }, - "mutable": false } ] } diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/registry.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/registry.py index cd6ca7ff..78c08705 100644 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/registry.py +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/registry.py @@ -2,7 +2,6 @@ from __future__ import annotations -import inspect import json from dataclasses import dataclass from importlib.resources import files diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_mcp_surface.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_mcp_surface.py index d89a80ee..aead4343 100644 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_mcp_surface.py +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_mcp_surface.py @@ -1,5 +1,7 @@ from __future__ import annotations +import re + import pytest from oracle.oci_oracle_db_observability_mcp_server import mcp as mcp_module @@ -20,6 +22,14 @@ async def test_unified_mcp_exposes_only_discovery_dispatch_and_compartment_tools } +@pytest.mark.asyncio +async def test_advertised_workflow_references_registered_tools_only() -> None: + registered_names = {tool.name for tool in await mcp.list_tools()} + advertised_names = set(re.findall(r"`([^`]+)`", mcp.instructions)) + + assert advertised_names <= registered_names + + def test_compartment_tools_use_the_shared_bootstrap_client(monkeypatch) -> None: calls: dict[str, object] = {} diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_registry.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_registry.py index 234064ea..cc65272c 100644 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_registry.py +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_registry.py @@ -22,8 +22,8 @@ def test_packaged_registry_has_expected_shape() -> None: registry = load_registry() assert len(registry.skills) == 34 - assert len(registry.tools) == 240 - assert len({tool["name"] for tool in registry.tools}) == 240 + assert len(registry.tools) == 229 + assert len({tool["name"] for tool in registry.tools}) == 229 assert all(tool["inputSchema"]["type"] == "object" for tool in registry.tools) assert all(tool["inputSchema"].get("additionalProperties") is False for tool in registry.tools) assert "retrieve_data" not in {tool["name"] for tool in registry.tools} diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_runtime.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_runtime.py index 745b0cd0..256abc3b 100644 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_runtime.py +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_runtime.py @@ -133,16 +133,6 @@ def test_invoke_validates_before_creating_sdk_client(monkeypatch) -> None: [ ("list_database_insights", {"bogus": 1}), ("list_database_insights", {"database_id": ["ocid1.database.oc1..example", 7]}), - ( - "create_managed_database_group", - { - "create_managed_database_group_details": { - "name": "group", - "compartment_id": "ocid1.compartment.oc1..example", - "bogus": "value", - } - }, - ), ], ) def test_registered_tool_rejects_invalid_sdk_schema_arguments_before_client_creation(monkeypatch, tool_name, arguments) -> None: diff --git a/src/oci-oracle-db-observability-mcp-server/pyproject.toml b/src/oci-oracle-db-observability-mcp-server/pyproject.toml index 407a0149..5760a454 100644 --- a/src/oci-oracle-db-observability-mcp-server/pyproject.toml +++ b/src/oci-oracle-db-observability-mcp-server/pyproject.toml @@ -10,9 +10,9 @@ authors = [ {name = "Oracle MCP", email = "237432095+oracle-mcp@users.noreply.github.com"}, ] dependencies = [ - "fastmcp==3.2.4", - "oci==2.179.0", - "pydantic==2.12.3", + "fastmcp==3.4.5", + "oci==2.182.1", + "pydantic==2.13.4", "jsonschema>=4.25.0,<5.0.0", "oracle-mcp-common>=0.1.2,<0.2.0", ] diff --git a/src/oci-oracle-db-observability-mcp-server/uv.lock b/src/oci-oracle-db-observability-mcp-server/uv.lock index e6b75b3d..f620cf96 100644 --- a/src/oci-oracle-db-observability-mcp-server/uv.lock +++ b/src/oci-oracle-db-observability-mcp-server/uv.lock @@ -247,32 +247,46 @@ wheels = [ [[package]] name = "crc32c" -version = "2.7.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/7f/4c/4e40cc26347ac8254d3f25b9f94710b8e8df24ee4dddc1ba41907a88a94d/crc32c-2.7.1.tar.gz", hash = "sha256:f91b144a21eef834d64178e01982bb9179c354b3e9e5f4c803b0e5096384968c", size = 45712, upload_time = "2024-09-24T06:20:17.553Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/bf/98/1a6d60d5b3b5edc8382777b64100343cb4aa6a7e172fae4a6cfcb8ebbbd9/crc32c-2.7.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:24949bffb06fc411cc18188d33357923cb935273642164d0bb37a5f375654169", size = 49567, upload_time = "2024-09-24T06:18:44.485Z" }, - { url = "https://files.pythonhosted.org/packages/4f/56/0dd652d4e950e6348bbf16b964b3325e4ad8220470774128fc0b0dd069cb/crc32c-2.7.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2d5d326e7e118d4fa60187770d86b66af2fdfc63ce9eeb265f0d3e7d49bebe0b", size = 37018, upload_time = "2024-09-24T06:18:45.434Z" }, - { url = "https://files.pythonhosted.org/packages/47/02/2bd65fdef10139b6a802d83a7f966b7750fe5ffb1042f7cbe5dbb6403869/crc32c-2.7.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ba110df60c64c8e2d77a9425b982a520ccdb7abe42f06604f4d98a45bb1fff62", size = 35374, upload_time = "2024-09-24T06:18:46.304Z" }, - { url = "https://files.pythonhosted.org/packages/a9/0d/3e797d1ed92d357a6a4c5b41cea15a538b27a8fdf18c7863747eb50b73ad/crc32c-2.7.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c277f9d16a3283e064d54854af0976b72abaa89824955579b2b3f37444f89aae", size = 54641, upload_time = "2024-09-24T06:18:47.207Z" }, - { url = "https://files.pythonhosted.org/packages/a7/d3/4ddeef755caaa75680c559562b6c71f5910fee4c4f3a2eb5ea8b57f0e48c/crc32c-2.7.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:881af0478a01331244e27197356929edbdeaef6a9f81b5c6bacfea18d2139289", size = 52338, upload_time = "2024-09-24T06:18:49.31Z" }, - { url = "https://files.pythonhosted.org/packages/01/cf/32f019be5de9f6e180926a50ee5f08648e686c7d9a59f2c5d0806a77b1c7/crc32c-2.7.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:724d5ff4d29ff093a983ae656be3307093706d850ea2a233bf29fcacc335d945", size = 53447, upload_time = "2024-09-24T06:18:50.296Z" }, - { url = "https://files.pythonhosted.org/packages/b2/8b/92f3f62f3bafe8f7ab4af7bfb7246dc683fd11ec0d6dfb73f91e09079f69/crc32c-2.7.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b2416c4d88696ac322632555c0f81ab35e15f154bc96055da6cf110d642dbc10", size = 54484, upload_time = "2024-09-24T06:18:51.311Z" }, - { url = "https://files.pythonhosted.org/packages/98/b2/113a50f8781f76af5ac65ffdb907e72bddbe974de8e02247f0d58bc48040/crc32c-2.7.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:60254251b88ec9b9795215f0f9ec015a6b5eef8b2c5fba1267c672d83c78fc02", size = 52703, upload_time = "2024-09-24T06:18:52.488Z" }, - { url = "https://files.pythonhosted.org/packages/b4/6c/309229e9acda8cf36a8ff4061d70b54d905f79b7037e16883ce6590a24ab/crc32c-2.7.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:edefc0e46f3c37372183f70338e5bdee42f6789b62fcd36ec53aa933e9dfbeaf", size = 53367, upload_time = "2024-09-24T06:18:53.49Z" }, - { url = "https://files.pythonhosted.org/packages/b5/2a/6c6324d920396e1bd9f3efbe8753da071be0ca52bd22d6c82d446b8d6975/crc32c-2.7.1-cp313-cp313-win32.whl", hash = "sha256:813af8111218970fe2adb833c5e5239f091b9c9e76f03b4dd91aaba86e99b499", size = 38377, upload_time = "2024-09-24T06:18:54.487Z" }, - { url = "https://files.pythonhosted.org/packages/db/a0/f01ccfab538db07ef3f6b4ede46357ff147a81dd4f3c59ca6a34c791a549/crc32c-2.7.1-cp313-cp313-win_amd64.whl", hash = "sha256:7d9ede7be8e4ec1c9e90aaf6884decbeef10e3473e6ddac032706d710cab5888", size = 39803, upload_time = "2024-09-24T06:18:55.419Z" }, - { url = "https://files.pythonhosted.org/packages/1b/80/61dcae7568b33acfde70c9d651c7d891c0c578c39cc049107c1cf61f1367/crc32c-2.7.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:db9ac92294284b22521356715784b91cc9094eee42a5282ab281b872510d1831", size = 49386, upload_time = "2024-09-24T06:18:56.813Z" }, - { url = "https://files.pythonhosted.org/packages/1e/f1/80f17c089799ab2b4c247443bdd101d6ceda30c46d7f193e16b5ca29c5a0/crc32c-2.7.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:8fcd7f2f29a30dc92af64a9ee3d38bde0c82bd20ad939999427aac94bbd87373", size = 36937, upload_time = "2024-09-24T06:18:57.77Z" }, - { url = "https://files.pythonhosted.org/packages/63/42/5fcfc71a3de493d920fd2590843762a2749981ea56b802b380e5df82309d/crc32c-2.7.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5c056ef043393085523e149276a7ce0cb534b872e04f3e20d74d9a94a75c0ad7", size = 35292, upload_time = "2024-09-24T06:18:58.676Z" }, - { url = "https://files.pythonhosted.org/packages/03/de/fef962e898a953558fe1c55141644553e84ef4190693a31244c59a0856c7/crc32c-2.7.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:03a92551a343702629af91f78d205801219692b6909f8fa126b830e332bfb0e0", size = 54223, upload_time = "2024-09-24T06:18:59.675Z" }, - { url = "https://files.pythonhosted.org/packages/21/14/fceca1a6f45c0a1814fe8602a65657b75c27425162445925ba87438cad6b/crc32c-2.7.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fb9424ec1a8ca54763155a703e763bcede82e6569fe94762614bb2de1412d4e1", size = 51588, upload_time = "2024-09-24T06:19:00.938Z" }, - { url = "https://files.pythonhosted.org/packages/13/3b/13d40a7dfbf9ef05c84a0da45544ee72080dca4ce090679e5105689984bd/crc32c-2.7.1-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88732070f6175530db04e0bb36880ac45c33d49f8ac43fa0e50cfb1830049d23", size = 52678, upload_time = "2024-09-24T06:19:02.661Z" }, - { url = "https://files.pythonhosted.org/packages/36/09/65ffc4fb9fa60ff6714eeb50a92284a4525e5943f0b040b572c0c76368c1/crc32c-2.7.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:57a20dfc27995f568f64775eea2bbb58ae269f1a1144561df5e4a4955f79db32", size = 53847, upload_time = "2024-09-24T06:19:03.705Z" }, - { url = "https://files.pythonhosted.org/packages/24/71/938e926085b7288da052db7c84416f3ce25e71baf7ab5b63824c7bcb6f22/crc32c-2.7.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:f7186d098bfd2cff25eac6880b7c7ad80431b90610036131c1c7dd0eab42a332", size = 51860, upload_time = "2024-09-24T06:19:04.726Z" }, - { url = "https://files.pythonhosted.org/packages/3c/d8/4526d5380189d6f2fa27256c204100f30214fe402f47cf6e9fb9a91ab890/crc32c-2.7.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:55a77e29a265418fa34bef15bd0f2c60afae5348988aaf35ed163b4bbf93cf37", size = 52508, upload_time = "2024-09-24T06:19:05.731Z" }, - { url = "https://files.pythonhosted.org/packages/19/30/15f7e35176488b77e5b88751947d321d603fccac273099ace27c7b2d50a6/crc32c-2.7.1-cp313-cp313t-win32.whl", hash = "sha256:ae38a4b6aa361595d81cab441405fbee905c72273e80a1c010fb878ae77ac769", size = 38319, upload_time = "2024-09-24T06:19:07.233Z" }, - { url = "https://files.pythonhosted.org/packages/19/c4/0b3eee04dac195f4730d102d7a9fbea894ae7a32ce075f84336df96a385d/crc32c-2.7.1-cp313-cp313t-win_amd64.whl", hash = "sha256:eee2a43b663feb6c79a6c1c6e5eae339c2b72cfac31ee54ec0209fa736cf7ee5", size = 39781, upload_time = "2024-09-24T06:19:08.182Z" }, +version = "2.8" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e3/66/7e97aa77af7cf6afbff26e3651b564fe41932599bc2d3dce0b2f73d4829a/crc32c-2.8.tar.gz", hash = "sha256:578728964e59c47c356aeeedee6220e021e124b9d3e8631d95d9a5e5f06e261c", size = 48179, upload_time = "2025-10-17T06:20:13.61Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e8/d8/3ae227890b3be40955a7144106ef4dd97d6123a82c2a5310cdab58ca49d8/crc32c-2.8-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:36f1e03ee9e9c6938e67d3bcb60e36f260170aa5f37da1185e04ef37b56af395", size = 66380, upload_time = "2025-10-17T06:19:18.009Z" }, + { url = "https://files.pythonhosted.org/packages/bd/8b/178d3f987cd0e049b484615512d3f91f3d2caeeb8ff336bb5896ae317438/crc32c-2.8-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b2f3226b94b85a8dd9b3533601d7a63e9e3e8edf03a8a169830ee8303a199aeb", size = 63048, upload_time = "2025-10-17T06:19:18.853Z" }, + { url = "https://files.pythonhosted.org/packages/f2/a1/48145ae2545ebc0169d3283ebe882da580ea4606bfb67cf4ca922ac3cfc3/crc32c-2.8-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6e08628bc72d5b6bc8e0730e8f142194b610e780a98c58cb6698e665cb885a5b", size = 61530, upload_time = "2025-10-17T06:19:19.974Z" }, + { url = "https://files.pythonhosted.org/packages/06/4b/cf05ed9d934cc30e5ae22f97c8272face420a476090e736615d9a6b53de0/crc32c-2.8-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:086f64793c5ec856d1ab31a026d52ad2b895ac83d7a38fce557d74eb857f0a82", size = 80001, upload_time = "2025-10-17T06:19:20.784Z" }, + { url = "https://files.pythonhosted.org/packages/15/ab/4b04801739faf36345f6ba1920be5b1c70282fec52f8280afd3613fb13e2/crc32c-2.8-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bcf72ee7e0135b3d941c34bb2c26c3fc6bc207106b49fd89aaafaeae223ae209", size = 81543, upload_time = "2025-10-17T06:19:21.557Z" }, + { url = "https://files.pythonhosted.org/packages/a9/1b/6e38dde5bfd2ea69b7f2ab6ec229fcd972a53d39e2db4efe75c0ac0382ce/crc32c-2.8-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:8a717dd9c3fd777d9bc6603717eae172887d402c4ab589d124ebd0184a83f89e", size = 80644, upload_time = "2025-10-17T06:19:22.325Z" }, + { url = "https://files.pythonhosted.org/packages/ce/45/012176ffee90059ae8ec7131019c71724ea472aa63e72c0c8edbd1fad1d7/crc32c-2.8-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:0450bb845b3c3c7b9bdc0b4e95620ec9a40824abdc8c86d6285c919a90743c1a", size = 79919, upload_time = "2025-10-17T06:19:23.101Z" }, + { url = "https://files.pythonhosted.org/packages/f0/2b/f557629842f9dec2b3461cb3a0d854bb586ec45b814cea58b082c32f0dde/crc32c-2.8-cp313-cp313-win32.whl", hash = "sha256:765d220bfcbcffa6598ac11eb1e10af0ee4802b49fe126aa6bf79f8ddb9931d1", size = 64896, upload_time = "2025-10-17T06:19:23.88Z" }, + { url = "https://files.pythonhosted.org/packages/d0/db/fd0f698c15d1e21d47c64181a98290665a08fcbb3940cd559e9c15bda57e/crc32c-2.8-cp313-cp313-win_amd64.whl", hash = "sha256:171ff0260d112c62abcce29332986950a57bddee514e0a2418bfde493ea06bb3", size = 66646, upload_time = "2025-10-17T06:19:24.702Z" }, + { url = "https://files.pythonhosted.org/packages/db/b9/8e5d7054fe8e7eecab10fd0c8e7ffb01439417bdb6de1d66a81c38fc4a20/crc32c-2.8-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b977a32a3708d6f51703c8557008f190aaa434d7347431efb0e86fcbe78c2a50", size = 66203, upload_time = "2025-10-17T06:19:25.872Z" }, + { url = "https://files.pythonhosted.org/packages/55/5f/cc926c70057a63cc0c98a3c8a896eb15fc7e74d3034eadd53c94917c6cc3/crc32c-2.8-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:7399b01db4adaf41da2fb36fe2408e75a8d82a179a9564ed7619412e427b26d6", size = 62956, upload_time = "2025-10-17T06:19:26.652Z" }, + { url = "https://files.pythonhosted.org/packages/a1/8a/0660c44a2dd2cb6ccbb529eb363b9280f5c766f1017bc8355ed8d695bd94/crc32c-2.8-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:4379f73f9cdad31958a673d11a332ec725ca71572401ca865867229f5f15e853", size = 61442, upload_time = "2025-10-17T06:19:27.74Z" }, + { url = "https://files.pythonhosted.org/packages/f5/5a/6108d2dfc0fe33522ce83ba07aed4b22014911b387afa228808a278e27cd/crc32c-2.8-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2e68264555fab19bab08331550dab58573e351a63ed79c869d455edd3b0aa417", size = 79109, upload_time = "2025-10-17T06:19:28.535Z" }, + { url = "https://files.pythonhosted.org/packages/84/1e/c054f9e390090c197abf3d2936f4f9effaf0c6ee14569ae03d6ddf86958a/crc32c-2.8-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b48f2486727b8d0e7ccbae4a34cb0300498433d2a9d6b49cb13cb57c2e3f19cb", size = 80987, upload_time = "2025-10-17T06:19:29.305Z" }, + { url = "https://files.pythonhosted.org/packages/c8/ad/1650e5c3341e4a485f800ea83116d72965030c5d48ccc168fcc685756e4d/crc32c-2.8-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:ecf123348934a086df8c8fde7f9f2d716d523ca0707c5a1367b8bb00d8134823", size = 79994, upload_time = "2025-10-17T06:19:30.109Z" }, + { url = "https://files.pythonhosted.org/packages/d7/3b/f2ed924b177729cbb2ab30ca2902abff653c31d48c95e7b66717a9ca9fcc/crc32c-2.8-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:e636ac60f76de538f7a2c0d0f3abf43104ee83a8f5e516f6345dc283ed1a4df7", size = 79046, upload_time = "2025-10-17T06:19:30.894Z" }, + { url = "https://files.pythonhosted.org/packages/4b/80/413b05ee6ace613208b31b3670c3135ee1cf451f0e72a9c839b4946acc04/crc32c-2.8-cp313-cp313t-win32.whl", hash = "sha256:8dd4a19505e0253892e1b2f1425cc3bd47f79ae5a04cb8800315d00aad7197f2", size = 64837, upload_time = "2025-10-17T06:19:32.03Z" }, + { url = "https://files.pythonhosted.org/packages/3b/1b/85eddb6ac5b38496c4e35c20298aae627970c88c3c624a22ab33e84f16c7/crc32c-2.8-cp313-cp313t-win_amd64.whl", hash = "sha256:4bb18e4bd98fb266596523ffc6be9c5b2387b2fa4e505ec56ca36336f49cb639", size = 66574, upload_time = "2025-10-17T06:19:33.143Z" }, + { url = "https://files.pythonhosted.org/packages/aa/df/50e9079b532ff53dbfc0e66eed781374bd455af02ed5df8b56ad538de4ff/crc32c-2.8-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:3a3b2e4bcf7b3ee333050e7d3ff38e2ba46ea205f1d73d8949b248aaffe937ac", size = 66399, upload_time = "2025-10-17T06:19:34.279Z" }, + { url = "https://files.pythonhosted.org/packages/5a/2e/67e3b0bc3d30e46ea5d16365cc81203286387671e22f2307eb41f19abb9c/crc32c-2.8-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:445e559e66dff16be54f8a4ef95aa6b01db799a639956d995c5498ba513fccc2", size = 63044, upload_time = "2025-10-17T06:19:35.062Z" }, + { url = "https://files.pythonhosted.org/packages/36/ea/1723b17437e4344ed8d067456382ecb1f5b535d83fdc5aaebab676c6d273/crc32c-2.8-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:bf3040919e17afa5782e01b1875d6a05f44b8f19c05f211d8b9f8a1deb8bbd9c", size = 61541, upload_time = "2025-10-17T06:19:36.204Z" }, + { url = "https://files.pythonhosted.org/packages/4c/6a/cbec8a235c5b46a01f319939b538958662159aec0ed3a74944e3a6de21f1/crc32c-2.8-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:5607ab8221e1ffd411f64aa40dbb6850cf06dd2908c9debd05d371e1acf62ff3", size = 80139, upload_time = "2025-10-17T06:19:37.351Z" }, + { url = "https://files.pythonhosted.org/packages/21/31/d096722fe74b692d6e8206c27da1ea5f6b2a12ff92c54a62a6ba2f376254/crc32c-2.8-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c7f5db4f16816926986d3c94253314920689706ae13a9bf4888b47336c6735ce", size = 81736, upload_time = "2025-10-17T06:19:38.16Z" }, + { url = "https://files.pythonhosted.org/packages/f6/a2/f75ef716ff7e3c22f385ba6ef30c5de80c19a21ebe699dc90824a1903275/crc32c-2.8-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:70b0153c4d418b673309d3529334d117e1074c4a3b2d7f676e430d72c14de67b", size = 80795, upload_time = "2025-10-17T06:19:38.948Z" }, + { url = "https://files.pythonhosted.org/packages/d8/94/6d647a12d96ab087d9b8eacee3da073f981987827d57c7072f89ffc7b6cd/crc32c-2.8-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5c8933531442042438753755a5c8a9034e4d88b01da9eb796f7e151b31a7256c", size = 80042, upload_time = "2025-10-17T06:19:39.725Z" }, + { url = "https://files.pythonhosted.org/packages/cd/dc/32b8896b40a0afee7a3c040536d0da5a73e68df2be9fadd21770fd158e16/crc32c-2.8-cp314-cp314-win32.whl", hash = "sha256:cdc83a3fe6c4e5df9457294cfd643de7d95bd4e9382c1dd6ed1e0f0f9169172c", size = 64914, upload_time = "2025-10-17T06:19:40.527Z" }, + { url = "https://files.pythonhosted.org/packages/f2/b4/4308b27d307e8ecaf8dd1dcc63bbb0e47ae1826d93faa3e62d1ee00ee2d5/crc32c-2.8-cp314-cp314-win_amd64.whl", hash = "sha256:509e10035106df66770fe24b9eb8d9e32b6fb967df17744402fb67772d8b2bc7", size = 66723, upload_time = "2025-10-17T06:19:42.449Z" }, + { url = "https://files.pythonhosted.org/packages/90/d5/a19d2489fa997a143bfbbf971a5c9a43f8b1ba9e775b1fb362d8fb15260c/crc32c-2.8-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:864359a39777a07b09b28eb31337c0cc603d5c1bf0fc328c3af736a8da624ec0", size = 66201, upload_time = "2025-10-17T06:19:43.273Z" }, + { url = "https://files.pythonhosted.org/packages/98/c2/5f82f22d2c1242cb6f6fe92aa9a42991ebea86de994b8f9974d9c1d128e2/crc32c-2.8-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:14511d7cfc5d9f5e1a6c6b64caa6225c2bdc1ed00d725e9a374a3e84073ce180", size = 62956, upload_time = "2025-10-17T06:19:44.099Z" }, + { url = "https://files.pythonhosted.org/packages/9b/61/3d43d33489cf974fb78bfb3500845770e139ae6d1d83473b660bd8f79a6c/crc32c-2.8-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:918b7999b52b5dcbcea34081e9a02d46917d571921a3f209956a9a429b2e06e5", size = 61443, upload_time = "2025-10-17T06:19:44.89Z" }, + { url = "https://files.pythonhosted.org/packages/52/6d/f306ce64a352a3002f76b0fc88a1373f4541f9d34fad3668688610bab14b/crc32c-2.8-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:cc445da03fc012a5a03b71da1df1b40139729e6a5571fd4215ab40bfb39689c7", size = 79106, upload_time = "2025-10-17T06:19:45.688Z" }, + { url = "https://files.pythonhosted.org/packages/a5/b7/1f74965dd7ea762954a69d172dfb3a706049c84ffa45d31401d010a4a126/crc32c-2.8-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1e3dde2ec59a8a830511d72a086ead95c0b0b7f0d418f93ea106244c5e77e350", size = 80983, upload_time = "2025-10-17T06:19:46.792Z" }, + { url = "https://files.pythonhosted.org/packages/1b/50/af93f0d91ccd61833ce77374ebfbd16f5805f5c17d18c6470976d9866d76/crc32c-2.8-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:61d51681a08b6a2a2e771b7f0cd1947fb87cb28f38ed55a01cb7c40b2ac4cdd8", size = 80009, upload_time = "2025-10-17T06:19:47.619Z" }, + { url = "https://files.pythonhosted.org/packages/ee/fa/94f394beb68a88258af694dab2f1284f55a406b615d7900bdd6235283bc4/crc32c-2.8-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:67c0716c3b1a02d5235be649487b637eed21f2d070f2b3f63f709dcd2fefb4c7", size = 79066, upload_time = "2025-10-17T06:19:48.409Z" }, + { url = "https://files.pythonhosted.org/packages/91/c6/a6050e0c64fd73c67a97da96cb59f08b05111e00b958fb87ecdce99f17ac/crc32c-2.8-cp314-cp314t-win32.whl", hash = "sha256:2e8fe863fbbd8bdb6b414a2090f1b0f52106e76e9a9c96a413495dbe5ebe492a", size = 64869, upload_time = "2025-10-17T06:19:49.197Z" }, + { url = "https://files.pythonhosted.org/packages/08/1f/c7735034e401cb1ea14f996a224518e3a3fa9987cb13680e707328a7d779/crc32c-2.8-cp314-cp314t-win_amd64.whl", hash = "sha256:20a9cfb897693eb6da19e52e2a7be2026fd4d9fc8ae318f086c0d71d5dd2d8e0", size = 66633, upload_time = "2025-10-17T06:19:50.003Z" }, ] [[package]] @@ -385,36 +399,66 @@ wheels = [ [[package]] name = "fastmcp" -version = "3.2.4" +version = "3.4.5" source = { registry = "https://pypi.org/simple" } dependencies = [ + { name = "fastmcp-slim", extra = ["client", "server"] }, +] +sdist = { url = "https://files.pythonhosted.org/packages/23/14/c1ffb91b7d1fece86c81e1f9df5474f30fd97e4cdaa398814bbbeee88568/fastmcp-3.4.5.tar.gz", hash = "sha256:a95f2bc876bef42e8b50f7872f24f3f2fe3b1d37408c734e8b9d9e03014b72d3", size = 28800521, upload_time = "2026-07-27T19:20:01.231Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c6/4f/73450a436c963c0382d15a882fc5d08f15aadc329194df1b54495a7c8383/fastmcp-3.4.5-py3-none-any.whl", hash = "sha256:5d3d438eb2917e63e6faf53e8cb8fe26d887ec3232f848093a4eecad7fa34861", size = 8017, upload_time = "2026-07-27T19:19:57.942Z" }, +] + +[[package]] +name = "fastmcp-slim" +version = "3.4.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "platformdirs" }, + { name = "pydantic", extra = ["email"] }, + { name = "pydantic-settings" }, + { name = "python-dotenv" }, + { name = "rich" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/81/1d/f3e271fbcd01ce01a4cf623b336d8e1305c192aa5d5e8e0223b7167462e9/fastmcp_slim-3.4.5.tar.gz", hash = "sha256:5badc3bceee61f61297eeb9494f499325f3ce1cafabf4611b31f6c3e9d7dff59", size = 591622, upload_time = "2026-07-27T19:15:19.455Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/43/3b/16d8aa8224094519f30b078138e725b8a731bf0a13f1f850e58b5f9b3cc4/fastmcp_slim-3.4.5-py3-none-any.whl", hash = "sha256:bc31217827c4999812543c83ee95ed9a47f3ed1e3fd0bd4f64371e375b748eca", size = 766478, upload_time = "2026-07-27T19:15:18.015Z" }, +] + +[package.optional-dependencies] +client = [ + { name = "authlib" }, + { name = "exceptiongroup" }, + { name = "httpx" }, + { name = "mcp" }, + { name = "opentelemetry-api" }, + { name = "py-key-value-aio", extra = ["filetree", "keyring", "memory"] }, + { name = "starlette" }, +] +server = [ { name = "authlib" }, { name = "cyclopts" }, { name = "exceptiongroup" }, { name = "griffelib" }, { name = "httpx" }, + { name = "joserfc" }, { name = "jsonref" }, { name = "jsonschema-path" }, { name = "mcp" }, { name = "openapi-pydantic" }, { name = "opentelemetry-api" }, { name = "packaging" }, - { name = "platformdirs" }, { name = "py-key-value-aio", extra = ["filetree", "keyring", "memory"] }, - { name = "pydantic", extra = ["email"] }, { name = "pyperclip" }, - { name = "python-dotenv" }, + { name = "python-multipart" }, { name = "pyyaml" }, - { name = "rich" }, + { name = "starlette" }, { name = "uncalled-for" }, { name = "uvicorn" }, { name = "watchfiles" }, { name = "websockets" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/9c/13/29544fbc6dfe45ea38046af0067311e0bad7acc7d1f2ad38bb08f2409fe2/fastmcp-3.2.4.tar.gz", hash = "sha256:083ecb75b44a4169e7fc0f632f94b781bdb0ff877c6b35b9877cbb566fd4d4d1", size = 28746127, upload_time = "2026-04-14T01:42:24.174Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/cf/76/b310d52fa0e30d39bd937eb58ec2c1f1ea1b5f519f0575e9dd9612f01deb/fastmcp-3.2.4-py3-none-any.whl", hash = "sha256:e6c9c429171041455e47ab94bb3f83c4657622a0ec28922f6940053959bd58a9", size = 728599, upload_time = "2026-04-14T01:42:26.85Z" }, -] [[package]] name = "griffelib" @@ -668,21 +712,22 @@ wheels = [ [[package]] name = "oci" -version = "2.179.0" +version = "2.182.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "certifi" }, { name = "circuitbreaker" }, { name = "crc32c" }, { name = "cryptography" }, + { name = "pyjwt" }, { name = "pyopenssl" }, { name = "python-dateutil" }, { name = "pytz" }, { name = "urllib3" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/cf/28/6f09d1fb1f1d7489b978c6dcbab7847941302f9d5ae45b1c2cdca0b42765/oci-2.179.0.tar.gz", hash = "sha256:0b276d22ddc6eabdf4f4c3d8beefbd1f9d9fc80134d739f51ee0c203f6238eba", size = 17459638, upload_time = "2026-06-16T06:20:44.175Z" } +sdist = { url = "https://files.pythonhosted.org/packages/7e/55/1316c21a03ae3f84e0b3b73f7d6f0cefbe2ebac60de0771cc15f6e7c0036/oci-2.182.1.tar.gz", hash = "sha256:9862de221f2abe9cf8319393eec58ea59c014fd9b61afaf0a3cca163e2a508b0", size = 17635695, upload_time = "2026-07-21T05:22:52.992Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f1/fe/f5885e4338c2bb9ebcb9d9b2ace058105b46630d34906c2914de12772a62/oci-2.179.0-py3-none-any.whl", hash = "sha256:8d696afb94e7a4f803c4499d172573c36ffa7e685907190d070f353969dba28e", size = 35745640, upload_time = "2026-06-16T06:20:35.828Z" }, + { url = "https://files.pythonhosted.org/packages/1b/49/b77ee6877540b07e48d6defb48fb444c3eafd7558473c70a43c7beeb0cd8/oci-2.182.1-py3-none-any.whl", hash = "sha256:0c616a6bc3bc458464bc3456469d8da63a1a2d2277e9314b41a1c4e76d5df523", size = 35985050, upload_time = "2026-07-21T05:22:42.379Z" }, ] [[package]] @@ -745,11 +790,11 @@ dev = [ [package.metadata] requires-dist = [ - { name = "fastmcp", specifier = "==3.2.4" }, + { name = "fastmcp", specifier = "==3.4.5" }, { name = "jsonschema", specifier = ">=4.25.0,<5.0.0" }, - { name = "oci", specifier = "==2.179.0" }, + { name = "oci", specifier = "==2.182.1" }, { name = "oracle-mcp-common", specifier = ">=0.1.2,<0.2.0" }, - { name = "pydantic", specifier = "==2.12.3" }, + { name = "pydantic", specifier = "==2.13.4" }, ] [package.metadata.requires-dev] @@ -833,7 +878,7 @@ wheels = [ [[package]] name = "pydantic" -version = "2.12.3" +version = "2.13.4" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "annotated-types" }, @@ -841,9 +886,9 @@ dependencies = [ { name = "typing-extensions" }, { name = "typing-inspection" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f3/1e/4f0a3233767010308f2fd6bd0814597e3f63f1dc98304a9112b8759df4ff/pydantic-2.12.3.tar.gz", hash = "sha256:1da1c82b0fc140bb0103bc1441ffe062154c8d38491189751ee00fd8ca65ce74", size = 819383, upload_time = "2025-10-17T15:04:21.222Z" } +sdist = { url = "https://files.pythonhosted.org/packages/18/a5/b60d21ac674192f8ab0ba4e9fd860690f9b4a6e51ca5df118733b487d8d6/pydantic-2.13.4.tar.gz", hash = "sha256:c40756b57adaa8b1efeeced5c196f3f3b7c435f90e84ea7f443901bec8099ef6", size = 844775, upload_time = "2026-05-06T13:43:05.343Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a1/6b/83661fa77dcefa195ad5f8cd9af3d1a7450fd57cc883ad04d65446ac2029/pydantic-2.12.3-py3-none-any.whl", hash = "sha256:6986454a854bc3bc6e5443e1369e06a3a456af9d339eda45510f517d9ea5c6bf", size = 462431, upload_time = "2025-10-17T15:04:19.346Z" }, + { url = "https://files.pythonhosted.org/packages/fd/7b/122376b1fd3c62c1ed9dc80c931ace4844b3c55407b6fb2d199377c9736f/pydantic-2.13.4-py3-none-any.whl", hash = "sha256:45a282cde31d808236fd7ea9d919b128653c8b38b393d1c4ab335c62924d9aba", size = 472262, upload_time = "2026-05-06T13:43:02.641Z" }, ] [package.optional-dependencies] @@ -853,51 +898,58 @@ email = [ [[package]] name = "pydantic-core" -version = "2.41.4" +version = "2.46.4" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/df/18/d0944e8eaaa3efd0a91b0f1fc537d3be55ad35091b6a87638211ba691964/pydantic_core-2.41.4.tar.gz", hash = "sha256:70e47929a9d4a1905a67e4b687d5946026390568a8e952b92824118063cee4d5", size = 457557, upload_time = "2025-10-14T10:23:47.909Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/13/d0/c20adabd181a029a970738dfe23710b52a31f1258f591874fcdec7359845/pydantic_core-2.41.4-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:85e050ad9e5f6fe1004eec65c914332e52f429bc0ae12d6fa2092407a462c746", size = 2105688, upload_time = "2025-10-14T10:20:54.448Z" }, - { url = "https://files.pythonhosted.org/packages/00/b6/0ce5c03cec5ae94cca220dfecddc453c077d71363b98a4bbdb3c0b22c783/pydantic_core-2.41.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e7393f1d64792763a48924ba31d1e44c2cfbc05e3b1c2c9abb4ceeadd912cced", size = 1910807, upload_time = "2025-10-14T10:20:56.115Z" }, - { url = "https://files.pythonhosted.org/packages/68/3e/800d3d02c8beb0b5c069c870cbb83799d085debf43499c897bb4b4aaff0d/pydantic_core-2.41.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94dab0940b0d1fb28bcab847adf887c66a27a40291eedf0b473be58761c9799a", size = 1956669, upload_time = "2025-10-14T10:20:57.874Z" }, - { url = "https://files.pythonhosted.org/packages/60/a4/24271cc71a17f64589be49ab8bd0751f6a0a03046c690df60989f2f95c2c/pydantic_core-2.41.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:de7c42f897e689ee6f9e93c4bec72b99ae3b32a2ade1c7e4798e690ff5246e02", size = 2051629, upload_time = "2025-10-14T10:21:00.006Z" }, - { url = "https://files.pythonhosted.org/packages/68/de/45af3ca2f175d91b96bfb62e1f2d2f1f9f3b14a734afe0bfeff079f78181/pydantic_core-2.41.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:664b3199193262277b8b3cd1e754fb07f2c6023289c815a1e1e8fb415cb247b1", size = 2224049, upload_time = "2025-10-14T10:21:01.801Z" }, - { url = "https://files.pythonhosted.org/packages/af/8f/ae4e1ff84672bf869d0a77af24fd78387850e9497753c432875066b5d622/pydantic_core-2.41.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d95b253b88f7d308b1c0b417c4624f44553ba4762816f94e6986819b9c273fb2", size = 2342409, upload_time = "2025-10-14T10:21:03.556Z" }, - { url = "https://files.pythonhosted.org/packages/18/62/273dd70b0026a085c7b74b000394e1ef95719ea579c76ea2f0cc8893736d/pydantic_core-2.41.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a1351f5bbdbbabc689727cb91649a00cb9ee7203e0a6e54e9f5ba9e22e384b84", size = 2069635, upload_time = "2025-10-14T10:21:05.385Z" }, - { url = "https://files.pythonhosted.org/packages/30/03/cf485fff699b4cdaea469bc481719d3e49f023241b4abb656f8d422189fc/pydantic_core-2.41.4-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1affa4798520b148d7182da0615d648e752de4ab1a9566b7471bc803d88a062d", size = 2194284, upload_time = "2025-10-14T10:21:07.122Z" }, - { url = "https://files.pythonhosted.org/packages/f9/7e/c8e713db32405dfd97211f2fc0a15d6bf8adb7640f3d18544c1f39526619/pydantic_core-2.41.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7b74e18052fea4aa8dea2fb7dbc23d15439695da6cbe6cfc1b694af1115df09d", size = 2137566, upload_time = "2025-10-14T10:21:08.981Z" }, - { url = "https://files.pythonhosted.org/packages/04/f7/db71fd4cdccc8b75990f79ccafbbd66757e19f6d5ee724a6252414483fb4/pydantic_core-2.41.4-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:285b643d75c0e30abda9dc1077395624f314a37e3c09ca402d4015ef5979f1a2", size = 2316809, upload_time = "2025-10-14T10:21:10.805Z" }, - { url = "https://files.pythonhosted.org/packages/76/63/a54973ddb945f1bca56742b48b144d85c9fc22f819ddeb9f861c249d5464/pydantic_core-2.41.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:f52679ff4218d713b3b33f88c89ccbf3a5c2c12ba665fb80ccc4192b4608dbab", size = 2311119, upload_time = "2025-10-14T10:21:12.583Z" }, - { url = "https://files.pythonhosted.org/packages/f8/03/5d12891e93c19218af74843a27e32b94922195ded2386f7b55382f904d2f/pydantic_core-2.41.4-cp313-cp313-win32.whl", hash = "sha256:ecde6dedd6fff127c273c76821bb754d793be1024bc33314a120f83a3c69460c", size = 1981398, upload_time = "2025-10-14T10:21:14.584Z" }, - { url = "https://files.pythonhosted.org/packages/be/d8/fd0de71f39db91135b7a26996160de71c073d8635edfce8b3c3681be0d6d/pydantic_core-2.41.4-cp313-cp313-win_amd64.whl", hash = "sha256:d081a1f3800f05409ed868ebb2d74ac39dd0c1ff6c035b5162356d76030736d4", size = 2030735, upload_time = "2025-10-14T10:21:16.432Z" }, - { url = "https://files.pythonhosted.org/packages/72/86/c99921c1cf6650023c08bfab6fe2d7057a5142628ef7ccfa9921f2dda1d5/pydantic_core-2.41.4-cp313-cp313-win_arm64.whl", hash = "sha256:f8e49c9c364a7edcbe2a310f12733aad95b022495ef2a8d653f645e5d20c1564", size = 1973209, upload_time = "2025-10-14T10:21:18.213Z" }, - { url = "https://files.pythonhosted.org/packages/36/0d/b5706cacb70a8414396efdda3d72ae0542e050b591119e458e2490baf035/pydantic_core-2.41.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:ed97fd56a561f5eb5706cebe94f1ad7c13b84d98312a05546f2ad036bafe87f4", size = 1877324, upload_time = "2025-10-14T10:21:20.363Z" }, - { url = "https://files.pythonhosted.org/packages/de/2d/cba1fa02cfdea72dfb3a9babb067c83b9dff0bbcb198368e000a6b756ea7/pydantic_core-2.41.4-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a870c307bf1ee91fc58a9a61338ff780d01bfae45922624816878dce784095d2", size = 1884515, upload_time = "2025-10-14T10:21:22.339Z" }, - { url = "https://files.pythonhosted.org/packages/07/ea/3df927c4384ed9b503c9cc2d076cf983b4f2adb0c754578dfb1245c51e46/pydantic_core-2.41.4-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d25e97bc1f5f8f7985bdc2335ef9e73843bb561eb1fa6831fdfc295c1c2061cf", size = 2042819, upload_time = "2025-10-14T10:21:26.683Z" }, - { url = "https://files.pythonhosted.org/packages/6a/ee/df8e871f07074250270a3b1b82aad4cd0026b588acd5d7d3eb2fcb1471a3/pydantic_core-2.41.4-cp313-cp313t-win_amd64.whl", hash = "sha256:d405d14bea042f166512add3091c1af40437c2e7f86988f3915fabd27b1e9cd2", size = 1995866, upload_time = "2025-10-14T10:21:28.951Z" }, - { url = "https://files.pythonhosted.org/packages/fc/de/b20f4ab954d6d399499c33ec4fafc46d9551e11dc1858fb7f5dca0748ceb/pydantic_core-2.41.4-cp313-cp313t-win_arm64.whl", hash = "sha256:19f3684868309db5263a11bace3c45d93f6f24afa2ffe75a647583df22a2ff89", size = 1970034, upload_time = "2025-10-14T10:21:30.869Z" }, - { url = "https://files.pythonhosted.org/packages/54/28/d3325da57d413b9819365546eb9a6e8b7cbd9373d9380efd5f74326143e6/pydantic_core-2.41.4-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:e9205d97ed08a82ebb9a307e92914bb30e18cdf6f6b12ca4bedadb1588a0bfe1", size = 2102022, upload_time = "2025-10-14T10:21:32.809Z" }, - { url = "https://files.pythonhosted.org/packages/9e/24/b58a1bc0d834bf1acc4361e61233ee217169a42efbdc15a60296e13ce438/pydantic_core-2.41.4-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:82df1f432b37d832709fbcc0e24394bba04a01b6ecf1ee87578145c19cde12ac", size = 1905495, upload_time = "2025-10-14T10:21:34.812Z" }, - { url = "https://files.pythonhosted.org/packages/fb/a4/71f759cc41b7043e8ecdaab81b985a9b6cad7cec077e0b92cff8b71ecf6b/pydantic_core-2.41.4-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fc3b4cc4539e055cfa39a3763c939f9d409eb40e85813257dcd761985a108554", size = 1956131, upload_time = "2025-10-14T10:21:36.924Z" }, - { url = "https://files.pythonhosted.org/packages/b0/64/1e79ac7aa51f1eec7c4cda8cbe456d5d09f05fdd68b32776d72168d54275/pydantic_core-2.41.4-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b1eb1754fce47c63d2ff57fdb88c351a6c0150995890088b33767a10218eaa4e", size = 2052236, upload_time = "2025-10-14T10:21:38.927Z" }, - { url = "https://files.pythonhosted.org/packages/e9/e3/a3ffc363bd4287b80f1d43dc1c28ba64831f8dfc237d6fec8f2661138d48/pydantic_core-2.41.4-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e6ab5ab30ef325b443f379ddb575a34969c333004fca5a1daa0133a6ffaad616", size = 2223573, upload_time = "2025-10-14T10:21:41.574Z" }, - { url = "https://files.pythonhosted.org/packages/28/27/78814089b4d2e684a9088ede3790763c64693c3d1408ddc0a248bc789126/pydantic_core-2.41.4-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:31a41030b1d9ca497634092b46481b937ff9397a86f9f51bd41c4767b6fc04af", size = 2342467, upload_time = "2025-10-14T10:21:44.018Z" }, - { url = "https://files.pythonhosted.org/packages/92/97/4de0e2a1159cb85ad737e03306717637842c88c7fd6d97973172fb183149/pydantic_core-2.41.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a44ac1738591472c3d020f61c6df1e4015180d6262ebd39bf2aeb52571b60f12", size = 2063754, upload_time = "2025-10-14T10:21:46.466Z" }, - { url = "https://files.pythonhosted.org/packages/0f/50/8cb90ce4b9efcf7ae78130afeb99fd1c86125ccdf9906ef64b9d42f37c25/pydantic_core-2.41.4-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d72f2b5e6e82ab8f94ea7d0d42f83c487dc159c5240d8f83beae684472864e2d", size = 2196754, upload_time = "2025-10-14T10:21:48.486Z" }, - { url = "https://files.pythonhosted.org/packages/34/3b/ccdc77af9cd5082723574a1cc1bcae7a6acacc829d7c0a06201f7886a109/pydantic_core-2.41.4-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:c4d1e854aaf044487d31143f541f7aafe7b482ae72a022c664b2de2e466ed0ad", size = 2137115, upload_time = "2025-10-14T10:21:50.63Z" }, - { url = "https://files.pythonhosted.org/packages/ca/ba/e7c7a02651a8f7c52dc2cff2b64a30c313e3b57c7d93703cecea76c09b71/pydantic_core-2.41.4-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:b568af94267729d76e6ee5ececda4e283d07bbb28e8148bb17adad93d025d25a", size = 2317400, upload_time = "2025-10-14T10:21:52.959Z" }, - { url = "https://files.pythonhosted.org/packages/2c/ba/6c533a4ee8aec6b812c643c49bb3bd88d3f01e3cebe451bb85512d37f00f/pydantic_core-2.41.4-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:6d55fb8b1e8929b341cc313a81a26e0d48aa3b519c1dbaadec3a6a2b4fcad025", size = 2312070, upload_time = "2025-10-14T10:21:55.419Z" }, - { url = "https://files.pythonhosted.org/packages/22/ae/f10524fcc0ab8d7f96cf9a74c880243576fd3e72bd8ce4f81e43d22bcab7/pydantic_core-2.41.4-cp314-cp314-win32.whl", hash = "sha256:5b66584e549e2e32a1398df11da2e0a7eff45d5c2d9db9d5667c5e6ac764d77e", size = 1982277, upload_time = "2025-10-14T10:21:57.474Z" }, - { url = "https://files.pythonhosted.org/packages/b4/dc/e5aa27aea1ad4638f0c3fb41132f7eb583bd7420ee63204e2d4333a3bbf9/pydantic_core-2.41.4-cp314-cp314-win_amd64.whl", hash = "sha256:557a0aab88664cc552285316809cab897716a372afaf8efdbef756f8b890e894", size = 2024608, upload_time = "2025-10-14T10:21:59.557Z" }, - { url = "https://files.pythonhosted.org/packages/3e/61/51d89cc2612bd147198e120a13f150afbf0bcb4615cddb049ab10b81b79e/pydantic_core-2.41.4-cp314-cp314-win_arm64.whl", hash = "sha256:3f1ea6f48a045745d0d9f325989d8abd3f1eaf47dd00485912d1a3a63c623a8d", size = 1967614, upload_time = "2025-10-14T10:22:01.847Z" }, - { url = "https://files.pythonhosted.org/packages/0d/c2/472f2e31b95eff099961fa050c376ab7156a81da194f9edb9f710f68787b/pydantic_core-2.41.4-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:6c1fe4c5404c448b13188dd8bd2ebc2bdd7e6727fa61ff481bcc2cca894018da", size = 1876904, upload_time = "2025-10-14T10:22:04.062Z" }, - { url = "https://files.pythonhosted.org/packages/4a/07/ea8eeb91173807ecdae4f4a5f4b150a520085b35454350fc219ba79e66a3/pydantic_core-2.41.4-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:523e7da4d43b113bf8e7b49fa4ec0c35bf4fe66b2230bfc5c13cc498f12c6c3e", size = 1882538, upload_time = "2025-10-14T10:22:06.39Z" }, - { url = "https://files.pythonhosted.org/packages/1e/29/b53a9ca6cd366bfc928823679c6a76c7a4c69f8201c0ba7903ad18ebae2f/pydantic_core-2.41.4-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5729225de81fb65b70fdb1907fcf08c75d498f4a6f15af005aabb1fdadc19dfa", size = 2041183, upload_time = "2025-10-14T10:22:08.812Z" }, - { url = "https://files.pythonhosted.org/packages/c7/3d/f8c1a371ceebcaf94d6dd2d77c6cf4b1c078e13a5837aee83f760b4f7cfd/pydantic_core-2.41.4-cp314-cp314t-win_amd64.whl", hash = "sha256:de2cfbb09e88f0f795fd90cf955858fc2c691df65b1f21f0aa00b99f3fbc661d", size = 1993542, upload_time = "2025-10-14T10:22:11.332Z" }, - { url = "https://files.pythonhosted.org/packages/8a/ac/9fc61b4f9d079482a290afe8d206b8f490e9fd32d4fc03ed4fc698214e01/pydantic_core-2.41.4-cp314-cp314t-win_arm64.whl", hash = "sha256:d34f950ae05a83e0ede899c595f312ca976023ea1db100cd5aa188f7005e3ab0", size = 1973897, upload_time = "2025-10-14T10:22:13.444Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/9d/56/921726b776ace8d8f5db44c4ef961006580d91dc52b803c489fafd1aa249/pydantic_core-2.46.4.tar.gz", hash = "sha256:62f875393d7f270851f20523dd2e29f082bcc82292d66db2b64ea71f64b6e1c1", size = 471464, upload_time = "2026-05-06T13:37:06.98Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/51/a2/5d30b469c5267a17b39dec53208222f76a8d351dfac4af661888c5aee77d/pydantic_core-2.46.4-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:5d5902252db0d3cedf8d4a1bc68f70eeb430f7e4c7104c8c476753519b423008", size = 2106306, upload_time = "2026-05-06T13:37:48.029Z" }, + { url = "https://files.pythonhosted.org/packages/c1/81/4fa520eaffa8bd7d1525e644cd6d39e7d60b1592bc5b516693c7340b50f1/pydantic_core-2.46.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c94f0688e7b8d0a67abf40e57a7eaaecd17cc9586706a31b76c031f63df052b4", size = 1951906, upload_time = "2026-05-06T13:37:17.012Z" }, + { url = "https://files.pythonhosted.org/packages/03/d5/fd02da45b659668b05923b17ba3a0100a0a3d5541e3bd8fcc4ecb711309e/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f027324c56cd5406ca49c124b0db10e56c69064fec039acc571c29020cc87c76", size = 1976802, upload_time = "2026-05-06T13:37:35.113Z" }, + { url = "https://files.pythonhosted.org/packages/21/f2/95727e1368be3d3ed485eaab7adbd7dda408f33f7a36e8b48e0144002b91/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e739fee756ba1010f8bcccb534252e85a35fe45ae92c295a06059ce58b74ccd3", size = 2052446, upload_time = "2026-05-06T13:37:12.313Z" }, + { url = "https://files.pythonhosted.org/packages/9c/86/5d99feea3f77c7234b8718075b23db11532773c1a0dbd9b9490215dc2eeb/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9d56801be94b86a9da183e5f3766e6310752b99ff647e38b09a9500d88e46e76", size = 2232757, upload_time = "2026-05-06T13:39:01.149Z" }, + { url = "https://files.pythonhosted.org/packages/d2/3a/508ac615935ef7588cf6d9e9b91309fdc2da751af865e02a9098de88258c/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2412e734dcb48da14d4e4006b82b46b74f2518b8a26ee7e58c6844a6cd6d03c4", size = 2309275, upload_time = "2026-05-06T13:37:41.406Z" }, + { url = "https://files.pythonhosted.org/packages/07/f8/41db9de19d7987d6b04715a02b3b40aea467000275d9d758ffaa31af7d50/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9551187363ffc0de2a00b2e47c25aeaeb1020b69b668762966df15fc5659dd5a", size = 2094467, upload_time = "2026-05-06T13:39:18.847Z" }, + { url = "https://files.pythonhosted.org/packages/2c/e2/f35033184cb11d0052daf4416e8e10a502ea2ac006fc4f459aee872727d1/pydantic_core-2.46.4-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:0186750b482eefa11d7f435892b09c5c606193ef3375bcf94aa00ae6bfb66262", size = 2134417, upload_time = "2026-05-06T13:40:17.944Z" }, + { url = "https://files.pythonhosted.org/packages/7e/7b/6ceeb1cc90e193862f444ebe373d8fdf613f0a82572dde03fb10734c6c71/pydantic_core-2.46.4-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5855698a4856556d86e8e6cd8434bc3ac0314ee8e12089ae0e143f64c6256e4e", size = 2179782, upload_time = "2026-05-06T13:40:32.618Z" }, + { url = "https://files.pythonhosted.org/packages/5a/f2/c8d7773ede6af08036423a00ae0ceffce266c3c52a096c435d68c896083f/pydantic_core-2.46.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:cbaf13819775b7f769bf4a1f066cb6df7a28d4480081a589828ef190226881cd", size = 2188782, upload_time = "2026-05-06T13:36:51.018Z" }, + { url = "https://files.pythonhosted.org/packages/59/31/0c864784e31f09f05cdd87606f08923b9c9e7f6e51dd27f20f62f975ce9f/pydantic_core-2.46.4-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:633147d34cf4550417f12e2b1a0383973bdf5cdfde212cb09e9a581cf10820be", size = 2328334, upload_time = "2026-05-06T13:40:37.764Z" }, + { url = "https://files.pythonhosted.org/packages/c2/eb/4f6c8a41efa30baa755590f4141abf3a8c370fab610915733e74134a7270/pydantic_core-2.46.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:82cf5301172168103724d49a1444d3378cb20cdee30b116a1bd6031236298a5d", size = 2372986, upload_time = "2026-05-06T13:39:34.152Z" }, + { url = "https://files.pythonhosted.org/packages/5b/24/b375a480d53113860c299764bfe9f349a3dc9108b3adc0d7f0d786492ebf/pydantic_core-2.46.4-cp313-cp313-win32.whl", hash = "sha256:9fa8ae11da9e2b3126c6426f147e0fba88d96d65921799bb30c6abd1cb2c97fb", size = 1973693, upload_time = "2026-05-06T13:37:55.072Z" }, + { url = "https://files.pythonhosted.org/packages/7e/e8/cff247591966f2d22ec8c003cd7587e27b7ba7b81ab2fb888e3ab75dc285/pydantic_core-2.46.4-cp313-cp313-win_amd64.whl", hash = "sha256:6b3ace8194b0e5204818c92802dcdca7fc6d88aabbb799d7c795540d9cd6d292", size = 2071819, upload_time = "2026-05-06T13:38:49.139Z" }, + { url = "https://files.pythonhosted.org/packages/c6/1a/f4aee670d5670e9e148e0c82c7db98d780be566c6e6a97ee8035528ca0b3/pydantic_core-2.46.4-cp313-cp313-win_arm64.whl", hash = "sha256:184c081504d17f1c1066e430e117142b2c77d9448a97f7b65c6ac9fd9aee238d", size = 2027411, upload_time = "2026-05-06T13:40:45.796Z" }, + { url = "https://files.pythonhosted.org/packages/8d/74/228a26ddad29c6672b805d9fd78e8d251cd04004fa7eed0e622096cd0250/pydantic_core-2.46.4-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:428e04521a40150c85216fc8b85e8d39fece235a9cf5e383761238c7fa9b96fb", size = 2102079, upload_time = "2026-05-06T13:38:41.019Z" }, + { url = "https://files.pythonhosted.org/packages/ad/1f/8970b150a4b4365623ae00fc88603491f763c627311ae8031e3111356d6e/pydantic_core-2.46.4-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:23ace664830ee0bfe014a0c7bc248b1f7f25ed7ad103852c317624a1083af462", size = 1952179, upload_time = "2026-05-06T13:36:59.812Z" }, + { url = "https://files.pythonhosted.org/packages/95/30/5211a831ae054928054b2f79731661087a2bc5c01e825c672b3a4a8f1b3e/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce5c1d2a8b27468f433ca974829c44060b8097eedc39933e3c206a90ee49c4a9", size = 1978926, upload_time = "2026-05-06T13:37:39.933Z" }, + { url = "https://files.pythonhosted.org/packages/57/e9/689668733b1eb67adeef047db3c2e8788fcf65a7fd9c9e2b46b7744fe245/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7283d57845ecf5a163403eb0702dfc220cc4fbdd18919cb5ccea4f95ee1cdab4", size = 2046785, upload_time = "2026-05-06T13:38:01.995Z" }, + { url = "https://files.pythonhosted.org/packages/60/d9/6715260422ff50a2109878fd24d948a6c3446bb2664f34ee78cd972b3acd/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8daafc69c93ee8a0204506a3b6b30f586ef54028f52aeeeb5c4cfc5184fd5914", size = 2228733, upload_time = "2026-05-06T13:40:50.371Z" }, + { url = "https://files.pythonhosted.org/packages/18/ae/fdb2f64316afca925640f8e70bb1a564b0ec2721c1389e25b8eb4bf9a299/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd2213145bcc2ba85884d0ac63d222fece9209678f77b9b4d76f054c561adb28", size = 2307534, upload_time = "2026-05-06T13:37:21.531Z" }, + { url = "https://files.pythonhosted.org/packages/89/1d/8eff589b45bb8190a9d12c49cfad0f176a5cbd1534908a6b5125e2886239/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a5f930472650a82629163023e630d160863fce524c616f4e5186e5de9d9a49b", size = 2099732, upload_time = "2026-05-06T13:39:31.942Z" }, + { url = "https://files.pythonhosted.org/packages/06/d5/ee5a3366637fee41dee51a1fc91562dcf12ddbc68fda34e6b253da2324bb/pydantic_core-2.46.4-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:c1b3f518abeca3aa13c712fd202306e145abf59a18b094a6bafb2d2bbf59192c", size = 2129627, upload_time = "2026-05-06T13:37:25.033Z" }, + { url = "https://files.pythonhosted.org/packages/94/33/2414be571d2c6a6c4d08be21f9292b6d3fdb08949a97b6dfe985017821db/pydantic_core-2.46.4-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1a7dd0b3ee80d90150e3495a3a13ac34dbcbfd4f012996a6a1d8900e91b5c0fb", size = 2179141, upload_time = "2026-05-06T13:37:14.046Z" }, + { url = "https://files.pythonhosted.org/packages/7b/79/7daa95be995be0eecc4cf75064cb33f9bbbfe3fe0158caf2f0d4a996a5c7/pydantic_core-2.46.4-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:3fb702cd90b0446a3a1c5e470bfa0dd23c0233b676a9099ddcc964fa6ca13898", size = 2184325, upload_time = "2026-05-06T13:36:53.615Z" }, + { url = "https://files.pythonhosted.org/packages/9f/cb/d0a382f5c0de8a222dc61c65348e0ce831b1f68e0a018450d31c2cace3a5/pydantic_core-2.46.4-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:b8458003118a712e66286df6a707db01c52c0f52f7db8e4a38f0da1d3b94fc4e", size = 2323990, upload_time = "2026-05-06T13:40:29.971Z" }, + { url = "https://files.pythonhosted.org/packages/05/db/d9ba624cc4a5aced1598e88c04fdbd8310c8a69b9d38b9a3d39ce3a61ed7/pydantic_core-2.46.4-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:372429a130e469c9cd698925ce5fc50940b7a1336b0d82038e63d5bbc4edc519", size = 2369978, upload_time = "2026-05-06T13:37:23.027Z" }, + { url = "https://files.pythonhosted.org/packages/f2/20/d15df15ba918c423461905802bfd2981c3af0bfa0e40d05e13edbfa48bc3/pydantic_core-2.46.4-cp314-cp314-win32.whl", hash = "sha256:85bb3611ff1802f3ee7fdd7dbff26b56f343fb432d57a4728fdd49b6ef35e2f4", size = 1966354, upload_time = "2026-05-06T13:38:03.499Z" }, + { url = "https://files.pythonhosted.org/packages/fc/b6/6b8de4c0a7d7ab3004c439c80c5c1e0a3e8d78bbae19379b01960383d9e5/pydantic_core-2.46.4-cp314-cp314-win_amd64.whl", hash = "sha256:811ff8e9c313ab425368bcbb36e5c4ebd7108c2bbf4e4089cfbb0b01eff63fac", size = 2072238, upload_time = "2026-05-06T13:39:40.807Z" }, + { url = "https://files.pythonhosted.org/packages/32/36/51eb763beec1f4cf59b1db243a7dcc39cbb41230f050a09b9d69faaf0a48/pydantic_core-2.46.4-cp314-cp314-win_arm64.whl", hash = "sha256:bfec22eab3c8cc2ceec0248aec886624116dc079afa027ecc8ad4a7e62010f8a", size = 2018251, upload_time = "2026-05-06T13:37:26.72Z" }, + { url = "https://files.pythonhosted.org/packages/e8/91/855af51d625b23aa987116a19e231d2aaef9c4a415273ddc189b79a45fee/pydantic_core-2.46.4-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:af8244b2bef6aaad6d92cda81372de7f8c8d36c9f0c3ea36e827c60e7d9467a0", size = 2099593, upload_time = "2026-05-06T13:39:47.682Z" }, + { url = "https://files.pythonhosted.org/packages/fb/1b/8784a54c65edb5f49f0a14d6977cf1b209bba85a4c77445b255c2de58ab3/pydantic_core-2.46.4-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5a4330cdbc57162e4b3aa303f588ba752257694c9c9be3e7ebb11b4aca659b5d", size = 1935226, upload_time = "2026-05-06T13:40:40.428Z" }, + { url = "https://files.pythonhosted.org/packages/e8/e7/1955d28d1afc56dd4b3ad7cc0cf39df1b9852964cf16e5d13912756d6d6b/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:29c61fc04a3d840155ff08e475a04809278972fe6aef51e2720554e96367e34b", size = 1974605, upload_time = "2026-05-06T13:37:32.029Z" }, + { url = "https://files.pythonhosted.org/packages/93/e2/3fedbf0ba7a22850e6e9fd78117f1c0f10f950182344d8a6c535d468fdd8/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c50f2528cf200c5eed56faf3f4e22fcd5f38c157a8b78576e6ba3168ec35f000", size = 2030777, upload_time = "2026-05-06T13:38:55.239Z" }, + { url = "https://files.pythonhosted.org/packages/f8/61/46be275fcaaba0b4f5b9669dd852267ce1ff616592dccf7a7845588df091/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0cbe8b01f948de4286c74cdd6c667aceb38f5c1e26f0693b3983d9d74887c65e", size = 2236641, upload_time = "2026-05-06T13:37:08.096Z" }, + { url = "https://files.pythonhosted.org/packages/60/db/12e93e46a8bac9988be3c016860f83293daea8c716c029c9ace279036f2f/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:617d7e2ca7dcb8c5cf6bcb8c59b8832c94b36196bbf1cbd1bfb56ed341905edd", size = 2286404, upload_time = "2026-05-06T13:40:20.221Z" }, + { url = "https://files.pythonhosted.org/packages/e2/4a/4d8b19008f38d31c53b8219cfedc2e3d5de5fe99d90076b7e767de29274f/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7027560ee92211647d0d34e3f7cd6f50da56399d26a9c8ad0da286d3869a53f3", size = 2109219, upload_time = "2026-05-06T13:38:12.153Z" }, + { url = "https://files.pythonhosted.org/packages/88/70/3cbc40978fefb7bb09c6708d40d4ad1a5d70fd7213c3d17f971de868ec1f/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:f99626688942fb746e545232e7726926f3be91b5975f8b55327665fafda991c7", size = 2110594, upload_time = "2026-05-06T13:40:02.971Z" }, + { url = "https://files.pythonhosted.org/packages/9d/20/b8d36736216e29491125531685b2f9e61aa5b4b2599893f8268551da3338/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fc3e9034a63de20e15e8ade85358bc6efc614008cab72898b4b4952bea0509ff", size = 2159542, upload_time = "2026-05-06T13:39:27.506Z" }, + { url = "https://files.pythonhosted.org/packages/1d/a2/367df868eb584dacf6bf82a389272406d7178e301c4ac82545ab98bc2dd9/pydantic_core-2.46.4-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:97e7cf2be5c77b7d1a9713a05605d49460d02c6078d38d8bef3cbe323c548424", size = 2168146, upload_time = "2026-05-06T13:38:31.93Z" }, + { url = "https://files.pythonhosted.org/packages/c1/b8/4460f77f7e201893f649a29ab355dddd3beee8a97bcb1a320db414f9a06e/pydantic_core-2.46.4-cp314-cp314t-musllinux_1_1_armv7l.whl", hash = "sha256:3bf92c5d0e00fefaab325a4d27828fe6b6e2a21848686b5b60d2d9eeb09d76c6", size = 2306309, upload_time = "2026-05-06T13:37:44.717Z" }, + { url = "https://files.pythonhosted.org/packages/64/c4/be2639293acd87dc8ddbcec41a73cee9b2ebf996fe6d892a1a74e88ad3f7/pydantic_core-2.46.4-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:3ecbc122d18468d06ca279dc26a8c2e2d5acb10943bb35e36ae92096dc3b5565", size = 2369736, upload_time = "2026-05-06T13:37:05.645Z" }, + { url = "https://files.pythonhosted.org/packages/30/a6/9f9f380dbb301f67023bf8f707aaa75daadf84f7152d95c410fd7e81d994/pydantic_core-2.46.4-cp314-cp314t-win32.whl", hash = "sha256:e846ae7835bf0703ae43f534ab79a867146dadd59dc9ca5c8b53d5c8f7c9ef02", size = 1955575, upload_time = "2026-05-06T13:38:51.116Z" }, + { url = "https://files.pythonhosted.org/packages/40/1f/f1eb9eb350e795d1af8586289746f5c5677d16043040d63710e22abc43c9/pydantic_core-2.46.4-cp314-cp314t-win_amd64.whl", hash = "sha256:2108ba5c1c1eca18030634489dc544844144ee36357f2f9f780b93e7ddbb44b5", size = 2051624, upload_time = "2026-05-06T13:38:21.672Z" }, + { url = "https://files.pythonhosted.org/packages/f6/d2/42dd53d0a85c27606f316d3aa5d2869c4e8470a5ed6dec30e4a1abe19192/pydantic_core-2.46.4-cp314-cp314t-win_arm64.whl", hash = "sha256:4fcbe087dbc2068af7eda3aa87634eba216dbda64d1ae73c8684b621d33f6596", size = 2017325, upload_time = "2026-05-06T13:40:52.723Z" }, ] [[package]] @@ -1239,14 +1291,14 @@ wheels = [ [[package]] name = "starlette" -version = "1.0.0" +version = "1.4.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anyio" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/81/69/17425771797c36cded50b7fe44e850315d039f28b15901ab44839e70b593/starlette-1.0.0.tar.gz", hash = "sha256:6a4beaf1f81bb472fd19ea9b918b50dc3a77a6f2e190a12954b25e6ed5eea149", size = 2655289, upload_time = "2026-03-22T18:29:46.779Z" } +sdist = { url = "https://files.pythonhosted.org/packages/0f/3c/76d2fd1f1357ed0f0108d8a5aa233dcf16e2946a8559c84912fe08e01ac7/starlette-1.4.1.tar.gz", hash = "sha256:b7332de6e9375593a29ba9eee1e6ecfeb3eb2043e2e19a13b4b71da73ff35540", size = 2709041, upload_time = "2026-08-05T15:17:26.23Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/0b/c9/584bc9651441b4ba60cc4d557d8a547b5aff901af35bda3a4ee30c819b82/starlette-1.0.0-py3-none-any.whl", hash = "sha256:d3ec55e0bb321692d275455ddfd3df75fff145d009685eb40dc91fc66b03d38b", size = 72651, upload_time = "2026-03-22T18:29:45.111Z" }, + { url = "https://files.pythonhosted.org/packages/75/0a/67e95f21498de41433babf7b1db0eeab449eb58872dfb831b27747a70fd0/starlette-1.4.1-py3-none-any.whl", hash = "sha256:7d078e0fbefae0d2cecfb80a799d6fb84b1c0c6acd4f14ac79d17d0e7ec27f19", size = 74019, upload_time = "2026-08-05T15:17:24.357Z" }, ] [[package]] From 4c45ff0506232f6cfdc76e0314a7b93b57fbbfc8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Luis=20Castro=20Garc=C3=ADa?= Date: Fri, 7 Aug 2026 16:08:01 -0600 Subject: [PATCH 10/23] fixed coverage --- .../tests/test_registry.py | 119 +++++++++++++++++- 1 file changed, 118 insertions(+), 1 deletion(-) diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_registry.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_registry.py index cc65272c..2ae6e39d 100644 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_registry.py +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_registry.py @@ -5,7 +5,14 @@ import pytest -from oracle.oci_oracle_db_observability_mcp_server.registry import RegistryError, _validate, client_class, load_registry +from oracle.oci_oracle_db_observability_mcp_server.registry import ( + RegistryError, + _read_json, + _validate, + _validate_strict_schema, + client_class, + load_registry, +) from oracle.oci_oracle_db_observability_mcp_server.registry import to_jsonable from oracle.oci_oracle_db_observability_mcp_server.sdk_schema import ( _enum_from_description, @@ -18,6 +25,43 @@ ) +class _SimpleModel: + swagger_types = {"name": "str", "counts": "list[int]", "labels": "dict(str, bool)"} + attribute_map = {"name": "name", "counts": "counts", "labels": "labels"} + + @property + def name(self): + """**[Required]** A name.""" + + +class _PolymorphicModel: + swagger_types = {"target": "str"} + attribute_map = {"target": "target"} + + @staticmethod + def get_subtype(object_dictionary): + type = object_dictionary["target"] + if type == "INDIVIDUAL": + return "_IndividualModel" + if type == "GROUP": + return "_GroupModel" + return "_PolymorphicModel" + + +class _IndividualModel(_PolymorphicModel): + swagger_types = {"target": "str", "identifier": "str"} + attribute_map = {"target": "target", "identifier": "identifier"} + + @property + def identifier(self): + """**[Required]** An identifier.""" + + +class _GroupModel(_PolymorphicModel): + swagger_types = {"target": "str", "identifiers": "list[str]"} + attribute_map = {"target": "target", "identifiers": "identifiers"} + + def test_packaged_registry_has_expected_shape() -> None: registry = load_registry() @@ -105,6 +149,31 @@ def test_registry_rejects_open_objects_and_untyped_arrays(mutation, error) -> No _validate([{"name": "skill", "tools": [tool["name"]]}], [tool]) +@pytest.mark.parametrize( + ("schema", "error"), + [ + ({"oneOf": []}, "invalid oneOf"), + ({"oneOf": ["not-a-schema"]}, "invalid oneOf variant"), + ({"type": "array"}, "untyped array"), + ({"type": "object", "additionalProperties": False}, "invalid object properties"), + ({"type": "object", "properties": {"value": "not-a-schema"}, "additionalProperties": False}, "invalid property schema"), + ({"type": "object", "properties": {}, "additionalProperties": "invalid"}, "invalid additionalProperties"), + ], +) +def test_registry_rejects_invalid_strict_schema_shapes(schema, error) -> None: + with pytest.raises(RegistryError, match=error): + _validate_strict_schema(schema) + + +def test_registry_accepts_typed_map_schema_and_reports_bad_bindings() -> None: + _validate_strict_schema({"type": "object", "additionalProperties": {"type": "string"}}) + + with pytest.raises(RegistryError, match="Unsupported SDK client binding"): + client_class("missing", "client") + with pytest.raises(RegistryError, match="Unable to load registry file"): + _read_json("missing.json") + + def test_sdk_schema_helpers_reject_unresolvable_contracts() -> None: def no_expected_kwargs(self, **kwargs): return kwargs @@ -126,3 +195,51 @@ def mismatched_docs(self, **kwargs): schema_for_type("MissingModel", SimpleNamespace()) with pytest.raises(ValueError, match="documentation and expected_kwargs differ"): schema_for_operation(mismatched_docs, SimpleNamespace()) + + +def test_sdk_schema_helpers_build_strict_model_and_polymorphic_contracts() -> None: + models = SimpleNamespace( + _SimpleModel=_SimpleModel, + _PolymorphicModel=_PolymorphicModel, + _IndividualModel=_IndividualModel, + _GroupModel=_GroupModel, + ) + + assert schema_for_type("str", models, 'Allowed values are: "A" "B"') == {"type": "string", "enum": ["A", "B"]} + assert schema_for_type("list[datetime]", models) == { + "type": "array", + "items": {"type": "string", "format": "date-time"}, + } + assert schema_for_type("dict(str, list[bool])", models) == { + "type": "object", + "additionalProperties": {"type": "array", "items": {"type": "boolean"}}, + } + assert schema_for_type("_SimpleModel", models) == { + "type": "object", + "properties": { + "name": {"type": "string"}, + "counts": {"type": "array", "items": {"type": "integer"}}, + "labels": {"type": "object", "additionalProperties": {"type": "boolean"}}, + }, + "additionalProperties": False, + "required": ["name"], + } + assert schema_for_type("_PolymorphicModel", models) == { + "oneOf": [ + { + "type": "object", + "properties": {"target": {"type": "string", "enum": ["INDIVIDUAL"]}, "identifier": {"type": "string"}}, + "additionalProperties": False, + "required": ["identifier", "target"], + }, + { + "type": "object", + "properties": { + "target": {"type": "string", "enum": ["GROUP"]}, + "identifiers": {"type": "array", "items": {"type": "string"}}, + }, + "additionalProperties": False, + "required": ["target"], + }, + ] + } From 795876324aad96fc6c0fa9733ff2bb087e5437c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Luis=20Castro=20Garc=C3=ADa?= Date: Fri, 14 Aug 2026 16:50:07 -0600 Subject: [PATCH 11/23] resolved PR comments MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: José Luis Castro García --- .../CHANGELOG.md | 3 + .../README.md | 16 +++-- .../mcp.py | 58 ++++++++++++------- .../metadata/skills.json | 18 +++--- .../metadata/tools.json | 20 ++++++- .../registry.py | 8 ++- .../runtime.py | 8 ++- .../sdk_schema.py | 8 ++- .../server.py | 8 ++- .../tests/__init__.py | 8 ++- .../tests/test_mcp_surface.py | 6 ++ .../tests/test_registry.py | 6 ++ .../tests/test_runtime.py | 6 ++ .../tests/test_server.py | 6 ++ 14 files changed, 136 insertions(+), 43 deletions(-) diff --git a/src/oci-oracle-db-observability-mcp-server/CHANGELOG.md b/src/oci-oracle-db-observability-mcp-server/CHANGELOG.md index c651752d..cba0d16f 100644 --- a/src/oci-oracle-db-observability-mcp-server/CHANGELOG.md +++ b/src/oci-oracle-db-observability-mcp-server/CHANGELOG.md @@ -30,3 +30,6 @@ - Distribution: `oracle.oci-db-observability-mcp-server`. - Console entry point: `oracle.oci-db-observability-mcp-server`. - Python package: `oracle.oci_oracle_db_observability_mcp_server`. +- Discovery guidance permits reuse of applicable skill, tool, and schema + information from earlier calls instead of requiring the full workflow for + every invocation. diff --git a/src/oci-oracle-db-observability-mcp-server/README.md b/src/oci-oracle-db-observability-mcp-server/README.md index 573b246d..173eb75d 100644 --- a/src/oci-oracle-db-observability-mcp-server/README.md +++ b/src/oci-oracle-db-observability-mcp-server/README.md @@ -43,11 +43,17 @@ without `root_compartment_id`. ## Discovery workflow -1. Call `list_oci_compartments` or `get_oci_compartment` to resolve OCI scope. -2. Call `list_dbo_skills` and select the smallest relevant skill set. -3. Call `list_dbo_tools` for those skills to list candidate operations. -4. Call `describe_dbo_tool` for the chosen operation. -5. Call `invoke_dbo_tool` with arguments matching the returned schema. +1. If the user provides a compartment name instead of an OCID, call + `list_oci_compartments` with `name` set to that value. Use the returned + item's `id` as `compartment_id` in subsequent operations. If the user + provides an OCID, call `get_oci_compartment` to validate it when needed. +2. Call `list_dbo_skills` when the relevant capability is not already known. +3. Call `list_dbo_tools` for selected skills when the required operation is not + already known. +4. Call `describe_dbo_tool` when the selected tool's schema is unavailable, + outdated, or uncertain. Previously retrieved applicable results may be + reused. +5. Call `invoke_dbo_tool` with arguments matching the known schema. The complete skill and tool catalogs are packaged as JSON under `oracle/oci_oracle_db_observability_mcp_server/metadata`. Skills organize diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/mcp.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/mcp.py index 7749b48b..6549ea2a 100644 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/mcp.py +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/mcp.py @@ -1,3 +1,9 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. +""" + from __future__ import annotations from typing import Any from fastmcp import FastMCP @@ -9,23 +15,27 @@ registry = load_registry() mcp = FastMCP( name="oracle.oci-db-observability-mcp-server", - instructions="Resolve OCI scope with `list_oci_compartments` or `get_oci_compartment`. Use `list_dbo_skills` to discover " - "the smallest relevant Oracle Database Observability capability for the user's goal, then `list_dbo_tools` " - "to list candidate operations. Before execution, call `describe_dbo_tool` to get the exact contract, then " - "`invoke_dbo_tool` with arguments that match the returned input schema exactly." + instructions="Resolve an OCI compartment name to its OCID with `list_oci_compartments`, or validate an already known " + "OCID with `get_oci_compartment`, when scope is not already known. Pass the resolved compartment OCID " + "to subsequent Database Observability operations. " + "Use `list_dbo_skills` and `list_dbo_tools` when the relevant capability or operation is not already known. " + "Use `describe_dbo_tool` to inspect or confirm a tool's exact contract when its schema is unavailable, " + "outdated, or uncertain. Reuse information from earlier discovery calls when it remains applicable, then " + "call `invoke_dbo_tool` with arguments that match the known input schema exactly." ) @mcp.tool( description=( - "Read-only OCI scope discovery. Retrieve one compartment by its OCID to validate " - "the target compartment before discovering Database Observability tools or resources." + "Read-only OCI compartment resolution. Use this when the compartment OCID is already known and you want to " + "validate or inspect that exact compartment before invoking compartment-scoped Database Observability tools. " + "If the user provides a compartment name rather than an OCID, use `list_oci_compartments` first." ), annotations={"readOnlyHint": True, "destructiveHint": False, "idempotentHint": True, "openWorldHint": True}, ) def get_oci_compartment( compartment_id: str = Field( ..., - description="Required OCI compartment OCID to retrieve, for example ocid1.compartment...", + description="Required OCI compartment OCID to validate or inspect, for example ocid1.compartment...", ), ) -> Any: if not compartment_id: @@ -35,16 +45,19 @@ def get_oci_compartment( @mcp.tool( description=( - "Read-only OCI scope discovery. List accessible compartments and their OCIDs before " - "selecting a Database Observability skill or querying compartment-scoped resources." + "Read-only OCI compartment name-to-OCID resolution. Use this when the user supplies a compartment name instead " + "of an OCID. Set `name` to the requested name and use the returned item's `id` as " + "the `compartment_id` in subsequent Database Observability operations. Use `root_compartment_id` to narrow the " + "search; by default, search descendants from the authenticated tenancy. If multiple compartments share a name, " + "inspect their IDs and hierarchy before continuing." ), annotations={"readOnlyHint": True, "destructiveHint": False, "idempotentHint": True, "openWorldHint": True}, ) def list_oci_compartments( - root_compartment_id: str | None = Field(None, description="Optional root compartment OCID. Omit it to start at the authenticated tenancy."), + root_compartment_id: str | None = Field(None, description="Optional root compartment OCID that limits name resolution to this compartment and its descendants. Omit it to search from the authenticated tenancy."), include_subtree: bool = Field(True, description="When true, include all descendant compartments below the root."), access_level: str = Field("ACCESSIBLE", description="Visibility filter: ACCESSIBLE returns compartments available to the caller; ANY includes all visible states."), - name: str | None = Field(None, description="Optional exact compartment-name filter."), + name: str | None = Field(None, description="Optional exact compartment-name filter for resolving a user-provided name to one or more compartment OCIDs."), lifecycle_state: str | None = Field(None, description="Optional lifecycle-state filter, such as ACTIVE."), limit: int = Field(50, ge=1, le=1000, description="Maximum number of compartments returned in this response."), page: str | None = Field(None, description="Optional nextPage token returned by a previous call."), @@ -65,16 +78,17 @@ def list_oci_compartments( @mcp.tool( description="Entry point for Oracle Database Observability capability discovery. Returns a compact list of available " - "skills with short summaries only; does not return operation schemas. Use this to resolve the smallest " - "relevant capability for the user’s request, then call `list_dbo_tools` for executable operations." + "skills with short summaries only; does not return operation schemas. Use it when the relevant capability " + "is not already known, and reuse prior results when they remain applicable." ) def list_dbo_skills() -> dict[str, Any]: return {"skills": [{"name": s["name"], "description": s["description"], "toolCount": len(s["tools"])} for s in registry.skills]} @mcp.tool( description="Discovery endpoint for Oracle Database Observability operations within selected skills. Use it to list " - "candidate operations, then resolve a candidate with `describe_dbo_tool` before calling " - "`invoke_dbo_tool`." + "candidate operations when the required operation is not already known. Reuse prior results when they " + "remain applicable, and use `describe_dbo_tool` to inspect or confirm a schema when needed before " + "calling `invoke_dbo_tool`." ) def list_dbo_tools( skill_names: list[str] = Field( @@ -103,7 +117,8 @@ def list_dbo_tools( @mcp.tool( description="Retrieve the complete invocation contract for one Oracle Database Observability tool selected from " "`list_dbo_tools`. Returns the exact JSON input schema, required fields, and mutability metadata. " - "Must be called immediately before `invoke_dbo_tool`." + "Call it when the schema is unavailable, outdated, or uncertain; a previously retrieved applicable " + "schema may be reused." ) def describe_dbo_tool( tool_name: str = Field(..., description="Required logical tool name returned by list_dbo_tools, for example list_database_insights."), @@ -118,12 +133,13 @@ def describe_dbo_tool( } @mcp.tool( - description="Invoke one registered Oracle Database Observability operation. Must be preceded by `describe_dbo_tool`, " - "and the supplied arguments object must conform exactly to the selected tool's `inputSchema`. This is " - "the sole endpoint that executes catalog operations." + description="Invoke one registered Oracle Database Observability operation. The supplied arguments object must " + "conform exactly to the selected tool's known `inputSchema`; use `describe_dbo_tool` first when that " + "schema is unavailable, outdated, or uncertain. This is the sole endpoint that executes catalog " + "operations." ) def invoke_dbo_tool( - tool_name: str = Field(..., description="Required logical tool name returned by list_dbo_tools and described with describe_dbo_tool."), - arguments: dict[str, Any] = Field(default_factory=dict, description="Required JSON object of SDK arguments matching the exact inputSchema from describe_dbo_tool."), + tool_name: str = Field(..., description="Required logical tool name returned by list_dbo_tools or otherwise known."), + arguments: dict[str, Any] = Field(default_factory=dict, description="Required JSON object of SDK arguments matching the exact known inputSchema."), ) -> Any: return invoke_registered_tool(registry.get_tool(tool_name), arguments) diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/metadata/skills.json b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/metadata/skills.json index 00009818..e823f141 100644 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/metadata/skills.json +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/metadata/skills.json @@ -2,7 +2,7 @@ "skills": [ { "name": "advanced-diagnostics-addm-session-control-bulk-retrieve", - "description": "ADDM execution, session cancellation, and bulk diagnostic data retrieval for managed databases.", + "description": "Read-only ADDM task inventory for managed databases.", "tools": [ "addm_tasks" ] @@ -78,7 +78,7 @@ }, { "name": "cloud-exadata-storage", - "description": "Read-only checks for Cloud Exadata storage connectors, servers, grids, IORM plans, and open alerts.", + "description": "Read-only inventory and inspection of Cloud Exadata storage connectors, servers, grids, IORM plans, and open alerts.", "tools": [ "get_cloud_exadata_storage_connector", "get_cloud_exadata_storage_grid", @@ -91,7 +91,7 @@ }, { "name": "cloud-inventory-discovery-connectivity", - "description": "Read-only cloud inventory, discovery, and connector connectivity checks for Cloud DB systems.", + "description": "Read-only Cloud DB system inventory and discovery, including connector metadata and availability metrics.", "tools": [ "get_cloud_db_system", "get_cloud_db_system_discovery", @@ -105,7 +105,7 @@ }, { "name": "credentials-and-authentication-preferred-named", - "description": "Read-only and test workflows for named credentials and preferred credential mappings in OCI DBM.", + "description": "Read-only named credential and preferred credential inventory and mapping inspection in OCI DBM.", "tools": [ "get_named_credential", "get_preferred_credential", @@ -260,7 +260,7 @@ }, { "name": "external-exadata-storage", - "description": "Read-only and connector-management workflows for external Exadata storage resources in OCI Database Management.", + "description": "Read-only inventory and inspection of external Exadata storage connectors, servers, grids, IORM plans, alerts, and top SQL CPU activity.", "tools": [ "get_external_exadata_storage_connector", "get_external_exadata_storage_grid", @@ -274,7 +274,7 @@ }, { "name": "external-inventory-discovery-connectivity", - "description": "Discovery, inventory, lookup, and connector-connectivity workflows for external DB systems in OCI Database Management.", + "description": "Read-only discovery, inventory, and connector inspection for external DB systems in OCI Database Management.", "tools": [ "get_external_db_home", "get_external_db_system", @@ -334,7 +334,7 @@ }, { "name": "job-orchestration-and-execution-tracking", - "description": "Job definition, run tracking, execution tracking, and status summary workflows in OCI Database Management.", + "description": "Read-only job, run, and execution inventory with status summaries in OCI Database Management.", "tools": [ "get_job", "get_job_execution", @@ -357,7 +357,7 @@ }, { "name": "managed-database-groups-organize-and-target-sets-of-databases", - "description": "Managed database group lifecycle and membership workflows in OCI Database Management.", + "description": "Read-only managed database group inventory and detail inspection in OCI Database Management.", "tools": [ "get_managed_database_group", "list_managed_database_groups" @@ -392,7 +392,7 @@ }, { "name": "opsi-configurations-and-datastores", - "description": "Manage and inspect Operations Insights configuration resources and datastores, including datastore encryption-key history, for administrative lifecycle governance.", + "description": "Read-only Operations Insights configuration inventory and detail inspection.", "tools": [ "get_opsi_configuration", "list_opsi_configurations" diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/metadata/tools.json b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/metadata/tools.json index eccc893c..9c74f593 100644 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/metadata/tools.json +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/metadata/tools.json @@ -1070,11 +1070,11 @@ }, "compare_baseline_time": { "type": "string", - "description": "The baseline time for metrics comparison." + "description": "The baseline time for metrics comparison. Use UTC ISO 8601 format with milliseconds: YYYY-MM-DDThh:mm:ss.SSSZ." }, "compare_target_time": { "type": "string", - "description": "The target time for metrics comparison." + "description": "The target time for metrics comparison. Use UTC ISO 8601 format with milliseconds: YYYY-MM-DDThh:mm:ss.SSSZ." }, "compare_type": { "type": "string", @@ -1107,7 +1107,21 @@ }, "filter_by_metric_names": { "type": "string", - "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." + "enum": [ + "CPUTime", + "DBTime", + "CpuCount", + "IOPS", + "IOThroughput", + "MemoryUsage", + "StorageAllocated", + "StorageUsed", + "MonitoringStatus", + "WaitTime", + "CpuUtilization", + "StorageUtilization" + ], + "description": "The filter used to retrieve a specific metric. Allowed values are CPUTime, DBTime, CpuCount, IOPS, IOThroughput, MemoryUsage, StorageAllocated, StorageUsed, MonitoringStatus, WaitTime, CpuUtilization, and StorageUtilization. Omit this parameter to return all supported metrics." }, "limit": { "type": "integer", diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/registry.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/registry.py index 78c08705..6040ec1d 100644 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/registry.py +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/registry.py @@ -1,4 +1,10 @@ -"""Immutable JSON registry for the unified Database Observability server.""" +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. + +Immutable JSON registry for the unified Database Observability server. +""" from __future__ import annotations diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/runtime.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/runtime.py index d137aca9..9362b6e8 100644 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/runtime.py +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/runtime.py @@ -1,4 +1,10 @@ -"""Single allowlisted OCI Python SDK dispatcher.""" +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. + +Single allowlisted OCI Python SDK dispatcher. +""" from __future__ import annotations import inspect diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/sdk_schema.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/sdk_schema.py index f8bd0b39..940c526c 100644 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/sdk_schema.py +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/sdk_schema.py @@ -1,4 +1,10 @@ -"""Derive strict JSON Schema contracts from the locked OCI Python SDK.""" +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. + +Derive strict JSON Schema contracts from the locked OCI Python SDK. +""" from __future__ import annotations import inspect diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/server.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/server.py index d15dba8a..ec2a30aa 100644 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/server.py +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/server.py @@ -1,4 +1,10 @@ -"""Unified DBO MCP process entry point.""" +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. + +Unified DBO MCP process entry point. +""" from __future__ import annotations import os diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/__init__.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/__init__.py index a2e95173..6cdf18b1 100644 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/__init__.py +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/__init__.py @@ -1 +1,7 @@ -"""Unified DBO MCP tests.""" +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. + +Unified DBO MCP tests. +""" diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_mcp_surface.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_mcp_surface.py index aead4343..a7af892a 100644 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_mcp_surface.py +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_mcp_surface.py @@ -1,3 +1,9 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. +""" + from __future__ import annotations import re diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_registry.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_registry.py index 2ae6e39d..ac73e3d2 100644 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_registry.py +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_registry.py @@ -1,3 +1,9 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. +""" + from __future__ import annotations import json diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_runtime.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_runtime.py index 256abc3b..50b4b05f 100644 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_runtime.py +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_runtime.py @@ -1,3 +1,9 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. +""" + from __future__ import annotations from types import SimpleNamespace diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_server.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_server.py index adabb156..17204a51 100644 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_server.py +++ b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_server.py @@ -1,3 +1,9 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. +""" + from __future__ import annotations from types import SimpleNamespace From 23df4be0ba03d6053c3873747ae35bf1a511cf8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Luis=20Castro=20Garc=C3=ADa?= Date: Mon, 17 Aug 2026 13:54:35 -0600 Subject: [PATCH 12/23] updated mcp name --- .../CHANGELOG.md | 35 + .../LICENSE.txt | 35 + src/oci-db-observability-mcp-server/README.md | 105 + .../oracle/__init__.py | 5 + .../__init__.py | 8 + .../oci_db_observability_mcp_server/mcp.py | 145 + .../metadata/manifest.json | 6 + .../metadata/skills.json | 437 + .../metadata/tools.json | 16302 ++++++++++++++++ .../registry.py | 171 + .../runtime.py | 155 + .../sdk_schema.py | 220 + .../oci_db_observability_mcp_server/server.py | 31 + .../tests/__init__.py | 7 + .../tests/test_mcp_surface.py | 113 + .../tests/test_registry.py | 251 + .../tests/test_runtime.py | 236 + .../tests/test_server.py | 38 + .../pyproject.toml | 60 + src/oci-db-observability-mcp-server/uv.lock | 1462 ++ 20 files changed, 19822 insertions(+) create mode 100644 src/oci-db-observability-mcp-server/CHANGELOG.md create mode 100644 src/oci-db-observability-mcp-server/LICENSE.txt create mode 100644 src/oci-db-observability-mcp-server/README.md create mode 100644 src/oci-db-observability-mcp-server/oracle/__init__.py create mode 100644 src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/__init__.py create mode 100644 src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/mcp.py create mode 100644 src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/manifest.json create mode 100644 src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/skills.json create mode 100644 src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/tools.json create mode 100644 src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/registry.py create mode 100644 src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/runtime.py create mode 100644 src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/sdk_schema.py create mode 100644 src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/server.py create mode 100644 src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/__init__.py create mode 100644 src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_mcp_surface.py create mode 100644 src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_registry.py create mode 100644 src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_runtime.py create mode 100644 src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_server.py create mode 100644 src/oci-db-observability-mcp-server/pyproject.toml create mode 100644 src/oci-db-observability-mcp-server/uv.lock diff --git a/src/oci-db-observability-mcp-server/CHANGELOG.md b/src/oci-db-observability-mcp-server/CHANGELOG.md new file mode 100644 index 00000000..abe11a69 --- /dev/null +++ b/src/oci-db-observability-mcp-server/CHANGELOG.md @@ -0,0 +1,35 @@ +# Changelog + +## 0.1.0 - 2026-08-05 + +### Server + +- Unified, read-only Oracle Database Observability MCP server for OCI + Operations Insights (OPSI) and Database Management (DBM). + +### Transports + +- STDIO and HTTP streaming transports. + +### Authentication + +- Configured OCI authentication through `oracle-mcp-common`, including + API-key, security-token, instance-principal, and resource-principal flows. +- OCI IAM/IDCS request-token authentication for HTTP deployments. + +### Tool surface + +- Compartment scope discovery through `get_oci_compartment` and + `list_oci_compartments`. +- Catalog discovery and dispatch through `list_dbo_skills`, `list_dbo_tools`, + `describe_dbo_tool`, and `invoke_dbo_tool`. +- 34 workflow skills and 229 read-only OPSI/DBM SDK-backed catalog operations. + +### Package and entry point + +- Distribution: `oracle.oci-db-observability-mcp-server`. +- Console entry point: `oracle.oci-db-observability-mcp-server`. +- Python package: `oracle.oci_db_observability_mcp_server`. +- Discovery guidance permits reuse of applicable skill, tool, and schema + information from earlier calls instead of requiring the full workflow for + every invocation. diff --git a/src/oci-db-observability-mcp-server/LICENSE.txt b/src/oci-db-observability-mcp-server/LICENSE.txt new file mode 100644 index 00000000..9af2dace --- /dev/null +++ b/src/oci-db-observability-mcp-server/LICENSE.txt @@ -0,0 +1,35 @@ +Universal Permissive License (UPL), Version 1.0 + +Subject to the condition set forth below, permission is hereby granted to any +person obtaining a copy of this software, associated documentation and/or data +(collectively the "Software"), free of charge and under any and all copyright +rights in the Software, and any and all patent rights owned or freely +licensable by each licensor hereunder covering either (i) the unmodified +Software as contributed to or provided by such licensor, or (ii) the Larger +Works (as defined below), to deal in both + +(a) the Software, and + +(b) any piece of software and/or hardware listed in the lrgrwrks.txt file if +one is included with the Software (each a "Larger Work" to which the Software +is contributed by such licensors), + +without restriction, including without limitation the rights to copy, create +derivative works of, display, perform, and distribute the Software and make, +use, sell, offer for sale, import, export, have made, and have sold the +Software and the Larger Work(s), and to sublicense the foregoing rights on +either these or other terms. + +This license is subject to the following condition: + +The above copyright notice and either this complete permission notice or at a +minimum a reference to the UPL must be included in all copies or substantial +portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/src/oci-db-observability-mcp-server/README.md b/src/oci-db-observability-mcp-server/README.md new file mode 100644 index 00000000..7abd0e3f --- /dev/null +++ b/src/oci-db-observability-mcp-server/README.md @@ -0,0 +1,105 @@ +# OCI Database Observability MCP Server + +This package provides one MCP server for OCI Operations Insights (OPSI) and OCI +Database Management (DBM). It exposes two read-only compartment discovery +tools plus four catalog discovery and invocation tools. The catalog contains +only operations with exact OCI Python SDK bindings. + +## Running + +### STDIO + +```sh +uvx oracle.oci-db-observability-mcp-server +``` + +Use a named OCI CLI profile when required: + +```sh +OCI_CONFIG_PROFILE= uvx oracle.oci-db-observability-mcp-server +``` + +### HTTP streaming + +```sh +ORACLE_MCP_HOST= \ +ORACLE_MCP_PORT= \ +ORACLE_MCP_BASE_URL= \ +OCI_REGION= \ +IDCS_DOMAIN= \ +IDCS_CLIENT_ID= \ +IDCS_CLIENT_SECRET= \ +IDCS_AUDIENCE= \ +uvx oracle.oci-db-observability-mcp-server +``` + +Register `${ORACLE_MCP_BASE_URL}/auth/callback` in the OCI IAM confidential +application. If `IDCS_REQUIRED_SCOPES` is unset, the default scope is +`oci_mcp.db_observability.invoke` together with the standard OpenID scopes. +The server uses `oracle-mcp-common` 0.1.2 or later for OCI authentication. For +HTTP token-exchange authentication, set `OCI_MCP_TENANCY_ID_OVERRIDE` when the +caller signer does not expose a tenancy and `list_oci_compartments` is called +without `root_compartment_id`. + +## Discovery workflow + +1. If the user provides a compartment name instead of an OCID, call + `list_oci_compartments` with `name` set to that value. Use the returned + item's `id` as `compartment_id` in subsequent operations. If the user + provides an OCID, call `get_oci_compartment` to validate it when needed. +2. Call `list_dbo_skills` when the relevant capability is not already known. +3. Call `list_dbo_tools` for selected skills when the required operation is not + already known. +4. Call `describe_dbo_tool` when the selected tool's schema is unavailable, + outdated, or uncertain. Previously retrieved applicable results may be + reused. +5. Call `invoke_dbo_tool` with arguments matching the known schema. + +The complete skill and tool catalogs are packaged as JSON under +`oracle/oci_db_observability_mcp_server/metadata`. Skills organize +read-only workflows such as inventory, diagnostics, performance, and fleet +analysis. Their concise descriptions are MCP discovery metadata, not MCP +resources; the detailed OEM.ai skill files are not packaged or required at +runtime. The tool catalog contains OPSI and DBM SDK bindings; it does not +expose the individual operations as MCP tools. + +## Pagination + +Paginated operations accept an optional `page` argument. Responses contain the +page data and a `nextPage` token when more results are available: + +```json +{ + "data": [], + "nextPage": "" +} +``` + +Pass the returned `nextPage` value as `page` in the next invocation. Stop when +`nextPage` is null. + +## Development + +Run the unified server tests with: + +```sh +make test project=oci-db-observability-mcp-server +``` + +Run repository lint with: + +```sh +make lint +``` + +## Third-Party APIs + +Developers choosing to distribute a binary implementation of this project are +responsible for obtaining and providing all required licenses and copyright +notices for the third-party code used. + +## License + +Copyright (c) 2026 Oracle and/or its affiliates. + +Released under the Universal Permissive License v1.0. diff --git a/src/oci-db-observability-mcp-server/oracle/__init__.py b/src/oci-db-observability-mcp-server/oracle/__init__.py new file mode 100644 index 00000000..b8f69b97 --- /dev/null +++ b/src/oci-db-observability-mcp-server/oracle/__init__.py @@ -0,0 +1,5 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. +""" diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/__init__.py b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/__init__.py new file mode 100644 index 00000000..c6cb5506 --- /dev/null +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/__init__.py @@ -0,0 +1,8 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. +""" + +__project__ = "oracle.oci-db-observability-mcp-server" +__version__ = "0.1.0" diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/mcp.py b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/mcp.py new file mode 100644 index 00000000..6549ea2a --- /dev/null +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/mcp.py @@ -0,0 +1,145 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. +""" + +from __future__ import annotations +from typing import Any +from fastmcp import FastMCP +from pydantic import Field +from .registry import load_registry, to_jsonable +from .runtime import invoke_registered_tool +from .runtime import identity_bootstrap_client, serialize_response + +registry = load_registry() +mcp = FastMCP( + name="oracle.oci-db-observability-mcp-server", + instructions="Resolve an OCI compartment name to its OCID with `list_oci_compartments`, or validate an already known " + "OCID with `get_oci_compartment`, when scope is not already known. Pass the resolved compartment OCID " + "to subsequent Database Observability operations. " + "Use `list_dbo_skills` and `list_dbo_tools` when the relevant capability or operation is not already known. " + "Use `describe_dbo_tool` to inspect or confirm a tool's exact contract when its schema is unavailable, " + "outdated, or uncertain. Reuse information from earlier discovery calls when it remains applicable, then " + "call `invoke_dbo_tool` with arguments that match the known input schema exactly." +) + +@mcp.tool( + description=( + "Read-only OCI compartment resolution. Use this when the compartment OCID is already known and you want to " + "validate or inspect that exact compartment before invoking compartment-scoped Database Observability tools. " + "If the user provides a compartment name rather than an OCID, use `list_oci_compartments` first." + ), + annotations={"readOnlyHint": True, "destructiveHint": False, "idempotentHint": True, "openWorldHint": True}, +) +def get_oci_compartment( + compartment_id: str = Field( + ..., + description="Required OCI compartment OCID to validate or inspect, for example ocid1.compartment...", + ), +) -> Any: + if not compartment_id: + raise ValueError("compartment_id is required.") + client, _ = identity_bootstrap_client() + return serialize_response(client.get_compartment(compartment_id=compartment_id)) + +@mcp.tool( + description=( + "Read-only OCI compartment name-to-OCID resolution. Use this when the user supplies a compartment name instead " + "of an OCID. Set `name` to the requested name and use the returned item's `id` as " + "the `compartment_id` in subsequent Database Observability operations. Use `root_compartment_id` to narrow the " + "search; by default, search descendants from the authenticated tenancy. If multiple compartments share a name, " + "inspect their IDs and hierarchy before continuing." + ), + annotations={"readOnlyHint": True, "destructiveHint": False, "idempotentHint": True, "openWorldHint": True}, +) +def list_oci_compartments( + root_compartment_id: str | None = Field(None, description="Optional root compartment OCID that limits name resolution to this compartment and its descendants. Omit it to search from the authenticated tenancy."), + include_subtree: bool = Field(True, description="When true, include all descendant compartments below the root."), + access_level: str = Field("ACCESSIBLE", description="Visibility filter: ACCESSIBLE returns compartments available to the caller; ANY includes all visible states."), + name: str | None = Field(None, description="Optional exact compartment-name filter for resolving a user-provided name to one or more compartment OCIDs."), + lifecycle_state: str | None = Field(None, description="Optional lifecycle-state filter, such as ACTIVE."), + limit: int = Field(50, ge=1, le=1000, description="Maximum number of compartments returned in this response."), + page: str | None = Field(None, description="Optional nextPage token returned by a previous call."), +) -> dict[str, Any]: + client, tenancy_id = identity_bootstrap_client() + response = client.list_compartments( + compartment_id=root_compartment_id or tenancy_id, + compartment_id_in_subtree=include_subtree, + access_level=access_level, + name=name, + lifecycle_state=lifecycle_state, + limit=limit, + page=page, + ) + result = serialize_response(response) + items = result["data"] + return {"items": items, "count": len(items), "nextPage": result["nextPage"]} + +@mcp.tool( + description="Entry point for Oracle Database Observability capability discovery. Returns a compact list of available " + "skills with short summaries only; does not return operation schemas. Use it when the relevant capability " + "is not already known, and reuse prior results when they remain applicable." +) +def list_dbo_skills() -> dict[str, Any]: + return {"skills": [{"name": s["name"], "description": s["description"], "toolCount": len(s["tools"])} for s in registry.skills]} + +@mcp.tool( + description="Discovery endpoint for Oracle Database Observability operations within selected skills. Use it to list " + "candidate operations when the required operation is not already known. Reuse prior results when they " + "remain applicable, and use `describe_dbo_tool` to inspect or confirm a schema when needed before " + "calling `invoke_dbo_tool`." +) +def list_dbo_tools( + skill_names: list[str] = Field( + ..., + min_length=1, + description="Required skill names returned by list_dbo_skills. Only tools belonging to these skills are listed.", + ), + limit: int = Field(50, ge=1, le=100, description="Maximum compact tool entries to return."), +) -> dict[str, Any]: + selected = set(skill_names) + tools = registry.list_tools(selected) + return { + "count": len(tools), + "tools": [ + { + "name": tool["name"], + "description": tool["description"], + "skills": list(tool["skills"]), + "mutable": tool["mutable"], + } + for tool in tools[:limit] + ], + "truncated": len(tools) > limit, + } + +@mcp.tool( + description="Retrieve the complete invocation contract for one Oracle Database Observability tool selected from " + "`list_dbo_tools`. Returns the exact JSON input schema, required fields, and mutability metadata. " + "Call it when the schema is unavailable, outdated, or uncertain; a previously retrieved applicable " + "schema may be reused." +) +def describe_dbo_tool( + tool_name: str = Field(..., description="Required logical tool name returned by list_dbo_tools, for example list_database_insights."), +) -> dict[str, Any]: + tool = registry.get_tool(tool_name) + return { + "name": tool["name"], + "description": tool["description"], + "inputSchema": to_jsonable(tool["inputSchema"]), + "mutable": tool["mutable"], + "guidance": "Pass an arguments object that exactly matches inputSchema.", + } + +@mcp.tool( + description="Invoke one registered Oracle Database Observability operation. The supplied arguments object must " + "conform exactly to the selected tool's known `inputSchema`; use `describe_dbo_tool` first when that " + "schema is unavailable, outdated, or uncertain. This is the sole endpoint that executes catalog " + "operations." +) +def invoke_dbo_tool( + tool_name: str = Field(..., description="Required logical tool name returned by list_dbo_tools or otherwise known."), + arguments: dict[str, Any] = Field(default_factory=dict, description="Required JSON object of SDK arguments matching the exact known inputSchema."), +) -> Any: + return invoke_registered_tool(registry.get_tool(tool_name), arguments) diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/manifest.json b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/manifest.json new file mode 100644 index 00000000..34004962 --- /dev/null +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/manifest.json @@ -0,0 +1,6 @@ +{ + "format": "dbo-discovery-registry", + "formatVersion": 1, + "skills": "skills.json", + "tools": "tools.json" +} diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/skills.json b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/skills.json new file mode 100644 index 00000000..e823f141 --- /dev/null +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/skills.json @@ -0,0 +1,437 @@ +{ + "skills": [ + { + "name": "advanced-diagnostics-addm-session-control-bulk-retrieve", + "description": "Read-only ADDM task inventory for managed databases.", + "tools": [ + "addm_tasks" + ] + }, + { + "name": "async-work-requests-long-running-operations", + "description": "Read-only tracking of asynchronous OCI work requests, including status, logs, and errors.", + "tools": [ + "get_work_request", + "list_work_request_errors", + "list_work_request_logs", + "list_work_requests" + ] + }, + { + "name": "awr-discovery-primitives", + "description": "Discovery primitives for AWR databases and snapshot inventories.", + "tools": [ + "list_awr_db_snapshots", + "list_awr_dbs" + ] + }, + { + "name": "awr-historical-performance-analysis", + "description": "AWR historical summarization across CPU, waits, metrics, parameters, and system statistics.", + "tools": [ + "summarize_awr_db_cpu_usages", + "summarize_awr_db_metrics", + "summarize_awr_db_parameter_changes", + "summarize_awr_db_parameters", + "summarize_awr_db_snapshot_ranges", + "summarize_awr_db_sysstats", + "summarize_awr_db_top_wait_events", + "summarize_awr_db_wait_event_buckets", + "summarize_awr_db_wait_events" + ] + }, + { + "name": "cloud-asm-core", + "description": "Cloud ASM inventory, configuration, users, disk groups, and metrics.", + "tools": [ + "get_cloud_asm", + "get_cloud_asm_configuration", + "get_cloud_asm_instance", + "list_cloud_asm_disk_groups", + "list_cloud_asm_instances", + "list_cloud_asm_users", + "list_cloud_asms", + "summarize_cloud_asm_metrics" + ] + }, + { + "name": "cloud-db-runtime-topology", + "description": "Read-only runtime topology and health checks for Cloud DB clusters, nodes, listeners, DB homes, and connectors.", + "tools": [ + "get_cloud_cluster", + "get_cloud_cluster_instance", + "get_cloud_db_home", + "get_cloud_db_node", + "get_cloud_db_system_connector", + "get_cloud_listener", + "list_cloud_cluster_instances", + "list_cloud_clusters", + "list_cloud_db_homes", + "list_cloud_db_nodes", + "list_cloud_db_system_connectors", + "list_cloud_listener_services", + "list_cloud_listeners", + "summarize_cloud_cluster_metrics", + "summarize_cloud_db_node_metrics", + "summarize_cloud_listener_metrics" + ] + }, + { + "name": "cloud-exadata-storage", + "description": "Read-only inventory and inspection of Cloud Exadata storage connectors, servers, grids, IORM plans, and open alerts.", + "tools": [ + "get_cloud_exadata_storage_connector", + "get_cloud_exadata_storage_grid", + "get_cloud_exadata_storage_server", + "get_cloud_iorm_plan", + "get_cloud_open_alert_history", + "list_cloud_exadata_storage_connectors", + "list_cloud_exadata_storage_servers" + ] + }, + { + "name": "cloud-inventory-discovery-connectivity", + "description": "Read-only Cloud DB system inventory and discovery, including connector metadata and availability metrics.", + "tools": [ + "get_cloud_db_system", + "get_cloud_db_system_discovery", + "get_cloud_exadata_infrastructure", + "list_cloud_databases", + "list_cloud_db_system_discoveries", + "list_cloud_db_systems", + "list_cloud_exadata_infrastructures", + "summarize_cloud_db_system_availability_metrics" + ] + }, + { + "name": "credentials-and-authentication-preferred-named", + "description": "Read-only named credential and preferred credential inventory and mapping inspection in OCI DBM.", + "tools": [ + "get_named_credential", + "get_preferred_credential", + "list_named_credentials", + "list_preferred_credentials" + ] + }, + { + "name": "database-addm-analysis", + "description": "Diagnose likely root causes using ADDM findings, recommendations, categories, and time-series patterns across one database or a fleet.", + "tools": [ + "list_addm_db_finding_categories", + "list_addm_db_findings_time_series", + "list_addm_db_parameter_categories", + "list_addm_db_recommendation_categories", + "list_addm_db_recommendations_time_series", + "list_addm_dbs", + "summarize_addm_db_findings", + "summarize_addm_db_parameter_changes", + "summarize_addm_db_parameters", + "summarize_addm_db_recommendations", + "summarize_addm_db_schema_objects", + "summarize_addm_db_sql_statements" + ] + }, + { + "name": "database-capacity-usage-and-forecasting", + "description": "Use this skill for fleet and per-database capacity planning, utilization analysis, usage trending, and growth forecasting.", + "tools": [ + "summarize_database_insight_resource_capacity_trend", + "summarize_database_insight_resource_forecast_trend", + "summarize_database_insight_resource_statistics", + "summarize_database_insight_resource_usage", + "summarize_database_insight_resource_usage_trend", + "summarize_database_insight_resource_utilization_insight", + "summarize_database_insight_tablespace_usage_trend" + ] + }, + { + "name": "database-configuration-and-parameters", + "description": "Read-only database parameter inventory and configuration baseline checks in OCI DBM.", + "tools": [ + "list_database_parameters" + ] + }, + { + "name": "database-health-and-core-metrics", + "description": "Read-only health and core runtime metric checks for managed databases in OCI DBM.", + "tools": [ + "get_cluster_cache_metric", + "get_database_home_metrics", + "get_pdb_metrics", + "summarize_managed_database_availability_metrics" + ] + }, + { + "name": "database-inventory", + "description": "Discover managed databases and database insight resources, then retrieve details for verified targets.", + "tools": [ + "get_database_insight", + "get_managed_database", + "list_database_configurations", + "list_database_insights", + "list_managed_databases" + ] + }, + { + "name": "database-performance-analysis", + "description": "Use this skill for workload regression and bottleneck diagnosis using AWR evidence, wait analysis, CPU profiles, metric trends, and SQL/plan context.", + "tools": [ + "get_awr_database_report", + "get_awr_database_sql_report", + "get_awr_db_report", + "list_awr_database_snapshots", + "list_awr_databases", + "list_sql_plans", + "list_sql_searches", + "list_sql_texts", + "summarize_awr_database_cpu_usages", + "summarize_awr_database_metrics", + "summarize_awr_database_parameter_changes", + "summarize_awr_database_parameters", + "summarize_awr_database_snapshot_ranges", + "summarize_awr_database_sysstats", + "summarize_awr_database_top_wait_events", + "summarize_awr_database_wait_event_buckets", + "summarize_awr_database_wait_events", + "summarize_sql_insights", + "summarize_sql_plan_insights", + "summarize_sql_response_time_distributions", + "summarize_sql_statistics", + "summarize_sql_statistics_time_series", + "summarize_sql_statistics_time_series_by_plan" + ] + }, + { + "name": "exadata-fleet-health-analytics", + "description": "Read-only Exadata infrastructure fleet health analytics in OCI DBM.", + "tools": [ + "get_exadata_infrastructure_fleet_health_metrics" + ] + }, + { + "name": "exadatainsights", + "description": "Read-only Exadata usage, capacity, forecast, utilization, and member-inventory analysis in OCI Operations Insights.", + "tools": [ + "get_exadata_insight", + "list_exadata_configurations", + "list_exadata_insights", + "summarize_exadata_insight_resource_capacity_trend", + "summarize_exadata_insight_resource_capacity_trend_aggregated", + "summarize_exadata_insight_resource_forecast_trend", + "summarize_exadata_insight_resource_forecast_trend_aggregated", + "summarize_exadata_insight_resource_statistics", + "summarize_exadata_insight_resource_usage", + "summarize_exadata_insight_resource_usage_aggregated", + "summarize_exadata_insight_resource_utilization_insight", + "summarize_exadata_members" + ] + }, + { + "name": "external-asm-core", + "description": "Read-only monitoring workflows for external ASM resources in OCI Database Management.", + "tools": [ + "get_external_asm", + "get_external_asm_configuration", + "get_external_asm_instance", + "list_external_asm_disk_groups", + "list_external_asm_instances", + "list_external_asm_users", + "list_external_asms", + "summarize_external_asm_metrics" + ] + }, + { + "name": "external-db-runtime-topology", + "description": "Read-only runtime topology workflows for external clusters, listeners, and DB nodes in OCI Database Management.", + "tools": [ + "get_external_cluster", + "get_external_cluster_instance", + "get_external_db_node", + "get_external_listener", + "list_external_cluster_instances", + "list_external_clusters", + "list_external_db_nodes", + "list_external_listener_services", + "list_external_listeners", + "summarize_external_cluster_metrics", + "summarize_external_db_node_metrics", + "summarize_external_listener_metrics" + ] + }, + { + "name": "external-exadata-storage", + "description": "Read-only inventory and inspection of external Exadata storage connectors, servers, grids, IORM plans, alerts, and top SQL CPU activity.", + "tools": [ + "get_external_exadata_storage_connector", + "get_external_exadata_storage_grid", + "get_external_exadata_storage_server", + "get_iorm_plan", + "get_open_alert_history", + "get_top_sql_cpu_activity", + "list_external_exadata_storage_connectors", + "list_external_exadata_storage_servers" + ] + }, + { + "name": "external-inventory-discovery-connectivity", + "description": "Read-only discovery, inventory, and connector inspection for external DB systems in OCI Database Management.", + "tools": [ + "get_external_db_home", + "get_external_db_system", + "get_external_db_system_connector", + "get_external_db_system_discovery", + "get_external_exadata_infrastructure", + "list_external_databases", + "list_external_db_homes", + "list_external_db_system_connectors", + "list_external_db_system_discoveries", + "list_external_db_systems", + "list_external_exadata_infrastructures", + "summarize_external_db_system_availability_metrics" + ] + }, + { + "name": "fleet-health-analytics-across-many-databases", + "description": "Fleet-level health analytics across many managed databases in OCI Database Management.", + "tools": [ + "get_database_fleet_health_metrics" + ] + }, + { + "name": "high-availability-data-guard-and-backups-fleet-single-db", + "description": "Data Guard, backup, and HA analytics for fleet and single-database workflows in OCI Database Management.", + "tools": [ + "get_database_fleet_backup_metrics", + "get_database_fleet_dataguard_metrics", + "get_database_fleet_ha_overview_metrics", + "get_database_ha_backup_details", + "get_dataguard_performance_metrics", + "get_peer_database_metrics" + ] + }, + { + "name": "hostinsights", + "description": "Read-only host capacity, usage, forecast, and recommendation analysis in OCI Operations Insights.", + "tools": [ + "get_host_insight", + "list_host_configurations", + "list_host_insights", + "list_hosted_entities", + "summarize_host_insight_disk_statistics", + "summarize_host_insight_host_recommendation", + "summarize_host_insight_io_usage_trend", + "summarize_host_insight_network_usage_trend", + "summarize_host_insight_resource_capacity_trend", + "summarize_host_insight_resource_forecast_trend", + "summarize_host_insight_resource_statistics", + "summarize_host_insight_resource_usage", + "summarize_host_insight_resource_usage_trend", + "summarize_host_insight_resource_utilization_insight", + "summarize_host_insight_storage_usage_trend", + "summarize_host_insight_top_processes_usage", + "summarize_host_insight_top_processes_usage_trend" + ] + }, + { + "name": "job-orchestration-and-execution-tracking", + "description": "Read-only job, run, and execution inventory with status summaries in OCI Database Management.", + "tools": [ + "get_job", + "get_job_execution", + "get_job_run", + "list_job_executions", + "list_job_runs", + "list_jobs", + "summarize_job_executions_statuses" + ] + }, + { + "name": "logs-and-alerts-attention-alert-logs", + "description": "Alert and attention log retrieval and count-summary workflows for managed databases in OCI Database Management.", + "tools": [ + "list_alert_logs", + "list_attention_logs", + "summarize_alert_log_counts", + "summarize_attention_log_counts" + ] + }, + { + "name": "managed-database-groups-organize-and-target-sets-of-databases", + "description": "Read-only managed database group inventory and detail inspection in OCI Database Management.", + "tools": [ + "get_managed_database_group", + "list_managed_database_groups" + ] + }, + { + "name": "news-reports-and-advisories", + "description": "Tools related to news-reports-and-advisories functionality.", + "tools": [ + "get_news_report", + "list_news_reports" + ] + }, + { + "name": "oci-common", + "description": "Read-only discovery workflows for OCI Identity (20160918) tenancy, compartment, and region topology.", + "tools": [ + "list_region_subscriptions", + "list_regions" + ] + }, + { + "name": "operations-insights-warehouse-admin", + "description": "Tools related to operations-insights-warehouse-admin functionality.", + "tools": [ + "get_operations_insights_warehouse", + "get_operations_insights_warehouse_user", + "list_operations_insights_warehouse_users", + "list_operations_insights_warehouses", + "summarize_operations_insights_warehouse_resource_usage" + ] + }, + { + "name": "opsi-configurations-and-datastores", + "description": "Read-only Operations Insights configuration inventory and detail inspection.", + "tools": [ + "get_opsi_configuration", + "list_opsi_configurations" + ] + }, + { + "name": "private-endpoints-and-connectivity", + "description": "Database Management private endpoint discovery, inspection, and associated database mapping.", + "tools": [ + "get_db_management_private_endpoint", + "get_operations_insights_private_endpoint", + "list_associated_databases", + "list_db_management_private_endpoints", + "list_operations_insights_private_endpoints" + ] + }, + { + "name": "storage-and-space-tablespaces-asm", + "description": "Tablespace and ASM property retrieval for managed database storage and space checks.", + "tools": [ + "get_tablespace", + "list_asm_properties", + "list_tablespaces" + ] + }, + { + "name": "users-and-privileges-rbac-audit", + "description": "Database users, roles, and privilege audit surfaces including proxy and data access container visibility.", + "tools": [ + "get_user", + "list_consumer_group_privileges", + "list_data_access_containers", + "list_object_privileges", + "list_proxied_for_users", + "list_proxy_users", + "list_roles", + "list_system_privileges", + "list_users" + ] + } + ] +} diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/tools.json b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/tools.json new file mode 100644 index 00000000..9c74f593 --- /dev/null +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/tools.json @@ -0,0 +1,16302 @@ +{ + "tools": [ + { + "name": "addm_tasks", + "description": "Returns ADDM tasks whose end snapshot time falls within the requested time range.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "addm_tasks", + "skills": [ + "advanced-diagnostics-addm-session-control-bulk-retrieve" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "opc_named_credential_id": { + "type": "string", + "description": "The OCID of the Named Credential." + }, + "sort_by": { + "type": "string", + "enum": [ + "TASK_NAME", + "TASK_ID", + "DESCRIPTION", + "DB_USER", + "STATUS", + "TIME_CREATED", + "BEGIN_TIME", + "END_TIME" + ], + "description": "The option to sort the list of ADDM tasks.\n\nAllowed values are: \"TASK_NAME\", \"TASK_ID\", \"DESCRIPTION\", \"DB_USER\", \"STATUS\", \"TIME_CREATED\", \"BEGIN_TIME\", \"END_TIME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "time_end": { + "type": "string", + "format": "date-time", + "description": "The end of the time range to search for ADDM tasks as defined by date-time RFC3339 format." + }, + "time_start": { + "type": "string", + "format": "date-time", + "description": "The beginning of the time range to search for ADDM tasks as defined by date-time RFC3339 format." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id", + "time_start", + "time_end" + ] + }, + "mutable": false + }, + { + "name": "get_awr_database_report", + "description": "Returns the AWR report payload for a selected database and snapshot range, including SQL, wait-event, and load-profile sections.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "get_awr_database_report", + "skills": [ + "database-performance-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "awr_hub_id": { + "type": "string", + "description": "Unique Awr Hub identifier" + }, + "awr_source_database_identifier": { + "type": "string", + "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results." + }, + "begin_snapshot_identifier_greater_than_or_equal_to": { + "type": "integer", + "description": "The optional greater than or equal to filter on the snapshot ID." + }, + "end_snapshot_identifier_less_than_or_equal_to": { + "type": "integer", + "description": "The optional less than or equal to query parameter to filter the snapshot Identifier." + }, + "instance_number": { + "type": "string", + "description": "The optional single value query parameter to filter by database instance number." + }, + "report_format": { + "type": "string", + "enum": [ + "HTML", + "TEXT" + ], + "description": "The format of the AWR report. Allowed values are: \"HTML\", \"TEXT\"" + }, + "report_type": { + "type": "string", + "enum": [ + "AWR", + "ASH" + ], + "description": "The query parameter to filter the AWR report types. Allowed values are: \"AWR\", \"ASH\"" + }, + "time_greater_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" + }, + "time_less_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "awr_hub_id", + "awr_source_database_identifier" + ] + }, + "mutable": false + }, + { + "name": "get_awr_database_sql_report", + "description": "Returns SQL health-check output for a specific SQL ID from AWR, including execution profile, plan details, and SQL-level findings.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "get_awr_database_sql_report", + "skills": [ + "database-performance-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "awr_hub_id": { + "type": "string", + "description": "Unique Awr Hub identifier" + }, + "awr_source_database_identifier": { + "type": "string", + "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results." + }, + "begin_snapshot_identifier_greater_than_or_equal_to": { + "type": "integer", + "description": "The optional greater than or equal to filter on the snapshot ID." + }, + "end_snapshot_identifier_less_than_or_equal_to": { + "type": "integer", + "description": "The optional less than or equal to query parameter to filter the snapshot Identifier." + }, + "instance_number": { + "type": "string", + "description": "The optional single value query parameter to filter by database instance number." + }, + "report_format": { + "type": "string", + "enum": [ + "HTML", + "TEXT" + ], + "description": "The format of the AWR report. Allowed values are: \"HTML\", \"TEXT\"" + }, + "sql_id": { + "type": "string", + "description": "Oracle-generated SQL ID for a SQL statement in the AWR data." + }, + "time_greater_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" + }, + "time_less_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "awr_hub_id", + "awr_source_database_identifier", + "sql_id" + ] + }, + "mutable": false + }, + { + "name": "get_awr_db_report", + "description": "Returns full AWR database report content for the selected snapshot range and output format (for example text or HTML).", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_awr_db_report", + "skills": [ + "database-performance-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "awr_db_id": { + "type": "string", + "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results." + }, + "begin_sn_id_greater_than_or_equal_to": { + "type": "integer", + "description": "The optional greater than or equal to filter on the snapshot ID." + }, + "container_id": { + "type": "integer", + "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results." + }, + "end_sn_id_less_than_or_equal_to": { + "type": "integer", + "description": "The optional less than or equal to query parameter to filter the snapshot ID." + }, + "inst_nums": { + "type": "array", + "items": { + "type": "integer" + }, + "description": "The optional multiple value query parameter to filter the database instance numbers." + }, + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "opc_named_credential_id": { + "type": "string", + "description": "The OCID of the Named Credential." + }, + "report_format": { + "type": "string", + "enum": [ + "HTML", + "TEXT" + ], + "description": "The format of the AWR report.\n\nAllowed values are: \"HTML\", \"TEXT\"" + }, + "report_type": { + "type": "string", + "enum": [ + "AWR", + "ASH" + ], + "description": "The query parameter to filter the AWR report types.\n\nAllowed values are: \"AWR\", \"ASH\"" + }, + "time_greater_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional greater than or equal to query parameter to filter the timestamp." + }, + "time_less_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp." + }, + "opc_request_id": { + "type": "string" + }, + "opc_retry_token": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id", + "awr_db_id" + ] + }, + "mutable": false + }, + { + "name": "get_cloud_asm", + "description": "Gets the cloud ASM details.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_cloud_asm", + "skills": [ + "cloud-asm-core" + ], + "inputSchema": { + "type": "object", + "properties": { + "cloud_asm_id": { + "type": "string", + "description": "The OCID of the cloud ASM." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "cloud_asm_id" + ] + }, + "mutable": false + }, + { + "name": "get_cloud_asm_configuration", + "description": "Gets the cloud ASM configuration.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_cloud_asm_configuration", + "skills": [ + "cloud-asm-core" + ], + "inputSchema": { + "type": "object", + "properties": { + "cloud_asm_id": { + "type": "string", + "description": "The OCID of the cloud ASM." + }, + "opc_named_credential_id": { + "type": "string", + "description": "The OCID of the Named Credential." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "cloud_asm_id" + ] + }, + "mutable": false + }, + { + "name": "get_cloud_asm_instance", + "description": "Gets the cloud ASM instance details.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_cloud_asm_instance", + "skills": [ + "cloud-asm-core" + ], + "inputSchema": { + "type": "object", + "properties": { + "cloud_asm_instance_id": { + "type": "string", + "description": "The OCID of the cloud ASM instance." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "cloud_asm_instance_id" + ] + }, + "mutable": false + }, + { + "name": "get_cloud_cluster", + "description": "Gets the cloud cluster details.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_cloud_cluster", + "skills": [ + "cloud-db-runtime-topology" + ], + "inputSchema": { + "type": "object", + "properties": { + "cloud_cluster_id": { + "type": "string", + "description": "The OCID of the cloud cluster." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "cloud_cluster_id" + ] + }, + "mutable": false + }, + { + "name": "get_cloud_cluster_instance", + "description": "Gets the cloud cluster instance details.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_cloud_cluster_instance", + "skills": [ + "cloud-db-runtime-topology" + ], + "inputSchema": { + "type": "object", + "properties": { + "cloud_cluster_instance_id": { + "type": "string", + "description": "The OCID of the cloud cluster instance." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "cloud_cluster_instance_id" + ] + }, + "mutable": false + }, + { + "name": "get_cloud_db_home", + "description": "Gets the cloud DB home details.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_cloud_db_home", + "skills": [ + "cloud-db-runtime-topology" + ], + "inputSchema": { + "type": "object", + "properties": { + "cloud_db_home_id": { + "type": "string", + "description": "The OCID of the cloud database home." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "cloud_db_home_id" + ] + }, + "mutable": false + }, + { + "name": "get_cloud_db_node", + "description": "Gets the cloud DB node details.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_cloud_db_node", + "skills": [ + "cloud-db-runtime-topology" + ], + "inputSchema": { + "type": "object", + "properties": { + "cloud_db_node_id": { + "type": "string", + "description": "The OCID of the cloud database node." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "cloud_db_node_id" + ] + }, + "mutable": false + }, + { + "name": "get_cloud_db_system", + "description": "Returns details for one Cloud DB system so admins can verify DB system identity, state, and context.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_cloud_db_system", + "skills": [ + "cloud-inventory-discovery-connectivity" + ], + "inputSchema": { + "type": "object", + "properties": { + "cloud_db_system_id": { + "type": "string", + "description": "The OCID of the cloud DB system." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "cloud_db_system_id" + ] + }, + "mutable": false + }, + { + "name": "get_cloud_db_system_connector", + "description": "Gets the cloud connector details.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_cloud_db_system_connector", + "skills": [ + "cloud-db-runtime-topology" + ], + "inputSchema": { + "type": "object", + "properties": { + "cloud_db_system_connector_id": { + "type": "string", + "description": "The OCID of the cloud connector." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "cloud_db_system_connector_id" + ] + }, + "mutable": false + }, + { + "name": "get_cloud_db_system_discovery", + "description": "Returns details for one Cloud DB system discovery resource so admins can validate discovery status and metadata.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_cloud_db_system_discovery", + "skills": [ + "cloud-inventory-discovery-connectivity" + ], + "inputSchema": { + "type": "object", + "properties": { + "cloud_db_system_discovery_id": { + "type": "string", + "description": "The OCID of the cloud DB system discovery." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "cloud_db_system_discovery_id" + ] + }, + "mutable": false + }, + { + "name": "get_cloud_exadata_infrastructure", + "description": "Returns details for one Cloud Exadata infrastructure so admins can validate infrastructure identity and state.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_cloud_exadata_infrastructure", + "skills": [ + "cloud-inventory-discovery-connectivity" + ], + "inputSchema": { + "type": "object", + "properties": { + "cloud_exadata_infrastructure_id": { + "type": "string", + "description": "The OCID of the Exadata infrastructure." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "cloud_exadata_infrastructure_id" + ] + }, + "mutable": false + }, + { + "name": "get_cloud_exadata_storage_connector", + "description": "Returns details for one Cloud Exadata storage connector so admins can validate connector state and configuration context.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_cloud_exadata_storage_connector", + "skills": [ + "cloud-exadata-storage" + ], + "inputSchema": { + "type": "object", + "properties": { + "cloud_exadata_storage_connector_id": { + "type": "string", + "description": "The OCID of the connector to the Exadata storage server." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "cloud_exadata_storage_connector_id" + ] + }, + "mutable": false + }, + { + "name": "get_cloud_exadata_storage_grid", + "description": "Returns Cloud Exadata storage grid details so admins can validate grid-level storage configuration context.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_cloud_exadata_storage_grid", + "skills": [ + "cloud-exadata-storage" + ], + "inputSchema": { + "type": "object", + "properties": { + "cloud_exadata_storage_grid_id": { + "type": "string", + "description": "The OCID of the Exadata storage grid." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "cloud_exadata_storage_grid_id" + ] + }, + "mutable": false + }, + { + "name": "get_cloud_exadata_storage_server", + "description": "Returns details for one Cloud Exadata storage server so admins can verify server state and storage context.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_cloud_exadata_storage_server", + "skills": [ + "cloud-exadata-storage" + ], + "inputSchema": { + "type": "object", + "properties": { + "cloud_exadata_storage_server_id": { + "type": "string", + "description": "The OCID of the Exadata storage server." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "cloud_exadata_storage_server_id" + ] + }, + "mutable": false + }, + { + "name": "get_cloud_iorm_plan", + "description": "Returns the I/O Resource Manager (IORM) plan for a Cloud Exadata storage server so admins can review resource allocation policy.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_cloud_iorm_plan", + "skills": [ + "cloud-exadata-storage" + ], + "inputSchema": { + "type": "object", + "properties": { + "cloud_exadata_storage_server_id": { + "type": "string", + "description": "The OCID of the Exadata storage server." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "cloud_exadata_storage_server_id" + ] + }, + "mutable": false + }, + { + "name": "get_cloud_listener", + "description": "Gets the cloud listener details.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_cloud_listener", + "skills": [ + "cloud-db-runtime-topology" + ], + "inputSchema": { + "type": "object", + "properties": { + "cloud_listener_id": { + "type": "string", + "description": "The OCID of the cloud listener." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "cloud_listener_id" + ] + }, + "mutable": false + }, + { + "name": "get_cloud_open_alert_history", + "description": "Returns open alert history for a Cloud Exadata storage server so admins can review active storage issues.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_cloud_open_alert_history", + "skills": [ + "cloud-exadata-storage" + ], + "inputSchema": { + "type": "object", + "properties": { + "cloud_exadata_storage_server_id": { + "type": "string", + "description": "The OCID of the Exadata storage server." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "cloud_exadata_storage_server_id" + ] + }, + "mutable": false + }, + { + "name": "get_cluster_cache_metric", + "description": "Returns cluster cache metric summaries so admins can assess RAC cache efficiency and interconnect behavior.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_cluster_cache_metric", + "skills": [ + "database-health-and-core-metrics" + ], + "inputSchema": { + "type": "object", + "properties": { + "end_time": { + "type": "string", + "description": "The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." + }, + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "start_time": { + "type": "string", + "description": "The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id", + "start_time", + "end_time" + ] + }, + "mutable": false + }, + { + "name": "get_database_fleet_backup_metrics", + "description": "Returns fleet backup metrics so you can assess backup health, recovery posture, and retention trends.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_database_fleet_backup_metrics", + "skills": [ + "high-availability-data-guard-and-backups-fleet-single-db" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "database_hosted_in": { + "type": "string", + "enum": [ + "CLOUD", + "EXTERNAL" + ], + "description": "Indicates whether the database is a cloud database or an external database.\n\nAllowed values are: \"CLOUD\", \"EXTERNAL\"" + }, + "end_time": { + "type": "string", + "description": "The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." + }, + "filter_by_metric_names": { + "type": "string", + "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "managed_database_group_id": { + "type": "string", + "description": "The OCID of the Managed Database Group." + }, + "sort_by": { + "type": "string", + "enum": [ + "DATABASENAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `DATABASENAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"DATABASENAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "start_time": { + "type": "string", + "description": "The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "database_hosted_in", + "start_time", + "end_time" + ] + }, + "mutable": false + }, + { + "name": "get_database_fleet_dataguard_metrics", + "description": "Returns fleet Data Guard metrics for Data Guard-enabled databases so you can identify replication risk hotspots.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_database_fleet_dataguard_metrics", + "skills": [ + "high-availability-data-guard-and-backups-fleet-single-db" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "filter_by_metric_names": { + "type": "string", + "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "managed_database_group_id": { + "type": "string", + "description": "The OCID of the Managed Database Group." + }, + "sort_by": { + "type": "string", + "enum": [ + "DATABASENAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `DATABASENAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"DATABASENAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false + }, + "mutable": false + }, + { + "name": "get_database_fleet_ha_overview_metrics", + "description": "Returns fleet HA and backup overview metrics so you can assess resilience posture across databases.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_database_fleet_ha_overview_metrics", + "skills": [ + "high-availability-data-guard-and-backups-fleet-single-db" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "filter_by_metric_names": { + "type": "string", + "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "managed_database_group_id": { + "type": "string", + "description": "The OCID of the Managed Database Group." + }, + "sort_by": { + "type": "string", + "enum": [ + "DATABASENAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `DATABASENAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"DATABASENAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false + }, + "mutable": false + }, + { + "name": "get_database_fleet_health_metrics", + "description": "Returns fleet health metrics across databases so admins can compare usage and availability trends by baseline and target windows.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_database_fleet_health_metrics", + "skills": [ + "fleet-health-analytics-across-many-databases" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "compare_baseline_time": { + "type": "string", + "description": "The baseline time for metrics comparison. Use UTC ISO 8601 format with milliseconds: YYYY-MM-DDThh:mm:ss.SSSZ." + }, + "compare_target_time": { + "type": "string", + "description": "The target time for metrics comparison. Use UTC ISO 8601 format with milliseconds: YYYY-MM-DDThh:mm:ss.SSSZ." + }, + "compare_type": { + "type": "string", + "enum": [ + "HOUR", + "DAY", + "WEEK" + ], + "description": "The time window used for metrics comparison.\n\nAllowed values are: \"HOUR\", \"DAY\", \"WEEK\"" + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "filter_by_database_deployment_type": { + "type": "string", + "description": "The filter used to filter the databases in the fleet by a specific Oracle Database deployment type." + }, + "filter_by_database_sub_type": { + "type": "string", + "description": "The filter used to filter the databases in the fleet by a specific Oracle Database subtype." + }, + "filter_by_database_type": { + "type": "string", + "description": "The filter used to filter the databases in the fleet by a specific Oracle Database type." + }, + "filter_by_database_version": { + "type": "string", + "description": "The filter used to filter the databases in the fleet by a specific Oracle Database version." + }, + "filter_by_metric_names": { + "type": "string", + "enum": [ + "CPUTime", + "DBTime", + "CpuCount", + "IOPS", + "IOThroughput", + "MemoryUsage", + "StorageAllocated", + "StorageUsed", + "MonitoringStatus", + "WaitTime", + "CpuUtilization", + "StorageUtilization" + ], + "description": "The filter used to retrieve a specific metric. Allowed values are CPUTime, DBTime, CpuCount, IOPS, IOThroughput, MemoryUsage, StorageAllocated, StorageUsed, MonitoringStatus, WaitTime, CpuUtilization, and StorageUtilization. Omit this parameter to return all supported metrics." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "managed_database_group_id": { + "type": "string", + "description": "The OCID of the Managed Database Group." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIMECREATED", + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compare_baseline_time", + "compare_target_time" + ] + }, + "mutable": false + }, + { + "name": "get_database_ha_backup_details", + "description": "Returns HA and backup details for one managed database, including metrics and backup history for deep-dive analysis.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_database_ha_backup_details", + "skills": [ + "high-availability-data-guard-and-backups-fleet-single-db" + ], + "inputSchema": { + "type": "object", + "properties": { + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "opc_named_credential_id": { + "type": "string", + "description": "The OCID of the Named Credential." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id" + ] + }, + "mutable": false + }, + { + "name": "get_database_home_metrics", + "description": "Returns database home activity and resource usage summaries so admins can evaluate database home health and load.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_database_home_metrics", + "skills": [ + "database-health-and-core-metrics" + ], + "inputSchema": { + "type": "object", + "properties": { + "end_time": { + "type": "string", + "description": "The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." + }, + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "start_time": { + "type": "string", + "description": "The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id", + "start_time", + "end_time" + ] + }, + "mutable": false + }, + { + "name": "get_database_insight", + "description": "Returns detailed state for one database insight, including databaseId that maps the insight to the DB resource OCID for downstream calls.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "get_database_insight", + "skills": [ + "database-inventory" + ], + "inputSchema": { + "type": "object", + "properties": { + "database_insight_id": { + "type": "string", + "description": "Unique database insight identifier" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "database_insight_id" + ] + }, + "mutable": false + }, + { + "name": "get_dataguard_performance_metrics", + "description": "Returns Data Guard performance metrics for a managed database so you can assess lag, apply rate, and failover readiness.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_dataguard_performance_metrics", + "skills": [ + "high-availability-data-guard-and-backups-fleet-single-db" + ], + "inputSchema": { + "type": "object", + "properties": { + "end_time": { + "type": "string", + "description": "The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." + }, + "filter_by_metric_names": { + "type": "string", + "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." + }, + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "peer_database_compartment_id": { + "type": "string", + "description": "The OCID of the compartment for which peer database metrics are required. This is not a mandatory parameter and in its absence, all the peer database metrics are returned." + }, + "start_time": { + "type": "string", + "description": "The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id", + "start_time", + "end_time" + ] + }, + "mutable": false + }, + { + "name": "get_db_management_private_endpoint", + "description": "Returns details for one Database Management private endpoint identified by dbManagementPrivateEndpointId.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_db_management_private_endpoint", + "skills": [ + "private-endpoints-and-connectivity" + ], + "inputSchema": { + "type": "object", + "properties": { + "db_management_private_endpoint_id": { + "type": "string", + "description": "The OCID of the Database Management private endpoint." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "db_management_private_endpoint_id" + ] + }, + "mutable": false + }, + { + "name": "get_exadata_infrastructure_fleet_health_metrics", + "description": "Returns Exadata infrastructure fleet health summaries so admins can assess capacity and utilization posture across infrastructure resources.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_exadata_infrastructure_fleet_health_metrics", + "skills": [ + "exadata-fleet-health-analytics" + ], + "inputSchema": { + "type": "object", + "properties": { + "compare_baseline_time": { + "type": "string", + "description": "The baseline time for metrics comparison." + }, + "compare_target_time": { + "type": "string", + "description": "The target time for metrics comparison." + }, + "compare_type": { + "type": "string", + "enum": [ + "HOUR", + "DAY", + "WEEK" + ], + "description": "The time window used for metrics comparison.\n\nAllowed values are: \"HOUR\", \"DAY\", \"WEEK\"" + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "filter_by_exadata_infrastructure_deployment_type": { + "type": "string", + "enum": [ + "ONPREMISE", + "EXADATA", + "EXADATA_CC" + ], + "description": "The filter used to filter the Exadata infrastructures in the fleet by a specific deployment type.\n\nAllowed values are: \"ONPREMISE\", \"EXADATA\", \"EXADATA_CC\"" + }, + "filter_by_exadata_infrastructure_lifecycle_state": { + "type": "string", + "enum": [ + "CREATING", + "ACTIVE", + "INACTIVE", + "UPDATING", + "DELETING", + "DELETED", + "FAILED", + "UNKNOWN" + ], + "description": "The filter used to filter the Exadata infrastructure in the fleet by its lifecycle state.\nIf the parameter is not provided, Exdata infrastructures in any state are returned.\n\nAllowed values are: \"CREATING\", \"ACTIVE\", \"INACTIVE\", \"UPDATING\", \"DELETING\", \"DELETED\", \"FAILED\", \"UNKNOWN\"" + }, + "sort_by": { + "type": "string", + "enum": [ + "TIMECREATED", + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", + "compare_baseline_time", + "compare_target_time" + ] + }, + "mutable": false + }, + { + "name": "get_exadata_insight", + "description": "Returns Exadata insight details so admins can validate monitoring status and resource metadata for an Exadata target.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "get_exadata_insight", + "skills": [ + "exadatainsights" + ], + "inputSchema": { + "type": "object", + "properties": { + "exadata_insight_id": { + "type": "string" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "exadata_insight_id" + ] + }, + "mutable": false + }, + { + "name": "get_external_asm", + "description": "Returns external ASM details (version, topology, lifecycle) to validate monitoring scope.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_external_asm", + "skills": [ + "external-asm-core" + ], + "inputSchema": { + "type": "object", + "properties": { + "external_asm_id": { + "type": "string", + "description": "The OCID of the external ASM." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "external_asm_id" + ] + }, + "mutable": false + }, + { + "name": "get_external_asm_configuration", + "description": "Returns external ASM configuration, including disk group setup, for configuration checks.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_external_asm_configuration", + "skills": [ + "external-asm-core" + ], + "inputSchema": { + "type": "object", + "properties": { + "external_asm_id": { + "type": "string", + "description": "The OCID of the external ASM." + }, + "opc_named_credential_id": { + "type": "string", + "description": "The OCID of the Named Credential." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "external_asm_id" + ] + }, + "mutable": false + }, + { + "name": "get_external_asm_instance", + "description": "Returns detailed ASM instance properties for node-level validation and diagnostics.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_external_asm_instance", + "skills": [ + "external-asm-core" + ], + "inputSchema": { + "type": "object", + "properties": { + "external_asm_instance_id": { + "type": "string", + "description": "The OCID of the external ASM instance." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "external_asm_instance_id" + ] + }, + "mutable": false + }, + { + "name": "get_external_cluster", + "description": "Returns external cluster details to validate topology and lifecycle state.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_external_cluster", + "skills": [ + "external-db-runtime-topology" + ], + "inputSchema": { + "type": "object", + "properties": { + "external_cluster_id": { + "type": "string", + "description": "The OCID of the external cluster." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "external_cluster_id" + ] + }, + "mutable": false + }, + { + "name": "get_external_cluster_instance", + "description": "Returns external cluster instance details for instance-level runtime validation.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_external_cluster_instance", + "skills": [ + "external-db-runtime-topology" + ], + "inputSchema": { + "type": "object", + "properties": { + "external_cluster_instance_id": { + "type": "string", + "description": "The OCID of the external cluster instance." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "external_cluster_instance_id" + ] + }, + "mutable": false + }, + { + "name": "get_external_db_home", + "description": "Returns external DB home details for home-level configuration and lifecycle validation.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_external_db_home", + "skills": [ + "external-inventory-discovery-connectivity" + ], + "inputSchema": { + "type": "object", + "properties": { + "external_db_home_id": { + "type": "string", + "description": "The OCID of the external database home." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "external_db_home_id" + ] + }, + "mutable": false + }, + { + "name": "get_external_db_node", + "description": "Returns external DB node details for host-level runtime validation.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_external_db_node", + "skills": [ + "external-db-runtime-topology" + ], + "inputSchema": { + "type": "object", + "properties": { + "external_db_node_id": { + "type": "string", + "description": "The OCID of the external database node." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "external_db_node_id" + ] + }, + "mutable": false + }, + { + "name": "get_external_db_system", + "description": "Returns external DB system details to validate system identity, topology, and lifecycle state.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_external_db_system", + "skills": [ + "external-inventory-discovery-connectivity" + ], + "inputSchema": { + "type": "object", + "properties": { + "external_db_system_id": { + "type": "string", + "description": "The OCID of the external DB system." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "external_db_system_id" + ] + }, + "mutable": false + }, + { + "name": "get_external_db_system_connector", + "description": "Returns external DB system connector details to validate connector configuration and status.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_external_db_system_connector", + "skills": [ + "external-inventory-discovery-connectivity" + ], + "inputSchema": { + "type": "object", + "properties": { + "external_db_system_connector_id": { + "type": "string", + "description": "The OCID of the external connector." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "external_db_system_connector_id" + ] + }, + "mutable": false + }, + { + "name": "get_external_db_system_discovery", + "description": "Returns external DB system discovery details to review discovery scope, status, and results.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_external_db_system_discovery", + "skills": [ + "external-inventory-discovery-connectivity" + ], + "inputSchema": { + "type": "object", + "properties": { + "external_db_system_discovery_id": { + "type": "string", + "description": "The OCID of the external DB system discovery." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "external_db_system_discovery_id" + ] + }, + "mutable": false + }, + { + "name": "get_external_exadata_infrastructure", + "description": "Returns external Exadata infrastructure details to validate infrastructure identity and lifecycle state.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_external_exadata_infrastructure", + "skills": [ + "external-inventory-discovery-connectivity" + ], + "inputSchema": { + "type": "object", + "properties": { + "external_exadata_infrastructure_id": { + "type": "string", + "description": "The OCID of the Exadata infrastructure." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "external_exadata_infrastructure_id" + ] + }, + "mutable": false + }, + { + "name": "get_external_exadata_storage_connector", + "description": "Returns external Exadata storage connector details to validate connector configuration and status.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_external_exadata_storage_connector", + "skills": [ + "external-exadata-storage" + ], + "inputSchema": { + "type": "object", + "properties": { + "external_exadata_storage_connector_id": { + "type": "string", + "description": "The OCID of the connector to the Exadata storage server." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "external_exadata_storage_connector_id" + ] + }, + "mutable": false + }, + { + "name": "get_external_exadata_storage_grid", + "description": "Returns external Exadata storage grid details to review grid topology and member servers.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_external_exadata_storage_grid", + "skills": [ + "external-exadata-storage" + ], + "inputSchema": { + "type": "object", + "properties": { + "external_exadata_storage_grid_id": { + "type": "string", + "description": "The OCID of the Exadata storage grid." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "external_exadata_storage_grid_id" + ] + }, + "mutable": false + }, + { + "name": "get_external_exadata_storage_server", + "description": "Returns external Exadata storage server details for server-level validation and diagnostics.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_external_exadata_storage_server", + "skills": [ + "external-exadata-storage" + ], + "inputSchema": { + "type": "object", + "properties": { + "external_exadata_storage_server_id": { + "type": "string", + "description": "The OCID of the Exadata storage server." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "external_exadata_storage_server_id" + ] + }, + "mutable": false + }, + { + "name": "get_external_listener", + "description": "Returns external listener details for endpoint and lifecycle validation.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_external_listener", + "skills": [ + "external-db-runtime-topology" + ], + "inputSchema": { + "type": "object", + "properties": { + "external_listener_id": { + "type": "string", + "description": "The OCID of the external listener." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "external_listener_id" + ] + }, + "mutable": false + }, + { + "name": "get_host_insight", + "description": "Returns host insight details so admins can validate monitoring status and host resource metadata.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "get_host_insight", + "skills": [ + "hostinsights" + ], + "inputSchema": { + "type": "object", + "properties": { + "host_insight_id": { + "type": "string" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "host_insight_id" + ] + }, + "mutable": false + }, + { + "name": "get_iorm_plan", + "description": "Returns the I/O Resource Management (IORM) plan for an external Exadata storage server to review resource-allocation policy.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_iorm_plan", + "skills": [ + "external-exadata-storage" + ], + "inputSchema": { + "type": "object", + "properties": { + "external_exadata_storage_server_id": { + "type": "string", + "description": "The OCID of the Exadata storage server." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "external_exadata_storage_server_id" + ] + }, + "mutable": false + }, + { + "name": "get_job", + "description": "Returns one job definition so you can verify schedule, target scope, and execution settings.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_job", + "skills": [ + "job-orchestration-and-execution-tracking" + ], + "inputSchema": { + "type": "object", + "properties": { + "job_id": { + "type": "string", + "description": "The identifier of the job." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "job_id" + ] + }, + "mutable": false + }, + { + "name": "get_job_execution", + "description": "Returns one job execution with result details so you can investigate success or failure.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_job_execution", + "skills": [ + "job-orchestration-and-execution-tracking" + ], + "inputSchema": { + "type": "object", + "properties": { + "job_execution_id": { + "type": "string", + "description": "The identifier of the job execution." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "job_execution_id" + ] + }, + "mutable": false + }, + { + "name": "get_job_run", + "description": "Returns one job run so you can inspect run status and submission timeline.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_job_run", + "skills": [ + "job-orchestration-and-execution-tracking" + ], + "inputSchema": { + "type": "object", + "properties": { + "job_run_id": { + "type": "string", + "description": "The identifier of the job run." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "job_run_id" + ] + }, + "mutable": false + }, + { + "name": "get_managed_database", + "description": "Returns detailed metadata for one managedDatabaseId, which in current tools is the same value as the DB resource OCID.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_managed_database", + "skills": [ + "database-inventory" + ], + "inputSchema": { + "type": "object", + "properties": { + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id" + ] + }, + "mutable": false + }, + { + "name": "get_managed_database_group", + "description": "Returns managed database group details so you can verify membership and configuration context.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_managed_database_group", + "skills": [ + "managed-database-groups-organize-and-target-sets-of-databases" + ], + "inputSchema": { + "type": "object", + "properties": { + "managed_database_group_id": { + "type": "string", + "description": "The OCID of the Managed Database Group." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_group_id" + ] + }, + "mutable": false + }, + { + "name": "get_named_credential", + "description": "Returns details for one named credential so admins can review credential configuration context.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_named_credential", + "skills": [ + "credentials-and-authentication-preferred-named" + ], + "inputSchema": { + "type": "object", + "properties": { + "named_credential_id": { + "type": "string", + "description": "The OCID of the named credential." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "named_credential_id" + ] + }, + "mutable": false + }, + { + "name": "get_news_report", + "description": "Returns one news report so admins can review advisory details and decide follow-up actions.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "get_news_report", + "skills": [ + "news-reports-and-advisories" + ], + "inputSchema": { + "type": "object", + "properties": { + "news_report_id": { + "type": "string" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "news_report_id" + ] + }, + "mutable": false + }, + { + "name": "get_open_alert_history", + "description": "Returns open alert history from an external Exadata storage server to identify active operational issues.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_open_alert_history", + "skills": [ + "external-exadata-storage" + ], + "inputSchema": { + "type": "object", + "properties": { + "external_exadata_storage_server_id": { + "type": "string", + "description": "The OCID of the Exadata storage server." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "external_exadata_storage_server_id" + ] + }, + "mutable": false + }, + { + "name": "get_operations_insights_private_endpoint", + "description": "Returns private endpoint details and lifecycle state so admins can validate secure network connectivity for Operations Insights resources.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "get_operations_insights_private_endpoint", + "skills": [ + "private-endpoints-and-connectivity" + ], + "inputSchema": { + "type": "object", + "properties": { + "opc_request_id": { + "type": "string" + }, + "operations_insights_private_endpoint_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "operations_insights_private_endpoint_id" + ] + }, + "mutable": false + }, + { + "name": "get_operations_insights_warehouse", + "description": "Returns Ops Insights warehouse details so admins can inspect warehouse configuration and lifecycle state.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "get_operations_insights_warehouse", + "skills": [ + "operations-insights-warehouse-admin" + ], + "inputSchema": { + "type": "object", + "properties": { + "opc_request_id": { + "type": "string" + }, + "operations_insights_warehouse_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "operations_insights_warehouse_id" + ] + }, + "mutable": false + }, + { + "name": "get_operations_insights_warehouse_user", + "description": "Returns Operations Insights Warehouse User details so admins can validate warehouse user account state and access context.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "get_operations_insights_warehouse_user", + "skills": [ + "operations-insights-warehouse-admin" + ], + "inputSchema": { + "type": "object", + "properties": { + "opc_request_id": { + "type": "string" + }, + "operations_insights_warehouse_user_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "operations_insights_warehouse_user_id" + ] + }, + "mutable": false + }, + { + "name": "get_opsi_configuration", + "description": "Returns one OPSI configuration resource so admins can inspect current configuration details for a target resource.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "get_opsi_configuration", + "skills": [ + "opsi-configurations-and-datastores" + ], + "inputSchema": { + "type": "object", + "properties": { + "config_item_custom_status": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "customized", + "nonCustomized" + ] + } + }, + "config_item_field": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "value", + "defaultValue", + "metadata", + "applicableContexts" + ] + } + }, + "config_items_applicable_context": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" + }, + "opsi_config_field": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "configItems" + ] + } + }, + "opsi_configuration_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "opsi_configuration_id" + ] + }, + "mutable": false + }, + { + "name": "get_pdb_metrics", + "description": "Returns PDB resource usage summaries so admins can compare DB time, CPU, wait, storage, and memory usage across PDBs.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_pdb_metrics", + "skills": [ + "database-health-and-core-metrics" + ], + "inputSchema": { + "type": "object", + "properties": { + "compare_type": { + "type": "string", + "enum": [ + "HOUR", + "DAY", + "WEEK" + ], + "description": "The time window used for metrics comparison.\n\nAllowed values are: \"HOUR\", \"DAY\", \"WEEK\"" + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "end_time": { + "type": "string", + "description": "The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." + }, + "filter_by_metric_names": { + "type": "string", + "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." + }, + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "start_time": { + "type": "string", + "description": "The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id", + "start_time", + "end_time" + ] + }, + "mutable": false + }, + { + "name": "get_peer_database_metrics", + "description": "Returns baseline-versus-target Data Guard metrics for peer databases so you can compare replication health over time.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_peer_database_metrics", + "skills": [ + "high-availability-data-guard-and-backups-fleet-single-db" + ], + "inputSchema": { + "type": "object", + "properties": { + "compare_type": { + "type": "string", + "enum": [ + "HOUR", + "DAY", + "WEEK" + ], + "description": "The time window used for metrics comparison.\n\nAllowed values are: \"HOUR\", \"DAY\", \"WEEK\"" + }, + "end_time": { + "type": "string", + "description": "The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." + }, + "filter_by_metric_names": { + "type": "string", + "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." + }, + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "peer_database_compartment_id": { + "type": "string", + "description": "The OCID of the compartment for which peer database metrics are required. This is not a mandatory parameter and in its absence, all the peer database metrics are returned." + }, + "start_time": { + "type": "string", + "description": "The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id", + "start_time", + "end_time" + ] + }, + "mutable": false + }, + { + "name": "get_preferred_credential", + "description": "Returns one preferred credential assignment by credential name so admins can verify credential mapping for the database.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_preferred_credential", + "skills": [ + "credentials-and-authentication-preferred-named" + ], + "inputSchema": { + "type": "object", + "properties": { + "credential_name": { + "type": "string", + "description": "The name of the preferred credential." + }, + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id", + "credential_name" + ] + }, + "mutable": false + }, + { + "name": "get_tablespace", + "description": "Returns detailed attributes for one tablespace identified by tablespaceName within a managed database.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_tablespace", + "skills": [ + "storage-and-space-tablespaces-asm" + ], + "inputSchema": { + "type": "object", + "properties": { + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "opc_named_credential_id": { + "type": "string", + "description": "The OCID of the Named Credential." + }, + "tablespace_name": { + "type": "string", + "description": "The name of the tablespace." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id", + "tablespace_name" + ] + }, + "mutable": false + }, + { + "name": "get_top_sql_cpu_activity", + "description": "Returns top SQL CPU activity from an external Exadata storage server for workload hotspot triage.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_top_sql_cpu_activity", + "skills": [ + "external-exadata-storage" + ], + "inputSchema": { + "type": "object", + "properties": { + "external_exadata_storage_server_id": { + "type": "string", + "description": "The OCID of the Exadata storage server." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "external_exadata_storage_server_id" + ] + }, + "mutable": false + }, + { + "name": "get_user", + "description": "Returns details for one user identified by userName in a managed database.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_user", + "skills": [ + "users-and-privileges-rbac-audit" + ], + "inputSchema": { + "type": "object", + "properties": { + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "opc_named_credential_id": { + "type": "string", + "description": "The OCID of the Named Credential." + }, + "user_name": { + "type": "string", + "description": "The name of the user whose details are to be viewed." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id", + "user_name" + ] + }, + "mutable": false + }, + { + "name": "get_work_request", + "description": "Returns status for one work request so admins can confirm completion state and execution outcome.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "get_work_request", + "skills": [ + "async-work-requests-long-running-operations" + ], + "inputSchema": { + "type": "object", + "properties": { + "work_request_id": { + "type": "string", + "description": "The OCID of the asynchronous work request." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "work_request_id" + ] + }, + "mutable": false + }, + { + "name": "list_addm_db_finding_categories", + "description": "Summarizes ADDM finding categories with counts and affected databases.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_addm_db_finding_categories", + "skills": [ + "database-addm-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "compartment_id_in_subtree": { + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." + }, + "database_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database OCIDs of the associated DBaaS entity." + }, + "id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource OCIDs." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "sort_by": { + "type": "string", + "enum": [ + "name" + ], + "description": "Field name for sorting the finding categories Allowed values are: \"name\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id" + ] + }, + "mutable": false + }, + { + "name": "list_addm_db_findings_time_series", + "description": "Shows the trend of ADDM finding counts over time by database.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_addm_db_findings_time_series", + "skills": [ + "database-addm-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "category_name": { + "type": "string", + "description": "Optional value filter to match the finding category exactly." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "compartment_id_in_subtree": { + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." + }, + "database_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database OCIDs of the associated DBaaS entity." + }, + "id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource OCIDs." + }, + "instance_number": { + "type": "string", + "description": "The optional single value query parameter to filter by database instance number." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "sort_by": { + "type": "string", + "enum": [ + "timestamp" + ], + "description": "Field name for sorting the ADDM finding time series summary data Allowed values are: \"timestamp\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id" + ] + }, + "mutable": false + }, + { + "name": "list_addm_db_parameter_categories", + "description": "Lists ADDM parameter categories used to filter and group parameter findings.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_addm_db_parameter_categories", + "skills": [ + "database-addm-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "compartment_id_in_subtree": { + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." + }, + "database_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database OCIDs of the associated DBaaS entity." + }, + "id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource OCIDs." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "sort_by": { + "type": "string", + "enum": [ + "name" + ], + "description": "Field name for sorting the database parameter categories Allowed values are: \"name\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id" + ] + }, + "mutable": false + }, + { + "name": "list_addm_db_recommendation_categories", + "description": "Summarizes ADDM recommendation categories with counts and impacted databases.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_addm_db_recommendation_categories", + "skills": [ + "database-addm-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "compartment_id_in_subtree": { + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." + }, + "database_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database OCIDs of the associated DBaaS entity." + }, + "id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource OCIDs." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "sort_by": { + "type": "string", + "enum": [ + "name" + ], + "description": "Field name for sorting the recommendation categories Allowed values are: \"name\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id" + ] + }, + "mutable": false + }, + { + "name": "list_addm_db_recommendations_time_series", + "description": "Shows ADDM recommendation volume trend over time by database/category.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_addm_db_recommendations_time_series", + "skills": [ + "database-addm-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "category_name": { + "type": "string", + "description": "Optional value filter to match the finding category exactly." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "compartment_id_in_subtree": { + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." + }, + "database_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database OCIDs of the associated DBaaS entity." + }, + "id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource OCIDs." + }, + "instance_number": { + "type": "string", + "description": "The optional single value query parameter to filter by database instance number." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "name": { + "type": "string", + "description": "Optional filter to return only resources whose name exactly matches the substring given. The match is case sensitive. Only considered when categoryName is DATABASE_CONFIGURATION." + }, + "name_contains": { + "type": "string", + "description": "Optional filter to return only resources whose name contains the substring given. The match is not case sensitive. Only considered when categoryName is DATABASE_CONFIGURATION." + }, + "owner_or_name_contains": { + "type": "string", + "description": "Optional filter to return only resources whose owner or name contains the substring given. The match is not case sensitive. Only considered when categoryName is SCHEMA_OBJECT." + }, + "sort_by": { + "type": "string", + "enum": [ + "timestamp" + ], + "description": "Field name for sorting the ADDM recommendation time series summary data Allowed values are: \"timestamp\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "sql_identifier": { + "type": "string", + "description": "Optional filter to return only resources whose sql id matches the value given. Only considered when categoryName is SQL_TUNING." + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id" + ] + }, + "mutable": false + }, + { + "name": "list_addm_dbs", + "description": "Lists databases included in ADDM analysis for the selected scope and time interval.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_addm_dbs", + "skills": [ + "database-addm-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "compartment_id_in_subtree": { + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." + }, + "database_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database OCIDs of the associated DBaaS entity." + }, + "id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource OCIDs." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "sort_by": { + "type": "string", + "enum": [ + "databaseName", + "numberOfFindings" + ], + "description": "Field name for sorting ADDM database data Allowed values are: \"databaseName\", \"numberOfFindings\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id" + ] + }, + "mutable": false + }, + { + "name": "list_alert_logs", + "description": "Returns alert log entries for a managed database so you can inspect warning/error history over a time range.", + "service": "dbm", + "client": "DiagnosabilityClient", + "operation": "list_alert_logs", + "skills": [ + "logs-and-alerts-attention-alert-logs" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "is_regular_expression": { + "type": "boolean", + "description": "The flag to indicate whether the search text is regular expression or not." + }, + "level_filter": { + "type": "string", + "enum": [ + "CRITICAL", + "SEVERE", + "IMPORTANT", + "NORMAL", + "ALL" + ], + "description": "The optional parameter to filter the alert logs by log level.\n\nAllowed values are: \"CRITICAL\", \"SEVERE\", \"IMPORTANT\", \"NORMAL\", \"ALL\"" + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "log_search_text": { + "type": "string", + "description": "The optional query parameter to filter the attention or alert logs by search text." + }, + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "opc_named_credential_id": { + "type": "string", + "description": "The OCID of the Named Credential." + }, + "sort_by": { + "type": "string", + "enum": [ + "LEVEL", + "TYPE", + "MESSAGE", + "TIMESTAMP" + ], + "description": "The possible sortBy values of attention logs.\n\nAllowed values are: \"LEVEL\", \"TYPE\", \"MESSAGE\", \"TIMESTAMP\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "time_greater_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional greater than or equal to timestamp to filter the logs." + }, + "time_less_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional less than or equal to timestamp to filter the logs." + }, + "type_filter": { + "type": "string", + "enum": [ + "UNKNOWN", + "INCIDENT_ERROR", + "ERROR", + "WARNING", + "NOTIFICATION", + "TRACE", + "ALL" + ], + "description": "The optional parameter to filter the attention or alert logs by type.\n\nAllowed values are: \"UNKNOWN\", \"INCIDENT_ERROR\", \"ERROR\", \"WARNING\", \"NOTIFICATION\", \"TRACE\", \"ALL\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id" + ] + }, + "mutable": false + }, + { + "name": "list_asm_properties", + "description": "Returns ASM properties for a managed database so you can inspect storage configuration values.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_asm_properties", + "skills": [ + "storage-and-space-tablespaces-asm" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "name": { + "type": "string", + "description": "A filter to return only resources that match the entire name." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIMECREATED", + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id" + ] + }, + "mutable": false + }, + { + "name": "list_associated_databases", + "description": "Returns databases associated with a specific Database Management private endpoint so you can validate endpoint usage.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_associated_databases", + "skills": [ + "private-endpoints-and-connectivity" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "db_management_private_endpoint_id": { + "type": "string", + "description": "The OCID of the Database Management private endpoint." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "sort_by": { + "type": "string", + "enum": [ + "timeRegistered" + ], + "description": "The option to sort databases using a specific Database Management private endpoint.\n\nAllowed values are: \"timeRegistered\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "db_management_private_endpoint_id", + "compartment_id" + ] + }, + "mutable": false + }, + { + "name": "list_attention_logs", + "description": "Returns attention log entries for a managed database so you can review urgent operational messages and actions.", + "service": "dbm", + "client": "DiagnosabilityClient", + "operation": "list_attention_logs", + "skills": [ + "logs-and-alerts-attention-alert-logs" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "is_regular_expression": { + "type": "boolean", + "description": "The flag to indicate whether the search text is regular expression or not." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "log_search_text": { + "type": "string", + "description": "The optional query parameter to filter the attention or alert logs by search text." + }, + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "opc_named_credential_id": { + "type": "string", + "description": "The OCID of the Named Credential." + }, + "sort_by": { + "type": "string", + "enum": [ + "URGENCY", + "TYPE", + "MESSAGE", + "TIMESTAMP", + "SCOPE", + "TARGET_USER" + ], + "description": "The possible sortBy values of attention logs.\n\nAllowed values are: \"URGENCY\", \"TYPE\", \"MESSAGE\", \"TIMESTAMP\", \"SCOPE\", \"TARGET_USER\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "time_greater_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional greater than or equal to timestamp to filter the logs." + }, + "time_less_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional less than or equal to timestamp to filter the logs." + }, + "type_filter": { + "type": "string", + "enum": [ + "UNKNOWN", + "INCIDENT_ERROR", + "ERROR", + "WARNING", + "NOTIFICATION", + "TRACE", + "ALL" + ], + "description": "The optional parameter to filter the attention or alert logs by type.\n\nAllowed values are: \"UNKNOWN\", \"INCIDENT_ERROR\", \"ERROR\", \"WARNING\", \"NOTIFICATION\", \"TRACE\", \"ALL\"" + }, + "urgency_filter": { + "type": "string", + "enum": [ + "IMMEDIATE", + "SOON", + "DEFERRABLE", + "INFO", + "ALL" + ], + "description": "The optional parameter to filter the attention logs by urgency.\n\nAllowed values are: \"IMMEDIATE\", \"SOON\", \"DEFERRABLE\", \"INFO\", \"ALL\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id" + ] + }, + "mutable": false + }, + { + "name": "list_awr_database_snapshots", + "description": "Returns AWR snapshots for a database, including snapshot ID, begin time, and interval boundaries.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_awr_database_snapshots", + "skills": [ + "database-performance-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "awr_hub_id": { + "type": "string", + "description": "Unique Awr Hub identifier" + }, + "awr_source_database_identifier": { + "type": "string", + "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results." + }, + "begin_snapshot_identifier_greater_than_or_equal_to": { + "type": "integer", + "description": "The optional greater than or equal to filter on the snapshot ID." + }, + "end_snapshot_identifier_less_than_or_equal_to": { + "type": "integer", + "description": "The optional less than or equal to query parameter to filter the snapshot Identifier." + }, + "instance_number": { + "type": "string", + "description": "The optional single value query parameter to filter by database instance number." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIME_BEGIN", + "SNAPSHOT_ID" + ], + "description": "The option to sort the AWR snapshot summary data. Allowed values are: \"TIME_BEGIN\", \"SNAPSHOT_ID\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "time_greater_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" + }, + "time_less_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "awr_hub_id", + "awr_source_database_identifier" + ] + }, + "mutable": false + }, + { + "name": "list_awr_databases", + "description": "Returns AWR source databases registered in a hub, including database names, identifiers, and most recent interval metadata.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_awr_databases", + "skills": [ + "database-performance-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "awr_hub_id": { + "type": "string", + "description": "Unique Awr Hub identifier" + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "name": { + "type": "string", + "description": "The optional single value query parameter to filter the entity name." + }, + "sort_by": { + "type": "string", + "enum": [ + "END_INTERVAL_TIME", + "NAME" + ], + "description": "The option to sort the AWR summary data. Allowed values are: \"END_INTERVAL_TIME\", \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "time_greater_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" + }, + "time_less_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "awr_hub_id" + ] + }, + "mutable": false + }, + { + "name": "list_awr_db_snapshots", + "description": "Returns AWR snapshots for one AWR database so you can choose analysis ranges.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_awr_db_snapshots", + "skills": [ + "awr-discovery-primitives" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "awr_db_id": { + "type": "string", + "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results." + }, + "begin_sn_id_greater_than_or_equal_to": { + "type": "integer", + "description": "The optional greater than or equal to filter on the snapshot ID." + }, + "container_id": { + "type": "integer", + "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results." + }, + "end_sn_id_less_than_or_equal_to": { + "type": "integer", + "description": "The optional less than or equal to query parameter to filter the snapshot ID." + }, + "inst_num": { + "type": "string", + "description": "The optional single value query parameter to filter the database instance number." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "opc_named_credential_id": { + "type": "string", + "description": "The OCID of the Named Credential." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIME_BEGIN", + "SNAPSHOT_ID" + ], + "description": "The option to sort the AWR snapshot summary data.\n\nAllowed values are: \"TIME_BEGIN\", \"SNAPSHOT_ID\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "time_greater_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional greater than or equal to query parameter to filter the timestamp." + }, + "time_less_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp." + }, + "opc_request_id": { + "type": "string" + }, + "opc_retry_token": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id", + "awr_db_id" + ] + }, + "mutable": false + }, + { + "name": "list_awr_dbs", + "description": "Returns AWR databases and snapshot coverage for a managed database.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_awr_dbs", + "skills": [ + "awr-discovery-primitives" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "name": { + "type": "string", + "description": "The optional single value query parameter to filter the entity name." + }, + "opc_named_credential_id": { + "type": "string", + "description": "The OCID of the Named Credential." + }, + "sort_by": { + "type": "string", + "enum": [ + "END_INTERVAL_TIME", + "NAME" + ], + "description": "The option to sort the AWR summary data.\n\nAllowed values are: \"END_INTERVAL_TIME\", \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "time_greater_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional greater than or equal to query parameter to filter the timestamp." + }, + "time_less_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp." + }, + "opc_request_id": { + "type": "string" + }, + "opc_retry_token": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id" + ] + }, + "mutable": false + }, + { + "name": "list_cloud_asm_disk_groups", + "description": "Lists the cloud ASM disk groups.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_cloud_asm_disk_groups", + "skills": [ + "cloud-asm-core" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "cloud_asm_id": { + "type": "string", + "description": "The OCID of the cloud ASM." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "opc_named_credential_id": { + "type": "string", + "description": "The OCID of the Named Credential." + }, + "sort_by": { + "type": "string", + "enum": [ + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "cloud_asm_id" + ] + }, + "mutable": false + }, + { + "name": "list_cloud_asm_instances", + "description": "Lists the cloud ASM instances.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_cloud_asm_instances", + "skills": [ + "cloud-asm-core" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "cloud_asm_id": { + "type": "string", + "description": "The OCID of the cloud ASM." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "display_name": { + "type": "string", + "description": "A filter to only return the resources that match the entire display name." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIMECREATED", + "DISPLAYNAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false + }, + "mutable": false + }, + { + "name": "list_cloud_asm_users", + "description": "Lists the cloud ASM users.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_cloud_asm_users", + "skills": [ + "cloud-asm-core" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "cloud_asm_id": { + "type": "string", + "description": "The OCID of the cloud ASM." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "opc_named_credential_id": { + "type": "string", + "description": "The OCID of the Named Credential." + }, + "sort_by": { + "type": "string", + "enum": [ + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "cloud_asm_id" + ] + }, + "mutable": false + }, + { + "name": "list_cloud_asms", + "description": "Lists the cloud ASMs.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_cloud_asms", + "skills": [ + "cloud-asm-core" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "cloud_db_system_id": { + "type": "string", + "description": "The OCID of the cloud DB system." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "display_name": { + "type": "string", + "description": "A filter to only return the resources that match the entire display name." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIMECREATED", + "DISPLAYNAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false + }, + "mutable": false + }, + { + "name": "list_cloud_cluster_instances", + "description": "Lists the cloud cluster instances.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_cloud_cluster_instances", + "skills": [ + "cloud-db-runtime-topology" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "cloud_cluster_id": { + "type": "string", + "description": "The OCID of the cloud cluster." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "display_name": { + "type": "string", + "description": "A filter to only return the resources that match the entire display name." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIMECREATED", + "DISPLAYNAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false + }, + "mutable": false + }, + { + "name": "list_cloud_clusters", + "description": "Lists the cloud clusters.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_cloud_clusters", + "skills": [ + "cloud-db-runtime-topology" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "cloud_db_system_id": { + "type": "string", + "description": "The OCID of the cloud DB system." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "display_name": { + "type": "string", + "description": "A filter to only return the resources that match the entire display name." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIMECREATED", + "DISPLAYNAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false + }, + "mutable": false + }, + { + "name": "list_cloud_databases", + "description": "Returns cloud databases for a Cloud DB system so admins can verify database inventory under the selected system.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_cloud_databases", + "skills": [ + "cloud-inventory-discovery-connectivity" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "cloud_db_system_id": { + "type": "string", + "description": "The OCID of the cloud DB system." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "display_name": { + "type": "string", + "description": "A filter to only return the resources that match the entire display name." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIMECREATED", + "DISPLAYNAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "cloud_db_system_id" + ] + }, + "mutable": false + }, + { + "name": "list_cloud_db_homes", + "description": "Lists the cloud DB homes.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_cloud_db_homes", + "skills": [ + "cloud-db-runtime-topology" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "cloud_db_system_id": { + "type": "string", + "description": "The OCID of the cloud DB system." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "display_name": { + "type": "string", + "description": "A filter to only return the resources that match the entire display name." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIMECREATED", + "DISPLAYNAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false + }, + "mutable": false + }, + { + "name": "list_cloud_db_nodes", + "description": "Lists the cloud DB nodes.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_cloud_db_nodes", + "skills": [ + "cloud-db-runtime-topology" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "cloud_db_system_id": { + "type": "string", + "description": "The OCID of the cloud DB system." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "display_name": { + "type": "string", + "description": "A filter to only return the resources that match the entire display name." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIMECREATED", + "DISPLAYNAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false + }, + "mutable": false + }, + { + "name": "list_cloud_db_system_connectors", + "description": "Lists the cloud connectors.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_cloud_db_system_connectors", + "skills": [ + "cloud-db-runtime-topology" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "cloud_db_system_id": { + "type": "string", + "description": "The OCID of the cloud DB system." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "display_name": { + "type": "string", + "description": "A filter to only return the resources that match the entire display name." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIMECREATED", + "DISPLAYNAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false + }, + "mutable": false + }, + { + "name": "list_cloud_db_system_discoveries", + "description": "Returns Cloud DB system discovery inventory so admins can review discovered targets and discovery state.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_cloud_db_system_discoveries", + "skills": [ + "cloud-inventory-discovery-connectivity" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "display_name": { + "type": "string", + "description": "A filter to only return the resources that match the entire display name." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIMECREATED", + "DISPLAYNAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id" + ] + }, + "mutable": false + }, + { + "name": "list_cloud_db_systems", + "description": "Returns Cloud DB system inventory so admins can identify managed targets and runtime scope.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_cloud_db_systems", + "skills": [ + "cloud-inventory-discovery-connectivity" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "dbaas_parent_infrastructure_id": { + "type": "string", + "description": "The OCID of the dbaas parent infrastructure of the cloud DB system." + }, + "deployment_type": { + "type": "string", + "enum": [ + "VM", + "EXADATA", + "EXADATA_CC", + "EXADATA_XS" + ], + "description": "A filter to return cloud DB systems of the specified deployment type.\n\nAllowed values are: \"VM\", \"EXADATA\", \"EXADATA_CC\", \"EXADATA_XS\"" + }, + "display_name": { + "type": "string", + "description": "A filter to only return the resources that match the entire display name." + }, + "lifecycle_state": { + "type": "string", + "enum": [ + "CREATING", + "ACTIVE", + "UPDATING", + "DELETING", + "DELETED", + "INACTIVE" + ], + "description": "The lifecycle state of a resource.\n\nAllowed values are: \"CREATING\", \"ACTIVE\", \"UPDATING\", \"DELETING\", \"DELETED\", \"INACTIVE\"" + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIMECREATED", + "DISPLAYNAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id" + ] + }, + "mutable": false + }, + { + "name": "list_cloud_exadata_infrastructures", + "description": "Returns Cloud Exadata infrastructure inventory so admins can select the correct infrastructure scope for discovery and connectivity checks.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_cloud_exadata_infrastructures", + "skills": [ + "cloud-inventory-discovery-connectivity" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "display_name": { + "type": "string", + "description": "The optional single value query filter parameter on the entity display name." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIMECREATED", + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id" + ] + }, + "mutable": false + }, + { + "name": "list_cloud_exadata_storage_connectors", + "description": "Returns Cloud Exadata storage connector inventory so admins can review available connector targets and connectivity coverage.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_cloud_exadata_storage_connectors", + "skills": [ + "cloud-exadata-storage" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "cloud_exadata_infrastructure_id": { + "type": "string", + "description": "The OCID of the Exadata infrastructure." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "display_name": { + "type": "string", + "description": "The optional single value query filter parameter on the entity display name." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIMECREATED", + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", + "cloud_exadata_infrastructure_id" + ] + }, + "mutable": false + }, + { + "name": "list_cloud_exadata_storage_servers", + "description": "Returns Cloud Exadata storage server inventory so admins can identify server targets for storage diagnostics.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_cloud_exadata_storage_servers", + "skills": [ + "cloud-exadata-storage" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "cloud_exadata_infrastructure_id": { + "type": "string", + "description": "The OCID of the Exadata infrastructure." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "display_name": { + "type": "string", + "description": "The optional single value query filter parameter on the entity display name." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIMECREATED", + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", + "cloud_exadata_infrastructure_id" + ] + }, + "mutable": false + }, + { + "name": "list_cloud_listener_services", + "description": "Lists the database services registered with the cloud listener.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_cloud_listener_services", + "skills": [ + "cloud-db-runtime-topology" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "cloud_listener_id": { + "type": "string", + "description": "The OCID of the cloud listener." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "opc_named_credential_id": { + "type": "string", + "description": "The OCID of the Named Credential." + }, + "sort_by": { + "type": "string", + "enum": [ + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "cloud_listener_id", + "managed_database_id" + ] + }, + "mutable": false + }, + { + "name": "list_cloud_listeners", + "description": "Lists the cloud listeners.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_cloud_listeners", + "skills": [ + "cloud-db-runtime-topology" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "cloud_db_system_id": { + "type": "string", + "description": "The OCID of the cloud DB system." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "display_name": { + "type": "string", + "description": "A filter to only return the resources that match the entire display name." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIMECREATED", + "DISPLAYNAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false + }, + "mutable": false + }, + { + "name": "list_consumer_group_privileges", + "description": "Returns consumer group privileges granted to a specific user.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_consumer_group_privileges", + "skills": [ + "users-and-privileges-rbac-audit" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "name": { + "type": "string", + "description": "A filter to return only resources that match the entire name." + }, + "opc_named_credential_id": { + "type": "string", + "description": "The OCID of the Named Credential." + }, + "sort_by": { + "type": "string", + "enum": [ + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018NAME\u2019 is ascending. The \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "user_name": { + "type": "string", + "description": "The name of the user whose details are to be viewed." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id", + "user_name" + ] + }, + "mutable": false + }, + { + "name": "list_data_access_containers", + "description": "Returns data access containers available to the specified user.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_data_access_containers", + "skills": [ + "users-and-privileges-rbac-audit" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "name": { + "type": "string", + "description": "A filter to return only resources that match the entire name." + }, + "opc_named_credential_id": { + "type": "string", + "description": "The OCID of the Named Credential." + }, + "sort_by": { + "type": "string", + "enum": [ + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018NAME\u2019 is ascending. The \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "user_name": { + "type": "string", + "description": "The name of the user whose details are to be viewed." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id", + "user_name" + ] + }, + "mutable": false + }, + { + "name": "list_database_configurations", + "description": "Gets a list of database insights configuration.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_database_configurations", + "skills": [ + "database-inventory" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "cdb_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more cdb name." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "compartment_id_in_subtree": { + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." + }, + "database_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database OCIDs of the associated DBaaS entity." + }, + "database_type": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "ADW-S", + "ATP-S", + "ADW-D", + "ATP-D", + "EXTERNAL-PDB", + "EXTERNAL-NONCDB", + "COMANAGED-VM-CDB", + "COMANAGED-VM-PDB", + "COMANAGED-VM-NONCDB", + "COMANAGED-BM-CDB", + "COMANAGED-BM-PDB", + "COMANAGED-BM-NONCDB", + "COMANAGED-EXACS-CDB", + "COMANAGED-EXACS-PDB", + "COMANAGED-EXACS-NONCDB", + "COMANAGED-EXACC-CDB", + "COMANAGED-EXACC-PDB", + "COMANAGED-EXACC-NONCDB", + "MDS-MYSQL", + "EXTERNAL-MYSQL", + "ATP-EXACC", + "ADW-EXACC", + "EXTERNAL-ADW", + "EXTERNAL-ATP", + "LH-D", + "APEX-D", + "AJD-D", + "AVD-D", + "LH-S", + "APEX-S", + "AJD-S", + "AVD-S", + "LH-EXACC", + "APEX-EXACC", + "AJD-EXACC", + "AVD-EXACC" + ] + }, + "description": "Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: \"ADW-S\", \"ATP-S\", \"ADW-D\", \"ATP-D\", \"EXTERNAL-PDB\", \"EXTERNAL-NONCDB\", \"COMANAGED-VM-CDB\", \"COMANAGED-VM-PDB\", \"COMANAGED-VM-NONCDB\", \"COMANAGED-BM-CDB\", \"COMANAGED-BM-PDB\", \"COMANAGED-BM-NONCDB\", \"COMANAGED-EXACS-CDB\", \"COMANAGED-EXACS-PDB\", \"COMANAGED-EXACS-NONCDB\", \"COMANAGED-EXACC-CDB\", \"COMANAGED-EXACC-PDB\", \"COMANAGED-EXACC-NONCDB\", \"MDS-MYSQL\", \"EXTERNAL-MYSQL\", \"ATP-EXACC\", \"ADW-EXACC\", \"EXTERNAL-ADW\", \"EXTERNAL-ATP\", \"LH-D\", \"APEX-D\", \"AJD-D\", \"AVD-D\", \"LH-S\", \"APEX-S\", \"AJD-S\", \"AVD-S\", \"LH-EXACC\", \"APEX-EXACC\", \"AJD-EXACC\", \"AVD-EXACC\"" + }, + "enterprise_manager_bridge_id": { + "type": "string", + "description": "Unique Enterprise Manager bridge identifier" + }, + "exadata_insight_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of exadata insight resource OCIDs." + }, + "host_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more hostname." + }, + "id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource OCIDs." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "sort_by": { + "type": "string", + "enum": [ + "databaseName", + "databaseDisplayName", + "databaseType" + ], + "description": "Database configuration list sort options. If `fields` parameter is selected, the `sortBy` parameter must be one of the fields specified. Allowed values are: \"databaseName\", \"databaseDisplayName\", \"databaseType\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "vmcluster_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of Exadata Insight VM cluster name." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false + }, + "mutable": false + }, + { + "name": "list_database_insights", + "description": "Returns Operations Insights inventory for selected scope and filters so admins can verify insight coverage, status, and candidate databaseInsightId values.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_database_insights", + "skills": [ + "database-inventory" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "compartment_id_in_subtree": { + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." + }, + "database_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database OCIDs of the associated DBaaS entity." + }, + "database_type": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "ADW-S", + "ATP-S", + "ADW-D", + "ATP-D", + "EXTERNAL-PDB", + "EXTERNAL-NONCDB", + "COMANAGED-VM-CDB", + "COMANAGED-VM-PDB", + "COMANAGED-VM-NONCDB", + "COMANAGED-BM-CDB", + "COMANAGED-BM-PDB", + "COMANAGED-BM-NONCDB", + "COMANAGED-EXACS-CDB", + "COMANAGED-EXACS-PDB", + "COMANAGED-EXACS-NONCDB", + "COMANAGED-EXACC-CDB", + "COMANAGED-EXACC-PDB", + "COMANAGED-EXACC-NONCDB", + "MDS-MYSQL", + "EXTERNAL-MYSQL", + "ATP-EXACC", + "ADW-EXACC", + "EXTERNAL-ADW", + "EXTERNAL-ATP", + "LH-D", + "APEX-D", + "AJD-D", + "AVD-D", + "LH-S", + "APEX-S", + "AJD-S", + "AVD-S", + "LH-EXACC", + "APEX-EXACC", + "AJD-EXACC", + "AVD-EXACC" + ] + }, + "description": "Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: \"ADW-S\", \"ATP-S\", \"ADW-D\", \"ATP-D\", \"EXTERNAL-PDB\", \"EXTERNAL-NONCDB\", \"COMANAGED-VM-CDB\", \"COMANAGED-VM-PDB\", \"COMANAGED-VM-NONCDB\", \"COMANAGED-BM-CDB\", \"COMANAGED-BM-PDB\", \"COMANAGED-BM-NONCDB\", \"COMANAGED-EXACS-CDB\", \"COMANAGED-EXACS-PDB\", \"COMANAGED-EXACS-NONCDB\", \"COMANAGED-EXACC-CDB\", \"COMANAGED-EXACC-PDB\", \"COMANAGED-EXACC-NONCDB\", \"MDS-MYSQL\", \"EXTERNAL-MYSQL\", \"ATP-EXACC\", \"ADW-EXACC\", \"EXTERNAL-ADW\", \"EXTERNAL-ATP\", \"LH-D\", \"APEX-D\", \"AJD-D\", \"AVD-D\", \"LH-S\", \"APEX-S\", \"AJD-S\", \"AVD-S\", \"LH-EXACC\", \"APEX-EXACC\", \"AJD-EXACC\", \"AVD-EXACC\"" + }, + "enterprise_manager_bridge_id": { + "type": "string", + "description": "Unique Enterprise Manager bridge identifier" + }, + "exadata_insight_id": { + "type": "string", + "description": "OCID of exadata insight resource." + }, + "fields": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "compartmentId", + "databaseName", + "databaseDisplayName", + "databaseType", + "databaseVersion", + "databaseHostNames", + "freeformTags", + "definedTags" + ] + }, + "description": "Specifies the fields to return in a database summary response. By default all fields are returned if omitted. Allowed values are: \"compartmentId\", \"databaseName\", \"databaseDisplayName\", \"databaseType\", \"databaseVersion\", \"databaseHostNames\", \"freeformTags\", \"definedTags\"" + }, + "id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource OCIDs." + }, + "lifecycle_state": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "CREATING", + "UPDATING", + "ACTIVE", + "DELETING", + "DELETED", + "FAILED", + "NEEDS_ATTENTION" + ] + }, + "description": "Lifecycle states Allowed values are: \"CREATING\", \"UPDATING\", \"ACTIVE\", \"DELETING\", \"DELETED\", \"FAILED\", \"NEEDS_ATTENTION\"" + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "opsi_private_endpoint_id": { + "type": "string", + "description": "Unique Operations Insights PrivateEndpoint identifier" + }, + "sort_by": { + "type": "string", + "enum": [ + "databaseName", + "databaseDisplayName", + "databaseType" + ], + "description": "Database insight list sort options. If `fields` parameter is selected, the `sortBy` parameter must be one of the fields specified. Allowed values are: \"databaseName\", \"databaseDisplayName\", \"databaseType\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "status": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED", + "TERMINATED" + ] + }, + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false + }, + "mutable": false + }, + { + "name": "list_database_parameters", + "description": "Returns database parameter inventory so admins can review effective configuration values and identify parameter drift", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_database_parameters", + "skills": [ + "database-configuration-and-parameters" + ], + "inputSchema": { + "type": "object", + "properties": { + "is_allowed_values_included": { + "type": "boolean", + "description": "When true, results include a list of valid values for parameters (if applicable)." + }, + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "name": { + "type": "string", + "description": "A filter to return all parameters that have the text given in their names." + }, + "opc_named_credential_id": { + "type": "string", + "description": "The OCID of the Named Credential." + }, + "sort_by": { + "type": "string", + "enum": [ + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "source": { + "type": "string", + "enum": [ + "CURRENT", + "SPFILE" + ], + "description": "The source used to list database parameters. `CURRENT` is used to get the\ndatabase parameters that are currently in effect for the database\ninstance. `SPFILE` is used to list parameters from the server parameter\nfile. Default is `CURRENT`.\n\nAllowed values are: \"CURRENT\", \"SPFILE\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id" + ] + }, + "mutable": false + }, + { + "name": "list_db_management_private_endpoints", + "description": "Returns Database Management private endpoints in a compartment so you can discover endpoint IDs and connectivity scope.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_db_management_private_endpoints", + "skills": [ + "private-endpoints-and-connectivity" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "is_cluster": { + "type": "boolean", + "description": "The option to filter Database Management private endpoints that can used for Oracle Databases in a cluster. This should be used along with the vcnId query parameter." + }, + "is_dns_resolution_enabled": { + "type": "boolean", + "description": "The option to filter Database Management private endpoints which are endbled with DNS proxy server. This should be used along with the vcnId query parameter.\nOnly one of this parameter and IsClusterDbManagementPrivateEndpointQueryParam should be set to true at one time." + }, + "lifecycle_state": { + "type": "string", + "enum": [ + "CREATING", + "UPDATING", + "ACTIVE", + "DELETING", + "DELETED", + "FAILED" + ], + "description": "The lifecycle state of a resource.\n\nAllowed values are: \"CREATING\", \"UPDATING\", \"ACTIVE\", \"DELETING\", \"DELETED\", \"FAILED\"" + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "name": { + "type": "string", + "description": "A filter to return only resources that match the entire name." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIMECREATED", + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "vcn_id": { + "type": "string", + "description": "The OCID of the VCN." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id" + ] + }, + "mutable": false + }, + { + "name": "list_exadata_configurations", + "description": "Returns Exadata configuration records, including system identity and configuration items for managed Exadata resources.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_exadata_configurations", + "skills": [ + "exadatainsights" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "compartment_id_in_subtree": { + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." + }, + "exadata_insight_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of exadata insight resource OCIDs." + }, + "exadata_type": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "sort_by": { + "type": "string", + "enum": [ + "exadataName", + "exadataDisplayName", + "exadataType" + ], + "description": "Exadata configuration list sort options. If `fields` parameter is selected, the `sortBy` parameter must be one of the fields specified. Allowed values are: \"exadataName\", \"exadataDisplayName\", \"exadataType\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false + }, + "mutable": false + }, + { + "name": "list_exadata_insights", + "description": "Returns Exadata insight inventory so admins can review monitored Exadata resources and lifecycle coverage.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_exadata_insights", + "skills": [ + "exadatainsights" + ], + "inputSchema": { + "type": "object", + "properties": { + "compartment_id": { + "type": "string" + }, + "compartment_id_in_subtree": { + "type": "boolean" + }, + "enterprise_manager_bridge_id": { + "type": "string" + }, + "exadata_type": { + "type": "array", + "items": { + "type": "string" + } + }, + "id": { + "type": "array", + "items": { + "type": "string" + } + }, + "lifecycle_state": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "CREATING", + "UPDATING", + "ACTIVE", + "DELETING", + "DELETED", + "FAILED", + "NEEDS_ATTENTION" + ] + } + }, + "limit": { + "type": "integer" + }, + "opc_request_id": { + "type": "string" + }, + "page": { + "type": "string" + }, + "sort_by": { + "type": "string", + "enum": [ + "timeCreated", + "exadataName" + ] + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ] + }, + "status": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED", + "TERMINATED" + ] + } + } + }, + "additionalProperties": false + }, + "mutable": false + }, + { + "name": "list_external_asm_disk_groups", + "description": "Lists disk groups for an external ASM to review capacity layout and utilization.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_external_asm_disk_groups", + "skills": [ + "external-asm-core" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "external_asm_id": { + "type": "string", + "description": "The OCID of the external ASM." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "opc_named_credential_id": { + "type": "string", + "description": "The OCID of the Named Credential." + }, + "sort_by": { + "type": "string", + "enum": [ + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "external_asm_id" + ] + }, + "mutable": false + }, + { + "name": "list_external_asm_instances", + "description": "Lists ASM instances for an external ASM so you can map hosts and lifecycle state.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_external_asm_instances", + "skills": [ + "external-asm-core" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "display_name": { + "type": "string", + "description": "A filter to only return the resources that match the entire display name." + }, + "external_asm_id": { + "type": "string", + "description": "The OCID of the external ASM." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIMECREATED", + "DISPLAYNAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false + }, + "mutable": false + }, + { + "name": "list_external_asm_users", + "description": "Lists ASM users and privileges for access review and troubleshooting.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_external_asm_users", + "skills": [ + "external-asm-core" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "external_asm_id": { + "type": "string", + "description": "The OCID of the external ASM." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "opc_named_credential_id": { + "type": "string", + "description": "The OCID of the Named Credential." + }, + "sort_by": { + "type": "string", + "enum": [ + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "external_asm_id" + ] + }, + "mutable": false + }, + { + "name": "list_external_asms", + "description": "Lists external ASM resources in an external DB system so you can identify target ASM IDs.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_external_asms", + "skills": [ + "external-asm-core" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "display_name": { + "type": "string", + "description": "A filter to only return the resources that match the entire display name." + }, + "external_db_system_id": { + "type": "string", + "description": "The OCID of the external DB system." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIMECREATED", + "DISPLAYNAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false + }, + "mutable": false + }, + { + "name": "list_external_cluster_instances", + "description": "Lists external cluster instances to map instances to the target cluster.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_external_cluster_instances", + "skills": [ + "external-db-runtime-topology" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "display_name": { + "type": "string", + "description": "A filter to only return the resources that match the entire display name." + }, + "external_cluster_id": { + "type": "string", + "description": "The OCID of the external cluster." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIMECREATED", + "DISPLAYNAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false + }, + "mutable": false + }, + { + "name": "list_external_clusters", + "description": "Lists external clusters in an external DB system so you can identify cluster IDs.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_external_clusters", + "skills": [ + "external-db-runtime-topology" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "display_name": { + "type": "string", + "description": "A filter to only return the resources that match the entire display name." + }, + "external_db_system_id": { + "type": "string", + "description": "The OCID of the external DB system." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIMECREATED", + "DISPLAYNAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false + }, + "mutable": false + }, + { + "name": "list_external_databases", + "description": "Lists external databases so you can identify database targets under discovered DB systems.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_external_databases", + "skills": [ + "external-inventory-discovery-connectivity" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "display_name": { + "type": "string", + "description": "A filter to only return the resources that match the entire display name." + }, + "external_database_id": { + "type": "string", + "description": "The OCID of the external database." + }, + "external_db_system_id": { + "type": "string", + "description": "The OCID of the external DB system." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIMECREATED", + "DISPLAYNAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false + }, + "mutable": false + }, + { + "name": "list_external_db_homes", + "description": "Lists external DB homes so you can identify home IDs for version and patch-level checks.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_external_db_homes", + "skills": [ + "external-inventory-discovery-connectivity" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "display_name": { + "type": "string", + "description": "A filter to only return the resources that match the entire display name." + }, + "external_db_system_id": { + "type": "string", + "description": "The OCID of the external DB system." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIMECREATED", + "DISPLAYNAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false + }, + "mutable": false + }, + { + "name": "list_external_db_nodes", + "description": "Lists external DB nodes in an external DB system for node inventory and targeting.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_external_db_nodes", + "skills": [ + "external-db-runtime-topology" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "display_name": { + "type": "string", + "description": "A filter to only return the resources that match the entire display name." + }, + "external_db_system_id": { + "type": "string", + "description": "The OCID of the external DB system." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIMECREATED", + "DISPLAYNAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false + }, + "mutable": false + }, + { + "name": "list_external_db_system_connectors", + "description": "Lists external DB system connectors so you can identify connector IDs and review connector state.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_external_db_system_connectors", + "skills": [ + "external-inventory-discovery-connectivity" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "display_name": { + "type": "string", + "description": "A filter to only return the resources that match the entire display name." + }, + "external_db_system_id": { + "type": "string", + "description": "The OCID of the external DB system." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIMECREATED", + "DISPLAYNAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false + }, + "mutable": false + }, + { + "name": "list_external_db_system_discoveries", + "description": "Lists external DB system discovery resources so you can track discovery runs and outcomes.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_external_db_system_discoveries", + "skills": [ + "external-inventory-discovery-connectivity" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "display_name": { + "type": "string", + "description": "A filter to only return the resources that match the entire display name." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIMECREATED", + "DISPLAYNAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id" + ] + }, + "mutable": false + }, + { + "name": "list_external_db_systems", + "description": "Lists external DB systems so you can identify target DB system IDs for runtime and inventory workflows.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_external_db_systems", + "skills": [ + "external-inventory-discovery-connectivity" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "display_name": { + "type": "string", + "description": "A filter to only return the resources that match the entire display name." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIMECREATED", + "DISPLAYNAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id" + ] + }, + "mutable": false + }, + { + "name": "list_external_exadata_infrastructures", + "description": "Lists external Exadata infrastructures so you can identify infrastructure IDs for downstream discovery and inventory calls.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_external_exadata_infrastructures", + "skills": [ + "external-inventory-discovery-connectivity" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "display_name": { + "type": "string", + "description": "The optional single value query filter parameter on the entity display name." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIMECREATED", + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id" + ] + }, + "mutable": false + }, + { + "name": "list_external_exadata_storage_connectors", + "description": "Lists external Exadata storage connectors so you can identify connector IDs and lifecycle state.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_external_exadata_storage_connectors", + "skills": [ + "external-exadata-storage" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "display_name": { + "type": "string", + "description": "The optional single value query filter parameter on the entity display name." + }, + "external_exadata_infrastructure_id": { + "type": "string", + "description": "The OCID of the Exadata infrastructure." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIMECREATED", + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", + "external_exadata_infrastructure_id" + ] + }, + "mutable": false + }, + { + "name": "list_external_exadata_storage_servers", + "description": "Lists external Exadata storage servers so you can identify target storage server IDs.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_external_exadata_storage_servers", + "skills": [ + "external-exadata-storage" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "display_name": { + "type": "string", + "description": "The optional single value query filter parameter on the entity display name." + }, + "external_exadata_infrastructure_id": { + "type": "string", + "description": "The OCID of the Exadata infrastructure." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIMECREATED", + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", + "external_exadata_infrastructure_id" + ] + }, + "mutable": false + }, + { + "name": "list_external_listener_services", + "description": "Lists services registered to an external listener for service-routing checks.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_external_listener_services", + "skills": [ + "external-db-runtime-topology" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "external_listener_id": { + "type": "string", + "description": "The OCID of the external listener." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "opc_named_credential_id": { + "type": "string", + "description": "The OCID of the Named Credential." + }, + "sort_by": { + "type": "string", + "enum": [ + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "external_listener_id", + "managed_database_id" + ] + }, + "mutable": false + }, + { + "name": "list_external_listeners", + "description": "Lists external listeners in an external DB system so you can identify listener IDs.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_external_listeners", + "skills": [ + "external-db-runtime-topology" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "display_name": { + "type": "string", + "description": "A filter to only return the resources that match the entire display name." + }, + "external_db_system_id": { + "type": "string", + "description": "The OCID of the external DB system." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIMECREATED", + "DISPLAYNAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false + }, + "mutable": false + }, + { + "name": "list_host_configurations", + "description": "Returns host configuration records, including host identity, platform details, and onboarding status in items.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_host_configurations", + "skills": [ + "hostinsights" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "compartment_id_in_subtree": { + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." + }, + "enterprise_manager_bridge_id": { + "type": "string", + "description": "Unique Enterprise Manager bridge identifier" + }, + "exadata_insight_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of exadata insight resource OCIDs." + }, + "host_id": { + "type": "string", + "description": "Optional OCID of the host (Compute Id)." + }, + "host_type": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST" + }, + "id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of host insight resource OCIDs." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "platform_type": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "LINUX", + "SOLARIS", + "SUNOS", + "ZLINUX", + "WINDOWS", + "AIX", + "HP_UX" + ] + }, + "description": "Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: \"LINUX\", \"SOLARIS\", \"SUNOS\", \"ZLINUX\", \"WINDOWS\", \"AIX\", \"HP_UX\"" + }, + "sort_by": { + "type": "string", + "enum": [ + "hostName", + "platformType" + ], + "description": "Host configuration list sort options. Allowed values are: \"hostName\", \"platformType\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "status": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED", + "TERMINATED" + ] + }, + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" + }, + "vmcluster_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of Exadata Insight VM cluster name." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false + }, + "mutable": false + }, + { + "name": "list_host_insights", + "description": "Returns host insight inventory so admins can review monitored host resources and lifecycle coverage.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_host_insights", + "skills": [ + "hostinsights" + ], + "inputSchema": { + "type": "object", + "properties": { + "compartment_id": { + "type": "string" + }, + "compartment_id_in_subtree": { + "type": "boolean" + }, + "enterprise_manager_bridge_id": { + "type": "string" + }, + "exadata_insight_id": { + "type": "string" + }, + "host_type": { + "type": "array", + "items": { + "type": "string" + } + }, + "id": { + "type": "array", + "items": { + "type": "string" + } + }, + "lifecycle_state": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "CREATING", + "UPDATING", + "ACTIVE", + "DELETING", + "DELETED", + "FAILED", + "NEEDS_ATTENTION" + ] + } + }, + "limit": { + "type": "integer" + }, + "opc_request_id": { + "type": "string" + }, + "page": { + "type": "string" + }, + "platform_type": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "LINUX", + "SOLARIS", + "SUNOS", + "ZLINUX", + "WINDOWS", + "AIX", + "HP_UX" + ] + } + }, + "sort_by": { + "type": "string", + "enum": [ + "hostName", + "hostType" + ] + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ] + }, + "status": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED", + "TERMINATED" + ] + } + } + }, + "additionalProperties": false + }, + "mutable": false + }, + { + "name": "list_hosted_entities", + "description": "Returns entities hosted on selected hosts, including entity items and related interval context.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_hosted_entities", + "skills": [ + "hostinsights" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "analysis_time_interval": { + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "exadata_insight_id": { + "type": "string", + "description": "OCID of exadata insight resource." + }, + "host_id": { + "type": "string", + "description": "Optional OCID of the host (Compute Id)." + }, + "host_type": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST" + }, + "id": { + "type": "string", + "description": "Required OCID of the host insight resource." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "platform_type": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "LINUX", + "SOLARIS", + "SUNOS", + "ZLINUX", + "WINDOWS", + "AIX", + "HP_UX" + ] + }, + "description": "Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: \"LINUX\", \"SOLARIS\", \"SUNOS\", \"ZLINUX\", \"WINDOWS\", \"AIX\", \"HP_UX\"" + }, + "sort_by": { + "type": "string", + "enum": [ + "entityName", + "entityType" + ], + "description": "Hosted entity list sort options. Allowed values are: \"entityName\", \"entityType\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "status": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED", + "TERMINATED" + ] + }, + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", + "id" + ] + }, + "mutable": false + }, + { + "name": "list_job_executions", + "description": "Lists job executions so you can review per-target execution outcomes and timing.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_job_executions", + "skills": [ + "job-orchestration-and-execution-tracking" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "id": { + "type": "string", + "description": "The identifier of the resource." + }, + "job_id": { + "type": "string", + "description": "The identifier of the job." + }, + "job_run_id": { + "type": "string", + "description": "The identifier of the job run." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "managed_database_group_id": { + "type": "string", + "description": "The OCID of the Managed Database Group." + }, + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "name": { + "type": "string", + "description": "A filter to return only resources that match the entire name." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIMECREATED", + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "status": { + "type": "string", + "description": "The status of the job execution." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id" + ] + }, + "mutable": false + }, + { + "name": "list_job_runs", + "description": "Lists job runs with status filters so you can track run-level progress and history.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_job_runs", + "skills": [ + "job-orchestration-and-execution-tracking" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "id": { + "type": "string", + "description": "The identifier of the resource." + }, + "job_id": { + "type": "string", + "description": "The identifier of the job." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "managed_database_group_id": { + "type": "string", + "description": "The OCID of the Managed Database Group." + }, + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "name": { + "type": "string", + "description": "A filter to return only resources that match the entire name." + }, + "run_status": { + "type": "string", + "description": "The status of the job run." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIMECREATED", + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id" + ] + }, + "mutable": false + }, + { + "name": "list_jobs", + "description": "Lists jobs in a compartment with optional target filters so you can locate job definitions quickly.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_jobs", + "skills": [ + "job-orchestration-and-execution-tracking" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "id": { + "type": "string", + "description": "The identifier of the resource." + }, + "lifecycle_state": { + "type": "string", + "enum": [ + "ACTIVE", + "INACTIVE" + ], + "description": "The lifecycle state of the job.\n\nAllowed values are: \"ACTIVE\", \"INACTIVE\"" + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "managed_database_group_id": { + "type": "string", + "description": "The OCID of the Managed Database Group." + }, + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "name": { + "type": "string", + "description": "A filter to return only resources that match the entire name." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIMECREATED", + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id" + ] + }, + "mutable": false + }, + { + "name": "list_managed_database_groups", + "description": "Lists managed database groups in a compartment so you can find group IDs and lifecycle state.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_managed_database_groups", + "skills": [ + "managed-database-groups-organize-and-target-sets-of-databases" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "id": { + "type": "string", + "description": "The identifier of the resource." + }, + "lifecycle_state": { + "type": "string", + "enum": [ + "CREATING", + "UPDATING", + "ACTIVE", + "DELETING", + "DELETED", + "FAILED" + ], + "description": "The lifecycle state of a resource.\n\nAllowed values are: \"CREATING\", \"UPDATING\", \"ACTIVE\", \"DELETING\", \"DELETED\", \"FAILED\"" + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "name": { + "type": "string", + "description": "A filter to return only resources that match the entire name." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIMECREATED", + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id" + ] + }, + "mutable": false + }, + { + "name": "list_managed_databases", + "description": "Returns DB Management managed database inventory for a compartment so admins can discover targets and collect managedDatabaseId values.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_managed_databases", + "skills": [ + "database-inventory" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "deployment_type": { + "type": "string", + "enum": [ + "ONPREMISE", + "BM", + "VM", + "EXADATA", + "EXADATA_CC", + "AUTONOMOUS", + "EXADATA_XS" + ], + "description": "A filter to return Managed Databases of the specified deployment type.\n\nAllowed values are: \"ONPREMISE\", \"BM\", \"VM\", \"EXADATA\", \"EXADATA_CC\", \"AUTONOMOUS\", \"EXADATA_XS\"" + }, + "external_exadata_infrastructure_id": { + "type": "string", + "description": "The OCID of the Exadata infrastructure." + }, + "id": { + "type": "string", + "description": "The identifier of the resource." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "management_option": { + "type": "string", + "enum": [ + "BASIC", + "ADVANCED" + ], + "description": "A filter to return Managed Databases with the specified management option.\n\nAllowed values are: \"BASIC\", \"ADVANCED\"" + }, + "name": { + "type": "string", + "description": "A filter to return only resources that match the entire name." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIMECREATED", + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id" + ] + }, + "mutable": false + }, + { + "name": "list_named_credentials", + "description": "Returns named credential inventory so admins can identify available credential objects for database access workflows.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_named_credentials", + "skills": [ + "credentials-and-authentication-preferred-named" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "associated_resource": { + "type": "string", + "description": "The resource associated to the named credential." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "name": { + "type": "string", + "description": "The name of the named credential." + }, + "scope": { + "type": "string", + "enum": [ + "RESOURCE", + "GLOBAL" + ], + "description": "The scope of named credential.\n\nAllowed values are: \"RESOURCE\", \"GLOBAL\"" + }, + "sort_by": { + "type": "string", + "enum": [ + "TIMECREATED", + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "type": { + "type": "string", + "enum": [ + "ORACLE_DB" + ], + "description": "The type of database that is associated to the named credential.\n\nAllowed values are: \"ORACLE_DB\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id" + ] + }, + "mutable": false + }, + { + "name": "list_news_reports", + "description": "Returns news report inventory so admins can triage advisories relevant to Operations Insights administration.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_news_reports", + "skills": [ + "news-reports-and-advisories" + ], + "inputSchema": { + "type": "object", + "properties": { + "compartment_id": { + "type": "string" + }, + "compartment_id_in_subtree": { + "type": "boolean" + }, + "lifecycle_state": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "CREATING", + "UPDATING", + "ACTIVE", + "DELETING", + "DELETED", + "FAILED", + "NEEDS_ATTENTION" + ] + } + }, + "limit": { + "type": "integer" + }, + "news_report_id": { + "type": "string" + }, + "opc_request_id": { + "type": "string" + }, + "page": { + "type": "string" + }, + "sort_by": { + "type": "string", + "enum": [ + "name", + "newsFrequency" + ] + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ] + }, + "status": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED", + "TERMINATED" + ] + } + } + }, + "additionalProperties": false + }, + "mutable": false + }, + { + "name": "list_object_privileges", + "description": "Returns object privileges granted to a specific user.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_object_privileges", + "skills": [ + "users-and-privileges-rbac-audit" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "name": { + "type": "string", + "description": "A filter to return only resources that match the entire name." + }, + "opc_named_credential_id": { + "type": "string", + "description": "The OCID of the Named Credential." + }, + "sort_by": { + "type": "string", + "enum": [ + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018NAME\u2019 is ascending. The \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "user_name": { + "type": "string", + "description": "The name of the user whose details are to be viewed." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id", + "user_name" + ] + }, + "mutable": false + }, + { + "name": "list_operations_insights_private_endpoints", + "description": "Returns private endpoint inventory so admins can audit endpoint coverage and current connectivity state across scope.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_operations_insights_private_endpoints", + "skills": [ + "private-endpoints-and-connectivity" + ], + "inputSchema": { + "type": "object", + "properties": { + "compartment_id": { + "type": "string" + }, + "compartment_id_in_subtree": { + "type": "boolean" + }, + "display_name": { + "type": "string" + }, + "is_used_for_rac_dbs": { + "type": "boolean" + }, + "lifecycle_state": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "CREATING", + "UPDATING", + "ACTIVE", + "DELETING", + "DELETED", + "FAILED", + "NEEDS_ATTENTION" + ] + } + }, + "limit": { + "type": "integer" + }, + "opc_request_id": { + "type": "string" + }, + "opsi_private_endpoint_id": { + "type": "string" + }, + "page": { + "type": "string" + }, + "sort_by": { + "type": "string", + "enum": [ + "timeCreated", + "id", + "displayName" + ] + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ] + }, + "vcn_id": { + "type": "string" + } + }, + "additionalProperties": false + }, + "mutable": false + }, + { + "name": "list_operations_insights_warehouse_users", + "description": "Returns Operations Insights Warehouse User inventory so admins can audit warehouse access coverage and account lifecycle state.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_operations_insights_warehouse_users", + "skills": [ + "operations-insights-warehouse-admin" + ], + "inputSchema": { + "type": "object", + "properties": { + "compartment_id": { + "type": "string" + }, + "display_name": { + "type": "string" + }, + "id": { + "type": "string" + }, + "lifecycle_state": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "CREATING", + "UPDATING", + "ACTIVE", + "DELETING", + "DELETED", + "FAILED" + ] + } + }, + "limit": { + "type": "integer" + }, + "opc_request_id": { + "type": "string" + }, + "operations_insights_warehouse_id": { + "type": "string" + }, + "page": { + "type": "string" + }, + "sort_by": { + "type": "string", + "enum": [ + "timeCreated", + "displayName" + ] + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ] + } + }, + "additionalProperties": false, + "required": [ + "operations_insights_warehouse_id" + ] + }, + "mutable": false + }, + { + "name": "list_operations_insights_warehouses", + "description": "Returns Ops Insights warehouse inventory so admins can review warehouse lifecycle status and platform coverage.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_operations_insights_warehouses", + "skills": [ + "operations-insights-warehouse-admin" + ], + "inputSchema": { + "type": "object", + "properties": { + "compartment_id": { + "type": "string" + }, + "display_name": { + "type": "string" + }, + "id": { + "type": "string" + }, + "lifecycle_state": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "CREATING", + "UPDATING", + "ACTIVE", + "DELETING", + "DELETED", + "FAILED" + ] + } + }, + "limit": { + "type": "integer" + }, + "opc_request_id": { + "type": "string" + }, + "page": { + "type": "string" + }, + "sort_by": { + "type": "string", + "enum": [ + "timeCreated", + "displayName" + ] + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ] + } + }, + "additionalProperties": false + }, + "mutable": false + }, + { + "name": "list_opsi_configurations", + "description": "Returns OPSI configuration resources so admins can audit active configuration state across managed resources.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_opsi_configurations", + "skills": [ + "opsi-configurations-and-datastores" + ], + "inputSchema": { + "type": "object", + "properties": { + "compartment_id": { + "type": "string" + }, + "display_name": { + "type": "string" + }, + "lifecycle_state": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "CREATING", + "UPDATING", + "ACTIVE", + "DELETING", + "DELETED", + "FAILED" + ] + } + }, + "limit": { + "type": "integer" + }, + "opc_request_id": { + "type": "string" + }, + "opsi_config_type": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "UX_CONFIGURATION" + ] + } + }, + "page": { + "type": "string" + }, + "sort_by": { + "type": "string", + "enum": [ + "displayName" + ] + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ] + } + }, + "additionalProperties": false, + "required": [ + "compartment_id" + ] + }, + "mutable": false + }, + { + "name": "list_preferred_credentials", + "description": "Returns preferred credential assignments for a managed database so admins can verify configured authentication context.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_preferred_credentials", + "skills": [ + "credentials-and-authentication-preferred-named" + ], + "inputSchema": { + "type": "object", + "properties": { + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id" + ] + }, + "mutable": false + }, + { + "name": "list_proxied_for_users", + "description": "Returns users on whose behalf the specified user can act as proxy.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_proxied_for_users", + "skills": [ + "users-and-privileges-rbac-audit" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "name": { + "type": "string", + "description": "A filter to return only resources that match the entire name." + }, + "opc_named_credential_id": { + "type": "string", + "description": "The OCID of the Named Credential." + }, + "sort_by": { + "type": "string", + "enum": [ + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018NAME\u2019 is ascending. The \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "user_name": { + "type": "string", + "description": "The name of the user whose details are to be viewed." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id", + "user_name" + ] + }, + "mutable": false + }, + { + "name": "list_proxy_users", + "description": "Returns proxy users who can act as the specified user.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_proxy_users", + "skills": [ + "users-and-privileges-rbac-audit" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "name": { + "type": "string", + "description": "A filter to return only resources that match the entire name." + }, + "opc_named_credential_id": { + "type": "string", + "description": "The OCID of the Named Credential." + }, + "sort_by": { + "type": "string", + "enum": [ + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018NAME\u2019 is ascending. The \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "user_name": { + "type": "string", + "description": "The name of the user whose details are to be viewed." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id", + "user_name" + ] + }, + "mutable": false + }, + { + "name": "list_region_subscriptions", + "description": "Lists region subscriptions for a tenancy. Returns `regionName`, `regionKey`, subscription `status`, and `isHomeRegion` to confirm enabled-region coverage.", + "service": "identity", + "client": "IdentityClient", + "operation": "list_region_subscriptions", + "skills": [ + "oci-common" + ], + "inputSchema": { + "type": "object", + "properties": { + "tenancy_id": { + "type": "string", + "description": "The OCID of the tenancy." + } + }, + "additionalProperties": false, + "required": [ + "tenancy_id" + ] + }, + "mutable": false + }, + { + "name": "list_regions", + "description": "Lists regions offered by Oracle Cloud Infrastructure. Returns region identifiers such as `name` (for example, `us-phoenix-1`) and `key` (for example, `PHX`).", + "service": "identity", + "client": "IdentityClient", + "operation": "list_regions", + "skills": [ + "oci-common" + ], + "inputSchema": { + "type": "object", + "properties": {}, + "additionalProperties": false + }, + "mutable": false + }, + { + "name": "list_roles", + "description": "Returns roles granted to a specific user.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_roles", + "skills": [ + "users-and-privileges-rbac-audit" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "name": { + "type": "string", + "description": "A filter to return only resources that match the entire name." + }, + "opc_named_credential_id": { + "type": "string", + "description": "The OCID of the Named Credential." + }, + "sort_by": { + "type": "string", + "enum": [ + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018NAME\u2019 is ascending. The \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "user_name": { + "type": "string", + "description": "The name of the user whose details are to be viewed." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id", + "user_name" + ] + }, + "mutable": false + }, + { + "name": "list_sql_plans", + "description": "Returns execution plans for a SQL identifier, including plan identifiers and plan text/XML details.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_sql_plans", + "skills": [ + "database-performance-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "database_id": { + "type": "string", + "description": "Optional OCID of the associated DBaaS entity." + }, + "id": { + "type": "string", + "description": "OCID of the database insight resource." + }, + "plan_hash": { + "type": "array", + "items": { + "type": "integer" + }, + "description": "Unique plan hash for a SQL Plan of a particular SQL Statement. Example: `9820154385`" + }, + "sql_identifier": { + "type": "string", + "description": "Unique SQL_ID for a SQL Statement. Example: `6rgjh9bjmy2s7`" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", + "sql_identifier", + "plan_hash" + ] + }, + "mutable": false + }, + { + "name": "list_sql_searches", + "description": "Search SQL by SQL Identifier across databases. DEPRECATED (announced May 2024; no longer functional as of May 31, 2025).", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_sql_searches", + "skills": [ + "database-performance-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "compartment_id": { + "type": "string", + "description": "The [OCID](/iaas/Content/General/Concepts/identifiers.htm) of the compartment." + }, + "sql_identifier": { + "type": "string", + "description": "Unique SQL_ID for a SQL Statement.\nExample: `6rgjh9bjmy2s7`\n" + }, + "analysis_time_interval": { + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time.\nDefault is last 30 days represented by P30D.\nIf timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored.\nExamples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months), . Maximum value allowed is 25 months prior to current time (P25M).\n" + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\nThe minimum allowed value is 2 years prior to the current day.\ntimeIntervalStart and timeIntervalEnd parameters are used together.\nIf analysisTimeInterval is specified, this parameter is ignored.\n" + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\ntimeIntervalStart and timeIntervalEnd are used together.\nIf timeIntervalEnd is not specified, current time is used as timeIntervalEnd.\n" + }, + "page": { + "type": "string", + "description": "For list pagination. The value of the `opc-next-page` response header from\nthe previous \"List\" call. For important details about how pagination works,\nsee [List Pagination](/Content/API/Concepts/usingapi.htm#nine).\n" + }, + "opc_request_id": { + "type": "string", + "description": "Unique Oracle-assigned identifier for the request. If you need to contact\nOracle about a particular request, please provide the request ID.\n" + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of tag filters to apply. Only resources with a defined tag matching the value will be returned.\nEach item in the list has the format \"{namespace}.{tagName}.{value}\". All inputs are case-insensitive.\nMultiple values for the same key (i.e. same namespace and tag name) are interpreted as \"OR\".\nValues for different keys (i.e. different namespaces, different tag names, or both) are interpreted as \"AND\".\n" + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of tag filters to apply. Only resources with a freeform tag matching the value will be returned.\nThe key for each tag is \"{tagName}.{value}\". All inputs are case-insensitive.\nMultiple values for the same tag name are interpreted as \"OR\". Values for different tag names are interpreted as \"AND\".\n" + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of tag existence filters to apply. Only resources for which the specified defined tags exist will be returned.\nEach item in the list has the format \"{namespace}.{tagName}.true\" (for checking existence of a defined tag)\nor \"{namespace}.true\". All inputs are case-insensitive.\nCurrently, only existence (\"true\" at the end) is supported. Absence (\"false\" at the end) is not supported.\nMultiple values for the same key (i.e. same namespace and tag name) are interpreted as \"OR\".\nValues for different keys (i.e. different namespaces, different tag names, or both) are interpreted as \"AND\".\n" + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of tag existence filters to apply. Only resources for which the specified freeform tags exist the value will be returned.\nThe key for each tag is \"{tagName}.true\". All inputs are case-insensitive.\nCurrently, only existence (\"true\" at the end) is supported. Absence (\"false\" at the end) is not supported.\nMultiple values for different tag names are interpreted as \"AND\".\n" + }, + "compartment_id_in_subtree": { + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments.\n" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", + "sql_identifier" + ] + }, + "mutable": false + }, + { + "name": "list_sql_texts", + "description": "Returns SQL text for SQL identifiers, so admins can review the actual statements behind findings.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "list_sql_texts", + "skills": [ + "database-performance-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "compartment_id_in_subtree": { + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." + }, + "database_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database OCIDs of the assosicated DBaaS entity." + }, + "id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database OCIDs of the database insight resource." + }, + "sql_identifier": { + "type": "array", + "items": { + "type": "string" + }, + "description": "One or more unique SQL_IDs for a SQL Statement. Example: `6rgjh9bjmy2s7`" + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", + "sql_identifier" + ] + }, + "mutable": false + }, + { + "name": "list_system_privileges", + "description": "Returns system privileges granted to a specific user.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_system_privileges", + "skills": [ + "users-and-privileges-rbac-audit" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "name": { + "type": "string", + "description": "A filter to return only resources that match the entire name." + }, + "opc_named_credential_id": { + "type": "string", + "description": "The OCID of the Named Credential." + }, + "sort_by": { + "type": "string", + "enum": [ + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018NAME\u2019 is ascending. The \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "user_name": { + "type": "string", + "description": "The name of the user whose details are to be viewed." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id", + "user_name" + ] + }, + "mutable": false + }, + { + "name": "list_tablespaces", + "description": "Returns tablespaces for a managed database so you can review names and storage usage at a list level.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_tablespaces", + "skills": [ + "storage-and-space-tablespaces-asm" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "name": { + "type": "string", + "description": "A filter to return only resources that match the entire name." + }, + "opc_named_credential_id": { + "type": "string", + "description": "The OCID of the Named Credential." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIMECREATED", + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id" + ] + }, + "mutable": false + }, + { + "name": "list_users", + "description": "Returns users for a managed database so you can identify user accounts for access review.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_users", + "skills": [ + "users-and-privileges-rbac-audit" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "name": { + "type": "string", + "description": "A filter to return only resources that match the entire name." + }, + "opc_named_credential_id": { + "type": "string", + "description": "The OCID of the Named Credential." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIMECREATED", + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id" + ] + }, + "mutable": false + }, + { + "name": "list_work_request_errors", + "description": "Returns error entries for one work request so admins can diagnose failure causes.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_work_request_errors", + "skills": [ + "async-work-requests-long-running-operations" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "sort_by": { + "type": "string", + "enum": [ + "timeAccepted" + ], + "description": "The field to sort by. Only one sort order may be provided and the default order for timeAccepted is descending.\n\nAllowed values are: \"timeAccepted\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "work_request_id": { + "type": "string", + "description": "The OCID of the asynchronous work request." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "work_request_id" + ] + }, + "mutable": false + }, + { + "name": "list_work_request_logs", + "description": "Returns log entries for one work request so admins can trace execution progress and timing.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_work_request_logs", + "skills": [ + "async-work-requests-long-running-operations" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "sort_by": { + "type": "string", + "enum": [ + "timeAccepted" + ], + "description": "The field to sort by. Only one sort order may be provided and the default order for timeAccepted is descending.\n\nAllowed values are: \"timeAccepted\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "work_request_id": { + "type": "string", + "description": "The OCID of the asynchronous work request." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "work_request_id" + ] + }, + "mutable": false + }, + { + "name": "list_work_requests", + "description": "Returns work request inventory so admins can track long-running operation progress and find request IDs for drill-down.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "list_work_requests", + "skills": [ + "async-work-requests-long-running-operations" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "resource_id": { + "type": "string", + "description": "The OCID of the resource affected by the work request." + }, + "sort_by": { + "type": "string", + "enum": [ + "timeAccepted" + ], + "description": "The field to sort by. Only one sort order may be provided and the default order for timeAccepted is descending.\n\nAllowed values are: \"timeAccepted\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "status": { + "type": "string", + "enum": [ + "ACCEPTED", + "IN_PROGRESS", + "FAILED", + "SUCCEEDED", + "CANCELING", + "CANCELED" + ], + "description": "A filter that returns the resources whose status matches the given WorkRequestStatus.\n\nAllowed values are: \"ACCEPTED\", \"IN_PROGRESS\", \"FAILED\", \"SUCCEEDED\", \"CANCELING\", \"CANCELED\"" + }, + "work_request_id": { + "type": "string", + "description": "The OCID of the asynchronous work request." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id" + ] + }, + "mutable": false + }, + { + "name": "summarize_addm_db_findings", + "description": "Returns ADDM findings with affected databases and finding details for the selected interval.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_addm_db_findings", + "skills": [ + "database-addm-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "category_name": { + "type": "string", + "description": "Optional value filter to match the finding category exactly." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "compartment_id_in_subtree": { + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." + }, + "database_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database OCIDs of the associated DBaaS entity." + }, + "id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource OCIDs." + }, + "instance_number": { + "type": "string", + "description": "The optional single value query parameter to filter by database instance number." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "sort_by": { + "type": "string", + "enum": [ + "impactOverallPercent", + "impactMaxPercent", + "impactAvgActiveSessions", + "frequencyCount" + ], + "description": "Field name for sorting the ADDM finding summary data Allowed values are: \"impactOverallPercent\", \"impactMaxPercent\", \"impactAvgActiveSessions\", \"frequencyCount\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id" + ] + }, + "mutable": false + }, + { + "name": "summarize_addm_db_parameter_changes", + "description": "Summarizes ADDM-highlighted parameter changes, including impacted databases and the analysis time window.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_addm_db_parameter_changes", + "skills": [ + "database-addm-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "compartment_id_in_subtree": { + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." + }, + "database_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database OCIDs of the associated DBaaS entity." + }, + "id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource OCIDs." + }, + "instance_number": { + "type": "string", + "description": "The optional single value query parameter to filter by database instance number." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "name": { + "type": "string", + "description": "Required filter to return only changes for the specified parameter. The match is case sensitive." + }, + "sort_by": { + "type": "string", + "enum": [ + "isChanged", + "beginSnapId" + ], + "description": "Field name for sorting the database parameter change data Allowed values are: \"isChanged\", \"beginSnapId\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "value_contains": { + "type": "string", + "description": "Optional filter to return only resources whose value contains the substring given. The match is not case sensitive." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", + "name" + ] + }, + "mutable": false + }, + { + "name": "summarize_addm_db_parameters", + "description": "Summarizes ADDM parameter-level findings and trends for selected databases and interval.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_addm_db_parameters", + "skills": [ + "database-addm-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "category_name": { + "type": "string", + "description": "Optional value filter to match an ADDM database parameter category exactly. Use a category name returned by ADDM database parameter category results." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "compartment_id_in_subtree": { + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." + }, + "database_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database OCIDs of the associated DBaaS entity." + }, + "has_recommendations": { + "type": "string", + "enum": [ + "TRUE", + "FALSE" + ], + "description": "Optional filter to return only parameters which have recommendations in the specified time period. Valid values include: TRUE, FALSE Allowed values are: \"TRUE\", \"FALSE\"" + }, + "id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource OCIDs." + }, + "instance_number": { + "type": "string", + "description": "The optional single value query parameter to filter by database instance number." + }, + "is_changed": { + "type": "string", + "enum": [ + "TRUE", + "FALSE" + ], + "description": "Optional filter to return only parameters whose value changed in the specified time period. Valid values include: TRUE, FALSE Allowed values are: \"TRUE\", \"FALSE\"" + }, + "is_default": { + "type": "string", + "enum": [ + "TRUE", + "FALSE" + ], + "description": "Optional filter to return only parameters whose end value was set to the default value (TRUE) or was specified in the parameter file (FALSE). Valid values include: TRUE, FALSE Allowed values are: \"TRUE\", \"FALSE\"" + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "name_or_value_contains": { + "type": "string", + "description": "Optional filter to return only resources whose name or value contains the substring given. The match is not case sensitive." + }, + "sort_by": { + "type": "string", + "enum": [ + "isChanged", + "name" + ], + "description": "Field name for sorting the database parameter data Allowed values are: \"isChanged\", \"name\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id" + ] + }, + "mutable": false + }, + { + "name": "summarize_addm_db_recommendations", + "description": "Returns ADDM recommendations with impacted databases and recommendation details over the selected time window.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_addm_db_recommendations", + "skills": [ + "database-addm-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "category_name": { + "type": "string", + "description": "Optional value filter to match the finding category exactly." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "compartment_id_in_subtree": { + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." + }, + "database_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database OCIDs of the associated DBaaS entity." + }, + "finding_identifier": { + "type": "string", + "description": "Unique finding ID" + }, + "id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource OCIDs." + }, + "instance_number": { + "type": "string", + "description": "The optional single value query parameter to filter by database instance number." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "name": { + "type": "string", + "description": "Optional filter to return only resources whose name exactly matches the substring given. The match is case sensitive. Only considered when categoryName is DATABASE_CONFIGURATION." + }, + "name_contains": { + "type": "string", + "description": "Optional filter to return only resources whose name contains the substring given. The match is not case sensitive. Only considered when categoryName is DATABASE_CONFIGURATION." + }, + "owner_or_name_contains": { + "type": "string", + "description": "Optional filter to return only resources whose owner or name contains the substring given. The match is not case sensitive. Only considered when categoryName is SCHEMA_OBJECT." + }, + "sort_by": { + "type": "string", + "enum": [ + "maxBenefitPercent", + "maxBenefitAvgActiveSessions", + "frequencyCount" + ], + "description": "Field name for sorting the recommendation data Allowed values are: \"maxBenefitPercent\", \"maxBenefitAvgActiveSessions\", \"frequencyCount\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "sql_identifier": { + "type": "string", + "description": "Optional filter to return only resources whose sql id matches the value given. Only considered when categoryName is SQL_TUNING." + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id" + ] + }, + "mutable": false + }, + { + "name": "summarize_addm_db_schema_objects", + "description": "Summarizes schema objects (such as tables or indexes) flagged by ADDM with impact context.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_addm_db_schema_objects", + "skills": [ + "database-addm-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "compartment_id_in_subtree": { + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." + }, + "database_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database OCIDs of the associated DBaaS entity." + }, + "id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource OCIDs." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "object_identifier": { + "type": "array", + "items": { + "type": "integer" + }, + "description": "One or more unique Object id (from RDBMS)" + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", + "object_identifier" + ] + }, + "mutable": false + }, + { + "name": "summarize_addm_db_sql_statements", + "description": "Summarizes SQL statements flagged by ADDM, including impact and related finding context.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_addm_db_sql_statements", + "skills": [ + "database-addm-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "compartment_id_in_subtree": { + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." + }, + "database_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database OCIDs of the associated DBaaS entity." + }, + "id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource OCIDs." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "sql_identifier": { + "type": "array", + "items": { + "type": "string" + }, + "description": "One or more unique SQL_IDs for a SQL Statement. Example: `6rgjh9bjmy2s7`" + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", + "sql_identifier" + ] + }, + "mutable": false + }, + { + "name": "summarize_alert_log_counts", + "description": "Returns aggregated alert log counts for a managed database so you can quickly assess level or type distribution.", + "service": "dbm", + "client": "DiagnosabilityClient", + "operation": "summarize_alert_log_counts", + "skills": [ + "logs-and-alerts-attention-alert-logs" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "group_by": { + "type": "string", + "enum": [ + "LEVEL", + "TYPE" + ], + "description": "The optional parameter used to group different alert logs.\n\nAllowed values are: \"LEVEL\", \"TYPE\"" + }, + "is_regular_expression": { + "type": "boolean", + "description": "The flag to indicate whether the search text is regular expression or not." + }, + "level_filter": { + "type": "string", + "enum": [ + "CRITICAL", + "SEVERE", + "IMPORTANT", + "NORMAL", + "ALL" + ], + "description": "The optional parameter to filter the alert logs by log level.\n\nAllowed values are: \"CRITICAL\", \"SEVERE\", \"IMPORTANT\", \"NORMAL\", \"ALL\"" + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "log_search_text": { + "type": "string", + "description": "The optional query parameter to filter the attention or alert logs by search text." + }, + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "opc_named_credential_id": { + "type": "string", + "description": "The OCID of the Named Credential." + }, + "time_greater_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional greater than or equal to timestamp to filter the logs." + }, + "time_less_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional less than or equal to timestamp to filter the logs." + }, + "type_filter": { + "type": "string", + "enum": [ + "UNKNOWN", + "INCIDENT_ERROR", + "ERROR", + "WARNING", + "NOTIFICATION", + "TRACE", + "ALL" + ], + "description": "The optional parameter to filter the attention or alert logs by type.\n\nAllowed values are: \"UNKNOWN\", \"INCIDENT_ERROR\", \"ERROR\", \"WARNING\", \"NOTIFICATION\", \"TRACE\", \"ALL\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id" + ] + }, + "mutable": false + }, + { + "name": "summarize_attention_log_counts", + "description": "Returns aggregated attention log counts for a managed database so you can quickly assess urgency or type distribution.", + "service": "dbm", + "client": "DiagnosabilityClient", + "operation": "summarize_attention_log_counts", + "skills": [ + "logs-and-alerts-attention-alert-logs" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "group_by": { + "type": "string", + "enum": [ + "URGENCY", + "TYPE" + ], + "description": "The optional parameter used to group different attention logs.\n\nAllowed values are: \"URGENCY\", \"TYPE\"" + }, + "is_regular_expression": { + "type": "boolean", + "description": "The flag to indicate whether the search text is regular expression or not." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "log_search_text": { + "type": "string", + "description": "The optional query parameter to filter the attention or alert logs by search text." + }, + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "opc_named_credential_id": { + "type": "string", + "description": "The OCID of the Named Credential." + }, + "time_greater_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional greater than or equal to timestamp to filter the logs." + }, + "time_less_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional less than or equal to timestamp to filter the logs." + }, + "type_filter": { + "type": "string", + "enum": [ + "UNKNOWN", + "INCIDENT_ERROR", + "ERROR", + "WARNING", + "NOTIFICATION", + "TRACE", + "ALL" + ], + "description": "The optional parameter to filter the attention or alert logs by type.\n\nAllowed values are: \"UNKNOWN\", \"INCIDENT_ERROR\", \"ERROR\", \"WARNING\", \"NOTIFICATION\", \"TRACE\", \"ALL\"" + }, + "urgency_filter": { + "type": "string", + "enum": [ + "IMMEDIATE", + "SOON", + "DEFERRABLE", + "INFO", + "ALL" + ], + "description": "The optional parameter to filter the attention logs by urgency.\n\nAllowed values are: \"IMMEDIATE\", \"SOON\", \"DEFERRABLE\", \"INFO\", \"ALL\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id" + ] + }, + "mutable": false + }, + { + "name": "summarize_awr_database_cpu_usages", + "description": "Returns AWR CPU usage history for a database, including sample timestamps, average CPU values, and interval context.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_awr_database_cpu_usages", + "skills": [ + "database-performance-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "awr_hub_id": { + "type": "string", + "description": "Unique Awr Hub identifier" + }, + "awr_source_database_identifier": { + "type": "string", + "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results." + }, + "begin_snapshot_identifier_greater_than_or_equal_to": { + "type": "integer", + "description": "The optional greater than or equal to filter on the snapshot ID." + }, + "end_snapshot_identifier_less_than_or_equal_to": { + "type": "integer", + "description": "The optional less than or equal to query parameter to filter the snapshot Identifier." + }, + "instance_number": { + "type": "string", + "description": "The optional single value query parameter to filter by database instance number." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "session_type": { + "type": "string", + "enum": [ + "FOREGROUND", + "BACKGROUND", + "ALL" + ], + "description": "The optional query parameter to filter ASH activities by FOREGROUND or BACKGROUND. Allowed values are: \"FOREGROUND\", \"BACKGROUND\", \"ALL\"" + }, + "sort_by": { + "type": "string", + "enum": [ + "TIME_SAMPLED", + "AVG_VALUE" + ], + "description": "The option to sort the AWR CPU usage summary data. Allowed values are: \"TIME_SAMPLED\", \"AVG_VALUE\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "time_greater_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" + }, + "time_less_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "awr_hub_id", + "awr_source_database_identifier" + ] + }, + "mutable": false + }, + { + "name": "summarize_awr_database_metrics", + "description": "Returns sampled AWR metric series for the selected database, including metric name, sample timestamps, and observed values.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_awr_database_metrics", + "skills": [ + "database-performance-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "awr_hub_id": { + "type": "string", + "description": "Unique Awr Hub identifier" + }, + "awr_source_database_identifier": { + "type": "string", + "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results." + }, + "begin_snapshot_identifier_greater_than_or_equal_to": { + "type": "integer", + "description": "The optional greater than or equal to filter on the snapshot ID." + }, + "end_snapshot_identifier_less_than_or_equal_to": { + "type": "integer", + "description": "The optional less than or equal to query parameter to filter the snapshot Identifier." + }, + "instance_number": { + "type": "string", + "description": "The optional single value query parameter to filter by database instance number." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The required multiple value query parameter to filter the entity name." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIMESTAMP", + "NAME" + ], + "description": "The option to sort the AWR time series summary data. Allowed values are: \"TIMESTAMP\", \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "time_greater_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" + }, + "time_less_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "awr_hub_id", + "awr_source_database_identifier", + "name" + ] + }, + "mutable": false + }, + { + "name": "summarize_awr_database_parameter_changes", + "description": "Returns parameter-change history in AWR, including parameter name, changed-state flag, and change sequence context.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_awr_database_parameter_changes", + "skills": [ + "database-performance-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "awr_hub_id": { + "type": "string", + "description": "Unique Awr Hub identifier" + }, + "awr_source_database_identifier": { + "type": "string", + "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results." + }, + "begin_snapshot_identifier_greater_than_or_equal_to": { + "type": "integer", + "description": "The optional greater than or equal to filter on the snapshot ID." + }, + "end_snapshot_identifier_less_than_or_equal_to": { + "type": "integer", + "description": "The optional less than or equal to query parameter to filter the snapshot Identifier." + }, + "instance_number": { + "type": "string", + "description": "The optional single value query parameter to filter by database instance number." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "name": { + "type": "string", + "description": "The required single value query parameter to filter the entity name." + }, + "sort_by": { + "type": "string", + "enum": [ + "IS_CHANGED", + "NAME" + ], + "description": "The option to sort the AWR database parameter change history data. Allowed values are: \"IS_CHANGED\", \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "time_greater_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" + }, + "time_less_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "awr_hub_id", + "awr_source_database_identifier", + "name" + ] + }, + "mutable": false + }, + { + "name": "summarize_awr_database_parameters", + "description": "Returns AWR parameter history for a database, including parameter names, current/historical values, and change indicators.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_awr_database_parameters", + "skills": [ + "database-performance-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "awr_hub_id": { + "type": "string", + "description": "Unique Awr Hub identifier" + }, + "awr_source_database_identifier": { + "type": "string", + "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results." + }, + "begin_snapshot_identifier_greater_than_or_equal_to": { + "type": "integer", + "description": "The optional greater than or equal to filter on the snapshot ID." + }, + "end_snapshot_identifier_less_than_or_equal_to": { + "type": "integer", + "description": "The optional less than or equal to query parameter to filter the snapshot Identifier." + }, + "instance_number": { + "type": "string", + "description": "The optional single value query parameter to filter by database instance number." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The optional multiple value query parameter to filter the entity name." + }, + "name_contains": { + "type": "string", + "description": "The optional contains query parameter to filter the entity name by any part of the name." + }, + "sort_by": { + "type": "string", + "enum": [ + "IS_CHANGED", + "NAME" + ], + "description": "The option to sort the AWR database parameter change history data. Allowed values are: \"IS_CHANGED\", \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "time_greater_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" + }, + "time_less_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" + }, + "value_changed": { + "type": "string", + "enum": [ + "Y", + "N" + ], + "description": "The optional query parameter to filter database parameters whose values were changed. Allowed values are: \"Y\", \"N\"" + }, + "value_default": { + "type": "string", + "enum": [ + "TRUE", + "FALSE" + ], + "description": "The optional query parameter to filter the database parameters that had the default value in the last snapshot. Allowed values are: \"TRUE\", \"FALSE\"" + }, + "value_modified": { + "type": "string", + "enum": [ + "MODIFIED", + "SYSTEM_MOD", + "FALSE" + ], + "description": "The optional query parameter to filter the database parameters that had a modified value in the last snapshot. Allowed values are: \"MODIFIED\", \"SYSTEM_MOD\", \"FALSE\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "awr_hub_id", + "awr_source_database_identifier" + ] + }, + "mutable": false + }, + { + "name": "summarize_awr_database_snapshot_ranges", + "description": "Returns available AWR snapshot windows for a database, including begin time, end time, and snapshot identifiers.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_awr_database_snapshot_ranges", + "skills": [ + "database-performance-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "awr_hub_id": { + "type": "string", + "description": "Unique Awr Hub identifier" + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "name": { + "type": "string", + "description": "The optional single value query parameter to filter the entity name." + }, + "sort_by": { + "type": "string", + "enum": [ + "END_INTERVAL_TIME", + "NAME" + ], + "description": "The option to sort the AWR summary data. Allowed values are: \"END_INTERVAL_TIME\", \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "time_greater_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" + }, + "time_less_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "awr_hub_id" + ] + }, + "mutable": false + }, + { + "name": "summarize_awr_database_sysstats", + "description": "Returns AWR sysstat samples for a database, including statistic names, sampled intervals, and measured values.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_awr_database_sysstats", + "skills": [ + "database-performance-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "awr_hub_id": { + "type": "string", + "description": "Unique Awr Hub identifier" + }, + "awr_source_database_identifier": { + "type": "string", + "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results." + }, + "begin_snapshot_identifier_greater_than_or_equal_to": { + "type": "integer", + "description": "The optional greater than or equal to filter on the snapshot ID." + }, + "end_snapshot_identifier_less_than_or_equal_to": { + "type": "integer", + "description": "The optional less than or equal to query parameter to filter the snapshot Identifier." + }, + "instance_number": { + "type": "string", + "description": "The optional single value query parameter to filter by database instance number." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The required multiple value query parameter to filter the entity name." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIME_BEGIN", + "NAME" + ], + "description": "The option to sort the data within a time period. Allowed values are: \"TIME_BEGIN\", \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "time_greater_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" + }, + "time_less_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "awr_hub_id", + "awr_source_database_identifier", + "name" + ] + }, + "mutable": false + }, + { + "name": "summarize_awr_database_top_wait_events", + "description": "Returns top wait event contributors for an AWR database, including event names, wait intensity, and average wait-time trends.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_awr_database_top_wait_events", + "skills": [ + "database-performance-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "awr_hub_id": { + "type": "string", + "description": "Unique Awr Hub identifier" + }, + "awr_source_database_identifier": { + "type": "string", + "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results." + }, + "begin_snapshot_identifier_greater_than_or_equal_to": { + "type": "integer", + "description": "The optional greater than or equal to filter on the snapshot ID." + }, + "end_snapshot_identifier_less_than_or_equal_to": { + "type": "integer", + "description": "The optional less than or equal to query parameter to filter the snapshot Identifier." + }, + "instance_number": { + "type": "string", + "description": "The optional single value query parameter to filter by database instance number." + }, + "session_type": { + "type": "string", + "enum": [ + "FOREGROUND", + "BACKGROUND", + "ALL" + ], + "description": "The optional query parameter to filter ASH activities by FOREGROUND or BACKGROUND. Allowed values are: \"FOREGROUND\", \"BACKGROUND\", \"ALL\"" + }, + "sort_by": { + "type": "string", + "enum": [ + "WAITS_PERSEC", + "AVG_WAIT_TIME_PERSEC" + ], + "description": "The option to sort the AWR top event summary data. Allowed values are: \"WAITS_PERSEC\", \"AVG_WAIT_TIME_PERSEC\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "time_greater_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" + }, + "time_less_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" + }, + "top_n": { + "type": "integer", + "description": "The optional query parameter to filter the number of top categories to be returned." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "awr_hub_id", + "awr_source_database_identifier" + ] + }, + "mutable": false + }, + { + "name": "summarize_awr_database_wait_event_buckets", + "description": "Returns wait-event distribution buckets for a database, including category labels, bucket percentages, and frequency weighting.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_awr_database_wait_event_buckets", + "skills": [ + "database-performance-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "awr_hub_id": { + "type": "string", + "description": "Unique Awr Hub identifier" + }, + "awr_source_database_identifier": { + "type": "string", + "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results." + }, + "begin_snapshot_identifier_greater_than_or_equal_to": { + "type": "integer", + "description": "The optional greater than or equal to filter on the snapshot ID." + }, + "end_snapshot_identifier_less_than_or_equal_to": { + "type": "integer", + "description": "The optional less than or equal to query parameter to filter the snapshot Identifier." + }, + "instance_number": { + "type": "string", + "description": "The optional single value query parameter to filter by database instance number." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "max_value": { + "type": "number", + "description": "The maximum value of the histogram." + }, + "min_value": { + "type": "number", + "description": "The minimum value of the histogram." + }, + "name": { + "type": "string", + "description": "The required single value query parameter to filter the entity name." + }, + "num_bucket": { + "type": "integer", + "description": "The number of buckets within the histogram." + }, + "sort_by": { + "type": "string", + "enum": [ + "CATEGORY", + "PERCENTAGE" + ], + "description": "The option to sort distribution data. Allowed values are: \"CATEGORY\", \"PERCENTAGE\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "time_greater_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" + }, + "time_less_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "awr_hub_id", + "awr_source_database_identifier", + "name" + ] + }, + "mutable": false + }, + { + "name": "summarize_awr_database_wait_events", + "description": "Returns wait-event samples for the selected period, including event names, sampled intervals, and wait activity values.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_awr_database_wait_events", + "skills": [ + "database-performance-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "awr_hub_id": { + "type": "string", + "description": "Unique Awr Hub identifier" + }, + "awr_source_database_identifier": { + "type": "string", + "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results." + }, + "begin_snapshot_identifier_greater_than_or_equal_to": { + "type": "integer", + "description": "The optional greater than or equal to filter on the snapshot ID." + }, + "end_snapshot_identifier_less_than_or_equal_to": { + "type": "integer", + "description": "The optional less than or equal to query parameter to filter the snapshot Identifier." + }, + "instance_number": { + "type": "string", + "description": "The optional single value query parameter to filter by database instance number." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The optional multiple value query parameter to filter the entity name." + }, + "session_type": { + "type": "string", + "enum": [ + "FOREGROUND", + "BACKGROUND", + "ALL" + ], + "description": "The optional query parameter to filter ASH activities by FOREGROUND or BACKGROUND. Allowed values are: \"FOREGROUND\", \"BACKGROUND\", \"ALL\"" + }, + "sort_by": { + "type": "string", + "enum": [ + "TIME_BEGIN", + "NAME" + ], + "description": "The option to sort the data within a time period. Allowed values are: \"TIME_BEGIN\", \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "time_greater_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" + }, + "time_less_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "awr_hub_id", + "awr_source_database_identifier" + ] + }, + "mutable": false + }, + { + "name": "summarize_awr_db_cpu_usages", + "description": "Returns AWR CPU usage summaries for one AWR database in the requested window.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "summarize_awr_db_cpu_usages", + "skills": [ + "awr-historical-performance-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "awr_db_id": { + "type": "string", + "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results." + }, + "begin_sn_id_greater_than_or_equal_to": { + "type": "integer", + "description": "The optional greater than or equal to filter on the snapshot ID." + }, + "container_id": { + "type": "integer", + "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results." + }, + "end_sn_id_less_than_or_equal_to": { + "type": "integer", + "description": "The optional less than or equal to query parameter to filter the snapshot ID." + }, + "inst_num": { + "type": "string", + "description": "The optional single value query parameter to filter the database instance number." + }, + "limit": { + "type": "integer", + "description": "For large list pagination. Maximum number of results to return in one response page. Example: 1000." + }, + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "opc_named_credential_id": { + "type": "string", + "description": "The OCID of the Named Credential." + }, + "session_type": { + "type": "string", + "enum": [ + "FOREGROUND", + "BACKGROUND", + "ALL" + ], + "description": "The optional query parameter to filter ASH activities by FOREGROUND or BACKGROUND.\n\nAllowed values are: \"FOREGROUND\", \"BACKGROUND\", \"ALL\"" + }, + "sort_by": { + "type": "string", + "enum": [ + "TIME_SAMPLED", + "AVG_VALUE" + ], + "description": "The option to sort the AWR CPU usage summary data.\n\nAllowed values are: \"TIME_SAMPLED\", \"AVG_VALUE\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "time_greater_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional greater than or equal to query parameter to filter the timestamp." + }, + "time_less_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp." + }, + "opc_request_id": { + "type": "string" + }, + "opc_retry_token": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id", + "awr_db_id" + ] + }, + "mutable": false + }, + { + "name": "summarize_awr_db_metrics", + "description": "Returns AWR metric sample summaries for one AWR database.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "summarize_awr_db_metrics", + "skills": [ + "awr-historical-performance-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "awr_db_id": { + "type": "string", + "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results." + }, + "begin_sn_id_greater_than_or_equal_to": { + "type": "integer", + "description": "The optional greater than or equal to filter on the snapshot ID." + }, + "container_id": { + "type": "integer", + "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results." + }, + "end_sn_id_less_than_or_equal_to": { + "type": "integer", + "description": "The optional less than or equal to query parameter to filter the snapshot ID." + }, + "inst_num": { + "type": "string", + "description": "The optional single value query parameter to filter the database instance number." + }, + "limit": { + "type": "integer", + "description": "For large list pagination. Maximum number of results to return in one response page. Example: 1000." + }, + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The required multiple value query parameter to filter the entity name." + }, + "opc_named_credential_id": { + "type": "string", + "description": "The OCID of the Named Credential." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIMESTAMP", + "NAME" + ], + "description": "The option to sort the AWR time series summary data.\n\nAllowed values are: \"TIMESTAMP\", \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "time_greater_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional greater than or equal to query parameter to filter the timestamp." + }, + "time_less_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp." + }, + "opc_request_id": { + "type": "string" + }, + "opc_retry_token": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id", + "awr_db_id", + "name" + ] + }, + "mutable": false + }, + { + "name": "summarize_awr_db_parameter_changes", + "description": "Returns change-history records for one AWR database parameter.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "summarize_awr_db_parameter_changes", + "skills": [ + "awr-historical-performance-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "awr_db_id": { + "type": "string", + "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results." + }, + "begin_sn_id_greater_than_or_equal_to": { + "type": "integer", + "description": "The optional greater than or equal to filter on the snapshot ID." + }, + "container_id": { + "type": "integer", + "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results." + }, + "end_sn_id_less_than_or_equal_to": { + "type": "integer", + "description": "The optional less than or equal to query parameter to filter the snapshot ID." + }, + "inst_num": { + "type": "string", + "description": "The optional single value query parameter to filter the database instance number." + }, + "limit": { + "type": "integer", + "description": "For large list pagination. Maximum number of results to return in one response page. Example: 1000." + }, + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "name": { + "type": "string", + "description": "The required single value query parameter to filter the entity name." + }, + "opc_named_credential_id": { + "type": "string", + "description": "The OCID of the Named Credential." + }, + "sort_by": { + "type": "string", + "enum": [ + "IS_CHANGED", + "NAME" + ], + "description": "The option to sort the AWR database parameter change history data.\n\nAllowed values are: \"IS_CHANGED\", \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "time_greater_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional greater than or equal to query parameter to filter the timestamp." + }, + "time_less_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp." + }, + "opc_request_id": { + "type": "string" + }, + "opc_retry_token": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id", + "awr_db_id", + "name" + ] + }, + "mutable": false + }, + { + "name": "summarize_awr_db_parameters", + "description": "Returns AWR parameter summaries, including change/default context, for one AWR database.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "summarize_awr_db_parameters", + "skills": [ + "awr-historical-performance-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "awr_db_id": { + "type": "string", + "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results." + }, + "begin_sn_id_greater_than_or_equal_to": { + "type": "integer", + "description": "The optional greater than or equal to filter on the snapshot ID." + }, + "container_id": { + "type": "integer", + "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results." + }, + "end_sn_id_less_than_or_equal_to": { + "type": "integer", + "description": "The optional less than or equal to query parameter to filter the snapshot ID." + }, + "inst_num": { + "type": "string", + "description": "The optional single value query parameter to filter the database instance number." + }, + "limit": { + "type": "integer", + "description": "For large list pagination. Maximum number of results to return in one response page. Example: 1000." + }, + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The optional multiple value query parameter to filter the entity name." + }, + "name_contains": { + "type": "string", + "description": "The optional contains query parameter to filter the entity name by any part of the name." + }, + "opc_named_credential_id": { + "type": "string", + "description": "The OCID of the Named Credential." + }, + "sort_by": { + "type": "string", + "enum": [ + "IS_CHANGED", + "NAME" + ], + "description": "The option to sort the AWR database parameter change history data.\n\nAllowed values are: \"IS_CHANGED\", \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "time_greater_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional greater than or equal to query parameter to filter the timestamp." + }, + "time_less_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp." + }, + "value_changed": { + "type": "string", + "enum": [ + "Y", + "N" + ], + "description": "The optional query parameter to filter database parameters whose values were changed.\n\nAllowed values are: \"Y\", \"N\"" + }, + "value_default": { + "type": "string", + "enum": [ + "TRUE", + "FALSE" + ], + "description": "The optional query parameter to filter the database parameters that had the default value in the last snapshot.\n\nAllowed values are: \"TRUE\", \"FALSE\"" + }, + "value_modified": { + "type": "string", + "enum": [ + "MODIFIED", + "SYSTEM_MOD", + "FALSE" + ], + "description": "The optional query parameter to filter the database parameters that had a modified value in the last snapshot.\n\nAllowed values are: \"MODIFIED\", \"SYSTEM_MOD\", \"FALSE\"" + }, + "opc_request_id": { + "type": "string" + }, + "opc_retry_token": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id", + "awr_db_id" + ] + }, + "mutable": false + }, + { + "name": "summarize_awr_db_snapshot_ranges", + "description": "Returns continuous AWR snapshot ranges for databases in a managed database.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "summarize_awr_db_snapshot_ranges", + "skills": [ + "awr-historical-performance-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "name": { + "type": "string", + "description": "The optional single value query parameter to filter the entity name." + }, + "opc_named_credential_id": { + "type": "string", + "description": "The OCID of the Named Credential." + }, + "sort_by": { + "type": "string", + "enum": [ + "END_INTERVAL_TIME", + "NAME" + ], + "description": "The option to sort the AWR summary data.\n\nAllowed values are: \"END_INTERVAL_TIME\", \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "time_greater_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional greater than or equal to query parameter to filter the timestamp." + }, + "time_less_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp." + }, + "opc_request_id": { + "type": "string" + }, + "opc_retry_token": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id" + ] + }, + "mutable": false + }, + { + "name": "summarize_awr_db_sysstats", + "description": "Returns AWR SYSSTAT summaries for one AWR database.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "summarize_awr_db_sysstats", + "skills": [ + "awr-historical-performance-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "awr_db_id": { + "type": "string", + "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results." + }, + "begin_sn_id_greater_than_or_equal_to": { + "type": "integer", + "description": "The optional greater than or equal to filter on the snapshot ID." + }, + "container_id": { + "type": "integer", + "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results." + }, + "end_sn_id_less_than_or_equal_to": { + "type": "integer", + "description": "The optional less than or equal to query parameter to filter the snapshot ID." + }, + "inst_num": { + "type": "string", + "description": "The optional single value query parameter to filter the database instance number." + }, + "limit": { + "type": "integer", + "description": "For large list pagination. Maximum number of results to return in one response page. Example: 1000." + }, + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The required multiple value query parameter to filter the entity name." + }, + "opc_named_credential_id": { + "type": "string", + "description": "The OCID of the Named Credential." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIME_BEGIN", + "NAME" + ], + "description": "The option to sort the data within a time period.\n\nAllowed values are: \"TIME_BEGIN\", \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "time_greater_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional greater than or equal to query parameter to filter the timestamp." + }, + "time_less_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp." + }, + "opc_request_id": { + "type": "string" + }, + "opc_retry_token": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id", + "awr_db_id", + "name" + ] + }, + "mutable": false + }, + { + "name": "summarize_awr_db_top_wait_events", + "description": "Returns top N AWR wait events for one AWR database.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "summarize_awr_db_top_wait_events", + "skills": [ + "awr-historical-performance-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "awr_db_id": { + "type": "string", + "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results." + }, + "begin_sn_id_greater_than_or_equal_to": { + "type": "integer", + "description": "The optional greater than or equal to filter on the snapshot ID." + }, + "container_id": { + "type": "integer", + "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results." + }, + "end_sn_id_less_than_or_equal_to": { + "type": "integer", + "description": "The optional less than or equal to query parameter to filter the snapshot ID." + }, + "inst_num": { + "type": "string", + "description": "The optional single value query parameter to filter the database instance number." + }, + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "opc_named_credential_id": { + "type": "string", + "description": "The OCID of the Named Credential." + }, + "session_type": { + "type": "string", + "enum": [ + "FOREGROUND", + "BACKGROUND", + "ALL" + ], + "description": "The optional query parameter to filter ASH activities by FOREGROUND or BACKGROUND.\n\nAllowed values are: \"FOREGROUND\", \"BACKGROUND\", \"ALL\"" + }, + "sort_by": { + "type": "string", + "enum": [ + "WAITS_PERSEC", + "AVG_WAIT_TIME_PERSEC" + ], + "description": "The option to sort the AWR top event summary data.\n\nAllowed values are: \"WAITS_PERSEC\", \"AVG_WAIT_TIME_PERSEC\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "time_greater_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional greater than or equal to query parameter to filter the timestamp." + }, + "time_less_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp." + }, + "top_n": { + "type": "integer", + "description": "The optional query parameter to filter the number of top categories to be returned." + }, + "opc_request_id": { + "type": "string" + }, + "opc_retry_token": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id", + "awr_db_id" + ] + }, + "mutable": false + }, + { + "name": "summarize_awr_db_wait_event_buckets", + "description": "Returns AWR wait event histogram buckets and frequencies for one AWR database.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "summarize_awr_db_wait_event_buckets", + "skills": [ + "awr-historical-performance-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "awr_db_id": { + "type": "string", + "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results." + }, + "begin_sn_id_greater_than_or_equal_to": { + "type": "integer", + "description": "The optional greater than or equal to filter on the snapshot ID." + }, + "container_id": { + "type": "integer", + "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results." + }, + "end_sn_id_less_than_or_equal_to": { + "type": "integer", + "description": "The optional less than or equal to query parameter to filter the snapshot ID." + }, + "inst_num": { + "type": "string", + "description": "The optional single value query parameter to filter the database instance number." + }, + "limit": { + "type": "integer", + "description": "For large list pagination. Maximum number of results to return in one response page. Example: 1000." + }, + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "max_value": { + "type": "number", + "description": "The maximum value of the histogram." + }, + "min_value": { + "type": "number", + "description": "The minimum value of the histogram." + }, + "name": { + "type": "string", + "description": "The required single value query parameter to filter the entity name." + }, + "num_bucket": { + "type": "integer", + "description": "The number of buckets within the histogram." + }, + "opc_named_credential_id": { + "type": "string", + "description": "The OCID of the Named Credential." + }, + "sort_by": { + "type": "string", + "enum": [ + "CATEGORY", + "PERCENTAGE" + ], + "description": "The option to sort distribution data.\n\nAllowed values are: \"CATEGORY\", \"PERCENTAGE\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "time_greater_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional greater than or equal to query parameter to filter the timestamp." + }, + "time_less_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp." + }, + "opc_request_id": { + "type": "string" + }, + "opc_retry_token": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id", + "awr_db_id", + "name" + ] + }, + "mutable": false + }, + { + "name": "summarize_awr_db_wait_events", + "description": "Returns AWR wait event summaries for one AWR database.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "summarize_awr_db_wait_events", + "skills": [ + "awr-historical-performance-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "awr_db_id": { + "type": "string", + "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results." + }, + "begin_sn_id_greater_than_or_equal_to": { + "type": "integer", + "description": "The optional greater than or equal to filter on the snapshot ID." + }, + "container_id": { + "type": "integer", + "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results." + }, + "end_sn_id_less_than_or_equal_to": { + "type": "integer", + "description": "The optional less than or equal to query parameter to filter the snapshot ID." + }, + "inst_num": { + "type": "string", + "description": "The optional single value query parameter to filter the database instance number." + }, + "limit": { + "type": "integer", + "description": "For large list pagination. Maximum number of results to return in one response page. Example: 1000." + }, + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The optional multiple value query parameter to filter the entity name." + }, + "opc_named_credential_id": { + "type": "string", + "description": "The OCID of the Named Credential." + }, + "session_type": { + "type": "string", + "enum": [ + "FOREGROUND", + "BACKGROUND", + "ALL" + ], + "description": "The optional query parameter to filter ASH activities by FOREGROUND or BACKGROUND.\n\nAllowed values are: \"FOREGROUND\", \"BACKGROUND\", \"ALL\"" + }, + "sort_by": { + "type": "string", + "enum": [ + "TIME_BEGIN", + "NAME" + ], + "description": "The option to sort the data within a time period.\n\nAllowed values are: \"TIME_BEGIN\", \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "time_greater_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional greater than or equal to query parameter to filter the timestamp." + }, + "time_less_than_or_equal_to": { + "type": "string", + "format": "date-time", + "description": "The optional less than or equal to query parameter to filter the timestamp." + }, + "opc_request_id": { + "type": "string" + }, + "opc_retry_token": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id", + "awr_db_id" + ] + }, + "mutable": false + }, + { + "name": "summarize_cloud_asm_metrics", + "description": "Gets the cloud ASM metrics.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "summarize_cloud_asm_metrics", + "skills": [ + "cloud-asm-core" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "cloud_asm_id": { + "type": "string", + "description": "The OCID of the cloud ASM." + }, + "end_time": { + "type": "string", + "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." + }, + "filter_by_metric_names": { + "type": "string", + "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "start_time": { + "type": "string", + "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "cloud_asm_id", + "start_time", + "end_time" + ] + }, + "mutable": false + }, + { + "name": "summarize_cloud_cluster_metrics", + "description": "Gets the cloud cluster metrics.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "summarize_cloud_cluster_metrics", + "skills": [ + "cloud-db-runtime-topology" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "cloud_cluster_id": { + "type": "string", + "description": "The OCID of the cloud cluster." + }, + "end_time": { + "type": "string", + "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." + }, + "filter_by_metric_names": { + "type": "string", + "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "start_time": { + "type": "string", + "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "cloud_cluster_id", + "start_time", + "end_time" + ] + }, + "mutable": false + }, + { + "name": "summarize_cloud_db_node_metrics", + "description": "Gets the cloud DB nodemetrics.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "summarize_cloud_db_node_metrics", + "skills": [ + "cloud-db-runtime-topology" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "cloud_db_node_id": { + "type": "string", + "description": "The OCID of the cloud database node." + }, + "end_time": { + "type": "string", + "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." + }, + "filter_by_metric_names": { + "type": "string", + "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "start_time": { + "type": "string", + "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "cloud_db_node_id", + "start_time", + "end_time" + ] + }, + "mutable": false + }, + { + "name": "summarize_cloud_db_system_availability_metrics", + "description": "Returns availability summaries for Cloud DB system components so admins can assess component-level service health.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "summarize_cloud_db_system_availability_metrics", + "skills": [ + "cloud-inventory-discovery-connectivity" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "cloud_db_system_id": { + "type": "string", + "description": "The OCID of the cloud DB system." + }, + "end_time": { + "type": "string", + "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." + }, + "filter_by_component_types": { + "type": "string", + "description": "The filter used to retrieve metrics for a specific set of component types by passing the desired component types separated by a comma. Note that, by default, the service returns metrics for all DB system component types." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "start_time": { + "type": "string", + "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "cloud_db_system_id", + "start_time", + "end_time" + ] + }, + "mutable": false + }, + { + "name": "summarize_cloud_listener_metrics", + "description": "Gets the cloud listener metrics.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "summarize_cloud_listener_metrics", + "skills": [ + "cloud-db-runtime-topology" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "cloud_listener_id": { + "type": "string", + "description": "The OCID of the cloud listener." + }, + "end_time": { + "type": "string", + "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." + }, + "filter_by_metric_names": { + "type": "string", + "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "start_time": { + "type": "string", + "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "cloud_listener_id", + "start_time", + "end_time" + ] + }, + "mutable": false + }, + { + "name": "summarize_database_insight_resource_capacity_trend", + "description": "Shows capacity trend for a selected resourceMetric (for example CPU or STORAGE), including baseline/max capacity and utilization thresholds.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_database_insight_resource_capacity_trend", + "skills": [ + "database-capacity-usage-and-forecasting" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "analysis_time_interval": { + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." + }, + "cdb_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more cdb name." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "compartment_id_in_subtree": { + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." + }, + "database_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database OCIDs of the associated DBaaS entity." + }, + "database_type": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "ADW-S", + "ATP-S", + "ADW-D", + "ATP-D", + "EXTERNAL-PDB", + "EXTERNAL-NONCDB", + "COMANAGED-VM-CDB", + "COMANAGED-VM-PDB", + "COMANAGED-VM-NONCDB", + "COMANAGED-BM-CDB", + "COMANAGED-BM-PDB", + "COMANAGED-BM-NONCDB", + "COMANAGED-EXACS-CDB", + "COMANAGED-EXACS-PDB", + "COMANAGED-EXACS-NONCDB", + "COMANAGED-EXACC-CDB", + "COMANAGED-EXACC-PDB", + "COMANAGED-EXACC-NONCDB", + "MDS-MYSQL", + "EXTERNAL-MYSQL", + "ATP-EXACC", + "ADW-EXACC", + "EXTERNAL-ADW", + "EXTERNAL-ATP", + "LH-D", + "APEX-D", + "AJD-D", + "AVD-D", + "LH-S", + "APEX-S", + "AJD-S", + "AVD-S", + "LH-EXACC", + "APEX-EXACC", + "AJD-EXACC", + "AVD-EXACC" + ] + }, + "description": "Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: \"ADW-S\", \"ATP-S\", \"ADW-D\", \"ATP-D\", \"EXTERNAL-PDB\", \"EXTERNAL-NONCDB\", \"COMANAGED-VM-CDB\", \"COMANAGED-VM-PDB\", \"COMANAGED-VM-NONCDB\", \"COMANAGED-BM-CDB\", \"COMANAGED-BM-PDB\", \"COMANAGED-BM-NONCDB\", \"COMANAGED-EXACS-CDB\", \"COMANAGED-EXACS-PDB\", \"COMANAGED-EXACS-NONCDB\", \"COMANAGED-EXACC-CDB\", \"COMANAGED-EXACC-PDB\", \"COMANAGED-EXACC-NONCDB\", \"MDS-MYSQL\", \"EXTERNAL-MYSQL\", \"ATP-EXACC\", \"ADW-EXACC\", \"EXTERNAL-ADW\", \"EXTERNAL-ATP\", \"LH-D\", \"APEX-D\", \"AJD-D\", \"AVD-D\", \"LH-S\", \"APEX-S\", \"AJD-S\", \"AVD-S\", \"LH-EXACC\", \"APEX-EXACC\", \"AJD-EXACC\", \"AVD-EXACC\"" + }, + "exadata_insight_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of exadata insight resource OCIDs." + }, + "high_utilization_threshold": { + "type": "integer", + "description": "Percent value in which a resource metric is considered highly utilized." + }, + "host_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more hostname." + }, + "id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource OCIDs." + }, + "is_database_instance_level_metrics": { + "type": "boolean", + "description": "Flag to indicate if database instance level metrics should be returned. The flag is ignored when a host name filter is not applied. When a hostname filter is applied this flag will determine whether to return metrics for the instances located on the specified host or for the whole database which contains an instance on this host." + }, + "low_utilization_threshold": { + "type": "integer", + "description": "Percent value in which a resource metric is considered low utilized." + }, + "resource_metric": { + "type": "string", + "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY and IO." + }, + "sort_by": { + "type": "string", + "enum": [ + "endTimestamp", + "capacity", + "baseCapacity" + ], + "description": "Sorts using end timestamp, capacity or baseCapacity Allowed values are: \"endTimestamp\", \"capacity\", \"baseCapacity\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "tablespace_name": { + "type": "string", + "description": "Tablespace name for a database" + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "utilization_level": { + "type": "string", + "enum": [ + "HIGH_UTILIZATION", + "LOW_UTILIZATION", + "MEDIUM_HIGH_UTILIZATION", + "MEDIUM_LOW_UTILIZATION" + ], + "description": "Filter by utilization level by the following buckets: - HIGH_UTILIZATION: DBs with utilization greater or equal than 75. - LOW_UTILIZATION: DBs with utilization lower than 25. - MEDIUM_HIGH_UTILIZATION: DBs with utilization greater or equal than 50 but lower than 75. - MEDIUM_LOW_UTILIZATION: DBs with utilization greater or equal than 25 but lower than 50. Allowed values are: \"HIGH_UTILIZATION\", \"LOW_UTILIZATION\", \"MEDIUM_HIGH_UTILIZATION\", \"MEDIUM_LOW_UTILIZATION\"" + }, + "vmcluster_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of Exadata Insight VM cluster name." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", + "resource_metric" + ] + }, + "mutable": false + }, + { + "name": "summarize_database_insight_resource_forecast_trend", + "description": "Provides historical and projected demand for a selected resourceMetric (for example CPU or STORAGE) and statistic (AVG or MAX), including forecast algorithm output.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_database_insight_resource_forecast_trend", + "skills": [ + "database-capacity-usage-and-forecasting" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "analysis_time_interval": { + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." + }, + "cdb_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more cdb name." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "compartment_id_in_subtree": { + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." + }, + "confidence": { + "type": "integer", + "description": "This parameter is used to change data's confidence level, this data is ingested by the forecast algorithm. Confidence is the probability of an interval to contain the expected population parameter. Manipulation of this value will lead to different results. If not set, default confidence value is 95%." + }, + "database_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database OCIDs of the associated DBaaS entity." + }, + "database_type": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "ADW-S", + "ATP-S", + "ADW-D", + "ATP-D", + "EXTERNAL-PDB", + "EXTERNAL-NONCDB", + "COMANAGED-VM-CDB", + "COMANAGED-VM-PDB", + "COMANAGED-VM-NONCDB", + "COMANAGED-BM-CDB", + "COMANAGED-BM-PDB", + "COMANAGED-BM-NONCDB", + "COMANAGED-EXACS-CDB", + "COMANAGED-EXACS-PDB", + "COMANAGED-EXACS-NONCDB", + "COMANAGED-EXACC-CDB", + "COMANAGED-EXACC-PDB", + "COMANAGED-EXACC-NONCDB", + "MDS-MYSQL", + "EXTERNAL-MYSQL", + "ATP-EXACC", + "ADW-EXACC", + "EXTERNAL-ADW", + "EXTERNAL-ATP", + "LH-D", + "APEX-D", + "AJD-D", + "AVD-D", + "LH-S", + "APEX-S", + "AJD-S", + "AVD-S", + "LH-EXACC", + "APEX-EXACC", + "AJD-EXACC", + "AVD-EXACC" + ] + }, + "description": "Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: \"ADW-S\", \"ATP-S\", \"ADW-D\", \"ATP-D\", \"EXTERNAL-PDB\", \"EXTERNAL-NONCDB\", \"COMANAGED-VM-CDB\", \"COMANAGED-VM-PDB\", \"COMANAGED-VM-NONCDB\", \"COMANAGED-BM-CDB\", \"COMANAGED-BM-PDB\", \"COMANAGED-BM-NONCDB\", \"COMANAGED-EXACS-CDB\", \"COMANAGED-EXACS-PDB\", \"COMANAGED-EXACS-NONCDB\", \"COMANAGED-EXACC-CDB\", \"COMANAGED-EXACC-PDB\", \"COMANAGED-EXACC-NONCDB\", \"MDS-MYSQL\", \"EXTERNAL-MYSQL\", \"ATP-EXACC\", \"ADW-EXACC\", \"EXTERNAL-ADW\", \"EXTERNAL-ATP\", \"LH-D\", \"APEX-D\", \"AJD-D\", \"AVD-D\", \"LH-S\", \"APEX-S\", \"AJD-S\", \"AVD-S\", \"LH-EXACC\", \"APEX-EXACC\", \"AJD-EXACC\", \"AVD-EXACC\"" + }, + "exadata_insight_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of exadata insight resource OCIDs." + }, + "forecast_days": { + "type": "integer", + "description": "Number of days used for utilization forecast analysis." + }, + "forecast_model": { + "type": "string", + "enum": [ + "LINEAR", + "ML_AUTO", + "ML_NO_AUTO" + ], + "description": "Choose algorithm model for the forecasting. Possible values: - LINEAR: Uses linear regression algorithm for forecasting. - ML_AUTO: Automatically detects best algorithm to use for forecasting. - ML_NO_AUTO: Automatically detects seasonality of the data for forecasting using linear or seasonal algorithm. Allowed values are: \"LINEAR\", \"ML_AUTO\", \"ML_NO_AUTO\"" + }, + "high_utilization_threshold": { + "type": "integer", + "description": "Percent value in which a resource metric is considered highly utilized." + }, + "host_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more hostname." + }, + "id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource OCIDs." + }, + "is_database_instance_level_metrics": { + "type": "boolean", + "description": "Flag to indicate if database instance level metrics should be returned. The flag is ignored when a host name filter is not applied. When a hostname filter is applied this flag will determine whether to return metrics for the instances located on the specified host or for the whole database which contains an instance on this host." + }, + "low_utilization_threshold": { + "type": "integer", + "description": "Percent value in which a resource metric is considered low utilized." + }, + "resource_metric": { + "type": "string", + "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY and IO." + }, + "statistic": { + "type": "string", + "enum": [ + "AVG", + "MAX" + ], + "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"" + }, + "tablespace_name": { + "type": "string", + "description": "Tablespace name for a database" + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "utilization_level": { + "type": "string", + "enum": [ + "HIGH_UTILIZATION", + "LOW_UTILIZATION", + "MEDIUM_HIGH_UTILIZATION", + "MEDIUM_LOW_UTILIZATION" + ], + "description": "Filter by utilization level by the following buckets: - HIGH_UTILIZATION: DBs with utilization greater or equal than 75. - LOW_UTILIZATION: DBs with utilization lower than 25. - MEDIUM_HIGH_UTILIZATION: DBs with utilization greater or equal than 50 but lower than 75. - MEDIUM_LOW_UTILIZATION: DBs with utilization greater or equal than 25 but lower than 50. Allowed values are: \"HIGH_UTILIZATION\", \"LOW_UTILIZATION\", \"MEDIUM_HIGH_UTILIZATION\", \"MEDIUM_LOW_UTILIZATION\"" + }, + "vmcluster_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of Exadata Insight VM cluster name." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", + "resource_metric" + ] + }, + "mutable": false + }, + { + "name": "summarize_database_insight_resource_statistics", + "description": "Returns per-database statistics for a selected resourceMetric (for example CPU or STORAGE), including usage, capacity, utilization, and usage-change percent.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_database_insight_resource_statistics", + "skills": [ + "database-capacity-usage-and-forecasting" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "analysis_time_interval": { + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." + }, + "cdb_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more cdb name." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "compartment_id_in_subtree": { + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." + }, + "database_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database OCIDs of the associated DBaaS entity." + }, + "database_type": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "ADW-S", + "ATP-S", + "ADW-D", + "ATP-D", + "EXTERNAL-PDB", + "EXTERNAL-NONCDB", + "COMANAGED-VM-CDB", + "COMANAGED-VM-PDB", + "COMANAGED-VM-NONCDB", + "COMANAGED-BM-CDB", + "COMANAGED-BM-PDB", + "COMANAGED-BM-NONCDB", + "COMANAGED-EXACS-CDB", + "COMANAGED-EXACS-PDB", + "COMANAGED-EXACS-NONCDB", + "COMANAGED-EXACC-CDB", + "COMANAGED-EXACC-PDB", + "COMANAGED-EXACC-NONCDB", + "MDS-MYSQL", + "EXTERNAL-MYSQL", + "ATP-EXACC", + "ADW-EXACC", + "EXTERNAL-ADW", + "EXTERNAL-ATP", + "LH-D", + "APEX-D", + "AJD-D", + "AVD-D", + "LH-S", + "APEX-S", + "AJD-S", + "AVD-S", + "LH-EXACC", + "APEX-EXACC", + "AJD-EXACC", + "AVD-EXACC" + ] + }, + "description": "Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: \"ADW-S\", \"ATP-S\", \"ADW-D\", \"ATP-D\", \"EXTERNAL-PDB\", \"EXTERNAL-NONCDB\", \"COMANAGED-VM-CDB\", \"COMANAGED-VM-PDB\", \"COMANAGED-VM-NONCDB\", \"COMANAGED-BM-CDB\", \"COMANAGED-BM-PDB\", \"COMANAGED-BM-NONCDB\", \"COMANAGED-EXACS-CDB\", \"COMANAGED-EXACS-PDB\", \"COMANAGED-EXACS-NONCDB\", \"COMANAGED-EXACC-CDB\", \"COMANAGED-EXACC-PDB\", \"COMANAGED-EXACC-NONCDB\", \"MDS-MYSQL\", \"EXTERNAL-MYSQL\", \"ATP-EXACC\", \"ADW-EXACC\", \"EXTERNAL-ADW\", \"EXTERNAL-ATP\", \"LH-D\", \"APEX-D\", \"AJD-D\", \"AVD-D\", \"LH-S\", \"APEX-S\", \"AJD-S\", \"AVD-S\", \"LH-EXACC\", \"APEX-EXACC\", \"AJD-EXACC\", \"AVD-EXACC\"" + }, + "exadata_insight_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of exadata insight resource OCIDs." + }, + "forecast_days": { + "type": "integer", + "description": "Number of days used for utilization forecast analysis." + }, + "high_utilization_threshold": { + "type": "integer", + "description": "Percent value in which a resource metric is considered highly utilized." + }, + "host_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more hostname." + }, + "id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource OCIDs." + }, + "insight_by": { + "type": "string", + "description": "Return data of a specific insight Possible values are High Utilization, Low Utilization, Any,High Utilization Forecast, Low Utilization Forecast" + }, + "is_database_instance_level_metrics": { + "type": "boolean", + "description": "Flag to indicate if database instance level metrics should be returned. The flag is ignored when a host name filter is not applied. When a hostname filter is applied this flag will determine whether to return metrics for the instances located on the specified host or for the whole database which contains an instance on this host." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "low_utilization_threshold": { + "type": "integer", + "description": "Percent value in which a resource metric is considered low utilized." + }, + "percentile": { + "type": "integer", + "description": "Percentile values of daily usage to be used for computing the aggregate resource usage." + }, + "resource_metric": { + "type": "string", + "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY and IO." + }, + "sort_by": { + "type": "string", + "enum": [ + "utilizationPercent", + "usage", + "usageChangePercent", + "databaseName", + "databaseType" + ], + "description": "The order in which resource statistics records are listed Allowed values are: \"utilizationPercent\", \"usage\", \"usageChangePercent\", \"databaseName\", \"databaseType\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "vmcluster_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of Exadata Insight VM cluster name." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", + "resource_metric" + ] + }, + "mutable": false + }, + { + "name": "summarize_database_insight_resource_usage", + "description": "Shows overall consumption for a selected resourceMetric (for example CPU or STORAGE), including current usage, capacity, and usage change percent.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_database_insight_resource_usage", + "skills": [ + "database-capacity-usage-and-forecasting" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "analysis_time_interval": { + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." + }, + "cdb_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more cdb name." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "compartment_id_in_subtree": { + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." + }, + "database_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database OCIDs of the associated DBaaS entity." + }, + "database_type": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "ADW-S", + "ATP-S", + "ADW-D", + "ATP-D", + "EXTERNAL-PDB", + "EXTERNAL-NONCDB", + "COMANAGED-VM-CDB", + "COMANAGED-VM-PDB", + "COMANAGED-VM-NONCDB", + "COMANAGED-BM-CDB", + "COMANAGED-BM-PDB", + "COMANAGED-BM-NONCDB", + "COMANAGED-EXACS-CDB", + "COMANAGED-EXACS-PDB", + "COMANAGED-EXACS-NONCDB", + "COMANAGED-EXACC-CDB", + "COMANAGED-EXACC-PDB", + "COMANAGED-EXACC-NONCDB", + "MDS-MYSQL", + "EXTERNAL-MYSQL", + "ATP-EXACC", + "ADW-EXACC", + "EXTERNAL-ADW", + "EXTERNAL-ATP", + "LH-D", + "APEX-D", + "AJD-D", + "AVD-D", + "LH-S", + "APEX-S", + "AJD-S", + "AVD-S", + "LH-EXACC", + "APEX-EXACC", + "AJD-EXACC", + "AVD-EXACC" + ] + }, + "description": "Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: \"ADW-S\", \"ATP-S\", \"ADW-D\", \"ATP-D\", \"EXTERNAL-PDB\", \"EXTERNAL-NONCDB\", \"COMANAGED-VM-CDB\", \"COMANAGED-VM-PDB\", \"COMANAGED-VM-NONCDB\", \"COMANAGED-BM-CDB\", \"COMANAGED-BM-PDB\", \"COMANAGED-BM-NONCDB\", \"COMANAGED-EXACS-CDB\", \"COMANAGED-EXACS-PDB\", \"COMANAGED-EXACS-NONCDB\", \"COMANAGED-EXACC-CDB\", \"COMANAGED-EXACC-PDB\", \"COMANAGED-EXACC-NONCDB\", \"MDS-MYSQL\", \"EXTERNAL-MYSQL\", \"ATP-EXACC\", \"ADW-EXACC\", \"EXTERNAL-ADW\", \"EXTERNAL-ATP\", \"LH-D\", \"APEX-D\", \"AJD-D\", \"AVD-D\", \"LH-S\", \"APEX-S\", \"AJD-S\", \"AVD-S\", \"LH-EXACC\", \"APEX-EXACC\", \"AJD-EXACC\", \"AVD-EXACC\"" + }, + "exadata_insight_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of exadata insight resource OCIDs." + }, + "host_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more hostname." + }, + "id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource OCIDs." + }, + "is_database_instance_level_metrics": { + "type": "boolean", + "description": "Flag to indicate if database instance level metrics should be returned. The flag is ignored when a host name filter is not applied. When a hostname filter is applied this flag will determine whether to return metrics for the instances located on the specified host or for the whole database which contains an instance on this host." + }, + "percentile": { + "type": "integer", + "description": "Percentile values of daily usage to be used for computing the aggregate resource usage." + }, + "resource_metric": { + "type": "string", + "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY and IO." + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "vmcluster_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of Exadata Insight VM cluster name." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", + "resource_metric" + ] + }, + "mutable": false + }, + { + "name": "summarize_database_insight_resource_usage_trend", + "description": "Shows usage and capacity trend lines over time for a selected resourceMetric (for example CPU or STORAGE) to spot growth or spikes.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_database_insight_resource_usage_trend", + "skills": [ + "database-capacity-usage-and-forecasting" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "analysis_time_interval": { + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." + }, + "cdb_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more cdb name." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "compartment_id_in_subtree": { + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." + }, + "database_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database OCIDs of the associated DBaaS entity." + }, + "database_type": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "ADW-S", + "ATP-S", + "ADW-D", + "ATP-D", + "EXTERNAL-PDB", + "EXTERNAL-NONCDB", + "COMANAGED-VM-CDB", + "COMANAGED-VM-PDB", + "COMANAGED-VM-NONCDB", + "COMANAGED-BM-CDB", + "COMANAGED-BM-PDB", + "COMANAGED-BM-NONCDB", + "COMANAGED-EXACS-CDB", + "COMANAGED-EXACS-PDB", + "COMANAGED-EXACS-NONCDB", + "COMANAGED-EXACC-CDB", + "COMANAGED-EXACC-PDB", + "COMANAGED-EXACC-NONCDB", + "MDS-MYSQL", + "EXTERNAL-MYSQL", + "ATP-EXACC", + "ADW-EXACC", + "EXTERNAL-ADW", + "EXTERNAL-ATP", + "LH-D", + "APEX-D", + "AJD-D", + "AVD-D", + "LH-S", + "APEX-S", + "AJD-S", + "AVD-S", + "LH-EXACC", + "APEX-EXACC", + "AJD-EXACC", + "AVD-EXACC" + ] + }, + "description": "Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: \"ADW-S\", \"ATP-S\", \"ADW-D\", \"ATP-D\", \"EXTERNAL-PDB\", \"EXTERNAL-NONCDB\", \"COMANAGED-VM-CDB\", \"COMANAGED-VM-PDB\", \"COMANAGED-VM-NONCDB\", \"COMANAGED-BM-CDB\", \"COMANAGED-BM-PDB\", \"COMANAGED-BM-NONCDB\", \"COMANAGED-EXACS-CDB\", \"COMANAGED-EXACS-PDB\", \"COMANAGED-EXACS-NONCDB\", \"COMANAGED-EXACC-CDB\", \"COMANAGED-EXACC-PDB\", \"COMANAGED-EXACC-NONCDB\", \"MDS-MYSQL\", \"EXTERNAL-MYSQL\", \"ATP-EXACC\", \"ADW-EXACC\", \"EXTERNAL-ADW\", \"EXTERNAL-ATP\", \"LH-D\", \"APEX-D\", \"AJD-D\", \"AVD-D\", \"LH-S\", \"APEX-S\", \"AJD-S\", \"AVD-S\", \"LH-EXACC\", \"APEX-EXACC\", \"AJD-EXACC\", \"AVD-EXACC\"" + }, + "exadata_insight_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of exadata insight resource OCIDs." + }, + "host_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more hostname." + }, + "id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource OCIDs." + }, + "is_database_instance_level_metrics": { + "type": "boolean", + "description": "Flag to indicate if database instance level metrics should be returned. The flag is ignored when a host name filter is not applied. When a hostname filter is applied this flag will determine whether to return metrics for the instances located on the specified host or for the whole database which contains an instance on this host." + }, + "resource_metric": { + "type": "string", + "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY and IO." + }, + "sort_by": { + "type": "string", + "enum": [ + "endTimestamp", + "usage", + "capacity" + ], + "description": "Sorts using end timestamp, usage or capacity Allowed values are: \"endTimestamp\", \"usage\", \"capacity\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "vmcluster_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of Exadata Insight VM cluster name." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", + "resource_metric" + ] + }, + "mutable": false + }, + { + "name": "summarize_database_insight_resource_utilization_insight", + "description": "Groups databases by current and projected utilization bands for a selected resourceMetric (for example CPU or STORAGE).", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_database_insight_resource_utilization_insight", + "skills": [ + "database-capacity-usage-and-forecasting" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "analysis_time_interval": { + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." + }, + "cdb_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more cdb name." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "compartment_id_in_subtree": { + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." + }, + "database_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database OCIDs of the associated DBaaS entity." + }, + "database_type": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "ADW-S", + "ATP-S", + "ADW-D", + "ATP-D", + "EXTERNAL-PDB", + "EXTERNAL-NONCDB", + "COMANAGED-VM-CDB", + "COMANAGED-VM-PDB", + "COMANAGED-VM-NONCDB", + "COMANAGED-BM-CDB", + "COMANAGED-BM-PDB", + "COMANAGED-BM-NONCDB", + "COMANAGED-EXACS-CDB", + "COMANAGED-EXACS-PDB", + "COMANAGED-EXACS-NONCDB", + "COMANAGED-EXACC-CDB", + "COMANAGED-EXACC-PDB", + "COMANAGED-EXACC-NONCDB", + "MDS-MYSQL", + "EXTERNAL-MYSQL", + "ATP-EXACC", + "ADW-EXACC", + "EXTERNAL-ADW", + "EXTERNAL-ATP", + "LH-D", + "APEX-D", + "AJD-D", + "AVD-D", + "LH-S", + "APEX-S", + "AJD-S", + "AVD-S", + "LH-EXACC", + "APEX-EXACC", + "AJD-EXACC", + "AVD-EXACC" + ] + }, + "description": "Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: \"ADW-S\", \"ATP-S\", \"ADW-D\", \"ATP-D\", \"EXTERNAL-PDB\", \"EXTERNAL-NONCDB\", \"COMANAGED-VM-CDB\", \"COMANAGED-VM-PDB\", \"COMANAGED-VM-NONCDB\", \"COMANAGED-BM-CDB\", \"COMANAGED-BM-PDB\", \"COMANAGED-BM-NONCDB\", \"COMANAGED-EXACS-CDB\", \"COMANAGED-EXACS-PDB\", \"COMANAGED-EXACS-NONCDB\", \"COMANAGED-EXACC-CDB\", \"COMANAGED-EXACC-PDB\", \"COMANAGED-EXACC-NONCDB\", \"MDS-MYSQL\", \"EXTERNAL-MYSQL\", \"ATP-EXACC\", \"ADW-EXACC\", \"EXTERNAL-ADW\", \"EXTERNAL-ATP\", \"LH-D\", \"APEX-D\", \"AJD-D\", \"AVD-D\", \"LH-S\", \"APEX-S\", \"AJD-S\", \"AVD-S\", \"LH-EXACC\", \"APEX-EXACC\", \"AJD-EXACC\", \"AVD-EXACC\"" + }, + "exadata_insight_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of exadata insight resource OCIDs." + }, + "forecast_days": { + "type": "integer", + "description": "Number of days used for utilization forecast analysis." + }, + "high_utilization_threshold": { + "type": "integer", + "description": "Percent value in which a resource metric is considered highly utilized." + }, + "host_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more hostname." + }, + "id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource OCIDs." + }, + "is_database_instance_level_metrics": { + "type": "boolean", + "description": "Flag to indicate if database instance level metrics should be returned. The flag is ignored when a host name filter is not applied. When a hostname filter is applied this flag will determine whether to return metrics for the instances located on the specified host or for the whole database which contains an instance on this host." + }, + "low_utilization_threshold": { + "type": "integer", + "description": "Percent value in which a resource metric is considered low utilized." + }, + "resource_metric": { + "type": "string", + "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY and IO." + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "vmcluster_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of Exadata Insight VM cluster name." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", + "resource_metric" + ] + }, + "mutable": false + }, + { + "name": "summarize_database_insight_tablespace_usage_trend", + "description": "Shows which top tablespaces are growing over time, including used vs allocated space per interval (items.usageData) and the analysis window.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_database_insight_tablespace_usage_trend", + "skills": [ + "database-capacity-usage-and-forecasting" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "analysis_time_interval": { + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "database_id": { + "type": "string", + "description": "Optional OCID of the associated DBaaS entity." + }, + "id": { + "type": "string", + "description": "OCID of the database insight resource." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id" + ] + }, + "mutable": false + }, + { + "name": "summarize_exadata_insight_resource_capacity_trend", + "description": "Returns per-system Exadata capacity trends, including per-system items, selected metric/type, and usage units.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_exadata_insight_resource_capacity_trend", + "skills": [ + "exadatainsights" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "analysis_time_interval": { + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." + }, + "cdb_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more cdb name." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "database_insight_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource OCIDs." + }, + "exadata_insight_id": { + "type": "string", + "description": "OCID of exadata insight resource." + }, + "exadata_type": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC." + }, + "host_insight_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of host insight resource OCIDs." + }, + "host_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by hostname." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "resource_metric": { + "type": "string", + "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT" + }, + "resource_type": { + "type": "string", + "description": "Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE" + }, + "sort_by": { + "type": "string", + "enum": [ + "id", + "name" + ], + "description": "The order in which resource capacity trend records are listed Allowed values are: \"id\", \"name\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "storage_server_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional storage server name on an exadata system." + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "resource_type", + "resource_metric", + "exadata_insight_id" + ] + }, + "mutable": false + }, + { + "name": "summarize_exadata_insight_resource_capacity_trend_aggregated", + "description": "Returns fleet-level Exadata capacity trends, including capacityData, metric/type context, and interval duration.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_exadata_insight_resource_capacity_trend_aggregated", + "skills": [ + "exadatainsights" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "analysis_time_interval": { + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." + }, + "cdb_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more cdb name." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "compartment_id_in_subtree": { + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." + }, + "exadata_insight_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of exadata insight resource OCIDs." + }, + "exadata_type": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC." + }, + "host_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by hostname." + }, + "resource_metric": { + "type": "string", + "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT" + }, + "resource_type": { + "type": "string", + "description": "Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE" + }, + "sort_by": { + "type": "string", + "enum": [ + "endTimestamp", + "capacity" + ], + "description": "Sorts using end timestamp or capacity. Allowed values are: \"endTimestamp\", \"capacity\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "resource_type", + "resource_metric" + ] + }, + "mutable": false + }, + { + "name": "summarize_exadata_insight_resource_forecast_trend", + "description": "Returns per-system Exadata forecast trends, including items, exadataResourceMetric, and exadataResourceType.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_exadata_insight_resource_forecast_trend", + "skills": [ + "exadatainsights" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "analysis_time_interval": { + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." + }, + "cdb_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more cdb name." + }, + "confidence": { + "type": "integer", + "description": "This parameter is used to change data's confidence level, this data is ingested by the forecast algorithm. Confidence is the probability of an interval to contain the expected population parameter. Manipulation of this value will lead to different results. If not set, default confidence value is 95%." + }, + "database_insight_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource OCIDs." + }, + "exadata_insight_id": { + "type": "string", + "description": "OCID of exadata insight resource." + }, + "exadata_type": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC." + }, + "forecast_days": { + "type": "integer", + "description": "Number of days used for utilization forecast analysis." + }, + "forecast_model": { + "type": "string", + "enum": [ + "LINEAR", + "ML_AUTO", + "ML_NO_AUTO" + ], + "description": "Choose algorithm model for the forecasting. Possible values: - LINEAR: Uses linear regression algorithm for forecasting. - ML_AUTO: Automatically detects best algorithm to use for forecasting. - ML_NO_AUTO: Automatically detects seasonality of the data for forecasting using linear or seasonal algorithm. Allowed values are: \"LINEAR\", \"ML_AUTO\", \"ML_NO_AUTO\"" + }, + "forecast_start_day": { + "type": "integer", + "description": "Number of days used for utilization forecast analysis." + }, + "host_insight_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of host insight resource OCIDs." + }, + "host_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by hostname." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "resource_metric": { + "type": "string", + "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT" + }, + "resource_type": { + "type": "string", + "description": "Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE" + }, + "sort_by": { + "type": "string", + "enum": [ + "id", + "name", + "daysToReachCapacity" + ], + "description": "The order in which resource Forecast trend records are listed Allowed values are: \"id\", \"name\", \"daysToReachCapacity\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "statistic": { + "type": "string", + "enum": [ + "AVG", + "MAX" + ], + "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"" + }, + "storage_server_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional storage server name on an exadata system." + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "resource_type", + "resource_metric", + "exadata_insight_id" + ] + }, + "mutable": false + }, + { + "name": "summarize_exadata_insight_resource_forecast_trend_aggregated", + "description": "Returns aggregated forecast trends across Exadata systems, including historicalData, projectedData, and daysToReachCapacity.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_exadata_insight_resource_forecast_trend_aggregated", + "skills": [ + "exadatainsights" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "analysis_time_interval": { + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." + }, + "cdb_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more cdb name." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "compartment_id_in_subtree": { + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." + }, + "confidence": { + "type": "integer", + "description": "This parameter is used to change data's confidence level, this data is ingested by the forecast algorithm. Confidence is the probability of an interval to contain the expected population parameter. Manipulation of this value will lead to different results. If not set, default confidence value is 95%." + }, + "exadata_insight_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of exadata insight resource OCIDs." + }, + "exadata_type": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC." + }, + "forecast_days": { + "type": "integer", + "description": "Number of days used for utilization forecast analysis." + }, + "forecast_model": { + "type": "string", + "enum": [ + "LINEAR", + "ML_AUTO", + "ML_NO_AUTO" + ], + "description": "Choose algorithm model for the forecasting. Possible values: - LINEAR: Uses linear regression algorithm for forecasting. - ML_AUTO: Automatically detects best algorithm to use for forecasting. - ML_NO_AUTO: Automatically detects seasonality of the data for forecasting using linear or seasonal algorithm. Allowed values are: \"LINEAR\", \"ML_AUTO\", \"ML_NO_AUTO\"" + }, + "forecast_start_day": { + "type": "integer", + "description": "Number of days used for utilization forecast analysis." + }, + "host_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by hostname." + }, + "resource_metric": { + "type": "string", + "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT" + }, + "resource_type": { + "type": "string", + "description": "Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE" + }, + "statistic": { + "type": "string", + "enum": [ + "AVG", + "MAX" + ], + "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"" + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "resource_type", + "resource_metric" + ] + }, + "mutable": false + }, + { + "name": "summarize_exadata_insight_resource_statistics", + "description": "Returns member-level Exadata resource statistics, including resource items, selected metric, and usage unit context.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_exadata_insight_resource_statistics", + "skills": [ + "exadatainsights" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "analysis_time_interval": { + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." + }, + "cdb_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more cdb name." + }, + "exadata_insight_id": { + "type": "string", + "description": "OCID of exadata insight resource." + }, + "exadata_type": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC." + }, + "host_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by hostname." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "percentile": { + "type": "integer", + "description": "Percentile values of daily usage to be used for computing the aggregate resource usage." + }, + "resource_metric": { + "type": "string", + "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT" + }, + "resource_type": { + "type": "string", + "description": "Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE" + }, + "sort_by": { + "type": "string", + "enum": [ + "utilizationPercent", + "usage", + "usageChangePercent" + ], + "description": "The order in which resource statistics records are listed Allowed values are: \"utilizationPercent\", \"usage\", \"usageChangePercent\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "exadata_insight_id", + "resource_type", + "resource_metric" + ] + }, + "mutable": false + }, + { + "name": "summarize_exadata_insight_resource_usage", + "description": "Returns system-level Exadata resource usage, including per-system items, selected metric/type, and usage units.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_exadata_insight_resource_usage", + "skills": [ + "exadatainsights" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "analysis_time_interval": { + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." + }, + "cdb_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more cdb name." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "compartment_id_in_subtree": { + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." + }, + "exadata_insight_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of exadata insight resource OCIDs." + }, + "exadata_type": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC." + }, + "host_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by hostname." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "percentile": { + "type": "integer", + "description": "Percentile values of daily usage to be used for computing the aggregate resource usage." + }, + "resource_metric": { + "type": "string", + "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT" + }, + "resource_type": { + "type": "string", + "description": "Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE" + }, + "sort_by": { + "type": "string", + "enum": [ + "utilizationPercent", + "usage", + "capacity", + "usageChangePercent" + ], + "description": "The order in which resource usage summary records are listed Allowed values are: \"utilizationPercent\", \"usage\", \"capacity\", \"usageChangePercent\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", + "resource_type", + "resource_metric" + ] + }, + "mutable": false + }, + { + "name": "summarize_exadata_insight_resource_usage_aggregated", + "description": "Returns fleet-level aggregated Exadata usage, including usage, capacity, and usageChangePercent.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_exadata_insight_resource_usage_aggregated", + "skills": [ + "exadatainsights" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "analysis_time_interval": { + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." + }, + "cdb_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more cdb name." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "compartment_id_in_subtree": { + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." + }, + "exadata_insight_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of exadata insight resource OCIDs." + }, + "exadata_type": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC." + }, + "host_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by hostname." + }, + "percentile": { + "type": "integer", + "description": "Percentile values of daily usage to be used for computing the aggregate resource usage." + }, + "resource_metric": { + "type": "string", + "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT" + }, + "resource_type": { + "type": "string", + "description": "Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE" + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", + "resource_type", + "resource_metric" + ] + }, + "mutable": false + }, + { + "name": "summarize_exadata_insight_resource_utilization_insight", + "description": "Returns Exadata utilization insights with thresholds, including utilization, high/low threshold values, and metric/type context.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_exadata_insight_resource_utilization_insight", + "skills": [ + "exadatainsights" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "analysis_time_interval": { + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." + }, + "cdb_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more cdb name." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "compartment_id_in_subtree": { + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." + }, + "exadata_insight_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of exadata insight resource OCIDs." + }, + "exadata_type": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC." + }, + "forecast_days": { + "type": "integer", + "description": "Number of days used for utilization forecast analysis." + }, + "forecast_start_day": { + "type": "integer", + "description": "Number of days used for utilization forecast analysis." + }, + "high_utilization_threshold": { + "type": "integer", + "description": "Percent value in which a resource metric is considered highly utilized." + }, + "host_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by hostname." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "low_utilization_threshold": { + "type": "integer", + "description": "Percent value in which a resource metric is considered low utilized." + }, + "resource_metric": { + "type": "string", + "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT" + }, + "resource_type": { + "type": "string", + "description": "Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE" + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", + "resource_type", + "resource_metric" + ] + }, + "mutable": false + }, + { + "name": "summarize_exadata_members", + "description": "Returns Exadata member inventory, including rack identity (exadataName, exadataRackType) and member items.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_exadata_members", + "skills": [ + "exadatainsights" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "exadata_insight_id": { + "type": "string", + "description": "OCID of exadata insight resource." + }, + "exadata_type": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "sort_by": { + "type": "string", + "enum": [ + "name", + "displayName", + "entityType" + ], + "description": "The order in which exadata member records are listed Allowed values are: \"name\", \"displayName\", \"entityType\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "exadata_insight_id" + ] + }, + "mutable": false + }, + { + "name": "summarize_external_asm_metrics", + "description": "Returns time-series external ASM metrics for capacity and I/O health checks in a selected window.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "summarize_external_asm_metrics", + "skills": [ + "external-asm-core" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "end_time": { + "type": "string", + "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." + }, + "external_asm_id": { + "type": "string", + "description": "The OCID of the external ASM." + }, + "filter_by_metric_names": { + "type": "string", + "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "start_time": { + "type": "string", + "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "external_asm_id", + "start_time", + "end_time" + ] + }, + "mutable": false + }, + { + "name": "summarize_external_cluster_metrics", + "description": "Returns external cluster metrics for health checks in a selected time window.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "summarize_external_cluster_metrics", + "skills": [ + "external-db-runtime-topology" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "end_time": { + "type": "string", + "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." + }, + "external_cluster_id": { + "type": "string", + "description": "The OCID of the external cluster." + }, + "filter_by_metric_names": { + "type": "string", + "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "start_time": { + "type": "string", + "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "external_cluster_id", + "start_time", + "end_time" + ] + }, + "mutable": false + }, + { + "name": "summarize_external_db_node_metrics", + "description": "Returns external DB node metrics for CPU, memory, network, and storage checks in a selected window.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "summarize_external_db_node_metrics", + "skills": [ + "external-db-runtime-topology" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "end_time": { + "type": "string", + "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." + }, + "external_db_node_id": { + "type": "string", + "description": "The OCID of the external database node." + }, + "filter_by_metric_names": { + "type": "string", + "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "start_time": { + "type": "string", + "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "external_db_node_id", + "start_time", + "end_time" + ] + }, + "mutable": false + }, + { + "name": "summarize_external_db_system_availability_metrics", + "description": "Returns availability metrics for external DB system components over a selected time window.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "summarize_external_db_system_availability_metrics", + "skills": [ + "external-inventory-discovery-connectivity" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "end_time": { + "type": "string", + "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." + }, + "external_db_system_id": { + "type": "string", + "description": "The OCID of the external DB system." + }, + "filter_by_component_types": { + "type": "string", + "description": "The filter used to retrieve metrics for a specific set of component types by passing the desired component types separated by a comma. Note that, by default, the service returns metrics for all DB system component types." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "start_time": { + "type": "string", + "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "external_db_system_id", + "start_time", + "end_time" + ] + }, + "mutable": false + }, + { + "name": "summarize_external_listener_metrics", + "description": "Returns listener metrics for connection-load and availability checks in a selected window.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "summarize_external_listener_metrics", + "skills": [ + "external-db-runtime-topology" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "end_time": { + "type": "string", + "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." + }, + "external_listener_id": { + "type": "string", + "description": "The OCID of the external listener." + }, + "filter_by_metric_names": { + "type": "string", + "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "start_time": { + "type": "string", + "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "external_listener_id", + "start_time", + "end_time" + ] + }, + "mutable": false + }, + { + "name": "summarize_host_insight_disk_statistics", + "description": "Returns disk-level usage statistics for a host, including per-disk items, interval duration, and usage units.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_host_insight_disk_statistics", + "skills": [ + "hostinsights" + ], + "inputSchema": { + "type": "object", + "properties": { + "analysis_time_interval": { + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "host_id": { + "type": "string", + "description": "Optional OCID of the host (Compute Id)." + }, + "id": { + "type": "string", + "description": "Required OCID of the host insight resource." + }, + "statistic": { + "type": "string", + "enum": [ + "AVG", + "MAX" + ], + "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"" + }, + "status": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED", + "TERMINATED" + ] + }, + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", + "id" + ] + }, + "mutable": false + }, + { + "name": "summarize_host_insight_host_recommendation", + "description": "Returns host recommendations for a resource type, including recommendation details, interval context, and usage units.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_host_insight_host_recommendation", + "skills": [ + "hostinsights" + ], + "inputSchema": { + "type": "object", + "properties": { + "analysis_time_interval": { + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "host_id": { + "type": "string", + "description": "Optional OCID of the host (Compute Id)." + }, + "id": { + "type": "string", + "description": "Required OCID of the host insight resource." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "resource_metric": { + "type": "string", + "description": "Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK." + }, + "statistic": { + "type": "string", + "enum": [ + "AVG", + "MAX" + ], + "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"" + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", + "id", + "resource_metric" + ] + }, + "mutable": false + }, + { + "name": "summarize_host_insight_io_usage_trend", + "description": "Returns host I/O usage time-series data, including items, interval duration, and start/end timestamps.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_host_insight_io_usage_trend", + "skills": [ + "hostinsights" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "analysis_time_interval": { + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "host_id": { + "type": "string", + "description": "Optional OCID of the host (Compute Id)." + }, + "id": { + "type": "string", + "description": "Required OCID of the host insight resource." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "statistic": { + "type": "string", + "enum": [ + "AVG", + "MAX" + ], + "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"" + }, + "status": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED", + "TERMINATED" + ] + }, + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", + "id" + ] + }, + "mutable": false + }, + { + "name": "summarize_host_insight_network_usage_trend", + "description": "Returns network usage trends for a host, including sampled items, interval duration, and usage units.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_host_insight_network_usage_trend", + "skills": [ + "hostinsights" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "analysis_time_interval": { + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "host_id": { + "type": "string", + "description": "Optional OCID of the host (Compute Id)." + }, + "id": { + "type": "string", + "description": "Required OCID of the host insight resource." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "statistic": { + "type": "string", + "enum": [ + "AVG", + "MAX" + ], + "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"" + }, + "status": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED", + "TERMINATED" + ] + }, + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", + "id" + ] + }, + "mutable": false + }, + { + "name": "summarize_host_insight_resource_capacity_trend", + "description": "Returns host resource capacity trend data, including capacityData, resourceMetric, and interval boundaries.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_host_insight_resource_capacity_trend", + "skills": [ + "hostinsights" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "analysis_time_interval": { + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "compartment_id_in_subtree": { + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." + }, + "exadata_insight_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of exadata insight resource OCIDs." + }, + "high_utilization_threshold": { + "type": "integer", + "description": "Percent value in which a resource metric is considered highly utilized." + }, + "host_id": { + "type": "string", + "description": "Optional OCID of the host (Compute Id)." + }, + "host_type": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST" + }, + "id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of host insight resource OCIDs." + }, + "low_utilization_threshold": { + "type": "integer", + "description": "Percent value in which a resource metric is considered low utilized." + }, + "platform_type": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "LINUX", + "SOLARIS", + "SUNOS", + "ZLINUX", + "WINDOWS", + "AIX", + "HP_UX" + ] + }, + "description": "Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: \"LINUX\", \"SOLARIS\", \"SUNOS\", \"ZLINUX\", \"WINDOWS\", \"AIX\", \"HP_UX\"" + }, + "resource_metric": { + "type": "string", + "description": "Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK." + }, + "sort_by": { + "type": "string", + "enum": [ + "endTimestamp", + "capacity" + ], + "description": "Sorts using end timestamp or capacity Allowed values are: \"endTimestamp\", \"capacity\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "status": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED", + "TERMINATED" + ] + }, + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "utilization_level": { + "type": "string", + "enum": [ + "HIGH_UTILIZATION", + "LOW_UTILIZATION", + "MEDIUM_HIGH_UTILIZATION", + "MEDIUM_LOW_UTILIZATION" + ], + "description": "Filter by utilization level by the following buckets: - HIGH_UTILIZATION: DBs with utilization greater or equal than 75. - LOW_UTILIZATION: DBs with utilization lower than 25. - MEDIUM_HIGH_UTILIZATION: DBs with utilization greater or equal than 50 but lower than 75. - MEDIUM_LOW_UTILIZATION: DBs with utilization greater or equal than 25 but lower than 50. Allowed values are: \"HIGH_UTILIZATION\", \"LOW_UTILIZATION\", \"MEDIUM_HIGH_UTILIZATION\", \"MEDIUM_LOW_UTILIZATION\"" + }, + "vmcluster_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of Exadata Insight VM cluster name." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", + "resource_metric" + ] + }, + "mutable": false + }, + { + "name": "summarize_host_insight_resource_forecast_trend", + "description": "Returns historical and projected usage for a host resource, including historicalData, projectedData, and selected forecast algorithm.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_host_insight_resource_forecast_trend", + "skills": [ + "hostinsights" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "analysis_time_interval": { + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "compartment_id_in_subtree": { + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." + }, + "confidence": { + "type": "integer", + "description": "This parameter is used to change data's confidence level, this data is ingested by the forecast algorithm. Confidence is the probability of an interval to contain the expected population parameter. Manipulation of this value will lead to different results. If not set, default confidence value is 95%." + }, + "exadata_insight_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of exadata insight resource OCIDs." + }, + "forecast_days": { + "type": "integer", + "description": "Number of days used for utilization forecast analysis." + }, + "forecast_model": { + "type": "string", + "enum": [ + "LINEAR", + "ML_AUTO", + "ML_NO_AUTO" + ], + "description": "Choose algorithm model for the forecasting. Possible values: - LINEAR: Uses linear regression algorithm for forecasting. - ML_AUTO: Automatically detects best algorithm to use for forecasting. - ML_NO_AUTO: Automatically detects seasonality of the data for forecasting using linear or seasonal algorithm. Allowed values are: \"LINEAR\", \"ML_AUTO\", \"ML_NO_AUTO\"" + }, + "gpu_id": { + "type": "integer", + "description": "GPU identifier." + }, + "high_utilization_threshold": { + "type": "integer", + "description": "Percent value in which a resource metric is considered highly utilized." + }, + "host_id": { + "type": "string", + "description": "Optional OCID of the host (Compute Id)." + }, + "host_type": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST" + }, + "id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of host insight resource OCIDs." + }, + "interface_name": { + "type": "string", + "description": "Name of the network interface." + }, + "low_utilization_threshold": { + "type": "integer", + "description": "Percent value in which a resource metric is considered low utilized." + }, + "mount_point": { + "type": "string", + "description": "Mount points are specialized NTFS filesystem objects." + }, + "platform_type": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "LINUX", + "SOLARIS", + "SUNOS", + "ZLINUX", + "WINDOWS", + "AIX", + "HP_UX" + ] + }, + "description": "Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: \"LINUX\", \"SOLARIS\", \"SUNOS\", \"ZLINUX\", \"WINDOWS\", \"AIX\", \"HP_UX\"" + }, + "resource_metric": { + "type": "string", + "description": "Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK." + }, + "statistic": { + "type": "string", + "enum": [ + "AVG", + "MAX" + ], + "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"" + }, + "status": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED", + "TERMINATED" + ] + }, + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "utilization_level": { + "type": "string", + "enum": [ + "HIGH_UTILIZATION", + "LOW_UTILIZATION", + "MEDIUM_HIGH_UTILIZATION", + "MEDIUM_LOW_UTILIZATION" + ], + "description": "Filter by utilization level by the following buckets: - HIGH_UTILIZATION: DBs with utilization greater or equal than 75. - LOW_UTILIZATION: DBs with utilization lower than 25. - MEDIUM_HIGH_UTILIZATION: DBs with utilization greater or equal than 50 but lower than 75. - MEDIUM_LOW_UTILIZATION: DBs with utilization greater or equal than 25 but lower than 50. Allowed values are: \"HIGH_UTILIZATION\", \"LOW_UTILIZATION\", \"MEDIUM_HIGH_UTILIZATION\", \"MEDIUM_LOW_UTILIZATION\"" + }, + "vmcluster_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of Exadata Insight VM cluster name." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", + "resource_metric" + ] + }, + "mutable": false + }, + { + "name": "summarize_host_insight_resource_statistics", + "description": "Returns host-by-host resource statistics, including per-host items, utilization thresholds, and usage units.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_host_insight_resource_statistics", + "skills": [ + "hostinsights" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "analysis_time_interval": { + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "compartment_id_in_subtree": { + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." + }, + "exadata_insight_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of exadata insight resource OCIDs." + }, + "forecast_days": { + "type": "integer", + "description": "Number of days used for utilization forecast analysis." + }, + "high_utilization_threshold": { + "type": "integer", + "description": "Percent value in which a resource metric is considered highly utilized." + }, + "host_id": { + "type": "string", + "description": "Optional OCID of the host (Compute Id)." + }, + "host_type": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST" + }, + "id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of host insight resource OCIDs." + }, + "insight_by": { + "type": "string", + "description": "Return data of a specific insight Possible values are High Utilization, Low Utilization, Any,High Utilization Forecast, Low Utilization Forecast" + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "low_utilization_threshold": { + "type": "integer", + "description": "Percent value in which a resource metric is considered low utilized." + }, + "percentile": { + "type": "integer", + "description": "Percentile values of daily usage to be used for computing the aggregate resource usage." + }, + "platform_type": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "LINUX", + "SOLARIS", + "SUNOS", + "ZLINUX", + "WINDOWS", + "AIX", + "HP_UX" + ] + }, + "description": "Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: \"LINUX\", \"SOLARIS\", \"SUNOS\", \"ZLINUX\", \"WINDOWS\", \"AIX\", \"HP_UX\"" + }, + "resource_metric": { + "type": "string", + "description": "Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK." + }, + "sort_by": { + "type": "string", + "enum": [ + "utilizationPercent", + "usage", + "usageChangePercent", + "hostName", + "platformType" + ], + "description": "The order in which resource statistics records are listed. Allowed values are: \"utilizationPercent\", \"usage\", \"usageChangePercent\", \"hostName\", \"platformType\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "status": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED", + "TERMINATED" + ] + }, + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "vmcluster_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of Exadata Insight VM cluster name." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", + "resource_metric" + ] + }, + "mutable": false + }, + { + "name": "summarize_host_insight_resource_usage", + "description": "Returns aggregated host usage for a resource type, including usage, capacity, and usageChangePercent.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_host_insight_resource_usage", + "skills": [ + "hostinsights" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "analysis_time_interval": { + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "compartment_id_in_subtree": { + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." + }, + "exadata_insight_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of exadata insight resource OCIDs." + }, + "host_id": { + "type": "string", + "description": "Optional OCID of the host (Compute Id)." + }, + "host_type": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST" + }, + "id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of host insight resource OCIDs." + }, + "percentile": { + "type": "integer", + "description": "Percentile values of daily usage to be used for computing the aggregate resource usage." + }, + "platform_type": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "LINUX", + "SOLARIS", + "SUNOS", + "ZLINUX", + "WINDOWS", + "AIX", + "HP_UX" + ] + }, + "description": "Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: \"LINUX\", \"SOLARIS\", \"SUNOS\", \"ZLINUX\", \"WINDOWS\", \"AIX\", \"HP_UX\"" + }, + "resource_metric": { + "type": "string", + "description": "Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK." + }, + "status": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED", + "TERMINATED" + ] + }, + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "vmcluster_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of Exadata Insight VM cluster name." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", + "resource_metric" + ] + }, + "mutable": false + }, + { + "name": "summarize_host_insight_resource_usage_trend", + "description": "Returns host usage time series for a resource type, including usageData, resourceMetric, and interval boundaries.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_host_insight_resource_usage_trend", + "skills": [ + "hostinsights" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "analysis_time_interval": { + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "compartment_id_in_subtree": { + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." + }, + "exadata_insight_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of exadata insight resource OCIDs." + }, + "host_id": { + "type": "string", + "description": "Optional OCID of the host (Compute Id)." + }, + "host_type": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST" + }, + "id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of host insight resource OCIDs." + }, + "platform_type": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "LINUX", + "SOLARIS", + "SUNOS", + "ZLINUX", + "WINDOWS", + "AIX", + "HP_UX" + ] + }, + "description": "Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: \"LINUX\", \"SOLARIS\", \"SUNOS\", \"ZLINUX\", \"WINDOWS\", \"AIX\", \"HP_UX\"" + }, + "resource_metric": { + "type": "string", + "description": "Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK." + }, + "sort_by": { + "type": "string", + "enum": [ + "endTimestamp", + "usage", + "capacity" + ], + "description": "Sorts using end timestamp, usage or capacity Allowed values are: \"endTimestamp\", \"usage\", \"capacity\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" + }, + "status": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED", + "TERMINATED" + ] + }, + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "vmcluster_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of Exadata Insight VM cluster name." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", + "resource_metric" + ] + }, + "mutable": false + }, + { + "name": "summarize_host_insight_resource_utilization_insight", + "description": "Returns current and projected utilization insights, including currentUtilization, projectedUtilization, and threshold values.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_host_insight_resource_utilization_insight", + "skills": [ + "hostinsights" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "analysis_time_interval": { + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "compartment_id_in_subtree": { + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments." + }, + "exadata_insight_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of exadata insight resource OCIDs." + }, + "forecast_days": { + "type": "integer", + "description": "Number of days used for utilization forecast analysis." + }, + "high_utilization_threshold": { + "type": "integer", + "description": "Percent value in which a resource metric is considered highly utilized." + }, + "host_id": { + "type": "string", + "description": "Optional OCID of the host (Compute Id)." + }, + "host_type": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST" + }, + "id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of host insight resource OCIDs." + }, + "low_utilization_threshold": { + "type": "integer", + "description": "Percent value in which a resource metric is considered low utilized." + }, + "platform_type": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "LINUX", + "SOLARIS", + "SUNOS", + "ZLINUX", + "WINDOWS", + "AIX", + "HP_UX" + ] + }, + "description": "Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: \"LINUX\", \"SOLARIS\", \"SUNOS\", \"ZLINUX\", \"WINDOWS\", \"AIX\", \"HP_UX\"" + }, + "resource_metric": { + "type": "string", + "description": "Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK." + }, + "status": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED", + "TERMINATED" + ] + }, + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "vmcluster_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of Exadata Insight VM cluster name." + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + } + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + } + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", + "resource_metric" + ] + }, + "mutable": false + }, + { + "name": "summarize_host_insight_storage_usage_trend", + "description": "Returns storage usage trends for a host, including filesystem-level items, interval duration, and usage units.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_host_insight_storage_usage_trend", + "skills": [ + "hostinsights" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "analysis_time_interval": { + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "host_id": { + "type": "string", + "description": "Optional OCID of the host (Compute Id)." + }, + "id": { + "type": "string", + "description": "Required OCID of the host insight resource." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "statistic": { + "type": "string", + "enum": [ + "AVG", + "MAX" + ], + "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"" + }, + "status": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED", + "TERMINATED" + ] + }, + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", + "id" + ] + }, + "mutable": false + }, + { + "name": "summarize_host_insight_top_processes_usage", + "description": "Returns top process usage for a specific date, including process items and observation timestamp.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_host_insight_top_processes_usage", + "skills": [ + "hostinsights" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "analysis_time_interval": { + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "host_id": { + "type": "string", + "description": "Optional OCID of the host (Compute Id)." + }, + "host_type": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST" + }, + "id": { + "type": "string", + "description": "Required OCID of the host insight resource." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "resource_metric": { + "type": "string", + "description": "Host top processes resource metric sort options. Supported values are CPU, MEMORY, VIIRTUAL_MEMORY." + }, + "statistic": { + "type": "string", + "enum": [ + "AVG", + "MAX" + ], + "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"" + }, + "status": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED", + "TERMINATED" + ] + }, + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "timestamp": { + "type": "string", + "format": "date-time", + "description": "Timestamp at which to gather the top processes. This will be top processes over the hour or over the day pending the time range passed into the query." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", + "id", + "resource_metric", + "timestamp" + ] + }, + "mutable": false + }, + { + "name": "summarize_host_insight_top_processes_usage_trend", + "description": "Returns top process usage trends, including process items and interval start/end timestamps.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_host_insight_top_processes_usage_trend", + "skills": [ + "hostinsights" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "analysis_time_interval": { + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." + }, + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "host_id": { + "type": "string", + "description": "Optional OCID of the host (Compute Id)." + }, + "host_type": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST" + }, + "id": { + "type": "string", + "description": "Required OCID of the host insight resource." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "process_hash": { + "type": "string", + "description": "Unique identifier for a process." + }, + "resource_metric": { + "type": "string", + "description": "Host top processes resource metric sort options. Supported values are CPU, MEMORY, VIIRTUAL_MEMORY." + }, + "statistic": { + "type": "string", + "enum": [ + "AVG", + "MAX" + ], + "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"" + }, + "status": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED", + "TERMINATED" + ] + }, + "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", + "id", + "resource_metric" + ] + }, + "mutable": false + }, + { + "name": "summarize_job_executions_statuses", + "description": "Returns aggregated counts of job executions by status for the requested scope and time range.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "summarize_job_executions_statuses", + "skills": [ + "job-orchestration-and-execution-tracking" + ], + "inputSchema": { + "type": "object", + "properties": { + "compartment_id": { + "type": "string", + "description": "The OCID of the compartment." + }, + "end_time": { + "type": "string", + "description": "The end time of the time range to retrieve the status summary of job executions\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." + }, + "id": { + "type": "string", + "description": "The identifier of the resource." + }, + "managed_database_group_id": { + "type": "string", + "description": "The OCID of the Managed Database Group." + }, + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "name": { + "type": "string", + "description": "A filter to return only resources that match the entire name." + }, + "sort_by": { + "type": "string", + "enum": [ + "TIMECREATED", + "NAME" + ], + "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" + }, + "start_time": { + "type": "string", + "description": "The start time of the time range to retrieve the status summary of job executions\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", + "start_time", + "end_time" + ] + }, + "mutable": false + }, + { + "name": "summarize_managed_database_availability_metrics", + "description": "Returns managed database availability summaries so admins can assess component uptime and health over time.", + "service": "dbm", + "client": "DbManagementClient", + "operation": "summarize_managed_database_availability_metrics", + "skills": [ + "database-health-and-core-metrics" + ], + "inputSchema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "The page token returned by the previous call." + }, + "end_time": { + "type": "string", + "description": "The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." + }, + "limit": { + "type": "integer", + "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." + }, + "managed_database_id": { + "type": "string", + "description": "The OCID of the Managed Database." + }, + "start_time": { + "type": "string", + "description": "The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." + }, + "opc_request_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "managed_database_id", + "start_time", + "end_time" + ] + }, + "mutable": false + }, + { + "name": "summarize_operations_insights_warehouse_resource_usage", + "description": "Returns warehouse resource-usage details so admins can monitor consumption and plan warehouse capacity operations.", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_operations_insights_warehouse_resource_usage", + "skills": [ + "operations-insights-warehouse-admin" + ], + "inputSchema": { + "type": "object", + "properties": { + "opc_request_id": { + "type": "string" + }, + "operations_insights_warehouse_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "operations_insights_warehouse_id" + ] + }, + "mutable": false + }, + { + "name": "summarize_sql_insights", + "description": "Get performance Insights for SQLs across databases. DEPRECATED (announced May 2024; no longer functional as of May 31, 2025).", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_sql_insights", + "skills": [ + "database-performance-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "compartment_id": { + "type": "string", + "description": "The [OCID](/iaas/Content/General/Concepts/identifiers.htm) of the compartment." + }, + "database_type": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "ADW-S", + "ATP-S", + "ADW-D", + "ATP-D", + "EXTERNAL-PDB", + "EXTERNAL-NONCDB", + "COMANAGED-VM-CDB", + "COMANAGED-VM-PDB", + "COMANAGED-VM-NONCDB", + "COMANAGED-BM-CDB", + "COMANAGED-BM-PDB", + "COMANAGED-BM-NONCDB", + "COMANAGED-EXACS-CDB", + "COMANAGED-EXACS-PDB", + "COMANAGED-EXACS-NONCDB", + "COMANAGED-EXACC-CDB", + "COMANAGED-EXACC-PDB", + "COMANAGED-EXACC-NONCDB", + "MDS-MYSQL", + "EXTERNAL-MYSQL", + "ATP-EXACC", + "ADW-EXACC", + "EXTERNAL-ADW", + "EXTERNAL-ATP" + ] + }, + "description": "Filter by one or more database type.\nPossible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB.\n" + }, + "database_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database [OCIDs](/iaas/Content/General/Concepts/identifiers.htm) of the associated DBaaS entity.\n" + }, + "id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource [OCIDs](/iaas/Content/General/Concepts/identifiers.htm).\n" + }, + "exadata_insight_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of exadata insight resource [OCIDs](/iaas/Content/General/Concepts/identifiers.htm).\n" + }, + "cdb_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more cdb name.\n" + }, + "host_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more hostname.\n" + }, + "database_time_pct_greater_than": { + "type": "number", + "minimum": 1, + "maximum": 100, + "description": "Filter sqls by percentage of db time.\n" + }, + "analysis_time_interval": { + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time.\nDefault is last 30 days represented by P30D.\nIf timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored.\nExamples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months), . Maximum value allowed is 25 months prior to current time (P25M).\n" + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\nThe minimum allowed value is 2 years prior to the current day.\ntimeIntervalStart and timeIntervalEnd parameters are used together.\nIf analysisTimeInterval is specified, this parameter is ignored.\n" + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\ntimeIntervalStart and timeIntervalEnd are used together.\nIf timeIntervalEnd is not specified, current time is used as timeIntervalEnd.\n" + }, + "page": { + "type": "string", + "description": "For list pagination. The value of the `opc-next-page` response header from\nthe previous \"List\" call. For important details about how pagination works,\nsee [List Pagination](/Content/API/Concepts/usingapi.htm#nine).\n" + }, + "opc_request_id": { + "type": "string", + "description": "Unique Oracle-assigned identifier for the request. If you need to contact\nOracle about a particular request, please provide the request ID.\n" + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of tag filters to apply. Only resources with a defined tag matching the value will be returned.\nEach item in the list has the format \"{namespace}.{tagName}.{value}\". All inputs are case-insensitive.\nMultiple values for the same key (i.e. same namespace and tag name) are interpreted as \"OR\".\nValues for different keys (i.e. different namespaces, different tag names, or both) are interpreted as \"AND\".\n" + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of tag filters to apply. Only resources with a freeform tag matching the value will be returned.\nThe key for each tag is \"{tagName}.{value}\". All inputs are case-insensitive.\nMultiple values for the same tag name are interpreted as \"OR\". Values for different tag names are interpreted as \"AND\".\n" + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of tag existence filters to apply. Only resources for which the specified defined tags exist will be returned.\nEach item in the list has the format \"{namespace}.{tagName}.true\" (for checking existence of a defined tag)\nor \"{namespace}.true\". All inputs are case-insensitive.\nCurrently, only existence (\"true\" at the end) is supported. Absence (\"false\" at the end) is not supported.\nMultiple values for the same key (i.e. same namespace and tag name) are interpreted as \"OR\".\nValues for different keys (i.e. different namespaces, different tag names, or both) are interpreted as \"AND\".\n" + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of tag existence filters to apply. Only resources for which the specified freeform tags exist the value will be returned.\nThe key for each tag is \"{tagName}.true\". All inputs are case-insensitive.\nCurrently, only existence (\"true\" at the end) is supported. Absence (\"false\" at the end) is not supported.\nMultiple values for different tag names are interpreted as \"AND\".\n" + }, + "compartment_id_in_subtree": { + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments.\n" + }, + "vmcluster_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of Exadata Insight VM cluster name.\n" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id" + ] + }, + "mutable": false + }, + { + "name": "summarize_sql_plan_insights", + "description": "Get performance insights on execution plans for a SQL. DEPRECATED (announced May 2024; no longer functional as of May 31, 2025).", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_sql_plan_insights", + "skills": [ + "database-performance-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "compartment_id": { + "type": "string", + "description": "The [OCID](/iaas/Content/General/Concepts/identifiers.htm) of the compartment." + }, + "database_id": { + "type": "string", + "description": "Optional [OCID](/iaas/Content/General/Concepts/identifiers.htm) of the associated DBaaS entity.\n" + }, + "id": { + "type": "string", + "description": "[OCID](/iaas/Content/General/Concepts/identifiers.htm) of the database insight resource.\n" + }, + "sql_identifier": { + "type": "string", + "description": "Unique SQL_ID for a SQL Statement.\nExample: `6rgjh9bjmy2s7`\n" + }, + "analysis_time_interval": { + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time.\nDefault is last 30 days represented by P30D.\nIf timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored.\nExamples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months), . Maximum value allowed is 25 months prior to current time (P25M).\n" + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\nThe minimum allowed value is 2 years prior to the current day.\ntimeIntervalStart and timeIntervalEnd parameters are used together.\nIf analysisTimeInterval is specified, this parameter is ignored.\n" + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\ntimeIntervalStart and timeIntervalEnd are used together.\nIf timeIntervalEnd is not specified, current time is used as timeIntervalEnd.\n" + }, + "page": { + "type": "string", + "description": "For list pagination. The value of the `opc-next-page` response header from\nthe previous \"List\" call. For important details about how pagination works,\nsee [List Pagination](/Content/API/Concepts/usingapi.htm#nine).\n" + }, + "opc_request_id": { + "type": "string", + "description": "Unique Oracle-assigned identifier for the request. If you need to contact\nOracle about a particular request, please provide the request ID.\n" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", + "sql_identifier" + ] + }, + "mutable": false + }, + { + "name": "summarize_sql_response_time_distributions", + "description": "Summarize response time distribution of query executions for a SQL. DEPRECATED (announced May 2024; no longer functional as of May 31, 2025).", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_sql_response_time_distributions", + "skills": [ + "database-performance-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "compartment_id": { + "type": "string", + "description": "The [OCID](/iaas/Content/General/Concepts/identifiers.htm) of the compartment." + }, + "database_id": { + "type": "string", + "description": "Optional [OCID](/iaas/Content/General/Concepts/identifiers.htm) of the associated DBaaS entity.\n" + }, + "id": { + "type": "string", + "description": "[OCID](/iaas/Content/General/Concepts/identifiers.htm) of the database insight resource.\n" + }, + "sql_identifier": { + "type": "string", + "description": "Unique SQL_ID for a SQL Statement.\nExample: `6rgjh9bjmy2s7`\n" + }, + "analysis_time_interval": { + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time.\nDefault is last 30 days represented by P30D.\nIf timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored.\nExamples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months), . Maximum value allowed is 25 months prior to current time (P25M).\n" + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\nThe minimum allowed value is 2 years prior to the current day.\ntimeIntervalStart and timeIntervalEnd parameters are used together.\nIf analysisTimeInterval is specified, this parameter is ignored.\n" + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\ntimeIntervalStart and timeIntervalEnd are used together.\nIf timeIntervalEnd is not specified, current time is used as timeIntervalEnd.\n" + }, + "page": { + "type": "string", + "description": "For list pagination. The value of the `opc-next-page` response header from\nthe previous \"List\" call. For important details about how pagination works,\nsee [List Pagination](/Content/API/Concepts/usingapi.htm#nine).\n" + }, + "opc_request_id": { + "type": "string", + "description": "Unique Oracle-assigned identifier for the request. If you need to contact\nOracle about a particular request, please provide the request ID.\n" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", + "sql_identifier" + ] + }, + "mutable": false + }, + { + "name": "summarize_sql_statistics", + "description": "Get performance statistics for SQLs across databases. DEPRECATED (announced May 2024; no longer functional as of May 31, 2025).", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_sql_statistics", + "skills": [ + "database-performance-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "compartment_id": { + "type": "string", + "description": "The [OCID](/iaas/Content/General/Concepts/identifiers.htm) of the compartment." + }, + "database_type": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "ADW-S", + "ATP-S", + "ADW-D", + "ATP-D", + "EXTERNAL-PDB", + "EXTERNAL-NONCDB", + "COMANAGED-VM-CDB", + "COMANAGED-VM-PDB", + "COMANAGED-VM-NONCDB", + "COMANAGED-BM-CDB", + "COMANAGED-BM-PDB", + "COMANAGED-BM-NONCDB", + "COMANAGED-EXACS-CDB", + "COMANAGED-EXACS-PDB", + "COMANAGED-EXACS-NONCDB", + "COMANAGED-EXACC-CDB", + "COMANAGED-EXACC-PDB", + "COMANAGED-EXACC-NONCDB", + "MDS-MYSQL", + "EXTERNAL-MYSQL", + "ATP-EXACC", + "ADW-EXACC", + "EXTERNAL-ADW", + "EXTERNAL-ATP" + ] + }, + "description": "Filter by one or more database type.\nPossible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB.\n" + }, + "database_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database [OCIDs](/iaas/Content/General/Concepts/identifiers.htm) of the associated DBaaS entity.\n" + }, + "id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database insight resource [OCIDs](/iaas/Content/General/Concepts/identifiers.htm).\n" + }, + "exadata_insight_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of exadata insight resource [OCIDs](/iaas/Content/General/Concepts/identifiers.htm).\n" + }, + "cdb_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more cdb name.\n" + }, + "host_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more hostname.\n" + }, + "database_time_pct_greater_than": { + "type": "number", + "minimum": 1, + "maximum": 100, + "description": "Filter sqls by percentage of db time.\n" + }, + "sql_identifier": { + "type": "array", + "items": { + "type": "string" + }, + "description": "One or more unique SQL_IDs for a SQL Statement.\nExample: `6rgjh9bjmy2s7`\n" + }, + "analysis_time_interval": { + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time.\nDefault is last 30 days represented by P30D.\nIf timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored.\nExamples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months), . Maximum value allowed is 25 months prior to current time (P25M).\n" + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\nThe minimum allowed value is 2 years prior to the current day.\ntimeIntervalStart and timeIntervalEnd parameters are used together.\nIf analysisTimeInterval is specified, this parameter is ignored.\n" + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\ntimeIntervalStart and timeIntervalEnd are used together.\nIf timeIntervalEnd is not specified, current time is used as timeIntervalEnd.\n" + }, + "limit": { + "type": "integer", + "minimum": 1, + "maximum": 1000, + "description": "For list pagination. The maximum number of results per page, or items to\nreturn in a paginated \"List\" call.\nFor important details about how pagination works, see\n[List Pagination](/Content/API/Concepts/usingapi.htm#nine).\nExample: `50`\n" + }, + "page": { + "type": "string", + "description": "For list pagination. The value of the `opc-next-page` response header from\nthe previous \"List\" call. For important details about how pagination works,\nsee [List Pagination](/Content/API/Concepts/usingapi.htm#nine).\n" + }, + "opc_request_id": { + "type": "string", + "description": "Unique Oracle-assigned identifier for the request. If you need to contact\nOracle about a particular request, please provide the request ID.\n" + }, + "sort_order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ], + "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`).\n" + }, + "sort_by": { + "type": "string", + "enum": [ + "databaseTimeInSec", + "executionsPerHour", + "executionsCount", + "cpuTimeInSec", + "ioTimeInSec", + "inefficientWaitTimeInSec", + "responseTimeInSec", + "planCount", + "variability", + "averageActiveSessions", + "databaseTimePct", + "inefficiencyInPct", + "changeInCpuTimeInPct", + "changeInIoTimeInPct", + "changeInInefficientWaitTimeInPct", + "changeInResponseTimeInPct", + "changeInAverageActiveSessionsInPct", + "changeInExecutionsPerHourInPct", + "changeInInefficiencyInPct" + ], + "description": "The field to use when sorting SQL statistics.\nExample: databaseTimeInSec\n" + }, + "category": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "DEGRADING", + "VARIANT", + "INEFFICIENT", + "CHANGING_PLANS", + "IMPROVING", + "DEGRADING_VARIANT", + "DEGRADING_INEFFICIENT", + "DEGRADING_CHANGING_PLANS", + "DEGRADING_INCREASING_IO", + "DEGRADING_INCREASING_CPU", + "DEGRADING_INCREASING_INEFFICIENT_WAIT", + "DEGRADING_CHANGING_PLANS_AND_INCREASING_IO", + "DEGRADING_CHANGING_PLANS_AND_INCREASING_CPU", + "DEGRADING_CHANGING_PLANS_AND_INCREASING_INEFFICIENT_WAIT", + "VARIANT_INEFFICIENT", + "VARIANT_CHANGING_PLANS", + "VARIANT_INCREASING_IO", + "VARIANT_INCREASING_CPU", + "VARIANT_INCREASING_INEFFICIENT_WAIT", + "VARIANT_CHANGING_PLANS_AND_INCREASING_IO", + "VARIANT_CHANGING_PLANS_AND_INCREASING_CPU", + "VARIANT_CHANGING_PLANS_AND_INCREASING_INEFFICIENT_WAIT", + "INEFFICIENT_CHANGING_PLANS", + "INEFFICIENT_INCREASING_INEFFICIENT_WAIT", + "INEFFICIENT_CHANGING_PLANS_AND_INCREASING_INEFFICIENT_WAIT" + ] + }, + "description": "Filter sqls by one or more performance categories.\n" + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of tag filters to apply. Only resources with a defined tag matching the value will be returned.\nEach item in the list has the format \"{namespace}.{tagName}.{value}\". All inputs are case-insensitive.\nMultiple values for the same key (i.e. same namespace and tag name) are interpreted as \"OR\".\nValues for different keys (i.e. different namespaces, different tag names, or both) are interpreted as \"AND\".\n" + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of tag filters to apply. Only resources with a freeform tag matching the value will be returned.\nThe key for each tag is \"{tagName}.{value}\". All inputs are case-insensitive.\nMultiple values for the same tag name are interpreted as \"OR\". Values for different tag names are interpreted as \"AND\".\n" + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of tag existence filters to apply. Only resources for which the specified defined tags exist will be returned.\nEach item in the list has the format \"{namespace}.{tagName}.true\" (for checking existence of a defined tag)\nor \"{namespace}.true\". All inputs are case-insensitive.\nCurrently, only existence (\"true\" at the end) is supported. Absence (\"false\" at the end) is not supported.\nMultiple values for the same key (i.e. same namespace and tag name) are interpreted as \"OR\".\nValues for different keys (i.e. different namespaces, different tag names, or both) are interpreted as \"AND\".\n" + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of tag existence filters to apply. Only resources for which the specified freeform tags exist the value will be returned.\nThe key for each tag is \"{tagName}.true\". All inputs are case-insensitive.\nCurrently, only existence (\"true\" at the end) is supported. Absence (\"false\" at the end) is not supported.\nMultiple values for different tag names are interpreted as \"AND\".\n" + }, + "compartment_id_in_subtree": { + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments.\n" + }, + "vmcluster_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of Exadata Insight VM cluster name.\n" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id" + ] + }, + "mutable": false + }, + { + "name": "summarize_sql_statistics_time_series", + "description": "Get performance statistics time series for a SQL across one or more databases. DEPRECATED (announced May 2024; no longer functional as of May 31, 2025).", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_sql_statistics_time_series", + "skills": [ + "database-performance-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "compartment_id": { + "type": "string", + "description": "The [OCID](/iaas/Content/General/Concepts/identifiers.htm) of the compartment." + }, + "database_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database [OCIDs](/iaas/Content/General/Concepts/identifiers.htm) of the associated DBaaS entity.\n" + }, + "id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of database [OCIDs](/iaas/Content/General/Concepts/identifiers.htm) of the database insight resource.\n" + }, + "exadata_insight_id": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of exadata insight resource [OCIDs](/iaas/Content/General/Concepts/identifiers.htm).\n" + }, + "cdb_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more cdb name.\n" + }, + "host_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter by one or more hostname.\n" + }, + "sql_identifier": { + "type": "string", + "description": "Unique SQL_ID for a SQL Statement.\nExample: `6rgjh9bjmy2s7`\n" + }, + "analysis_time_interval": { + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time.\nDefault is last 30 days represented by P30D.\nIf timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored.\nExamples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months), . Maximum value allowed is 25 months prior to current time (P25M).\n" + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\nThe minimum allowed value is 2 years prior to the current day.\ntimeIntervalStart and timeIntervalEnd parameters are used together.\nIf analysisTimeInterval is specified, this parameter is ignored.\n" + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\ntimeIntervalStart and timeIntervalEnd are used together.\nIf timeIntervalEnd is not specified, current time is used as timeIntervalEnd.\n" + }, + "page": { + "type": "string", + "description": "For list pagination. The value of the `opc-next-page` response header from\nthe previous \"List\" call. For important details about how pagination works,\nsee [List Pagination](/Content/API/Concepts/usingapi.htm#nine).\n" + }, + "opc_request_id": { + "type": "string", + "description": "Unique Oracle-assigned identifier for the request. If you need to contact\nOracle about a particular request, please provide the request ID.\n" + }, + "defined_tag_equals": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of tag filters to apply. Only resources with a defined tag matching the value will be returned.\nEach item in the list has the format \"{namespace}.{tagName}.{value}\". All inputs are case-insensitive.\nMultiple values for the same key (i.e. same namespace and tag name) are interpreted as \"OR\".\nValues for different keys (i.e. different namespaces, different tag names, or both) are interpreted as \"AND\".\n" + }, + "freeform_tag_equals": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of tag filters to apply. Only resources with a freeform tag matching the value will be returned.\nThe key for each tag is \"{tagName}.{value}\". All inputs are case-insensitive.\nMultiple values for the same tag name are interpreted as \"OR\". Values for different tag names are interpreted as \"AND\".\n" + }, + "defined_tag_exists": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of tag existence filters to apply. Only resources for which the specified defined tags exist will be returned.\nEach item in the list has the format \"{namespace}.{tagName}.true\" (for checking existence of a defined tag)\nor \"{namespace}.true\". All inputs are case-insensitive.\nCurrently, only existence (\"true\" at the end) is supported. Absence (\"false\" at the end) is not supported.\nMultiple values for the same key (i.e. same namespace and tag name) are interpreted as \"OR\".\nValues for different keys (i.e. different namespaces, different tag names, or both) are interpreted as \"AND\".\n" + }, + "freeform_tag_exists": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of tag existence filters to apply. Only resources for which the specified freeform tags exist the value will be returned.\nThe key for each tag is \"{tagName}.true\". All inputs are case-insensitive.\nCurrently, only existence (\"true\" at the end) is supported. Absence (\"false\" at the end) is not supported.\nMultiple values for different tag names are interpreted as \"AND\".\n" + }, + "compartment_id_in_subtree": { + "type": "boolean", + "description": "A flag to search all resources within a given compartment and all sub-compartments.\n" + }, + "vmcluster_name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of Exadata Insight VM cluster name.\n" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", + "sql_identifier" + ] + }, + "mutable": false + }, + { + "name": "summarize_sql_statistics_time_series_by_plan", + "description": "Get performance statistics time series for a SQL by execution plans. DEPRECATED (announced May 2024; no longer functional as of May 31, 2025).", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "summarize_sql_statistics_time_series_by_plan", + "skills": [ + "database-performance-analysis" + ], + "inputSchema": { + "type": "object", + "properties": { + "compartment_id": { + "type": "string", + "description": "The [OCID](/iaas/Content/General/Concepts/identifiers.htm) of the compartment." + }, + "database_id": { + "type": "string", + "description": "Optional [OCID](/iaas/Content/General/Concepts/identifiers.htm) of the associated DBaaS entity.\n" + }, + "id": { + "type": "string", + "description": "[OCID](/iaas/Content/General/Concepts/identifiers.htm) of the database insight resource.\n" + }, + "sql_identifier": { + "type": "string", + "description": "Unique SQL_ID for a SQL Statement.\nExample: `6rgjh9bjmy2s7`\n" + }, + "analysis_time_interval": { + "type": "string", + "description": "Specify time period in ISO 8601 format with respect to current time.\nDefault is last 30 days represented by P30D.\nIf timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored.\nExamples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months), . Maximum value allowed is 25 months prior to current time (P25M).\n" + }, + "time_interval_start": { + "type": "string", + "format": "date-time", + "description": "Analysis start time in UTC in ISO 8601 format(inclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\nThe minimum allowed value is 2 years prior to the current day.\ntimeIntervalStart and timeIntervalEnd parameters are used together.\nIf analysisTimeInterval is specified, this parameter is ignored.\n" + }, + "time_interval_end": { + "type": "string", + "format": "date-time", + "description": "Analysis end time in UTC in ISO 8601 format(exclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\ntimeIntervalStart and timeIntervalEnd are used together.\nIf timeIntervalEnd is not specified, current time is used as timeIntervalEnd.\n" + }, + "page": { + "type": "string", + "description": "For list pagination. The value of the `opc-next-page` response header from\nthe previous \"List\" call. For important details about how pagination works,\nsee [List Pagination](/Content/API/Concepts/usingapi.htm#nine).\n" + }, + "opc_request_id": { + "type": "string", + "description": "Unique Oracle-assigned identifier for the request. If you need to contact\nOracle about a particular request, please provide the request ID.\n" + } + }, + "additionalProperties": false, + "required": [ + "compartment_id", + "sql_identifier" + ] + }, + "mutable": false + } + ] +} diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/registry.py b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/registry.py new file mode 100644 index 00000000..07e0bab5 --- /dev/null +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/registry.py @@ -0,0 +1,171 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. + +Immutable JSON registry for the unified Database Observability server. +""" + +from __future__ import annotations + +import json +from dataclasses import dataclass +from importlib.resources import files +from types import MappingProxyType +from typing import Any, Mapping + +import oci +from jsonschema import Draft202012Validator, SchemaError + + +class RegistryError(ValueError): + """Raised when packaged discovery metadata is invalid.""" + + +_CLIENTS = { + "opsi": {"OperationsInsightsClient": oci.opsi.OperationsInsightsClient}, + "dbm": { + "DbManagementClient": oci.database_management.DbManagementClient, + "DiagnosabilityClient": oci.database_management.DiagnosabilityClient, + "SqlTuningClient": oci.database_management.SqlTuningClient, + }, + "identity": {"IdentityClient": oci.identity.IdentityClient}, +} + + +@dataclass(frozen=True) +class Registry: + skills: tuple[Mapping[str, Any], ...] + tools: tuple[Mapping[str, Any], ...] + _skills: Mapping[str, Mapping[str, Any]] + _tools: Mapping[str, Mapping[str, Any]] + + def get_skill(self, name: str) -> Mapping[str, Any]: + try: + return self._skills[name] + except KeyError as exc: + raise RegistryError(f"Unknown skill: {name}") from exc + + def get_tool(self, name: str) -> Mapping[str, Any]: + try: + return self._tools[name] + except KeyError as exc: + raise RegistryError(f"Unknown tool: {name}") from exc + + def list_tools( + self, + skill_names: set[str], + ) -> list[Mapping[str, Any]]: + for skill_name in skill_names: + self.get_skill(skill_name) + return [tool for tool in self.tools if skill_names.intersection(tool["skills"])] + + +def client_class(service: str, client: str) -> type[Any]: + try: + return _CLIENTS[service][client] + except KeyError as exc: + raise RegistryError(f"Unsupported SDK client binding: {service}/{client}") from exc + + +def _read_json(name: str) -> dict[str, Any]: + try: + return json.loads(files("oracle.oci_db_observability_mcp_server").joinpath("metadata", name).read_text()) + except (OSError, json.JSONDecodeError) as exc: + raise RegistryError(f"Unable to load registry file {name}: {exc}") from exc + + +def _freeze(value: Any) -> Any: + if isinstance(value, dict): + return MappingProxyType({key: _freeze(item) for key, item in value.items()}) + if isinstance(value, list): + return tuple(_freeze(item) for item in value) + return value + + +def to_jsonable(value: Any) -> Any: + """Copy immutable registry values into JSON-compatible response values.""" + if isinstance(value, Mapping): + return {key: to_jsonable(item) for key, item in value.items()} + if isinstance(value, tuple): + return [to_jsonable(item) for item in value] + return value + + +def _validate_strict_schema(schema: Mapping[str, Any], path: str = "inputSchema") -> None: + """Reject open objects and untyped arrays in packaged tool contracts.""" + if "oneOf" in schema: + variants = schema["oneOf"] + if not isinstance(variants, list) or not variants: + raise RegistryError(f"Tool has invalid oneOf schema: {path}") + for index, variant in enumerate(variants): + if not isinstance(variant, Mapping): + raise RegistryError(f"Tool has invalid oneOf variant: {path}[{index}]") + _validate_strict_schema(variant, f"{path}.oneOf[{index}]") + return + schema_type = schema.get("type") + if schema_type == "array": + items = schema.get("items") + if not isinstance(items, Mapping) or not items: + raise RegistryError(f"Tool has untyped array items: {path}") + _validate_strict_schema(items, f"{path}.items") + if schema_type != "object": + return + additional = schema.get("additionalProperties") + if additional is None or additional is True: + raise RegistryError(f"Tool has unrestricted object schema: {path}") + if additional is False: + properties = schema.get("properties") + if not isinstance(properties, Mapping): + raise RegistryError(f"Tool has invalid object properties: {path}") + for name, property_schema in properties.items(): + if not isinstance(property_schema, Mapping): + raise RegistryError(f"Tool has invalid property schema: {path}.properties.{name}") + _validate_strict_schema(property_schema, f"{path}.properties.{name}") + elif isinstance(additional, Mapping): + _validate_strict_schema(additional, f"{path}.additionalProperties") + else: + raise RegistryError(f"Tool has invalid additionalProperties: {path}") + + +def _validate(skills: list[dict[str, Any]], tools: list[dict[str, Any]]) -> Registry: + by_skill = {skill.get("name"): skill for skill in skills} + if any(not isinstance(skill.get("name"), str) or not skill["name"] for skill in skills): + raise RegistryError("Skill names must be non-empty") + if len(by_skill) != len(skills): + raise RegistryError("Duplicate skill name") + by_tool = {tool.get("name"): tool for tool in tools} + if any(not isinstance(tool.get("name"), str) or not tool["name"] for tool in tools): + raise RegistryError("Tool names must be non-empty") + if len(by_tool) != len(tools): + raise RegistryError("Duplicate tool name") + referenced = {name for skill in skills for name in skill.get("tools", [])} + if referenced != set(by_tool): + raise RegistryError("Tools must be referenced by at least one skill, and skill references must resolve") + for tool in tools: + schema = tool.get("inputSchema") + if not isinstance(schema, dict) or schema.get("type") != "object": + raise RegistryError(f"Tool has invalid input schema: {tool.get('name')}") + _validate_strict_schema(schema) + try: + Draft202012Validator.check_schema(schema) + except SchemaError as exc: + raise RegistryError(f"Tool has invalid JSON schema: {tool.get('name')}") from exc + if not set(tool.get("skills", [])) or not set(tool["skills"]).issubset(by_skill): + raise RegistryError(f"Tool has invalid skill membership: {tool.get('name')}") + if tool["name"] not in {name for skill in skills if skill["name"] in tool["skills"] for name in skill["tools"]}: + raise RegistryError(f"Tool/skill membership mismatch: {tool['name']}") + cls = client_class(tool.get("service"), tool.get("client")) + method = getattr(cls, tool.get("operation", ""), None) + if not callable(method) or tool["operation"].startswith("_"): + raise RegistryError(f"Tool has invalid SDK operation binding: {tool['name']}") + frozen_skills = tuple(_freeze(skill) for skill in skills) + frozen_tools = tuple(_freeze(tool) for tool in tools) + return Registry(frozen_skills, frozen_tools, MappingProxyType(dict(zip(by_skill, frozen_skills))), MappingProxyType(dict(zip(by_tool, frozen_tools)))) + + +def load_registry() -> Registry: + manifest = _read_json("manifest.json") + skills = _read_json(manifest["skills"])["skills"] + tools = _read_json(manifest["tools"])["tools"] + return _validate(skills, tools) diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/runtime.py b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/runtime.py new file mode 100644 index 00000000..9362b6e8 --- /dev/null +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/runtime.py @@ -0,0 +1,155 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. + +Single allowlisted OCI Python SDK dispatcher. +""" +from __future__ import annotations + +import inspect +import json +import os +from functools import lru_cache +from typing import Any, Mapping, get_args, get_origin + +import oci +from jsonschema import Draft202012Validator +from fastmcp.server.dependencies import get_access_token +from oracle_mcp_common import IDCSHttpAuth, build_auth_context + +from . import __project__, __version__ +from .registry import client_class +from .sdk_schema import parameter_docs + +_USER_AGENT = f"{__project__.split('oracle.', 1)[1].removesuffix('-server')}/{__version__}" +_http_auth: IDCSHttpAuth | None = None + + +def configure_http_auth(policy: IDCSHttpAuth) -> None: + """Configure caller-scoped OCI authentication for HTTP transport.""" + global _http_auth + _http_auth = policy + + +def _get_http_config_and_signer(access_token: Any) -> tuple[dict[str, Any], Any, str | None]: + """Build caller-specific OCI SDK authentication for one HTTP request.""" + if _http_auth is None: + raise RuntimeError("HTTP authentication policy has not been initialized.") + context = _http_auth.context_for(access_token.token if access_token else None) + tenancy_id = getattr(context.signer, "tenancy_id", None) or os.getenv("OCI_MCP_TENANCY_ID_OVERRIDE") + return ({**context.config, "additional_user_agent": _USER_AGENT}, context.signer, tenancy_id) + + +def _get_config_and_signer(access_token: Any | None = None) -> tuple[dict[str, Any], Any, str | None]: + """Resolve HTTP caller credentials or configured stdio OCI credentials.""" + if access_token is not None: + return _get_http_config_and_signer(access_token) + context = build_auth_context() + return ({**context.config, "additional_user_agent": _USER_AGENT}, context.signer, context.tenancy_id) + + +@lru_cache(maxsize=None) +def _stdio_client(service: str, client_name: str) -> Any: + config, signer, _ = _get_config_and_signer() + return client_class(service, client_name)(config, signer=signer) + + +def _client(service: str, client_name: str) -> Any: + access_token = get_access_token() + if access_token is None: + return _stdio_client(service, client_name) + config, signer, _ = _get_config_and_signer(access_token) + return client_class(service, client_name)(config, signer=signer) + + +def identity_bootstrap_client() -> tuple[Any, str]: + """Create the Identity client and resolve the configured tenancy scope.""" + config, signer, tenancy_id = _get_config_and_signer(get_access_token()) + if not tenancy_id: + raise ValueError("Configured OCI authentication context is missing tenancy.") + client = client_class("identity", "IdentityClient")(config, signer=signer) + return client, tenancy_id + + +def _serialize_data(data: Any) -> Any: + """Convert a response payload to a JSON-safe value.""" + try: + return json.loads(json.dumps(oci.util.to_dict(data), default=str)) + except Exception: + return str(data) + + +def serialize_response(response: Any) -> dict[str, Any]: + """Convert an OCI SDK response to JSON-safe data and pagination metadata.""" + data = getattr(response, "data", response) + headers = getattr(response, "headers", {}) or {} + return {"data": _serialize_data(data), "nextPage": headers.get("opc-next-page")} + + +def _models_module(client: type[Any]) -> Any: + module = client.__module__.rsplit(".", 1)[0] + try: + return __import__(f"{module}.models", fromlist=["models"]) + except ImportError: + return None + + +def _type_name(annotation: Any) -> str | None: + if isinstance(annotation, str): + return annotation + if annotation is inspect.Signature.empty: + return None + if isinstance(annotation, type): + return annotation.__name__ + origin = get_origin(annotation) + args = [arg for arg in get_args(annotation) if arg is not type(None)] + return _type_name(args[0]) if origin and len(args) == 1 else None + + +def _coerce(value: Any, type_name: str | None, models: Any) -> Any: + if value is None or not type_name or not isinstance(value, dict) or models is None: + return value + model = getattr(models, type_name.rsplit(".", 1)[-1], None) + if not inspect.isclass(model): + return value + model = getattr(models, value.get("model_type", ""), model) + payload = {key: item for key, item in value.items() if key != "model_type"} + swagger = getattr(model, "swagger_types", {}) + payload = {key: _coerce(item, swagger.get(key), models) for key, item in payload.items()} + from_dict = getattr(oci.util, "from_dict", None) + if not callable(from_dict): + return model(**payload) + try: + return from_dict(model, payload) + except (TypeError, ValueError): + return model(**payload) + + +def _coerce_arguments(client: Any, operation: str, arguments: Mapping[str, Any]) -> dict[str, Any]: + method = getattr(client, operation) + models = _models_module(client.__class__) + signature = inspect.signature(method) + docs = parameter_docs(method) + coerced: dict[str, Any] = {} + for key, value in arguments.items(): + parameter = signature.parameters.get(key) + type_name = _type_name(parameter.annotation) if parameter and parameter.kind is not inspect.Parameter.VAR_KEYWORD else None + if type_name is None and key in docs: + type_name = docs[key][0] + coerced[key] = _coerce(value, type_name, models) + return coerced + + +def invoke_registered_tool(tool: Mapping[str, Any], arguments: dict[str, Any]) -> Any: + if not isinstance(arguments, dict): + raise ValueError("arguments must be a JSON object") + errors = sorted(Draft202012Validator(dict(tool["inputSchema"])).iter_errors(arguments), key=lambda error: list(error.path)) + if errors: + raise ValueError(f"Invalid arguments: {errors[0].message}") + client = _client(str(tool["service"]), str(tool["client"])) + try: + response = getattr(client, tool["operation"])(**_coerce_arguments(client, str(tool["operation"]), arguments)) + except Exception as exc: + raise RuntimeError(f"OCI operation {tool['name']} failed: {exc}") from exc + return serialize_response(response) diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/sdk_schema.py b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/sdk_schema.py new file mode 100644 index 00000000..940c526c --- /dev/null +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/sdk_schema.py @@ -0,0 +1,220 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. + +Derive strict JSON Schema contracts from the locked OCI Python SDK. +""" +from __future__ import annotations + +import inspect +import re +from collections.abc import Mapping +from importlib import import_module +from typing import Any + + +TRANSPORT_KWARGS = frozenset({"retry_strategy", "allow_control_chars", "enable_strict_url_encoding"}) +_SCALAR_SCHEMAS = { + "str": {"type": "string"}, + "int": {"type": "integer"}, + "float": {"type": "number"}, + "bool": {"type": "boolean"}, + "datetime": {"type": "string", "format": "date-time"}, +} +_CONSTRAINT_KEYS = frozenset({"enum", "minimum", "maximum", "minLength", "maxLength", "pattern"}) + + +def expected_kwargs(method: Any) -> set[str]: + """Return all generated OCI SDK call arguments, excluding transport controls.""" + source = inspect.getsource(method) + match = re.search(r"expected_kwargs\s*=\s*\[\s*(.*?)\s*\]", source, re.DOTALL) + if not match: + raise ValueError(f"Unable to find expected_kwargs in {method.__qualname__}") + optional = set(re.findall(r"['\"]([a-zA-Z0-9_]+)['\"]", match.group(1))) + required = { + parameter.name + for parameter in inspect.signature(method).parameters.values() + if parameter.name not in {"self", "kwargs"} + and parameter.kind in {parameter.POSITIONAL_ONLY, parameter.POSITIONAL_OR_KEYWORD, parameter.KEYWORD_ONLY} + } + return (required | optional) - TRANSPORT_KWARGS + + +def parameter_docs(method: Any) -> dict[str, tuple[str, bool, str]]: + """Return SDK parameter type, requiredness, and documentation by argument name.""" + text = inspect.getdoc(method) or "" + matches = list(re.finditer(r"^:param\s+([^\s]+)\s+([a-zA-Z0-9_]+):\s*(.*)$", text, re.MULTILINE)) + result: dict[str, tuple[str, bool, str]] = {} + for index, match in enumerate(matches): + end = matches[index + 1].start() if index + 1 < len(matches) else len(text) + detail = f"{match.group(3)}\n{text[match.end():end]}".strip() + result[match.group(2)] = (match.group(1), "(required)" in match.group(3), detail) + return result + + +def _split_generic(value: str) -> tuple[str, str] | None: + match = re.fullmatch(r"(list|dict)\[(.*)\]", value) + if match: + return match.group(1), match.group(2) + match = re.fullmatch(r"dict\((.*)\)", value) + return ("dict", match.group(1)) if match else None + + +def _split_pair(value: str) -> tuple[str, str]: + depth = 0 + for index, character in enumerate(value): + if character in "[(": + depth += 1 + elif character in "])": + depth -= 1 + elif character == "," and depth == 0: + return value[:index].strip(), value[index + 1 :].strip() + raise ValueError(f"Expected two generic arguments in {value!r}") + + +def _enum_from_description(description: str) -> list[str] | None: + match = re.search(r"Allowed values are:\s*(.*?)(?:\n\n|:param|:return:|$)", description, re.DOTALL) + if not match: + return None + values = re.findall(r'"([^"\n]+)"', match.group(1)) + return values or None + + +def _model_maps(model_class: type[Any]) -> tuple[dict[str, str], dict[str, str]]: + instance = model_class() + swagger_types = getattr(instance, "swagger_types", None) + attribute_map = getattr(instance, "attribute_map", None) + if not isinstance(swagger_types, dict) or not isinstance(attribute_map, dict): + raise ValueError(f"OCI model {model_class.__name__} does not expose schema maps") + return swagger_types, attribute_map + + +def _model_required_and_description(model_class: type[Any], field: str) -> tuple[bool, str]: + property_value = getattr(model_class, field, None) + getter = getattr(property_value, "fget", None) + description = inspect.getdoc(getter) or "" + return "**[Required]**" in description, description + + +def _resolve_model(type_name: str, models_module: Any) -> type[Any] | None: + normalized = type_name.removeprefix("oci.") + if ".models." in type_name: + module_name, class_name = type_name.rsplit(".", 1) + return getattr(import_module(module_name), class_name, None) + return getattr(models_module, normalized.rsplit(".", 1)[-1], None) + + +def _model_schema(model_class: type[Any], models_module: Any, seen: frozenset[str]) -> dict[str, Any]: + model_name = f"{model_class.__module__}.{model_class.__name__}" + if model_name in seen: + raise ValueError(f"Recursive OCI model type {model_name}") + swagger_types, _ = _model_maps(model_class) + properties: dict[str, Any] = {} + required: list[str] = [] + for field, field_type in swagger_types.items(): + field_required, field_description = _model_required_and_description(model_class, field) + properties[field] = schema_for_type(field_type, models_module, field_description, seen | {model_name}) + if field_required: + required.append(field) + schema = {"type": "object", "properties": properties, "additionalProperties": False} + if required: + schema["required"] = required + return schema + + +def _polymorphic_schema(model_class: type[Any], models_module: Any, seen: frozenset[str]) -> dict[str, Any]: + source = inspect.getsource(model_class.get_subtype) + variants = re.findall(r"if type == ['\"]([^'\"]+)['\"]:\s*return ['\"]([^'\"]+)['\"]", source) + if not variants: + raise ValueError(f"Unable to resolve polymorphic OCI model type {model_class.__name__}") + discriminator = re.search(r"object_dictionary\[['\"]([^'\"]+)['\"]\]", source) + if not discriminator: + raise ValueError(f"Unable to resolve discriminator for OCI model type {model_class.__name__}") + _, attribute_map = _model_maps(model_class) + fields = [field for field, wire_name in attribute_map.items() if wire_name == discriminator.group(1)] + if len(fields) != 1: + raise ValueError(f"Unable to resolve discriminator field for OCI model type {model_class.__name__}") + discriminator_field = fields[0] + schemas = [] + for discriminator, subtype_name in variants: + subtype = getattr(models_module, subtype_name, None) + if not inspect.isclass(subtype): + raise ValueError(f"Unable to resolve OCI subtype {subtype_name}") + schema = _model_schema(subtype, models_module, seen) + discriminator_schema = schema["properties"].get(discriminator_field) + if not isinstance(discriminator_schema, dict): + raise ValueError(f"OCI subtype {subtype_name} lacks the {discriminator_field} discriminator") + discriminator_schema["enum"] = [discriminator] + if discriminator_field not in schema.get("required", []): + schema["required"] = [*schema.get("required", []), discriminator_field] + schemas.append(schema) + return {"oneOf": schemas} + + +def schema_for_type(type_name: str, models_module: Any, description: str = "", seen: frozenset[str] = frozenset()) -> dict[str, Any]: + """Build a strict JSON Schema fragment for one OCI SDK type spelling.""" + normalized = type_name.removeprefix("oci.opsi.models.").removeprefix("oci.database_management.models.") + if normalized in _SCALAR_SCHEMAS: + schema = dict(_SCALAR_SCHEMAS[normalized]) + enum = _enum_from_description(description) + if enum: + schema["enum"] = enum + return schema + generic = _split_generic(normalized) + if generic: + kind, contents = generic + if kind == "list": + return {"type": "array", "items": schema_for_type(contents.strip(), models_module, description, seen)} + _, value_type = _split_pair(contents) + return { + "type": "object", + "additionalProperties": schema_for_type(value_type, models_module, "", seen), + } + if normalized in {"object", "Any"}: + return {} + model_class = _resolve_model(type_name, models_module) + if not inspect.isclass(model_class): + raise ValueError(f"Unable to resolve OCI SDK type {type_name!r}") + if callable(getattr(model_class, "get_subtype", None)): + return _polymorphic_schema(model_class, models_module, seen) + return _model_schema(model_class, models_module, seen) + + +def schema_for_operation(method: Any, models_module: Any, existing: Mapping[str, Any] | None = None) -> dict[str, Any]: + """Build the strict input schema for an SDK operation and preserve known constraints.""" + docs = parameter_docs(method) + expected = expected_kwargs(method) + if set(docs) - TRANSPORT_KWARGS != expected: + raise ValueError(f"SDK documentation and expected_kwargs differ for {method.__qualname__}") + existing_properties = existing.get("properties", {}) if isinstance(existing, Mapping) else {} + properties: dict[str, Any] = {} + required: list[str] = [] + for name in sorted(expected): + type_name, is_required, description = docs[name] + schema = schema_for_type(type_name, models_module, description) + _preserve_constraints(schema, existing_properties.get(name)) + if isinstance(existing_properties.get(name), Mapping) and "description" in existing_properties[name]: + schema["description"] = existing_properties[name]["description"] + properties[name] = schema + if is_required: + required.append(name) + result: dict[str, Any] = {"type": "object", "properties": properties, "additionalProperties": False} + if required: + existing_required = existing.get("required", []) if isinstance(existing, Mapping) else [] + result["required"] = [name for name in existing_required if name in required] + [name for name in required if name not in existing_required] + return result + + +def _preserve_constraints(schema: dict[str, Any], existing: Any) -> None: + if not isinstance(existing, Mapping): + return + for key in _CONSTRAINT_KEYS: + if key in existing: + schema[key] = existing[key] + if schema.get("type") == "array": + _preserve_constraints(schema["items"], existing.get("items")) + if schema.get("type") == "object" and schema.get("additionalProperties") is False: + existing_properties = existing.get("properties", {}) + for name, nested in schema.get("properties", {}).items(): + _preserve_constraints(nested, existing_properties.get(name)) diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/server.py b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/server.py new file mode 100644 index 00000000..ec2a30aa --- /dev/null +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/server.py @@ -0,0 +1,31 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. + +Unified DBO MCP process entry point. +""" +from __future__ import annotations + +import os + +from fastmcp.utilities.auth import parse_scopes +from oracle_mcp_common import build_idcs_http_auth + +from .mcp import mcp +from .runtime import configure_http_auth + + +def main() -> None: + host, port = os.getenv("ORACLE_MCP_HOST"), os.getenv("ORACLE_MCP_PORT") + if not (host and port): + mcp.run() + return + policy = build_idcs_http_auth(parse_scopes(os.getenv("IDCS_REQUIRED_SCOPES")) or ["openid", "profile", "email", "oci_mcp.db_observability.invoke"]) + mcp.auth = policy.provider + configure_http_auth(policy) + mcp.run(transport="http", host=host, port=int(port)) + + +if __name__ == "__main__": + main() diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/__init__.py b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/__init__.py new file mode 100644 index 00000000..6cdf18b1 --- /dev/null +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/__init__.py @@ -0,0 +1,7 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. + +Unified DBO MCP tests. +""" diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_mcp_surface.py b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_mcp_surface.py new file mode 100644 index 00000000..7c59d5e5 --- /dev/null +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_mcp_surface.py @@ -0,0 +1,113 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. +""" + +from __future__ import annotations + +import re + +import pytest + +from oracle.oci_db_observability_mcp_server import mcp as mcp_module +from oracle.oci_db_observability_mcp_server.mcp import mcp + + +@pytest.mark.asyncio +async def test_unified_mcp_exposes_only_discovery_dispatch_and_compartment_tools() -> None: + tools = await mcp.list_tools() + + assert {tool.name for tool in tools} == { + "describe_dbo_tool", + "get_oci_compartment", + "invoke_dbo_tool", + "list_oci_compartments", + "list_dbo_skills", + "list_dbo_tools", + } + + +@pytest.mark.asyncio +async def test_advertised_workflow_references_registered_tools_only() -> None: + registered_names = {tool.name for tool in await mcp.list_tools()} + advertised_names = set(re.findall(r"`([^`]+)`", mcp.instructions)) + + assert advertised_names <= registered_names + + +def test_compartment_tools_use_the_shared_bootstrap_client(monkeypatch) -> None: + calls: dict[str, object] = {} + + class Client: + def get_compartment(self, **kwargs): + calls["get"] = kwargs + return object() + + def list_compartments(self, **kwargs): + calls["list"] = kwargs + return object() + + monkeypatch.setattr(mcp_module, "identity_bootstrap_client", lambda: (Client(), "tenancy-ocid")) + monkeypatch.setattr( + mcp_module, + "serialize_response", + lambda _response: {"data": [{"id": "compartment-ocid"}], "nextPage": "page-2"}, + ) + + assert mcp_module.get_oci_compartment("compartment-ocid") == { + "data": [{"id": "compartment-ocid"}], + "nextPage": "page-2", + } + assert calls["get"] == {"compartment_id": "compartment-ocid"} + assert mcp_module.list_oci_compartments( + root_compartment_id=None, + include_subtree=True, + access_level="ACCESSIBLE", + name="production", + lifecycle_state=None, + limit=10, + page="page-1", + ) == { + "items": [{"id": "compartment-ocid"}], + "count": 1, + "nextPage": "page-2", + } + assert calls["list"] == { + "compartment_id": "tenancy-ocid", + "compartment_id_in_subtree": True, + "access_level": "ACCESSIBLE", + "name": "production", + "lifecycle_state": None, + "limit": 10, + "page": "page-1", + } + + +def test_get_compartment_requires_an_ocid() -> None: + with pytest.raises(ValueError, match="compartment_id is required"): + mcp_module.get_oci_compartment("") + + +def test_discovery_and_invocation_tools_delegate_to_registry(monkeypatch) -> None: + skills = mcp_module.list_dbo_skills()["skills"] + assert len(skills) == 34 + assert {"name", "description", "toolCount"}.issubset(skills[0]) + + listed = mcp_module.list_dbo_tools(["database-inventory"], limit=1) + assert listed["count"] >= 1 + assert len(listed["tools"]) == 1 + assert listed["truncated"] is (listed["count"] > 1) + assert "database-inventory" in listed["tools"][0]["skills"] + + described = mcp_module.describe_dbo_tool("list_database_insights") + assert described["name"] == "list_database_insights" + assert described["inputSchema"]["type"] == "object" + + expected = {"result": "ok"} + monkeypatch.setattr(mcp_module, "invoke_registered_tool", lambda tool, arguments: (tool["name"], arguments, expected)) + assert mcp_module.invoke_dbo_tool("list_database_insights", {"compartment_id": "ocid"}) == ( + "list_database_insights", + {"compartment_id": "ocid"}, + expected, + ) diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_registry.py b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_registry.py new file mode 100644 index 00000000..250aab38 --- /dev/null +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_registry.py @@ -0,0 +1,251 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. +""" + +from __future__ import annotations + +import json +from types import SimpleNamespace + +import pytest + +from oracle.oci_db_observability_mcp_server.registry import ( + RegistryError, + _read_json, + _validate, + _validate_strict_schema, + client_class, + load_registry, +) +from oracle.oci_db_observability_mcp_server.registry import to_jsonable +from oracle.oci_db_observability_mcp_server.sdk_schema import ( + _enum_from_description, + _model_maps, + _preserve_constraints, + _split_pair, + expected_kwargs, + schema_for_operation, + schema_for_type, +) + + +class _SimpleModel: + swagger_types = {"name": "str", "counts": "list[int]", "labels": "dict(str, bool)"} + attribute_map = {"name": "name", "counts": "counts", "labels": "labels"} + + @property + def name(self): + """**[Required]** A name.""" + + +class _PolymorphicModel: + swagger_types = {"target": "str"} + attribute_map = {"target": "target"} + + @staticmethod + def get_subtype(object_dictionary): + type = object_dictionary["target"] + if type == "INDIVIDUAL": + return "_IndividualModel" + if type == "GROUP": + return "_GroupModel" + return "_PolymorphicModel" + + +class _IndividualModel(_PolymorphicModel): + swagger_types = {"target": "str", "identifier": "str"} + attribute_map = {"target": "target", "identifier": "identifier"} + + @property + def identifier(self): + """**[Required]** An identifier.""" + + +class _GroupModel(_PolymorphicModel): + swagger_types = {"target": "str", "identifiers": "list[str]"} + attribute_map = {"target": "target", "identifiers": "identifiers"} + + +def test_packaged_registry_has_expected_shape() -> None: + registry = load_registry() + + assert len(registry.skills) == 34 + assert len(registry.tools) == 229 + assert len({tool["name"] for tool in registry.tools}) == 229 + assert all(tool["inputSchema"]["type"] == "object" for tool in registry.tools) + assert all(tool["inputSchema"].get("additionalProperties") is False for tool in registry.tools) + assert "retrieve_data" not in {tool["name"] for tool in registry.tools} + assert not any(tool["mutable"] for tool in registry.tools) + assert "query_opsi_data_object_data" not in {tool["name"] for tool in registry.tools} + + +def test_tool_filtering_is_skill_scoped() -> None: + registry = load_registry() + + tools = registry.list_tools({"awr-historical-performance-analysis"}) + + assert tools + assert all("awr-historical-performance-analysis" in tool["skills"] for tool in tools) + + +def test_unknown_skill_and_tool_are_rejected() -> None: + registry = load_registry() + + with pytest.raises(RegistryError, match="Unknown skill"): + registry.get_skill("missing") + with pytest.raises(RegistryError, match="Unknown tool"): + registry.get_tool("missing") + with pytest.raises(RegistryError, match="Unknown skill"): + registry.list_tools({"missing"}) + + +def test_duplicate_names_are_rejected() -> None: + registry = load_registry() + duplicate_skill = dict(registry.skills[0]) + duplicate_tool = dict(registry.tools[0]) + + with pytest.raises(RegistryError, match="Duplicate skill"): + _validate([registry.skills[0], duplicate_skill], []) + with pytest.raises(RegistryError, match="Duplicate tool"): + _validate(list(registry.skills), [duplicate_tool, duplicate_tool]) + + +def test_metadata_files_are_valid_json() -> None: + from importlib.resources import files + + metadata = files("oracle.oci_db_observability_mcp_server").joinpath("metadata") + for name in ("manifest.json", "skills.json", "tools.json"): + json.loads(metadata.joinpath(name).read_text(encoding="utf-8")) + + +def test_compartment_bootstrap_tool_is_not_registry_backed() -> None: + registry = load_registry() + + assert "list_compartments" not in {tool["name"] for tool in registry.tools} + assert "list_compartments" not in registry.get_skill("oci-common")["tools"] + + +def test_registry_values_can_be_returned_as_json() -> None: + schema = to_jsonable(load_registry().get_tool("summarize_database_insight_resource_usage")["inputSchema"]) + + assert isinstance(schema, dict) + assert json.loads(json.dumps(schema)) == schema + + +def test_packaged_schemas_match_the_locked_oci_sdk() -> None: + registry = load_registry() + + for tool in registry.tools: + method = getattr(client_class(tool["service"], tool["client"]), tool["operation"]) + models = __import__(f"{method.__module__.rsplit('.', 1)[0]}.models", fromlist=["models"]) + schema = to_jsonable(tool["inputSchema"]) + assert schema == schema_for_operation(method, models, schema) + + +@pytest.mark.parametrize("mutation, error", [(lambda schema: schema.pop("additionalProperties"), "unrestricted object"), (lambda schema: schema["properties"].update({"values": {"type": "array"}}), "untyped array")]) +def test_registry_rejects_open_objects_and_untyped_arrays(mutation, error) -> None: + registry = load_registry() + tool = to_jsonable(registry.tools[0]) + tool["skills"] = ["skill"] + mutation(tool["inputSchema"]) + + with pytest.raises(RegistryError, match=error): + _validate([{"name": "skill", "tools": [tool["name"]]}], [tool]) + + +@pytest.mark.parametrize( + ("schema", "error"), + [ + ({"oneOf": []}, "invalid oneOf"), + ({"oneOf": ["not-a-schema"]}, "invalid oneOf variant"), + ({"type": "array"}, "untyped array"), + ({"type": "object", "additionalProperties": False}, "invalid object properties"), + ({"type": "object", "properties": {"value": "not-a-schema"}, "additionalProperties": False}, "invalid property schema"), + ({"type": "object", "properties": {}, "additionalProperties": "invalid"}, "invalid additionalProperties"), + ], +) +def test_registry_rejects_invalid_strict_schema_shapes(schema, error) -> None: + with pytest.raises(RegistryError, match=error): + _validate_strict_schema(schema) + + +def test_registry_accepts_typed_map_schema_and_reports_bad_bindings() -> None: + _validate_strict_schema({"type": "object", "additionalProperties": {"type": "string"}}) + + with pytest.raises(RegistryError, match="Unsupported SDK client binding"): + client_class("missing", "client") + with pytest.raises(RegistryError, match="Unable to load registry file"): + _read_json("missing.json") + + +def test_sdk_schema_helpers_reject_unresolvable_contracts() -> None: + def no_expected_kwargs(self, **kwargs): + return kwargs + + def mismatched_docs(self, **kwargs): + """:param str other: (optional) A different argument.""" + expected_kwargs = ["value"] + return kwargs, expected_kwargs + + assert _split_pair("str, list[int]") == ("str", "list[int]") + assert _enum_from_description("No SDK enum here") is None + assert schema_for_type("Any", SimpleNamespace()) == {} + _preserve_constraints({}, None) + with pytest.raises(ValueError, match="expected_kwargs"): + expected_kwargs(no_expected_kwargs) + with pytest.raises(ValueError, match="does not expose schema maps"): + _model_maps(object) + with pytest.raises(ValueError, match="Unable to resolve OCI SDK type"): + schema_for_type("MissingModel", SimpleNamespace()) + with pytest.raises(ValueError, match="documentation and expected_kwargs differ"): + schema_for_operation(mismatched_docs, SimpleNamespace()) + + +def test_sdk_schema_helpers_build_strict_model_and_polymorphic_contracts() -> None: + models = SimpleNamespace( + _SimpleModel=_SimpleModel, + _PolymorphicModel=_PolymorphicModel, + _IndividualModel=_IndividualModel, + _GroupModel=_GroupModel, + ) + + assert schema_for_type("str", models, 'Allowed values are: "A" "B"') == {"type": "string", "enum": ["A", "B"]} + assert schema_for_type("list[datetime]", models) == { + "type": "array", + "items": {"type": "string", "format": "date-time"}, + } + assert schema_for_type("dict(str, list[bool])", models) == { + "type": "object", + "additionalProperties": {"type": "array", "items": {"type": "boolean"}}, + } + assert schema_for_type("_SimpleModel", models) == { + "type": "object", + "properties": { + "name": {"type": "string"}, + "counts": {"type": "array", "items": {"type": "integer"}}, + "labels": {"type": "object", "additionalProperties": {"type": "boolean"}}, + }, + "additionalProperties": False, + "required": ["name"], + } + assert schema_for_type("_PolymorphicModel", models) == { + "oneOf": [ + { + "type": "object", + "properties": {"target": {"type": "string", "enum": ["INDIVIDUAL"]}, "identifier": {"type": "string"}}, + "additionalProperties": False, + "required": ["identifier", "target"], + }, + { + "type": "object", + "properties": { + "target": {"type": "string", "enum": ["GROUP"]}, + "identifiers": {"type": "array", "items": {"type": "string"}}, + }, + "additionalProperties": False, + "required": ["target"], + }, + ] + } diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_runtime.py b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_runtime.py new file mode 100644 index 00000000..0ab30499 --- /dev/null +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_runtime.py @@ -0,0 +1,236 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. +""" + +from __future__ import annotations + +from types import SimpleNamespace +from unittest.mock import Mock + +import pytest + +from oracle.oci_db_observability_mcp_server import __project__, __version__ +from oracle.oci_db_observability_mcp_server import runtime + + +EXPECTED_USER_AGENT = f"{__project__.split('oracle.', 1)[1].removesuffix('-server')}/{__version__}" + + +class FakeClient: + def __init__(self, config, signer=None): + self.config = config + self.signer = signer + + +@pytest.mark.parametrize("auth_type", ["api_key", "security_token", "instance_principal"]) +def test_stdio_client_uses_common_auth_context_and_user_agent(monkeypatch, auth_type) -> None: + runtime._stdio_client.cache_clear() + signer = object() + context = SimpleNamespace( + auth_type=auth_type, + config={"region": "us-phoenix-1"}, + signer=signer, + tenancy_id="tenant", + ) + build_context = Mock(return_value=context) + monkeypatch.setattr(runtime, "build_auth_context", build_context) + monkeypatch.setattr(runtime, "get_access_token", lambda: None) + monkeypatch.setattr(runtime, "client_class", lambda _service, _client: FakeClient) + + client = runtime._client("opsi", "OperationsInsightsClient") + + build_context.assert_called_once_with() + assert client.signer is signer + assert client.config == {"region": "us-phoenix-1", "additional_user_agent": EXPECTED_USER_AGENT} + assert context.auth_type == auth_type + + +def test_http_clients_are_caller_specific_and_not_cached(monkeypatch) -> None: + runtime._stdio_client.cache_clear() + first_signer, second_signer = object(), object() + contexts = { + "first-token": SimpleNamespace(config={"region": "us-chicago-1"}, signer=first_signer), + "second-token": SimpleNamespace(config={"region": "us-chicago-1"}, signer=second_signer), + } + calls: list[str] = [] + + def context_for(token: str): + calls.append(token) + return contexts[token] + + tokens = iter([SimpleNamespace(token="first-token"), SimpleNamespace(token="second-token")]) + monkeypatch.setattr(runtime, "_http_auth", SimpleNamespace(context_for=context_for)) + monkeypatch.setattr(runtime, "get_access_token", lambda: next(tokens)) + monkeypatch.setattr(runtime, "build_auth_context", lambda: pytest.fail("HTTP must not use stdio credentials")) + monkeypatch.setattr(runtime, "client_class", lambda _service, _client: FakeClient) + + first = runtime._client("opsi", "OperationsInsightsClient") + second = runtime._client("opsi", "OperationsInsightsClient") + + assert calls == ["first-token", "second-token"] + assert first is not second + assert first.signer is first_signer + assert second.signer is second_signer + assert first.config["additional_user_agent"] == EXPECTED_USER_AGENT + assert second.config["additional_user_agent"] == EXPECTED_USER_AGENT + + +def test_http_access_token_requires_initialized_policy(monkeypatch) -> None: + monkeypatch.setattr(runtime, "_http_auth", None) + + with pytest.raises(RuntimeError, match="policy has not been initialized"): + runtime._get_config_and_signer(SimpleNamespace(token="caller-token")) + + +def test_identity_bootstrap_uses_http_context_and_tenancy_override(monkeypatch) -> None: + signer = object() + monkeypatch.setattr( + runtime, + "_http_auth", + SimpleNamespace(context_for=lambda token: SimpleNamespace(config={"region": "us-ashburn-1"}, signer=signer)), + ) + monkeypatch.setattr(runtime, "get_access_token", lambda: SimpleNamespace(token="caller-token")) + monkeypatch.setenv("OCI_MCP_TENANCY_ID_OVERRIDE", "ocid1.tenancy.oc1..example") + monkeypatch.setattr(runtime, "client_class", lambda _service, _client: FakeClient) + + client, tenancy_id = runtime.identity_bootstrap_client() + + assert isinstance(client, FakeClient) + assert client.signer is signer + assert tenancy_id == "ocid1.tenancy.oc1..example" + + +def test_identity_bootstrap_requires_tenancy(monkeypatch) -> None: + monkeypatch.setattr(runtime, "get_access_token", lambda: None) + monkeypatch.setattr( + runtime, + "build_auth_context", + lambda: SimpleNamespace(config={}, signer=object(), tenancy_id=None), + ) + monkeypatch.delenv("OCI_MCP_TENANCY_ID_OVERRIDE", raising=False) + + with pytest.raises(ValueError, match="missing tenancy"): + runtime.identity_bootstrap_client() + + +def test_invoke_validates_before_creating_sdk_client(monkeypatch) -> None: + tool = { + "name": "example_tool", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "get_example", + "inputSchema": { + "type": "object", + "properties": {"compartment_id": {"type": "string"}}, + "required": ["compartment_id"], + "additionalProperties": False, + }, + } + monkeypatch.setattr(runtime, "_client", lambda *_args: pytest.fail("client must not be created")) + + with pytest.raises(ValueError, match="compartment_id"): + runtime.invoke_registered_tool(tool, {}) + + +@pytest.mark.parametrize( + ("tool_name", "arguments"), + [ + ("list_database_insights", {"bogus": 1}), + ("list_database_insights", {"database_id": ["ocid1.database.oc1..example", 7]}), + ], +) +def test_registered_tool_rejects_invalid_sdk_schema_arguments_before_client_creation(monkeypatch, tool_name, arguments) -> None: + from oracle.oci_db_observability_mcp_server.registry import load_registry + + monkeypatch.setattr(runtime, "_client", lambda *_args: pytest.fail("client must not be created")) + + with pytest.raises(ValueError, match="Invalid arguments"): + runtime.invoke_registered_tool(load_registry().get_tool(tool_name), arguments) + + +def test_response_serialization_and_model_helpers(monkeypatch) -> None: + assert runtime.serialize_response(SimpleNamespace(data={"value": "ok"}, headers={"opc-next-page": "page-2"})) == { + "data": {"value": "ok"}, + "nextPage": "page-2", + } + monkeypatch.setattr(runtime.oci.util, "to_dict", lambda _data: (_ for _ in ()).throw(TypeError("bad data"))) + assert runtime.serialize_response(SimpleNamespace(data="fallback", headers={})) == { + "data": "fallback", + "nextPage": None, + } + assert runtime._type_name("ExampleDetails") == "ExampleDetails" + assert runtime._type_name(int) == "int" + assert runtime._type_name(object()) is None + + class Details: + swagger_types = {"child": "ChildDetails"} + + def __init__(self, **kwargs): + self.kwargs = kwargs + + class ChildDetails: + swagger_types = {} + + def __init__(self, **kwargs): + self.kwargs = kwargs + + models = SimpleNamespace(Details=Details, ChildDetails=ChildDetails) + monkeypatch.setattr(runtime.oci.util, "from_dict", lambda model, payload: (model, payload), raising=False) + assert runtime._coerce({"child": {"name": "child"}}, "Details", models) == ( + Details, + {"child": (ChildDetails, {"name": "child"})}, + ) + monkeypatch.setattr(runtime.oci.util, "from_dict", lambda *_args: (_ for _ in ()).throw(ValueError("use constructor"))) + assert runtime._coerce({"name": "details"}, "Details", models).kwargs == {"name": "details"} + assert runtime._coerce({"name": "unchanged"}, "Missing", models) == {"name": "unchanged"} + + +def test_coerce_arguments_uses_sdk_doc_types_for_generated_kwargs(monkeypatch) -> None: + class Details: + swagger_types = {"name": "str"} + + def __init__(self, **kwargs): + self.kwargs = kwargs + + class Client: + def create_example(self, **kwargs): + """:param ExampleDetails details: (required) Request details.""" + return kwargs + + monkeypatch.setattr(runtime, "_models_module", lambda _client: SimpleNamespace(ExampleDetails=Details)) + result = runtime._coerce_arguments(Client(), "create_example", {"details": {"name": "example"}}) + + assert isinstance(result["details"], Details) + assert result["details"].kwargs == {"name": "example"} + + +def test_registered_tool_coerces_arguments_serializes_and_wraps_oci_errors(monkeypatch) -> None: + tool = { + "name": "example_tool", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "get_example", + "inputSchema": {"type": "object", "properties": {"value": {"type": "string"}}, "additionalProperties": False}, + } + + class Client: + def get_example(self, value: str): + return SimpleNamespace(data={"value": value}, headers={}) + + monkeypatch.setattr(runtime, "_client", lambda *_args: Client()) + assert runtime.invoke_registered_tool(tool, {"value": "ok"}) == { + "data": {"value": "ok"}, + "nextPage": None, + } + with pytest.raises(ValueError, match="arguments must be a JSON object"): + runtime.invoke_registered_tool(tool, []) + + class FailingClient: + def get_example(self, value: str): + raise RuntimeError("SDK failure") + + monkeypatch.setattr(runtime, "_client", lambda *_args: FailingClient()) + with pytest.raises(RuntimeError, match="OCI operation example_tool failed: SDK failure"): + runtime.invoke_registered_tool(tool, {"value": "ok"}) diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_server.py b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_server.py new file mode 100644 index 00000000..9b7e1b87 --- /dev/null +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_server.py @@ -0,0 +1,38 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. +""" + +from __future__ import annotations + +from types import SimpleNamespace + +from oracle.oci_db_observability_mcp_server import server + + +def test_main_runs_stdio_without_http_environment(monkeypatch) -> None: + calls: list[tuple[tuple, dict]] = [] + monkeypatch.delenv("ORACLE_MCP_HOST", raising=False) + monkeypatch.delenv("ORACLE_MCP_PORT", raising=False) + monkeypatch.setattr(server.mcp, "run", lambda *args, **kwargs: calls.append((args, kwargs))) + + server.main() + + assert calls == [((), {})] + + +def test_main_configures_idcs_http_auth(monkeypatch) -> None: + calls: list[tuple[tuple, dict]] = [] + policy = SimpleNamespace(provider=object()) + monkeypatch.setenv("ORACLE_MCP_HOST", "127.0.0.1") + monkeypatch.setenv("ORACLE_MCP_PORT", "8080") + monkeypatch.setenv("IDCS_REQUIRED_SCOPES", "openid custom.scope") + monkeypatch.setattr(server, "build_idcs_http_auth", lambda scopes: policy) + monkeypatch.setattr(server, "configure_http_auth", lambda actual: calls.append((("policy", actual), {}))) + monkeypatch.setattr(server.mcp, "run", lambda *args, **kwargs: calls.append((args, kwargs))) + + server.main() + + assert server.mcp.auth is policy.provider + assert calls == [(("policy", policy), {}), ((), {"transport": "http", "host": "127.0.0.1", "port": 8080})] diff --git a/src/oci-db-observability-mcp-server/pyproject.toml b/src/oci-db-observability-mcp-server/pyproject.toml new file mode 100644 index 00000000..7765818f --- /dev/null +++ b/src/oci-db-observability-mcp-server/pyproject.toml @@ -0,0 +1,60 @@ +[project] +name = "oracle.oci-db-observability-mcp-server" +version = "0.1.0" +description = "Unified Oracle Database Observability MCP server" +readme = "README.md" +requires-python = ">=3.13" +license = "UPL-1.0" +license-files = ["LICENSE.txt"] +authors = [ + {name = "Oracle MCP", email = "237432095+oracle-mcp@users.noreply.github.com"}, +] +dependencies = [ + "fastmcp==3.4.5", + "oci==2.182.1", + "pydantic==2.13.4", + "jsonschema>=4.25.0,<5.0.0", + "oracle-mcp-common>=0.1.2,<0.2.0", +] + +classifiers = [ + "Operating System :: OS Independent", + "Programming Language :: Python", + "Programming Language :: Python :: 3.13", +] + +[project.scripts] +"oracle.oci-db-observability-mcp-server" = "oracle.oci_db_observability_mcp_server.server:main" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.build.targets.wheel] +packages = ["oracle"] +exclude = ["/oracle/**/tests/**"] + +[dependency-groups] +dev = [ + "openapi-pydantic>=0.5.1", + "pytest>=9.0.3", + "pytest-asyncio>=1.2.0", + "pytest-cov>=7.0.0", + "pyyaml>=6.0.3", +] + +[tool.coverage.run] +omit = [ + "**/__init__.py", + "**/tests/*", + "dist/*", + ".venv/*", +] + +[tool.coverage.report] +omit = [ + "**/__init__.py", + "**/tests/*", +] +precision = 2 +fail_under = 90 diff --git a/src/oci-db-observability-mcp-server/uv.lock b/src/oci-db-observability-mcp-server/uv.lock new file mode 100644 index 00000000..f620cf96 --- /dev/null +++ b/src/oci-db-observability-mcp-server/uv.lock @@ -0,0 +1,1462 @@ +version = 1 +revision = 2 +requires-python = ">=3.13" + +[[package]] +name = "aiofile" +version = "3.11.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "caio" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/48/41/2fea7e193e061ce54eacc3b7bc0e6a99e4fcff43c78cf0a76dd781ed8334/aiofile-3.11.1.tar.gz", hash = "sha256:1f91912c6643d2a4e49ca4ae3514f0bf3867ce948a36d99a6411b8f4755f4cf9", size = 19342, upload_time = "2026-05-16T08:18:33.538Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/67/cd/0d76dfc5de72bde52f55f53e925c7d152d9c7906634ec1e0cbc7e8d4ad93/aiofile-3.11.1-py3-none-any.whl", hash = "sha256:ce77d14ac07f77bc2b757834a5c129321f3f705c474593deed5ab209079a52c9", size = 20446, upload_time = "2026-05-16T08:18:32.051Z" }, +] + +[[package]] +name = "annotated-types" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081, upload_time = "2024-05-20T21:33:25.928Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643, upload_time = "2024-05-20T21:33:24.1Z" }, +] + +[[package]] +name = "anyio" +version = "4.13.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "idna" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/19/14/2c5dd9f512b66549ae92767a9c7b330ae88e1932ca57876909410251fe13/anyio-4.13.0.tar.gz", hash = "sha256:334b70e641fd2221c1505b3890c69882fe4a2df910cba14d97019b90b24439dc", size = 231622, upload_time = "2026-03-24T12:59:09.671Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/da/42/e921fccf5015463e32a3cf6ee7f980a6ed0f395ceeaa45060b61d86486c2/anyio-4.13.0-py3-none-any.whl", hash = "sha256:08b310f9e24a9594186fd75b4f73f4a4152069e3853f1ed8bfbf58369f4ad708", size = 114353, upload_time = "2026-03-24T12:59:08.246Z" }, +] + +[[package]] +name = "attrs" +version = "26.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9a/8e/82a0fe20a541c03148528be8cac2408564a6c9a0cc7e9171802bc1d26985/attrs-26.1.0.tar.gz", hash = "sha256:d03ceb89cb322a8fd706d4fb91940737b6642aa36998fe130a9bc96c985eff32", size = 952055, upload_time = "2026-03-19T14:22:25.026Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/64/b4/17d4b0b2a2dc85a6df63d1157e028ed19f90d4cd97c36717afef2bc2f395/attrs-26.1.0-py3-none-any.whl", hash = "sha256:c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309", size = 67548, upload_time = "2026-03-19T14:22:23.645Z" }, +] + +[[package]] +name = "authlib" +version = "1.7.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "joserfc" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/36/98/7d93f30d029643c0275dbc0bd6d5a6f670661ee6c9a94d93af7ab4887600/authlib-1.7.2.tar.gz", hash = "sha256:2cea25fefcd4e7173bdf1372c0afc265c8034b23a8cd5dcb6a9164b826c64231", size = 176511, upload_time = "2026-05-06T08:10:23.116Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/95/adcb68e20c34162e9135f370d6e31737719c2b6f94bc953fe7ed1f10fe21/authlib-1.7.2-py2.py3-none-any.whl", hash = "sha256:3e1faedc9d87e7d56a164eca3ccb6ace0d61b94abe83e92242f8dc8bba9b4a9f", size = 259548, upload_time = "2026-05-06T08:10:21.436Z" }, +] + +[[package]] +name = "beartype" +version = "0.22.9" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c7/94/1009e248bbfbab11397abca7193bea6626806be9a327d399810d523a07cb/beartype-0.22.9.tar.gz", hash = "sha256:8f82b54aa723a2848a56008d18875f91c1db02c32ef6a62319a002e3e25a975f", size = 1608866, upload_time = "2025-12-13T06:50:30.72Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/71/cc/18245721fa7747065ab478316c7fea7c74777d07f37ae60db2e84f8172e8/beartype-0.22.9-py3-none-any.whl", hash = "sha256:d16c9bbc61ea14637596c5f6fbff2ee99cbe3573e46a716401734ef50c3060c2", size = 1333658, upload_time = "2025-12-13T06:50:28.266Z" }, +] + +[[package]] +name = "cachetools" +version = "7.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8f/c1/67cfb86aa21144796ff51068326d467fbef8ee42f8d08a3a8a926106cf0c/cachetools-7.1.3.tar.gz", hash = "sha256:135cfe944bc3c1e805505f65dae0bef375a2f96261171ab66c79ef77d0bda39d", size = 45780, upload_time = "2026-05-18T18:21:03.819Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/68/52/8ff5c1a3b2e821ced9b2998fba3ee29aa4525c0bf51e5ee55dd6f61a4ed5/cachetools-7.1.3-py3-none-any.whl", hash = "sha256:9876787e2346e20584d5cca236cb5d49d04e7193de91646f230725b2e1e8b804", size = 16763, upload_time = "2026-05-18T18:21:02.386Z" }, +] + +[[package]] +name = "caio" +version = "0.9.25" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/92/88/b8527e1b00c1811db339a1df8bd1ae49d146fcea9d6a5c40e3a80aaeb38d/caio-0.9.25.tar.gz", hash = "sha256:16498e7f81d1d0f5a4c0ad3f2540e65fe25691376e0a5bd367f558067113ed10", size = 26781, upload_time = "2025-12-26T15:21:36.501Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/31/57/5e6ff127e6f62c9f15d989560435c642144aa4210882f9494204bc892305/caio-0.9.25-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:d6c2a3411af97762a2b03840c3cec2f7f728921ff8adda53d7ea2315a8563451", size = 36979, upload_time = "2025-12-26T15:21:35.484Z" }, + { url = "https://files.pythonhosted.org/packages/a3/9f/f21af50e72117eb528c422d4276cbac11fb941b1b812b182e0a9c70d19c5/caio-0.9.25-cp313-cp313-manylinux2010_x86_64.manylinux2014_x86_64.manylinux_2_12_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0998210a4d5cd5cb565b32ccfe4e53d67303f868a76f212e002a8554692870e6", size = 81900, upload_time = "2025-12-26T15:22:21.919Z" }, + { url = "https://files.pythonhosted.org/packages/9c/12/c39ae2a4037cb10ad5eb3578eb4d5f8c1a2575c62bba675f3406b7ef0824/caio-0.9.25-cp313-cp313-manylinux_2_34_aarch64.whl", hash = "sha256:1a177d4777141b96f175fe2c37a3d96dec7911ed9ad5f02bac38aaa1c936611f", size = 81523, upload_time = "2026-03-04T22:08:25.187Z" }, + { url = "https://files.pythonhosted.org/packages/22/59/f8f2e950eb4f1a5a3883e198dca514b9d475415cb6cd7b78b9213a0dd45a/caio-0.9.25-cp313-cp313-manylinux_2_34_x86_64.whl", hash = "sha256:9ed3cfb28c0e99fec5e208c934e5c157d0866aa9c32aa4dc5e9b6034af6286b7", size = 80243, upload_time = "2026-03-04T22:08:26.449Z" }, + { url = "https://files.pythonhosted.org/packages/69/ca/a08fdc7efdcc24e6a6131a93c85be1f204d41c58f474c42b0670af8c016b/caio-0.9.25-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:fab6078b9348e883c80a5e14b382e6ad6aabbc4429ca034e76e730cf464269db", size = 36978, upload_time = "2025-12-26T15:21:41.055Z" }, + { url = "https://files.pythonhosted.org/packages/5e/6c/d4d24f65e690213c097174d26eda6831f45f4734d9d036d81790a27e7b78/caio-0.9.25-cp314-cp314-manylinux2010_x86_64.manylinux2014_x86_64.manylinux_2_12_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:44a6b58e52d488c75cfaa5ecaa404b2b41cc965e6c417e03251e868ecd5b6d77", size = 81832, upload_time = "2025-12-26T15:22:22.757Z" }, + { url = "https://files.pythonhosted.org/packages/87/a4/e534cf7d2d0e8d880e25dd61e8d921ffcfe15bd696734589826f5a2df727/caio-0.9.25-cp314-cp314-manylinux_2_34_aarch64.whl", hash = "sha256:628a630eb7fb22381dd8e3c8ab7f59e854b9c806639811fc3f4310c6bd711d79", size = 81565, upload_time = "2026-03-04T22:08:27.483Z" }, + { url = "https://files.pythonhosted.org/packages/3f/ed/bf81aeac1d290017e5e5ac3e880fd56ee15e50a6d0353986799d1bc5cfd5/caio-0.9.25-cp314-cp314-manylinux_2_34_x86_64.whl", hash = "sha256:0ba16aa605ccb174665357fc729cf500679c2d94d5f1458a6f0d5ca48f2060a7", size = 80071, upload_time = "2026-03-04T22:08:28.751Z" }, + { url = "https://files.pythonhosted.org/packages/86/93/1f76c8d1bafe3b0614e06b2195784a3765bbf7b0a067661af9e2dd47fc33/caio-0.9.25-py3-none-any.whl", hash = "sha256:06c0bb02d6b929119b1cfbe1ca403c768b2013a369e2db46bfa2a5761cf82e40", size = 19087, upload_time = "2025-12-26T15:22:00.221Z" }, +] + +[[package]] +name = "certifi" +version = "2026.5.20" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/ce/ee2ecad540810a79593028e88299baeae54d346cc7a0d94b6199988b89b1/certifi-2026.5.20.tar.gz", hash = "sha256:69dea482ab64caa7b9f6aba1c6bf48bb6a5448d1c0f1b17ab42ad8c763a5344d", size = 135422, upload_time = "2026-05-20T11:46:50.073Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/59/8c/57e832b7af6d7c5abe66eb3fbe3a3a32f4d11ea23a1aa7131371035be991/certifi-2026.5.20-py3-none-any.whl", hash = "sha256:3c52e209ba0a4ad7aebe60436a4ab349c39e1e602e8c134221e546902ad25897", size = 134134, upload_time = "2026-05-20T11:46:48.578Z" }, +] + +[[package]] +name = "cffi" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pycparser", marker = "implementation_name != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/eb/56/b1ba7935a17738ae8453301356628e8147c79dbb825bcbc73dc7401f9846/cffi-2.0.0.tar.gz", hash = "sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529", size = 523588, upload_time = "2025-09-08T23:24:04.541Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4b/8d/a0a47a0c9e413a658623d014e91e74a50cdd2c423f7ccfd44086ef767f90/cffi-2.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:00bdf7acc5f795150faa6957054fbbca2439db2f775ce831222b66f192f03beb", size = 185230, upload_time = "2025-09-08T23:23:00.879Z" }, + { url = "https://files.pythonhosted.org/packages/4a/d2/a6c0296814556c68ee32009d9c2ad4f85f2707cdecfd7727951ec228005d/cffi-2.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:45d5e886156860dc35862657e1494b9bae8dfa63bf56796f2fb56e1679fc0bca", size = 181043, upload_time = "2025-09-08T23:23:02.231Z" }, + { url = "https://files.pythonhosted.org/packages/b0/1e/d22cc63332bd59b06481ceaac49d6c507598642e2230f201649058a7e704/cffi-2.0.0-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:07b271772c100085dd28b74fa0cd81c8fb1a3ba18b21e03d7c27f3436a10606b", size = 212446, upload_time = "2025-09-08T23:23:03.472Z" }, + { url = "https://files.pythonhosted.org/packages/a9/f5/a2c23eb03b61a0b8747f211eb716446c826ad66818ddc7810cc2cc19b3f2/cffi-2.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d48a880098c96020b02d5a1f7d9251308510ce8858940e6fa99ece33f610838b", size = 220101, upload_time = "2025-09-08T23:23:04.792Z" }, + { url = "https://files.pythonhosted.org/packages/f2/7f/e6647792fc5850d634695bc0e6ab4111ae88e89981d35ac269956605feba/cffi-2.0.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f93fd8e5c8c0a4aa1f424d6173f14a892044054871c771f8566e4008eaa359d2", size = 207948, upload_time = "2025-09-08T23:23:06.127Z" }, + { url = "https://files.pythonhosted.org/packages/cb/1e/a5a1bd6f1fb30f22573f76533de12a00bf274abcdc55c8edab639078abb6/cffi-2.0.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:dd4f05f54a52fb558f1ba9f528228066954fee3ebe629fc1660d874d040ae5a3", size = 206422, upload_time = "2025-09-08T23:23:07.753Z" }, + { url = "https://files.pythonhosted.org/packages/98/df/0a1755e750013a2081e863e7cd37e0cdd02664372c754e5560099eb7aa44/cffi-2.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c8d3b5532fc71b7a77c09192b4a5a200ea992702734a2e9279a37f2478236f26", size = 219499, upload_time = "2025-09-08T23:23:09.648Z" }, + { url = "https://files.pythonhosted.org/packages/50/e1/a969e687fcf9ea58e6e2a928ad5e2dd88cc12f6f0ab477e9971f2309b57c/cffi-2.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d9b29c1f0ae438d5ee9acb31cadee00a58c46cc9c0b2f9038c6b0b3470877a8c", size = 222928, upload_time = "2025-09-08T23:23:10.928Z" }, + { url = "https://files.pythonhosted.org/packages/36/54/0362578dd2c9e557a28ac77698ed67323ed5b9775ca9d3fe73fe191bb5d8/cffi-2.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6d50360be4546678fc1b79ffe7a66265e28667840010348dd69a314145807a1b", size = 221302, upload_time = "2025-09-08T23:23:12.42Z" }, + { url = "https://files.pythonhosted.org/packages/eb/6d/bf9bda840d5f1dfdbf0feca87fbdb64a918a69bca42cfa0ba7b137c48cb8/cffi-2.0.0-cp313-cp313-win32.whl", hash = "sha256:74a03b9698e198d47562765773b4a8309919089150a0bb17d829ad7b44b60d27", size = 172909, upload_time = "2025-09-08T23:23:14.32Z" }, + { url = "https://files.pythonhosted.org/packages/37/18/6519e1ee6f5a1e579e04b9ddb6f1676c17368a7aba48299c3759bbc3c8b3/cffi-2.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:19f705ada2530c1167abacb171925dd886168931e0a7b78f5bffcae5c6b5be75", size = 183402, upload_time = "2025-09-08T23:23:15.535Z" }, + { url = "https://files.pythonhosted.org/packages/cb/0e/02ceeec9a7d6ee63bb596121c2c8e9b3a9e150936f4fbef6ca1943e6137c/cffi-2.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:256f80b80ca3853f90c21b23ee78cd008713787b1b1e93eae9f3d6a7134abd91", size = 177780, upload_time = "2025-09-08T23:23:16.761Z" }, + { url = "https://files.pythonhosted.org/packages/92/c4/3ce07396253a83250ee98564f8d7e9789fab8e58858f35d07a9a2c78de9f/cffi-2.0.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:fc33c5141b55ed366cfaad382df24fe7dcbc686de5be719b207bb248e3053dc5", size = 185320, upload_time = "2025-09-08T23:23:18.087Z" }, + { url = "https://files.pythonhosted.org/packages/59/dd/27e9fa567a23931c838c6b02d0764611c62290062a6d4e8ff7863daf9730/cffi-2.0.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c654de545946e0db659b3400168c9ad31b5d29593291482c43e3564effbcee13", size = 181487, upload_time = "2025-09-08T23:23:19.622Z" }, + { url = "https://files.pythonhosted.org/packages/d6/43/0e822876f87ea8a4ef95442c3d766a06a51fc5298823f884ef87aaad168c/cffi-2.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:24b6f81f1983e6df8db3adc38562c83f7d4a0c36162885ec7f7b77c7dcbec97b", size = 220049, upload_time = "2025-09-08T23:23:20.853Z" }, + { url = "https://files.pythonhosted.org/packages/b4/89/76799151d9c2d2d1ead63c2429da9ea9d7aac304603de0c6e8764e6e8e70/cffi-2.0.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:12873ca6cb9b0f0d3a0da705d6086fe911591737a59f28b7936bdfed27c0d47c", size = 207793, upload_time = "2025-09-08T23:23:22.08Z" }, + { url = "https://files.pythonhosted.org/packages/bb/dd/3465b14bb9e24ee24cb88c9e3730f6de63111fffe513492bf8c808a3547e/cffi-2.0.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:d9b97165e8aed9272a6bb17c01e3cc5871a594a446ebedc996e2397a1c1ea8ef", size = 206300, upload_time = "2025-09-08T23:23:23.314Z" }, + { url = "https://files.pythonhosted.org/packages/47/d9/d83e293854571c877a92da46fdec39158f8d7e68da75bf73581225d28e90/cffi-2.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:afb8db5439b81cf9c9d0c80404b60c3cc9c3add93e114dcae767f1477cb53775", size = 219244, upload_time = "2025-09-08T23:23:24.541Z" }, + { url = "https://files.pythonhosted.org/packages/2b/0f/1f177e3683aead2bb00f7679a16451d302c436b5cbf2505f0ea8146ef59e/cffi-2.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:737fe7d37e1a1bffe70bd5754ea763a62a066dc5913ca57e957824b72a85e205", size = 222828, upload_time = "2025-09-08T23:23:26.143Z" }, + { url = "https://files.pythonhosted.org/packages/c6/0f/cafacebd4b040e3119dcb32fed8bdef8dfe94da653155f9d0b9dc660166e/cffi-2.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:38100abb9d1b1435bc4cc340bb4489635dc2f0da7456590877030c9b3d40b0c1", size = 220926, upload_time = "2025-09-08T23:23:27.873Z" }, + { url = "https://files.pythonhosted.org/packages/3e/aa/df335faa45b395396fcbc03de2dfcab242cd61a9900e914fe682a59170b1/cffi-2.0.0-cp314-cp314-win32.whl", hash = "sha256:087067fa8953339c723661eda6b54bc98c5625757ea62e95eb4898ad5e776e9f", size = 175328, upload_time = "2025-09-08T23:23:44.61Z" }, + { url = "https://files.pythonhosted.org/packages/bb/92/882c2d30831744296ce713f0feb4c1cd30f346ef747b530b5318715cc367/cffi-2.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:203a48d1fb583fc7d78a4c6655692963b860a417c0528492a6bc21f1aaefab25", size = 185650, upload_time = "2025-09-08T23:23:45.848Z" }, + { url = "https://files.pythonhosted.org/packages/9f/2c/98ece204b9d35a7366b5b2c6539c350313ca13932143e79dc133ba757104/cffi-2.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:dbd5c7a25a7cb98f5ca55d258b103a2054f859a46ae11aaf23134f9cc0d356ad", size = 180687, upload_time = "2025-09-08T23:23:47.105Z" }, + { url = "https://files.pythonhosted.org/packages/3e/61/c768e4d548bfa607abcda77423448df8c471f25dbe64fb2ef6d555eae006/cffi-2.0.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:9a67fc9e8eb39039280526379fb3a70023d77caec1852002b4da7e8b270c4dd9", size = 188773, upload_time = "2025-09-08T23:23:29.347Z" }, + { url = "https://files.pythonhosted.org/packages/2c/ea/5f76bce7cf6fcd0ab1a1058b5af899bfbef198bea4d5686da88471ea0336/cffi-2.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7a66c7204d8869299919db4d5069a82f1561581af12b11b3c9f48c584eb8743d", size = 185013, upload_time = "2025-09-08T23:23:30.63Z" }, + { url = "https://files.pythonhosted.org/packages/be/b4/c56878d0d1755cf9caa54ba71e5d049479c52f9e4afc230f06822162ab2f/cffi-2.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7cc09976e8b56f8cebd752f7113ad07752461f48a58cbba644139015ac24954c", size = 221593, upload_time = "2025-09-08T23:23:31.91Z" }, + { url = "https://files.pythonhosted.org/packages/e0/0d/eb704606dfe8033e7128df5e90fee946bbcb64a04fcdaa97321309004000/cffi-2.0.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:92b68146a71df78564e4ef48af17551a5ddd142e5190cdf2c5624d0c3ff5b2e8", size = 209354, upload_time = "2025-09-08T23:23:33.214Z" }, + { url = "https://files.pythonhosted.org/packages/d8/19/3c435d727b368ca475fb8742ab97c9cb13a0de600ce86f62eab7fa3eea60/cffi-2.0.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:b1e74d11748e7e98e2f426ab176d4ed720a64412b6a15054378afdb71e0f37dc", size = 208480, upload_time = "2025-09-08T23:23:34.495Z" }, + { url = "https://files.pythonhosted.org/packages/d0/44/681604464ed9541673e486521497406fadcc15b5217c3e326b061696899a/cffi-2.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:28a3a209b96630bca57cce802da70c266eb08c6e97e5afd61a75611ee6c64592", size = 221584, upload_time = "2025-09-08T23:23:36.096Z" }, + { url = "https://files.pythonhosted.org/packages/25/8e/342a504ff018a2825d395d44d63a767dd8ebc927ebda557fecdaca3ac33a/cffi-2.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:7553fb2090d71822f02c629afe6042c299edf91ba1bf94951165613553984512", size = 224443, upload_time = "2025-09-08T23:23:37.328Z" }, + { url = "https://files.pythonhosted.org/packages/e1/5e/b666bacbbc60fbf415ba9988324a132c9a7a0448a9a8f125074671c0f2c3/cffi-2.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:6c6c373cfc5c83a975506110d17457138c8c63016b563cc9ed6e056a82f13ce4", size = 223437, upload_time = "2025-09-08T23:23:38.945Z" }, + { url = "https://files.pythonhosted.org/packages/a0/1d/ec1a60bd1a10daa292d3cd6bb0b359a81607154fb8165f3ec95fe003b85c/cffi-2.0.0-cp314-cp314t-win32.whl", hash = "sha256:1fc9ea04857caf665289b7a75923f2c6ed559b8298a1b8c49e59f7dd95c8481e", size = 180487, upload_time = "2025-09-08T23:23:40.423Z" }, + { url = "https://files.pythonhosted.org/packages/bf/41/4c1168c74fac325c0c8156f04b6749c8b6a8f405bbf91413ba088359f60d/cffi-2.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:d68b6cef7827e8641e8ef16f4494edda8b36104d79773a334beaa1e3521430f6", size = 191726, upload_time = "2025-09-08T23:23:41.742Z" }, + { url = "https://files.pythonhosted.org/packages/ae/3a/dbeec9d1ee0844c679f6bb5d6ad4e9f198b1224f4e7a32825f47f6192b0c/cffi-2.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0a1527a803f0a659de1af2e1fd700213caba79377e27e4693648c2923da066f9", size = 184195, upload_time = "2025-09-08T23:23:43.004Z" }, +] + +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload_time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload_time = "2025-03-31T08:12:07.802Z" }, +] + +[[package]] +name = "click" +version = "8.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/23/e4/796662cd90cf80e3a363c99db2b88e0e394b988a575f60a17e16440cd011/click-8.4.0.tar.gz", hash = "sha256:638f1338fe1235c8f4e008e4a8a254fb5c5fbdcbb40ece3c9142ebb78e792973", size = 350843, upload_time = "2026-05-17T00:47:58.425Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ee/ae/8e92f8058baf87f6c7d86ee7e457668690195cc77efedb8d3797a06e3940/click-8.4.0-py3-none-any.whl", hash = "sha256:40c50b7c6c6adac2823d411041ec84f3f103f1b280d5e9ce0d7f998995832f81", size = 116147, upload_time = "2026-05-17T00:47:56.842Z" }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload_time = "2022-10-25T02:36:22.414Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload_time = "2022-10-25T02:36:20.889Z" }, +] + +[[package]] +name = "coverage" +version = "7.14.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/23/7f/d0720730a397a999ffc0fd3f5bebef347338e3a47b727da66fbb228e2ff2/coverage-7.14.0.tar.gz", hash = "sha256:057a6af2f160a85384cde4ab36f0d2777bae1057bae255f95413cdd382aa5c74", size = 919489, upload_time = "2026-05-10T18:02:31.397Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6b/76/b7c66ee3c66e1b0f9d894c8125983aa0c03fb2336f2fd16559f9c966157f/coverage-7.14.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f2bbb8254370eb4c628ff3d6fa8a7f74ddc40565394d4f7ab791d1fe568e37ef", size = 219990, upload_time = "2026-05-10T18:00:38.887Z" }, + { url = "https://files.pythonhosted.org/packages/b3/af/e567cbad5ba69c013a50146dfa886dc7193361fda77521f51274ff620e1b/coverage-7.14.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:23b81107f46d3f21d0cbce30664fcec0f5d9f585638a67081750f99738f6bf66", size = 220365, upload_time = "2026-05-10T18:00:40.864Z" }, + { url = "https://files.pythonhosted.org/packages/44/6f/9ad575d505b4d805b254febc8a5b338a2efe278f8786e56ff1cb8413f9c3/coverage-7.14.0-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:22a7e06a5f11a757cdfe79018e9095f9f69ae283c5cd8123774c788deec8717b", size = 251363, upload_time = "2026-05-10T18:00:42.489Z" }, + { url = "https://files.pythonhosted.org/packages/6f/5f/b5370068b2f57787454592ed7dcd1002f0f1703b7db1fa30f6a325a4ca6e/coverage-7.14.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:9d1aa57a1dc8e05bdc42e81c5d671d849577aeedf279f4c449d6d286f9ed88ca", size = 253961, upload_time = "2026-05-10T18:00:44.079Z" }, + { url = "https://files.pythonhosted.org/packages/29/1e/51adf17738976e8f2b85ddef7b7aa12a0838b056c92f175941d8862767c1/coverage-7.14.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:90c1a51bcfddf645b3bb7ec333d9e94393a8e94f55642380fa8a9a5a9e636cb7", size = 255193, upload_time = "2026-05-10T18:00:45.623Z" }, + { url = "https://files.pythonhosted.org/packages/9e/7b/5bfd7ac1df3b881c2ac7a5cbc99c7609e6296c402f5ef587cd81c6f355b3/coverage-7.14.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a841fae2fadcae4f438d43b6ccc4aac2ad609f47cdb6cfdce60cbb3fe5ca7bc2", size = 257326, upload_time = "2026-05-10T18:00:47.173Z" }, + { url = "https://files.pythonhosted.org/packages/7d/38/1d37d316b174fad3843a1d76dbdfe4398771c9ecd0515935dd9ece9cd627/coverage-7.14.0-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c79d2319cabef1fe8e86df73371126931550804738f78ad7d31e3aad85a67367", size = 251582, upload_time = "2026-05-10T18:00:49.152Z" }, + { url = "https://files.pythonhosted.org/packages/34/46/746704f95980ba220214e1a41e18cec5aea80a898eaa53c51bf2d645ff36/coverage-7.14.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1b23b0c6f0b1db6ad769b7050c8b641c0bf215ded26c1816955b17b7f26edfa9", size = 253325, upload_time = "2026-05-10T18:00:51.252Z" }, + { url = "https://files.pythonhosted.org/packages/e1/b9/bbe87206d9687b192352f893797825b5f5b15ecd3aa9c68fbff0c074d77b/coverage-7.14.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:55d3089079ce181a4566b1065ab28d2575eb76d8ac8f81f4fcda2bf037fee087", size = 251291, upload_time = "2026-05-10T18:00:52.816Z" }, + { url = "https://files.pythonhosted.org/packages/46/57/b8cdb12ac0d73ef0243218bd5e22c9df8f92edab8018213a86aec67c5324/coverage-7.14.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:49c005cba1e2f9677fb2845dcdf9a2e72a52a17d63e8231aaaae35d9f50215ef", size = 255448, upload_time = "2026-05-10T18:00:54.548Z" }, + { url = "https://files.pythonhosted.org/packages/1f/d4/5002019538b2036ce3c84340f54d2fd5100d55b0a6b0894eee56128d03c7/coverage-7.14.0-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:9117377b823daa28aa8635fbb08cda1cd6be3d7143257345459559aeef852d52", size = 251110, upload_time = "2026-05-10T18:00:56.122Z" }, + { url = "https://files.pythonhosted.org/packages/37/53/20c5009477660f084e6ed60bc02a91894b8e234e617e86ecfd9aaf78e27b/coverage-7.14.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7b79d646cf46d5cf9a9f40281d4441df5849e445726e369006d2b117710b33fe", size = 252885, upload_time = "2026-05-10T18:00:57.967Z" }, + { url = "https://files.pythonhosted.org/packages/ae/ab/3cf6427ac9c1f1db747dbb1ce71dde47984876d4c2cfd018a3fef0a78d4d/coverage-7.14.0-cp313-cp313-win32.whl", hash = "sha256:fb609b3658479e33f9516d46f1a89dbb9b6c261366e3a11844a96ec487533dae", size = 222539, upload_time = "2026-05-10T18:00:59.581Z" }, + { url = "https://files.pythonhosted.org/packages/8f/b8/9228523e80321c2cb4880d1f589bc0171f2f71432c35118ad04dc01decce/coverage-7.14.0-cp313-cp313-win_amd64.whl", hash = "sha256:0773d8329cf32b6fd222e4b52622c61fe8d503eb966cfc8d3c3c10c96266d50e", size = 223344, upload_time = "2026-05-10T18:01:01.531Z" }, + { url = "https://files.pythonhosted.org/packages/a3/99/118daa192f95e3a6cb2740100fbf8797cda1734b4134ef0b5d501a7fa8f3/coverage-7.14.0-cp313-cp313-win_arm64.whl", hash = "sha256:b4e26a0f1b696faf283bffe5b8569e44e336c582439df5d53281ab89ee0cba96", size = 221966, upload_time = "2026-05-10T18:01:03.16Z" }, + { url = "https://files.pythonhosted.org/packages/e6/f1/a46cc0c013be170216253184a32366d7cbdb9252feaec866b05c2d12a894/coverage-7.14.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:953f521ca9445300397e65fda3dca58b2dbd68fee983777420b57ac3c77e9f90", size = 220679, upload_time = "2026-05-10T18:01:05.058Z" }, + { url = "https://files.pythonhosted.org/packages/64/8c/9c30a3d311a34177fa432995be7fbfc64477d8bac5630bd38055b1c9b424/coverage-7.14.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:98af83fd65ae24b1fdd03aaead967a9f523bcd2f1aab2d4f3ffda65bb568a6f1", size = 221033, upload_time = "2026-05-10T18:01:07.002Z" }, + { url = "https://files.pythonhosted.org/packages/9a/cd/3fb5e06c3badefd0c1b47e2044fdca67f8220a4ec2e7fcfb476aa0a67c6c/coverage-7.14.0-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:668b92e6958c4db7cf92e81caac328dfbbdbb215db2850ad28f0cbe1eea0bfbd", size = 262333, upload_time = "2026-05-10T18:01:08.903Z" }, + { url = "https://files.pythonhosted.org/packages/a8/e6/fbc322325c7294d3e22c1ad6b79e45d0806b25228c8e5842aed6d8169aa7/coverage-7.14.0-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:9fbd898551762dea00d3fef2b1c4f99afd2c6a3ff952ea07d60a9bd5ed4f34bc", size = 264410, upload_time = "2026-05-10T18:01:10.531Z" }, + { url = "https://files.pythonhosted.org/packages/08/92/c497b264bec1673c47cc77e26f760fcda4654cabf1f39546d1a23a3b8c35/coverage-7.14.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:68af363c07ecd8d4b7d4043d85cb376d7d227eceb54e5323ee45da73dbd3e426", size = 266836, upload_time = "2026-05-10T18:01:12.19Z" }, + { url = "https://files.pythonhosted.org/packages/78/fc/045da320987f401af5d2815d351e8aa799aec859f60e29f445e3089eeedb/coverage-7.14.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6e57054a583da8ac55edf24117ea4c9133032cfc4cf72aa2d48c1e5d4b52f899", size = 267974, upload_time = "2026-05-10T18:01:13.926Z" }, + { url = "https://files.pythonhosted.org/packages/1b/ae/227b1e379497fb7a4fc3286e620f80c8a1e7cec66d45695a01639eb1af65/coverage-7.14.0-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:cc3499459bbcdd51a65b64c35ab7ed2764eaf3cba826e0df3f1d7fe2e102b70b", size = 261578, upload_time = "2026-05-10T18:01:15.564Z" }, + { url = "https://files.pythonhosted.org/packages/a0/f5/3570342900f2acea31d33ff1590c5d8bac1a8e1a2e1c6d34a5d5e61de681/coverage-7.14.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:45899ec2138a4346ed34d601dedf5076fb74edf2d1dd9dc76a78e82397edee90", size = 264394, upload_time = "2026-05-10T18:01:17.607Z" }, + { url = "https://files.pythonhosted.org/packages/16/29/de1bbc01c935b28f89b1dc3db85b011c055e843a8e5e3b83141c3f80af7f/coverage-7.14.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:8767486808c436f05b23ab98eb963fb29185e32a9357a166971685cb3459900f", size = 262022, upload_time = "2026-05-10T18:01:19.304Z" }, + { url = "https://files.pythonhosted.org/packages/35/95/f53890b0bf2fc10ab168e05d38869215e73ca24c4cb521c3bb0eb62fe16b/coverage-7.14.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:a3b5ddfd6aa7ddad53ee3edb231e88a2151507a43229b7d71b953916deca127d", size = 265732, upload_time = "2026-05-10T18:01:21.494Z" }, + { url = "https://files.pythonhosted.org/packages/ed/ea/c919e259081dd2bdf0e43b87209709ba7ec2e4117c2a7f5185379c43463c/coverage-7.14.0-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:63df0fe568e698e1045792399f8ab6da3a6c2dce3182813fb92afa2641087b47", size = 260921, upload_time = "2026-05-10T18:01:23.533Z" }, + { url = "https://files.pythonhosted.org/packages/1a/2c/c2831889705a81dc5d1c6ca12e4d8e9b95dfc146d153488a6c0ea685d28e/coverage-7.14.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:827d6397dbd95144939b18f89edf31f63e1f99633e8d5f32f22ba8bdda567477", size = 263109, upload_time = "2026-05-10T18:01:25.165Z" }, + { url = "https://files.pythonhosted.org/packages/5a/a9/2fcae5003cac3d63fe344d2166243c2756935f48420863c5272b240d550b/coverage-7.14.0-cp313-cp313t-win32.whl", hash = "sha256:7bf43e000d24012599b879791cff41589af90674722421ef11b11a5431920bab", size = 223212, upload_time = "2026-05-10T18:01:27.157Z" }, + { url = "https://files.pythonhosted.org/packages/3f/bb/18e94d7b14b9b398164197114a587a04ab7c9fdbe1d237eef57311c5e883/coverage-7.14.0-cp313-cp313t-win_amd64.whl", hash = "sha256:3f5549365af25d770e06b1f8f5682d9a5637d06eb494db91c6fa75d3950cc917", size = 224272, upload_time = "2026-05-10T18:01:29.107Z" }, + { url = "https://files.pythonhosted.org/packages/db/56/4f14fad782b035c81c4ffd09159e7103d42bb1d93ac8496d04b90a11b7da/coverage-7.14.0-cp313-cp313t-win_arm64.whl", hash = "sha256:6d160217ec6fe890f16ad3a9531761589443749e448f91986c972714fad361c8", size = 222530, upload_time = "2026-05-10T18:01:31.151Z" }, + { url = "https://files.pythonhosted.org/packages/1c/18/b9a6586d73992807c26f9a5f274131be3d76b56b18a82b9392e2a25d2e45/coverage-7.14.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:9aed9fa983514ca032790f3fe0d1c0e42ca7e16b42432af1706b50a9a46bef5d", size = 220036, upload_time = "2026-05-10T18:01:33.057Z" }, + { url = "https://files.pythonhosted.org/packages/f3/9b/4165a1d56ddc302a0e2d518fd9d412a4fd0b57562618c78c5f21c57194f5/coverage-7.14.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:ba3b8390db29296dbbf49e91b6fe08f990743a90c8f447ba4c2ffc29670dfa63", size = 220368, upload_time = "2026-05-10T18:01:34.705Z" }, + { url = "https://files.pythonhosted.org/packages/69/aa/c12e52a5ba148d9995229d557e3be6e554fe469addc0e9241b2f0956d8ea/coverage-7.14.0-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:3a5d8e876dfa2f102e970b183863d6dedd023d3c0eeca1fe7a9787bc5f28b212", size = 251417, upload_time = "2026-05-10T18:01:36.949Z" }, + { url = "https://files.pythonhosted.org/packages/d7/51/ec641c26e6dca1b25a7d2035ba6ecb7c884ef1a100a9e42fbe4ce4405139/coverage-7.14.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:5ebb8f4614a3787d567e610bbfdf96a4798dd69a1afb1bd8ad228d4111fe6ff3", size = 253924, upload_time = "2026-05-10T18:01:38.985Z" }, + { url = "https://files.pythonhosted.org/packages/33/c4/59c3de0bd1b538824173fd518fed51c1ce740ca5ed68e74545983f4053a9/coverage-7.14.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b9bf47223dd8db3d4c4b2e443b02bace480d428f0822c3f991600448a176c97", size = 255269, upload_time = "2026-05-10T18:01:40.957Z" }, + { url = "https://files.pythonhosted.org/packages/7b/a9/36dfa153a62040296f6e7febfdb20a5720622f6ef5a81a41e8237b9a5344/coverage-7.14.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:3485a836550b303d006d57cc06e3d5afaabc642c77050b7c985a97b13e3776b8", size = 257583, upload_time = "2026-05-10T18:01:42.607Z" }, + { url = "https://files.pythonhosted.org/packages/26/7b/cc2c048d4114d9ab1c2409e9ee365e5ae10736df6dffcfc9444effa6c708/coverage-7.14.0-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3e7e88110bae996d199d1693ca8ec3fd52441d426401ae963437598667b4c5eb", size = 251434, upload_time = "2026-05-10T18:01:44.537Z" }, + { url = "https://files.pythonhosted.org/packages/ee/df/6770eaa576e604575e9a78055313250faef5faa84bd6f71a39fece519c43/coverage-7.14.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:15228a6800ce7bdf1b74800595e56db7138cecb338fdbf044806e10dcf182dfe", size = 253280, upload_time = "2026-05-10T18:01:46.175Z" }, + { url = "https://files.pythonhosted.org/packages/ad/9e/1c0264514a3f98259a6d64765a397b2c8373e3ba59ee722a4802d3ec0c61/coverage-7.14.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:9d26ac7f5398bafc5b57421ad994e8a4749e8a7a0e62d05ec7d53014d5963bfa", size = 251241, upload_time = "2026-05-10T18:01:48.732Z" }, + { url = "https://files.pythonhosted.org/packages/64/16/4efdf3e3c4079cdbf0ece56a2fea872df9e8a3e15a13a0af4400e1075944/coverage-7.14.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:2fb73254ff43c911c967a899e1359bc5049b4b115d6e8fbdde4937d0a2246cd5", size = 255516, upload_time = "2026-05-10T18:01:50.819Z" }, + { url = "https://files.pythonhosted.org/packages/93/69/b1de96346603881b3d1bc8d6447c83200e1c9700ffbaff926ba01ff5724c/coverage-7.14.0-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:454a380af72c6adada298ed270d38c7a391288198dbfb8467f786f588751a90c", size = 251059, upload_time = "2026-05-10T18:01:52.773Z" }, + { url = "https://files.pythonhosted.org/packages/a4/66/2881853e0363a5e0a724d1103e53650795367471b6afb234f8b49e713bc6/coverage-7.14.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:65c86fb646d2bd2972e96bd1a8b45817ed907cee68655d6295fe7ec031d04cca", size = 252716, upload_time = "2026-05-10T18:01:54.506Z" }, + { url = "https://files.pythonhosted.org/packages/55/5c/0d3305d002c41dcde873dbe456491e663dc55152ca526b630b5c47efd62f/coverage-7.14.0-cp314-cp314-win32.whl", hash = "sha256:6a6516b02a6101398e19a3f44820f69bab2590697f7def4331f668b14adaf828", size = 222788, upload_time = "2026-05-10T18:01:56.487Z" }, + { url = "https://files.pythonhosted.org/packages/f9/58/6e1b8f52fdc3184b47dc5037f5070d83a3d11042db1594b02d2a44d786c8/coverage-7.14.0-cp314-cp314-win_amd64.whl", hash = "sha256:45e0f79d8351fa76e256716df91eab12890d32678b9590df7ae1042e4bd4cf5d", size = 223600, upload_time = "2026-05-10T18:01:58.497Z" }, + { url = "https://files.pythonhosted.org/packages/00/70/a18c408e674bc26281cadaedc7351f929bd2094e191e4b15271c30b084cc/coverage-7.14.0-cp314-cp314-win_arm64.whl", hash = "sha256:4b899594a8b2d81e5cc064a0d7f9cac2081fed91049456cae7676787e41549c9", size = 222168, upload_time = "2026-05-10T18:02:00.411Z" }, + { url = "https://files.pythonhosted.org/packages/3d/89/2681f071d238b62aff8dfc2ab44fc24cfdb38d1c01f391a80522ff5d3a16/coverage-7.14.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:f580f8c80acd94ac72e863efe2cab791d8c38d153e0b463b92dfa000d5c84cd1", size = 220766, upload_time = "2026-05-10T18:02:02.313Z" }, + { url = "https://files.pythonhosted.org/packages/bd/c7/c987babafd9207ffa1995e1ef1f9b26762cf4963aa768a66b6f0501e4616/coverage-7.14.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:a2bd259c442cd43c49b30fbafc51776eb19ea396faf159d26a83e6a0a5f13b0c", size = 221035, upload_time = "2026-05-10T18:02:04.017Z" }, + { url = "https://files.pythonhosted.org/packages/5a/e9/d6a5ac3b333088143d6fc877d398a9a674dc03124a2f776e131f03864823/coverage-7.14.0-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:a706b908dfa85538863504c624b237a3cc34232bf403c057414ebfdb3b4d9f84", size = 262405, upload_time = "2026-05-10T18:02:05.915Z" }, + { url = "https://files.pythonhosted.org/packages/38/b1/e70838d29a7c08e22d44398a46db90815bbcbf28de06992bd9210d1a8d8e/coverage-7.14.0-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:7333cd944ee4393b9b3d3c1b598c936d4fc8d70573a4c7dacfec5590dd50e436", size = 264530, upload_time = "2026-05-10T18:02:07.582Z" }, + { url = "https://files.pythonhosted.org/packages/6b/73/5c31ef97763288d03d9995152b96d5475b527c63d91c84b01caea894b83a/coverage-7.14.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0f162bc9a15b82d947b02651b0c7e1609d6f7a8735ca330cfadec8481dd97d5a", size = 266932, upload_time = "2026-05-10T18:02:09.401Z" }, + { url = "https://files.pythonhosted.org/packages/e1/76/dd56d80f29c5f05b4d76f7e7c6d47cafacae017189c75c5759d24f9ff0cc/coverage-7.14.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:362cb78e01a5dc82009d88004cf60f2e6b6d6fcbfdec05b05af73b0abf40118f", size = 268062, upload_time = "2026-05-10T18:02:11.399Z" }, + { url = "https://files.pythonhosted.org/packages/6e/c7/27ba85cd5b95614f159ff93ebff1901584a8d192e2e5e24c4943a7453f59/coverage-7.14.0-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:acebd068fca5512c3a6fde9c045f901613478781a73f0e82b307b214daef23fb", size = 261504, upload_time = "2026-05-10T18:02:13.257Z" }, + { url = "https://files.pythonhosted.org/packages/13/2e/e8149f60ab5d5684c6eee881bdf34b127115cddbb958b196768dd9d63473/coverage-7.14.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:29fe3da551dface75deb2ccbf87b6b66e2e7ef38f6d89050b428be94afff3490", size = 264398, upload_time = "2026-05-10T18:02:15.063Z" }, + { url = "https://files.pythonhosted.org/packages/d9/7f/1261b025285323225f4b4abffa5a643649dfd67e25ddca7ebcbdea3b7cb3/coverage-7.14.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:b4cc4fce8672fffcb09b0eafc167b396b3ba53c4a7230f54b7aaffbf6c835fa9", size = 262000, upload_time = "2026-05-10T18:02:16.756Z" }, + { url = "https://files.pythonhosted.org/packages/d3/dc/829c54f60b9d08389439c00f813c752781c496fc5788c78d8006db4b4f2b/coverage-7.14.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:5d4a51aad8ba8bdcd2b8bd8f03d4aca19693fa2327a3470e4718a25b03481020", size = 265732, upload_time = "2026-05-10T18:02:18.817Z" }, + { url = "https://files.pythonhosted.org/packages/ed/b0/70bd1419941652fa062689cba9c3eeafb8f5e6fbb890bce41c3bdda5dbd6/coverage-7.14.0-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:9f323af3e1e4f68b60b7b247e37b8515563a61375518fa59de1af48ba28a3db6", size = 260847, upload_time = "2026-05-10T18:02:20.528Z" }, + { url = "https://files.pythonhosted.org/packages/f2/73/be40b2390656c654d35ea0015ea7ba3d945769cf80790ad5e0bb2d56d2ba/coverage-7.14.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:1a0abc7342ea9711c469dd8b821c6c311e6bc6aac1442e5fbd6b27fae0a8f3db", size = 263166, upload_time = "2026-05-10T18:02:22.337Z" }, + { url = "https://files.pythonhosted.org/packages/29/55/4a643f712fcf7cf2881f8ec1e0ccb7b164aff3108f69b51801246c8799f2/coverage-7.14.0-cp314-cp314t-win32.whl", hash = "sha256:a9f864ef57b7172e2db87a096642dd51e179e085ab6b2c371c29e885f65c8fb2", size = 223573, upload_time = "2026-05-10T18:02:24.11Z" }, + { url = "https://files.pythonhosted.org/packages/27/96/3acae5da0953be042c0b4dea6d6789d2f080701c77b88e44d5bd41b9219b/coverage-7.14.0-cp314-cp314t-win_amd64.whl", hash = "sha256:29943e552fdc08e082eb51400fb2f58e118a83b5542bd06531214e084399b644", size = 224680, upload_time = "2026-05-10T18:02:25.896Z" }, + { url = "https://files.pythonhosted.org/packages/93/3d/6ab5d2dd8325d838737c6f8d83d62eb6230e0d70b87b51b57bbfd08fa767/coverage-7.14.0-cp314-cp314t-win_arm64.whl", hash = "sha256:742a73ea621953b012f2c4c2219b512180dd84489acf5b1596b0aafc55b9100b", size = 222703, upload_time = "2026-05-10T18:02:27.822Z" }, + { url = "https://files.pythonhosted.org/packages/61/e8/cb8e80d6f9f55b99588625062822bf946cf03ed06315df4bd8397f5632a1/coverage-7.14.0-py3-none-any.whl", hash = "sha256:8de5b61163aee3d05c8a2beab6f47913df7981dad1baf82c414d99158c286ab1", size = 211764, upload_time = "2026-05-10T18:02:29.538Z" }, +] + +[[package]] +name = "crc32c" +version = "2.8" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e3/66/7e97aa77af7cf6afbff26e3651b564fe41932599bc2d3dce0b2f73d4829a/crc32c-2.8.tar.gz", hash = "sha256:578728964e59c47c356aeeedee6220e021e124b9d3e8631d95d9a5e5f06e261c", size = 48179, upload_time = "2025-10-17T06:20:13.61Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e8/d8/3ae227890b3be40955a7144106ef4dd97d6123a82c2a5310cdab58ca49d8/crc32c-2.8-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:36f1e03ee9e9c6938e67d3bcb60e36f260170aa5f37da1185e04ef37b56af395", size = 66380, upload_time = "2025-10-17T06:19:18.009Z" }, + { url = "https://files.pythonhosted.org/packages/bd/8b/178d3f987cd0e049b484615512d3f91f3d2caeeb8ff336bb5896ae317438/crc32c-2.8-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b2f3226b94b85a8dd9b3533601d7a63e9e3e8edf03a8a169830ee8303a199aeb", size = 63048, upload_time = "2025-10-17T06:19:18.853Z" }, + { url = "https://files.pythonhosted.org/packages/f2/a1/48145ae2545ebc0169d3283ebe882da580ea4606bfb67cf4ca922ac3cfc3/crc32c-2.8-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6e08628bc72d5b6bc8e0730e8f142194b610e780a98c58cb6698e665cb885a5b", size = 61530, upload_time = "2025-10-17T06:19:19.974Z" }, + { url = "https://files.pythonhosted.org/packages/06/4b/cf05ed9d934cc30e5ae22f97c8272face420a476090e736615d9a6b53de0/crc32c-2.8-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:086f64793c5ec856d1ab31a026d52ad2b895ac83d7a38fce557d74eb857f0a82", size = 80001, upload_time = "2025-10-17T06:19:20.784Z" }, + { url = "https://files.pythonhosted.org/packages/15/ab/4b04801739faf36345f6ba1920be5b1c70282fec52f8280afd3613fb13e2/crc32c-2.8-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bcf72ee7e0135b3d941c34bb2c26c3fc6bc207106b49fd89aaafaeae223ae209", size = 81543, upload_time = "2025-10-17T06:19:21.557Z" }, + { url = "https://files.pythonhosted.org/packages/a9/1b/6e38dde5bfd2ea69b7f2ab6ec229fcd972a53d39e2db4efe75c0ac0382ce/crc32c-2.8-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:8a717dd9c3fd777d9bc6603717eae172887d402c4ab589d124ebd0184a83f89e", size = 80644, upload_time = "2025-10-17T06:19:22.325Z" }, + { url = "https://files.pythonhosted.org/packages/ce/45/012176ffee90059ae8ec7131019c71724ea472aa63e72c0c8edbd1fad1d7/crc32c-2.8-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:0450bb845b3c3c7b9bdc0b4e95620ec9a40824abdc8c86d6285c919a90743c1a", size = 79919, upload_time = "2025-10-17T06:19:23.101Z" }, + { url = "https://files.pythonhosted.org/packages/f0/2b/f557629842f9dec2b3461cb3a0d854bb586ec45b814cea58b082c32f0dde/crc32c-2.8-cp313-cp313-win32.whl", hash = "sha256:765d220bfcbcffa6598ac11eb1e10af0ee4802b49fe126aa6bf79f8ddb9931d1", size = 64896, upload_time = "2025-10-17T06:19:23.88Z" }, + { url = "https://files.pythonhosted.org/packages/d0/db/fd0f698c15d1e21d47c64181a98290665a08fcbb3940cd559e9c15bda57e/crc32c-2.8-cp313-cp313-win_amd64.whl", hash = "sha256:171ff0260d112c62abcce29332986950a57bddee514e0a2418bfde493ea06bb3", size = 66646, upload_time = "2025-10-17T06:19:24.702Z" }, + { url = "https://files.pythonhosted.org/packages/db/b9/8e5d7054fe8e7eecab10fd0c8e7ffb01439417bdb6de1d66a81c38fc4a20/crc32c-2.8-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b977a32a3708d6f51703c8557008f190aaa434d7347431efb0e86fcbe78c2a50", size = 66203, upload_time = "2025-10-17T06:19:25.872Z" }, + { url = "https://files.pythonhosted.org/packages/55/5f/cc926c70057a63cc0c98a3c8a896eb15fc7e74d3034eadd53c94917c6cc3/crc32c-2.8-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:7399b01db4adaf41da2fb36fe2408e75a8d82a179a9564ed7619412e427b26d6", size = 62956, upload_time = "2025-10-17T06:19:26.652Z" }, + { url = "https://files.pythonhosted.org/packages/a1/8a/0660c44a2dd2cb6ccbb529eb363b9280f5c766f1017bc8355ed8d695bd94/crc32c-2.8-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:4379f73f9cdad31958a673d11a332ec725ca71572401ca865867229f5f15e853", size = 61442, upload_time = "2025-10-17T06:19:27.74Z" }, + { url = "https://files.pythonhosted.org/packages/f5/5a/6108d2dfc0fe33522ce83ba07aed4b22014911b387afa228808a278e27cd/crc32c-2.8-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2e68264555fab19bab08331550dab58573e351a63ed79c869d455edd3b0aa417", size = 79109, upload_time = "2025-10-17T06:19:28.535Z" }, + { url = "https://files.pythonhosted.org/packages/84/1e/c054f9e390090c197abf3d2936f4f9effaf0c6ee14569ae03d6ddf86958a/crc32c-2.8-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b48f2486727b8d0e7ccbae4a34cb0300498433d2a9d6b49cb13cb57c2e3f19cb", size = 80987, upload_time = "2025-10-17T06:19:29.305Z" }, + { url = "https://files.pythonhosted.org/packages/c8/ad/1650e5c3341e4a485f800ea83116d72965030c5d48ccc168fcc685756e4d/crc32c-2.8-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:ecf123348934a086df8c8fde7f9f2d716d523ca0707c5a1367b8bb00d8134823", size = 79994, upload_time = "2025-10-17T06:19:30.109Z" }, + { url = "https://files.pythonhosted.org/packages/d7/3b/f2ed924b177729cbb2ab30ca2902abff653c31d48c95e7b66717a9ca9fcc/crc32c-2.8-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:e636ac60f76de538f7a2c0d0f3abf43104ee83a8f5e516f6345dc283ed1a4df7", size = 79046, upload_time = "2025-10-17T06:19:30.894Z" }, + { url = "https://files.pythonhosted.org/packages/4b/80/413b05ee6ace613208b31b3670c3135ee1cf451f0e72a9c839b4946acc04/crc32c-2.8-cp313-cp313t-win32.whl", hash = "sha256:8dd4a19505e0253892e1b2f1425cc3bd47f79ae5a04cb8800315d00aad7197f2", size = 64837, upload_time = "2025-10-17T06:19:32.03Z" }, + { url = "https://files.pythonhosted.org/packages/3b/1b/85eddb6ac5b38496c4e35c20298aae627970c88c3c624a22ab33e84f16c7/crc32c-2.8-cp313-cp313t-win_amd64.whl", hash = "sha256:4bb18e4bd98fb266596523ffc6be9c5b2387b2fa4e505ec56ca36336f49cb639", size = 66574, upload_time = "2025-10-17T06:19:33.143Z" }, + { url = "https://files.pythonhosted.org/packages/aa/df/50e9079b532ff53dbfc0e66eed781374bd455af02ed5df8b56ad538de4ff/crc32c-2.8-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:3a3b2e4bcf7b3ee333050e7d3ff38e2ba46ea205f1d73d8949b248aaffe937ac", size = 66399, upload_time = "2025-10-17T06:19:34.279Z" }, + { url = "https://files.pythonhosted.org/packages/5a/2e/67e3b0bc3d30e46ea5d16365cc81203286387671e22f2307eb41f19abb9c/crc32c-2.8-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:445e559e66dff16be54f8a4ef95aa6b01db799a639956d995c5498ba513fccc2", size = 63044, upload_time = "2025-10-17T06:19:35.062Z" }, + { url = "https://files.pythonhosted.org/packages/36/ea/1723b17437e4344ed8d067456382ecb1f5b535d83fdc5aaebab676c6d273/crc32c-2.8-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:bf3040919e17afa5782e01b1875d6a05f44b8f19c05f211d8b9f8a1deb8bbd9c", size = 61541, upload_time = "2025-10-17T06:19:36.204Z" }, + { url = "https://files.pythonhosted.org/packages/4c/6a/cbec8a235c5b46a01f319939b538958662159aec0ed3a74944e3a6de21f1/crc32c-2.8-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:5607ab8221e1ffd411f64aa40dbb6850cf06dd2908c9debd05d371e1acf62ff3", size = 80139, upload_time = "2025-10-17T06:19:37.351Z" }, + { url = "https://files.pythonhosted.org/packages/21/31/d096722fe74b692d6e8206c27da1ea5f6b2a12ff92c54a62a6ba2f376254/crc32c-2.8-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c7f5db4f16816926986d3c94253314920689706ae13a9bf4888b47336c6735ce", size = 81736, upload_time = "2025-10-17T06:19:38.16Z" }, + { url = "https://files.pythonhosted.org/packages/f6/a2/f75ef716ff7e3c22f385ba6ef30c5de80c19a21ebe699dc90824a1903275/crc32c-2.8-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:70b0153c4d418b673309d3529334d117e1074c4a3b2d7f676e430d72c14de67b", size = 80795, upload_time = "2025-10-17T06:19:38.948Z" }, + { url = "https://files.pythonhosted.org/packages/d8/94/6d647a12d96ab087d9b8eacee3da073f981987827d57c7072f89ffc7b6cd/crc32c-2.8-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5c8933531442042438753755a5c8a9034e4d88b01da9eb796f7e151b31a7256c", size = 80042, upload_time = "2025-10-17T06:19:39.725Z" }, + { url = "https://files.pythonhosted.org/packages/cd/dc/32b8896b40a0afee7a3c040536d0da5a73e68df2be9fadd21770fd158e16/crc32c-2.8-cp314-cp314-win32.whl", hash = "sha256:cdc83a3fe6c4e5df9457294cfd643de7d95bd4e9382c1dd6ed1e0f0f9169172c", size = 64914, upload_time = "2025-10-17T06:19:40.527Z" }, + { url = "https://files.pythonhosted.org/packages/f2/b4/4308b27d307e8ecaf8dd1dcc63bbb0e47ae1826d93faa3e62d1ee00ee2d5/crc32c-2.8-cp314-cp314-win_amd64.whl", hash = "sha256:509e10035106df66770fe24b9eb8d9e32b6fb967df17744402fb67772d8b2bc7", size = 66723, upload_time = "2025-10-17T06:19:42.449Z" }, + { url = "https://files.pythonhosted.org/packages/90/d5/a19d2489fa997a143bfbbf971a5c9a43f8b1ba9e775b1fb362d8fb15260c/crc32c-2.8-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:864359a39777a07b09b28eb31337c0cc603d5c1bf0fc328c3af736a8da624ec0", size = 66201, upload_time = "2025-10-17T06:19:43.273Z" }, + { url = "https://files.pythonhosted.org/packages/98/c2/5f82f22d2c1242cb6f6fe92aa9a42991ebea86de994b8f9974d9c1d128e2/crc32c-2.8-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:14511d7cfc5d9f5e1a6c6b64caa6225c2bdc1ed00d725e9a374a3e84073ce180", size = 62956, upload_time = "2025-10-17T06:19:44.099Z" }, + { url = "https://files.pythonhosted.org/packages/9b/61/3d43d33489cf974fb78bfb3500845770e139ae6d1d83473b660bd8f79a6c/crc32c-2.8-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:918b7999b52b5dcbcea34081e9a02d46917d571921a3f209956a9a429b2e06e5", size = 61443, upload_time = "2025-10-17T06:19:44.89Z" }, + { url = "https://files.pythonhosted.org/packages/52/6d/f306ce64a352a3002f76b0fc88a1373f4541f9d34fad3668688610bab14b/crc32c-2.8-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:cc445da03fc012a5a03b71da1df1b40139729e6a5571fd4215ab40bfb39689c7", size = 79106, upload_time = "2025-10-17T06:19:45.688Z" }, + { url = "https://files.pythonhosted.org/packages/a5/b7/1f74965dd7ea762954a69d172dfb3a706049c84ffa45d31401d010a4a126/crc32c-2.8-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1e3dde2ec59a8a830511d72a086ead95c0b0b7f0d418f93ea106244c5e77e350", size = 80983, upload_time = "2025-10-17T06:19:46.792Z" }, + { url = "https://files.pythonhosted.org/packages/1b/50/af93f0d91ccd61833ce77374ebfbd16f5805f5c17d18c6470976d9866d76/crc32c-2.8-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:61d51681a08b6a2a2e771b7f0cd1947fb87cb28f38ed55a01cb7c40b2ac4cdd8", size = 80009, upload_time = "2025-10-17T06:19:47.619Z" }, + { url = "https://files.pythonhosted.org/packages/ee/fa/94f394beb68a88258af694dab2f1284f55a406b615d7900bdd6235283bc4/crc32c-2.8-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:67c0716c3b1a02d5235be649487b637eed21f2d070f2b3f63f709dcd2fefb4c7", size = 79066, upload_time = "2025-10-17T06:19:48.409Z" }, + { url = "https://files.pythonhosted.org/packages/91/c6/a6050e0c64fd73c67a97da96cb59f08b05111e00b958fb87ecdce99f17ac/crc32c-2.8-cp314-cp314t-win32.whl", hash = "sha256:2e8fe863fbbd8bdb6b414a2090f1b0f52106e76e9a9c96a413495dbe5ebe492a", size = 64869, upload_time = "2025-10-17T06:19:49.197Z" }, + { url = "https://files.pythonhosted.org/packages/08/1f/c7735034e401cb1ea14f996a224518e3a3fa9987cb13680e707328a7d779/crc32c-2.8-cp314-cp314t-win_amd64.whl", hash = "sha256:20a9cfb897693eb6da19e52e2a7be2026fd4d9fc8ae318f086c0d71d5dd2d8e0", size = 66633, upload_time = "2025-10-17T06:19:50.003Z" }, +] + +[[package]] +name = "cryptography" +version = "46.0.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/47/93/ac8f3d5ff04d54bc814e961a43ae5b0b146154c89c61b47bb07557679b18/cryptography-46.0.7.tar.gz", hash = "sha256:e4cfd68c5f3e0bfdad0d38e023239b96a2fe84146481852dffbcca442c245aa5", size = 750652, upload_time = "2026-04-08T01:57:54.692Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0b/5d/4a8f770695d73be252331e60e526291e3df0c9b27556a90a6b47bccca4c2/cryptography-46.0.7-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:ea42cbe97209df307fdc3b155f1b6fa2577c0defa8f1f7d3be7d31d189108ad4", size = 7179869, upload_time = "2026-04-08T01:56:17.157Z" }, + { url = "https://files.pythonhosted.org/packages/5f/45/6d80dc379b0bbc1f9d1e429f42e4cb9e1d319c7a8201beffd967c516ea01/cryptography-46.0.7-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b36a4695e29fe69215d75960b22577197aca3f7a25b9cf9d165dcfe9d80bc325", size = 4275492, upload_time = "2026-04-08T01:56:19.36Z" }, + { url = "https://files.pythonhosted.org/packages/4a/9a/1765afe9f572e239c3469f2cb429f3ba7b31878c893b246b4b2994ffe2fe/cryptography-46.0.7-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5ad9ef796328c5e3c4ceed237a183f5d41d21150f972455a9d926593a1dcb308", size = 4426670, upload_time = "2026-04-08T01:56:21.415Z" }, + { url = "https://files.pythonhosted.org/packages/8f/3e/af9246aaf23cd4ee060699adab1e47ced3f5f7e7a8ffdd339f817b446462/cryptography-46.0.7-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:73510b83623e080a2c35c62c15298096e2a5dc8d51c3b4e1740211839d0dea77", size = 4280275, upload_time = "2026-04-08T01:56:23.539Z" }, + { url = "https://files.pythonhosted.org/packages/0f/54/6bbbfc5efe86f9d71041827b793c24811a017c6ac0fd12883e4caa86b8ed/cryptography-46.0.7-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:cbd5fb06b62bd0721e1170273d3f4d5a277044c47ca27ee257025146c34cbdd1", size = 4928402, upload_time = "2026-04-08T01:56:25.624Z" }, + { url = "https://files.pythonhosted.org/packages/2d/cf/054b9d8220f81509939599c8bdbc0c408dbd2bdd41688616a20731371fe0/cryptography-46.0.7-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:420b1e4109cc95f0e5700eed79908cef9268265c773d3a66f7af1eef53d409ef", size = 4459985, upload_time = "2026-04-08T01:56:27.309Z" }, + { url = "https://files.pythonhosted.org/packages/f9/46/4e4e9c6040fb01c7467d47217d2f882daddeb8828f7df800cb806d8a2288/cryptography-46.0.7-cp311-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:24402210aa54baae71d99441d15bb5a1919c195398a87b563df84468160a65de", size = 3990652, upload_time = "2026-04-08T01:56:29.095Z" }, + { url = "https://files.pythonhosted.org/packages/36/5f/313586c3be5a2fbe87e4c9a254207b860155a8e1f3cca99f9910008e7d08/cryptography-46.0.7-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:8a469028a86f12eb7d2fe97162d0634026d92a21f3ae0ac87ed1c4a447886c83", size = 4279805, upload_time = "2026-04-08T01:56:30.928Z" }, + { url = "https://files.pythonhosted.org/packages/69/33/60dfc4595f334a2082749673386a4d05e4f0cf4df8248e63b2c3437585f2/cryptography-46.0.7-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:9694078c5d44c157ef3162e3bf3946510b857df5a3955458381d1c7cfc143ddb", size = 4892883, upload_time = "2026-04-08T01:56:32.614Z" }, + { url = "https://files.pythonhosted.org/packages/c7/0b/333ddab4270c4f5b972f980adef4faa66951a4aaf646ca067af597f15563/cryptography-46.0.7-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:42a1e5f98abb6391717978baf9f90dc28a743b7d9be7f0751a6f56a75d14065b", size = 4459756, upload_time = "2026-04-08T01:56:34.306Z" }, + { url = "https://files.pythonhosted.org/packages/d2/14/633913398b43b75f1234834170947957c6b623d1701ffc7a9600da907e89/cryptography-46.0.7-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:91bbcb08347344f810cbe49065914fe048949648f6bd5c2519f34619142bbe85", size = 4410244, upload_time = "2026-04-08T01:56:35.977Z" }, + { url = "https://files.pythonhosted.org/packages/10/f2/19ceb3b3dc14009373432af0c13f46aa08e3ce334ec6eff13492e1812ccd/cryptography-46.0.7-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:5d1c02a14ceb9148cc7816249f64f623fbfee39e8c03b3650d842ad3f34d637e", size = 4674868, upload_time = "2026-04-08T01:56:38.034Z" }, + { url = "https://files.pythonhosted.org/packages/1a/bb/a5c213c19ee94b15dfccc48f363738633a493812687f5567addbcbba9f6f/cryptography-46.0.7-cp311-abi3-win32.whl", hash = "sha256:d23c8ca48e44ee015cd0a54aeccdf9f09004eba9fc96f38c911011d9ff1bd457", size = 3026504, upload_time = "2026-04-08T01:56:39.666Z" }, + { url = "https://files.pythonhosted.org/packages/2b/02/7788f9fefa1d060ca68717c3901ae7fffa21ee087a90b7f23c7a603c32ae/cryptography-46.0.7-cp311-abi3-win_amd64.whl", hash = "sha256:397655da831414d165029da9bc483bed2fe0e75dde6a1523ec2fe63f3c46046b", size = 3488363, upload_time = "2026-04-08T01:56:41.893Z" }, + { url = "https://files.pythonhosted.org/packages/7b/56/15619b210e689c5403bb0540e4cb7dbf11a6bf42e483b7644e471a2812b3/cryptography-46.0.7-cp314-cp314t-macosx_10_9_universal2.whl", hash = "sha256:d151173275e1728cf7839aaa80c34fe550c04ddb27b34f48c232193df8db5842", size = 7119671, upload_time = "2026-04-08T01:56:44Z" }, + { url = "https://files.pythonhosted.org/packages/74/66/e3ce040721b0b5599e175ba91ab08884c75928fbeb74597dd10ef13505d2/cryptography-46.0.7-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:db0f493b9181c7820c8134437eb8b0b4792085d37dbb24da050476ccb664e59c", size = 4268551, upload_time = "2026-04-08T01:56:46.071Z" }, + { url = "https://files.pythonhosted.org/packages/03/11/5e395f961d6868269835dee1bafec6a1ac176505a167f68b7d8818431068/cryptography-46.0.7-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ebd6daf519b9f189f85c479427bbd6e9c9037862cf8fe89ee35503bd209ed902", size = 4408887, upload_time = "2026-04-08T01:56:47.718Z" }, + { url = "https://files.pythonhosted.org/packages/40/53/8ed1cf4c3b9c8e611e7122fb56f1c32d09e1fff0f1d77e78d9ff7c82653e/cryptography-46.0.7-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:b7b412817be92117ec5ed95f880defe9cf18a832e8cafacf0a22337dc1981b4d", size = 4271354, upload_time = "2026-04-08T01:56:49.312Z" }, + { url = "https://files.pythonhosted.org/packages/50/46/cf71e26025c2e767c5609162c866a78e8a2915bbcfa408b7ca495c6140c4/cryptography-46.0.7-cp314-cp314t-manylinux_2_28_ppc64le.whl", hash = "sha256:fbfd0e5f273877695cb93baf14b185f4878128b250cc9f8e617ea0c025dfb022", size = 4905845, upload_time = "2026-04-08T01:56:50.916Z" }, + { url = "https://files.pythonhosted.org/packages/c0/ea/01276740375bac6249d0a971ebdf6b4dc9ead0ee0a34ef3b5a88c1a9b0d4/cryptography-46.0.7-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:ffca7aa1d00cf7d6469b988c581598f2259e46215e0140af408966a24cf086ce", size = 4444641, upload_time = "2026-04-08T01:56:52.882Z" }, + { url = "https://files.pythonhosted.org/packages/3d/4c/7d258f169ae71230f25d9f3d06caabcff8c3baf0978e2b7d65e0acac3827/cryptography-46.0.7-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:60627cf07e0d9274338521205899337c5d18249db56865f943cbe753aa96f40f", size = 3967749, upload_time = "2026-04-08T01:56:54.597Z" }, + { url = "https://files.pythonhosted.org/packages/b5/2a/2ea0767cad19e71b3530e4cad9605d0b5e338b6a1e72c37c9c1ceb86c333/cryptography-46.0.7-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:80406c3065e2c55d7f49a9550fe0c49b3f12e5bfff5dedb727e319e1afb9bf99", size = 4270942, upload_time = "2026-04-08T01:56:56.416Z" }, + { url = "https://files.pythonhosted.org/packages/41/3d/fe14df95a83319af25717677e956567a105bb6ab25641acaa093db79975d/cryptography-46.0.7-cp314-cp314t-manylinux_2_34_ppc64le.whl", hash = "sha256:c5b1ccd1239f48b7151a65bc6dd54bcfcc15e028c8ac126d3fada09db0e07ef1", size = 4871079, upload_time = "2026-04-08T01:56:58.31Z" }, + { url = "https://files.pythonhosted.org/packages/9c/59/4a479e0f36f8f378d397f4eab4c850b4ffb79a2f0d58704b8fa0703ddc11/cryptography-46.0.7-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:d5f7520159cd9c2154eb61eb67548ca05c5774d39e9c2c4339fd793fe7d097b2", size = 4443999, upload_time = "2026-04-08T01:57:00.508Z" }, + { url = "https://files.pythonhosted.org/packages/28/17/b59a741645822ec6d04732b43c5d35e4ef58be7bfa84a81e5ae6f05a1d33/cryptography-46.0.7-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:fcd8eac50d9138c1d7fc53a653ba60a2bee81a505f9f8850b6b2888555a45d0e", size = 4399191, upload_time = "2026-04-08T01:57:02.654Z" }, + { url = "https://files.pythonhosted.org/packages/59/6a/bb2e166d6d0e0955f1e9ff70f10ec4b2824c9cfcdb4da772c7dd69cc7d80/cryptography-46.0.7-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:65814c60f8cc400c63131584e3e1fad01235edba2614b61fbfbfa954082db0ee", size = 4655782, upload_time = "2026-04-08T01:57:04.592Z" }, + { url = "https://files.pythonhosted.org/packages/95/b6/3da51d48415bcb63b00dc17c2eff3a651b7c4fed484308d0f19b30e8cb2c/cryptography-46.0.7-cp314-cp314t-win32.whl", hash = "sha256:fdd1736fed309b4300346f88f74cd120c27c56852c3838cab416e7a166f67298", size = 3002227, upload_time = "2026-04-08T01:57:06.91Z" }, + { url = "https://files.pythonhosted.org/packages/32/a8/9f0e4ed57ec9cebe506e58db11ae472972ecb0c659e4d52bbaee80ca340a/cryptography-46.0.7-cp314-cp314t-win_amd64.whl", hash = "sha256:e06acf3c99be55aa3b516397fe42f5855597f430add9c17fa46bf2e0fb34c9bb", size = 3475332, upload_time = "2026-04-08T01:57:08.807Z" }, + { url = "https://files.pythonhosted.org/packages/a7/7f/cd42fc3614386bc0c12f0cb3c4ae1fc2bbca5c9662dfed031514911d513d/cryptography-46.0.7-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:462ad5cb1c148a22b2e3bcc5ad52504dff325d17daf5df8d88c17dda1f75f2a4", size = 7165618, upload_time = "2026-04-08T01:57:10.645Z" }, + { url = "https://files.pythonhosted.org/packages/a5/d0/36a49f0262d2319139d2829f773f1b97ef8aef7f97e6e5bd21455e5a8fb5/cryptography-46.0.7-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:84d4cced91f0f159a7ddacad249cc077e63195c36aac40b4150e7a57e84fffe7", size = 4270628, upload_time = "2026-04-08T01:57:12.885Z" }, + { url = "https://files.pythonhosted.org/packages/8a/6c/1a42450f464dda6ffbe578a911f773e54dd48c10f9895a23a7e88b3e7db5/cryptography-46.0.7-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:128c5edfe5e5938b86b03941e94fac9ee793a94452ad1365c9fc3f4f62216832", size = 4415405, upload_time = "2026-04-08T01:57:14.923Z" }, + { url = "https://files.pythonhosted.org/packages/9a/92/4ed714dbe93a066dc1f4b4581a464d2d7dbec9046f7c8b7016f5286329e2/cryptography-46.0.7-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:5e51be372b26ef4ba3de3c167cd3d1022934bc838ae9eaad7e644986d2a3d163", size = 4272715, upload_time = "2026-04-08T01:57:16.638Z" }, + { url = "https://files.pythonhosted.org/packages/b7/e6/a26b84096eddd51494bba19111f8fffe976f6a09f132706f8f1bf03f51f7/cryptography-46.0.7-cp38-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:cdf1a610ef82abb396451862739e3fc93b071c844399e15b90726ef7470eeaf2", size = 4918400, upload_time = "2026-04-08T01:57:19.021Z" }, + { url = "https://files.pythonhosted.org/packages/c7/08/ffd537b605568a148543ac3c2b239708ae0bd635064bab41359252ef88ed/cryptography-46.0.7-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:1d25aee46d0c6f1a501adcddb2d2fee4b979381346a78558ed13e50aa8a59067", size = 4450634, upload_time = "2026-04-08T01:57:21.185Z" }, + { url = "https://files.pythonhosted.org/packages/16/01/0cd51dd86ab5b9befe0d031e276510491976c3a80e9f6e31810cce46c4ad/cryptography-46.0.7-cp38-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:cdfbe22376065ffcf8be74dc9a909f032df19bc58a699456a21712d6e5eabfd0", size = 3985233, upload_time = "2026-04-08T01:57:22.862Z" }, + { url = "https://files.pythonhosted.org/packages/92/49/819d6ed3a7d9349c2939f81b500a738cb733ab62fbecdbc1e38e83d45e12/cryptography-46.0.7-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:abad9dac36cbf55de6eb49badd4016806b3165d396f64925bf2999bcb67837ba", size = 4271955, upload_time = "2026-04-08T01:57:24.814Z" }, + { url = "https://files.pythonhosted.org/packages/80/07/ad9b3c56ebb95ed2473d46df0847357e01583f4c52a85754d1a55e29e4d0/cryptography-46.0.7-cp38-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:935ce7e3cfdb53e3536119a542b839bb94ec1ad081013e9ab9b7cfd478b05006", size = 4879888, upload_time = "2026-04-08T01:57:26.88Z" }, + { url = "https://files.pythonhosted.org/packages/b8/c7/201d3d58f30c4c2bdbe9b03844c291feb77c20511cc3586daf7edc12a47b/cryptography-46.0.7-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:35719dc79d4730d30f1c2b6474bd6acda36ae2dfae1e3c16f2051f215df33ce0", size = 4449961, upload_time = "2026-04-08T01:57:29.068Z" }, + { url = "https://files.pythonhosted.org/packages/a5/ef/649750cbf96f3033c3c976e112265c33906f8e462291a33d77f90356548c/cryptography-46.0.7-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:7bbc6ccf49d05ac8f7d7b5e2e2c33830d4fe2061def88210a126d130d7f71a85", size = 4401696, upload_time = "2026-04-08T01:57:31.029Z" }, + { url = "https://files.pythonhosted.org/packages/41/52/a8908dcb1a389a459a29008c29966c1d552588d4ae6d43f3a1a4512e0ebe/cryptography-46.0.7-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a1529d614f44b863a7b480c6d000fe93b59acee9c82ffa027cfadc77521a9f5e", size = 4664256, upload_time = "2026-04-08T01:57:33.144Z" }, + { url = "https://files.pythonhosted.org/packages/4b/fa/f0ab06238e899cc3fb332623f337a7364f36f4bb3f2534c2bb95a35b132c/cryptography-46.0.7-cp38-abi3-win32.whl", hash = "sha256:f247c8c1a1fb45e12586afbb436ef21ff1e80670b2861a90353d9b025583d246", size = 3013001, upload_time = "2026-04-08T01:57:34.933Z" }, + { url = "https://files.pythonhosted.org/packages/d2/f1/00ce3bde3ca542d1acd8f8cfa38e446840945aa6363f9b74746394b14127/cryptography-46.0.7-cp38-abi3-win_amd64.whl", hash = "sha256:506c4ff91eff4f82bdac7633318a526b1d1309fc07ca76a3ad182cb5b686d6d3", size = 3472985, upload_time = "2026-04-08T01:57:36.714Z" }, +] + +[[package]] +name = "cyclopts" +version = "4.14.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "docstring-parser" }, + { name = "rich" }, + { name = "rich-rst" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/de/75/c7988cb0b90ab9d6728d4c444f09256cfdc97606c1638d8a8090eeb57f7e/cyclopts-4.14.1.tar.gz", hash = "sha256:5d01fc3a940a0e4e872a81ed533a10c1892b5baaa4121fe69528a2b8c17fc9d0", size = 177281, upload_time = "2026-05-19T19:49:22.312Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/22/1d/f6c80f82a42c69ff5a86c2580e789133de387d067210c7c46677618a2ca7/cyclopts-4.14.1-py3-none-any.whl", hash = "sha256:b705fdaa3277554a5da03e9bb5ff96a44d204a1afe3099f1b56e1586488bbfd4", size = 214925, upload_time = "2026-05-19T19:49:23.559Z" }, +] + +[[package]] +name = "dnspython" +version = "2.8.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8c/8b/57666417c0f90f08bcafa776861060426765fdb422eb10212086fb811d26/dnspython-2.8.0.tar.gz", hash = "sha256:181d3c6996452cb1189c4046c61599b84a5a86e099562ffde77d26984ff26d0f", size = 368251, upload_time = "2025-09-07T18:58:00.022Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ba/5a/18ad964b0086c6e62e2e7500f7edc89e3faa45033c71c1893d34eed2b2de/dnspython-2.8.0-py3-none-any.whl", hash = "sha256:01d9bbc4a2d76bf0db7c1f729812ded6d912bd318d3b1cf81d30c0f845dbf3af", size = 331094, upload_time = "2025-09-07T18:57:58.071Z" }, +] + +[[package]] +name = "docstring-parser" +version = "0.18.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e0/4d/f332313098c1de1b2d2ff91cf2674415cc7cddab2ca1b01ae29774bd5fdf/docstring_parser-0.18.0.tar.gz", hash = "sha256:292510982205c12b1248696f44959db3cdd1740237a968ea1e2e7a900eeb2015", size = 29341, upload_time = "2026-04-14T04:09:19.867Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a7/5f/ed01f9a3cdffbd5a008556fc7b2a08ddb1cc6ace7effa7340604b1d16699/docstring_parser-0.18.0-py3-none-any.whl", hash = "sha256:b3fcbed555c47d8479be0796ef7e19c2670d428d72e96da63f3a40122860374b", size = 22484, upload_time = "2026-04-14T04:09:18.638Z" }, +] + +[[package]] +name = "email-validator" +version = "2.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "dnspython" }, + { name = "idna" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f5/22/900cb125c76b7aaa450ce02fd727f452243f2e91a61af068b40adba60ea9/email_validator-2.3.0.tar.gz", hash = "sha256:9fc05c37f2f6cf439ff414f8fc46d917929974a82244c20eb10231ba60c54426", size = 51238, upload_time = "2025-08-26T13:09:06.831Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/de/15/545e2b6cf2e3be84bc1ed85613edd75b8aea69807a71c26f4ca6a9258e82/email_validator-2.3.0-py3-none-any.whl", hash = "sha256:80f13f623413e6b197ae73bb10bf4eb0908faf509ad8362c5edeb0be7fd450b4", size = 35604, upload_time = "2025-08-26T13:09:05.858Z" }, +] + +[[package]] +name = "exceptiongroup" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/50/79/66800aadf48771f6b62f7eb014e352e5d06856655206165d775e675a02c9/exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219", size = 30371, upload_time = "2025-11-21T23:01:54.787Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8a/0e/97c33bf5009bdbac74fd2beace167cab3f978feb69cc36f1ef79360d6c4e/exceptiongroup-1.3.1-py3-none-any.whl", hash = "sha256:a7a39a3bd276781e98394987d3a5701d0c4edffb633bb7a5144577f82c773598", size = 16740, upload_time = "2025-11-21T23:01:53.443Z" }, +] + +[[package]] +name = "fastmcp" +version = "3.4.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "fastmcp-slim", extra = ["client", "server"] }, +] +sdist = { url = "https://files.pythonhosted.org/packages/23/14/c1ffb91b7d1fece86c81e1f9df5474f30fd97e4cdaa398814bbbeee88568/fastmcp-3.4.5.tar.gz", hash = "sha256:a95f2bc876bef42e8b50f7872f24f3f2fe3b1d37408c734e8b9d9e03014b72d3", size = 28800521, upload_time = "2026-07-27T19:20:01.231Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c6/4f/73450a436c963c0382d15a882fc5d08f15aadc329194df1b54495a7c8383/fastmcp-3.4.5-py3-none-any.whl", hash = "sha256:5d3d438eb2917e63e6faf53e8cb8fe26d887ec3232f848093a4eecad7fa34861", size = 8017, upload_time = "2026-07-27T19:19:57.942Z" }, +] + +[[package]] +name = "fastmcp-slim" +version = "3.4.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "platformdirs" }, + { name = "pydantic", extra = ["email"] }, + { name = "pydantic-settings" }, + { name = "python-dotenv" }, + { name = "rich" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/81/1d/f3e271fbcd01ce01a4cf623b336d8e1305c192aa5d5e8e0223b7167462e9/fastmcp_slim-3.4.5.tar.gz", hash = "sha256:5badc3bceee61f61297eeb9494f499325f3ce1cafabf4611b31f6c3e9d7dff59", size = 591622, upload_time = "2026-07-27T19:15:19.455Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/43/3b/16d8aa8224094519f30b078138e725b8a731bf0a13f1f850e58b5f9b3cc4/fastmcp_slim-3.4.5-py3-none-any.whl", hash = "sha256:bc31217827c4999812543c83ee95ed9a47f3ed1e3fd0bd4f64371e375b748eca", size = 766478, upload_time = "2026-07-27T19:15:18.015Z" }, +] + +[package.optional-dependencies] +client = [ + { name = "authlib" }, + { name = "exceptiongroup" }, + { name = "httpx" }, + { name = "mcp" }, + { name = "opentelemetry-api" }, + { name = "py-key-value-aio", extra = ["filetree", "keyring", "memory"] }, + { name = "starlette" }, +] +server = [ + { name = "authlib" }, + { name = "cyclopts" }, + { name = "exceptiongroup" }, + { name = "griffelib" }, + { name = "httpx" }, + { name = "joserfc" }, + { name = "jsonref" }, + { name = "jsonschema-path" }, + { name = "mcp" }, + { name = "openapi-pydantic" }, + { name = "opentelemetry-api" }, + { name = "packaging" }, + { name = "py-key-value-aio", extra = ["filetree", "keyring", "memory"] }, + { name = "pyperclip" }, + { name = "python-multipart" }, + { name = "pyyaml" }, + { name = "starlette" }, + { name = "uncalled-for" }, + { name = "uvicorn" }, + { name = "watchfiles" }, + { name = "websockets" }, +] + +[[package]] +name = "griffelib" +version = "2.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9d/82/74f4a3310cdabfbb10da554c3a672847f1ed33c6f61dd472681ce7f1fe67/griffelib-2.0.2.tar.gz", hash = "sha256:3cf20b3bc470e83763ffbf236e0076b1211bac1bc67de13daf494640f2de707e", size = 166461, upload_time = "2026-03-27T11:34:51.091Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/11/8c/c9138d881c79aa0ea9ed83cbd58d5ca75624378b38cee225dcf5c42cc91f/griffelib-2.0.2-py3-none-any.whl", hash = "sha256:925c857658fb1ba40c0772c37acbc2ab650bd794d9c1b9726922e36ea4117ea1", size = 142357, upload_time = "2026-03-27T11:34:46.275Z" }, +] + +[[package]] +name = "h11" +version = "0.16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250, upload_time = "2025-04-24T03:35:25.427Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515, upload_time = "2025-04-24T03:35:24.344Z" }, +] + +[[package]] +name = "httpcore" +version = "1.0.9" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "h11" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8", size = 85484, upload_time = "2025-04-24T22:06:22.219Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55", size = 78784, upload_time = "2025-04-24T22:06:20.566Z" }, +] + +[[package]] +name = "httpx" +version = "0.28.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "certifi" }, + { name = "httpcore" }, + { name = "idna" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 141406, upload_time = "2024-12-06T15:37:23.222Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517, upload_time = "2024-12-06T15:37:21.509Z" }, +] + +[[package]] +name = "httpx-sse" +version = "0.4.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0f/4c/751061ffa58615a32c31b2d82e8482be8dd4a89154f003147acee90f2be9/httpx_sse-0.4.3.tar.gz", hash = "sha256:9b1ed0127459a66014aec3c56bebd93da3c1bc8bb6618c8082039a44889a755d", size = 15943, upload_time = "2025-10-10T21:48:22.271Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/fd/6668e5aec43ab844de6fc74927e155a3b37bf40d7c3790e49fc0406b6578/httpx_sse-0.4.3-py3-none-any.whl", hash = "sha256:0ac1c9fe3c0afad2e0ebb25a934a59f4c7823b60792691f779fad2c5568830fc", size = 8960, upload_time = "2025-10-10T21:48:21.158Z" }, +] + +[[package]] +name = "idna" +version = "3.15" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/82/77/7b3966d0b9d1d31a36ddf1746926a11dface89a83409bf1483f0237aa758/idna-3.15.tar.gz", hash = "sha256:ca962446ea538f7092a95e057da437618e886f4d349216d2b1e294abfdb65fdc", size = 199245, upload_time = "2026-05-12T22:45:57.011Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/23/408243171aa9aaba178d3e2559159c24c1171a641aa83b67bdd3394ead8e/idna-3.15-py3-none-any.whl", hash = "sha256:048adeaf8c2d788c40fee287673ccaa74c24ffd8dcf09ffa555a2fbb59f10ac8", size = 72340, upload_time = "2026-05-12T22:45:55.733Z" }, +] + +[[package]] +name = "iniconfig" +version = "2.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730", size = 20503, upload_time = "2025-10-18T21:55:43.219Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12", size = 7484, upload_time = "2025-10-18T21:55:41.639Z" }, +] + +[[package]] +name = "jaraco-classes" +version = "3.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "more-itertools" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/06/c0/ed4a27bc5571b99e3cff68f8a9fa5b56ff7df1c2251cc715a652ddd26402/jaraco.classes-3.4.0.tar.gz", hash = "sha256:47a024b51d0239c0dd8c8540c6c7f484be3b8fcf0b2d85c13825780d3b3f3acd", size = 11780, upload_time = "2024-03-31T07:27:36.643Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7f/66/b15ce62552d84bbfcec9a4873ab79d993a1dd4edb922cbfccae192bd5b5f/jaraco.classes-3.4.0-py3-none-any.whl", hash = "sha256:f662826b6bed8cace05e7ff873ce0f9283b5c924470fe664fff1c2f00f581790", size = 6777, upload_time = "2024-03-31T07:27:34.792Z" }, +] + +[[package]] +name = "jaraco-context" +version = "6.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/af/50/4763cd07e722bb6285316d390a164bc7e479db9d90daa769f22578f698b4/jaraco_context-6.1.2.tar.gz", hash = "sha256:f1a6c9d391e661cc5b8d39861ff077a7dc24dc23833ccee564b234b81c82dfe3", size = 16801, upload_time = "2026-03-20T22:13:33.922Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f2/58/bc8954bda5fcda97bd7c19be11b85f91973d67a706ed4a3aec33e7de22db/jaraco_context-6.1.2-py3-none-any.whl", hash = "sha256:bf8150b79a2d5d91ae48629d8b427a8f7ba0e1097dd6202a9059f29a36379535", size = 7871, upload_time = "2026-03-20T22:13:32.808Z" }, +] + +[[package]] +name = "jaraco-functools" +version = "4.5.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "more-itertools" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/36/cf/ea4ef2920830dea3f5ab2ea4da6fb67724e6dca80ee2553788c3607243d0/jaraco_functools-4.5.0.tar.gz", hash = "sha256:3bb5665ea4a020cf78a7040e89154c77edadb3ca74f366479669c5999aa70b03", size = 20272, upload_time = "2026-05-15T21:34:10.025Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/96/9a/982e48afcffcd727a9144506720ffd4224b6b7e355c98641866f38b7c043/jaraco_functools-4.5.0-py3-none-any.whl", hash = "sha256:79ce39246eddbde4b3a03b77ea5f0f7878dc669b166a66cf3fa8e266aa3fa2f4", size = 10594, upload_time = "2026-05-15T21:34:08.595Z" }, +] + +[[package]] +name = "jeepney" +version = "0.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7b/6f/357efd7602486741aa73ffc0617fb310a29b588ed0fd69c2399acbb85b0c/jeepney-0.9.0.tar.gz", hash = "sha256:cf0e9e845622b81e4a28df94c40345400256ec608d0e55bb8a3feaa9163f5732", size = 106758, upload_time = "2025-02-27T18:51:01.684Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b2/a3/e137168c9c44d18eff0376253da9f1e9234d0239e0ee230d2fee6cea8e55/jeepney-0.9.0-py3-none-any.whl", hash = "sha256:97e5714520c16fc0a45695e5365a2e11b81ea79bba796e26f9f1d178cb182683", size = 49010, upload_time = "2025-02-27T18:51:00.104Z" }, +] + +[[package]] +name = "joserfc" +version = "1.6.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3b/dc/5f768c2e391e9afabe5d18e3221346deb5fb6338565f1ccc9e7c6d7befdd/joserfc-1.6.5.tar.gz", hash = "sha256:1482a7db78fb4602e44ed89e51b599d052e091288c7c532c5b694e20149dec48", size = 231881, upload_time = "2026-05-06T04:58:13.408Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/54/3b/ad1cb22e75c963b1f07c8a2329bf47227ce7e4361df5eb2fb101b2ce33ef/joserfc-1.6.5-py3-none-any.whl", hash = "sha256:e9878a0f8243fe7b95e11fdda81374ca9f7a689e302751579d3dfdeec559675e", size = 70464, upload_time = "2026-05-06T04:58:11.668Z" }, +] + +[[package]] +name = "jsonref" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/aa/0d/c1f3277e90ccdb50d33ed5ba1ec5b3f0a242ed8c1b1a85d3afeb68464dca/jsonref-1.1.0.tar.gz", hash = "sha256:32fe8e1d85af0fdefbebce950af85590b22b60f9e95443176adbde4e1ecea552", size = 8814, upload_time = "2023-01-16T16:10:04.455Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0c/ec/e1db9922bceb168197a558a2b8c03a7963f1afe93517ddd3cf99f202f996/jsonref-1.1.0-py3-none-any.whl", hash = "sha256:590dc7773df6c21cbf948b5dac07a72a251db28b0238ceecce0a2abfa8ec30a9", size = 9425, upload_time = "2023-01-16T16:10:02.255Z" }, +] + +[[package]] +name = "jsonschema" +version = "4.26.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "jsonschema-specifications" }, + { name = "referencing" }, + { name = "rpds-py" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b3/fc/e067678238fa451312d4c62bf6e6cf5ec56375422aee02f9cb5f909b3047/jsonschema-4.26.0.tar.gz", hash = "sha256:0c26707e2efad8aa1bfc5b7ce170f3fccc2e4918ff85989ba9ffa9facb2be326", size = 366583, upload_time = "2026-01-07T13:41:07.246Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/69/90/f63fb5873511e014207a475e2bb4e8b2e570d655b00ac19a9a0ca0a385ee/jsonschema-4.26.0-py3-none-any.whl", hash = "sha256:d489f15263b8d200f8387e64b4c3a75f06629559fb73deb8fdfb525f2dab50ce", size = 90630, upload_time = "2026-01-07T13:41:05.306Z" }, +] + +[[package]] +name = "jsonschema-path" +version = "0.5.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "pathable" }, + { name = "pyyaml" }, + { name = "referencing" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/39/79/cd02a4df6d9270efdc7d3feefe6edd730b0820c39eeaa107a2faee8322d5/jsonschema_path-0.5.0.tar.gz", hash = "sha256:493b156ba895c97602655b620a8456caa2ce08c1aa389f5a7addec065e6e855c", size = 19597, upload_time = "2026-05-19T20:45:00.971Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/2c/9e69d73c4297508be9e3b64a970ea3971b3eb8db64ffc5802d40bd25981f/jsonschema_path-0.5.0-py3-none-any.whl", hash = "sha256:2790a070bc7abb08ea3dbe4d340ece4efadf639223001f020c7503229ba068e2", size = 24077, upload_time = "2026-05-19T20:44:59.225Z" }, +] + +[[package]] +name = "jsonschema-specifications" +version = "2025.9.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "referencing" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/19/74/a633ee74eb36c44aa6d1095e7cc5569bebf04342ee146178e2d36600708b/jsonschema_specifications-2025.9.1.tar.gz", hash = "sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d", size = 32855, upload_time = "2025-09-08T01:34:59.186Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl", hash = "sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe", size = 18437, upload_time = "2025-09-08T01:34:57.871Z" }, +] + +[[package]] +name = "keyring" +version = "25.7.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jaraco-classes" }, + { name = "jaraco-context" }, + { name = "jaraco-functools" }, + { name = "jeepney", marker = "sys_platform == 'linux'" }, + { name = "pywin32-ctypes", marker = "sys_platform == 'win32'" }, + { name = "secretstorage", marker = "sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/43/4b/674af6ef2f97d56f0ab5153bf0bfa28ccb6c3ed4d1babf4305449668807b/keyring-25.7.0.tar.gz", hash = "sha256:fe01bd85eb3f8fb3dd0405defdeac9a5b4f6f0439edbb3149577f244a2e8245b", size = 63516, upload_time = "2025-11-16T16:26:09.482Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/81/db/e655086b7f3a705df045bf0933bdd9c2f79bb3c97bfef1384598bb79a217/keyring-25.7.0-py3-none-any.whl", hash = "sha256:be4a0b195f149690c166e850609a477c532ddbfbaed96a404d4e43f8d5e2689f", size = 39160, upload_time = "2025-11-16T16:26:08.402Z" }, +] + +[[package]] +name = "markdown-it-py" +version = "4.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mdurl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/06/ff/7841249c247aa650a76b9ee4bbaeae59370dc8bfd2f6c01f3630c35eb134/markdown_it_py-4.2.0.tar.gz", hash = "sha256:04a21681d6fbb623de53f6f364d352309d4094dd4194040a10fd51833e418d49", size = 82454, upload_time = "2026-05-07T12:08:28.36Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b3/81/4da04ced5a082363ecfa159c010d200ecbd959ae410c10c0264a38cac0f5/markdown_it_py-4.2.0-py3-none-any.whl", hash = "sha256:9f7ebbcd14fe59494226453aed97c1070d83f8d24b6fc3a3bcf9a38092641c4a", size = 91687, upload_time = "2026-05-07T12:08:27.182Z" }, +] + +[[package]] +name = "mcp" +version = "1.27.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "httpx" }, + { name = "httpx-sse" }, + { name = "jsonschema" }, + { name = "pydantic" }, + { name = "pydantic-settings" }, + { name = "pyjwt", extra = ["crypto"] }, + { name = "python-multipart" }, + { name = "pywin32", marker = "sys_platform == 'win32'" }, + { name = "sse-starlette" }, + { name = "starlette" }, + { name = "typing-extensions" }, + { name = "typing-inspection" }, + { name = "uvicorn", marker = "sys_platform != 'emscripten'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/38/83/d1efe7c2980d8a3afa476f4e3d42d53dd54c0ab94c27bee5d755b45c8b73/mcp-1.27.1.tar.gz", hash = "sha256:0f47e1820f8f8f941466b39749eb1d1839a04caddca2bc60e9d46e8a99914924", size = 608458, upload_time = "2026-05-08T16:50:12.601Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fd/73/42d9596facebdb533b7f0b86c1b0364ef350d1f8ba78b1052e8a58b48b65/mcp-1.27.1-py3-none-any.whl", hash = "sha256:1af3c4203b329430fde7a87b4fcb6392a041f5cb851fd68fc674016ab4e7c06f", size = 216260, upload_time = "2026-05-08T16:50:10.547Z" }, +] + +[[package]] +name = "mdurl" +version = "0.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729, upload_time = "2022-08-14T12:40:10.846Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload_time = "2022-08-14T12:40:09.779Z" }, +] + +[[package]] +name = "more-itertools" +version = "11.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/f7/139d22fef48ac78127d18e01d80cf1be40236ae489769d17f35c3d425293/more_itertools-11.0.2.tar.gz", hash = "sha256:392a9e1e362cbc106a2457d37cabf9b36e5e12efd4ebff1654630e76597df804", size = 144659, upload_time = "2026-04-09T15:01:33.297Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/98/6af411189d9413534c3eb691182bff1f5c6d44ed2f93f2edfe52a1bbceb8/more_itertools-11.0.2-py3-none-any.whl", hash = "sha256:6e35b35f818b01f691643c6c611bc0902f2e92b46c18fffa77ae1e7c46e912e4", size = 71939, upload_time = "2026-04-09T15:01:32.21Z" }, +] + +[[package]] +name = "oci" +version = "2.182.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "crc32c" }, + { name = "cryptography" }, + { name = "pyjwt" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7e/55/1316c21a03ae3f84e0b3b73f7d6f0cefbe2ebac60de0771cc15f6e7c0036/oci-2.182.1.tar.gz", hash = "sha256:9862de221f2abe9cf8319393eec58ea59c014fd9b61afaf0a3cca163e2a508b0", size = 17635695, upload_time = "2026-07-21T05:22:52.992Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1b/49/b77ee6877540b07e48d6defb48fb444c3eafd7558473c70a43c7beeb0cd8/oci-2.182.1-py3-none-any.whl", hash = "sha256:0c616a6bc3bc458464bc3456469d8da63a1a2d2277e9314b41a1c4e76d5df523", size = 35985050, upload_time = "2026-07-21T05:22:42.379Z" }, +] + +[[package]] +name = "openapi-pydantic" +version = "0.5.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/02/2e/58d83848dd1a79cb92ed8e63f6ba901ca282c5f09d04af9423ec26c56fd7/openapi_pydantic-0.5.1.tar.gz", hash = "sha256:ff6835af6bde7a459fb93eb93bb92b8749b754fc6e51b2f1590a19dc3005ee0d", size = 60892, upload_time = "2025-01-08T19:29:27.083Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/12/cf/03675d8bd8ecbf4445504d8071adab19f5f993676795708e36402ab38263/openapi_pydantic-0.5.1-py3-none-any.whl", hash = "sha256:a3a09ef4586f5bd760a8df7f43028b60cafb6d9f61de2acba9574766255ab146", size = 96381, upload_time = "2025-01-08T19:29:25.275Z" }, +] + +[[package]] +name = "opentelemetry-api" +version = "1.42.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/86/ca/25288069c399be6769159d9fb7b1190b603537d82aad2fa2746a0cc2c8c6/opentelemetry_api-1.42.0.tar.gz", hash = "sha256:ea84c893ad177791d138e0349d6ceebd8d3bf006440900400ce220008dafc372", size = 72300, upload_time = "2026-05-19T09:46:29.885Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1b/0b/be5daf659b82b525338fde371dfcfab09b606a19bb5620c37076964710ec/opentelemetry_api-1.42.0-py3-none-any.whl", hash = "sha256:558d88f88192a973579910ef6f2c13db47a268d5ec2e53e83e50e74a39a02922", size = 61310, upload_time = "2026-05-19T09:46:06.561Z" }, +] + +[[package]] +name = "oracle-mcp-common" +version = "0.1.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "fastmcp" }, + { name = "oci" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/4d/6b/100af78875f52330c2818b6cc785dadfa974d4ce7eb6576e7917abd0e5f4/oracle_mcp_common-0.1.2.tar.gz", hash = "sha256:b01eceb3e17392bfcb65b589ba8f56f1f3fc9205a0498aba2eb79e89227d3ac8", size = 73783, upload_time = "2026-07-29T19:10:55.142Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/70/63/698ff36d71a2c58c4a2112ba2495490d2d978720a8b18894d1b831012864/oracle_mcp_common-0.1.2-py3-none-any.whl", hash = "sha256:7d476b54b962b721aadd1f2439bc117e244a87b4143fddef8f9defbbbfdb19b8", size = 11868, upload_time = "2026-07-29T19:10:53.99Z" }, +] + +[[package]] +name = "oracle-oci-db-observability-mcp-server" +version = "0.1.0" +source = { editable = "." } +dependencies = [ + { name = "fastmcp" }, + { name = "jsonschema" }, + { name = "oci" }, + { name = "oracle-mcp-common" }, + { name = "pydantic" }, +] + +[package.dev-dependencies] +dev = [ + { name = "openapi-pydantic" }, + { name = "pytest" }, + { name = "pytest-asyncio" }, + { name = "pytest-cov" }, + { name = "pyyaml" }, +] + +[package.metadata] +requires-dist = [ + { name = "fastmcp", specifier = "==3.4.5" }, + { name = "jsonschema", specifier = ">=4.25.0,<5.0.0" }, + { name = "oci", specifier = "==2.182.1" }, + { name = "oracle-mcp-common", specifier = ">=0.1.2,<0.2.0" }, + { name = "pydantic", specifier = "==2.13.4" }, +] + +[package.metadata.requires-dev] +dev = [ + { name = "openapi-pydantic", specifier = ">=0.5.1" }, + { name = "pytest", specifier = ">=9.0.3" }, + { name = "pytest-asyncio", specifier = ">=1.2.0" }, + { name = "pytest-cov", specifier = ">=7.0.0" }, + { name = "pyyaml", specifier = ">=6.0.3" }, +] + +[[package]] +name = "packaging" +version = "26.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d7/f1/e7a6dd94a8d4a5626c03e4e99c87f241ba9e350cd9e6d75123f992427270/packaging-26.2.tar.gz", hash = "sha256:ff452ff5a3e828ce110190feff1178bb1f2ea2281fa2075aadb987c2fb221661", size = 228134, upload_time = "2026-04-24T20:15:23.917Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl", hash = "sha256:5fc45236b9446107ff2415ce77c807cee2862cb6fac22b8a73826d0693b0980e", size = 100195, upload_time = "2026-04-24T20:15:22.081Z" }, +] + +[[package]] +name = "pathable" +version = "0.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/66/f3/5a20387de9bcd0607871bfc2198ee0e15836da7baa4592ccd7f24c27c986/pathable-0.6.0.tar.gz", hash = "sha256:6404b8b82aef5ff0fd478934137128b99b12212ba35afdde5525ca4f8388ea58", size = 18970, upload_time = "2026-05-19T18:15:11.911Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a2/e8/6d75ffd9784bce2e93d1ae4415649427e39a53bb172d4672b2b59c6f0a7b/pathable-0.6.0-py3-none-any.whl", hash = "sha256:82c4ca6c98c502ad12e0d4e9779b6210afee93c38990988c8c5d1b49bdcdf566", size = 18983, upload_time = "2026-05-19T18:15:10.728Z" }, +] + +[[package]] +name = "platformdirs" +version = "4.9.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9f/4a/0883b8e3802965322523f0b200ecf33d31f10991d0401162f4b23c698b42/platformdirs-4.9.6.tar.gz", hash = "sha256:3bfa75b0ad0db84096ae777218481852c0ebc6c727b3168c1b9e0118e458cf0a", size = 29400, upload_time = "2026-04-09T00:04:10.812Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/75/a6/a0a304dc33b49145b21f4808d763822111e67d1c3a32b524a1baf947b6e1/platformdirs-4.9.6-py3-none-any.whl", hash = "sha256:e61adb1d5e5cb3441b4b7710bea7e4c12250ca49439228cc1021c00dcfac0917", size = 21348, upload_time = "2026-04-09T00:04:09.463Z" }, +] + +[[package]] +name = "pluggy" +version = "1.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412, upload_time = "2025-05-15T12:30:07.975Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload_time = "2025-05-15T12:30:06.134Z" }, +] + +[[package]] +name = "py-key-value-aio" +version = "0.4.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "beartype" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/04/3c/0397c072a38d4bc580994b42e0c90c5f44f679303489e4376289534735e5/py_key_value_aio-0.4.4.tar.gz", hash = "sha256:e3012e6243ed7cc09bb05457bd4d03b1ba5c2b1ca8700096b3927db79ffbbe55", size = 92300, upload_time = "2026-02-16T21:21:43.245Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/32/69/f1b537ee70b7def42d63124a539ed3026a11a3ffc3086947a1ca6e861868/py_key_value_aio-0.4.4-py3-none-any.whl", hash = "sha256:18e17564ecae61b987f909fc2cd41ee2012c84b4b1dcb8c055cf8b4bc1bf3f5d", size = 152291, upload_time = "2026-02-16T21:21:44.241Z" }, +] + +[package.optional-dependencies] +filetree = [ + { name = "aiofile" }, + { name = "anyio" }, +] +keyring = [ + { name = "keyring" }, +] +memory = [ + { name = "cachetools" }, +] + +[[package]] +name = "pycparser" +version = "3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1b/7d/92392ff7815c21062bea51aa7b87d45576f649f16458d78b7cf94b9ab2e6/pycparser-3.0.tar.gz", hash = "sha256:600f49d217304a5902ac3c37e1281c9fe94e4d0489de643a9504c5cdfdfc6b29", size = 103492, upload_time = "2026-01-21T14:26:51.89Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0c/c3/44f3fbbfa403ea2a7c779186dc20772604442dde72947e7d01069cbe98e3/pycparser-3.0-py3-none-any.whl", hash = "sha256:b727414169a36b7d524c1c3e31839a521725078d7b2ff038656844266160a992", size = 48172, upload_time = "2026-01-21T14:26:50.693Z" }, +] + +[[package]] +name = "pydantic" +version = "2.13.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "annotated-types" }, + { name = "pydantic-core" }, + { name = "typing-extensions" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/18/a5/b60d21ac674192f8ab0ba4e9fd860690f9b4a6e51ca5df118733b487d8d6/pydantic-2.13.4.tar.gz", hash = "sha256:c40756b57adaa8b1efeeced5c196f3f3b7c435f90e84ea7f443901bec8099ef6", size = 844775, upload_time = "2026-05-06T13:43:05.343Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fd/7b/122376b1fd3c62c1ed9dc80c931ace4844b3c55407b6fb2d199377c9736f/pydantic-2.13.4-py3-none-any.whl", hash = "sha256:45a282cde31d808236fd7ea9d919b128653c8b38b393d1c4ab335c62924d9aba", size = 472262, upload_time = "2026-05-06T13:43:02.641Z" }, +] + +[package.optional-dependencies] +email = [ + { name = "email-validator" }, +] + +[[package]] +name = "pydantic-core" +version = "2.46.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9d/56/921726b776ace8d8f5db44c4ef961006580d91dc52b803c489fafd1aa249/pydantic_core-2.46.4.tar.gz", hash = "sha256:62f875393d7f270851f20523dd2e29f082bcc82292d66db2b64ea71f64b6e1c1", size = 471464, upload_time = "2026-05-06T13:37:06.98Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/51/a2/5d30b469c5267a17b39dec53208222f76a8d351dfac4af661888c5aee77d/pydantic_core-2.46.4-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:5d5902252db0d3cedf8d4a1bc68f70eeb430f7e4c7104c8c476753519b423008", size = 2106306, upload_time = "2026-05-06T13:37:48.029Z" }, + { url = "https://files.pythonhosted.org/packages/c1/81/4fa520eaffa8bd7d1525e644cd6d39e7d60b1592bc5b516693c7340b50f1/pydantic_core-2.46.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c94f0688e7b8d0a67abf40e57a7eaaecd17cc9586706a31b76c031f63df052b4", size = 1951906, upload_time = "2026-05-06T13:37:17.012Z" }, + { url = "https://files.pythonhosted.org/packages/03/d5/fd02da45b659668b05923b17ba3a0100a0a3d5541e3bd8fcc4ecb711309e/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f027324c56cd5406ca49c124b0db10e56c69064fec039acc571c29020cc87c76", size = 1976802, upload_time = "2026-05-06T13:37:35.113Z" }, + { url = "https://files.pythonhosted.org/packages/21/f2/95727e1368be3d3ed485eaab7adbd7dda408f33f7a36e8b48e0144002b91/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e739fee756ba1010f8bcccb534252e85a35fe45ae92c295a06059ce58b74ccd3", size = 2052446, upload_time = "2026-05-06T13:37:12.313Z" }, + { url = "https://files.pythonhosted.org/packages/9c/86/5d99feea3f77c7234b8718075b23db11532773c1a0dbd9b9490215dc2eeb/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9d56801be94b86a9da183e5f3766e6310752b99ff647e38b09a9500d88e46e76", size = 2232757, upload_time = "2026-05-06T13:39:01.149Z" }, + { url = "https://files.pythonhosted.org/packages/d2/3a/508ac615935ef7588cf6d9e9b91309fdc2da751af865e02a9098de88258c/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2412e734dcb48da14d4e4006b82b46b74f2518b8a26ee7e58c6844a6cd6d03c4", size = 2309275, upload_time = "2026-05-06T13:37:41.406Z" }, + { url = "https://files.pythonhosted.org/packages/07/f8/41db9de19d7987d6b04715a02b3b40aea467000275d9d758ffaa31af7d50/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9551187363ffc0de2a00b2e47c25aeaeb1020b69b668762966df15fc5659dd5a", size = 2094467, upload_time = "2026-05-06T13:39:18.847Z" }, + { url = "https://files.pythonhosted.org/packages/2c/e2/f35033184cb11d0052daf4416e8e10a502ea2ac006fc4f459aee872727d1/pydantic_core-2.46.4-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:0186750b482eefa11d7f435892b09c5c606193ef3375bcf94aa00ae6bfb66262", size = 2134417, upload_time = "2026-05-06T13:40:17.944Z" }, + { url = "https://files.pythonhosted.org/packages/7e/7b/6ceeb1cc90e193862f444ebe373d8fdf613f0a82572dde03fb10734c6c71/pydantic_core-2.46.4-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5855698a4856556d86e8e6cd8434bc3ac0314ee8e12089ae0e143f64c6256e4e", size = 2179782, upload_time = "2026-05-06T13:40:32.618Z" }, + { url = "https://files.pythonhosted.org/packages/5a/f2/c8d7773ede6af08036423a00ae0ceffce266c3c52a096c435d68c896083f/pydantic_core-2.46.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:cbaf13819775b7f769bf4a1f066cb6df7a28d4480081a589828ef190226881cd", size = 2188782, upload_time = "2026-05-06T13:36:51.018Z" }, + { url = "https://files.pythonhosted.org/packages/59/31/0c864784e31f09f05cdd87606f08923b9c9e7f6e51dd27f20f62f975ce9f/pydantic_core-2.46.4-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:633147d34cf4550417f12e2b1a0383973bdf5cdfde212cb09e9a581cf10820be", size = 2328334, upload_time = "2026-05-06T13:40:37.764Z" }, + { url = "https://files.pythonhosted.org/packages/c2/eb/4f6c8a41efa30baa755590f4141abf3a8c370fab610915733e74134a7270/pydantic_core-2.46.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:82cf5301172168103724d49a1444d3378cb20cdee30b116a1bd6031236298a5d", size = 2372986, upload_time = "2026-05-06T13:39:34.152Z" }, + { url = "https://files.pythonhosted.org/packages/5b/24/b375a480d53113860c299764bfe9f349a3dc9108b3adc0d7f0d786492ebf/pydantic_core-2.46.4-cp313-cp313-win32.whl", hash = "sha256:9fa8ae11da9e2b3126c6426f147e0fba88d96d65921799bb30c6abd1cb2c97fb", size = 1973693, upload_time = "2026-05-06T13:37:55.072Z" }, + { url = "https://files.pythonhosted.org/packages/7e/e8/cff247591966f2d22ec8c003cd7587e27b7ba7b81ab2fb888e3ab75dc285/pydantic_core-2.46.4-cp313-cp313-win_amd64.whl", hash = "sha256:6b3ace8194b0e5204818c92802dcdca7fc6d88aabbb799d7c795540d9cd6d292", size = 2071819, upload_time = "2026-05-06T13:38:49.139Z" }, + { url = "https://files.pythonhosted.org/packages/c6/1a/f4aee670d5670e9e148e0c82c7db98d780be566c6e6a97ee8035528ca0b3/pydantic_core-2.46.4-cp313-cp313-win_arm64.whl", hash = "sha256:184c081504d17f1c1066e430e117142b2c77d9448a97f7b65c6ac9fd9aee238d", size = 2027411, upload_time = "2026-05-06T13:40:45.796Z" }, + { url = "https://files.pythonhosted.org/packages/8d/74/228a26ddad29c6672b805d9fd78e8d251cd04004fa7eed0e622096cd0250/pydantic_core-2.46.4-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:428e04521a40150c85216fc8b85e8d39fece235a9cf5e383761238c7fa9b96fb", size = 2102079, upload_time = "2026-05-06T13:38:41.019Z" }, + { url = "https://files.pythonhosted.org/packages/ad/1f/8970b150a4b4365623ae00fc88603491f763c627311ae8031e3111356d6e/pydantic_core-2.46.4-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:23ace664830ee0bfe014a0c7bc248b1f7f25ed7ad103852c317624a1083af462", size = 1952179, upload_time = "2026-05-06T13:36:59.812Z" }, + { url = "https://files.pythonhosted.org/packages/95/30/5211a831ae054928054b2f79731661087a2bc5c01e825c672b3a4a8f1b3e/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce5c1d2a8b27468f433ca974829c44060b8097eedc39933e3c206a90ee49c4a9", size = 1978926, upload_time = "2026-05-06T13:37:39.933Z" }, + { url = "https://files.pythonhosted.org/packages/57/e9/689668733b1eb67adeef047db3c2e8788fcf65a7fd9c9e2b46b7744fe245/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7283d57845ecf5a163403eb0702dfc220cc4fbdd18919cb5ccea4f95ee1cdab4", size = 2046785, upload_time = "2026-05-06T13:38:01.995Z" }, + { url = "https://files.pythonhosted.org/packages/60/d9/6715260422ff50a2109878fd24d948a6c3446bb2664f34ee78cd972b3acd/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8daafc69c93ee8a0204506a3b6b30f586ef54028f52aeeeb5c4cfc5184fd5914", size = 2228733, upload_time = "2026-05-06T13:40:50.371Z" }, + { url = "https://files.pythonhosted.org/packages/18/ae/fdb2f64316afca925640f8e70bb1a564b0ec2721c1389e25b8eb4bf9a299/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd2213145bcc2ba85884d0ac63d222fece9209678f77b9b4d76f054c561adb28", size = 2307534, upload_time = "2026-05-06T13:37:21.531Z" }, + { url = "https://files.pythonhosted.org/packages/89/1d/8eff589b45bb8190a9d12c49cfad0f176a5cbd1534908a6b5125e2886239/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a5f930472650a82629163023e630d160863fce524c616f4e5186e5de9d9a49b", size = 2099732, upload_time = "2026-05-06T13:39:31.942Z" }, + { url = "https://files.pythonhosted.org/packages/06/d5/ee5a3366637fee41dee51a1fc91562dcf12ddbc68fda34e6b253da2324bb/pydantic_core-2.46.4-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:c1b3f518abeca3aa13c712fd202306e145abf59a18b094a6bafb2d2bbf59192c", size = 2129627, upload_time = "2026-05-06T13:37:25.033Z" }, + { url = "https://files.pythonhosted.org/packages/94/33/2414be571d2c6a6c4d08be21f9292b6d3fdb08949a97b6dfe985017821db/pydantic_core-2.46.4-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1a7dd0b3ee80d90150e3495a3a13ac34dbcbfd4f012996a6a1d8900e91b5c0fb", size = 2179141, upload_time = "2026-05-06T13:37:14.046Z" }, + { url = "https://files.pythonhosted.org/packages/7b/79/7daa95be995be0eecc4cf75064cb33f9bbbfe3fe0158caf2f0d4a996a5c7/pydantic_core-2.46.4-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:3fb702cd90b0446a3a1c5e470bfa0dd23c0233b676a9099ddcc964fa6ca13898", size = 2184325, upload_time = "2026-05-06T13:36:53.615Z" }, + { url = "https://files.pythonhosted.org/packages/9f/cb/d0a382f5c0de8a222dc61c65348e0ce831b1f68e0a018450d31c2cace3a5/pydantic_core-2.46.4-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:b8458003118a712e66286df6a707db01c52c0f52f7db8e4a38f0da1d3b94fc4e", size = 2323990, upload_time = "2026-05-06T13:40:29.971Z" }, + { url = "https://files.pythonhosted.org/packages/05/db/d9ba624cc4a5aced1598e88c04fdbd8310c8a69b9d38b9a3d39ce3a61ed7/pydantic_core-2.46.4-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:372429a130e469c9cd698925ce5fc50940b7a1336b0d82038e63d5bbc4edc519", size = 2369978, upload_time = "2026-05-06T13:37:23.027Z" }, + { url = "https://files.pythonhosted.org/packages/f2/20/d15df15ba918c423461905802bfd2981c3af0bfa0e40d05e13edbfa48bc3/pydantic_core-2.46.4-cp314-cp314-win32.whl", hash = "sha256:85bb3611ff1802f3ee7fdd7dbff26b56f343fb432d57a4728fdd49b6ef35e2f4", size = 1966354, upload_time = "2026-05-06T13:38:03.499Z" }, + { url = "https://files.pythonhosted.org/packages/fc/b6/6b8de4c0a7d7ab3004c439c80c5c1e0a3e8d78bbae19379b01960383d9e5/pydantic_core-2.46.4-cp314-cp314-win_amd64.whl", hash = "sha256:811ff8e9c313ab425368bcbb36e5c4ebd7108c2bbf4e4089cfbb0b01eff63fac", size = 2072238, upload_time = "2026-05-06T13:39:40.807Z" }, + { url = "https://files.pythonhosted.org/packages/32/36/51eb763beec1f4cf59b1db243a7dcc39cbb41230f050a09b9d69faaf0a48/pydantic_core-2.46.4-cp314-cp314-win_arm64.whl", hash = "sha256:bfec22eab3c8cc2ceec0248aec886624116dc079afa027ecc8ad4a7e62010f8a", size = 2018251, upload_time = "2026-05-06T13:37:26.72Z" }, + { url = "https://files.pythonhosted.org/packages/e8/91/855af51d625b23aa987116a19e231d2aaef9c4a415273ddc189b79a45fee/pydantic_core-2.46.4-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:af8244b2bef6aaad6d92cda81372de7f8c8d36c9f0c3ea36e827c60e7d9467a0", size = 2099593, upload_time = "2026-05-06T13:39:47.682Z" }, + { url = "https://files.pythonhosted.org/packages/fb/1b/8784a54c65edb5f49f0a14d6977cf1b209bba85a4c77445b255c2de58ab3/pydantic_core-2.46.4-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5a4330cdbc57162e4b3aa303f588ba752257694c9c9be3e7ebb11b4aca659b5d", size = 1935226, upload_time = "2026-05-06T13:40:40.428Z" }, + { url = "https://files.pythonhosted.org/packages/e8/e7/1955d28d1afc56dd4b3ad7cc0cf39df1b9852964cf16e5d13912756d6d6b/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:29c61fc04a3d840155ff08e475a04809278972fe6aef51e2720554e96367e34b", size = 1974605, upload_time = "2026-05-06T13:37:32.029Z" }, + { url = "https://files.pythonhosted.org/packages/93/e2/3fedbf0ba7a22850e6e9fd78117f1c0f10f950182344d8a6c535d468fdd8/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c50f2528cf200c5eed56faf3f4e22fcd5f38c157a8b78576e6ba3168ec35f000", size = 2030777, upload_time = "2026-05-06T13:38:55.239Z" }, + { url = "https://files.pythonhosted.org/packages/f8/61/46be275fcaaba0b4f5b9669dd852267ce1ff616592dccf7a7845588df091/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0cbe8b01f948de4286c74cdd6c667aceb38f5c1e26f0693b3983d9d74887c65e", size = 2236641, upload_time = "2026-05-06T13:37:08.096Z" }, + { url = "https://files.pythonhosted.org/packages/60/db/12e93e46a8bac9988be3c016860f83293daea8c716c029c9ace279036f2f/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:617d7e2ca7dcb8c5cf6bcb8c59b8832c94b36196bbf1cbd1bfb56ed341905edd", size = 2286404, upload_time = "2026-05-06T13:40:20.221Z" }, + { url = "https://files.pythonhosted.org/packages/e2/4a/4d8b19008f38d31c53b8219cfedc2e3d5de5fe99d90076b7e767de29274f/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7027560ee92211647d0d34e3f7cd6f50da56399d26a9c8ad0da286d3869a53f3", size = 2109219, upload_time = "2026-05-06T13:38:12.153Z" }, + { url = "https://files.pythonhosted.org/packages/88/70/3cbc40978fefb7bb09c6708d40d4ad1a5d70fd7213c3d17f971de868ec1f/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:f99626688942fb746e545232e7726926f3be91b5975f8b55327665fafda991c7", size = 2110594, upload_time = "2026-05-06T13:40:02.971Z" }, + { url = "https://files.pythonhosted.org/packages/9d/20/b8d36736216e29491125531685b2f9e61aa5b4b2599893f8268551da3338/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fc3e9034a63de20e15e8ade85358bc6efc614008cab72898b4b4952bea0509ff", size = 2159542, upload_time = "2026-05-06T13:39:27.506Z" }, + { url = "https://files.pythonhosted.org/packages/1d/a2/367df868eb584dacf6bf82a389272406d7178e301c4ac82545ab98bc2dd9/pydantic_core-2.46.4-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:97e7cf2be5c77b7d1a9713a05605d49460d02c6078d38d8bef3cbe323c548424", size = 2168146, upload_time = "2026-05-06T13:38:31.93Z" }, + { url = "https://files.pythonhosted.org/packages/c1/b8/4460f77f7e201893f649a29ab355dddd3beee8a97bcb1a320db414f9a06e/pydantic_core-2.46.4-cp314-cp314t-musllinux_1_1_armv7l.whl", hash = "sha256:3bf92c5d0e00fefaab325a4d27828fe6b6e2a21848686b5b60d2d9eeb09d76c6", size = 2306309, upload_time = "2026-05-06T13:37:44.717Z" }, + { url = "https://files.pythonhosted.org/packages/64/c4/be2639293acd87dc8ddbcec41a73cee9b2ebf996fe6d892a1a74e88ad3f7/pydantic_core-2.46.4-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:3ecbc122d18468d06ca279dc26a8c2e2d5acb10943bb35e36ae92096dc3b5565", size = 2369736, upload_time = "2026-05-06T13:37:05.645Z" }, + { url = "https://files.pythonhosted.org/packages/30/a6/9f9f380dbb301f67023bf8f707aaa75daadf84f7152d95c410fd7e81d994/pydantic_core-2.46.4-cp314-cp314t-win32.whl", hash = "sha256:e846ae7835bf0703ae43f534ab79a867146dadd59dc9ca5c8b53d5c8f7c9ef02", size = 1955575, upload_time = "2026-05-06T13:38:51.116Z" }, + { url = "https://files.pythonhosted.org/packages/40/1f/f1eb9eb350e795d1af8586289746f5c5677d16043040d63710e22abc43c9/pydantic_core-2.46.4-cp314-cp314t-win_amd64.whl", hash = "sha256:2108ba5c1c1eca18030634489dc544844144ee36357f2f9f780b93e7ddbb44b5", size = 2051624, upload_time = "2026-05-06T13:38:21.672Z" }, + { url = "https://files.pythonhosted.org/packages/f6/d2/42dd53d0a85c27606f316d3aa5d2869c4e8470a5ed6dec30e4a1abe19192/pydantic_core-2.46.4-cp314-cp314t-win_arm64.whl", hash = "sha256:4fcbe087dbc2068af7eda3aa87634eba216dbda64d1ae73c8684b621d33f6596", size = 2017325, upload_time = "2026-05-06T13:40:52.723Z" }, +] + +[[package]] +name = "pydantic-settings" +version = "2.14.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pydantic" }, + { name = "python-dotenv" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/07/60/1d1e59c9c90d54591469ada7d268251f71c24bdb765f1a8a832cee8c6653/pydantic_settings-2.14.1.tar.gz", hash = "sha256:e874d3bec7e787b0c9958277956ed9b4dd5de6a80e162188fdaff7c5e26fd5fa", size = 235551, upload_time = "2026-05-08T13:40:06.542Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/8d/f1af3832f5e6eb13ba94ee809e72b8ecb5eef226d27ee0bef7d963d943c7/pydantic_settings-2.14.1-py3-none-any.whl", hash = "sha256:6e3c7edfd8277687cdc598f56e5cff0e9bfff0910a3749deaa8d4401c3a2b9de", size = 60964, upload_time = "2026-05-08T13:40:04.958Z" }, +] + +[[package]] +name = "pygments" +version = "2.20.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c3/b2/bc9c9196916376152d655522fdcebac55e66de6603a76a02bca1b6414f6c/pygments-2.20.0.tar.gz", hash = "sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f", size = 4955991, upload_time = "2026-03-29T13:29:33.898Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl", hash = "sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176", size = 1231151, upload_time = "2026-03-29T13:29:30.038Z" }, +] + +[[package]] +name = "pyjwt" +version = "2.12.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c2/27/a3b6e5bf6ff856d2509292e95c8f57f0df7017cf5394921fc4e4ef40308a/pyjwt-2.12.1.tar.gz", hash = "sha256:c74a7a2adf861c04d002db713dd85f84beb242228e671280bf709d765b03672b", size = 102564, upload_time = "2026-03-13T19:27:37.25Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/7a/8dd906bd22e79e47397a61742927f6747fe93242ef86645ee9092e610244/pyjwt-2.12.1-py3-none-any.whl", hash = "sha256:28ca37c070cad8ba8cd9790cd940535d40274d22f80ab87f3ac6a713e6e8454c", size = 29726, upload_time = "2026-03-13T19:27:35.677Z" }, +] + +[package.optional-dependencies] +crypto = [ + { name = "cryptography" }, +] + +[[package]] +name = "pyopenssl" +version = "26.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1a/51/27a5ad5f939d08f690a326ef9582cda7140555180db71695f6fb747d6a36/pyopenssl-26.2.0.tar.gz", hash = "sha256:8c6fcecd1183a7fc897548dfe388b0cdb7f37e018200d8409cf33959dbe35387", size = 182195, upload_time = "2026-05-04T23:06:09.72Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/73/b8/a0e2790ae249d6f38c9f66de7a211621a7ab2650217bcd04e1262f578a56/pyopenssl-26.2.0-py3-none-any.whl", hash = "sha256:4f9d971bc5298b8bc1fab282803da04bf000c755d4ad9d99b52de2569ca19a70", size = 55823, upload_time = "2026-05-04T23:06:08.395Z" }, +] + +[[package]] +name = "pyperclip" +version = "1.11.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e8/52/d87eba7cb129b81563019d1679026e7a112ef76855d6159d24754dbd2a51/pyperclip-1.11.0.tar.gz", hash = "sha256:244035963e4428530d9e3a6101a1ef97209c6825edab1567beac148ccc1db1b6", size = 12185, upload_time = "2025-09-26T14:40:37.245Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/df/80/fc9d01d5ed37ba4c42ca2b55b4339ae6e200b456be3a1aaddf4a9fa99b8c/pyperclip-1.11.0-py3-none-any.whl", hash = "sha256:299403e9ff44581cb9ba2ffeed69c7aa96a008622ad0c46cb575ca75b5b84273", size = 11063, upload_time = "2025-09-26T14:40:36.069Z" }, +] + +[[package]] +name = "pytest" +version = "9.0.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "iniconfig" }, + { name = "packaging" }, + { name = "pluggy" }, + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7d/0d/549bd94f1a0a402dc8cf64563a117c0f3765662e2e668477624baeec44d5/pytest-9.0.3.tar.gz", hash = "sha256:b86ada508af81d19edeb213c681b1d48246c1a91d304c6c81a427674c17eb91c", size = 1572165, upload_time = "2026-04-07T17:16:18.027Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d4/24/a372aaf5c9b7208e7112038812994107bc65a84cd00e0354a88c2c77a617/pytest-9.0.3-py3-none-any.whl", hash = "sha256:2c5efc453d45394fdd706ade797c0a81091eccd1d6e4bccfcd476e2b8e0ab5d9", size = 375249, upload_time = "2026-04-07T17:16:16.13Z" }, +] + +[[package]] +name = "pytest-asyncio" +version = "1.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pytest" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/90/2c/8af215c0f776415f3590cac4f9086ccefd6fd463befeae41cd4d3f193e5a/pytest_asyncio-1.3.0.tar.gz", hash = "sha256:d7f52f36d231b80ee124cd216ffb19369aa168fc10095013c6b014a34d3ee9e5", size = 50087, upload_time = "2025-11-10T16:07:47.256Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/35/f8b19922b6a25bc0880171a2f1a003eaeb93657475193ab516fd87cac9da/pytest_asyncio-1.3.0-py3-none-any.whl", hash = "sha256:611e26147c7f77640e6d0a92a38ed17c3e9848063698d5c93d5aa7aa11cebff5", size = 15075, upload_time = "2025-11-10T16:07:45.537Z" }, +] + +[[package]] +name = "pytest-cov" +version = "7.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "coverage" }, + { name = "pluggy" }, + { name = "pytest" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b1/51/a849f96e117386044471c8ec2bd6cfebacda285da9525c9106aeb28da671/pytest_cov-7.1.0.tar.gz", hash = "sha256:30674f2b5f6351aa09702a9c8c364f6a01c27aae0c1366ae8016160d1efc56b2", size = 55592, upload_time = "2026-03-21T20:11:16.284Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9d/7a/d968e294073affff457b041c2be9868a40c1c71f4a35fcc1e45e5493067b/pytest_cov-7.1.0-py3-none-any.whl", hash = "sha256:a0461110b7865f9a271aa1b51e516c9a95de9d696734a2f71e3e78f46e1d4678", size = 22876, upload_time = "2026-03-21T20:11:14.438Z" }, +] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432, upload_time = "2024-03-01T18:36:20.211Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload_time = "2024-03-01T18:36:18.57Z" }, +] + +[[package]] +name = "python-dotenv" +version = "1.2.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/82/ed/0301aeeac3e5353ef3d94b6ec08bbcabd04a72018415dcb29e588514bba8/python_dotenv-1.2.2.tar.gz", hash = "sha256:2c371a91fbd7ba082c2c1dc1f8bf89ca22564a087c2c287cd9b662adde799cf3", size = 50135, upload_time = "2026-03-01T16:00:26.196Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl", hash = "sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a", size = 22101, upload_time = "2026-03-01T16:00:25.09Z" }, +] + +[[package]] +name = "python-multipart" +version = "0.0.29" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/4e/fe/70bd71a6738b09a0bdf6480ca6436b167469ca4578b2a0efbe390b4b0e70/python_multipart-0.0.29.tar.gz", hash = "sha256:643e93849196645e2dbdd81a0f8829a23123ad7f797a84a364c6fb3563f18904", size = 45678, upload_time = "2026-05-17T17:29:47.654Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8f/cb/769cfc37177252872a45a71f3fbdde9d51b471a3f3c14bfe95dde3407386/python_multipart-0.0.29-py3-none-any.whl", hash = "sha256:2ddcc971cef266225f54f552d8fa10bcfbb1f14446caec199060daac59ff2d69", size = 29640, upload_time = "2026-05-17T17:29:45.69Z" }, +] + +[[package]] +name = "pytz" +version = "2026.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ff/46/dd499ec9038423421951e4fad73051febaa13d2df82b4064f87af8b8c0c3/pytz-2026.2.tar.gz", hash = "sha256:0e60b47b29f21574376f218fe21abc009894a2321ea16c6754f3cad6eb7cdd6a", size = 320861, upload_time = "2026-05-04T01:35:29.667Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/dd/96da98f892250475bdf2328112d7468abdd4acc7b902b6af23f4ed958ea0/pytz-2026.2-py2.py3-none-any.whl", hash = "sha256:04156e608bee23d3792fd45c94ae47fae1036688e75032eea2e3bf0323d1f126", size = 510141, upload_time = "2026-05-04T01:35:27.408Z" }, +] + +[[package]] +name = "pywin32" +version = "311" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a5/be/3fd5de0979fcb3994bfee0d65ed8ca9506a8a1260651b86174f6a86f52b3/pywin32-311-cp313-cp313-win32.whl", hash = "sha256:f95ba5a847cba10dd8c4d8fefa9f2a6cf283b8b88ed6178fa8a6c1ab16054d0d", size = 8705700, upload_time = "2025-07-14T20:13:26.471Z" }, + { url = "https://files.pythonhosted.org/packages/e3/28/e0a1909523c6890208295a29e05c2adb2126364e289826c0a8bc7297bd5c/pywin32-311-cp313-cp313-win_amd64.whl", hash = "sha256:718a38f7e5b058e76aee1c56ddd06908116d35147e133427e59a3983f703a20d", size = 9494700, upload_time = "2025-07-14T20:13:28.243Z" }, + { url = "https://files.pythonhosted.org/packages/04/bf/90339ac0f55726dce7d794e6d79a18a91265bdf3aa70b6b9ca52f35e022a/pywin32-311-cp313-cp313-win_arm64.whl", hash = "sha256:7b4075d959648406202d92a2310cb990fea19b535c7f4a78d3f5e10b926eeb8a", size = 8709318, upload_time = "2025-07-14T20:13:30.348Z" }, + { url = "https://files.pythonhosted.org/packages/c9/31/097f2e132c4f16d99a22bfb777e0fd88bd8e1c634304e102f313af69ace5/pywin32-311-cp314-cp314-win32.whl", hash = "sha256:b7a2c10b93f8986666d0c803ee19b5990885872a7de910fc460f9b0c2fbf92ee", size = 8840714, upload_time = "2025-07-14T20:13:32.449Z" }, + { url = "https://files.pythonhosted.org/packages/90/4b/07c77d8ba0e01349358082713400435347df8426208171ce297da32c313d/pywin32-311-cp314-cp314-win_amd64.whl", hash = "sha256:3aca44c046bd2ed8c90de9cb8427f581c479e594e99b5c0bb19b29c10fd6cb87", size = 9656800, upload_time = "2025-07-14T20:13:34.312Z" }, + { url = "https://files.pythonhosted.org/packages/c0/d2/21af5c535501a7233e734b8af901574572da66fcc254cb35d0609c9080dd/pywin32-311-cp314-cp314-win_arm64.whl", hash = "sha256:a508e2d9025764a8270f93111a970e1d0fbfc33f4153b388bb649b7eec4f9b42", size = 8932540, upload_time = "2025-07-14T20:13:36.379Z" }, +] + +[[package]] +name = "pywin32-ctypes" +version = "0.2.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/85/9f/01a1a99704853cb63f253eea009390c88e7131c67e66a0a02099a8c917cb/pywin32-ctypes-0.2.3.tar.gz", hash = "sha256:d162dc04946d704503b2edc4d55f3dba5c1d539ead017afa00142c38b9885755", size = 29471, upload_time = "2024-08-14T10:15:34.626Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/de/3d/8161f7711c017e01ac9f008dfddd9410dff3674334c233bde66e7ba65bbf/pywin32_ctypes-0.2.3-py3-none-any.whl", hash = "sha256:8a1513379d709975552d202d942d9837758905c8d01eb82b8bcc30918929e7b8", size = 30756, upload_time = "2024-08-14T10:15:33.187Z" }, +] + +[[package]] +name = "pyyaml" +version = "6.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload_time = "2025-09-25T21:33:16.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/11/0fd08f8192109f7169db964b5707a2f1e8b745d4e239b784a5a1dd80d1db/pyyaml-6.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8", size = 181669, upload_time = "2025-09-25T21:32:23.673Z" }, + { url = "https://files.pythonhosted.org/packages/b1/16/95309993f1d3748cd644e02e38b75d50cbc0d9561d21f390a76242ce073f/pyyaml-6.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1", size = 173252, upload_time = "2025-09-25T21:32:25.149Z" }, + { url = "https://files.pythonhosted.org/packages/50/31/b20f376d3f810b9b2371e72ef5adb33879b25edb7a6d072cb7ca0c486398/pyyaml-6.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c", size = 767081, upload_time = "2025-09-25T21:32:26.575Z" }, + { url = "https://files.pythonhosted.org/packages/49/1e/a55ca81e949270d5d4432fbbd19dfea5321eda7c41a849d443dc92fd1ff7/pyyaml-6.0.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5", size = 841159, upload_time = "2025-09-25T21:32:27.727Z" }, + { url = "https://files.pythonhosted.org/packages/74/27/e5b8f34d02d9995b80abcef563ea1f8b56d20134d8f4e5e81733b1feceb2/pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6", size = 801626, upload_time = "2025-09-25T21:32:28.878Z" }, + { url = "https://files.pythonhosted.org/packages/f9/11/ba845c23988798f40e52ba45f34849aa8a1f2d4af4b798588010792ebad6/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6", size = 753613, upload_time = "2025-09-25T21:32:30.178Z" }, + { url = "https://files.pythonhosted.org/packages/3d/e0/7966e1a7bfc0a45bf0a7fb6b98ea03fc9b8d84fa7f2229e9659680b69ee3/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be", size = 794115, upload_time = "2025-09-25T21:32:31.353Z" }, + { url = "https://files.pythonhosted.org/packages/de/94/980b50a6531b3019e45ddeada0626d45fa85cbe22300844a7983285bed3b/pyyaml-6.0.3-cp313-cp313-win32.whl", hash = "sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26", size = 137427, upload_time = "2025-09-25T21:32:32.58Z" }, + { url = "https://files.pythonhosted.org/packages/97/c9/39d5b874e8b28845e4ec2202b5da735d0199dbe5b8fb85f91398814a9a46/pyyaml-6.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c", size = 154090, upload_time = "2025-09-25T21:32:33.659Z" }, + { url = "https://files.pythonhosted.org/packages/73/e8/2bdf3ca2090f68bb3d75b44da7bbc71843b19c9f2b9cb9b0f4ab7a5a4329/pyyaml-6.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb", size = 140246, upload_time = "2025-09-25T21:32:34.663Z" }, + { url = "https://files.pythonhosted.org/packages/9d/8c/f4bd7f6465179953d3ac9bc44ac1a8a3e6122cf8ada906b4f96c60172d43/pyyaml-6.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:8d1fab6bb153a416f9aeb4b8763bc0f22a5586065f86f7664fc23339fc1c1fac", size = 181814, upload_time = "2025-09-25T21:32:35.712Z" }, + { url = "https://files.pythonhosted.org/packages/bd/9c/4d95bb87eb2063d20db7b60faa3840c1b18025517ae857371c4dd55a6b3a/pyyaml-6.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:34d5fcd24b8445fadc33f9cf348c1047101756fd760b4dacb5c3e99755703310", size = 173809, upload_time = "2025-09-25T21:32:36.789Z" }, + { url = "https://files.pythonhosted.org/packages/92/b5/47e807c2623074914e29dabd16cbbdd4bf5e9b2db9f8090fa64411fc5382/pyyaml-6.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:501a031947e3a9025ed4405a168e6ef5ae3126c59f90ce0cd6f2bfc477be31b7", size = 766454, upload_time = "2025-09-25T21:32:37.966Z" }, + { url = "https://files.pythonhosted.org/packages/02/9e/e5e9b168be58564121efb3de6859c452fccde0ab093d8438905899a3a483/pyyaml-6.0.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b3bc83488de33889877a0f2543ade9f70c67d66d9ebb4ac959502e12de895788", size = 836355, upload_time = "2025-09-25T21:32:39.178Z" }, + { url = "https://files.pythonhosted.org/packages/88/f9/16491d7ed2a919954993e48aa941b200f38040928474c9e85ea9e64222c3/pyyaml-6.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c458b6d084f9b935061bc36216e8a69a7e293a2f1e68bf956dcd9e6cbcd143f5", size = 794175, upload_time = "2025-09-25T21:32:40.865Z" }, + { url = "https://files.pythonhosted.org/packages/dd/3f/5989debef34dc6397317802b527dbbafb2b4760878a53d4166579111411e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7c6610def4f163542a622a73fb39f534f8c101d690126992300bf3207eab9764", size = 755228, upload_time = "2025-09-25T21:32:42.084Z" }, + { url = "https://files.pythonhosted.org/packages/d7/ce/af88a49043cd2e265be63d083fc75b27b6ed062f5f9fd6cdc223ad62f03e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5190d403f121660ce8d1d2c1bb2ef1bd05b5f68533fc5c2ea899bd15f4399b35", size = 789194, upload_time = "2025-09-25T21:32:43.362Z" }, + { url = "https://files.pythonhosted.org/packages/23/20/bb6982b26a40bb43951265ba29d4c246ef0ff59c9fdcdf0ed04e0687de4d/pyyaml-6.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:4a2e8cebe2ff6ab7d1050ecd59c25d4c8bd7e6f400f5f82b96557ac0abafd0ac", size = 156429, upload_time = "2025-09-25T21:32:57.844Z" }, + { url = "https://files.pythonhosted.org/packages/f4/f4/a4541072bb9422c8a883ab55255f918fa378ecf083f5b85e87fc2b4eda1b/pyyaml-6.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:93dda82c9c22deb0a405ea4dc5f2d0cda384168e466364dec6255b293923b2f3", size = 143912, upload_time = "2025-09-25T21:32:59.247Z" }, + { url = "https://files.pythonhosted.org/packages/7c/f9/07dd09ae774e4616edf6cda684ee78f97777bdd15847253637a6f052a62f/pyyaml-6.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:02893d100e99e03eda1c8fd5c441d8c60103fd175728e23e431db1b589cf5ab3", size = 189108, upload_time = "2025-09-25T21:32:44.377Z" }, + { url = "https://files.pythonhosted.org/packages/4e/78/8d08c9fb7ce09ad8c38ad533c1191cf27f7ae1effe5bb9400a46d9437fcf/pyyaml-6.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c1ff362665ae507275af2853520967820d9124984e0f7466736aea23d8611fba", size = 183641, upload_time = "2025-09-25T21:32:45.407Z" }, + { url = "https://files.pythonhosted.org/packages/7b/5b/3babb19104a46945cf816d047db2788bcaf8c94527a805610b0289a01c6b/pyyaml-6.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6adc77889b628398debc7b65c073bcb99c4a0237b248cacaf3fe8a557563ef6c", size = 831901, upload_time = "2025-09-25T21:32:48.83Z" }, + { url = "https://files.pythonhosted.org/packages/8b/cc/dff0684d8dc44da4d22a13f35f073d558c268780ce3c6ba1b87055bb0b87/pyyaml-6.0.3-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a80cb027f6b349846a3bf6d73b5e95e782175e52f22108cfa17876aaeff93702", size = 861132, upload_time = "2025-09-25T21:32:50.149Z" }, + { url = "https://files.pythonhosted.org/packages/b1/5e/f77dc6b9036943e285ba76b49e118d9ea929885becb0a29ba8a7c75e29fe/pyyaml-6.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c", size = 839261, upload_time = "2025-09-25T21:32:51.808Z" }, + { url = "https://files.pythonhosted.org/packages/ce/88/a9db1376aa2a228197c58b37302f284b5617f56a5d959fd1763fb1675ce6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:66e1674c3ef6f541c35191caae2d429b967b99e02040f5ba928632d9a7f0f065", size = 805272, upload_time = "2025-09-25T21:32:52.941Z" }, + { url = "https://files.pythonhosted.org/packages/da/92/1446574745d74df0c92e6aa4a7b0b3130706a4142b2d1a5869f2eaa423c6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:16249ee61e95f858e83976573de0f5b2893b3677ba71c9dd36b9cf8be9ac6d65", size = 829923, upload_time = "2025-09-25T21:32:54.537Z" }, + { url = "https://files.pythonhosted.org/packages/f0/7a/1c7270340330e575b92f397352af856a8c06f230aa3e76f86b39d01b416a/pyyaml-6.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4ad1906908f2f5ae4e5a8ddfce73c320c2a1429ec52eafd27138b7f1cbe341c9", size = 174062, upload_time = "2025-09-25T21:32:55.767Z" }, + { url = "https://files.pythonhosted.org/packages/f1/12/de94a39c2ef588c7e6455cfbe7343d3b2dc9d6b6b2f40c4c6565744c873d/pyyaml-6.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b", size = 149341, upload_time = "2025-09-25T21:32:56.828Z" }, +] + +[[package]] +name = "referencing" +version = "0.37.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "rpds-py" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/22/f5/df4e9027acead3ecc63e50fe1e36aca1523e1719559c499951bb4b53188f/referencing-0.37.0.tar.gz", hash = "sha256:44aefc3142c5b842538163acb373e24cce6632bd54bdb01b21ad5863489f50d8", size = 78036, upload_time = "2025-10-13T15:30:48.871Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl", hash = "sha256:381329a9f99628c9069361716891d34ad94af76e461dcb0335825aecc7692231", size = 26766, upload_time = "2025-10-13T15:30:47.625Z" }, +] + +[[package]] +name = "rich" +version = "15.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markdown-it-py" }, + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c0/8f/0722ca900cc807c13a6a0c696dacf35430f72e0ec571c4275d2371fca3e9/rich-15.0.0.tar.gz", hash = "sha256:edd07a4824c6b40189fb7ac9bc4c52536e9780fbbfbddf6f1e2502c31b068c36", size = 230680, upload_time = "2026-04-12T08:24:00.75Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/82/3b/64d4899d73f91ba49a8c18a8ff3f0ea8f1c1d75481760df8c68ef5235bf5/rich-15.0.0-py3-none-any.whl", hash = "sha256:33bd4ef74232fb73fe9279a257718407f169c09b78a87ad3d296f548e27de0bb", size = 310654, upload_time = "2026-04-12T08:24:02.83Z" }, +] + +[[package]] +name = "rich-rst" +version = "2.0.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pygments" }, + { name = "rich" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/57/56/3191bae66b08ccc637ea8120426068bcb361cc323c96404c310886937067/rich_rst-2.0.1.tar.gz", hash = "sha256:cbe236ed0901d1ec8427cc6a50bf0a34353ba28ad014dc24def68bfe7f3b9e68", size = 300570, upload_time = "2026-05-16T00:47:57.362Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/3d/55c17d3ebdf3cd81356002afe5bef9bb8af631db2819785b6eac845b925b/rich_rst-2.0.1-py3-none-any.whl", hash = "sha256:7ee15f345ce25fa02b582c272a6cdbaf0c21243e38061cea273cff659bf3ef61", size = 272922, upload_time = "2026-05-16T00:47:55.508Z" }, +] + +[[package]] +name = "rpds-py" +version = "0.30.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/20/af/3f2f423103f1113b36230496629986e0ef7e199d2aa8392452b484b38ced/rpds_py-0.30.0.tar.gz", hash = "sha256:dd8ff7cf90014af0c0f787eea34794ebf6415242ee1d6fa91eaba725cc441e84", size = 69469, upload_time = "2025-11-30T20:24:38.837Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ed/dc/d61221eb88ff410de3c49143407f6f3147acf2538c86f2ab7ce65ae7d5f9/rpds_py-0.30.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:f83424d738204d9770830d35290ff3273fbb02b41f919870479fab14b9d303b2", size = 374887, upload_time = "2025-11-30T20:22:41.812Z" }, + { url = "https://files.pythonhosted.org/packages/fd/32/55fb50ae104061dbc564ef15cc43c013dc4a9f4527a1f4d99baddf56fe5f/rpds_py-0.30.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e7536cd91353c5273434b4e003cbda89034d67e7710eab8761fd918ec6c69cf8", size = 358904, upload_time = "2025-11-30T20:22:43.479Z" }, + { url = "https://files.pythonhosted.org/packages/58/70/faed8186300e3b9bdd138d0273109784eea2396c68458ed580f885dfe7ad/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2771c6c15973347f50fece41fc447c054b7ac2ae0502388ce3b6738cd366e3d4", size = 389945, upload_time = "2025-11-30T20:22:44.819Z" }, + { url = "https://files.pythonhosted.org/packages/bd/a8/073cac3ed2c6387df38f71296d002ab43496a96b92c823e76f46b8af0543/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0a59119fc6e3f460315fe9d08149f8102aa322299deaa5cab5b40092345c2136", size = 407783, upload_time = "2025-11-30T20:22:46.103Z" }, + { url = "https://files.pythonhosted.org/packages/77/57/5999eb8c58671f1c11eba084115e77a8899d6e694d2a18f69f0ba471ec8b/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:76fec018282b4ead0364022e3c54b60bf368b9d926877957a8624b58419169b7", size = 515021, upload_time = "2025-11-30T20:22:47.458Z" }, + { url = "https://files.pythonhosted.org/packages/e0/af/5ab4833eadc36c0a8ed2bc5c0de0493c04f6c06de223170bd0798ff98ced/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:692bef75a5525db97318e8cd061542b5a79812d711ea03dbc1f6f8dbb0c5f0d2", size = 414589, upload_time = "2025-11-30T20:22:48.872Z" }, + { url = "https://files.pythonhosted.org/packages/b7/de/f7192e12b21b9e9a68a6d0f249b4af3fdcdff8418be0767a627564afa1f1/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9027da1ce107104c50c81383cae773ef5c24d296dd11c99e2629dbd7967a20c6", size = 394025, upload_time = "2025-11-30T20:22:50.196Z" }, + { url = "https://files.pythonhosted.org/packages/91/c4/fc70cd0249496493500e7cc2de87504f5aa6509de1e88623431fec76d4b6/rpds_py-0.30.0-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:9cf69cdda1f5968a30a359aba2f7f9aa648a9ce4b580d6826437f2b291cfc86e", size = 408895, upload_time = "2025-11-30T20:22:51.87Z" }, + { url = "https://files.pythonhosted.org/packages/58/95/d9275b05ab96556fefff73a385813eb66032e4c99f411d0795372d9abcea/rpds_py-0.30.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a4796a717bf12b9da9d3ad002519a86063dcac8988b030e405704ef7d74d2d9d", size = 422799, upload_time = "2025-11-30T20:22:53.341Z" }, + { url = "https://files.pythonhosted.org/packages/06/c1/3088fc04b6624eb12a57eb814f0d4997a44b0d208d6cace713033ff1a6ba/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5d4c2aa7c50ad4728a094ebd5eb46c452e9cb7edbfdb18f9e1221f597a73e1e7", size = 572731, upload_time = "2025-11-30T20:22:54.778Z" }, + { url = "https://files.pythonhosted.org/packages/d8/42/c612a833183b39774e8ac8fecae81263a68b9583ee343db33ab571a7ce55/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ba81a9203d07805435eb06f536d95a266c21e5b2dfbf6517748ca40c98d19e31", size = 599027, upload_time = "2025-11-30T20:22:56.212Z" }, + { url = "https://files.pythonhosted.org/packages/5f/60/525a50f45b01d70005403ae0e25f43c0384369ad24ffe46e8d9068b50086/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:945dccface01af02675628334f7cf49c2af4c1c904748efc5cf7bbdf0b579f95", size = 563020, upload_time = "2025-11-30T20:22:58.2Z" }, + { url = "https://files.pythonhosted.org/packages/0b/5d/47c4655e9bcd5ca907148535c10e7d489044243cc9941c16ed7cd53be91d/rpds_py-0.30.0-cp313-cp313-win32.whl", hash = "sha256:b40fb160a2db369a194cb27943582b38f79fc4887291417685f3ad693c5a1d5d", size = 223139, upload_time = "2025-11-30T20:23:00.209Z" }, + { url = "https://files.pythonhosted.org/packages/f2/e1/485132437d20aa4d3e1d8b3fb5a5e65aa8139f1e097080c2a8443201742c/rpds_py-0.30.0-cp313-cp313-win_amd64.whl", hash = "sha256:806f36b1b605e2d6a72716f321f20036b9489d29c51c91f4dd29a3e3afb73b15", size = 240224, upload_time = "2025-11-30T20:23:02.008Z" }, + { url = "https://files.pythonhosted.org/packages/24/95/ffd128ed1146a153d928617b0ef673960130be0009c77d8fbf0abe306713/rpds_py-0.30.0-cp313-cp313-win_arm64.whl", hash = "sha256:d96c2086587c7c30d44f31f42eae4eac89b60dabbac18c7669be3700f13c3ce1", size = 230645, upload_time = "2025-11-30T20:23:03.43Z" }, + { url = "https://files.pythonhosted.org/packages/ff/1b/b10de890a0def2a319a2626334a7f0ae388215eb60914dbac8a3bae54435/rpds_py-0.30.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:eb0b93f2e5c2189ee831ee43f156ed34e2a89a78a66b98cadad955972548be5a", size = 364443, upload_time = "2025-11-30T20:23:04.878Z" }, + { url = "https://files.pythonhosted.org/packages/0d/bf/27e39f5971dc4f305a4fb9c672ca06f290f7c4e261c568f3dea16a410d47/rpds_py-0.30.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:922e10f31f303c7c920da8981051ff6d8c1a56207dbdf330d9047f6d30b70e5e", size = 353375, upload_time = "2025-11-30T20:23:06.342Z" }, + { url = "https://files.pythonhosted.org/packages/40/58/442ada3bba6e8e6615fc00483135c14a7538d2ffac30e2d933ccf6852232/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cdc62c8286ba9bf7f47befdcea13ea0e26bf294bda99758fd90535cbaf408000", size = 383850, upload_time = "2025-11-30T20:23:07.825Z" }, + { url = "https://files.pythonhosted.org/packages/14/14/f59b0127409a33c6ef6f5c1ebd5ad8e32d7861c9c7adfa9a624fc3889f6c/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:47f9a91efc418b54fb8190a6b4aa7813a23fb79c51f4bb84e418f5476c38b8db", size = 392812, upload_time = "2025-11-30T20:23:09.228Z" }, + { url = "https://files.pythonhosted.org/packages/b3/66/e0be3e162ac299b3a22527e8913767d869e6cc75c46bd844aa43fb81ab62/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1f3587eb9b17f3789ad50824084fa6f81921bbf9a795826570bda82cb3ed91f2", size = 517841, upload_time = "2025-11-30T20:23:11.186Z" }, + { url = "https://files.pythonhosted.org/packages/3d/55/fa3b9cf31d0c963ecf1ba777f7cf4b2a2c976795ac430d24a1f43d25a6ba/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:39c02563fc592411c2c61d26b6c5fe1e51eaa44a75aa2c8735ca88b0d9599daa", size = 408149, upload_time = "2025-11-30T20:23:12.864Z" }, + { url = "https://files.pythonhosted.org/packages/60/ca/780cf3b1a32b18c0f05c441958d3758f02544f1d613abf9488cd78876378/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51a1234d8febafdfd33a42d97da7a43f5dcb120c1060e352a3fbc0c6d36e2083", size = 383843, upload_time = "2025-11-30T20:23:14.638Z" }, + { url = "https://files.pythonhosted.org/packages/82/86/d5f2e04f2aa6247c613da0c1dd87fcd08fa17107e858193566048a1e2f0a/rpds_py-0.30.0-cp313-cp313t-manylinux_2_31_riscv64.whl", hash = "sha256:eb2c4071ab598733724c08221091e8d80e89064cd472819285a9ab0f24bcedb9", size = 396507, upload_time = "2025-11-30T20:23:16.105Z" }, + { url = "https://files.pythonhosted.org/packages/4b/9a/453255d2f769fe44e07ea9785c8347edaf867f7026872e76c1ad9f7bed92/rpds_py-0.30.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6bdfdb946967d816e6adf9a3d8201bfad269c67efe6cefd7093ef959683c8de0", size = 414949, upload_time = "2025-11-30T20:23:17.539Z" }, + { url = "https://files.pythonhosted.org/packages/a3/31/622a86cdc0c45d6df0e9ccb6becdba5074735e7033c20e401a6d9d0e2ca0/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c77afbd5f5250bf27bf516c7c4a016813eb2d3e116139aed0096940c5982da94", size = 565790, upload_time = "2025-11-30T20:23:19.029Z" }, + { url = "https://files.pythonhosted.org/packages/1c/5d/15bbf0fb4a3f58a3b1c67855ec1efcc4ceaef4e86644665fff03e1b66d8d/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:61046904275472a76c8c90c9ccee9013d70a6d0f73eecefd38c1ae7c39045a08", size = 590217, upload_time = "2025-11-30T20:23:20.885Z" }, + { url = "https://files.pythonhosted.org/packages/6d/61/21b8c41f68e60c8cc3b2e25644f0e3681926020f11d06ab0b78e3c6bbff1/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4c5f36a861bc4b7da6516dbdf302c55313afa09b81931e8280361a4f6c9a2d27", size = 555806, upload_time = "2025-11-30T20:23:22.488Z" }, + { url = "https://files.pythonhosted.org/packages/f9/39/7e067bb06c31de48de3eb200f9fc7c58982a4d3db44b07e73963e10d3be9/rpds_py-0.30.0-cp313-cp313t-win32.whl", hash = "sha256:3d4a69de7a3e50ffc214ae16d79d8fbb0922972da0356dcf4d0fdca2878559c6", size = 211341, upload_time = "2025-11-30T20:23:24.449Z" }, + { url = "https://files.pythonhosted.org/packages/0a/4d/222ef0b46443cf4cf46764d9c630f3fe4abaa7245be9417e56e9f52b8f65/rpds_py-0.30.0-cp313-cp313t-win_amd64.whl", hash = "sha256:f14fc5df50a716f7ece6a80b6c78bb35ea2ca47c499e422aa4463455dd96d56d", size = 225768, upload_time = "2025-11-30T20:23:25.908Z" }, + { url = "https://files.pythonhosted.org/packages/86/81/dad16382ebbd3d0e0328776d8fd7ca94220e4fa0798d1dc5e7da48cb3201/rpds_py-0.30.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:68f19c879420aa08f61203801423f6cd5ac5f0ac4ac82a2368a9fcd6a9a075e0", size = 362099, upload_time = "2025-11-30T20:23:27.316Z" }, + { url = "https://files.pythonhosted.org/packages/2b/60/19f7884db5d5603edf3c6bce35408f45ad3e97e10007df0e17dd57af18f8/rpds_py-0.30.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:ec7c4490c672c1a0389d319b3a9cfcd098dcdc4783991553c332a15acf7249be", size = 353192, upload_time = "2025-11-30T20:23:29.151Z" }, + { url = "https://files.pythonhosted.org/packages/bf/c4/76eb0e1e72d1a9c4703c69607cec123c29028bff28ce41588792417098ac/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f251c812357a3fed308d684a5079ddfb9d933860fc6de89f2b7ab00da481e65f", size = 384080, upload_time = "2025-11-30T20:23:30.785Z" }, + { url = "https://files.pythonhosted.org/packages/72/87/87ea665e92f3298d1b26d78814721dc39ed8d2c74b86e83348d6b48a6f31/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ac98b175585ecf4c0348fd7b29c3864bda53b805c773cbf7bfdaffc8070c976f", size = 394841, upload_time = "2025-11-30T20:23:32.209Z" }, + { url = "https://files.pythonhosted.org/packages/77/ad/7783a89ca0587c15dcbf139b4a8364a872a25f861bdb88ed99f9b0dec985/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3e62880792319dbeb7eb866547f2e35973289e7d5696c6e295476448f5b63c87", size = 516670, upload_time = "2025-11-30T20:23:33.742Z" }, + { url = "https://files.pythonhosted.org/packages/5b/3c/2882bdac942bd2172f3da574eab16f309ae10a3925644e969536553cb4ee/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4e7fc54e0900ab35d041b0601431b0a0eb495f0851a0639b6ef90f7741b39a18", size = 408005, upload_time = "2025-11-30T20:23:35.253Z" }, + { url = "https://files.pythonhosted.org/packages/ce/81/9a91c0111ce1758c92516a3e44776920b579d9a7c09b2b06b642d4de3f0f/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47e77dc9822d3ad616c3d5759ea5631a75e5809d5a28707744ef79d7a1bcfcad", size = 382112, upload_time = "2025-11-30T20:23:36.842Z" }, + { url = "https://files.pythonhosted.org/packages/cf/8e/1da49d4a107027e5fbc64daeab96a0706361a2918da10cb41769244b805d/rpds_py-0.30.0-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:b4dc1a6ff022ff85ecafef7979a2c6eb423430e05f1165d6688234e62ba99a07", size = 399049, upload_time = "2025-11-30T20:23:38.343Z" }, + { url = "https://files.pythonhosted.org/packages/df/5a/7ee239b1aa48a127570ec03becbb29c9d5a9eb092febbd1699d567cae859/rpds_py-0.30.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4559c972db3a360808309e06a74628b95eaccbf961c335c8fe0d590cf587456f", size = 415661, upload_time = "2025-11-30T20:23:40.263Z" }, + { url = "https://files.pythonhosted.org/packages/70/ea/caa143cf6b772f823bc7929a45da1fa83569ee49b11d18d0ada7f5ee6fd6/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:0ed177ed9bded28f8deb6ab40c183cd1192aa0de40c12f38be4d59cd33cb5c65", size = 565606, upload_time = "2025-11-30T20:23:42.186Z" }, + { url = "https://files.pythonhosted.org/packages/64/91/ac20ba2d69303f961ad8cf55bf7dbdb4763f627291ba3d0d7d67333cced9/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:ad1fa8db769b76ea911cb4e10f049d80bf518c104f15b3edb2371cc65375c46f", size = 591126, upload_time = "2025-11-30T20:23:44.086Z" }, + { url = "https://files.pythonhosted.org/packages/21/20/7ff5f3c8b00c8a95f75985128c26ba44503fb35b8e0259d812766ea966c7/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:46e83c697b1f1c72b50e5ee5adb4353eef7406fb3f2043d64c33f20ad1c2fc53", size = 553371, upload_time = "2025-11-30T20:23:46.004Z" }, + { url = "https://files.pythonhosted.org/packages/72/c7/81dadd7b27c8ee391c132a6b192111ca58d866577ce2d9b0ca157552cce0/rpds_py-0.30.0-cp314-cp314-win32.whl", hash = "sha256:ee454b2a007d57363c2dfd5b6ca4a5d7e2c518938f8ed3b706e37e5d470801ed", size = 215298, upload_time = "2025-11-30T20:23:47.696Z" }, + { url = "https://files.pythonhosted.org/packages/3e/d2/1aaac33287e8cfb07aab2e6b8ac1deca62f6f65411344f1433c55e6f3eb8/rpds_py-0.30.0-cp314-cp314-win_amd64.whl", hash = "sha256:95f0802447ac2d10bcc69f6dc28fe95fdf17940367b21d34e34c737870758950", size = 228604, upload_time = "2025-11-30T20:23:49.501Z" }, + { url = "https://files.pythonhosted.org/packages/e8/95/ab005315818cc519ad074cb7784dae60d939163108bd2b394e60dc7b5461/rpds_py-0.30.0-cp314-cp314-win_arm64.whl", hash = "sha256:613aa4771c99f03346e54c3f038e4cc574ac09a3ddfb0e8878487335e96dead6", size = 222391, upload_time = "2025-11-30T20:23:50.96Z" }, + { url = "https://files.pythonhosted.org/packages/9e/68/154fe0194d83b973cdedcdcc88947a2752411165930182ae41d983dcefa6/rpds_py-0.30.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:7e6ecfcb62edfd632e56983964e6884851786443739dbfe3582947e87274f7cb", size = 364868, upload_time = "2025-11-30T20:23:52.494Z" }, + { url = "https://files.pythonhosted.org/packages/83/69/8bbc8b07ec854d92a8b75668c24d2abcb1719ebf890f5604c61c9369a16f/rpds_py-0.30.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:a1d0bc22a7cdc173fedebb73ef81e07faef93692b8c1ad3733b67e31e1b6e1b8", size = 353747, upload_time = "2025-11-30T20:23:54.036Z" }, + { url = "https://files.pythonhosted.org/packages/ab/00/ba2e50183dbd9abcce9497fa5149c62b4ff3e22d338a30d690f9af970561/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d08f00679177226c4cb8c5265012eea897c8ca3b93f429e546600c971bcbae7", size = 383795, upload_time = "2025-11-30T20:23:55.556Z" }, + { url = "https://files.pythonhosted.org/packages/05/6f/86f0272b84926bcb0e4c972262f54223e8ecc556b3224d281e6598fc9268/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5965af57d5848192c13534f90f9dd16464f3c37aaf166cc1da1cae1fd5a34898", size = 393330, upload_time = "2025-11-30T20:23:57.033Z" }, + { url = "https://files.pythonhosted.org/packages/cb/e9/0e02bb2e6dc63d212641da45df2b0bf29699d01715913e0d0f017ee29438/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9a4e86e34e9ab6b667c27f3211ca48f73dba7cd3d90f8d5b11be56e5dbc3fb4e", size = 518194, upload_time = "2025-11-30T20:23:58.637Z" }, + { url = "https://files.pythonhosted.org/packages/ee/ca/be7bca14cf21513bdf9c0606aba17d1f389ea2b6987035eb4f62bd923f25/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5d3e6b26f2c785d65cc25ef1e5267ccbe1b069c5c21b8cc724efee290554419", size = 408340, upload_time = "2025-11-30T20:24:00.2Z" }, + { url = "https://files.pythonhosted.org/packages/c2/c7/736e00ebf39ed81d75544c0da6ef7b0998f8201b369acf842f9a90dc8fce/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:626a7433c34566535b6e56a1b39a7b17ba961e97ce3b80ec62e6f1312c025551", size = 383765, upload_time = "2025-11-30T20:24:01.759Z" }, + { url = "https://files.pythonhosted.org/packages/4a/3f/da50dfde9956aaf365c4adc9533b100008ed31aea635f2b8d7b627e25b49/rpds_py-0.30.0-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:acd7eb3f4471577b9b5a41baf02a978e8bdeb08b4b355273994f8b87032000a8", size = 396834, upload_time = "2025-11-30T20:24:03.687Z" }, + { url = "https://files.pythonhosted.org/packages/4e/00/34bcc2565b6020eab2623349efbdec810676ad571995911f1abdae62a3a0/rpds_py-0.30.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fe5fa731a1fa8a0a56b0977413f8cacac1768dad38d16b3a296712709476fbd5", size = 415470, upload_time = "2025-11-30T20:24:05.232Z" }, + { url = "https://files.pythonhosted.org/packages/8c/28/882e72b5b3e6f718d5453bd4d0d9cf8df36fddeb4ddbbab17869d5868616/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:74a3243a411126362712ee1524dfc90c650a503502f135d54d1b352bd01f2404", size = 565630, upload_time = "2025-11-30T20:24:06.878Z" }, + { url = "https://files.pythonhosted.org/packages/3b/97/04a65539c17692de5b85c6e293520fd01317fd878ea1995f0367d4532fb1/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:3e8eeb0544f2eb0d2581774be4c3410356eba189529a6b3e36bbbf9696175856", size = 591148, upload_time = "2025-11-30T20:24:08.445Z" }, + { url = "https://files.pythonhosted.org/packages/85/70/92482ccffb96f5441aab93e26c4d66489eb599efdcf96fad90c14bbfb976/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:dbd936cde57abfee19ab3213cf9c26be06d60750e60a8e4dd85d1ab12c8b1f40", size = 556030, upload_time = "2025-11-30T20:24:10.956Z" }, + { url = "https://files.pythonhosted.org/packages/20/53/7c7e784abfa500a2b6b583b147ee4bb5a2b3747a9166bab52fec4b5b5e7d/rpds_py-0.30.0-cp314-cp314t-win32.whl", hash = "sha256:dc824125c72246d924f7f796b4f63c1e9dc810c7d9e2355864b3c3a73d59ade0", size = 211570, upload_time = "2025-11-30T20:24:12.735Z" }, + { url = "https://files.pythonhosted.org/packages/d0/02/fa464cdfbe6b26e0600b62c528b72d8608f5cc49f96b8d6e38c95d60c676/rpds_py-0.30.0-cp314-cp314t-win_amd64.whl", hash = "sha256:27f4b0e92de5bfbc6f86e43959e6edd1425c33b5e69aab0984a72047f2bcf1e3", size = 226532, upload_time = "2025-11-30T20:24:14.634Z" }, +] + +[[package]] +name = "secretstorage" +version = "3.5.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "jeepney" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1c/03/e834bcd866f2f8a49a85eaff47340affa3bfa391ee9912a952a1faa68c7b/secretstorage-3.5.0.tar.gz", hash = "sha256:f04b8e4689cbce351744d5537bf6b1329c6fc68f91fa666f60a380edddcd11be", size = 19884, upload_time = "2025-11-23T19:02:53.191Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/46/f5af3402b579fd5e11573ce652019a67074317e18c1935cc0b4ba9b35552/secretstorage-3.5.0-py3-none-any.whl", hash = "sha256:0ce65888c0725fcb2c5bc0fdb8e5438eece02c523557ea40ce0703c266248137", size = 15554, upload_time = "2025-11-23T19:02:51.545Z" }, +] + +[[package]] +name = "six" +version = "1.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload_time = "2024-12-04T17:35:28.174Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload_time = "2024-12-04T17:35:26.475Z" }, +] + +[[package]] +name = "sse-starlette" +version = "3.4.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "starlette" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/2b/58abc2d1fd397e7dde08e947e05c884d8ef2f78d5e2588c17a12d42d6994/sse_starlette-3.4.4.tar.gz", hash = "sha256:07e0fa0460138baf25cdd5fb28683472c3995dc1642225191b3832d62526bcb0", size = 31819, upload_time = "2026-05-12T17:37:17.019Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/dc/67/805710444ea8cc75fbf70b920ed431a560c4bf9c57f7d5a3117213189399/sse_starlette-3.4.4-py3-none-any.whl", hash = "sha256:3f4dd50d8aed2771a091f3a83000323fc3844541c16b4fe585ae2420cc6df973", size = 16514, upload_time = "2026-05-12T17:37:15.601Z" }, +] + +[[package]] +name = "starlette" +version = "1.4.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0f/3c/76d2fd1f1357ed0f0108d8a5aa233dcf16e2946a8559c84912fe08e01ac7/starlette-1.4.1.tar.gz", hash = "sha256:b7332de6e9375593a29ba9eee1e6ecfeb3eb2043e2e19a13b4b71da73ff35540", size = 2709041, upload_time = "2026-08-05T15:17:26.23Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/75/0a/67e95f21498de41433babf7b1db0eeab449eb58872dfb831b27747a70fd0/starlette-1.4.1-py3-none-any.whl", hash = "sha256:7d078e0fbefae0d2cecfb80a799d6fb84b1c0c6acd4f14ac79d17d0e7ec27f19", size = 74019, upload_time = "2026-08-05T15:17:24.357Z" }, +] + +[[package]] +name = "typing-extensions" +version = "4.15.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload_time = "2025-08-25T13:49:26.313Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload_time = "2025-08-25T13:49:24.86Z" }, +] + +[[package]] +name = "typing-inspection" +version = "0.4.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/55/e3/70399cb7dd41c10ac53367ae42139cf4b1ca5f36bb3dc6c9d33acdb43655/typing_inspection-0.4.2.tar.gz", hash = "sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464", size = 75949, upload_time = "2025-10-01T02:14:41.687Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl", hash = "sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7", size = 14611, upload_time = "2025-10-01T02:14:40.154Z" }, +] + +[[package]] +name = "uncalled-for" +version = "0.3.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b5/82/345cc927f7fbdae6065e7768759932fcc827fc20b29b45dfbafa2f1f7da4/uncalled_for-0.3.2.tar.gz", hash = "sha256:89f5dbcd71e2b8f47c030b1fa302e6cce2ec795d1ac565eeb6525c5fe55cb8a2", size = 50032, upload_time = "2026-05-06T13:38:25.204Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3b/25/2c87754f3a9e692315f7b811244090e68f362979fc8886b3fbd2985a1d8c/uncalled_for-0.3.2-py3-none-any.whl", hash = "sha256:0ff60b142c7d1f8070bde9d42afaa70aedc77dcc10998c227687e9c15713418e", size = 11444, upload_time = "2026-05-06T13:38:24.025Z" }, +] + +[[package]] +name = "urllib3" +version = "2.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/53/0c/06f8b233b8fd13b9e5ee11424ef85419ba0d8ba0b3138bf360be2ff56953/urllib3-2.7.0.tar.gz", hash = "sha256:231e0ec3b63ceb14667c67be60f2f2c40a518cb38b03af60abc813da26505f4c", size = 433602, upload_time = "2026-05-07T16:13:18.596Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7f/3e/5db95bcf282c52709639744ca2a8b149baccf648e39c8cc87553df9eae0c/urllib3-2.7.0-py3-none-any.whl", hash = "sha256:9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897", size = 131087, upload_time = "2026-05-07T16:13:17.151Z" }, +] + +[[package]] +name = "uvicorn" +version = "0.47.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "h11" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f6/b1/8e7077a8641086aea449e1b5752a570f1b5906c64e0a33cd6d93b63a066b/uvicorn-0.47.0.tar.gz", hash = "sha256:7c9a0ea1a9414106bbab7324609c162d8fa0cdcdcb703060987269d77c7bb533", size = 90582, upload_time = "2026-05-14T18:16:54.455Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/15/41/ac2dfdbc1f60c7af4f994c7a335cfa7040c01642b605d65f611cecc2a1e4/uvicorn-0.47.0-py3-none-any.whl", hash = "sha256:2c5715bc12d1892d84752049f400cd1c3cb018514967fdfeb97640443a6a9432", size = 71301, upload_time = "2026-05-14T18:16:51.762Z" }, +] + +[[package]] +name = "watchfiles" +version = "1.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/cd/41/5e1a4bb12aac5f1493fa1bdc11154eca3b258ca4eba65d39c473fe19d8e9/watchfiles-1.2.0.tar.gz", hash = "sha256:c995fba777f1ea992f090f9236e9284cf7a5d1a0130dd5a3d82c598cacd76838", size = 108252, upload_time = "2026-05-18T04:32:04.251Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/4d/70a7feced9f87e2ff26dba42667290f41694fc64646c67261fbb8cab5d5c/watchfiles-1.2.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:01ea8d66f0693b9b60a6541c8d10263091ca9a9060d242f3c1f3143f9aad2c98", size = 399730, upload_time = "2026-05-18T04:31:38.162Z" }, + { url = "https://files.pythonhosted.org/packages/31/3a/0da302f2307aee316922806ebd5726c542cbd787c938271cf14a074c7daf/watchfiles-1.2.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7ba0480b9a74af058f43b337e937a451e109295c420916d68ad24e3dc02f5e44", size = 392842, upload_time = "2026-05-18T04:30:27.051Z" }, + { url = "https://files.pythonhosted.org/packages/db/ef/d5bdb705c224dbc256aa0c1ec47bf4e61ec52558f2afb44a71a1fe4d7015/watchfiles-1.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f34e26a19f91f710c08e0183429f0d1d15df734e6bc78c31e77b9ea9c433658", size = 452989, upload_time = "2026-05-18T04:31:11.945Z" }, + { url = "https://files.pythonhosted.org/packages/71/29/5495f2c1661949ef7a35e4d71111d129cfe7606414a26887a919d0a55406/watchfiles-1.2.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b4e77f6a55f858504069abd35d336a637555c09bca453dde1ee1e5ada8a6a1fb", size = 458978, upload_time = "2026-05-18T04:30:52.606Z" }, + { url = "https://files.pythonhosted.org/packages/d5/8c/7f9c07c433811c2fffd93e13fdfb7135de9aab5f2ae41be08960fa0047dc/watchfiles-1.2.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0cb4d80e212f116474a545c21c912b445f16bb0cef9e6a73a498164223e14e2f", size = 490248, upload_time = "2026-05-18T04:31:36.003Z" }, + { url = "https://files.pythonhosted.org/packages/3c/11/d93632febc52fbc21be90231bb7c17fd5387f46c9076fd40a5f9c2ae6910/watchfiles-1.2.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b974946a10af379d425e2eef5b62f5c6ebeaccf91d45eaad6f5b27ecd4f91aa0", size = 571847, upload_time = "2026-05-18T04:31:10.862Z" }, + { url = "https://files.pythonhosted.org/packages/55/b4/383173e73aabb07ad1d9c7aa859d95437ac46a6d6a1e11005facda0c9d19/watchfiles-1.2.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:86bc13c25a8d1fcd70b51d0ce7c9b65e90de5666fcbfd3e34957cc73ee19aeb5", size = 465974, upload_time = "2026-05-18T04:30:17.006Z" }, + { url = "https://files.pythonhosted.org/packages/a7/6c/89b1a230a78f57c52dd8893adb1f92f94411721b6ec12596c56d98c74356/watchfiles-1.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ca148d73dea36c9763aaa351e4d7a51780ec1584217c45276f4fe8239c768b71", size = 454782, upload_time = "2026-05-18T04:30:35.656Z" }, + { url = "https://files.pythonhosted.org/packages/24/62/1732118367cfff0a9fce3bf62ff4bfded09ef5df21d9d446b858b3f70a96/watchfiles-1.2.0-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:c525543d91961c6955b2636b308569e84a1d1c5f5f2932041ab9ef46422f43e3", size = 465182, upload_time = "2026-05-18T04:30:20.846Z" }, + { url = "https://files.pythonhosted.org/packages/28/96/716f7e5f51339bf22963f3345f9f27d7f3b30e2eadc597e257c881dd3c53/watchfiles-1.2.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:a204794696ffb8f9b10fba6f7cb5216d42f3b2b71860ccac6b6e42f5f10973b0", size = 629841, upload_time = "2026-05-18T04:31:05.397Z" }, + { url = "https://files.pythonhosted.org/packages/4c/fe/c40783950fd771ccf66ab3ec2722d188a9af1c7f96c6e811f36e40c6e03f/watchfiles-1.2.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:10d86db20695afe7997ac9e1717637d6714a8d0220458c33f3d2061f54cec427", size = 658028, upload_time = "2026-05-18T04:31:48.22Z" }, + { url = "https://files.pythonhosted.org/packages/71/72/4508db1856d1d87fcbb3b63f4839bab1b5682cb0e8d224d122263c09654a/watchfiles-1.2.0-cp313-cp313-win32.whl", hash = "sha256:eb283ee99e21ad6443c8cdb06ac5b34b1308c329cbdf03fa02b445363714c799", size = 275183, upload_time = "2026-05-18T04:30:59.57Z" }, + { url = "https://files.pythonhosted.org/packages/f9/36/14b76ca57652e5cc5fd1c11f32a261292c08a0d19a00351013c2549cbfb2/watchfiles-1.2.0-cp313-cp313-win_amd64.whl", hash = "sha256:a0f27f01bee51861392bb6b7c4fdb290b27d1eb194e9e28788d68102a0e898d9", size = 288059, upload_time = "2026-05-18T04:32:07.937Z" }, + { url = "https://files.pythonhosted.org/packages/1b/8d/0a85e395398d8d20fadfe5c5d32c726eee17a519e78fb356f2cf7531bffe/watchfiles-1.2.0-cp313-cp313-win_arm64.whl", hash = "sha256:3651aa7058595e9cfb75d35dd5ada2bf9f48a5b8a0f3562821d3e210c507e077", size = 280186, upload_time = "2026-05-18T04:31:54.484Z" }, + { url = "https://files.pythonhosted.org/packages/37/68/36db056f1fdcc5f07302f56e631774d6835bcd6fa3ace402304621d5f9e5/watchfiles-1.2.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:faea288b6f0ab1902ef08f4ca6de005dccf856c4e0c4f21b8c5fce02d90a1b08", size = 399031, upload_time = "2026-05-18T04:30:44.576Z" }, + { url = "https://files.pythonhosted.org/packages/c1/64/01a9d6f66a82a5c101ce939274106cc72759d62427e153f01edd2b9f87c2/watchfiles-1.2.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:01859b11fd9fbca670f4d5da00fbac282cfea9bd67a2125d8b2833a3b5617ea9", size = 391205, upload_time = "2026-05-18T04:30:25.413Z" }, + { url = "https://files.pythonhosted.org/packages/84/2c/0a44fe058cb4bb7b8ede6b6670698bbb7c0400740e378d00022189b7b31d/watchfiles-1.2.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fff610d7bb2256a317bb1e96f0d7862c7aa8076733ee5df0fd41bbe76a24a4f4", size = 451892, upload_time = "2026-05-18T04:32:14.005Z" }, + { url = "https://files.pythonhosted.org/packages/67/a1/351e0d56cd35e6488b5c8b4fb11a809a5bc923e8fe8fed9faf8920be0c89/watchfiles-1.2.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b141a4891c995a039cd89e9a49e62df1dc8a559a5d1a6e4c7106d16c12777a55", size = 458867, upload_time = "2026-05-18T04:31:22.279Z" }, + { url = "https://files.pythonhosted.org/packages/d5/7d/9d09605187f1b838998624049fcf8bf47b73c1a3b76901fcac1782f62277/watchfiles-1.2.0-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f22943b7770483f6ea0721c6b11d022947a98eb0acae14694de034f4d0d38925", size = 490217, upload_time = "2026-05-18T04:31:43.657Z" }, + { url = "https://files.pythonhosted.org/packages/60/5d/a17a16eccb182f04188cd308ec24b1a71a9b5c4e7098269cf35d9fa56d02/watchfiles-1.2.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1bc6195825b7dcd217968bb1f801a60fd4c16e8eeab5bedc7fe917d7d5995ab4", size = 571458, upload_time = "2026-05-18T04:32:11.875Z" }, + { url = "https://files.pythonhosted.org/packages/d3/3d/4dd457062083ab1938e5dfd45032eb425cee2ac817287ca8ff4356183e5d/watchfiles-1.2.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d4a4b147f5dca2a5d325a06a832fb43f345751adfbc63204aec30e0d9ca965a2", size = 464707, upload_time = "2026-05-18T04:30:43.492Z" }, + { url = "https://files.pythonhosted.org/packages/c6/71/ea8c57b128f5383de74d0c7d2d9c57ad7c9a65a930c451bd25d524b295b7/watchfiles-1.2.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4543579a9bdb0c9560039b4ffddbdb39545707659fbc430ce4c10f3f68d557f9", size = 454663, upload_time = "2026-05-18T04:30:16.061Z" }, + { url = "https://files.pythonhosted.org/packages/53/fd/2e812bf938406d7db351f0703ddd3fc6c061cf30d96153a77bc79a943a44/watchfiles-1.2.0-cp313-cp313t-manylinux_2_31_riscv64.whl", hash = "sha256:20aa0e708b920bde876a4aa82dc7dd6ebea228a63a67cda6632c2fc87b787efa", size = 463537, upload_time = "2026-05-18T04:31:44.9Z" }, + { url = "https://files.pythonhosted.org/packages/86/56/d17a7f1dd1bc3035f1072694a551301272f1739c2d8e319c927cb9e29b38/watchfiles-1.2.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:d413349d565dab74297f2a63e84a097936be69bf8f3b3801f27f380e32040f44", size = 629194, upload_time = "2026-05-18T04:31:14.141Z" }, + { url = "https://files.pythonhosted.org/packages/be/06/f1ff66bf5cae50aa4062779a0ecd0bbaf15e466195719074078947d9a17d/watchfiles-1.2.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:f28b2725eb8cce327b9b3ab02415c853011dc55c95832fe90de6bc56f5315f72", size = 656194, upload_time = "2026-05-18T04:31:47.14Z" }, + { url = "https://files.pythonhosted.org/packages/e7/54/a9c7ea9a82a4ac65e7004c0a03920b5cdd2f9c3b678757d9cd425aa51d53/watchfiles-1.2.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:b8c8358484d5fa12ef34f05b7f4168eaf1932f408725ff6d023c33ec17bd79d4", size = 400205, upload_time = "2026-05-18T04:32:05.153Z" }, + { url = "https://files.pythonhosted.org/packages/aa/5d/c9ab3534374a4a67450696905d6ef16a04405448b8dc52bd752ae50423d4/watchfiles-1.2.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:9f04b092229ad2c50126dd3c922c8822e51e605993764a33058d4a791ab42281", size = 392508, upload_time = "2026-05-18T04:30:54.849Z" }, + { url = "https://files.pythonhosted.org/packages/26/ca/1ad30103535cf0cecd7b993e8d50edc5351b1820e38f2d22e3df58962feb/watchfiles-1.2.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7a7ce236284f002a156f70add88efe5c70879cccbb658be0822c54b1306fc09d", size = 452448, upload_time = "2026-05-18T04:30:53.727Z" }, + { url = "https://files.pythonhosted.org/packages/37/a1/ceee2cdf2afbd715fa07758d39c9859513eae411b23196f7fd039e5feedd/watchfiles-1.2.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b9909cc2b48468b575eefa944919e1fe8a36c5849d5c7c168f80a8c1db69398e", size = 459605, upload_time = "2026-05-18T04:30:23.312Z" }, + { url = "https://files.pythonhosted.org/packages/e8/f6/421e30fd1cb3907a84ed92ab3f1983e37ba2dca015e9a894a048418417a2/watchfiles-1.2.0-cp314-cp314-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a37faaed405c67e28e6be45a1fa4f206ef5a2860f27c237db9fa30704c38242", size = 490757, upload_time = "2026-05-18T04:30:47.358Z" }, + { url = "https://files.pythonhosted.org/packages/41/b0/55ed1b97ed08be7bba6f9a541cac15f2a858e1d74d2b07b6da70a82aab00/watchfiles-1.2.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9649193aa27bd9ff2e80ff29bfaa93085496c7a3a377592823cc58b77ee88add", size = 568672, upload_time = "2026-05-18T04:30:38.915Z" }, + { url = "https://files.pythonhosted.org/packages/d1/cf/d8ae8a80dd7bafab395ea7681c10237311bbf34d37704a8c744e7cf31fc7/watchfiles-1.2.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4e4ff8e37f99cf1da89e255e07c9c4b37c214038c4283707bdec308cb1b0ea1f", size = 464197, upload_time = "2026-05-18T04:30:09.914Z" }, + { url = "https://files.pythonhosted.org/packages/7c/8a/3076c496ca8dafe0e8cd03fcebdfc47be4b1174b4e5b24ff6e396e6b3af2/watchfiles-1.2.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:054dc20fd2e3132b4c3883b4a00d72fd6e1f56fdaf89fccd12e8057d74cd74d7", size = 453181, upload_time = "2026-05-18T04:30:14.829Z" }, + { url = "https://files.pythonhosted.org/packages/e5/10/9745e17c98e7b8a86454df0a3c7b5686bd650383f1e9f26e4ebcbd6cc0c0/watchfiles-1.2.0-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:e140ed30ebde76796b686e67c182cff10ea2fbab186fafd1560f74bb5a473a6e", size = 465109, upload_time = "2026-05-18T04:30:28.123Z" }, + { url = "https://files.pythonhosted.org/packages/8f/95/8ef4a95481d3e0cb52d62a06fa6e972e81424be2d9698b91a2fecca9904c/watchfiles-1.2.0-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:bb7e52ecf68ba46d22df23467b87cffeb2146908aa523ebfe803019618cfda06", size = 630653, upload_time = "2026-05-18T04:31:49.304Z" }, + { url = "https://files.pythonhosted.org/packages/fd/e4/3b3bf36b0f829b50c6ebcb8d031583863c59f923d6a6af3d485e470d0fac/watchfiles-1.2.0-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:23282a321c8baf9b3a3c4afff673f9fe65eb7fdc2338d765ccad9d3d1916a5ba", size = 657838, upload_time = "2026-05-18T04:31:06.497Z" }, + { url = "https://files.pythonhosted.org/packages/21/b1/6cbbb50c1f3002ab568777d44aa21206dfb8807a840990c4037523b51812/watchfiles-1.2.0-cp314-cp314-win32.whl", hash = "sha256:c0db965c5f79aa49fe672d297cf1febc5ad149b658594944f49a54a2b96270a7", size = 275108, upload_time = "2026-05-18T04:30:06.891Z" }, + { url = "https://files.pythonhosted.org/packages/92/45/190ce6db8dcb4536682cf75d3889ff1a27182a58cb519d343cb6d9ea63d8/watchfiles-1.2.0-cp314-cp314-win_amd64.whl", hash = "sha256:71283b39fd17e5408eb123bd37aeecfd9d54c81fc184421943208aadb879d103", size = 288441, upload_time = "2026-05-18T04:32:12.901Z" }, + { url = "https://files.pythonhosted.org/packages/74/0d/3eae1c2313ab08378431d907c3f8095ecca00f3eda33111cf4f0f2591799/watchfiles-1.2.0-cp314-cp314-win_arm64.whl", hash = "sha256:c5c19526f4e54a00f2666a6c0e9e40d582c09e865055ea7378bf0009aab857b3", size = 280684, upload_time = "2026-05-18T04:31:26.902Z" }, + { url = "https://files.pythonhosted.org/packages/b1/75/fb64e6c25d6b5ca636d03df34ffb1c6e9873303e76d27967e045f8df088f/watchfiles-1.2.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:d73a585accffa5ae39c17264c36ec3166d2fad7000c780f5ef83b2722afb9dd2", size = 398857, upload_time = "2026-05-18T04:32:17.108Z" }, + { url = "https://files.pythonhosted.org/packages/73/4e/9f7adf01754cbf81843722ccfec169d8f26c69778281a302855cecd2ee08/watchfiles-1.2.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:ae99b14c5f21e026e0e9d96f40e07d8570ebee6cafd9d8fc318354606daa7a28", size = 392413, upload_time = "2026-05-18T04:31:07.911Z" }, + { url = "https://files.pythonhosted.org/packages/47/c8/bec626bcc2d69f44b9acb24ce7d60ed7b16b73628eea747fcbd169d8edda/watchfiles-1.2.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4429f3b105524a10b72c3a819b091c495d2811d419c1e1e8df773a5a5974f831", size = 452409, upload_time = "2026-05-18T04:31:20.142Z" }, + { url = "https://files.pythonhosted.org/packages/00/b7/b6362068e81e7c556d155a34c35d40ac3ef42d747b06d7f6e5bf58e359c2/watchfiles-1.2.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:43d818978d06062d9b22c4fab2ebe44cf5213d42dc8e62bda8c2760cfa2eeb33", size = 458827, upload_time = "2026-05-18T04:32:06.219Z" }, + { url = "https://files.pythonhosted.org/packages/67/f8/9a813fa42afb1e0b4625e75f0479826644d3ee8dc287e093799bc01f390c/watchfiles-1.2.0-cp314-cp314t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b9f732dc58b2dbe69e464ccf8fff7a03b0dd0be439da4c0720d3558527d3d6b4", size = 490104, upload_time = "2026-05-18T04:31:56.034Z" }, + { url = "https://files.pythonhosted.org/packages/2f/bf/27dfb6094ca4c9aad21298b5525b6c53cb36121ee454331d05161e58d130/watchfiles-1.2.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8f200104103feb097de4cab8fe4f5dd18a2026934c7dea98c55a2f5fd6d5a33b", size = 571360, upload_time = "2026-05-18T04:31:57.133Z" }, + { url = "https://files.pythonhosted.org/packages/fb/39/44a096d67270ea93df91d33877dbe91fbda3aa4f8ec2edf799d93eda8736/watchfiles-1.2.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:63ac26eefbf4af1741247d6fb68b11c49a25b2f7413fbd318a83a12aaa9cf666", size = 464644, upload_time = "2026-05-18T04:30:57.33Z" }, + { url = "https://files.pythonhosted.org/packages/0e/80/c7472203bad6268e3ef1ad260739704847898938ad7ea8b63a5131f46b50/watchfiles-1.2.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c4997d4e4a55f0d02b6cde327322daf3a0400e5df6c6b15948994bf72497925", size = 454771, upload_time = "2026-05-18T04:30:48.736Z" }, + { url = "https://files.pythonhosted.org/packages/51/cf/3b10b268b4b7f0fc26e9debb5eef1998b515887840f444cd3ec80c688755/watchfiles-1.2.0-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:4c887eba18b7945ac73067a8b4a66f21cd46c2539b2bc68588f7be6c7eb6d26b", size = 463494, upload_time = "2026-05-18T04:31:33.826Z" }, + { url = "https://files.pythonhosted.org/packages/3d/3e/a4302545cd589262a0dc7d140e86f7688eba3f9c72776c27f7e23b8864c4/watchfiles-1.2.0-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:3416ff151bb6b5a8d8d11664974fbef4d9305b9b2957839ab5a270468fd8df30", size = 629383, upload_time = "2026-05-18T04:31:15.596Z" }, + { url = "https://files.pythonhosted.org/packages/db/99/d5649df0a9a410d45b7c882304d0b790903ac9b6e8f2cfd12114e0c6b9f2/watchfiles-1.2.0-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:0e831a271c035d89789cffc386b6aa1375f39f1cd25eb7ca0997e4970d152fc5", size = 656093, upload_time = "2026-05-18T04:31:58.707Z" }, + { url = "https://files.pythonhosted.org/packages/92/b9/362702539275019a54dd2e94511b31a9b89c5f9e6a21966de7eb692549fc/watchfiles-1.2.0-cp315-cp315-macosx_10_12_x86_64.whl", hash = "sha256:37a6721cdf3f65dbb13aa9503510ccb4451603ac837e44d265d7992a597e1374", size = 400109, upload_time = "2026-05-18T04:31:16.879Z" }, + { url = "https://files.pythonhosted.org/packages/8f/75/71d5ba62db781e5587bded1d944c675374bc4aa37ff33d5018d98e8b6538/watchfiles-1.2.0-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:2b37d10b5a63bd4d87e18472d80fa525bd670586fae62e5dd580452764879b65", size = 392167, upload_time = "2026-05-18T04:31:28.058Z" }, + { url = "https://files.pythonhosted.org/packages/3c/01/c66dd95d0423fe30d31820e2d1d5bda773764131bbb6ac0cb1cf303ac328/watchfiles-1.2.0-cp315-cp315-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a105bc2283f67e8fbec74253ec2d94925de92ed72c0393f1206bf326b7b7b69", size = 452372, upload_time = "2026-05-18T04:31:00.836Z" }, + { url = "https://files.pythonhosted.org/packages/91/15/2fe99557e72f85627c6a8eed50d889e8d101623e060a22ad75b875cb932d/watchfiles-1.2.0-cp315-cp315-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5327989a465505f05cfe06f04fa9d0c2fd5432bb243e10e6f012b1bdca3c8579", size = 459596, upload_time = "2026-05-18T04:31:34.96Z" }, + { url = "https://files.pythonhosted.org/packages/ed/23/d4acfa0023367428ed48351b3b9b267893037b6cadae55620c61c24bcfd4/watchfiles-1.2.0-cp315-cp315-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ecb47f183a8025b2aa18b546725c3657e542112ae9c0613a2af79b4fa8d04ad7", size = 490869, upload_time = "2026-05-18T04:31:59.923Z" }, + { url = "https://files.pythonhosted.org/packages/a4/5f/3164cbdce06c9fb95c4f7b9e2f9760b5e2797af43a9ecc317ef42a23a278/watchfiles-1.2.0-cp315-cp315-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8520a4ab0e37f770afc34459c4f8f7019e153f9124dc101c15538365875d1ab2", size = 571641, upload_time = "2026-05-18T04:32:00.948Z" }, + { url = "https://files.pythonhosted.org/packages/41/e6/85d3731c55e65cd7690f3f803d24c139588aaf863e4bf2148fe7a7fa1a19/watchfiles-1.2.0-cp315-cp315-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:71cd71740ed2c15211ebb237ced4e39a1cdf6f80566e5fe95428da1626f4fde6", size = 464444, upload_time = "2026-05-18T04:30:34.298Z" }, + { url = "https://files.pythonhosted.org/packages/f4/7d/562641012b8b09872742c3b8adf9629ec479fd78f8d68ae4a0c13da8add6/watchfiles-1.2.0-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f88af53d6ddaf72179ef613ddc905e6f4785f712b49b80b3bef9f3525e6194b4", size = 453593, upload_time = "2026-05-18T04:31:23.464Z" }, + { url = "https://files.pythonhosted.org/packages/56/fe/cb8ef3d6f929d14158fdaaad9925985b7310abc9384dcd4d82dd0016fb59/watchfiles-1.2.0-cp315-cp315-manylinux_2_31_riscv64.whl", hash = "sha256:cee9d5efd929efdac5f7e58f72b3376f676b64050a91c5b99a7094c5b2317488", size = 465096, upload_time = "2026-05-18T04:31:30.384Z" }, + { url = "https://files.pythonhosted.org/packages/25/91/80908e835e100527a9267147b08c0eee1fa6ab0ffec15edc04d1d44885f7/watchfiles-1.2.0-cp315-cp315-musllinux_1_1_aarch64.whl", hash = "sha256:b718bf356bbc15e559bd8ef41782b573b8ae0e3f177ab244b440568d7ea02cfb", size = 630638, upload_time = "2026-05-18T04:30:49.89Z" }, + { url = "https://files.pythonhosted.org/packages/46/4b/95ab2f256bb4af3cb2eb23b9317bda984ee6e0f11733a5c004a6c95b06e3/watchfiles-1.2.0-cp315-cp315-musllinux_1_1_x86_64.whl", hash = "sha256:922c0e019fe68b3ae392965a766b02a71ba1168c932cebc3733cd52c5fe5b377", size = 657684, upload_time = "2026-05-18T04:31:32.027Z" }, +] + +[[package]] +name = "websockets" +version = "16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/04/24/4b2031d72e840ce4c1ccb255f693b15c334757fc50023e4db9537080b8c4/websockets-16.0.tar.gz", hash = "sha256:5f6261a5e56e8d5c42a4497b364ea24d94d9563e8fbd44e78ac40879c60179b5", size = 179346, upload_time = "2026-01-10T09:23:47.181Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cc/9c/baa8456050d1c1b08dd0ec7346026668cbc6f145ab4e314d707bb845bf0d/websockets-16.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:878b336ac47938b474c8f982ac2f7266a540adc3fa4ad74ae96fea9823a02cc9", size = 177364, upload_time = "2026-01-10T09:22:59.333Z" }, + { url = "https://files.pythonhosted.org/packages/7e/0c/8811fc53e9bcff68fe7de2bcbe75116a8d959ac699a3200f4847a8925210/websockets-16.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:52a0fec0e6c8d9a784c2c78276a48a2bdf099e4ccc2a4cad53b27718dbfd0230", size = 175039, upload_time = "2026-01-10T09:23:01.171Z" }, + { url = "https://files.pythonhosted.org/packages/aa/82/39a5f910cb99ec0b59e482971238c845af9220d3ab9fa76dd9162cda9d62/websockets-16.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e6578ed5b6981005df1860a56e3617f14a6c307e6a71b4fff8c48fdc50f3ed2c", size = 175323, upload_time = "2026-01-10T09:23:02.341Z" }, + { url = "https://files.pythonhosted.org/packages/bd/28/0a25ee5342eb5d5f297d992a77e56892ecb65e7854c7898fb7d35e9b33bd/websockets-16.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:95724e638f0f9c350bb1c2b0a7ad0e83d9cc0c9259f3ea94e40d7b02a2179ae5", size = 184975, upload_time = "2026-01-10T09:23:03.756Z" }, + { url = "https://files.pythonhosted.org/packages/f9/66/27ea52741752f5107c2e41fda05e8395a682a1e11c4e592a809a90c6a506/websockets-16.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c0204dc62a89dc9d50d682412c10b3542d748260d743500a85c13cd1ee4bde82", size = 186203, upload_time = "2026-01-10T09:23:05.01Z" }, + { url = "https://files.pythonhosted.org/packages/37/e5/8e32857371406a757816a2b471939d51c463509be73fa538216ea52b792a/websockets-16.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:52ac480f44d32970d66763115edea932f1c5b1312de36df06d6b219f6741eed8", size = 185653, upload_time = "2026-01-10T09:23:06.301Z" }, + { url = "https://files.pythonhosted.org/packages/9b/67/f926bac29882894669368dc73f4da900fcdf47955d0a0185d60103df5737/websockets-16.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6e5a82b677f8f6f59e8dfc34ec06ca6b5b48bc4fcda346acd093694cc2c24d8f", size = 184920, upload_time = "2026-01-10T09:23:07.492Z" }, + { url = "https://files.pythonhosted.org/packages/3c/a1/3d6ccdcd125b0a42a311bcd15a7f705d688f73b2a22d8cf1c0875d35d34a/websockets-16.0-cp313-cp313-win32.whl", hash = "sha256:abf050a199613f64c886ea10f38b47770a65154dc37181bfaff70c160f45315a", size = 178255, upload_time = "2026-01-10T09:23:09.245Z" }, + { url = "https://files.pythonhosted.org/packages/6b/ae/90366304d7c2ce80f9b826096a9e9048b4bb760e44d3b873bb272cba696b/websockets-16.0-cp313-cp313-win_amd64.whl", hash = "sha256:3425ac5cf448801335d6fdc7ae1eb22072055417a96cc6b31b3861f455fbc156", size = 178689, upload_time = "2026-01-10T09:23:10.483Z" }, + { url = "https://files.pythonhosted.org/packages/f3/1d/e88022630271f5bd349ed82417136281931e558d628dd52c4d8621b4a0b2/websockets-16.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:8cc451a50f2aee53042ac52d2d053d08bf89bcb31ae799cb4487587661c038a0", size = 177406, upload_time = "2026-01-10T09:23:12.178Z" }, + { url = "https://files.pythonhosted.org/packages/f2/78/e63be1bf0724eeb4616efb1ae1c9044f7c3953b7957799abb5915bffd38e/websockets-16.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:daa3b6ff70a9241cf6c7fc9e949d41232d9d7d26fd3522b1ad2b4d62487e9904", size = 175085, upload_time = "2026-01-10T09:23:13.511Z" }, + { url = "https://files.pythonhosted.org/packages/bb/f4/d3c9220d818ee955ae390cf319a7c7a467beceb24f05ee7aaaa2414345ba/websockets-16.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:fd3cb4adb94a2a6e2b7c0d8d05cb94e6f1c81a0cf9dc2694fb65c7e8d94c42e4", size = 175328, upload_time = "2026-01-10T09:23:14.727Z" }, + { url = "https://files.pythonhosted.org/packages/63/bc/d3e208028de777087e6fb2b122051a6ff7bbcca0d6df9d9c2bf1dd869ae9/websockets-16.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:781caf5e8eee67f663126490c2f96f40906594cb86b408a703630f95550a8c3e", size = 185044, upload_time = "2026-01-10T09:23:15.939Z" }, + { url = "https://files.pythonhosted.org/packages/ad/6e/9a0927ac24bd33a0a9af834d89e0abc7cfd8e13bed17a86407a66773cc0e/websockets-16.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:caab51a72c51973ca21fa8a18bd8165e1a0183f1ac7066a182ff27107b71e1a4", size = 186279, upload_time = "2026-01-10T09:23:17.148Z" }, + { url = "https://files.pythonhosted.org/packages/b9/ca/bf1c68440d7a868180e11be653c85959502efd3a709323230314fda6e0b3/websockets-16.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:19c4dc84098e523fd63711e563077d39e90ec6702aff4b5d9e344a60cb3c0cb1", size = 185711, upload_time = "2026-01-10T09:23:18.372Z" }, + { url = "https://files.pythonhosted.org/packages/c4/f8/fdc34643a989561f217bb477cbc47a3a07212cbda91c0e4389c43c296ebf/websockets-16.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:a5e18a238a2b2249c9a9235466b90e96ae4795672598a58772dd806edc7ac6d3", size = 184982, upload_time = "2026-01-10T09:23:19.652Z" }, + { url = "https://files.pythonhosted.org/packages/dd/d1/574fa27e233764dbac9c52730d63fcf2823b16f0856b3329fc6268d6ae4f/websockets-16.0-cp314-cp314-win32.whl", hash = "sha256:a069d734c4a043182729edd3e9f247c3b2a4035415a9172fd0f1b71658a320a8", size = 177915, upload_time = "2026-01-10T09:23:21.458Z" }, + { url = "https://files.pythonhosted.org/packages/8a/f1/ae6b937bf3126b5134ce1f482365fde31a357c784ac51852978768b5eff4/websockets-16.0-cp314-cp314-win_amd64.whl", hash = "sha256:c0ee0e63f23914732c6d7e0cce24915c48f3f1512ec1d079ed01fc629dab269d", size = 178381, upload_time = "2026-01-10T09:23:22.715Z" }, + { url = "https://files.pythonhosted.org/packages/06/9b/f791d1db48403e1f0a27577a6beb37afae94254a8c6f08be4a23e4930bc0/websockets-16.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:a35539cacc3febb22b8f4d4a99cc79b104226a756aa7400adc722e83b0d03244", size = 177737, upload_time = "2026-01-10T09:23:24.523Z" }, + { url = "https://files.pythonhosted.org/packages/bd/40/53ad02341fa33b3ce489023f635367a4ac98b73570102ad2cdd770dacc9a/websockets-16.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:b784ca5de850f4ce93ec85d3269d24d4c82f22b7212023c974c401d4980ebc5e", size = 175268, upload_time = "2026-01-10T09:23:25.781Z" }, + { url = "https://files.pythonhosted.org/packages/74/9b/6158d4e459b984f949dcbbb0c5d270154c7618e11c01029b9bbd1bb4c4f9/websockets-16.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:569d01a4e7fba956c5ae4fc988f0d4e187900f5497ce46339c996dbf24f17641", size = 175486, upload_time = "2026-01-10T09:23:27.033Z" }, + { url = "https://files.pythonhosted.org/packages/e5/2d/7583b30208b639c8090206f95073646c2c9ffd66f44df967981a64f849ad/websockets-16.0-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:50f23cdd8343b984957e4077839841146f67a3d31ab0d00e6b824e74c5b2f6e8", size = 185331, upload_time = "2026-01-10T09:23:28.259Z" }, + { url = "https://files.pythonhosted.org/packages/45/b0/cce3784eb519b7b5ad680d14b9673a31ab8dcb7aad8b64d81709d2430aa8/websockets-16.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:152284a83a00c59b759697b7f9e9cddf4e3c7861dd0d964b472b70f78f89e80e", size = 186501, upload_time = "2026-01-10T09:23:29.449Z" }, + { url = "https://files.pythonhosted.org/packages/19/60/b8ebe4c7e89fb5f6cdf080623c9d92789a53636950f7abacfc33fe2b3135/websockets-16.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:bc59589ab64b0022385f429b94697348a6a234e8ce22544e3681b2e9331b5944", size = 186062, upload_time = "2026-01-10T09:23:31.368Z" }, + { url = "https://files.pythonhosted.org/packages/88/a8/a080593f89b0138b6cba1b28f8df5673b5506f72879322288b031337c0b8/websockets-16.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:32da954ffa2814258030e5a57bc73a3635463238e797c7375dc8091327434206", size = 185356, upload_time = "2026-01-10T09:23:32.627Z" }, + { url = "https://files.pythonhosted.org/packages/c2/b6/b9afed2afadddaf5ebb2afa801abf4b0868f42f8539bfe4b071b5266c9fe/websockets-16.0-cp314-cp314t-win32.whl", hash = "sha256:5a4b4cc550cb665dd8a47f868c8d04c8230f857363ad3c9caf7a0c3bf8c61ca6", size = 178085, upload_time = "2026-01-10T09:23:33.816Z" }, + { url = "https://files.pythonhosted.org/packages/9f/3e/28135a24e384493fa804216b79a6a6759a38cc4ff59118787b9fb693df93/websockets-16.0-cp314-cp314t-win_amd64.whl", hash = "sha256:b14dc141ed6d2dde437cddb216004bcac6a1df0935d79656387bd41632ba0bbd", size = 178531, upload_time = "2026-01-10T09:23:35.016Z" }, + { url = "https://files.pythonhosted.org/packages/6f/28/258ebab549c2bf3e64d2b0217b973467394a9cea8c42f70418ca2c5d0d2e/websockets-16.0-py3-none-any.whl", hash = "sha256:1637db62fad1dc833276dded54215f2c7fa46912301a24bd94d45d46a011ceec", size = 171598, upload_time = "2026-01-10T09:23:45.395Z" }, +] From 4a6fb6613b5fe146fce6a958ea828ebda5c45749 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Luis=20Castro=20Garc=C3=ADa?= Date: Mon, 17 Aug 2026 14:34:29 -0600 Subject: [PATCH 13/23] removed old MCP name --- .../CHANGELOG.md | 35 - .../LICENSE.txt | 35 - .../README.md | 105 - .../oracle/__init__.py | 5 - .../__init__.py | 8 - .../mcp.py | 145 - .../metadata/manifest.json | 6 - .../metadata/skills.json | 437 - .../metadata/tools.json | 16302 ---------------- .../registry.py | 171 - .../runtime.py | 155 - .../sdk_schema.py | 220 - .../server.py | 31 - .../tests/__init__.py | 7 - .../tests/test_mcp_surface.py | 113 - .../tests/test_registry.py | 251 - .../tests/test_runtime.py | 236 - .../tests/test_server.py | 38 - .../pyproject.toml | 60 - .../uv.lock | 1462 -- 20 files changed, 19822 deletions(-) delete mode 100644 src/oci-oracle-db-observability-mcp-server/CHANGELOG.md delete mode 100644 src/oci-oracle-db-observability-mcp-server/LICENSE.txt delete mode 100644 src/oci-oracle-db-observability-mcp-server/README.md delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/__init__.py delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/__init__.py delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/mcp.py delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/metadata/manifest.json delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/metadata/skills.json delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/metadata/tools.json delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/registry.py delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/runtime.py delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/sdk_schema.py delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/server.py delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/__init__.py delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_mcp_surface.py delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_registry.py delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_runtime.py delete mode 100644 src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_server.py delete mode 100644 src/oci-oracle-db-observability-mcp-server/pyproject.toml delete mode 100644 src/oci-oracle-db-observability-mcp-server/uv.lock diff --git a/src/oci-oracle-db-observability-mcp-server/CHANGELOG.md b/src/oci-oracle-db-observability-mcp-server/CHANGELOG.md deleted file mode 100644 index cba0d16f..00000000 --- a/src/oci-oracle-db-observability-mcp-server/CHANGELOG.md +++ /dev/null @@ -1,35 +0,0 @@ -# Changelog - -## 0.1.0 - 2026-08-05 - -### Server - -- Unified, read-only Oracle Database Observability MCP server for OCI - Operations Insights (OPSI) and Database Management (DBM). - -### Transports - -- STDIO and HTTP streaming transports. - -### Authentication - -- Configured OCI authentication through `oracle-mcp-common`, including - API-key, security-token, instance-principal, and resource-principal flows. -- OCI IAM/IDCS request-token authentication for HTTP deployments. - -### Tool surface - -- Compartment scope discovery through `get_oci_compartment` and - `list_oci_compartments`. -- Catalog discovery and dispatch through `list_dbo_skills`, `list_dbo_tools`, - `describe_dbo_tool`, and `invoke_dbo_tool`. -- 34 workflow skills and 229 read-only OPSI/DBM SDK-backed catalog operations. - -### Package and entry point - -- Distribution: `oracle.oci-db-observability-mcp-server`. -- Console entry point: `oracle.oci-db-observability-mcp-server`. -- Python package: `oracle.oci_oracle_db_observability_mcp_server`. -- Discovery guidance permits reuse of applicable skill, tool, and schema - information from earlier calls instead of requiring the full workflow for - every invocation. diff --git a/src/oci-oracle-db-observability-mcp-server/LICENSE.txt b/src/oci-oracle-db-observability-mcp-server/LICENSE.txt deleted file mode 100644 index 9af2dace..00000000 --- a/src/oci-oracle-db-observability-mcp-server/LICENSE.txt +++ /dev/null @@ -1,35 +0,0 @@ -Universal Permissive License (UPL), Version 1.0 - -Subject to the condition set forth below, permission is hereby granted to any -person obtaining a copy of this software, associated documentation and/or data -(collectively the "Software"), free of charge and under any and all copyright -rights in the Software, and any and all patent rights owned or freely -licensable by each licensor hereunder covering either (i) the unmodified -Software as contributed to or provided by such licensor, or (ii) the Larger -Works (as defined below), to deal in both - -(a) the Software, and - -(b) any piece of software and/or hardware listed in the lrgrwrks.txt file if -one is included with the Software (each a "Larger Work" to which the Software -is contributed by such licensors), - -without restriction, including without limitation the rights to copy, create -derivative works of, display, perform, and distribute the Software and make, -use, sell, offer for sale, import, export, have made, and have sold the -Software and the Larger Work(s), and to sublicense the foregoing rights on -either these or other terms. - -This license is subject to the following condition: - -The above copyright notice and either this complete permission notice or at a -minimum a reference to the UPL must be included in all copies or substantial -portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/src/oci-oracle-db-observability-mcp-server/README.md b/src/oci-oracle-db-observability-mcp-server/README.md deleted file mode 100644 index 173eb75d..00000000 --- a/src/oci-oracle-db-observability-mcp-server/README.md +++ /dev/null @@ -1,105 +0,0 @@ -# OCI Database Observability MCP Server - -This package provides one MCP server for OCI Operations Insights (OPSI) and OCI -Database Management (DBM). It exposes two read-only compartment discovery -tools plus four catalog discovery and invocation tools. The catalog contains -only operations with exact OCI Python SDK bindings. - -## Running - -### STDIO - -```sh -uvx oracle.oci-db-observability-mcp-server -``` - -Use a named OCI CLI profile when required: - -```sh -OCI_CONFIG_PROFILE= uvx oracle.oci-db-observability-mcp-server -``` - -### HTTP streaming - -```sh -ORACLE_MCP_HOST= \ -ORACLE_MCP_PORT= \ -ORACLE_MCP_BASE_URL= \ -OCI_REGION= \ -IDCS_DOMAIN= \ -IDCS_CLIENT_ID= \ -IDCS_CLIENT_SECRET= \ -IDCS_AUDIENCE= \ -uvx oracle.oci-db-observability-mcp-server -``` - -Register `${ORACLE_MCP_BASE_URL}/auth/callback` in the OCI IAM confidential -application. If `IDCS_REQUIRED_SCOPES` is unset, the default scope is -`oci_mcp.db_observability.invoke` together with the standard OpenID scopes. -The server uses `oracle-mcp-common` 0.1.2 or later for OCI authentication. For -HTTP token-exchange authentication, set `OCI_MCP_TENANCY_ID_OVERRIDE` when the -caller signer does not expose a tenancy and `list_oci_compartments` is called -without `root_compartment_id`. - -## Discovery workflow - -1. If the user provides a compartment name instead of an OCID, call - `list_oci_compartments` with `name` set to that value. Use the returned - item's `id` as `compartment_id` in subsequent operations. If the user - provides an OCID, call `get_oci_compartment` to validate it when needed. -2. Call `list_dbo_skills` when the relevant capability is not already known. -3. Call `list_dbo_tools` for selected skills when the required operation is not - already known. -4. Call `describe_dbo_tool` when the selected tool's schema is unavailable, - outdated, or uncertain. Previously retrieved applicable results may be - reused. -5. Call `invoke_dbo_tool` with arguments matching the known schema. - -The complete skill and tool catalogs are packaged as JSON under -`oracle/oci_oracle_db_observability_mcp_server/metadata`. Skills organize -read-only workflows such as inventory, diagnostics, performance, and fleet -analysis. Their concise descriptions are MCP discovery metadata, not MCP -resources; the detailed OEM.ai skill files are not packaged or required at -runtime. The tool catalog contains OPSI and DBM SDK bindings; it does not -expose the individual operations as MCP tools. - -## Pagination - -Paginated operations accept an optional `page` argument. Responses contain the -page data and a `nextPage` token when more results are available: - -```json -{ - "data": [], - "nextPage": "" -} -``` - -Pass the returned `nextPage` value as `page` in the next invocation. Stop when -`nextPage` is null. - -## Development - -Run the unified server tests with: - -```sh -make test project=oci-oracle-db-observability-mcp-server -``` - -Run repository lint with: - -```sh -make lint -``` - -## Third-Party APIs - -Developers choosing to distribute a binary implementation of this project are -responsible for obtaining and providing all required licenses and copyright -notices for the third-party code used. - -## License - -Copyright (c) 2026 Oracle and/or its affiliates. - -Released under the Universal Permissive License v1.0. diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/__init__.py b/src/oci-oracle-db-observability-mcp-server/oracle/__init__.py deleted file mode 100644 index b8f69b97..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -""" -Copyright (c) 2026, Oracle and/or its affiliates. -Licensed under the Universal Permissive License v1.0 as shown at -https://oss.oracle.com/licenses/upl. -""" diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/__init__.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/__init__.py deleted file mode 100644 index c6cb5506..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -Copyright (c) 2026, Oracle and/or its affiliates. -Licensed under the Universal Permissive License v1.0 as shown at -https://oss.oracle.com/licenses/upl. -""" - -__project__ = "oracle.oci-db-observability-mcp-server" -__version__ = "0.1.0" diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/mcp.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/mcp.py deleted file mode 100644 index 6549ea2a..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/mcp.py +++ /dev/null @@ -1,145 +0,0 @@ -""" -Copyright (c) 2026, Oracle and/or its affiliates. -Licensed under the Universal Permissive License v1.0 as shown at -https://oss.oracle.com/licenses/upl. -""" - -from __future__ import annotations -from typing import Any -from fastmcp import FastMCP -from pydantic import Field -from .registry import load_registry, to_jsonable -from .runtime import invoke_registered_tool -from .runtime import identity_bootstrap_client, serialize_response - -registry = load_registry() -mcp = FastMCP( - name="oracle.oci-db-observability-mcp-server", - instructions="Resolve an OCI compartment name to its OCID with `list_oci_compartments`, or validate an already known " - "OCID with `get_oci_compartment`, when scope is not already known. Pass the resolved compartment OCID " - "to subsequent Database Observability operations. " - "Use `list_dbo_skills` and `list_dbo_tools` when the relevant capability or operation is not already known. " - "Use `describe_dbo_tool` to inspect or confirm a tool's exact contract when its schema is unavailable, " - "outdated, or uncertain. Reuse information from earlier discovery calls when it remains applicable, then " - "call `invoke_dbo_tool` with arguments that match the known input schema exactly." -) - -@mcp.tool( - description=( - "Read-only OCI compartment resolution. Use this when the compartment OCID is already known and you want to " - "validate or inspect that exact compartment before invoking compartment-scoped Database Observability tools. " - "If the user provides a compartment name rather than an OCID, use `list_oci_compartments` first." - ), - annotations={"readOnlyHint": True, "destructiveHint": False, "idempotentHint": True, "openWorldHint": True}, -) -def get_oci_compartment( - compartment_id: str = Field( - ..., - description="Required OCI compartment OCID to validate or inspect, for example ocid1.compartment...", - ), -) -> Any: - if not compartment_id: - raise ValueError("compartment_id is required.") - client, _ = identity_bootstrap_client() - return serialize_response(client.get_compartment(compartment_id=compartment_id)) - -@mcp.tool( - description=( - "Read-only OCI compartment name-to-OCID resolution. Use this when the user supplies a compartment name instead " - "of an OCID. Set `name` to the requested name and use the returned item's `id` as " - "the `compartment_id` in subsequent Database Observability operations. Use `root_compartment_id` to narrow the " - "search; by default, search descendants from the authenticated tenancy. If multiple compartments share a name, " - "inspect their IDs and hierarchy before continuing." - ), - annotations={"readOnlyHint": True, "destructiveHint": False, "idempotentHint": True, "openWorldHint": True}, -) -def list_oci_compartments( - root_compartment_id: str | None = Field(None, description="Optional root compartment OCID that limits name resolution to this compartment and its descendants. Omit it to search from the authenticated tenancy."), - include_subtree: bool = Field(True, description="When true, include all descendant compartments below the root."), - access_level: str = Field("ACCESSIBLE", description="Visibility filter: ACCESSIBLE returns compartments available to the caller; ANY includes all visible states."), - name: str | None = Field(None, description="Optional exact compartment-name filter for resolving a user-provided name to one or more compartment OCIDs."), - lifecycle_state: str | None = Field(None, description="Optional lifecycle-state filter, such as ACTIVE."), - limit: int = Field(50, ge=1, le=1000, description="Maximum number of compartments returned in this response."), - page: str | None = Field(None, description="Optional nextPage token returned by a previous call."), -) -> dict[str, Any]: - client, tenancy_id = identity_bootstrap_client() - response = client.list_compartments( - compartment_id=root_compartment_id or tenancy_id, - compartment_id_in_subtree=include_subtree, - access_level=access_level, - name=name, - lifecycle_state=lifecycle_state, - limit=limit, - page=page, - ) - result = serialize_response(response) - items = result["data"] - return {"items": items, "count": len(items), "nextPage": result["nextPage"]} - -@mcp.tool( - description="Entry point for Oracle Database Observability capability discovery. Returns a compact list of available " - "skills with short summaries only; does not return operation schemas. Use it when the relevant capability " - "is not already known, and reuse prior results when they remain applicable." -) -def list_dbo_skills() -> dict[str, Any]: - return {"skills": [{"name": s["name"], "description": s["description"], "toolCount": len(s["tools"])} for s in registry.skills]} - -@mcp.tool( - description="Discovery endpoint for Oracle Database Observability operations within selected skills. Use it to list " - "candidate operations when the required operation is not already known. Reuse prior results when they " - "remain applicable, and use `describe_dbo_tool` to inspect or confirm a schema when needed before " - "calling `invoke_dbo_tool`." -) -def list_dbo_tools( - skill_names: list[str] = Field( - ..., - min_length=1, - description="Required skill names returned by list_dbo_skills. Only tools belonging to these skills are listed.", - ), - limit: int = Field(50, ge=1, le=100, description="Maximum compact tool entries to return."), -) -> dict[str, Any]: - selected = set(skill_names) - tools = registry.list_tools(selected) - return { - "count": len(tools), - "tools": [ - { - "name": tool["name"], - "description": tool["description"], - "skills": list(tool["skills"]), - "mutable": tool["mutable"], - } - for tool in tools[:limit] - ], - "truncated": len(tools) > limit, - } - -@mcp.tool( - description="Retrieve the complete invocation contract for one Oracle Database Observability tool selected from " - "`list_dbo_tools`. Returns the exact JSON input schema, required fields, and mutability metadata. " - "Call it when the schema is unavailable, outdated, or uncertain; a previously retrieved applicable " - "schema may be reused." -) -def describe_dbo_tool( - tool_name: str = Field(..., description="Required logical tool name returned by list_dbo_tools, for example list_database_insights."), -) -> dict[str, Any]: - tool = registry.get_tool(tool_name) - return { - "name": tool["name"], - "description": tool["description"], - "inputSchema": to_jsonable(tool["inputSchema"]), - "mutable": tool["mutable"], - "guidance": "Pass an arguments object that exactly matches inputSchema.", - } - -@mcp.tool( - description="Invoke one registered Oracle Database Observability operation. The supplied arguments object must " - "conform exactly to the selected tool's known `inputSchema`; use `describe_dbo_tool` first when that " - "schema is unavailable, outdated, or uncertain. This is the sole endpoint that executes catalog " - "operations." -) -def invoke_dbo_tool( - tool_name: str = Field(..., description="Required logical tool name returned by list_dbo_tools or otherwise known."), - arguments: dict[str, Any] = Field(default_factory=dict, description="Required JSON object of SDK arguments matching the exact known inputSchema."), -) -> Any: - return invoke_registered_tool(registry.get_tool(tool_name), arguments) diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/metadata/manifest.json b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/metadata/manifest.json deleted file mode 100644 index 34004962..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/metadata/manifest.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "format": "dbo-discovery-registry", - "formatVersion": 1, - "skills": "skills.json", - "tools": "tools.json" -} diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/metadata/skills.json b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/metadata/skills.json deleted file mode 100644 index e823f141..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/metadata/skills.json +++ /dev/null @@ -1,437 +0,0 @@ -{ - "skills": [ - { - "name": "advanced-diagnostics-addm-session-control-bulk-retrieve", - "description": "Read-only ADDM task inventory for managed databases.", - "tools": [ - "addm_tasks" - ] - }, - { - "name": "async-work-requests-long-running-operations", - "description": "Read-only tracking of asynchronous OCI work requests, including status, logs, and errors.", - "tools": [ - "get_work_request", - "list_work_request_errors", - "list_work_request_logs", - "list_work_requests" - ] - }, - { - "name": "awr-discovery-primitives", - "description": "Discovery primitives for AWR databases and snapshot inventories.", - "tools": [ - "list_awr_db_snapshots", - "list_awr_dbs" - ] - }, - { - "name": "awr-historical-performance-analysis", - "description": "AWR historical summarization across CPU, waits, metrics, parameters, and system statistics.", - "tools": [ - "summarize_awr_db_cpu_usages", - "summarize_awr_db_metrics", - "summarize_awr_db_parameter_changes", - "summarize_awr_db_parameters", - "summarize_awr_db_snapshot_ranges", - "summarize_awr_db_sysstats", - "summarize_awr_db_top_wait_events", - "summarize_awr_db_wait_event_buckets", - "summarize_awr_db_wait_events" - ] - }, - { - "name": "cloud-asm-core", - "description": "Cloud ASM inventory, configuration, users, disk groups, and metrics.", - "tools": [ - "get_cloud_asm", - "get_cloud_asm_configuration", - "get_cloud_asm_instance", - "list_cloud_asm_disk_groups", - "list_cloud_asm_instances", - "list_cloud_asm_users", - "list_cloud_asms", - "summarize_cloud_asm_metrics" - ] - }, - { - "name": "cloud-db-runtime-topology", - "description": "Read-only runtime topology and health checks for Cloud DB clusters, nodes, listeners, DB homes, and connectors.", - "tools": [ - "get_cloud_cluster", - "get_cloud_cluster_instance", - "get_cloud_db_home", - "get_cloud_db_node", - "get_cloud_db_system_connector", - "get_cloud_listener", - "list_cloud_cluster_instances", - "list_cloud_clusters", - "list_cloud_db_homes", - "list_cloud_db_nodes", - "list_cloud_db_system_connectors", - "list_cloud_listener_services", - "list_cloud_listeners", - "summarize_cloud_cluster_metrics", - "summarize_cloud_db_node_metrics", - "summarize_cloud_listener_metrics" - ] - }, - { - "name": "cloud-exadata-storage", - "description": "Read-only inventory and inspection of Cloud Exadata storage connectors, servers, grids, IORM plans, and open alerts.", - "tools": [ - "get_cloud_exadata_storage_connector", - "get_cloud_exadata_storage_grid", - "get_cloud_exadata_storage_server", - "get_cloud_iorm_plan", - "get_cloud_open_alert_history", - "list_cloud_exadata_storage_connectors", - "list_cloud_exadata_storage_servers" - ] - }, - { - "name": "cloud-inventory-discovery-connectivity", - "description": "Read-only Cloud DB system inventory and discovery, including connector metadata and availability metrics.", - "tools": [ - "get_cloud_db_system", - "get_cloud_db_system_discovery", - "get_cloud_exadata_infrastructure", - "list_cloud_databases", - "list_cloud_db_system_discoveries", - "list_cloud_db_systems", - "list_cloud_exadata_infrastructures", - "summarize_cloud_db_system_availability_metrics" - ] - }, - { - "name": "credentials-and-authentication-preferred-named", - "description": "Read-only named credential and preferred credential inventory and mapping inspection in OCI DBM.", - "tools": [ - "get_named_credential", - "get_preferred_credential", - "list_named_credentials", - "list_preferred_credentials" - ] - }, - { - "name": "database-addm-analysis", - "description": "Diagnose likely root causes using ADDM findings, recommendations, categories, and time-series patterns across one database or a fleet.", - "tools": [ - "list_addm_db_finding_categories", - "list_addm_db_findings_time_series", - "list_addm_db_parameter_categories", - "list_addm_db_recommendation_categories", - "list_addm_db_recommendations_time_series", - "list_addm_dbs", - "summarize_addm_db_findings", - "summarize_addm_db_parameter_changes", - "summarize_addm_db_parameters", - "summarize_addm_db_recommendations", - "summarize_addm_db_schema_objects", - "summarize_addm_db_sql_statements" - ] - }, - { - "name": "database-capacity-usage-and-forecasting", - "description": "Use this skill for fleet and per-database capacity planning, utilization analysis, usage trending, and growth forecasting.", - "tools": [ - "summarize_database_insight_resource_capacity_trend", - "summarize_database_insight_resource_forecast_trend", - "summarize_database_insight_resource_statistics", - "summarize_database_insight_resource_usage", - "summarize_database_insight_resource_usage_trend", - "summarize_database_insight_resource_utilization_insight", - "summarize_database_insight_tablespace_usage_trend" - ] - }, - { - "name": "database-configuration-and-parameters", - "description": "Read-only database parameter inventory and configuration baseline checks in OCI DBM.", - "tools": [ - "list_database_parameters" - ] - }, - { - "name": "database-health-and-core-metrics", - "description": "Read-only health and core runtime metric checks for managed databases in OCI DBM.", - "tools": [ - "get_cluster_cache_metric", - "get_database_home_metrics", - "get_pdb_metrics", - "summarize_managed_database_availability_metrics" - ] - }, - { - "name": "database-inventory", - "description": "Discover managed databases and database insight resources, then retrieve details for verified targets.", - "tools": [ - "get_database_insight", - "get_managed_database", - "list_database_configurations", - "list_database_insights", - "list_managed_databases" - ] - }, - { - "name": "database-performance-analysis", - "description": "Use this skill for workload regression and bottleneck diagnosis using AWR evidence, wait analysis, CPU profiles, metric trends, and SQL/plan context.", - "tools": [ - "get_awr_database_report", - "get_awr_database_sql_report", - "get_awr_db_report", - "list_awr_database_snapshots", - "list_awr_databases", - "list_sql_plans", - "list_sql_searches", - "list_sql_texts", - "summarize_awr_database_cpu_usages", - "summarize_awr_database_metrics", - "summarize_awr_database_parameter_changes", - "summarize_awr_database_parameters", - "summarize_awr_database_snapshot_ranges", - "summarize_awr_database_sysstats", - "summarize_awr_database_top_wait_events", - "summarize_awr_database_wait_event_buckets", - "summarize_awr_database_wait_events", - "summarize_sql_insights", - "summarize_sql_plan_insights", - "summarize_sql_response_time_distributions", - "summarize_sql_statistics", - "summarize_sql_statistics_time_series", - "summarize_sql_statistics_time_series_by_plan" - ] - }, - { - "name": "exadata-fleet-health-analytics", - "description": "Read-only Exadata infrastructure fleet health analytics in OCI DBM.", - "tools": [ - "get_exadata_infrastructure_fleet_health_metrics" - ] - }, - { - "name": "exadatainsights", - "description": "Read-only Exadata usage, capacity, forecast, utilization, and member-inventory analysis in OCI Operations Insights.", - "tools": [ - "get_exadata_insight", - "list_exadata_configurations", - "list_exadata_insights", - "summarize_exadata_insight_resource_capacity_trend", - "summarize_exadata_insight_resource_capacity_trend_aggregated", - "summarize_exadata_insight_resource_forecast_trend", - "summarize_exadata_insight_resource_forecast_trend_aggregated", - "summarize_exadata_insight_resource_statistics", - "summarize_exadata_insight_resource_usage", - "summarize_exadata_insight_resource_usage_aggregated", - "summarize_exadata_insight_resource_utilization_insight", - "summarize_exadata_members" - ] - }, - { - "name": "external-asm-core", - "description": "Read-only monitoring workflows for external ASM resources in OCI Database Management.", - "tools": [ - "get_external_asm", - "get_external_asm_configuration", - "get_external_asm_instance", - "list_external_asm_disk_groups", - "list_external_asm_instances", - "list_external_asm_users", - "list_external_asms", - "summarize_external_asm_metrics" - ] - }, - { - "name": "external-db-runtime-topology", - "description": "Read-only runtime topology workflows for external clusters, listeners, and DB nodes in OCI Database Management.", - "tools": [ - "get_external_cluster", - "get_external_cluster_instance", - "get_external_db_node", - "get_external_listener", - "list_external_cluster_instances", - "list_external_clusters", - "list_external_db_nodes", - "list_external_listener_services", - "list_external_listeners", - "summarize_external_cluster_metrics", - "summarize_external_db_node_metrics", - "summarize_external_listener_metrics" - ] - }, - { - "name": "external-exadata-storage", - "description": "Read-only inventory and inspection of external Exadata storage connectors, servers, grids, IORM plans, alerts, and top SQL CPU activity.", - "tools": [ - "get_external_exadata_storage_connector", - "get_external_exadata_storage_grid", - "get_external_exadata_storage_server", - "get_iorm_plan", - "get_open_alert_history", - "get_top_sql_cpu_activity", - "list_external_exadata_storage_connectors", - "list_external_exadata_storage_servers" - ] - }, - { - "name": "external-inventory-discovery-connectivity", - "description": "Read-only discovery, inventory, and connector inspection for external DB systems in OCI Database Management.", - "tools": [ - "get_external_db_home", - "get_external_db_system", - "get_external_db_system_connector", - "get_external_db_system_discovery", - "get_external_exadata_infrastructure", - "list_external_databases", - "list_external_db_homes", - "list_external_db_system_connectors", - "list_external_db_system_discoveries", - "list_external_db_systems", - "list_external_exadata_infrastructures", - "summarize_external_db_system_availability_metrics" - ] - }, - { - "name": "fleet-health-analytics-across-many-databases", - "description": "Fleet-level health analytics across many managed databases in OCI Database Management.", - "tools": [ - "get_database_fleet_health_metrics" - ] - }, - { - "name": "high-availability-data-guard-and-backups-fleet-single-db", - "description": "Data Guard, backup, and HA analytics for fleet and single-database workflows in OCI Database Management.", - "tools": [ - "get_database_fleet_backup_metrics", - "get_database_fleet_dataguard_metrics", - "get_database_fleet_ha_overview_metrics", - "get_database_ha_backup_details", - "get_dataguard_performance_metrics", - "get_peer_database_metrics" - ] - }, - { - "name": "hostinsights", - "description": "Read-only host capacity, usage, forecast, and recommendation analysis in OCI Operations Insights.", - "tools": [ - "get_host_insight", - "list_host_configurations", - "list_host_insights", - "list_hosted_entities", - "summarize_host_insight_disk_statistics", - "summarize_host_insight_host_recommendation", - "summarize_host_insight_io_usage_trend", - "summarize_host_insight_network_usage_trend", - "summarize_host_insight_resource_capacity_trend", - "summarize_host_insight_resource_forecast_trend", - "summarize_host_insight_resource_statistics", - "summarize_host_insight_resource_usage", - "summarize_host_insight_resource_usage_trend", - "summarize_host_insight_resource_utilization_insight", - "summarize_host_insight_storage_usage_trend", - "summarize_host_insight_top_processes_usage", - "summarize_host_insight_top_processes_usage_trend" - ] - }, - { - "name": "job-orchestration-and-execution-tracking", - "description": "Read-only job, run, and execution inventory with status summaries in OCI Database Management.", - "tools": [ - "get_job", - "get_job_execution", - "get_job_run", - "list_job_executions", - "list_job_runs", - "list_jobs", - "summarize_job_executions_statuses" - ] - }, - { - "name": "logs-and-alerts-attention-alert-logs", - "description": "Alert and attention log retrieval and count-summary workflows for managed databases in OCI Database Management.", - "tools": [ - "list_alert_logs", - "list_attention_logs", - "summarize_alert_log_counts", - "summarize_attention_log_counts" - ] - }, - { - "name": "managed-database-groups-organize-and-target-sets-of-databases", - "description": "Read-only managed database group inventory and detail inspection in OCI Database Management.", - "tools": [ - "get_managed_database_group", - "list_managed_database_groups" - ] - }, - { - "name": "news-reports-and-advisories", - "description": "Tools related to news-reports-and-advisories functionality.", - "tools": [ - "get_news_report", - "list_news_reports" - ] - }, - { - "name": "oci-common", - "description": "Read-only discovery workflows for OCI Identity (20160918) tenancy, compartment, and region topology.", - "tools": [ - "list_region_subscriptions", - "list_regions" - ] - }, - { - "name": "operations-insights-warehouse-admin", - "description": "Tools related to operations-insights-warehouse-admin functionality.", - "tools": [ - "get_operations_insights_warehouse", - "get_operations_insights_warehouse_user", - "list_operations_insights_warehouse_users", - "list_operations_insights_warehouses", - "summarize_operations_insights_warehouse_resource_usage" - ] - }, - { - "name": "opsi-configurations-and-datastores", - "description": "Read-only Operations Insights configuration inventory and detail inspection.", - "tools": [ - "get_opsi_configuration", - "list_opsi_configurations" - ] - }, - { - "name": "private-endpoints-and-connectivity", - "description": "Database Management private endpoint discovery, inspection, and associated database mapping.", - "tools": [ - "get_db_management_private_endpoint", - "get_operations_insights_private_endpoint", - "list_associated_databases", - "list_db_management_private_endpoints", - "list_operations_insights_private_endpoints" - ] - }, - { - "name": "storage-and-space-tablespaces-asm", - "description": "Tablespace and ASM property retrieval for managed database storage and space checks.", - "tools": [ - "get_tablespace", - "list_asm_properties", - "list_tablespaces" - ] - }, - { - "name": "users-and-privileges-rbac-audit", - "description": "Database users, roles, and privilege audit surfaces including proxy and data access container visibility.", - "tools": [ - "get_user", - "list_consumer_group_privileges", - "list_data_access_containers", - "list_object_privileges", - "list_proxied_for_users", - "list_proxy_users", - "list_roles", - "list_system_privileges", - "list_users" - ] - } - ] -} diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/metadata/tools.json b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/metadata/tools.json deleted file mode 100644 index 9c74f593..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/metadata/tools.json +++ /dev/null @@ -1,16302 +0,0 @@ -{ - "tools": [ - { - "name": "addm_tasks", - "description": "Returns ADDM tasks whose end snapshot time falls within the requested time range.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "addm_tasks", - "skills": [ - "advanced-diagnostics-addm-session-control-bulk-retrieve" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "opc_named_credential_id": { - "type": "string", - "description": "The OCID of the Named Credential." - }, - "sort_by": { - "type": "string", - "enum": [ - "TASK_NAME", - "TASK_ID", - "DESCRIPTION", - "DB_USER", - "STATUS", - "TIME_CREATED", - "BEGIN_TIME", - "END_TIME" - ], - "description": "The option to sort the list of ADDM tasks.\n\nAllowed values are: \"TASK_NAME\", \"TASK_ID\", \"DESCRIPTION\", \"DB_USER\", \"STATUS\", \"TIME_CREATED\", \"BEGIN_TIME\", \"END_TIME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "time_end": { - "type": "string", - "format": "date-time", - "description": "The end of the time range to search for ADDM tasks as defined by date-time RFC3339 format." - }, - "time_start": { - "type": "string", - "format": "date-time", - "description": "The beginning of the time range to search for ADDM tasks as defined by date-time RFC3339 format." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "managed_database_id", - "time_start", - "time_end" - ] - }, - "mutable": false - }, - { - "name": "get_awr_database_report", - "description": "Returns the AWR report payload for a selected database and snapshot range, including SQL, wait-event, and load-profile sections.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "get_awr_database_report", - "skills": [ - "database-performance-analysis" - ], - "inputSchema": { - "type": "object", - "properties": { - "awr_hub_id": { - "type": "string", - "description": "Unique Awr Hub identifier" - }, - "awr_source_database_identifier": { - "type": "string", - "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results." - }, - "begin_snapshot_identifier_greater_than_or_equal_to": { - "type": "integer", - "description": "The optional greater than or equal to filter on the snapshot ID." - }, - "end_snapshot_identifier_less_than_or_equal_to": { - "type": "integer", - "description": "The optional less than or equal to query parameter to filter the snapshot Identifier." - }, - "instance_number": { - "type": "string", - "description": "The optional single value query parameter to filter by database instance number." - }, - "report_format": { - "type": "string", - "enum": [ - "HTML", - "TEXT" - ], - "description": "The format of the AWR report. Allowed values are: \"HTML\", \"TEXT\"" - }, - "report_type": { - "type": "string", - "enum": [ - "AWR", - "ASH" - ], - "description": "The query parameter to filter the AWR report types. Allowed values are: \"AWR\", \"ASH\"" - }, - "time_greater_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" - }, - "time_less_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "awr_hub_id", - "awr_source_database_identifier" - ] - }, - "mutable": false - }, - { - "name": "get_awr_database_sql_report", - "description": "Returns SQL health-check output for a specific SQL ID from AWR, including execution profile, plan details, and SQL-level findings.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "get_awr_database_sql_report", - "skills": [ - "database-performance-analysis" - ], - "inputSchema": { - "type": "object", - "properties": { - "awr_hub_id": { - "type": "string", - "description": "Unique Awr Hub identifier" - }, - "awr_source_database_identifier": { - "type": "string", - "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results." - }, - "begin_snapshot_identifier_greater_than_or_equal_to": { - "type": "integer", - "description": "The optional greater than or equal to filter on the snapshot ID." - }, - "end_snapshot_identifier_less_than_or_equal_to": { - "type": "integer", - "description": "The optional less than or equal to query parameter to filter the snapshot Identifier." - }, - "instance_number": { - "type": "string", - "description": "The optional single value query parameter to filter by database instance number." - }, - "report_format": { - "type": "string", - "enum": [ - "HTML", - "TEXT" - ], - "description": "The format of the AWR report. Allowed values are: \"HTML\", \"TEXT\"" - }, - "sql_id": { - "type": "string", - "description": "Oracle-generated SQL ID for a SQL statement in the AWR data." - }, - "time_greater_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" - }, - "time_less_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "awr_hub_id", - "awr_source_database_identifier", - "sql_id" - ] - }, - "mutable": false - }, - { - "name": "get_awr_db_report", - "description": "Returns full AWR database report content for the selected snapshot range and output format (for example text or HTML).", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_awr_db_report", - "skills": [ - "database-performance-analysis" - ], - "inputSchema": { - "type": "object", - "properties": { - "awr_db_id": { - "type": "string", - "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results." - }, - "begin_sn_id_greater_than_or_equal_to": { - "type": "integer", - "description": "The optional greater than or equal to filter on the snapshot ID." - }, - "container_id": { - "type": "integer", - "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results." - }, - "end_sn_id_less_than_or_equal_to": { - "type": "integer", - "description": "The optional less than or equal to query parameter to filter the snapshot ID." - }, - "inst_nums": { - "type": "array", - "items": { - "type": "integer" - }, - "description": "The optional multiple value query parameter to filter the database instance numbers." - }, - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "opc_named_credential_id": { - "type": "string", - "description": "The OCID of the Named Credential." - }, - "report_format": { - "type": "string", - "enum": [ - "HTML", - "TEXT" - ], - "description": "The format of the AWR report.\n\nAllowed values are: \"HTML\", \"TEXT\"" - }, - "report_type": { - "type": "string", - "enum": [ - "AWR", - "ASH" - ], - "description": "The query parameter to filter the AWR report types.\n\nAllowed values are: \"AWR\", \"ASH\"" - }, - "time_greater_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional greater than or equal to query parameter to filter the timestamp." - }, - "time_less_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional less than or equal to query parameter to filter the timestamp." - }, - "opc_request_id": { - "type": "string" - }, - "opc_retry_token": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "managed_database_id", - "awr_db_id" - ] - }, - "mutable": false - }, - { - "name": "get_cloud_asm", - "description": "Gets the cloud ASM details.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_cloud_asm", - "skills": [ - "cloud-asm-core" - ], - "inputSchema": { - "type": "object", - "properties": { - "cloud_asm_id": { - "type": "string", - "description": "The OCID of the cloud ASM." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "cloud_asm_id" - ] - }, - "mutable": false - }, - { - "name": "get_cloud_asm_configuration", - "description": "Gets the cloud ASM configuration.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_cloud_asm_configuration", - "skills": [ - "cloud-asm-core" - ], - "inputSchema": { - "type": "object", - "properties": { - "cloud_asm_id": { - "type": "string", - "description": "The OCID of the cloud ASM." - }, - "opc_named_credential_id": { - "type": "string", - "description": "The OCID of the Named Credential." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "cloud_asm_id" - ] - }, - "mutable": false - }, - { - "name": "get_cloud_asm_instance", - "description": "Gets the cloud ASM instance details.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_cloud_asm_instance", - "skills": [ - "cloud-asm-core" - ], - "inputSchema": { - "type": "object", - "properties": { - "cloud_asm_instance_id": { - "type": "string", - "description": "The OCID of the cloud ASM instance." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "cloud_asm_instance_id" - ] - }, - "mutable": false - }, - { - "name": "get_cloud_cluster", - "description": "Gets the cloud cluster details.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_cloud_cluster", - "skills": [ - "cloud-db-runtime-topology" - ], - "inputSchema": { - "type": "object", - "properties": { - "cloud_cluster_id": { - "type": "string", - "description": "The OCID of the cloud cluster." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "cloud_cluster_id" - ] - }, - "mutable": false - }, - { - "name": "get_cloud_cluster_instance", - "description": "Gets the cloud cluster instance details.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_cloud_cluster_instance", - "skills": [ - "cloud-db-runtime-topology" - ], - "inputSchema": { - "type": "object", - "properties": { - "cloud_cluster_instance_id": { - "type": "string", - "description": "The OCID of the cloud cluster instance." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "cloud_cluster_instance_id" - ] - }, - "mutable": false - }, - { - "name": "get_cloud_db_home", - "description": "Gets the cloud DB home details.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_cloud_db_home", - "skills": [ - "cloud-db-runtime-topology" - ], - "inputSchema": { - "type": "object", - "properties": { - "cloud_db_home_id": { - "type": "string", - "description": "The OCID of the cloud database home." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "cloud_db_home_id" - ] - }, - "mutable": false - }, - { - "name": "get_cloud_db_node", - "description": "Gets the cloud DB node details.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_cloud_db_node", - "skills": [ - "cloud-db-runtime-topology" - ], - "inputSchema": { - "type": "object", - "properties": { - "cloud_db_node_id": { - "type": "string", - "description": "The OCID of the cloud database node." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "cloud_db_node_id" - ] - }, - "mutable": false - }, - { - "name": "get_cloud_db_system", - "description": "Returns details for one Cloud DB system so admins can verify DB system identity, state, and context.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_cloud_db_system", - "skills": [ - "cloud-inventory-discovery-connectivity" - ], - "inputSchema": { - "type": "object", - "properties": { - "cloud_db_system_id": { - "type": "string", - "description": "The OCID of the cloud DB system." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "cloud_db_system_id" - ] - }, - "mutable": false - }, - { - "name": "get_cloud_db_system_connector", - "description": "Gets the cloud connector details.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_cloud_db_system_connector", - "skills": [ - "cloud-db-runtime-topology" - ], - "inputSchema": { - "type": "object", - "properties": { - "cloud_db_system_connector_id": { - "type": "string", - "description": "The OCID of the cloud connector." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "cloud_db_system_connector_id" - ] - }, - "mutable": false - }, - { - "name": "get_cloud_db_system_discovery", - "description": "Returns details for one Cloud DB system discovery resource so admins can validate discovery status and metadata.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_cloud_db_system_discovery", - "skills": [ - "cloud-inventory-discovery-connectivity" - ], - "inputSchema": { - "type": "object", - "properties": { - "cloud_db_system_discovery_id": { - "type": "string", - "description": "The OCID of the cloud DB system discovery." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "cloud_db_system_discovery_id" - ] - }, - "mutable": false - }, - { - "name": "get_cloud_exadata_infrastructure", - "description": "Returns details for one Cloud Exadata infrastructure so admins can validate infrastructure identity and state.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_cloud_exadata_infrastructure", - "skills": [ - "cloud-inventory-discovery-connectivity" - ], - "inputSchema": { - "type": "object", - "properties": { - "cloud_exadata_infrastructure_id": { - "type": "string", - "description": "The OCID of the Exadata infrastructure." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "cloud_exadata_infrastructure_id" - ] - }, - "mutable": false - }, - { - "name": "get_cloud_exadata_storage_connector", - "description": "Returns details for one Cloud Exadata storage connector so admins can validate connector state and configuration context.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_cloud_exadata_storage_connector", - "skills": [ - "cloud-exadata-storage" - ], - "inputSchema": { - "type": "object", - "properties": { - "cloud_exadata_storage_connector_id": { - "type": "string", - "description": "The OCID of the connector to the Exadata storage server." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "cloud_exadata_storage_connector_id" - ] - }, - "mutable": false - }, - { - "name": "get_cloud_exadata_storage_grid", - "description": "Returns Cloud Exadata storage grid details so admins can validate grid-level storage configuration context.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_cloud_exadata_storage_grid", - "skills": [ - "cloud-exadata-storage" - ], - "inputSchema": { - "type": "object", - "properties": { - "cloud_exadata_storage_grid_id": { - "type": "string", - "description": "The OCID of the Exadata storage grid." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "cloud_exadata_storage_grid_id" - ] - }, - "mutable": false - }, - { - "name": "get_cloud_exadata_storage_server", - "description": "Returns details for one Cloud Exadata storage server so admins can verify server state and storage context.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_cloud_exadata_storage_server", - "skills": [ - "cloud-exadata-storage" - ], - "inputSchema": { - "type": "object", - "properties": { - "cloud_exadata_storage_server_id": { - "type": "string", - "description": "The OCID of the Exadata storage server." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "cloud_exadata_storage_server_id" - ] - }, - "mutable": false - }, - { - "name": "get_cloud_iorm_plan", - "description": "Returns the I/O Resource Manager (IORM) plan for a Cloud Exadata storage server so admins can review resource allocation policy.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_cloud_iorm_plan", - "skills": [ - "cloud-exadata-storage" - ], - "inputSchema": { - "type": "object", - "properties": { - "cloud_exadata_storage_server_id": { - "type": "string", - "description": "The OCID of the Exadata storage server." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "cloud_exadata_storage_server_id" - ] - }, - "mutable": false - }, - { - "name": "get_cloud_listener", - "description": "Gets the cloud listener details.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_cloud_listener", - "skills": [ - "cloud-db-runtime-topology" - ], - "inputSchema": { - "type": "object", - "properties": { - "cloud_listener_id": { - "type": "string", - "description": "The OCID of the cloud listener." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "cloud_listener_id" - ] - }, - "mutable": false - }, - { - "name": "get_cloud_open_alert_history", - "description": "Returns open alert history for a Cloud Exadata storage server so admins can review active storage issues.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_cloud_open_alert_history", - "skills": [ - "cloud-exadata-storage" - ], - "inputSchema": { - "type": "object", - "properties": { - "cloud_exadata_storage_server_id": { - "type": "string", - "description": "The OCID of the Exadata storage server." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "cloud_exadata_storage_server_id" - ] - }, - "mutable": false - }, - { - "name": "get_cluster_cache_metric", - "description": "Returns cluster cache metric summaries so admins can assess RAC cache efficiency and interconnect behavior.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_cluster_cache_metric", - "skills": [ - "database-health-and-core-metrics" - ], - "inputSchema": { - "type": "object", - "properties": { - "end_time": { - "type": "string", - "description": "The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." - }, - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "start_time": { - "type": "string", - "description": "The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "managed_database_id", - "start_time", - "end_time" - ] - }, - "mutable": false - }, - { - "name": "get_database_fleet_backup_metrics", - "description": "Returns fleet backup metrics so you can assess backup health, recovery posture, and retention trends.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_database_fleet_backup_metrics", - "skills": [ - "high-availability-data-guard-and-backups-fleet-single-db" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "database_hosted_in": { - "type": "string", - "enum": [ - "CLOUD", - "EXTERNAL" - ], - "description": "Indicates whether the database is a cloud database or an external database.\n\nAllowed values are: \"CLOUD\", \"EXTERNAL\"" - }, - "end_time": { - "type": "string", - "description": "The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." - }, - "filter_by_metric_names": { - "type": "string", - "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "managed_database_group_id": { - "type": "string", - "description": "The OCID of the Managed Database Group." - }, - "sort_by": { - "type": "string", - "enum": [ - "DATABASENAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `DATABASENAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"DATABASENAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "start_time": { - "type": "string", - "description": "The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." - }, - "defined_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "defined_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "database_hosted_in", - "start_time", - "end_time" - ] - }, - "mutable": false - }, - { - "name": "get_database_fleet_dataguard_metrics", - "description": "Returns fleet Data Guard metrics for Data Guard-enabled databases so you can identify replication risk hotspots.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_database_fleet_dataguard_metrics", - "skills": [ - "high-availability-data-guard-and-backups-fleet-single-db" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "filter_by_metric_names": { - "type": "string", - "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "managed_database_group_id": { - "type": "string", - "description": "The OCID of the Managed Database Group." - }, - "sort_by": { - "type": "string", - "enum": [ - "DATABASENAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `DATABASENAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"DATABASENAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "defined_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "defined_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false - }, - "mutable": false - }, - { - "name": "get_database_fleet_ha_overview_metrics", - "description": "Returns fleet HA and backup overview metrics so you can assess resilience posture across databases.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_database_fleet_ha_overview_metrics", - "skills": [ - "high-availability-data-guard-and-backups-fleet-single-db" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "filter_by_metric_names": { - "type": "string", - "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "managed_database_group_id": { - "type": "string", - "description": "The OCID of the Managed Database Group." - }, - "sort_by": { - "type": "string", - "enum": [ - "DATABASENAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `DATABASENAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"DATABASENAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "defined_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "defined_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false - }, - "mutable": false - }, - { - "name": "get_database_fleet_health_metrics", - "description": "Returns fleet health metrics across databases so admins can compare usage and availability trends by baseline and target windows.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_database_fleet_health_metrics", - "skills": [ - "fleet-health-analytics-across-many-databases" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "compare_baseline_time": { - "type": "string", - "description": "The baseline time for metrics comparison. Use UTC ISO 8601 format with milliseconds: YYYY-MM-DDThh:mm:ss.SSSZ." - }, - "compare_target_time": { - "type": "string", - "description": "The target time for metrics comparison. Use UTC ISO 8601 format with milliseconds: YYYY-MM-DDThh:mm:ss.SSSZ." - }, - "compare_type": { - "type": "string", - "enum": [ - "HOUR", - "DAY", - "WEEK" - ], - "description": "The time window used for metrics comparison.\n\nAllowed values are: \"HOUR\", \"DAY\", \"WEEK\"" - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "filter_by_database_deployment_type": { - "type": "string", - "description": "The filter used to filter the databases in the fleet by a specific Oracle Database deployment type." - }, - "filter_by_database_sub_type": { - "type": "string", - "description": "The filter used to filter the databases in the fleet by a specific Oracle Database subtype." - }, - "filter_by_database_type": { - "type": "string", - "description": "The filter used to filter the databases in the fleet by a specific Oracle Database type." - }, - "filter_by_database_version": { - "type": "string", - "description": "The filter used to filter the databases in the fleet by a specific Oracle Database version." - }, - "filter_by_metric_names": { - "type": "string", - "enum": [ - "CPUTime", - "DBTime", - "CpuCount", - "IOPS", - "IOThroughput", - "MemoryUsage", - "StorageAllocated", - "StorageUsed", - "MonitoringStatus", - "WaitTime", - "CpuUtilization", - "StorageUtilization" - ], - "description": "The filter used to retrieve a specific metric. Allowed values are CPUTime, DBTime, CpuCount, IOPS, IOThroughput, MemoryUsage, StorageAllocated, StorageUsed, MonitoringStatus, WaitTime, CpuUtilization, and StorageUtilization. Omit this parameter to return all supported metrics." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "managed_database_group_id": { - "type": "string", - "description": "The OCID of the Managed Database Group." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIMECREATED", - "NAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "defined_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "defined_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compare_baseline_time", - "compare_target_time" - ] - }, - "mutable": false - }, - { - "name": "get_database_ha_backup_details", - "description": "Returns HA and backup details for one managed database, including metrics and backup history for deep-dive analysis.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_database_ha_backup_details", - "skills": [ - "high-availability-data-guard-and-backups-fleet-single-db" - ], - "inputSchema": { - "type": "object", - "properties": { - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "opc_named_credential_id": { - "type": "string", - "description": "The OCID of the Named Credential." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "managed_database_id" - ] - }, - "mutable": false - }, - { - "name": "get_database_home_metrics", - "description": "Returns database home activity and resource usage summaries so admins can evaluate database home health and load.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_database_home_metrics", - "skills": [ - "database-health-and-core-metrics" - ], - "inputSchema": { - "type": "object", - "properties": { - "end_time": { - "type": "string", - "description": "The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." - }, - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "start_time": { - "type": "string", - "description": "The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "managed_database_id", - "start_time", - "end_time" - ] - }, - "mutable": false - }, - { - "name": "get_database_insight", - "description": "Returns detailed state for one database insight, including databaseId that maps the insight to the DB resource OCID for downstream calls.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "get_database_insight", - "skills": [ - "database-inventory" - ], - "inputSchema": { - "type": "object", - "properties": { - "database_insight_id": { - "type": "string", - "description": "Unique database insight identifier" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "database_insight_id" - ] - }, - "mutable": false - }, - { - "name": "get_dataguard_performance_metrics", - "description": "Returns Data Guard performance metrics for a managed database so you can assess lag, apply rate, and failover readiness.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_dataguard_performance_metrics", - "skills": [ - "high-availability-data-guard-and-backups-fleet-single-db" - ], - "inputSchema": { - "type": "object", - "properties": { - "end_time": { - "type": "string", - "description": "The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." - }, - "filter_by_metric_names": { - "type": "string", - "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." - }, - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "peer_database_compartment_id": { - "type": "string", - "description": "The OCID of the compartment for which peer database metrics are required. This is not a mandatory parameter and in its absence, all the peer database metrics are returned." - }, - "start_time": { - "type": "string", - "description": "The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "managed_database_id", - "start_time", - "end_time" - ] - }, - "mutable": false - }, - { - "name": "get_db_management_private_endpoint", - "description": "Returns details for one Database Management private endpoint identified by dbManagementPrivateEndpointId.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_db_management_private_endpoint", - "skills": [ - "private-endpoints-and-connectivity" - ], - "inputSchema": { - "type": "object", - "properties": { - "db_management_private_endpoint_id": { - "type": "string", - "description": "The OCID of the Database Management private endpoint." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "db_management_private_endpoint_id" - ] - }, - "mutable": false - }, - { - "name": "get_exadata_infrastructure_fleet_health_metrics", - "description": "Returns Exadata infrastructure fleet health summaries so admins can assess capacity and utilization posture across infrastructure resources.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_exadata_infrastructure_fleet_health_metrics", - "skills": [ - "exadata-fleet-health-analytics" - ], - "inputSchema": { - "type": "object", - "properties": { - "compare_baseline_time": { - "type": "string", - "description": "The baseline time for metrics comparison." - }, - "compare_target_time": { - "type": "string", - "description": "The target time for metrics comparison." - }, - "compare_type": { - "type": "string", - "enum": [ - "HOUR", - "DAY", - "WEEK" - ], - "description": "The time window used for metrics comparison.\n\nAllowed values are: \"HOUR\", \"DAY\", \"WEEK\"" - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "filter_by_exadata_infrastructure_deployment_type": { - "type": "string", - "enum": [ - "ONPREMISE", - "EXADATA", - "EXADATA_CC" - ], - "description": "The filter used to filter the Exadata infrastructures in the fleet by a specific deployment type.\n\nAllowed values are: \"ONPREMISE\", \"EXADATA\", \"EXADATA_CC\"" - }, - "filter_by_exadata_infrastructure_lifecycle_state": { - "type": "string", - "enum": [ - "CREATING", - "ACTIVE", - "INACTIVE", - "UPDATING", - "DELETING", - "DELETED", - "FAILED", - "UNKNOWN" - ], - "description": "The filter used to filter the Exadata infrastructure in the fleet by its lifecycle state.\nIf the parameter is not provided, Exdata infrastructures in any state are returned.\n\nAllowed values are: \"CREATING\", \"ACTIVE\", \"INACTIVE\", \"UPDATING\", \"DELETING\", \"DELETED\", \"FAILED\", \"UNKNOWN\"" - }, - "sort_by": { - "type": "string", - "enum": [ - "TIMECREATED", - "NAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id", - "compare_baseline_time", - "compare_target_time" - ] - }, - "mutable": false - }, - { - "name": "get_exadata_insight", - "description": "Returns Exadata insight details so admins can validate monitoring status and resource metadata for an Exadata target.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "get_exadata_insight", - "skills": [ - "exadatainsights" - ], - "inputSchema": { - "type": "object", - "properties": { - "exadata_insight_id": { - "type": "string" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "exadata_insight_id" - ] - }, - "mutable": false - }, - { - "name": "get_external_asm", - "description": "Returns external ASM details (version, topology, lifecycle) to validate monitoring scope.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_external_asm", - "skills": [ - "external-asm-core" - ], - "inputSchema": { - "type": "object", - "properties": { - "external_asm_id": { - "type": "string", - "description": "The OCID of the external ASM." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "external_asm_id" - ] - }, - "mutable": false - }, - { - "name": "get_external_asm_configuration", - "description": "Returns external ASM configuration, including disk group setup, for configuration checks.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_external_asm_configuration", - "skills": [ - "external-asm-core" - ], - "inputSchema": { - "type": "object", - "properties": { - "external_asm_id": { - "type": "string", - "description": "The OCID of the external ASM." - }, - "opc_named_credential_id": { - "type": "string", - "description": "The OCID of the Named Credential." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "external_asm_id" - ] - }, - "mutable": false - }, - { - "name": "get_external_asm_instance", - "description": "Returns detailed ASM instance properties for node-level validation and diagnostics.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_external_asm_instance", - "skills": [ - "external-asm-core" - ], - "inputSchema": { - "type": "object", - "properties": { - "external_asm_instance_id": { - "type": "string", - "description": "The OCID of the external ASM instance." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "external_asm_instance_id" - ] - }, - "mutable": false - }, - { - "name": "get_external_cluster", - "description": "Returns external cluster details to validate topology and lifecycle state.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_external_cluster", - "skills": [ - "external-db-runtime-topology" - ], - "inputSchema": { - "type": "object", - "properties": { - "external_cluster_id": { - "type": "string", - "description": "The OCID of the external cluster." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "external_cluster_id" - ] - }, - "mutable": false - }, - { - "name": "get_external_cluster_instance", - "description": "Returns external cluster instance details for instance-level runtime validation.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_external_cluster_instance", - "skills": [ - "external-db-runtime-topology" - ], - "inputSchema": { - "type": "object", - "properties": { - "external_cluster_instance_id": { - "type": "string", - "description": "The OCID of the external cluster instance." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "external_cluster_instance_id" - ] - }, - "mutable": false - }, - { - "name": "get_external_db_home", - "description": "Returns external DB home details for home-level configuration and lifecycle validation.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_external_db_home", - "skills": [ - "external-inventory-discovery-connectivity" - ], - "inputSchema": { - "type": "object", - "properties": { - "external_db_home_id": { - "type": "string", - "description": "The OCID of the external database home." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "external_db_home_id" - ] - }, - "mutable": false - }, - { - "name": "get_external_db_node", - "description": "Returns external DB node details for host-level runtime validation.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_external_db_node", - "skills": [ - "external-db-runtime-topology" - ], - "inputSchema": { - "type": "object", - "properties": { - "external_db_node_id": { - "type": "string", - "description": "The OCID of the external database node." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "external_db_node_id" - ] - }, - "mutable": false - }, - { - "name": "get_external_db_system", - "description": "Returns external DB system details to validate system identity, topology, and lifecycle state.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_external_db_system", - "skills": [ - "external-inventory-discovery-connectivity" - ], - "inputSchema": { - "type": "object", - "properties": { - "external_db_system_id": { - "type": "string", - "description": "The OCID of the external DB system." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "external_db_system_id" - ] - }, - "mutable": false - }, - { - "name": "get_external_db_system_connector", - "description": "Returns external DB system connector details to validate connector configuration and status.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_external_db_system_connector", - "skills": [ - "external-inventory-discovery-connectivity" - ], - "inputSchema": { - "type": "object", - "properties": { - "external_db_system_connector_id": { - "type": "string", - "description": "The OCID of the external connector." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "external_db_system_connector_id" - ] - }, - "mutable": false - }, - { - "name": "get_external_db_system_discovery", - "description": "Returns external DB system discovery details to review discovery scope, status, and results.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_external_db_system_discovery", - "skills": [ - "external-inventory-discovery-connectivity" - ], - "inputSchema": { - "type": "object", - "properties": { - "external_db_system_discovery_id": { - "type": "string", - "description": "The OCID of the external DB system discovery." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "external_db_system_discovery_id" - ] - }, - "mutable": false - }, - { - "name": "get_external_exadata_infrastructure", - "description": "Returns external Exadata infrastructure details to validate infrastructure identity and lifecycle state.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_external_exadata_infrastructure", - "skills": [ - "external-inventory-discovery-connectivity" - ], - "inputSchema": { - "type": "object", - "properties": { - "external_exadata_infrastructure_id": { - "type": "string", - "description": "The OCID of the Exadata infrastructure." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "external_exadata_infrastructure_id" - ] - }, - "mutable": false - }, - { - "name": "get_external_exadata_storage_connector", - "description": "Returns external Exadata storage connector details to validate connector configuration and status.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_external_exadata_storage_connector", - "skills": [ - "external-exadata-storage" - ], - "inputSchema": { - "type": "object", - "properties": { - "external_exadata_storage_connector_id": { - "type": "string", - "description": "The OCID of the connector to the Exadata storage server." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "external_exadata_storage_connector_id" - ] - }, - "mutable": false - }, - { - "name": "get_external_exadata_storage_grid", - "description": "Returns external Exadata storage grid details to review grid topology and member servers.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_external_exadata_storage_grid", - "skills": [ - "external-exadata-storage" - ], - "inputSchema": { - "type": "object", - "properties": { - "external_exadata_storage_grid_id": { - "type": "string", - "description": "The OCID of the Exadata storage grid." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "external_exadata_storage_grid_id" - ] - }, - "mutable": false - }, - { - "name": "get_external_exadata_storage_server", - "description": "Returns external Exadata storage server details for server-level validation and diagnostics.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_external_exadata_storage_server", - "skills": [ - "external-exadata-storage" - ], - "inputSchema": { - "type": "object", - "properties": { - "external_exadata_storage_server_id": { - "type": "string", - "description": "The OCID of the Exadata storage server." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "external_exadata_storage_server_id" - ] - }, - "mutable": false - }, - { - "name": "get_external_listener", - "description": "Returns external listener details for endpoint and lifecycle validation.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_external_listener", - "skills": [ - "external-db-runtime-topology" - ], - "inputSchema": { - "type": "object", - "properties": { - "external_listener_id": { - "type": "string", - "description": "The OCID of the external listener." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "external_listener_id" - ] - }, - "mutable": false - }, - { - "name": "get_host_insight", - "description": "Returns host insight details so admins can validate monitoring status and host resource metadata.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "get_host_insight", - "skills": [ - "hostinsights" - ], - "inputSchema": { - "type": "object", - "properties": { - "host_insight_id": { - "type": "string" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "host_insight_id" - ] - }, - "mutable": false - }, - { - "name": "get_iorm_plan", - "description": "Returns the I/O Resource Management (IORM) plan for an external Exadata storage server to review resource-allocation policy.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_iorm_plan", - "skills": [ - "external-exadata-storage" - ], - "inputSchema": { - "type": "object", - "properties": { - "external_exadata_storage_server_id": { - "type": "string", - "description": "The OCID of the Exadata storage server." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "external_exadata_storage_server_id" - ] - }, - "mutable": false - }, - { - "name": "get_job", - "description": "Returns one job definition so you can verify schedule, target scope, and execution settings.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_job", - "skills": [ - "job-orchestration-and-execution-tracking" - ], - "inputSchema": { - "type": "object", - "properties": { - "job_id": { - "type": "string", - "description": "The identifier of the job." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "job_id" - ] - }, - "mutable": false - }, - { - "name": "get_job_execution", - "description": "Returns one job execution with result details so you can investigate success or failure.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_job_execution", - "skills": [ - "job-orchestration-and-execution-tracking" - ], - "inputSchema": { - "type": "object", - "properties": { - "job_execution_id": { - "type": "string", - "description": "The identifier of the job execution." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "job_execution_id" - ] - }, - "mutable": false - }, - { - "name": "get_job_run", - "description": "Returns one job run so you can inspect run status and submission timeline.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_job_run", - "skills": [ - "job-orchestration-and-execution-tracking" - ], - "inputSchema": { - "type": "object", - "properties": { - "job_run_id": { - "type": "string", - "description": "The identifier of the job run." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "job_run_id" - ] - }, - "mutable": false - }, - { - "name": "get_managed_database", - "description": "Returns detailed metadata for one managedDatabaseId, which in current tools is the same value as the DB resource OCID.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_managed_database", - "skills": [ - "database-inventory" - ], - "inputSchema": { - "type": "object", - "properties": { - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "managed_database_id" - ] - }, - "mutable": false - }, - { - "name": "get_managed_database_group", - "description": "Returns managed database group details so you can verify membership and configuration context.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_managed_database_group", - "skills": [ - "managed-database-groups-organize-and-target-sets-of-databases" - ], - "inputSchema": { - "type": "object", - "properties": { - "managed_database_group_id": { - "type": "string", - "description": "The OCID of the Managed Database Group." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "managed_database_group_id" - ] - }, - "mutable": false - }, - { - "name": "get_named_credential", - "description": "Returns details for one named credential so admins can review credential configuration context.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_named_credential", - "skills": [ - "credentials-and-authentication-preferred-named" - ], - "inputSchema": { - "type": "object", - "properties": { - "named_credential_id": { - "type": "string", - "description": "The OCID of the named credential." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "named_credential_id" - ] - }, - "mutable": false - }, - { - "name": "get_news_report", - "description": "Returns one news report so admins can review advisory details and decide follow-up actions.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "get_news_report", - "skills": [ - "news-reports-and-advisories" - ], - "inputSchema": { - "type": "object", - "properties": { - "news_report_id": { - "type": "string" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "news_report_id" - ] - }, - "mutable": false - }, - { - "name": "get_open_alert_history", - "description": "Returns open alert history from an external Exadata storage server to identify active operational issues.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_open_alert_history", - "skills": [ - "external-exadata-storage" - ], - "inputSchema": { - "type": "object", - "properties": { - "external_exadata_storage_server_id": { - "type": "string", - "description": "The OCID of the Exadata storage server." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "external_exadata_storage_server_id" - ] - }, - "mutable": false - }, - { - "name": "get_operations_insights_private_endpoint", - "description": "Returns private endpoint details and lifecycle state so admins can validate secure network connectivity for Operations Insights resources.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "get_operations_insights_private_endpoint", - "skills": [ - "private-endpoints-and-connectivity" - ], - "inputSchema": { - "type": "object", - "properties": { - "opc_request_id": { - "type": "string" - }, - "operations_insights_private_endpoint_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "operations_insights_private_endpoint_id" - ] - }, - "mutable": false - }, - { - "name": "get_operations_insights_warehouse", - "description": "Returns Ops Insights warehouse details so admins can inspect warehouse configuration and lifecycle state.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "get_operations_insights_warehouse", - "skills": [ - "operations-insights-warehouse-admin" - ], - "inputSchema": { - "type": "object", - "properties": { - "opc_request_id": { - "type": "string" - }, - "operations_insights_warehouse_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "operations_insights_warehouse_id" - ] - }, - "mutable": false - }, - { - "name": "get_operations_insights_warehouse_user", - "description": "Returns Operations Insights Warehouse User details so admins can validate warehouse user account state and access context.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "get_operations_insights_warehouse_user", - "skills": [ - "operations-insights-warehouse-admin" - ], - "inputSchema": { - "type": "object", - "properties": { - "opc_request_id": { - "type": "string" - }, - "operations_insights_warehouse_user_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "operations_insights_warehouse_user_id" - ] - }, - "mutable": false - }, - { - "name": "get_opsi_configuration", - "description": "Returns one OPSI configuration resource so admins can inspect current configuration details for a target resource.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "get_opsi_configuration", - "skills": [ - "opsi-configurations-and-datastores" - ], - "inputSchema": { - "type": "object", - "properties": { - "config_item_custom_status": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "customized", - "nonCustomized" - ] - } - }, - "config_item_field": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "name", - "value", - "defaultValue", - "metadata", - "applicableContexts" - ] - } - }, - "config_items_applicable_context": { - "type": "array", - "items": { - "type": "string" - } - }, - "opc_request_id": { - "type": "string" - }, - "opsi_config_field": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "configItems" - ] - } - }, - "opsi_configuration_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "opsi_configuration_id" - ] - }, - "mutable": false - }, - { - "name": "get_pdb_metrics", - "description": "Returns PDB resource usage summaries so admins can compare DB time, CPU, wait, storage, and memory usage across PDBs.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_pdb_metrics", - "skills": [ - "database-health-and-core-metrics" - ], - "inputSchema": { - "type": "object", - "properties": { - "compare_type": { - "type": "string", - "enum": [ - "HOUR", - "DAY", - "WEEK" - ], - "description": "The time window used for metrics comparison.\n\nAllowed values are: \"HOUR\", \"DAY\", \"WEEK\"" - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "end_time": { - "type": "string", - "description": "The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." - }, - "filter_by_metric_names": { - "type": "string", - "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." - }, - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "start_time": { - "type": "string", - "description": "The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "managed_database_id", - "start_time", - "end_time" - ] - }, - "mutable": false - }, - { - "name": "get_peer_database_metrics", - "description": "Returns baseline-versus-target Data Guard metrics for peer databases so you can compare replication health over time.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_peer_database_metrics", - "skills": [ - "high-availability-data-guard-and-backups-fleet-single-db" - ], - "inputSchema": { - "type": "object", - "properties": { - "compare_type": { - "type": "string", - "enum": [ - "HOUR", - "DAY", - "WEEK" - ], - "description": "The time window used for metrics comparison.\n\nAllowed values are: \"HOUR\", \"DAY\", \"WEEK\"" - }, - "end_time": { - "type": "string", - "description": "The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." - }, - "filter_by_metric_names": { - "type": "string", - "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." - }, - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "peer_database_compartment_id": { - "type": "string", - "description": "The OCID of the compartment for which peer database metrics are required. This is not a mandatory parameter and in its absence, all the peer database metrics are returned." - }, - "start_time": { - "type": "string", - "description": "The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "managed_database_id", - "start_time", - "end_time" - ] - }, - "mutable": false - }, - { - "name": "get_preferred_credential", - "description": "Returns one preferred credential assignment by credential name so admins can verify credential mapping for the database.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_preferred_credential", - "skills": [ - "credentials-and-authentication-preferred-named" - ], - "inputSchema": { - "type": "object", - "properties": { - "credential_name": { - "type": "string", - "description": "The name of the preferred credential." - }, - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "managed_database_id", - "credential_name" - ] - }, - "mutable": false - }, - { - "name": "get_tablespace", - "description": "Returns detailed attributes for one tablespace identified by tablespaceName within a managed database.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_tablespace", - "skills": [ - "storage-and-space-tablespaces-asm" - ], - "inputSchema": { - "type": "object", - "properties": { - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "opc_named_credential_id": { - "type": "string", - "description": "The OCID of the Named Credential." - }, - "tablespace_name": { - "type": "string", - "description": "The name of the tablespace." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "managed_database_id", - "tablespace_name" - ] - }, - "mutable": false - }, - { - "name": "get_top_sql_cpu_activity", - "description": "Returns top SQL CPU activity from an external Exadata storage server for workload hotspot triage.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_top_sql_cpu_activity", - "skills": [ - "external-exadata-storage" - ], - "inputSchema": { - "type": "object", - "properties": { - "external_exadata_storage_server_id": { - "type": "string", - "description": "The OCID of the Exadata storage server." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "external_exadata_storage_server_id" - ] - }, - "mutable": false - }, - { - "name": "get_user", - "description": "Returns details for one user identified by userName in a managed database.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_user", - "skills": [ - "users-and-privileges-rbac-audit" - ], - "inputSchema": { - "type": "object", - "properties": { - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "opc_named_credential_id": { - "type": "string", - "description": "The OCID of the Named Credential." - }, - "user_name": { - "type": "string", - "description": "The name of the user whose details are to be viewed." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "managed_database_id", - "user_name" - ] - }, - "mutable": false - }, - { - "name": "get_work_request", - "description": "Returns status for one work request so admins can confirm completion state and execution outcome.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "get_work_request", - "skills": [ - "async-work-requests-long-running-operations" - ], - "inputSchema": { - "type": "object", - "properties": { - "work_request_id": { - "type": "string", - "description": "The OCID of the asynchronous work request." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "work_request_id" - ] - }, - "mutable": false - }, - { - "name": "list_addm_db_finding_categories", - "description": "Summarizes ADDM finding categories with counts and affected databases.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "list_addm_db_finding_categories", - "skills": [ - "database-addm-analysis" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "compartment_id_in_subtree": { - "type": "boolean", - "description": "A flag to search all resources within a given compartment and all sub-compartments." - }, - "database_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database OCIDs of the associated DBaaS entity." - }, - "id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database insight resource OCIDs." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "sort_by": { - "type": "string", - "enum": [ - "name" - ], - "description": "Field name for sorting the finding categories Allowed values are: \"name\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" - }, - "defined_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "defined_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id" - ] - }, - "mutable": false - }, - { - "name": "list_addm_db_findings_time_series", - "description": "Shows the trend of ADDM finding counts over time by database.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "list_addm_db_findings_time_series", - "skills": [ - "database-addm-analysis" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "category_name": { - "type": "string", - "description": "Optional value filter to match the finding category exactly." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "compartment_id_in_subtree": { - "type": "boolean", - "description": "A flag to search all resources within a given compartment and all sub-compartments." - }, - "database_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database OCIDs of the associated DBaaS entity." - }, - "id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database insight resource OCIDs." - }, - "instance_number": { - "type": "string", - "description": "The optional single value query parameter to filter by database instance number." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "sort_by": { - "type": "string", - "enum": [ - "timestamp" - ], - "description": "Field name for sorting the ADDM finding time series summary data Allowed values are: \"timestamp\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." - }, - "defined_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "defined_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id" - ] - }, - "mutable": false - }, - { - "name": "list_addm_db_parameter_categories", - "description": "Lists ADDM parameter categories used to filter and group parameter findings.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "list_addm_db_parameter_categories", - "skills": [ - "database-addm-analysis" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "compartment_id_in_subtree": { - "type": "boolean", - "description": "A flag to search all resources within a given compartment and all sub-compartments." - }, - "database_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database OCIDs of the associated DBaaS entity." - }, - "id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database insight resource OCIDs." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "sort_by": { - "type": "string", - "enum": [ - "name" - ], - "description": "Field name for sorting the database parameter categories Allowed values are: \"name\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" - }, - "defined_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "defined_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id" - ] - }, - "mutable": false - }, - { - "name": "list_addm_db_recommendation_categories", - "description": "Summarizes ADDM recommendation categories with counts and impacted databases.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "list_addm_db_recommendation_categories", - "skills": [ - "database-addm-analysis" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "compartment_id_in_subtree": { - "type": "boolean", - "description": "A flag to search all resources within a given compartment and all sub-compartments." - }, - "database_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database OCIDs of the associated DBaaS entity." - }, - "id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database insight resource OCIDs." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "sort_by": { - "type": "string", - "enum": [ - "name" - ], - "description": "Field name for sorting the recommendation categories Allowed values are: \"name\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" - }, - "defined_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "defined_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id" - ] - }, - "mutable": false - }, - { - "name": "list_addm_db_recommendations_time_series", - "description": "Shows ADDM recommendation volume trend over time by database/category.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "list_addm_db_recommendations_time_series", - "skills": [ - "database-addm-analysis" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "category_name": { - "type": "string", - "description": "Optional value filter to match the finding category exactly." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "compartment_id_in_subtree": { - "type": "boolean", - "description": "A flag to search all resources within a given compartment and all sub-compartments." - }, - "database_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database OCIDs of the associated DBaaS entity." - }, - "id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database insight resource OCIDs." - }, - "instance_number": { - "type": "string", - "description": "The optional single value query parameter to filter by database instance number." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "name": { - "type": "string", - "description": "Optional filter to return only resources whose name exactly matches the substring given. The match is case sensitive. Only considered when categoryName is DATABASE_CONFIGURATION." - }, - "name_contains": { - "type": "string", - "description": "Optional filter to return only resources whose name contains the substring given. The match is not case sensitive. Only considered when categoryName is DATABASE_CONFIGURATION." - }, - "owner_or_name_contains": { - "type": "string", - "description": "Optional filter to return only resources whose owner or name contains the substring given. The match is not case sensitive. Only considered when categoryName is SCHEMA_OBJECT." - }, - "sort_by": { - "type": "string", - "enum": [ - "timestamp" - ], - "description": "Field name for sorting the ADDM recommendation time series summary data Allowed values are: \"timestamp\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" - }, - "sql_identifier": { - "type": "string", - "description": "Optional filter to return only resources whose sql id matches the value given. Only considered when categoryName is SQL_TUNING." - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." - }, - "defined_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "defined_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id" - ] - }, - "mutable": false - }, - { - "name": "list_addm_dbs", - "description": "Lists databases included in ADDM analysis for the selected scope and time interval.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "list_addm_dbs", - "skills": [ - "database-addm-analysis" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "compartment_id_in_subtree": { - "type": "boolean", - "description": "A flag to search all resources within a given compartment and all sub-compartments." - }, - "database_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database OCIDs of the associated DBaaS entity." - }, - "id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database insight resource OCIDs." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "sort_by": { - "type": "string", - "enum": [ - "databaseName", - "numberOfFindings" - ], - "description": "Field name for sorting ADDM database data Allowed values are: \"databaseName\", \"numberOfFindings\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." - }, - "defined_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "defined_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id" - ] - }, - "mutable": false - }, - { - "name": "list_alert_logs", - "description": "Returns alert log entries for a managed database so you can inspect warning/error history over a time range.", - "service": "dbm", - "client": "DiagnosabilityClient", - "operation": "list_alert_logs", - "skills": [ - "logs-and-alerts-attention-alert-logs" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "is_regular_expression": { - "type": "boolean", - "description": "The flag to indicate whether the search text is regular expression or not." - }, - "level_filter": { - "type": "string", - "enum": [ - "CRITICAL", - "SEVERE", - "IMPORTANT", - "NORMAL", - "ALL" - ], - "description": "The optional parameter to filter the alert logs by log level.\n\nAllowed values are: \"CRITICAL\", \"SEVERE\", \"IMPORTANT\", \"NORMAL\", \"ALL\"" - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "log_search_text": { - "type": "string", - "description": "The optional query parameter to filter the attention or alert logs by search text." - }, - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "opc_named_credential_id": { - "type": "string", - "description": "The OCID of the Named Credential." - }, - "sort_by": { - "type": "string", - "enum": [ - "LEVEL", - "TYPE", - "MESSAGE", - "TIMESTAMP" - ], - "description": "The possible sortBy values of attention logs.\n\nAllowed values are: \"LEVEL\", \"TYPE\", \"MESSAGE\", \"TIMESTAMP\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "time_greater_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional greater than or equal to timestamp to filter the logs." - }, - "time_less_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional less than or equal to timestamp to filter the logs." - }, - "type_filter": { - "type": "string", - "enum": [ - "UNKNOWN", - "INCIDENT_ERROR", - "ERROR", - "WARNING", - "NOTIFICATION", - "TRACE", - "ALL" - ], - "description": "The optional parameter to filter the attention or alert logs by type.\n\nAllowed values are: \"UNKNOWN\", \"INCIDENT_ERROR\", \"ERROR\", \"WARNING\", \"NOTIFICATION\", \"TRACE\", \"ALL\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "managed_database_id" - ] - }, - "mutable": false - }, - { - "name": "list_asm_properties", - "description": "Returns ASM properties for a managed database so you can inspect storage configuration values.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_asm_properties", - "skills": [ - "storage-and-space-tablespaces-asm" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "name": { - "type": "string", - "description": "A filter to return only resources that match the entire name." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIMECREATED", - "NAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "managed_database_id" - ] - }, - "mutable": false - }, - { - "name": "list_associated_databases", - "description": "Returns databases associated with a specific Database Management private endpoint so you can validate endpoint usage.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_associated_databases", - "skills": [ - "private-endpoints-and-connectivity" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "db_management_private_endpoint_id": { - "type": "string", - "description": "The OCID of the Database Management private endpoint." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "sort_by": { - "type": "string", - "enum": [ - "timeRegistered" - ], - "description": "The option to sort databases using a specific Database Management private endpoint.\n\nAllowed values are: \"timeRegistered\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "db_management_private_endpoint_id", - "compartment_id" - ] - }, - "mutable": false - }, - { - "name": "list_attention_logs", - "description": "Returns attention log entries for a managed database so you can review urgent operational messages and actions.", - "service": "dbm", - "client": "DiagnosabilityClient", - "operation": "list_attention_logs", - "skills": [ - "logs-and-alerts-attention-alert-logs" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "is_regular_expression": { - "type": "boolean", - "description": "The flag to indicate whether the search text is regular expression or not." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "log_search_text": { - "type": "string", - "description": "The optional query parameter to filter the attention or alert logs by search text." - }, - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "opc_named_credential_id": { - "type": "string", - "description": "The OCID of the Named Credential." - }, - "sort_by": { - "type": "string", - "enum": [ - "URGENCY", - "TYPE", - "MESSAGE", - "TIMESTAMP", - "SCOPE", - "TARGET_USER" - ], - "description": "The possible sortBy values of attention logs.\n\nAllowed values are: \"URGENCY\", \"TYPE\", \"MESSAGE\", \"TIMESTAMP\", \"SCOPE\", \"TARGET_USER\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "time_greater_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional greater than or equal to timestamp to filter the logs." - }, - "time_less_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional less than or equal to timestamp to filter the logs." - }, - "type_filter": { - "type": "string", - "enum": [ - "UNKNOWN", - "INCIDENT_ERROR", - "ERROR", - "WARNING", - "NOTIFICATION", - "TRACE", - "ALL" - ], - "description": "The optional parameter to filter the attention or alert logs by type.\n\nAllowed values are: \"UNKNOWN\", \"INCIDENT_ERROR\", \"ERROR\", \"WARNING\", \"NOTIFICATION\", \"TRACE\", \"ALL\"" - }, - "urgency_filter": { - "type": "string", - "enum": [ - "IMMEDIATE", - "SOON", - "DEFERRABLE", - "INFO", - "ALL" - ], - "description": "The optional parameter to filter the attention logs by urgency.\n\nAllowed values are: \"IMMEDIATE\", \"SOON\", \"DEFERRABLE\", \"INFO\", \"ALL\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "managed_database_id" - ] - }, - "mutable": false - }, - { - "name": "list_awr_database_snapshots", - "description": "Returns AWR snapshots for a database, including snapshot ID, begin time, and interval boundaries.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "list_awr_database_snapshots", - "skills": [ - "database-performance-analysis" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "awr_hub_id": { - "type": "string", - "description": "Unique Awr Hub identifier" - }, - "awr_source_database_identifier": { - "type": "string", - "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results." - }, - "begin_snapshot_identifier_greater_than_or_equal_to": { - "type": "integer", - "description": "The optional greater than or equal to filter on the snapshot ID." - }, - "end_snapshot_identifier_less_than_or_equal_to": { - "type": "integer", - "description": "The optional less than or equal to query parameter to filter the snapshot Identifier." - }, - "instance_number": { - "type": "string", - "description": "The optional single value query parameter to filter by database instance number." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIME_BEGIN", - "SNAPSHOT_ID" - ], - "description": "The option to sort the AWR snapshot summary data. Allowed values are: \"TIME_BEGIN\", \"SNAPSHOT_ID\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" - }, - "time_greater_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" - }, - "time_less_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "awr_hub_id", - "awr_source_database_identifier" - ] - }, - "mutable": false - }, - { - "name": "list_awr_databases", - "description": "Returns AWR source databases registered in a hub, including database names, identifiers, and most recent interval metadata.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "list_awr_databases", - "skills": [ - "database-performance-analysis" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "awr_hub_id": { - "type": "string", - "description": "Unique Awr Hub identifier" - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "name": { - "type": "string", - "description": "The optional single value query parameter to filter the entity name." - }, - "sort_by": { - "type": "string", - "enum": [ - "END_INTERVAL_TIME", - "NAME" - ], - "description": "The option to sort the AWR summary data. Allowed values are: \"END_INTERVAL_TIME\", \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" - }, - "time_greater_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" - }, - "time_less_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "awr_hub_id" - ] - }, - "mutable": false - }, - { - "name": "list_awr_db_snapshots", - "description": "Returns AWR snapshots for one AWR database so you can choose analysis ranges.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_awr_db_snapshots", - "skills": [ - "awr-discovery-primitives" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "awr_db_id": { - "type": "string", - "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results." - }, - "begin_sn_id_greater_than_or_equal_to": { - "type": "integer", - "description": "The optional greater than or equal to filter on the snapshot ID." - }, - "container_id": { - "type": "integer", - "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results." - }, - "end_sn_id_less_than_or_equal_to": { - "type": "integer", - "description": "The optional less than or equal to query parameter to filter the snapshot ID." - }, - "inst_num": { - "type": "string", - "description": "The optional single value query parameter to filter the database instance number." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "opc_named_credential_id": { - "type": "string", - "description": "The OCID of the Named Credential." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIME_BEGIN", - "SNAPSHOT_ID" - ], - "description": "The option to sort the AWR snapshot summary data.\n\nAllowed values are: \"TIME_BEGIN\", \"SNAPSHOT_ID\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "time_greater_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional greater than or equal to query parameter to filter the timestamp." - }, - "time_less_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional less than or equal to query parameter to filter the timestamp." - }, - "opc_request_id": { - "type": "string" - }, - "opc_retry_token": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "managed_database_id", - "awr_db_id" - ] - }, - "mutable": false - }, - { - "name": "list_awr_dbs", - "description": "Returns AWR databases and snapshot coverage for a managed database.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_awr_dbs", - "skills": [ - "awr-discovery-primitives" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "name": { - "type": "string", - "description": "The optional single value query parameter to filter the entity name." - }, - "opc_named_credential_id": { - "type": "string", - "description": "The OCID of the Named Credential." - }, - "sort_by": { - "type": "string", - "enum": [ - "END_INTERVAL_TIME", - "NAME" - ], - "description": "The option to sort the AWR summary data.\n\nAllowed values are: \"END_INTERVAL_TIME\", \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "time_greater_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional greater than or equal to query parameter to filter the timestamp." - }, - "time_less_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional less than or equal to query parameter to filter the timestamp." - }, - "opc_request_id": { - "type": "string" - }, - "opc_retry_token": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "managed_database_id" - ] - }, - "mutable": false - }, - { - "name": "list_cloud_asm_disk_groups", - "description": "Lists the cloud ASM disk groups.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_cloud_asm_disk_groups", - "skills": [ - "cloud-asm-core" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "cloud_asm_id": { - "type": "string", - "description": "The OCID of the cloud ASM." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "opc_named_credential_id": { - "type": "string", - "description": "The OCID of the Named Credential." - }, - "sort_by": { - "type": "string", - "enum": [ - "NAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "cloud_asm_id" - ] - }, - "mutable": false - }, - { - "name": "list_cloud_asm_instances", - "description": "Lists the cloud ASM instances.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_cloud_asm_instances", - "skills": [ - "cloud-asm-core" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "cloud_asm_id": { - "type": "string", - "description": "The OCID of the cloud ASM." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "display_name": { - "type": "string", - "description": "A filter to only return the resources that match the entire display name." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIMECREATED", - "DISPLAYNAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false - }, - "mutable": false - }, - { - "name": "list_cloud_asm_users", - "description": "Lists the cloud ASM users.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_cloud_asm_users", - "skills": [ - "cloud-asm-core" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "cloud_asm_id": { - "type": "string", - "description": "The OCID of the cloud ASM." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "opc_named_credential_id": { - "type": "string", - "description": "The OCID of the Named Credential." - }, - "sort_by": { - "type": "string", - "enum": [ - "NAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "cloud_asm_id" - ] - }, - "mutable": false - }, - { - "name": "list_cloud_asms", - "description": "Lists the cloud ASMs.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_cloud_asms", - "skills": [ - "cloud-asm-core" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "cloud_db_system_id": { - "type": "string", - "description": "The OCID of the cloud DB system." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "display_name": { - "type": "string", - "description": "A filter to only return the resources that match the entire display name." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIMECREATED", - "DISPLAYNAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false - }, - "mutable": false - }, - { - "name": "list_cloud_cluster_instances", - "description": "Lists the cloud cluster instances.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_cloud_cluster_instances", - "skills": [ - "cloud-db-runtime-topology" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "cloud_cluster_id": { - "type": "string", - "description": "The OCID of the cloud cluster." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "display_name": { - "type": "string", - "description": "A filter to only return the resources that match the entire display name." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIMECREATED", - "DISPLAYNAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false - }, - "mutable": false - }, - { - "name": "list_cloud_clusters", - "description": "Lists the cloud clusters.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_cloud_clusters", - "skills": [ - "cloud-db-runtime-topology" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "cloud_db_system_id": { - "type": "string", - "description": "The OCID of the cloud DB system." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "display_name": { - "type": "string", - "description": "A filter to only return the resources that match the entire display name." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIMECREATED", - "DISPLAYNAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false - }, - "mutable": false - }, - { - "name": "list_cloud_databases", - "description": "Returns cloud databases for a Cloud DB system so admins can verify database inventory under the selected system.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_cloud_databases", - "skills": [ - "cloud-inventory-discovery-connectivity" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "cloud_db_system_id": { - "type": "string", - "description": "The OCID of the cloud DB system." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "display_name": { - "type": "string", - "description": "A filter to only return the resources that match the entire display name." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIMECREATED", - "DISPLAYNAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "cloud_db_system_id" - ] - }, - "mutable": false - }, - { - "name": "list_cloud_db_homes", - "description": "Lists the cloud DB homes.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_cloud_db_homes", - "skills": [ - "cloud-db-runtime-topology" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "cloud_db_system_id": { - "type": "string", - "description": "The OCID of the cloud DB system." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "display_name": { - "type": "string", - "description": "A filter to only return the resources that match the entire display name." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIMECREATED", - "DISPLAYNAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false - }, - "mutable": false - }, - { - "name": "list_cloud_db_nodes", - "description": "Lists the cloud DB nodes.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_cloud_db_nodes", - "skills": [ - "cloud-db-runtime-topology" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "cloud_db_system_id": { - "type": "string", - "description": "The OCID of the cloud DB system." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "display_name": { - "type": "string", - "description": "A filter to only return the resources that match the entire display name." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIMECREATED", - "DISPLAYNAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false - }, - "mutable": false - }, - { - "name": "list_cloud_db_system_connectors", - "description": "Lists the cloud connectors.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_cloud_db_system_connectors", - "skills": [ - "cloud-db-runtime-topology" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "cloud_db_system_id": { - "type": "string", - "description": "The OCID of the cloud DB system." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "display_name": { - "type": "string", - "description": "A filter to only return the resources that match the entire display name." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIMECREATED", - "DISPLAYNAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false - }, - "mutable": false - }, - { - "name": "list_cloud_db_system_discoveries", - "description": "Returns Cloud DB system discovery inventory so admins can review discovered targets and discovery state.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_cloud_db_system_discoveries", - "skills": [ - "cloud-inventory-discovery-connectivity" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "display_name": { - "type": "string", - "description": "A filter to only return the resources that match the entire display name." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIMECREATED", - "DISPLAYNAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id" - ] - }, - "mutable": false - }, - { - "name": "list_cloud_db_systems", - "description": "Returns Cloud DB system inventory so admins can identify managed targets and runtime scope.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_cloud_db_systems", - "skills": [ - "cloud-inventory-discovery-connectivity" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "dbaas_parent_infrastructure_id": { - "type": "string", - "description": "The OCID of the dbaas parent infrastructure of the cloud DB system." - }, - "deployment_type": { - "type": "string", - "enum": [ - "VM", - "EXADATA", - "EXADATA_CC", - "EXADATA_XS" - ], - "description": "A filter to return cloud DB systems of the specified deployment type.\n\nAllowed values are: \"VM\", \"EXADATA\", \"EXADATA_CC\", \"EXADATA_XS\"" - }, - "display_name": { - "type": "string", - "description": "A filter to only return the resources that match the entire display name." - }, - "lifecycle_state": { - "type": "string", - "enum": [ - "CREATING", - "ACTIVE", - "UPDATING", - "DELETING", - "DELETED", - "INACTIVE" - ], - "description": "The lifecycle state of a resource.\n\nAllowed values are: \"CREATING\", \"ACTIVE\", \"UPDATING\", \"DELETING\", \"DELETED\", \"INACTIVE\"" - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIMECREATED", - "DISPLAYNAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id" - ] - }, - "mutable": false - }, - { - "name": "list_cloud_exadata_infrastructures", - "description": "Returns Cloud Exadata infrastructure inventory so admins can select the correct infrastructure scope for discovery and connectivity checks.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_cloud_exadata_infrastructures", - "skills": [ - "cloud-inventory-discovery-connectivity" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "display_name": { - "type": "string", - "description": "The optional single value query filter parameter on the entity display name." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIMECREATED", - "NAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id" - ] - }, - "mutable": false - }, - { - "name": "list_cloud_exadata_storage_connectors", - "description": "Returns Cloud Exadata storage connector inventory so admins can review available connector targets and connectivity coverage.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_cloud_exadata_storage_connectors", - "skills": [ - "cloud-exadata-storage" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "cloud_exadata_infrastructure_id": { - "type": "string", - "description": "The OCID of the Exadata infrastructure." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "display_name": { - "type": "string", - "description": "The optional single value query filter parameter on the entity display name." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIMECREATED", - "NAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id", - "cloud_exadata_infrastructure_id" - ] - }, - "mutable": false - }, - { - "name": "list_cloud_exadata_storage_servers", - "description": "Returns Cloud Exadata storage server inventory so admins can identify server targets for storage diagnostics.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_cloud_exadata_storage_servers", - "skills": [ - "cloud-exadata-storage" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "cloud_exadata_infrastructure_id": { - "type": "string", - "description": "The OCID of the Exadata infrastructure." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "display_name": { - "type": "string", - "description": "The optional single value query filter parameter on the entity display name." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIMECREATED", - "NAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id", - "cloud_exadata_infrastructure_id" - ] - }, - "mutable": false - }, - { - "name": "list_cloud_listener_services", - "description": "Lists the database services registered with the cloud listener.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_cloud_listener_services", - "skills": [ - "cloud-db-runtime-topology" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "cloud_listener_id": { - "type": "string", - "description": "The OCID of the cloud listener." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "opc_named_credential_id": { - "type": "string", - "description": "The OCID of the Named Credential." - }, - "sort_by": { - "type": "string", - "enum": [ - "NAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "cloud_listener_id", - "managed_database_id" - ] - }, - "mutable": false - }, - { - "name": "list_cloud_listeners", - "description": "Lists the cloud listeners.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_cloud_listeners", - "skills": [ - "cloud-db-runtime-topology" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "cloud_db_system_id": { - "type": "string", - "description": "The OCID of the cloud DB system." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "display_name": { - "type": "string", - "description": "A filter to only return the resources that match the entire display name." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIMECREATED", - "DISPLAYNAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false - }, - "mutable": false - }, - { - "name": "list_consumer_group_privileges", - "description": "Returns consumer group privileges granted to a specific user.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_consumer_group_privileges", - "skills": [ - "users-and-privileges-rbac-audit" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "name": { - "type": "string", - "description": "A filter to return only resources that match the entire name." - }, - "opc_named_credential_id": { - "type": "string", - "description": "The OCID of the Named Credential." - }, - "sort_by": { - "type": "string", - "enum": [ - "NAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018NAME\u2019 is ascending. The \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "user_name": { - "type": "string", - "description": "The name of the user whose details are to be viewed." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "managed_database_id", - "user_name" - ] - }, - "mutable": false - }, - { - "name": "list_data_access_containers", - "description": "Returns data access containers available to the specified user.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_data_access_containers", - "skills": [ - "users-and-privileges-rbac-audit" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "name": { - "type": "string", - "description": "A filter to return only resources that match the entire name." - }, - "opc_named_credential_id": { - "type": "string", - "description": "The OCID of the Named Credential." - }, - "sort_by": { - "type": "string", - "enum": [ - "NAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018NAME\u2019 is ascending. The \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "user_name": { - "type": "string", - "description": "The name of the user whose details are to be viewed." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "managed_database_id", - "user_name" - ] - }, - "mutable": false - }, - { - "name": "list_database_configurations", - "description": "Gets a list of database insights configuration.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "list_database_configurations", - "skills": [ - "database-inventory" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "cdb_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more cdb name." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "compartment_id_in_subtree": { - "type": "boolean", - "description": "A flag to search all resources within a given compartment and all sub-compartments." - }, - "database_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database OCIDs of the associated DBaaS entity." - }, - "database_type": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "ADW-S", - "ATP-S", - "ADW-D", - "ATP-D", - "EXTERNAL-PDB", - "EXTERNAL-NONCDB", - "COMANAGED-VM-CDB", - "COMANAGED-VM-PDB", - "COMANAGED-VM-NONCDB", - "COMANAGED-BM-CDB", - "COMANAGED-BM-PDB", - "COMANAGED-BM-NONCDB", - "COMANAGED-EXACS-CDB", - "COMANAGED-EXACS-PDB", - "COMANAGED-EXACS-NONCDB", - "COMANAGED-EXACC-CDB", - "COMANAGED-EXACC-PDB", - "COMANAGED-EXACC-NONCDB", - "MDS-MYSQL", - "EXTERNAL-MYSQL", - "ATP-EXACC", - "ADW-EXACC", - "EXTERNAL-ADW", - "EXTERNAL-ATP", - "LH-D", - "APEX-D", - "AJD-D", - "AVD-D", - "LH-S", - "APEX-S", - "AJD-S", - "AVD-S", - "LH-EXACC", - "APEX-EXACC", - "AJD-EXACC", - "AVD-EXACC" - ] - }, - "description": "Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: \"ADW-S\", \"ATP-S\", \"ADW-D\", \"ATP-D\", \"EXTERNAL-PDB\", \"EXTERNAL-NONCDB\", \"COMANAGED-VM-CDB\", \"COMANAGED-VM-PDB\", \"COMANAGED-VM-NONCDB\", \"COMANAGED-BM-CDB\", \"COMANAGED-BM-PDB\", \"COMANAGED-BM-NONCDB\", \"COMANAGED-EXACS-CDB\", \"COMANAGED-EXACS-PDB\", \"COMANAGED-EXACS-NONCDB\", \"COMANAGED-EXACC-CDB\", \"COMANAGED-EXACC-PDB\", \"COMANAGED-EXACC-NONCDB\", \"MDS-MYSQL\", \"EXTERNAL-MYSQL\", \"ATP-EXACC\", \"ADW-EXACC\", \"EXTERNAL-ADW\", \"EXTERNAL-ATP\", \"LH-D\", \"APEX-D\", \"AJD-D\", \"AVD-D\", \"LH-S\", \"APEX-S\", \"AJD-S\", \"AVD-S\", \"LH-EXACC\", \"APEX-EXACC\", \"AJD-EXACC\", \"AVD-EXACC\"" - }, - "enterprise_manager_bridge_id": { - "type": "string", - "description": "Unique Enterprise Manager bridge identifier" - }, - "exadata_insight_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of exadata insight resource OCIDs." - }, - "host_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more hostname." - }, - "id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database insight resource OCIDs." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "sort_by": { - "type": "string", - "enum": [ - "databaseName", - "databaseDisplayName", - "databaseType" - ], - "description": "Database configuration list sort options. If `fields` parameter is selected, the `sortBy` parameter must be one of the fields specified. Allowed values are: \"databaseName\", \"databaseDisplayName\", \"databaseType\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" - }, - "vmcluster_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of Exadata Insight VM cluster name." - }, - "defined_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "defined_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false - }, - "mutable": false - }, - { - "name": "list_database_insights", - "description": "Returns Operations Insights inventory for selected scope and filters so admins can verify insight coverage, status, and candidate databaseInsightId values.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "list_database_insights", - "skills": [ - "database-inventory" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "compartment_id_in_subtree": { - "type": "boolean", - "description": "A flag to search all resources within a given compartment and all sub-compartments." - }, - "database_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database OCIDs of the associated DBaaS entity." - }, - "database_type": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "ADW-S", - "ATP-S", - "ADW-D", - "ATP-D", - "EXTERNAL-PDB", - "EXTERNAL-NONCDB", - "COMANAGED-VM-CDB", - "COMANAGED-VM-PDB", - "COMANAGED-VM-NONCDB", - "COMANAGED-BM-CDB", - "COMANAGED-BM-PDB", - "COMANAGED-BM-NONCDB", - "COMANAGED-EXACS-CDB", - "COMANAGED-EXACS-PDB", - "COMANAGED-EXACS-NONCDB", - "COMANAGED-EXACC-CDB", - "COMANAGED-EXACC-PDB", - "COMANAGED-EXACC-NONCDB", - "MDS-MYSQL", - "EXTERNAL-MYSQL", - "ATP-EXACC", - "ADW-EXACC", - "EXTERNAL-ADW", - "EXTERNAL-ATP", - "LH-D", - "APEX-D", - "AJD-D", - "AVD-D", - "LH-S", - "APEX-S", - "AJD-S", - "AVD-S", - "LH-EXACC", - "APEX-EXACC", - "AJD-EXACC", - "AVD-EXACC" - ] - }, - "description": "Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: \"ADW-S\", \"ATP-S\", \"ADW-D\", \"ATP-D\", \"EXTERNAL-PDB\", \"EXTERNAL-NONCDB\", \"COMANAGED-VM-CDB\", \"COMANAGED-VM-PDB\", \"COMANAGED-VM-NONCDB\", \"COMANAGED-BM-CDB\", \"COMANAGED-BM-PDB\", \"COMANAGED-BM-NONCDB\", \"COMANAGED-EXACS-CDB\", \"COMANAGED-EXACS-PDB\", \"COMANAGED-EXACS-NONCDB\", \"COMANAGED-EXACC-CDB\", \"COMANAGED-EXACC-PDB\", \"COMANAGED-EXACC-NONCDB\", \"MDS-MYSQL\", \"EXTERNAL-MYSQL\", \"ATP-EXACC\", \"ADW-EXACC\", \"EXTERNAL-ADW\", \"EXTERNAL-ATP\", \"LH-D\", \"APEX-D\", \"AJD-D\", \"AVD-D\", \"LH-S\", \"APEX-S\", \"AJD-S\", \"AVD-S\", \"LH-EXACC\", \"APEX-EXACC\", \"AJD-EXACC\", \"AVD-EXACC\"" - }, - "enterprise_manager_bridge_id": { - "type": "string", - "description": "Unique Enterprise Manager bridge identifier" - }, - "exadata_insight_id": { - "type": "string", - "description": "OCID of exadata insight resource." - }, - "fields": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "compartmentId", - "databaseName", - "databaseDisplayName", - "databaseType", - "databaseVersion", - "databaseHostNames", - "freeformTags", - "definedTags" - ] - }, - "description": "Specifies the fields to return in a database summary response. By default all fields are returned if omitted. Allowed values are: \"compartmentId\", \"databaseName\", \"databaseDisplayName\", \"databaseType\", \"databaseVersion\", \"databaseHostNames\", \"freeformTags\", \"definedTags\"" - }, - "id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database insight resource OCIDs." - }, - "lifecycle_state": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "CREATING", - "UPDATING", - "ACTIVE", - "DELETING", - "DELETED", - "FAILED", - "NEEDS_ATTENTION" - ] - }, - "description": "Lifecycle states Allowed values are: \"CREATING\", \"UPDATING\", \"ACTIVE\", \"DELETING\", \"DELETED\", \"FAILED\", \"NEEDS_ATTENTION\"" - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "opsi_private_endpoint_id": { - "type": "string", - "description": "Unique Operations Insights PrivateEndpoint identifier" - }, - "sort_by": { - "type": "string", - "enum": [ - "databaseName", - "databaseDisplayName", - "databaseType" - ], - "description": "Database insight list sort options. If `fields` parameter is selected, the `sortBy` parameter must be one of the fields specified. Allowed values are: \"databaseName\", \"databaseDisplayName\", \"databaseType\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" - }, - "status": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "DISABLED", - "ENABLED", - "TERMINATED" - ] - }, - "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false - }, - "mutable": false - }, - { - "name": "list_database_parameters", - "description": "Returns database parameter inventory so admins can review effective configuration values and identify parameter drift", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_database_parameters", - "skills": [ - "database-configuration-and-parameters" - ], - "inputSchema": { - "type": "object", - "properties": { - "is_allowed_values_included": { - "type": "boolean", - "description": "When true, results include a list of valid values for parameters (if applicable)." - }, - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "name": { - "type": "string", - "description": "A filter to return all parameters that have the text given in their names." - }, - "opc_named_credential_id": { - "type": "string", - "description": "The OCID of the Named Credential." - }, - "sort_by": { - "type": "string", - "enum": [ - "NAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "source": { - "type": "string", - "enum": [ - "CURRENT", - "SPFILE" - ], - "description": "The source used to list database parameters. `CURRENT` is used to get the\ndatabase parameters that are currently in effect for the database\ninstance. `SPFILE` is used to list parameters from the server parameter\nfile. Default is `CURRENT`.\n\nAllowed values are: \"CURRENT\", \"SPFILE\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "managed_database_id" - ] - }, - "mutable": false - }, - { - "name": "list_db_management_private_endpoints", - "description": "Returns Database Management private endpoints in a compartment so you can discover endpoint IDs and connectivity scope.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_db_management_private_endpoints", - "skills": [ - "private-endpoints-and-connectivity" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "is_cluster": { - "type": "boolean", - "description": "The option to filter Database Management private endpoints that can used for Oracle Databases in a cluster. This should be used along with the vcnId query parameter." - }, - "is_dns_resolution_enabled": { - "type": "boolean", - "description": "The option to filter Database Management private endpoints which are endbled with DNS proxy server. This should be used along with the vcnId query parameter.\nOnly one of this parameter and IsClusterDbManagementPrivateEndpointQueryParam should be set to true at one time." - }, - "lifecycle_state": { - "type": "string", - "enum": [ - "CREATING", - "UPDATING", - "ACTIVE", - "DELETING", - "DELETED", - "FAILED" - ], - "description": "The lifecycle state of a resource.\n\nAllowed values are: \"CREATING\", \"UPDATING\", \"ACTIVE\", \"DELETING\", \"DELETED\", \"FAILED\"" - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "name": { - "type": "string", - "description": "A filter to return only resources that match the entire name." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIMECREATED", - "NAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "vcn_id": { - "type": "string", - "description": "The OCID of the VCN." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id" - ] - }, - "mutable": false - }, - { - "name": "list_exadata_configurations", - "description": "Returns Exadata configuration records, including system identity and configuration items for managed Exadata resources.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "list_exadata_configurations", - "skills": [ - "exadatainsights" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "compartment_id_in_subtree": { - "type": "boolean", - "description": "A flag to search all resources within a given compartment and all sub-compartments." - }, - "exadata_insight_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of exadata insight resource OCIDs." - }, - "exadata_type": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "sort_by": { - "type": "string", - "enum": [ - "exadataName", - "exadataDisplayName", - "exadataType" - ], - "description": "Exadata configuration list sort options. If `fields` parameter is selected, the `sortBy` parameter must be one of the fields specified. Allowed values are: \"exadataName\", \"exadataDisplayName\", \"exadataType\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" - }, - "defined_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "defined_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false - }, - "mutable": false - }, - { - "name": "list_exadata_insights", - "description": "Returns Exadata insight inventory so admins can review monitored Exadata resources and lifecycle coverage.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "list_exadata_insights", - "skills": [ - "exadatainsights" - ], - "inputSchema": { - "type": "object", - "properties": { - "compartment_id": { - "type": "string" - }, - "compartment_id_in_subtree": { - "type": "boolean" - }, - "enterprise_manager_bridge_id": { - "type": "string" - }, - "exadata_type": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "array", - "items": { - "type": "string" - } - }, - "lifecycle_state": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "CREATING", - "UPDATING", - "ACTIVE", - "DELETING", - "DELETED", - "FAILED", - "NEEDS_ATTENTION" - ] - } - }, - "limit": { - "type": "integer" - }, - "opc_request_id": { - "type": "string" - }, - "page": { - "type": "string" - }, - "sort_by": { - "type": "string", - "enum": [ - "timeCreated", - "exadataName" - ] - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ] - }, - "status": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "DISABLED", - "ENABLED", - "TERMINATED" - ] - } - } - }, - "additionalProperties": false - }, - "mutable": false - }, - { - "name": "list_external_asm_disk_groups", - "description": "Lists disk groups for an external ASM to review capacity layout and utilization.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_external_asm_disk_groups", - "skills": [ - "external-asm-core" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "external_asm_id": { - "type": "string", - "description": "The OCID of the external ASM." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "opc_named_credential_id": { - "type": "string", - "description": "The OCID of the Named Credential." - }, - "sort_by": { - "type": "string", - "enum": [ - "NAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "external_asm_id" - ] - }, - "mutable": false - }, - { - "name": "list_external_asm_instances", - "description": "Lists ASM instances for an external ASM so you can map hosts and lifecycle state.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_external_asm_instances", - "skills": [ - "external-asm-core" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "display_name": { - "type": "string", - "description": "A filter to only return the resources that match the entire display name." - }, - "external_asm_id": { - "type": "string", - "description": "The OCID of the external ASM." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIMECREATED", - "DISPLAYNAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false - }, - "mutable": false - }, - { - "name": "list_external_asm_users", - "description": "Lists ASM users and privileges for access review and troubleshooting.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_external_asm_users", - "skills": [ - "external-asm-core" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "external_asm_id": { - "type": "string", - "description": "The OCID of the external ASM." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "opc_named_credential_id": { - "type": "string", - "description": "The OCID of the Named Credential." - }, - "sort_by": { - "type": "string", - "enum": [ - "NAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "external_asm_id" - ] - }, - "mutable": false - }, - { - "name": "list_external_asms", - "description": "Lists external ASM resources in an external DB system so you can identify target ASM IDs.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_external_asms", - "skills": [ - "external-asm-core" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "display_name": { - "type": "string", - "description": "A filter to only return the resources that match the entire display name." - }, - "external_db_system_id": { - "type": "string", - "description": "The OCID of the external DB system." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIMECREATED", - "DISPLAYNAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false - }, - "mutable": false - }, - { - "name": "list_external_cluster_instances", - "description": "Lists external cluster instances to map instances to the target cluster.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_external_cluster_instances", - "skills": [ - "external-db-runtime-topology" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "display_name": { - "type": "string", - "description": "A filter to only return the resources that match the entire display name." - }, - "external_cluster_id": { - "type": "string", - "description": "The OCID of the external cluster." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIMECREATED", - "DISPLAYNAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false - }, - "mutable": false - }, - { - "name": "list_external_clusters", - "description": "Lists external clusters in an external DB system so you can identify cluster IDs.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_external_clusters", - "skills": [ - "external-db-runtime-topology" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "display_name": { - "type": "string", - "description": "A filter to only return the resources that match the entire display name." - }, - "external_db_system_id": { - "type": "string", - "description": "The OCID of the external DB system." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIMECREATED", - "DISPLAYNAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false - }, - "mutable": false - }, - { - "name": "list_external_databases", - "description": "Lists external databases so you can identify database targets under discovered DB systems.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_external_databases", - "skills": [ - "external-inventory-discovery-connectivity" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "display_name": { - "type": "string", - "description": "A filter to only return the resources that match the entire display name." - }, - "external_database_id": { - "type": "string", - "description": "The OCID of the external database." - }, - "external_db_system_id": { - "type": "string", - "description": "The OCID of the external DB system." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIMECREATED", - "DISPLAYNAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false - }, - "mutable": false - }, - { - "name": "list_external_db_homes", - "description": "Lists external DB homes so you can identify home IDs for version and patch-level checks.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_external_db_homes", - "skills": [ - "external-inventory-discovery-connectivity" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "display_name": { - "type": "string", - "description": "A filter to only return the resources that match the entire display name." - }, - "external_db_system_id": { - "type": "string", - "description": "The OCID of the external DB system." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIMECREATED", - "DISPLAYNAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false - }, - "mutable": false - }, - { - "name": "list_external_db_nodes", - "description": "Lists external DB nodes in an external DB system for node inventory and targeting.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_external_db_nodes", - "skills": [ - "external-db-runtime-topology" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "display_name": { - "type": "string", - "description": "A filter to only return the resources that match the entire display name." - }, - "external_db_system_id": { - "type": "string", - "description": "The OCID of the external DB system." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIMECREATED", - "DISPLAYNAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false - }, - "mutable": false - }, - { - "name": "list_external_db_system_connectors", - "description": "Lists external DB system connectors so you can identify connector IDs and review connector state.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_external_db_system_connectors", - "skills": [ - "external-inventory-discovery-connectivity" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "display_name": { - "type": "string", - "description": "A filter to only return the resources that match the entire display name." - }, - "external_db_system_id": { - "type": "string", - "description": "The OCID of the external DB system." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIMECREATED", - "DISPLAYNAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false - }, - "mutable": false - }, - { - "name": "list_external_db_system_discoveries", - "description": "Lists external DB system discovery resources so you can track discovery runs and outcomes.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_external_db_system_discoveries", - "skills": [ - "external-inventory-discovery-connectivity" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "display_name": { - "type": "string", - "description": "A filter to only return the resources that match the entire display name." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIMECREATED", - "DISPLAYNAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id" - ] - }, - "mutable": false - }, - { - "name": "list_external_db_systems", - "description": "Lists external DB systems so you can identify target DB system IDs for runtime and inventory workflows.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_external_db_systems", - "skills": [ - "external-inventory-discovery-connectivity" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "display_name": { - "type": "string", - "description": "A filter to only return the resources that match the entire display name." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIMECREATED", - "DISPLAYNAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id" - ] - }, - "mutable": false - }, - { - "name": "list_external_exadata_infrastructures", - "description": "Lists external Exadata infrastructures so you can identify infrastructure IDs for downstream discovery and inventory calls.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_external_exadata_infrastructures", - "skills": [ - "external-inventory-discovery-connectivity" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "display_name": { - "type": "string", - "description": "The optional single value query filter parameter on the entity display name." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIMECREATED", - "NAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id" - ] - }, - "mutable": false - }, - { - "name": "list_external_exadata_storage_connectors", - "description": "Lists external Exadata storage connectors so you can identify connector IDs and lifecycle state.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_external_exadata_storage_connectors", - "skills": [ - "external-exadata-storage" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "display_name": { - "type": "string", - "description": "The optional single value query filter parameter on the entity display name." - }, - "external_exadata_infrastructure_id": { - "type": "string", - "description": "The OCID of the Exadata infrastructure." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIMECREATED", - "NAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id", - "external_exadata_infrastructure_id" - ] - }, - "mutable": false - }, - { - "name": "list_external_exadata_storage_servers", - "description": "Lists external Exadata storage servers so you can identify target storage server IDs.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_external_exadata_storage_servers", - "skills": [ - "external-exadata-storage" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "display_name": { - "type": "string", - "description": "The optional single value query filter parameter on the entity display name." - }, - "external_exadata_infrastructure_id": { - "type": "string", - "description": "The OCID of the Exadata infrastructure." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIMECREATED", - "NAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id", - "external_exadata_infrastructure_id" - ] - }, - "mutable": false - }, - { - "name": "list_external_listener_services", - "description": "Lists services registered to an external listener for service-routing checks.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_external_listener_services", - "skills": [ - "external-db-runtime-topology" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "external_listener_id": { - "type": "string", - "description": "The OCID of the external listener." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "opc_named_credential_id": { - "type": "string", - "description": "The OCID of the Named Credential." - }, - "sort_by": { - "type": "string", - "enum": [ - "NAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The\ndefault sort order for `NAME` is ascending and it is case-sensitive.\n\nAllowed values are: \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "external_listener_id", - "managed_database_id" - ] - }, - "mutable": false - }, - { - "name": "list_external_listeners", - "description": "Lists external listeners in an external DB system so you can identify listener IDs.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_external_listeners", - "skills": [ - "external-db-runtime-topology" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "display_name": { - "type": "string", - "description": "A filter to only return the resources that match the entire display name." - }, - "external_db_system_id": { - "type": "string", - "description": "The OCID of the external DB system." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIMECREATED", - "DISPLAYNAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor `TIMECREATED` is descending and the default sort order for `DISPLAYNAME` is ascending.\nThe `DISPLAYNAME` sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"DISPLAYNAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false - }, - "mutable": false - }, - { - "name": "list_host_configurations", - "description": "Returns host configuration records, including host identity, platform details, and onboarding status in items.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "list_host_configurations", - "skills": [ - "hostinsights" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "compartment_id_in_subtree": { - "type": "boolean", - "description": "A flag to search all resources within a given compartment and all sub-compartments." - }, - "enterprise_manager_bridge_id": { - "type": "string", - "description": "Unique Enterprise Manager bridge identifier" - }, - "exadata_insight_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of exadata insight resource OCIDs." - }, - "host_id": { - "type": "string", - "description": "Optional OCID of the host (Compute Id)." - }, - "host_type": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST" - }, - "id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of host insight resource OCIDs." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "platform_type": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "LINUX", - "SOLARIS", - "SUNOS", - "ZLINUX", - "WINDOWS", - "AIX", - "HP_UX" - ] - }, - "description": "Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: \"LINUX\", \"SOLARIS\", \"SUNOS\", \"ZLINUX\", \"WINDOWS\", \"AIX\", \"HP_UX\"" - }, - "sort_by": { - "type": "string", - "enum": [ - "hostName", - "platformType" - ], - "description": "Host configuration list sort options. Allowed values are: \"hostName\", \"platformType\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" - }, - "status": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "DISABLED", - "ENABLED", - "TERMINATED" - ] - }, - "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" - }, - "vmcluster_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of Exadata Insight VM cluster name." - }, - "defined_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "defined_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false - }, - "mutable": false - }, - { - "name": "list_host_insights", - "description": "Returns host insight inventory so admins can review monitored host resources and lifecycle coverage.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "list_host_insights", - "skills": [ - "hostinsights" - ], - "inputSchema": { - "type": "object", - "properties": { - "compartment_id": { - "type": "string" - }, - "compartment_id_in_subtree": { - "type": "boolean" - }, - "enterprise_manager_bridge_id": { - "type": "string" - }, - "exadata_insight_id": { - "type": "string" - }, - "host_type": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "array", - "items": { - "type": "string" - } - }, - "lifecycle_state": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "CREATING", - "UPDATING", - "ACTIVE", - "DELETING", - "DELETED", - "FAILED", - "NEEDS_ATTENTION" - ] - } - }, - "limit": { - "type": "integer" - }, - "opc_request_id": { - "type": "string" - }, - "page": { - "type": "string" - }, - "platform_type": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "LINUX", - "SOLARIS", - "SUNOS", - "ZLINUX", - "WINDOWS", - "AIX", - "HP_UX" - ] - } - }, - "sort_by": { - "type": "string", - "enum": [ - "hostName", - "hostType" - ] - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ] - }, - "status": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "DISABLED", - "ENABLED", - "TERMINATED" - ] - } - } - }, - "additionalProperties": false - }, - "mutable": false - }, - { - "name": "list_hosted_entities", - "description": "Returns entities hosted on selected hosts, including entity items and related interval context.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "list_hosted_entities", - "skills": [ - "hostinsights" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "analysis_time_interval": { - "type": "string", - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "exadata_insight_id": { - "type": "string", - "description": "OCID of exadata insight resource." - }, - "host_id": { - "type": "string", - "description": "Optional OCID of the host (Compute Id)." - }, - "host_type": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST" - }, - "id": { - "type": "string", - "description": "Required OCID of the host insight resource." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "platform_type": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "LINUX", - "SOLARIS", - "SUNOS", - "ZLINUX", - "WINDOWS", - "AIX", - "HP_UX" - ] - }, - "description": "Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: \"LINUX\", \"SOLARIS\", \"SUNOS\", \"ZLINUX\", \"WINDOWS\", \"AIX\", \"HP_UX\"" - }, - "sort_by": { - "type": "string", - "enum": [ - "entityName", - "entityType" - ], - "description": "Hosted entity list sort options. Allowed values are: \"entityName\", \"entityType\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" - }, - "status": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "DISABLED", - "ENABLED", - "TERMINATED" - ] - }, - "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id", - "id" - ] - }, - "mutable": false - }, - { - "name": "list_job_executions", - "description": "Lists job executions so you can review per-target execution outcomes and timing.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_job_executions", - "skills": [ - "job-orchestration-and-execution-tracking" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "id": { - "type": "string", - "description": "The identifier of the resource." - }, - "job_id": { - "type": "string", - "description": "The identifier of the job." - }, - "job_run_id": { - "type": "string", - "description": "The identifier of the job run." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "managed_database_group_id": { - "type": "string", - "description": "The OCID of the Managed Database Group." - }, - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "name": { - "type": "string", - "description": "A filter to return only resources that match the entire name." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIMECREATED", - "NAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "status": { - "type": "string", - "description": "The status of the job execution." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id" - ] - }, - "mutable": false - }, - { - "name": "list_job_runs", - "description": "Lists job runs with status filters so you can track run-level progress and history.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_job_runs", - "skills": [ - "job-orchestration-and-execution-tracking" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "id": { - "type": "string", - "description": "The identifier of the resource." - }, - "job_id": { - "type": "string", - "description": "The identifier of the job." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "managed_database_group_id": { - "type": "string", - "description": "The OCID of the Managed Database Group." - }, - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "name": { - "type": "string", - "description": "A filter to return only resources that match the entire name." - }, - "run_status": { - "type": "string", - "description": "The status of the job run." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIMECREATED", - "NAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id" - ] - }, - "mutable": false - }, - { - "name": "list_jobs", - "description": "Lists jobs in a compartment with optional target filters so you can locate job definitions quickly.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_jobs", - "skills": [ - "job-orchestration-and-execution-tracking" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "id": { - "type": "string", - "description": "The identifier of the resource." - }, - "lifecycle_state": { - "type": "string", - "enum": [ - "ACTIVE", - "INACTIVE" - ], - "description": "The lifecycle state of the job.\n\nAllowed values are: \"ACTIVE\", \"INACTIVE\"" - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "managed_database_group_id": { - "type": "string", - "description": "The OCID of the Managed Database Group." - }, - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "name": { - "type": "string", - "description": "A filter to return only resources that match the entire name." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIMECREATED", - "NAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id" - ] - }, - "mutable": false - }, - { - "name": "list_managed_database_groups", - "description": "Lists managed database groups in a compartment so you can find group IDs and lifecycle state.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_managed_database_groups", - "skills": [ - "managed-database-groups-organize-and-target-sets-of-databases" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "id": { - "type": "string", - "description": "The identifier of the resource." - }, - "lifecycle_state": { - "type": "string", - "enum": [ - "CREATING", - "UPDATING", - "ACTIVE", - "DELETING", - "DELETED", - "FAILED" - ], - "description": "The lifecycle state of a resource.\n\nAllowed values are: \"CREATING\", \"UPDATING\", \"ACTIVE\", \"DELETING\", \"DELETED\", \"FAILED\"" - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "name": { - "type": "string", - "description": "A filter to return only resources that match the entire name." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIMECREATED", - "NAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id" - ] - }, - "mutable": false - }, - { - "name": "list_managed_databases", - "description": "Returns DB Management managed database inventory for a compartment so admins can discover targets and collect managedDatabaseId values.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_managed_databases", - "skills": [ - "database-inventory" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "deployment_type": { - "type": "string", - "enum": [ - "ONPREMISE", - "BM", - "VM", - "EXADATA", - "EXADATA_CC", - "AUTONOMOUS", - "EXADATA_XS" - ], - "description": "A filter to return Managed Databases of the specified deployment type.\n\nAllowed values are: \"ONPREMISE\", \"BM\", \"VM\", \"EXADATA\", \"EXADATA_CC\", \"AUTONOMOUS\", \"EXADATA_XS\"" - }, - "external_exadata_infrastructure_id": { - "type": "string", - "description": "The OCID of the Exadata infrastructure." - }, - "id": { - "type": "string", - "description": "The identifier of the resource." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "management_option": { - "type": "string", - "enum": [ - "BASIC", - "ADVANCED" - ], - "description": "A filter to return Managed Databases with the specified management option.\n\nAllowed values are: \"BASIC\", \"ADVANCED\"" - }, - "name": { - "type": "string", - "description": "A filter to return only resources that match the entire name." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIMECREATED", - "NAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id" - ] - }, - "mutable": false - }, - { - "name": "list_named_credentials", - "description": "Returns named credential inventory so admins can identify available credential objects for database access workflows.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_named_credentials", - "skills": [ - "credentials-and-authentication-preferred-named" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "associated_resource": { - "type": "string", - "description": "The resource associated to the named credential." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "name": { - "type": "string", - "description": "The name of the named credential." - }, - "scope": { - "type": "string", - "enum": [ - "RESOURCE", - "GLOBAL" - ], - "description": "The scope of named credential.\n\nAllowed values are: \"RESOURCE\", \"GLOBAL\"" - }, - "sort_by": { - "type": "string", - "enum": [ - "TIMECREATED", - "NAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "type": { - "type": "string", - "enum": [ - "ORACLE_DB" - ], - "description": "The type of database that is associated to the named credential.\n\nAllowed values are: \"ORACLE_DB\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id" - ] - }, - "mutable": false - }, - { - "name": "list_news_reports", - "description": "Returns news report inventory so admins can triage advisories relevant to Operations Insights administration.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "list_news_reports", - "skills": [ - "news-reports-and-advisories" - ], - "inputSchema": { - "type": "object", - "properties": { - "compartment_id": { - "type": "string" - }, - "compartment_id_in_subtree": { - "type": "boolean" - }, - "lifecycle_state": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "CREATING", - "UPDATING", - "ACTIVE", - "DELETING", - "DELETED", - "FAILED", - "NEEDS_ATTENTION" - ] - } - }, - "limit": { - "type": "integer" - }, - "news_report_id": { - "type": "string" - }, - "opc_request_id": { - "type": "string" - }, - "page": { - "type": "string" - }, - "sort_by": { - "type": "string", - "enum": [ - "name", - "newsFrequency" - ] - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ] - }, - "status": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "DISABLED", - "ENABLED", - "TERMINATED" - ] - } - } - }, - "additionalProperties": false - }, - "mutable": false - }, - { - "name": "list_object_privileges", - "description": "Returns object privileges granted to a specific user.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_object_privileges", - "skills": [ - "users-and-privileges-rbac-audit" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "name": { - "type": "string", - "description": "A filter to return only resources that match the entire name." - }, - "opc_named_credential_id": { - "type": "string", - "description": "The OCID of the Named Credential." - }, - "sort_by": { - "type": "string", - "enum": [ - "NAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018NAME\u2019 is ascending. The \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "user_name": { - "type": "string", - "description": "The name of the user whose details are to be viewed." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "managed_database_id", - "user_name" - ] - }, - "mutable": false - }, - { - "name": "list_operations_insights_private_endpoints", - "description": "Returns private endpoint inventory so admins can audit endpoint coverage and current connectivity state across scope.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "list_operations_insights_private_endpoints", - "skills": [ - "private-endpoints-and-connectivity" - ], - "inputSchema": { - "type": "object", - "properties": { - "compartment_id": { - "type": "string" - }, - "compartment_id_in_subtree": { - "type": "boolean" - }, - "display_name": { - "type": "string" - }, - "is_used_for_rac_dbs": { - "type": "boolean" - }, - "lifecycle_state": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "CREATING", - "UPDATING", - "ACTIVE", - "DELETING", - "DELETED", - "FAILED", - "NEEDS_ATTENTION" - ] - } - }, - "limit": { - "type": "integer" - }, - "opc_request_id": { - "type": "string" - }, - "opsi_private_endpoint_id": { - "type": "string" - }, - "page": { - "type": "string" - }, - "sort_by": { - "type": "string", - "enum": [ - "timeCreated", - "id", - "displayName" - ] - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ] - }, - "vcn_id": { - "type": "string" - } - }, - "additionalProperties": false - }, - "mutable": false - }, - { - "name": "list_operations_insights_warehouse_users", - "description": "Returns Operations Insights Warehouse User inventory so admins can audit warehouse access coverage and account lifecycle state.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "list_operations_insights_warehouse_users", - "skills": [ - "operations-insights-warehouse-admin" - ], - "inputSchema": { - "type": "object", - "properties": { - "compartment_id": { - "type": "string" - }, - "display_name": { - "type": "string" - }, - "id": { - "type": "string" - }, - "lifecycle_state": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "CREATING", - "UPDATING", - "ACTIVE", - "DELETING", - "DELETED", - "FAILED" - ] - } - }, - "limit": { - "type": "integer" - }, - "opc_request_id": { - "type": "string" - }, - "operations_insights_warehouse_id": { - "type": "string" - }, - "page": { - "type": "string" - }, - "sort_by": { - "type": "string", - "enum": [ - "timeCreated", - "displayName" - ] - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ] - } - }, - "additionalProperties": false, - "required": [ - "operations_insights_warehouse_id" - ] - }, - "mutable": false - }, - { - "name": "list_operations_insights_warehouses", - "description": "Returns Ops Insights warehouse inventory so admins can review warehouse lifecycle status and platform coverage.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "list_operations_insights_warehouses", - "skills": [ - "operations-insights-warehouse-admin" - ], - "inputSchema": { - "type": "object", - "properties": { - "compartment_id": { - "type": "string" - }, - "display_name": { - "type": "string" - }, - "id": { - "type": "string" - }, - "lifecycle_state": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "CREATING", - "UPDATING", - "ACTIVE", - "DELETING", - "DELETED", - "FAILED" - ] - } - }, - "limit": { - "type": "integer" - }, - "opc_request_id": { - "type": "string" - }, - "page": { - "type": "string" - }, - "sort_by": { - "type": "string", - "enum": [ - "timeCreated", - "displayName" - ] - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ] - } - }, - "additionalProperties": false - }, - "mutable": false - }, - { - "name": "list_opsi_configurations", - "description": "Returns OPSI configuration resources so admins can audit active configuration state across managed resources.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "list_opsi_configurations", - "skills": [ - "opsi-configurations-and-datastores" - ], - "inputSchema": { - "type": "object", - "properties": { - "compartment_id": { - "type": "string" - }, - "display_name": { - "type": "string" - }, - "lifecycle_state": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "CREATING", - "UPDATING", - "ACTIVE", - "DELETING", - "DELETED", - "FAILED" - ] - } - }, - "limit": { - "type": "integer" - }, - "opc_request_id": { - "type": "string" - }, - "opsi_config_type": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "UX_CONFIGURATION" - ] - } - }, - "page": { - "type": "string" - }, - "sort_by": { - "type": "string", - "enum": [ - "displayName" - ] - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ] - } - }, - "additionalProperties": false, - "required": [ - "compartment_id" - ] - }, - "mutable": false - }, - { - "name": "list_preferred_credentials", - "description": "Returns preferred credential assignments for a managed database so admins can verify configured authentication context.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_preferred_credentials", - "skills": [ - "credentials-and-authentication-preferred-named" - ], - "inputSchema": { - "type": "object", - "properties": { - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "managed_database_id" - ] - }, - "mutable": false - }, - { - "name": "list_proxied_for_users", - "description": "Returns users on whose behalf the specified user can act as proxy.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_proxied_for_users", - "skills": [ - "users-and-privileges-rbac-audit" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "name": { - "type": "string", - "description": "A filter to return only resources that match the entire name." - }, - "opc_named_credential_id": { - "type": "string", - "description": "The OCID of the Named Credential." - }, - "sort_by": { - "type": "string", - "enum": [ - "NAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018NAME\u2019 is ascending. The \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "user_name": { - "type": "string", - "description": "The name of the user whose details are to be viewed." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "managed_database_id", - "user_name" - ] - }, - "mutable": false - }, - { - "name": "list_proxy_users", - "description": "Returns proxy users who can act as the specified user.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_proxy_users", - "skills": [ - "users-and-privileges-rbac-audit" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "name": { - "type": "string", - "description": "A filter to return only resources that match the entire name." - }, - "opc_named_credential_id": { - "type": "string", - "description": "The OCID of the Named Credential." - }, - "sort_by": { - "type": "string", - "enum": [ - "NAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018NAME\u2019 is ascending. The \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "user_name": { - "type": "string", - "description": "The name of the user whose details are to be viewed." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "managed_database_id", - "user_name" - ] - }, - "mutable": false - }, - { - "name": "list_region_subscriptions", - "description": "Lists region subscriptions for a tenancy. Returns `regionName`, `regionKey`, subscription `status`, and `isHomeRegion` to confirm enabled-region coverage.", - "service": "identity", - "client": "IdentityClient", - "operation": "list_region_subscriptions", - "skills": [ - "oci-common" - ], - "inputSchema": { - "type": "object", - "properties": { - "tenancy_id": { - "type": "string", - "description": "The OCID of the tenancy." - } - }, - "additionalProperties": false, - "required": [ - "tenancy_id" - ] - }, - "mutable": false - }, - { - "name": "list_regions", - "description": "Lists regions offered by Oracle Cloud Infrastructure. Returns region identifiers such as `name` (for example, `us-phoenix-1`) and `key` (for example, `PHX`).", - "service": "identity", - "client": "IdentityClient", - "operation": "list_regions", - "skills": [ - "oci-common" - ], - "inputSchema": { - "type": "object", - "properties": {}, - "additionalProperties": false - }, - "mutable": false - }, - { - "name": "list_roles", - "description": "Returns roles granted to a specific user.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_roles", - "skills": [ - "users-and-privileges-rbac-audit" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "name": { - "type": "string", - "description": "A filter to return only resources that match the entire name." - }, - "opc_named_credential_id": { - "type": "string", - "description": "The OCID of the Named Credential." - }, - "sort_by": { - "type": "string", - "enum": [ - "NAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018NAME\u2019 is ascending. The \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "user_name": { - "type": "string", - "description": "The name of the user whose details are to be viewed." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "managed_database_id", - "user_name" - ] - }, - "mutable": false - }, - { - "name": "list_sql_plans", - "description": "Returns execution plans for a SQL identifier, including plan identifiers and plan text/XML details.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "list_sql_plans", - "skills": [ - "database-performance-analysis" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "database_id": { - "type": "string", - "description": "Optional OCID of the associated DBaaS entity." - }, - "id": { - "type": "string", - "description": "OCID of the database insight resource." - }, - "plan_hash": { - "type": "array", - "items": { - "type": "integer" - }, - "description": "Unique plan hash for a SQL Plan of a particular SQL Statement. Example: `9820154385`" - }, - "sql_identifier": { - "type": "string", - "description": "Unique SQL_ID for a SQL Statement. Example: `6rgjh9bjmy2s7`" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id", - "sql_identifier", - "plan_hash" - ] - }, - "mutable": false - }, - { - "name": "list_sql_searches", - "description": "Search SQL by SQL Identifier across databases. DEPRECATED (announced May 2024; no longer functional as of May 31, 2025).", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "list_sql_searches", - "skills": [ - "database-performance-analysis" - ], - "inputSchema": { - "type": "object", - "properties": { - "compartment_id": { - "type": "string", - "description": "The [OCID](/iaas/Content/General/Concepts/identifiers.htm) of the compartment." - }, - "sql_identifier": { - "type": "string", - "description": "Unique SQL_ID for a SQL Statement.\nExample: `6rgjh9bjmy2s7`\n" - }, - "analysis_time_interval": { - "type": "string", - "description": "Specify time period in ISO 8601 format with respect to current time.\nDefault is last 30 days represented by P30D.\nIf timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored.\nExamples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months), . Maximum value allowed is 25 months prior to current time (P25M).\n" - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\nThe minimum allowed value is 2 years prior to the current day.\ntimeIntervalStart and timeIntervalEnd parameters are used together.\nIf analysisTimeInterval is specified, this parameter is ignored.\n" - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\ntimeIntervalStart and timeIntervalEnd are used together.\nIf timeIntervalEnd is not specified, current time is used as timeIntervalEnd.\n" - }, - "page": { - "type": "string", - "description": "For list pagination. The value of the `opc-next-page` response header from\nthe previous \"List\" call. For important details about how pagination works,\nsee [List Pagination](/Content/API/Concepts/usingapi.htm#nine).\n" - }, - "opc_request_id": { - "type": "string", - "description": "Unique Oracle-assigned identifier for the request. If you need to contact\nOracle about a particular request, please provide the request ID.\n" - }, - "defined_tag_equals": { - "type": "array", - "items": { - "type": "string" - }, - "description": "A list of tag filters to apply. Only resources with a defined tag matching the value will be returned.\nEach item in the list has the format \"{namespace}.{tagName}.{value}\". All inputs are case-insensitive.\nMultiple values for the same key (i.e. same namespace and tag name) are interpreted as \"OR\".\nValues for different keys (i.e. different namespaces, different tag names, or both) are interpreted as \"AND\".\n" - }, - "freeform_tag_equals": { - "type": "array", - "items": { - "type": "string" - }, - "description": "A list of tag filters to apply. Only resources with a freeform tag matching the value will be returned.\nThe key for each tag is \"{tagName}.{value}\". All inputs are case-insensitive.\nMultiple values for the same tag name are interpreted as \"OR\". Values for different tag names are interpreted as \"AND\".\n" - }, - "defined_tag_exists": { - "type": "array", - "items": { - "type": "string" - }, - "description": "A list of tag existence filters to apply. Only resources for which the specified defined tags exist will be returned.\nEach item in the list has the format \"{namespace}.{tagName}.true\" (for checking existence of a defined tag)\nor \"{namespace}.true\". All inputs are case-insensitive.\nCurrently, only existence (\"true\" at the end) is supported. Absence (\"false\" at the end) is not supported.\nMultiple values for the same key (i.e. same namespace and tag name) are interpreted as \"OR\".\nValues for different keys (i.e. different namespaces, different tag names, or both) are interpreted as \"AND\".\n" - }, - "freeform_tag_exists": { - "type": "array", - "items": { - "type": "string" - }, - "description": "A list of tag existence filters to apply. Only resources for which the specified freeform tags exist the value will be returned.\nThe key for each tag is \"{tagName}.true\". All inputs are case-insensitive.\nCurrently, only existence (\"true\" at the end) is supported. Absence (\"false\" at the end) is not supported.\nMultiple values for different tag names are interpreted as \"AND\".\n" - }, - "compartment_id_in_subtree": { - "type": "boolean", - "description": "A flag to search all resources within a given compartment and all sub-compartments.\n" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id", - "sql_identifier" - ] - }, - "mutable": false - }, - { - "name": "list_sql_texts", - "description": "Returns SQL text for SQL identifiers, so admins can review the actual statements behind findings.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "list_sql_texts", - "skills": [ - "database-performance-analysis" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "compartment_id_in_subtree": { - "type": "boolean", - "description": "A flag to search all resources within a given compartment and all sub-compartments." - }, - "database_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database OCIDs of the assosicated DBaaS entity." - }, - "id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database OCIDs of the database insight resource." - }, - "sql_identifier": { - "type": "array", - "items": { - "type": "string" - }, - "description": "One or more unique SQL_IDs for a SQL Statement. Example: `6rgjh9bjmy2s7`" - }, - "defined_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "defined_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id", - "sql_identifier" - ] - }, - "mutable": false - }, - { - "name": "list_system_privileges", - "description": "Returns system privileges granted to a specific user.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_system_privileges", - "skills": [ - "users-and-privileges-rbac-audit" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "name": { - "type": "string", - "description": "A filter to return only resources that match the entire name." - }, - "opc_named_credential_id": { - "type": "string", - "description": "The OCID of the Named Credential." - }, - "sort_by": { - "type": "string", - "enum": [ - "NAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018NAME\u2019 is ascending. The \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "user_name": { - "type": "string", - "description": "The name of the user whose details are to be viewed." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "managed_database_id", - "user_name" - ] - }, - "mutable": false - }, - { - "name": "list_tablespaces", - "description": "Returns tablespaces for a managed database so you can review names and storage usage at a list level.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_tablespaces", - "skills": [ - "storage-and-space-tablespaces-asm" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "name": { - "type": "string", - "description": "A filter to return only resources that match the entire name." - }, - "opc_named_credential_id": { - "type": "string", - "description": "The OCID of the Named Credential." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIMECREATED", - "NAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "managed_database_id" - ] - }, - "mutable": false - }, - { - "name": "list_users", - "description": "Returns users for a managed database so you can identify user accounts for access review.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_users", - "skills": [ - "users-and-privileges-rbac-audit" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "name": { - "type": "string", - "description": "A filter to return only resources that match the entire name." - }, - "opc_named_credential_id": { - "type": "string", - "description": "The OCID of the Named Credential." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIMECREATED", - "NAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "managed_database_id" - ] - }, - "mutable": false - }, - { - "name": "list_work_request_errors", - "description": "Returns error entries for one work request so admins can diagnose failure causes.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_work_request_errors", - "skills": [ - "async-work-requests-long-running-operations" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "sort_by": { - "type": "string", - "enum": [ - "timeAccepted" - ], - "description": "The field to sort by. Only one sort order may be provided and the default order for timeAccepted is descending.\n\nAllowed values are: \"timeAccepted\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "work_request_id": { - "type": "string", - "description": "The OCID of the asynchronous work request." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "work_request_id" - ] - }, - "mutable": false - }, - { - "name": "list_work_request_logs", - "description": "Returns log entries for one work request so admins can trace execution progress and timing.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_work_request_logs", - "skills": [ - "async-work-requests-long-running-operations" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "sort_by": { - "type": "string", - "enum": [ - "timeAccepted" - ], - "description": "The field to sort by. Only one sort order may be provided and the default order for timeAccepted is descending.\n\nAllowed values are: \"timeAccepted\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "work_request_id": { - "type": "string", - "description": "The OCID of the asynchronous work request." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "work_request_id" - ] - }, - "mutable": false - }, - { - "name": "list_work_requests", - "description": "Returns work request inventory so admins can track long-running operation progress and find request IDs for drill-down.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "list_work_requests", - "skills": [ - "async-work-requests-long-running-operations" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "resource_id": { - "type": "string", - "description": "The OCID of the resource affected by the work request." - }, - "sort_by": { - "type": "string", - "enum": [ - "timeAccepted" - ], - "description": "The field to sort by. Only one sort order may be provided and the default order for timeAccepted is descending.\n\nAllowed values are: \"timeAccepted\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "status": { - "type": "string", - "enum": [ - "ACCEPTED", - "IN_PROGRESS", - "FAILED", - "SUCCEEDED", - "CANCELING", - "CANCELED" - ], - "description": "A filter that returns the resources whose status matches the given WorkRequestStatus.\n\nAllowed values are: \"ACCEPTED\", \"IN_PROGRESS\", \"FAILED\", \"SUCCEEDED\", \"CANCELING\", \"CANCELED\"" - }, - "work_request_id": { - "type": "string", - "description": "The OCID of the asynchronous work request." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id" - ] - }, - "mutable": false - }, - { - "name": "summarize_addm_db_findings", - "description": "Returns ADDM findings with affected databases and finding details for the selected interval.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_addm_db_findings", - "skills": [ - "database-addm-analysis" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "category_name": { - "type": "string", - "description": "Optional value filter to match the finding category exactly." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "compartment_id_in_subtree": { - "type": "boolean", - "description": "A flag to search all resources within a given compartment and all sub-compartments." - }, - "database_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database OCIDs of the associated DBaaS entity." - }, - "id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database insight resource OCIDs." - }, - "instance_number": { - "type": "string", - "description": "The optional single value query parameter to filter by database instance number." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "sort_by": { - "type": "string", - "enum": [ - "impactOverallPercent", - "impactMaxPercent", - "impactAvgActiveSessions", - "frequencyCount" - ], - "description": "Field name for sorting the ADDM finding summary data Allowed values are: \"impactOverallPercent\", \"impactMaxPercent\", \"impactAvgActiveSessions\", \"frequencyCount\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." - }, - "defined_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "defined_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id" - ] - }, - "mutable": false - }, - { - "name": "summarize_addm_db_parameter_changes", - "description": "Summarizes ADDM-highlighted parameter changes, including impacted databases and the analysis time window.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_addm_db_parameter_changes", - "skills": [ - "database-addm-analysis" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "compartment_id_in_subtree": { - "type": "boolean", - "description": "A flag to search all resources within a given compartment and all sub-compartments." - }, - "database_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database OCIDs of the associated DBaaS entity." - }, - "id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database insight resource OCIDs." - }, - "instance_number": { - "type": "string", - "description": "The optional single value query parameter to filter by database instance number." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "name": { - "type": "string", - "description": "Required filter to return only changes for the specified parameter. The match is case sensitive." - }, - "sort_by": { - "type": "string", - "enum": [ - "isChanged", - "beginSnapId" - ], - "description": "Field name for sorting the database parameter change data Allowed values are: \"isChanged\", \"beginSnapId\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." - }, - "value_contains": { - "type": "string", - "description": "Optional filter to return only resources whose value contains the substring given. The match is not case sensitive." - }, - "defined_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "defined_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id", - "name" - ] - }, - "mutable": false - }, - { - "name": "summarize_addm_db_parameters", - "description": "Summarizes ADDM parameter-level findings and trends for selected databases and interval.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_addm_db_parameters", - "skills": [ - "database-addm-analysis" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "category_name": { - "type": "string", - "description": "Optional value filter to match an ADDM database parameter category exactly. Use a category name returned by ADDM database parameter category results." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "compartment_id_in_subtree": { - "type": "boolean", - "description": "A flag to search all resources within a given compartment and all sub-compartments." - }, - "database_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database OCIDs of the associated DBaaS entity." - }, - "has_recommendations": { - "type": "string", - "enum": [ - "TRUE", - "FALSE" - ], - "description": "Optional filter to return only parameters which have recommendations in the specified time period. Valid values include: TRUE, FALSE Allowed values are: \"TRUE\", \"FALSE\"" - }, - "id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database insight resource OCIDs." - }, - "instance_number": { - "type": "string", - "description": "The optional single value query parameter to filter by database instance number." - }, - "is_changed": { - "type": "string", - "enum": [ - "TRUE", - "FALSE" - ], - "description": "Optional filter to return only parameters whose value changed in the specified time period. Valid values include: TRUE, FALSE Allowed values are: \"TRUE\", \"FALSE\"" - }, - "is_default": { - "type": "string", - "enum": [ - "TRUE", - "FALSE" - ], - "description": "Optional filter to return only parameters whose end value was set to the default value (TRUE) or was specified in the parameter file (FALSE). Valid values include: TRUE, FALSE Allowed values are: \"TRUE\", \"FALSE\"" - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "name_or_value_contains": { - "type": "string", - "description": "Optional filter to return only resources whose name or value contains the substring given. The match is not case sensitive." - }, - "sort_by": { - "type": "string", - "enum": [ - "isChanged", - "name" - ], - "description": "Field name for sorting the database parameter data Allowed values are: \"isChanged\", \"name\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." - }, - "defined_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "defined_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id" - ] - }, - "mutable": false - }, - { - "name": "summarize_addm_db_recommendations", - "description": "Returns ADDM recommendations with impacted databases and recommendation details over the selected time window.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_addm_db_recommendations", - "skills": [ - "database-addm-analysis" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "category_name": { - "type": "string", - "description": "Optional value filter to match the finding category exactly." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "compartment_id_in_subtree": { - "type": "boolean", - "description": "A flag to search all resources within a given compartment and all sub-compartments." - }, - "database_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database OCIDs of the associated DBaaS entity." - }, - "finding_identifier": { - "type": "string", - "description": "Unique finding ID" - }, - "id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database insight resource OCIDs." - }, - "instance_number": { - "type": "string", - "description": "The optional single value query parameter to filter by database instance number." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "name": { - "type": "string", - "description": "Optional filter to return only resources whose name exactly matches the substring given. The match is case sensitive. Only considered when categoryName is DATABASE_CONFIGURATION." - }, - "name_contains": { - "type": "string", - "description": "Optional filter to return only resources whose name contains the substring given. The match is not case sensitive. Only considered when categoryName is DATABASE_CONFIGURATION." - }, - "owner_or_name_contains": { - "type": "string", - "description": "Optional filter to return only resources whose owner or name contains the substring given. The match is not case sensitive. Only considered when categoryName is SCHEMA_OBJECT." - }, - "sort_by": { - "type": "string", - "enum": [ - "maxBenefitPercent", - "maxBenefitAvgActiveSessions", - "frequencyCount" - ], - "description": "Field name for sorting the recommendation data Allowed values are: \"maxBenefitPercent\", \"maxBenefitAvgActiveSessions\", \"frequencyCount\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" - }, - "sql_identifier": { - "type": "string", - "description": "Optional filter to return only resources whose sql id matches the value given. Only considered when categoryName is SQL_TUNING." - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." - }, - "defined_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "defined_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id" - ] - }, - "mutable": false - }, - { - "name": "summarize_addm_db_schema_objects", - "description": "Summarizes schema objects (such as tables or indexes) flagged by ADDM with impact context.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_addm_db_schema_objects", - "skills": [ - "database-addm-analysis" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "compartment_id_in_subtree": { - "type": "boolean", - "description": "A flag to search all resources within a given compartment and all sub-compartments." - }, - "database_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database OCIDs of the associated DBaaS entity." - }, - "id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database insight resource OCIDs." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "object_identifier": { - "type": "array", - "items": { - "type": "integer" - }, - "description": "One or more unique Object id (from RDBMS)" - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." - }, - "defined_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "defined_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id", - "object_identifier" - ] - }, - "mutable": false - }, - { - "name": "summarize_addm_db_sql_statements", - "description": "Summarizes SQL statements flagged by ADDM, including impact and related finding context.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_addm_db_sql_statements", - "skills": [ - "database-addm-analysis" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "compartment_id_in_subtree": { - "type": "boolean", - "description": "A flag to search all resources within a given compartment and all sub-compartments." - }, - "database_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database OCIDs of the associated DBaaS entity." - }, - "id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database insight resource OCIDs." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "sql_identifier": { - "type": "array", - "items": { - "type": "string" - }, - "description": "One or more unique SQL_IDs for a SQL Statement. Example: `6rgjh9bjmy2s7`" - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." - }, - "defined_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "defined_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id", - "sql_identifier" - ] - }, - "mutable": false - }, - { - "name": "summarize_alert_log_counts", - "description": "Returns aggregated alert log counts for a managed database so you can quickly assess level or type distribution.", - "service": "dbm", - "client": "DiagnosabilityClient", - "operation": "summarize_alert_log_counts", - "skills": [ - "logs-and-alerts-attention-alert-logs" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "group_by": { - "type": "string", - "enum": [ - "LEVEL", - "TYPE" - ], - "description": "The optional parameter used to group different alert logs.\n\nAllowed values are: \"LEVEL\", \"TYPE\"" - }, - "is_regular_expression": { - "type": "boolean", - "description": "The flag to indicate whether the search text is regular expression or not." - }, - "level_filter": { - "type": "string", - "enum": [ - "CRITICAL", - "SEVERE", - "IMPORTANT", - "NORMAL", - "ALL" - ], - "description": "The optional parameter to filter the alert logs by log level.\n\nAllowed values are: \"CRITICAL\", \"SEVERE\", \"IMPORTANT\", \"NORMAL\", \"ALL\"" - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "log_search_text": { - "type": "string", - "description": "The optional query parameter to filter the attention or alert logs by search text." - }, - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "opc_named_credential_id": { - "type": "string", - "description": "The OCID of the Named Credential." - }, - "time_greater_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional greater than or equal to timestamp to filter the logs." - }, - "time_less_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional less than or equal to timestamp to filter the logs." - }, - "type_filter": { - "type": "string", - "enum": [ - "UNKNOWN", - "INCIDENT_ERROR", - "ERROR", - "WARNING", - "NOTIFICATION", - "TRACE", - "ALL" - ], - "description": "The optional parameter to filter the attention or alert logs by type.\n\nAllowed values are: \"UNKNOWN\", \"INCIDENT_ERROR\", \"ERROR\", \"WARNING\", \"NOTIFICATION\", \"TRACE\", \"ALL\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "managed_database_id" - ] - }, - "mutable": false - }, - { - "name": "summarize_attention_log_counts", - "description": "Returns aggregated attention log counts for a managed database so you can quickly assess urgency or type distribution.", - "service": "dbm", - "client": "DiagnosabilityClient", - "operation": "summarize_attention_log_counts", - "skills": [ - "logs-and-alerts-attention-alert-logs" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "group_by": { - "type": "string", - "enum": [ - "URGENCY", - "TYPE" - ], - "description": "The optional parameter used to group different attention logs.\n\nAllowed values are: \"URGENCY\", \"TYPE\"" - }, - "is_regular_expression": { - "type": "boolean", - "description": "The flag to indicate whether the search text is regular expression or not." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "log_search_text": { - "type": "string", - "description": "The optional query parameter to filter the attention or alert logs by search text." - }, - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "opc_named_credential_id": { - "type": "string", - "description": "The OCID of the Named Credential." - }, - "time_greater_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional greater than or equal to timestamp to filter the logs." - }, - "time_less_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional less than or equal to timestamp to filter the logs." - }, - "type_filter": { - "type": "string", - "enum": [ - "UNKNOWN", - "INCIDENT_ERROR", - "ERROR", - "WARNING", - "NOTIFICATION", - "TRACE", - "ALL" - ], - "description": "The optional parameter to filter the attention or alert logs by type.\n\nAllowed values are: \"UNKNOWN\", \"INCIDENT_ERROR\", \"ERROR\", \"WARNING\", \"NOTIFICATION\", \"TRACE\", \"ALL\"" - }, - "urgency_filter": { - "type": "string", - "enum": [ - "IMMEDIATE", - "SOON", - "DEFERRABLE", - "INFO", - "ALL" - ], - "description": "The optional parameter to filter the attention logs by urgency.\n\nAllowed values are: \"IMMEDIATE\", \"SOON\", \"DEFERRABLE\", \"INFO\", \"ALL\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "managed_database_id" - ] - }, - "mutable": false - }, - { - "name": "summarize_awr_database_cpu_usages", - "description": "Returns AWR CPU usage history for a database, including sample timestamps, average CPU values, and interval context.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_awr_database_cpu_usages", - "skills": [ - "database-performance-analysis" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "awr_hub_id": { - "type": "string", - "description": "Unique Awr Hub identifier" - }, - "awr_source_database_identifier": { - "type": "string", - "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results." - }, - "begin_snapshot_identifier_greater_than_or_equal_to": { - "type": "integer", - "description": "The optional greater than or equal to filter on the snapshot ID." - }, - "end_snapshot_identifier_less_than_or_equal_to": { - "type": "integer", - "description": "The optional less than or equal to query parameter to filter the snapshot Identifier." - }, - "instance_number": { - "type": "string", - "description": "The optional single value query parameter to filter by database instance number." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "session_type": { - "type": "string", - "enum": [ - "FOREGROUND", - "BACKGROUND", - "ALL" - ], - "description": "The optional query parameter to filter ASH activities by FOREGROUND or BACKGROUND. Allowed values are: \"FOREGROUND\", \"BACKGROUND\", \"ALL\"" - }, - "sort_by": { - "type": "string", - "enum": [ - "TIME_SAMPLED", - "AVG_VALUE" - ], - "description": "The option to sort the AWR CPU usage summary data. Allowed values are: \"TIME_SAMPLED\", \"AVG_VALUE\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" - }, - "time_greater_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" - }, - "time_less_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "awr_hub_id", - "awr_source_database_identifier" - ] - }, - "mutable": false - }, - { - "name": "summarize_awr_database_metrics", - "description": "Returns sampled AWR metric series for the selected database, including metric name, sample timestamps, and observed values.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_awr_database_metrics", - "skills": [ - "database-performance-analysis" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "awr_hub_id": { - "type": "string", - "description": "Unique Awr Hub identifier" - }, - "awr_source_database_identifier": { - "type": "string", - "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results." - }, - "begin_snapshot_identifier_greater_than_or_equal_to": { - "type": "integer", - "description": "The optional greater than or equal to filter on the snapshot ID." - }, - "end_snapshot_identifier_less_than_or_equal_to": { - "type": "integer", - "description": "The optional less than or equal to query parameter to filter the snapshot Identifier." - }, - "instance_number": { - "type": "string", - "description": "The optional single value query parameter to filter by database instance number." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The required multiple value query parameter to filter the entity name." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIMESTAMP", - "NAME" - ], - "description": "The option to sort the AWR time series summary data. Allowed values are: \"TIMESTAMP\", \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" - }, - "time_greater_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" - }, - "time_less_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "awr_hub_id", - "awr_source_database_identifier", - "name" - ] - }, - "mutable": false - }, - { - "name": "summarize_awr_database_parameter_changes", - "description": "Returns parameter-change history in AWR, including parameter name, changed-state flag, and change sequence context.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_awr_database_parameter_changes", - "skills": [ - "database-performance-analysis" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "awr_hub_id": { - "type": "string", - "description": "Unique Awr Hub identifier" - }, - "awr_source_database_identifier": { - "type": "string", - "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results." - }, - "begin_snapshot_identifier_greater_than_or_equal_to": { - "type": "integer", - "description": "The optional greater than or equal to filter on the snapshot ID." - }, - "end_snapshot_identifier_less_than_or_equal_to": { - "type": "integer", - "description": "The optional less than or equal to query parameter to filter the snapshot Identifier." - }, - "instance_number": { - "type": "string", - "description": "The optional single value query parameter to filter by database instance number." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "name": { - "type": "string", - "description": "The required single value query parameter to filter the entity name." - }, - "sort_by": { - "type": "string", - "enum": [ - "IS_CHANGED", - "NAME" - ], - "description": "The option to sort the AWR database parameter change history data. Allowed values are: \"IS_CHANGED\", \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" - }, - "time_greater_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" - }, - "time_less_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "awr_hub_id", - "awr_source_database_identifier", - "name" - ] - }, - "mutable": false - }, - { - "name": "summarize_awr_database_parameters", - "description": "Returns AWR parameter history for a database, including parameter names, current/historical values, and change indicators.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_awr_database_parameters", - "skills": [ - "database-performance-analysis" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "awr_hub_id": { - "type": "string", - "description": "Unique Awr Hub identifier" - }, - "awr_source_database_identifier": { - "type": "string", - "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results." - }, - "begin_snapshot_identifier_greater_than_or_equal_to": { - "type": "integer", - "description": "The optional greater than or equal to filter on the snapshot ID." - }, - "end_snapshot_identifier_less_than_or_equal_to": { - "type": "integer", - "description": "The optional less than or equal to query parameter to filter the snapshot Identifier." - }, - "instance_number": { - "type": "string", - "description": "The optional single value query parameter to filter by database instance number." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The optional multiple value query parameter to filter the entity name." - }, - "name_contains": { - "type": "string", - "description": "The optional contains query parameter to filter the entity name by any part of the name." - }, - "sort_by": { - "type": "string", - "enum": [ - "IS_CHANGED", - "NAME" - ], - "description": "The option to sort the AWR database parameter change history data. Allowed values are: \"IS_CHANGED\", \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" - }, - "time_greater_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" - }, - "time_less_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" - }, - "value_changed": { - "type": "string", - "enum": [ - "Y", - "N" - ], - "description": "The optional query parameter to filter database parameters whose values were changed. Allowed values are: \"Y\", \"N\"" - }, - "value_default": { - "type": "string", - "enum": [ - "TRUE", - "FALSE" - ], - "description": "The optional query parameter to filter the database parameters that had the default value in the last snapshot. Allowed values are: \"TRUE\", \"FALSE\"" - }, - "value_modified": { - "type": "string", - "enum": [ - "MODIFIED", - "SYSTEM_MOD", - "FALSE" - ], - "description": "The optional query parameter to filter the database parameters that had a modified value in the last snapshot. Allowed values are: \"MODIFIED\", \"SYSTEM_MOD\", \"FALSE\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "awr_hub_id", - "awr_source_database_identifier" - ] - }, - "mutable": false - }, - { - "name": "summarize_awr_database_snapshot_ranges", - "description": "Returns available AWR snapshot windows for a database, including begin time, end time, and snapshot identifiers.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_awr_database_snapshot_ranges", - "skills": [ - "database-performance-analysis" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "awr_hub_id": { - "type": "string", - "description": "Unique Awr Hub identifier" - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "name": { - "type": "string", - "description": "The optional single value query parameter to filter the entity name." - }, - "sort_by": { - "type": "string", - "enum": [ - "END_INTERVAL_TIME", - "NAME" - ], - "description": "The option to sort the AWR summary data. Allowed values are: \"END_INTERVAL_TIME\", \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" - }, - "time_greater_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" - }, - "time_less_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "awr_hub_id" - ] - }, - "mutable": false - }, - { - "name": "summarize_awr_database_sysstats", - "description": "Returns AWR sysstat samples for a database, including statistic names, sampled intervals, and measured values.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_awr_database_sysstats", - "skills": [ - "database-performance-analysis" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "awr_hub_id": { - "type": "string", - "description": "Unique Awr Hub identifier" - }, - "awr_source_database_identifier": { - "type": "string", - "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results." - }, - "begin_snapshot_identifier_greater_than_or_equal_to": { - "type": "integer", - "description": "The optional greater than or equal to filter on the snapshot ID." - }, - "end_snapshot_identifier_less_than_or_equal_to": { - "type": "integer", - "description": "The optional less than or equal to query parameter to filter the snapshot Identifier." - }, - "instance_number": { - "type": "string", - "description": "The optional single value query parameter to filter by database instance number." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The required multiple value query parameter to filter the entity name." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIME_BEGIN", - "NAME" - ], - "description": "The option to sort the data within a time period. Allowed values are: \"TIME_BEGIN\", \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" - }, - "time_greater_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" - }, - "time_less_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "awr_hub_id", - "awr_source_database_identifier", - "name" - ] - }, - "mutable": false - }, - { - "name": "summarize_awr_database_top_wait_events", - "description": "Returns top wait event contributors for an AWR database, including event names, wait intensity, and average wait-time trends.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_awr_database_top_wait_events", - "skills": [ - "database-performance-analysis" - ], - "inputSchema": { - "type": "object", - "properties": { - "awr_hub_id": { - "type": "string", - "description": "Unique Awr Hub identifier" - }, - "awr_source_database_identifier": { - "type": "string", - "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results." - }, - "begin_snapshot_identifier_greater_than_or_equal_to": { - "type": "integer", - "description": "The optional greater than or equal to filter on the snapshot ID." - }, - "end_snapshot_identifier_less_than_or_equal_to": { - "type": "integer", - "description": "The optional less than or equal to query parameter to filter the snapshot Identifier." - }, - "instance_number": { - "type": "string", - "description": "The optional single value query parameter to filter by database instance number." - }, - "session_type": { - "type": "string", - "enum": [ - "FOREGROUND", - "BACKGROUND", - "ALL" - ], - "description": "The optional query parameter to filter ASH activities by FOREGROUND or BACKGROUND. Allowed values are: \"FOREGROUND\", \"BACKGROUND\", \"ALL\"" - }, - "sort_by": { - "type": "string", - "enum": [ - "WAITS_PERSEC", - "AVG_WAIT_TIME_PERSEC" - ], - "description": "The option to sort the AWR top event summary data. Allowed values are: \"WAITS_PERSEC\", \"AVG_WAIT_TIME_PERSEC\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" - }, - "time_greater_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" - }, - "time_less_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" - }, - "top_n": { - "type": "integer", - "description": "The optional query parameter to filter the number of top categories to be returned." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "awr_hub_id", - "awr_source_database_identifier" - ] - }, - "mutable": false - }, - { - "name": "summarize_awr_database_wait_event_buckets", - "description": "Returns wait-event distribution buckets for a database, including category labels, bucket percentages, and frequency weighting.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_awr_database_wait_event_buckets", - "skills": [ - "database-performance-analysis" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "awr_hub_id": { - "type": "string", - "description": "Unique Awr Hub identifier" - }, - "awr_source_database_identifier": { - "type": "string", - "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results." - }, - "begin_snapshot_identifier_greater_than_or_equal_to": { - "type": "integer", - "description": "The optional greater than or equal to filter on the snapshot ID." - }, - "end_snapshot_identifier_less_than_or_equal_to": { - "type": "integer", - "description": "The optional less than or equal to query parameter to filter the snapshot Identifier." - }, - "instance_number": { - "type": "string", - "description": "The optional single value query parameter to filter by database instance number." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "max_value": { - "type": "number", - "description": "The maximum value of the histogram." - }, - "min_value": { - "type": "number", - "description": "The minimum value of the histogram." - }, - "name": { - "type": "string", - "description": "The required single value query parameter to filter the entity name." - }, - "num_bucket": { - "type": "integer", - "description": "The number of buckets within the histogram." - }, - "sort_by": { - "type": "string", - "enum": [ - "CATEGORY", - "PERCENTAGE" - ], - "description": "The option to sort distribution data. Allowed values are: \"CATEGORY\", \"PERCENTAGE\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" - }, - "time_greater_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" - }, - "time_less_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "awr_hub_id", - "awr_source_database_identifier", - "name" - ] - }, - "mutable": false - }, - { - "name": "summarize_awr_database_wait_events", - "description": "Returns wait-event samples for the selected period, including event names, sampled intervals, and wait activity values.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_awr_database_wait_events", - "skills": [ - "database-performance-analysis" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "awr_hub_id": { - "type": "string", - "description": "Unique Awr Hub identifier" - }, - "awr_source_database_identifier": { - "type": "string", - "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results." - }, - "begin_snapshot_identifier_greater_than_or_equal_to": { - "type": "integer", - "description": "The optional greater than or equal to filter on the snapshot ID." - }, - "end_snapshot_identifier_less_than_or_equal_to": { - "type": "integer", - "description": "The optional less than or equal to query parameter to filter the snapshot Identifier." - }, - "instance_number": { - "type": "string", - "description": "The optional single value query parameter to filter by database instance number." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The optional multiple value query parameter to filter the entity name." - }, - "session_type": { - "type": "string", - "enum": [ - "FOREGROUND", - "BACKGROUND", - "ALL" - ], - "description": "The optional query parameter to filter ASH activities by FOREGROUND or BACKGROUND. Allowed values are: \"FOREGROUND\", \"BACKGROUND\", \"ALL\"" - }, - "sort_by": { - "type": "string", - "enum": [ - "TIME_BEGIN", - "NAME" - ], - "description": "The option to sort the data within a time period. Allowed values are: \"TIME_BEGIN\", \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" - }, - "time_greater_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional greater than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" - }, - "time_less_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "awr_hub_id", - "awr_source_database_identifier" - ] - }, - "mutable": false - }, - { - "name": "summarize_awr_db_cpu_usages", - "description": "Returns AWR CPU usage summaries for one AWR database in the requested window.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "summarize_awr_db_cpu_usages", - "skills": [ - "awr-historical-performance-analysis" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "awr_db_id": { - "type": "string", - "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results." - }, - "begin_sn_id_greater_than_or_equal_to": { - "type": "integer", - "description": "The optional greater than or equal to filter on the snapshot ID." - }, - "container_id": { - "type": "integer", - "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results." - }, - "end_sn_id_less_than_or_equal_to": { - "type": "integer", - "description": "The optional less than or equal to query parameter to filter the snapshot ID." - }, - "inst_num": { - "type": "string", - "description": "The optional single value query parameter to filter the database instance number." - }, - "limit": { - "type": "integer", - "description": "For large list pagination. Maximum number of results to return in one response page. Example: 1000." - }, - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "opc_named_credential_id": { - "type": "string", - "description": "The OCID of the Named Credential." - }, - "session_type": { - "type": "string", - "enum": [ - "FOREGROUND", - "BACKGROUND", - "ALL" - ], - "description": "The optional query parameter to filter ASH activities by FOREGROUND or BACKGROUND.\n\nAllowed values are: \"FOREGROUND\", \"BACKGROUND\", \"ALL\"" - }, - "sort_by": { - "type": "string", - "enum": [ - "TIME_SAMPLED", - "AVG_VALUE" - ], - "description": "The option to sort the AWR CPU usage summary data.\n\nAllowed values are: \"TIME_SAMPLED\", \"AVG_VALUE\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "time_greater_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional greater than or equal to query parameter to filter the timestamp." - }, - "time_less_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional less than or equal to query parameter to filter the timestamp." - }, - "opc_request_id": { - "type": "string" - }, - "opc_retry_token": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "managed_database_id", - "awr_db_id" - ] - }, - "mutable": false - }, - { - "name": "summarize_awr_db_metrics", - "description": "Returns AWR metric sample summaries for one AWR database.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "summarize_awr_db_metrics", - "skills": [ - "awr-historical-performance-analysis" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "awr_db_id": { - "type": "string", - "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results." - }, - "begin_sn_id_greater_than_or_equal_to": { - "type": "integer", - "description": "The optional greater than or equal to filter on the snapshot ID." - }, - "container_id": { - "type": "integer", - "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results." - }, - "end_sn_id_less_than_or_equal_to": { - "type": "integer", - "description": "The optional less than or equal to query parameter to filter the snapshot ID." - }, - "inst_num": { - "type": "string", - "description": "The optional single value query parameter to filter the database instance number." - }, - "limit": { - "type": "integer", - "description": "For large list pagination. Maximum number of results to return in one response page. Example: 1000." - }, - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The required multiple value query parameter to filter the entity name." - }, - "opc_named_credential_id": { - "type": "string", - "description": "The OCID of the Named Credential." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIMESTAMP", - "NAME" - ], - "description": "The option to sort the AWR time series summary data.\n\nAllowed values are: \"TIMESTAMP\", \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "time_greater_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional greater than or equal to query parameter to filter the timestamp." - }, - "time_less_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional less than or equal to query parameter to filter the timestamp." - }, - "opc_request_id": { - "type": "string" - }, - "opc_retry_token": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "managed_database_id", - "awr_db_id", - "name" - ] - }, - "mutable": false - }, - { - "name": "summarize_awr_db_parameter_changes", - "description": "Returns change-history records for one AWR database parameter.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "summarize_awr_db_parameter_changes", - "skills": [ - "awr-historical-performance-analysis" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "awr_db_id": { - "type": "string", - "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results." - }, - "begin_sn_id_greater_than_or_equal_to": { - "type": "integer", - "description": "The optional greater than or equal to filter on the snapshot ID." - }, - "container_id": { - "type": "integer", - "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results." - }, - "end_sn_id_less_than_or_equal_to": { - "type": "integer", - "description": "The optional less than or equal to query parameter to filter the snapshot ID." - }, - "inst_num": { - "type": "string", - "description": "The optional single value query parameter to filter the database instance number." - }, - "limit": { - "type": "integer", - "description": "For large list pagination. Maximum number of results to return in one response page. Example: 1000." - }, - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "name": { - "type": "string", - "description": "The required single value query parameter to filter the entity name." - }, - "opc_named_credential_id": { - "type": "string", - "description": "The OCID of the Named Credential." - }, - "sort_by": { - "type": "string", - "enum": [ - "IS_CHANGED", - "NAME" - ], - "description": "The option to sort the AWR database parameter change history data.\n\nAllowed values are: \"IS_CHANGED\", \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "time_greater_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional greater than or equal to query parameter to filter the timestamp." - }, - "time_less_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional less than or equal to query parameter to filter the timestamp." - }, - "opc_request_id": { - "type": "string" - }, - "opc_retry_token": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "managed_database_id", - "awr_db_id", - "name" - ] - }, - "mutable": false - }, - { - "name": "summarize_awr_db_parameters", - "description": "Returns AWR parameter summaries, including change/default context, for one AWR database.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "summarize_awr_db_parameters", - "skills": [ - "awr-historical-performance-analysis" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "awr_db_id": { - "type": "string", - "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results." - }, - "begin_sn_id_greater_than_or_equal_to": { - "type": "integer", - "description": "The optional greater than or equal to filter on the snapshot ID." - }, - "container_id": { - "type": "integer", - "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results." - }, - "end_sn_id_less_than_or_equal_to": { - "type": "integer", - "description": "The optional less than or equal to query parameter to filter the snapshot ID." - }, - "inst_num": { - "type": "string", - "description": "The optional single value query parameter to filter the database instance number." - }, - "limit": { - "type": "integer", - "description": "For large list pagination. Maximum number of results to return in one response page. Example: 1000." - }, - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The optional multiple value query parameter to filter the entity name." - }, - "name_contains": { - "type": "string", - "description": "The optional contains query parameter to filter the entity name by any part of the name." - }, - "opc_named_credential_id": { - "type": "string", - "description": "The OCID of the Named Credential." - }, - "sort_by": { - "type": "string", - "enum": [ - "IS_CHANGED", - "NAME" - ], - "description": "The option to sort the AWR database parameter change history data.\n\nAllowed values are: \"IS_CHANGED\", \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "time_greater_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional greater than or equal to query parameter to filter the timestamp." - }, - "time_less_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional less than or equal to query parameter to filter the timestamp." - }, - "value_changed": { - "type": "string", - "enum": [ - "Y", - "N" - ], - "description": "The optional query parameter to filter database parameters whose values were changed.\n\nAllowed values are: \"Y\", \"N\"" - }, - "value_default": { - "type": "string", - "enum": [ - "TRUE", - "FALSE" - ], - "description": "The optional query parameter to filter the database parameters that had the default value in the last snapshot.\n\nAllowed values are: \"TRUE\", \"FALSE\"" - }, - "value_modified": { - "type": "string", - "enum": [ - "MODIFIED", - "SYSTEM_MOD", - "FALSE" - ], - "description": "The optional query parameter to filter the database parameters that had a modified value in the last snapshot.\n\nAllowed values are: \"MODIFIED\", \"SYSTEM_MOD\", \"FALSE\"" - }, - "opc_request_id": { - "type": "string" - }, - "opc_retry_token": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "managed_database_id", - "awr_db_id" - ] - }, - "mutable": false - }, - { - "name": "summarize_awr_db_snapshot_ranges", - "description": "Returns continuous AWR snapshot ranges for databases in a managed database.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "summarize_awr_db_snapshot_ranges", - "skills": [ - "awr-historical-performance-analysis" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "name": { - "type": "string", - "description": "The optional single value query parameter to filter the entity name." - }, - "opc_named_credential_id": { - "type": "string", - "description": "The OCID of the Named Credential." - }, - "sort_by": { - "type": "string", - "enum": [ - "END_INTERVAL_TIME", - "NAME" - ], - "description": "The option to sort the AWR summary data.\n\nAllowed values are: \"END_INTERVAL_TIME\", \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "time_greater_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional greater than or equal to query parameter to filter the timestamp." - }, - "time_less_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional less than or equal to query parameter to filter the timestamp." - }, - "opc_request_id": { - "type": "string" - }, - "opc_retry_token": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "managed_database_id" - ] - }, - "mutable": false - }, - { - "name": "summarize_awr_db_sysstats", - "description": "Returns AWR SYSSTAT summaries for one AWR database.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "summarize_awr_db_sysstats", - "skills": [ - "awr-historical-performance-analysis" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "awr_db_id": { - "type": "string", - "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results." - }, - "begin_sn_id_greater_than_or_equal_to": { - "type": "integer", - "description": "The optional greater than or equal to filter on the snapshot ID." - }, - "container_id": { - "type": "integer", - "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results." - }, - "end_sn_id_less_than_or_equal_to": { - "type": "integer", - "description": "The optional less than or equal to query parameter to filter the snapshot ID." - }, - "inst_num": { - "type": "string", - "description": "The optional single value query parameter to filter the database instance number." - }, - "limit": { - "type": "integer", - "description": "For large list pagination. Maximum number of results to return in one response page. Example: 1000." - }, - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The required multiple value query parameter to filter the entity name." - }, - "opc_named_credential_id": { - "type": "string", - "description": "The OCID of the Named Credential." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIME_BEGIN", - "NAME" - ], - "description": "The option to sort the data within a time period.\n\nAllowed values are: \"TIME_BEGIN\", \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "time_greater_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional greater than or equal to query parameter to filter the timestamp." - }, - "time_less_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional less than or equal to query parameter to filter the timestamp." - }, - "opc_request_id": { - "type": "string" - }, - "opc_retry_token": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "managed_database_id", - "awr_db_id", - "name" - ] - }, - "mutable": false - }, - { - "name": "summarize_awr_db_top_wait_events", - "description": "Returns top N AWR wait events for one AWR database.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "summarize_awr_db_top_wait_events", - "skills": [ - "awr-historical-performance-analysis" - ], - "inputSchema": { - "type": "object", - "properties": { - "awr_db_id": { - "type": "string", - "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results." - }, - "begin_sn_id_greater_than_or_equal_to": { - "type": "integer", - "description": "The optional greater than or equal to filter on the snapshot ID." - }, - "container_id": { - "type": "integer", - "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results." - }, - "end_sn_id_less_than_or_equal_to": { - "type": "integer", - "description": "The optional less than or equal to query parameter to filter the snapshot ID." - }, - "inst_num": { - "type": "string", - "description": "The optional single value query parameter to filter the database instance number." - }, - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "opc_named_credential_id": { - "type": "string", - "description": "The OCID of the Named Credential." - }, - "session_type": { - "type": "string", - "enum": [ - "FOREGROUND", - "BACKGROUND", - "ALL" - ], - "description": "The optional query parameter to filter ASH activities by FOREGROUND or BACKGROUND.\n\nAllowed values are: \"FOREGROUND\", \"BACKGROUND\", \"ALL\"" - }, - "sort_by": { - "type": "string", - "enum": [ - "WAITS_PERSEC", - "AVG_WAIT_TIME_PERSEC" - ], - "description": "The option to sort the AWR top event summary data.\n\nAllowed values are: \"WAITS_PERSEC\", \"AVG_WAIT_TIME_PERSEC\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "time_greater_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional greater than or equal to query parameter to filter the timestamp." - }, - "time_less_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional less than or equal to query parameter to filter the timestamp." - }, - "top_n": { - "type": "integer", - "description": "The optional query parameter to filter the number of top categories to be returned." - }, - "opc_request_id": { - "type": "string" - }, - "opc_retry_token": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "managed_database_id", - "awr_db_id" - ] - }, - "mutable": false - }, - { - "name": "summarize_awr_db_wait_event_buckets", - "description": "Returns AWR wait event histogram buckets and frequencies for one AWR database.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "summarize_awr_db_wait_event_buckets", - "skills": [ - "awr-historical-performance-analysis" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "awr_db_id": { - "type": "string", - "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results." - }, - "begin_sn_id_greater_than_or_equal_to": { - "type": "integer", - "description": "The optional greater than or equal to filter on the snapshot ID." - }, - "container_id": { - "type": "integer", - "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results." - }, - "end_sn_id_less_than_or_equal_to": { - "type": "integer", - "description": "The optional less than or equal to query parameter to filter the snapshot ID." - }, - "inst_num": { - "type": "string", - "description": "The optional single value query parameter to filter the database instance number." - }, - "limit": { - "type": "integer", - "description": "For large list pagination. Maximum number of results to return in one response page. Example: 1000." - }, - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "max_value": { - "type": "number", - "description": "The maximum value of the histogram." - }, - "min_value": { - "type": "number", - "description": "The minimum value of the histogram." - }, - "name": { - "type": "string", - "description": "The required single value query parameter to filter the entity name." - }, - "num_bucket": { - "type": "integer", - "description": "The number of buckets within the histogram." - }, - "opc_named_credential_id": { - "type": "string", - "description": "The OCID of the Named Credential." - }, - "sort_by": { - "type": "string", - "enum": [ - "CATEGORY", - "PERCENTAGE" - ], - "description": "The option to sort distribution data.\n\nAllowed values are: \"CATEGORY\", \"PERCENTAGE\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "time_greater_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional greater than or equal to query parameter to filter the timestamp." - }, - "time_less_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional less than or equal to query parameter to filter the timestamp." - }, - "opc_request_id": { - "type": "string" - }, - "opc_retry_token": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "managed_database_id", - "awr_db_id", - "name" - ] - }, - "mutable": false - }, - { - "name": "summarize_awr_db_wait_events", - "description": "Returns AWR wait event summaries for one AWR database.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "summarize_awr_db_wait_events", - "skills": [ - "awr-historical-performance-analysis" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "awr_db_id": { - "type": "string", - "description": "Internal AWR database identifier within the managed database. This value is not an OCID; use the identifier returned by AWR database listing results." - }, - "begin_sn_id_greater_than_or_equal_to": { - "type": "integer", - "description": "The optional greater than or equal to filter on the snapshot ID." - }, - "container_id": { - "type": "integer", - "description": "AWR database container identifier. This value is not an OCID; use container identifiers returned by AWR snapshot range results." - }, - "end_sn_id_less_than_or_equal_to": { - "type": "integer", - "description": "The optional less than or equal to query parameter to filter the snapshot ID." - }, - "inst_num": { - "type": "string", - "description": "The optional single value query parameter to filter the database instance number." - }, - "limit": { - "type": "integer", - "description": "For large list pagination. Maximum number of results to return in one response page. Example: 1000." - }, - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The optional multiple value query parameter to filter the entity name." - }, - "opc_named_credential_id": { - "type": "string", - "description": "The OCID of the Named Credential." - }, - "session_type": { - "type": "string", - "enum": [ - "FOREGROUND", - "BACKGROUND", - "ALL" - ], - "description": "The optional query parameter to filter ASH activities by FOREGROUND or BACKGROUND.\n\nAllowed values are: \"FOREGROUND\", \"BACKGROUND\", \"ALL\"" - }, - "sort_by": { - "type": "string", - "enum": [ - "TIME_BEGIN", - "NAME" - ], - "description": "The option to sort the data within a time period.\n\nAllowed values are: \"TIME_BEGIN\", \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Descending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "time_greater_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional greater than or equal to query parameter to filter the timestamp." - }, - "time_less_than_or_equal_to": { - "type": "string", - "format": "date-time", - "description": "The optional less than or equal to query parameter to filter the timestamp." - }, - "opc_request_id": { - "type": "string" - }, - "opc_retry_token": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "managed_database_id", - "awr_db_id" - ] - }, - "mutable": false - }, - { - "name": "summarize_cloud_asm_metrics", - "description": "Gets the cloud ASM metrics.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "summarize_cloud_asm_metrics", - "skills": [ - "cloud-asm-core" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "cloud_asm_id": { - "type": "string", - "description": "The OCID of the cloud ASM." - }, - "end_time": { - "type": "string", - "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." - }, - "filter_by_metric_names": { - "type": "string", - "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "start_time": { - "type": "string", - "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "cloud_asm_id", - "start_time", - "end_time" - ] - }, - "mutable": false - }, - { - "name": "summarize_cloud_cluster_metrics", - "description": "Gets the cloud cluster metrics.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "summarize_cloud_cluster_metrics", - "skills": [ - "cloud-db-runtime-topology" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "cloud_cluster_id": { - "type": "string", - "description": "The OCID of the cloud cluster." - }, - "end_time": { - "type": "string", - "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." - }, - "filter_by_metric_names": { - "type": "string", - "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "start_time": { - "type": "string", - "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "cloud_cluster_id", - "start_time", - "end_time" - ] - }, - "mutable": false - }, - { - "name": "summarize_cloud_db_node_metrics", - "description": "Gets the cloud DB nodemetrics.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "summarize_cloud_db_node_metrics", - "skills": [ - "cloud-db-runtime-topology" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "cloud_db_node_id": { - "type": "string", - "description": "The OCID of the cloud database node." - }, - "end_time": { - "type": "string", - "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." - }, - "filter_by_metric_names": { - "type": "string", - "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "start_time": { - "type": "string", - "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "cloud_db_node_id", - "start_time", - "end_time" - ] - }, - "mutable": false - }, - { - "name": "summarize_cloud_db_system_availability_metrics", - "description": "Returns availability summaries for Cloud DB system components so admins can assess component-level service health.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "summarize_cloud_db_system_availability_metrics", - "skills": [ - "cloud-inventory-discovery-connectivity" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "cloud_db_system_id": { - "type": "string", - "description": "The OCID of the cloud DB system." - }, - "end_time": { - "type": "string", - "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." - }, - "filter_by_component_types": { - "type": "string", - "description": "The filter used to retrieve metrics for a specific set of component types by passing the desired component types separated by a comma. Note that, by default, the service returns metrics for all DB system component types." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "start_time": { - "type": "string", - "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "cloud_db_system_id", - "start_time", - "end_time" - ] - }, - "mutable": false - }, - { - "name": "summarize_cloud_listener_metrics", - "description": "Gets the cloud listener metrics.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "summarize_cloud_listener_metrics", - "skills": [ - "cloud-db-runtime-topology" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "cloud_listener_id": { - "type": "string", - "description": "The OCID of the cloud listener." - }, - "end_time": { - "type": "string", - "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." - }, - "filter_by_metric_names": { - "type": "string", - "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "start_time": { - "type": "string", - "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "cloud_listener_id", - "start_time", - "end_time" - ] - }, - "mutable": false - }, - { - "name": "summarize_database_insight_resource_capacity_trend", - "description": "Shows capacity trend for a selected resourceMetric (for example CPU or STORAGE), including baseline/max capacity and utilization thresholds.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_database_insight_resource_capacity_trend", - "skills": [ - "database-capacity-usage-and-forecasting" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "analysis_time_interval": { - "type": "string", - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." - }, - "cdb_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more cdb name." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "compartment_id_in_subtree": { - "type": "boolean", - "description": "A flag to search all resources within a given compartment and all sub-compartments." - }, - "database_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database OCIDs of the associated DBaaS entity." - }, - "database_type": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "ADW-S", - "ATP-S", - "ADW-D", - "ATP-D", - "EXTERNAL-PDB", - "EXTERNAL-NONCDB", - "COMANAGED-VM-CDB", - "COMANAGED-VM-PDB", - "COMANAGED-VM-NONCDB", - "COMANAGED-BM-CDB", - "COMANAGED-BM-PDB", - "COMANAGED-BM-NONCDB", - "COMANAGED-EXACS-CDB", - "COMANAGED-EXACS-PDB", - "COMANAGED-EXACS-NONCDB", - "COMANAGED-EXACC-CDB", - "COMANAGED-EXACC-PDB", - "COMANAGED-EXACC-NONCDB", - "MDS-MYSQL", - "EXTERNAL-MYSQL", - "ATP-EXACC", - "ADW-EXACC", - "EXTERNAL-ADW", - "EXTERNAL-ATP", - "LH-D", - "APEX-D", - "AJD-D", - "AVD-D", - "LH-S", - "APEX-S", - "AJD-S", - "AVD-S", - "LH-EXACC", - "APEX-EXACC", - "AJD-EXACC", - "AVD-EXACC" - ] - }, - "description": "Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: \"ADW-S\", \"ATP-S\", \"ADW-D\", \"ATP-D\", \"EXTERNAL-PDB\", \"EXTERNAL-NONCDB\", \"COMANAGED-VM-CDB\", \"COMANAGED-VM-PDB\", \"COMANAGED-VM-NONCDB\", \"COMANAGED-BM-CDB\", \"COMANAGED-BM-PDB\", \"COMANAGED-BM-NONCDB\", \"COMANAGED-EXACS-CDB\", \"COMANAGED-EXACS-PDB\", \"COMANAGED-EXACS-NONCDB\", \"COMANAGED-EXACC-CDB\", \"COMANAGED-EXACC-PDB\", \"COMANAGED-EXACC-NONCDB\", \"MDS-MYSQL\", \"EXTERNAL-MYSQL\", \"ATP-EXACC\", \"ADW-EXACC\", \"EXTERNAL-ADW\", \"EXTERNAL-ATP\", \"LH-D\", \"APEX-D\", \"AJD-D\", \"AVD-D\", \"LH-S\", \"APEX-S\", \"AJD-S\", \"AVD-S\", \"LH-EXACC\", \"APEX-EXACC\", \"AJD-EXACC\", \"AVD-EXACC\"" - }, - "exadata_insight_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of exadata insight resource OCIDs." - }, - "high_utilization_threshold": { - "type": "integer", - "description": "Percent value in which a resource metric is considered highly utilized." - }, - "host_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more hostname." - }, - "id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database insight resource OCIDs." - }, - "is_database_instance_level_metrics": { - "type": "boolean", - "description": "Flag to indicate if database instance level metrics should be returned. The flag is ignored when a host name filter is not applied. When a hostname filter is applied this flag will determine whether to return metrics for the instances located on the specified host or for the whole database which contains an instance on this host." - }, - "low_utilization_threshold": { - "type": "integer", - "description": "Percent value in which a resource metric is considered low utilized." - }, - "resource_metric": { - "type": "string", - "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY and IO." - }, - "sort_by": { - "type": "string", - "enum": [ - "endTimestamp", - "capacity", - "baseCapacity" - ], - "description": "Sorts using end timestamp, capacity or baseCapacity Allowed values are: \"endTimestamp\", \"capacity\", \"baseCapacity\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" - }, - "tablespace_name": { - "type": "string", - "description": "Tablespace name for a database" - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." - }, - "utilization_level": { - "type": "string", - "enum": [ - "HIGH_UTILIZATION", - "LOW_UTILIZATION", - "MEDIUM_HIGH_UTILIZATION", - "MEDIUM_LOW_UTILIZATION" - ], - "description": "Filter by utilization level by the following buckets: - HIGH_UTILIZATION: DBs with utilization greater or equal than 75. - LOW_UTILIZATION: DBs with utilization lower than 25. - MEDIUM_HIGH_UTILIZATION: DBs with utilization greater or equal than 50 but lower than 75. - MEDIUM_LOW_UTILIZATION: DBs with utilization greater or equal than 25 but lower than 50. Allowed values are: \"HIGH_UTILIZATION\", \"LOW_UTILIZATION\", \"MEDIUM_HIGH_UTILIZATION\", \"MEDIUM_LOW_UTILIZATION\"" - }, - "vmcluster_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of Exadata Insight VM cluster name." - }, - "defined_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "defined_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id", - "resource_metric" - ] - }, - "mutable": false - }, - { - "name": "summarize_database_insight_resource_forecast_trend", - "description": "Provides historical and projected demand for a selected resourceMetric (for example CPU or STORAGE) and statistic (AVG or MAX), including forecast algorithm output.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_database_insight_resource_forecast_trend", - "skills": [ - "database-capacity-usage-and-forecasting" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "analysis_time_interval": { - "type": "string", - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." - }, - "cdb_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more cdb name." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "compartment_id_in_subtree": { - "type": "boolean", - "description": "A flag to search all resources within a given compartment and all sub-compartments." - }, - "confidence": { - "type": "integer", - "description": "This parameter is used to change data's confidence level, this data is ingested by the forecast algorithm. Confidence is the probability of an interval to contain the expected population parameter. Manipulation of this value will lead to different results. If not set, default confidence value is 95%." - }, - "database_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database OCIDs of the associated DBaaS entity." - }, - "database_type": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "ADW-S", - "ATP-S", - "ADW-D", - "ATP-D", - "EXTERNAL-PDB", - "EXTERNAL-NONCDB", - "COMANAGED-VM-CDB", - "COMANAGED-VM-PDB", - "COMANAGED-VM-NONCDB", - "COMANAGED-BM-CDB", - "COMANAGED-BM-PDB", - "COMANAGED-BM-NONCDB", - "COMANAGED-EXACS-CDB", - "COMANAGED-EXACS-PDB", - "COMANAGED-EXACS-NONCDB", - "COMANAGED-EXACC-CDB", - "COMANAGED-EXACC-PDB", - "COMANAGED-EXACC-NONCDB", - "MDS-MYSQL", - "EXTERNAL-MYSQL", - "ATP-EXACC", - "ADW-EXACC", - "EXTERNAL-ADW", - "EXTERNAL-ATP", - "LH-D", - "APEX-D", - "AJD-D", - "AVD-D", - "LH-S", - "APEX-S", - "AJD-S", - "AVD-S", - "LH-EXACC", - "APEX-EXACC", - "AJD-EXACC", - "AVD-EXACC" - ] - }, - "description": "Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: \"ADW-S\", \"ATP-S\", \"ADW-D\", \"ATP-D\", \"EXTERNAL-PDB\", \"EXTERNAL-NONCDB\", \"COMANAGED-VM-CDB\", \"COMANAGED-VM-PDB\", \"COMANAGED-VM-NONCDB\", \"COMANAGED-BM-CDB\", \"COMANAGED-BM-PDB\", \"COMANAGED-BM-NONCDB\", \"COMANAGED-EXACS-CDB\", \"COMANAGED-EXACS-PDB\", \"COMANAGED-EXACS-NONCDB\", \"COMANAGED-EXACC-CDB\", \"COMANAGED-EXACC-PDB\", \"COMANAGED-EXACC-NONCDB\", \"MDS-MYSQL\", \"EXTERNAL-MYSQL\", \"ATP-EXACC\", \"ADW-EXACC\", \"EXTERNAL-ADW\", \"EXTERNAL-ATP\", \"LH-D\", \"APEX-D\", \"AJD-D\", \"AVD-D\", \"LH-S\", \"APEX-S\", \"AJD-S\", \"AVD-S\", \"LH-EXACC\", \"APEX-EXACC\", \"AJD-EXACC\", \"AVD-EXACC\"" - }, - "exadata_insight_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of exadata insight resource OCIDs." - }, - "forecast_days": { - "type": "integer", - "description": "Number of days used for utilization forecast analysis." - }, - "forecast_model": { - "type": "string", - "enum": [ - "LINEAR", - "ML_AUTO", - "ML_NO_AUTO" - ], - "description": "Choose algorithm model for the forecasting. Possible values: - LINEAR: Uses linear regression algorithm for forecasting. - ML_AUTO: Automatically detects best algorithm to use for forecasting. - ML_NO_AUTO: Automatically detects seasonality of the data for forecasting using linear or seasonal algorithm. Allowed values are: \"LINEAR\", \"ML_AUTO\", \"ML_NO_AUTO\"" - }, - "high_utilization_threshold": { - "type": "integer", - "description": "Percent value in which a resource metric is considered highly utilized." - }, - "host_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more hostname." - }, - "id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database insight resource OCIDs." - }, - "is_database_instance_level_metrics": { - "type": "boolean", - "description": "Flag to indicate if database instance level metrics should be returned. The flag is ignored when a host name filter is not applied. When a hostname filter is applied this flag will determine whether to return metrics for the instances located on the specified host or for the whole database which contains an instance on this host." - }, - "low_utilization_threshold": { - "type": "integer", - "description": "Percent value in which a resource metric is considered low utilized." - }, - "resource_metric": { - "type": "string", - "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY and IO." - }, - "statistic": { - "type": "string", - "enum": [ - "AVG", - "MAX" - ], - "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"" - }, - "tablespace_name": { - "type": "string", - "description": "Tablespace name for a database" - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." - }, - "utilization_level": { - "type": "string", - "enum": [ - "HIGH_UTILIZATION", - "LOW_UTILIZATION", - "MEDIUM_HIGH_UTILIZATION", - "MEDIUM_LOW_UTILIZATION" - ], - "description": "Filter by utilization level by the following buckets: - HIGH_UTILIZATION: DBs with utilization greater or equal than 75. - LOW_UTILIZATION: DBs with utilization lower than 25. - MEDIUM_HIGH_UTILIZATION: DBs with utilization greater or equal than 50 but lower than 75. - MEDIUM_LOW_UTILIZATION: DBs with utilization greater or equal than 25 but lower than 50. Allowed values are: \"HIGH_UTILIZATION\", \"LOW_UTILIZATION\", \"MEDIUM_HIGH_UTILIZATION\", \"MEDIUM_LOW_UTILIZATION\"" - }, - "vmcluster_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of Exadata Insight VM cluster name." - }, - "defined_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "defined_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id", - "resource_metric" - ] - }, - "mutable": false - }, - { - "name": "summarize_database_insight_resource_statistics", - "description": "Returns per-database statistics for a selected resourceMetric (for example CPU or STORAGE), including usage, capacity, utilization, and usage-change percent.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_database_insight_resource_statistics", - "skills": [ - "database-capacity-usage-and-forecasting" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "analysis_time_interval": { - "type": "string", - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." - }, - "cdb_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more cdb name." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "compartment_id_in_subtree": { - "type": "boolean", - "description": "A flag to search all resources within a given compartment and all sub-compartments." - }, - "database_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database OCIDs of the associated DBaaS entity." - }, - "database_type": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "ADW-S", - "ATP-S", - "ADW-D", - "ATP-D", - "EXTERNAL-PDB", - "EXTERNAL-NONCDB", - "COMANAGED-VM-CDB", - "COMANAGED-VM-PDB", - "COMANAGED-VM-NONCDB", - "COMANAGED-BM-CDB", - "COMANAGED-BM-PDB", - "COMANAGED-BM-NONCDB", - "COMANAGED-EXACS-CDB", - "COMANAGED-EXACS-PDB", - "COMANAGED-EXACS-NONCDB", - "COMANAGED-EXACC-CDB", - "COMANAGED-EXACC-PDB", - "COMANAGED-EXACC-NONCDB", - "MDS-MYSQL", - "EXTERNAL-MYSQL", - "ATP-EXACC", - "ADW-EXACC", - "EXTERNAL-ADW", - "EXTERNAL-ATP", - "LH-D", - "APEX-D", - "AJD-D", - "AVD-D", - "LH-S", - "APEX-S", - "AJD-S", - "AVD-S", - "LH-EXACC", - "APEX-EXACC", - "AJD-EXACC", - "AVD-EXACC" - ] - }, - "description": "Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: \"ADW-S\", \"ATP-S\", \"ADW-D\", \"ATP-D\", \"EXTERNAL-PDB\", \"EXTERNAL-NONCDB\", \"COMANAGED-VM-CDB\", \"COMANAGED-VM-PDB\", \"COMANAGED-VM-NONCDB\", \"COMANAGED-BM-CDB\", \"COMANAGED-BM-PDB\", \"COMANAGED-BM-NONCDB\", \"COMANAGED-EXACS-CDB\", \"COMANAGED-EXACS-PDB\", \"COMANAGED-EXACS-NONCDB\", \"COMANAGED-EXACC-CDB\", \"COMANAGED-EXACC-PDB\", \"COMANAGED-EXACC-NONCDB\", \"MDS-MYSQL\", \"EXTERNAL-MYSQL\", \"ATP-EXACC\", \"ADW-EXACC\", \"EXTERNAL-ADW\", \"EXTERNAL-ATP\", \"LH-D\", \"APEX-D\", \"AJD-D\", \"AVD-D\", \"LH-S\", \"APEX-S\", \"AJD-S\", \"AVD-S\", \"LH-EXACC\", \"APEX-EXACC\", \"AJD-EXACC\", \"AVD-EXACC\"" - }, - "exadata_insight_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of exadata insight resource OCIDs." - }, - "forecast_days": { - "type": "integer", - "description": "Number of days used for utilization forecast analysis." - }, - "high_utilization_threshold": { - "type": "integer", - "description": "Percent value in which a resource metric is considered highly utilized." - }, - "host_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more hostname." - }, - "id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database insight resource OCIDs." - }, - "insight_by": { - "type": "string", - "description": "Return data of a specific insight Possible values are High Utilization, Low Utilization, Any,High Utilization Forecast, Low Utilization Forecast" - }, - "is_database_instance_level_metrics": { - "type": "boolean", - "description": "Flag to indicate if database instance level metrics should be returned. The flag is ignored when a host name filter is not applied. When a hostname filter is applied this flag will determine whether to return metrics for the instances located on the specified host or for the whole database which contains an instance on this host." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "low_utilization_threshold": { - "type": "integer", - "description": "Percent value in which a resource metric is considered low utilized." - }, - "percentile": { - "type": "integer", - "description": "Percentile values of daily usage to be used for computing the aggregate resource usage." - }, - "resource_metric": { - "type": "string", - "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY and IO." - }, - "sort_by": { - "type": "string", - "enum": [ - "utilizationPercent", - "usage", - "usageChangePercent", - "databaseName", - "databaseType" - ], - "description": "The order in which resource statistics records are listed Allowed values are: \"utilizationPercent\", \"usage\", \"usageChangePercent\", \"databaseName\", \"databaseType\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." - }, - "vmcluster_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of Exadata Insight VM cluster name." - }, - "defined_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "defined_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id", - "resource_metric" - ] - }, - "mutable": false - }, - { - "name": "summarize_database_insight_resource_usage", - "description": "Shows overall consumption for a selected resourceMetric (for example CPU or STORAGE), including current usage, capacity, and usage change percent.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_database_insight_resource_usage", - "skills": [ - "database-capacity-usage-and-forecasting" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "analysis_time_interval": { - "type": "string", - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." - }, - "cdb_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more cdb name." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "compartment_id_in_subtree": { - "type": "boolean", - "description": "A flag to search all resources within a given compartment and all sub-compartments." - }, - "database_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database OCIDs of the associated DBaaS entity." - }, - "database_type": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "ADW-S", - "ATP-S", - "ADW-D", - "ATP-D", - "EXTERNAL-PDB", - "EXTERNAL-NONCDB", - "COMANAGED-VM-CDB", - "COMANAGED-VM-PDB", - "COMANAGED-VM-NONCDB", - "COMANAGED-BM-CDB", - "COMANAGED-BM-PDB", - "COMANAGED-BM-NONCDB", - "COMANAGED-EXACS-CDB", - "COMANAGED-EXACS-PDB", - "COMANAGED-EXACS-NONCDB", - "COMANAGED-EXACC-CDB", - "COMANAGED-EXACC-PDB", - "COMANAGED-EXACC-NONCDB", - "MDS-MYSQL", - "EXTERNAL-MYSQL", - "ATP-EXACC", - "ADW-EXACC", - "EXTERNAL-ADW", - "EXTERNAL-ATP", - "LH-D", - "APEX-D", - "AJD-D", - "AVD-D", - "LH-S", - "APEX-S", - "AJD-S", - "AVD-S", - "LH-EXACC", - "APEX-EXACC", - "AJD-EXACC", - "AVD-EXACC" - ] - }, - "description": "Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: \"ADW-S\", \"ATP-S\", \"ADW-D\", \"ATP-D\", \"EXTERNAL-PDB\", \"EXTERNAL-NONCDB\", \"COMANAGED-VM-CDB\", \"COMANAGED-VM-PDB\", \"COMANAGED-VM-NONCDB\", \"COMANAGED-BM-CDB\", \"COMANAGED-BM-PDB\", \"COMANAGED-BM-NONCDB\", \"COMANAGED-EXACS-CDB\", \"COMANAGED-EXACS-PDB\", \"COMANAGED-EXACS-NONCDB\", \"COMANAGED-EXACC-CDB\", \"COMANAGED-EXACC-PDB\", \"COMANAGED-EXACC-NONCDB\", \"MDS-MYSQL\", \"EXTERNAL-MYSQL\", \"ATP-EXACC\", \"ADW-EXACC\", \"EXTERNAL-ADW\", \"EXTERNAL-ATP\", \"LH-D\", \"APEX-D\", \"AJD-D\", \"AVD-D\", \"LH-S\", \"APEX-S\", \"AJD-S\", \"AVD-S\", \"LH-EXACC\", \"APEX-EXACC\", \"AJD-EXACC\", \"AVD-EXACC\"" - }, - "exadata_insight_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of exadata insight resource OCIDs." - }, - "host_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more hostname." - }, - "id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database insight resource OCIDs." - }, - "is_database_instance_level_metrics": { - "type": "boolean", - "description": "Flag to indicate if database instance level metrics should be returned. The flag is ignored when a host name filter is not applied. When a hostname filter is applied this flag will determine whether to return metrics for the instances located on the specified host or for the whole database which contains an instance on this host." - }, - "percentile": { - "type": "integer", - "description": "Percentile values of daily usage to be used for computing the aggregate resource usage." - }, - "resource_metric": { - "type": "string", - "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY and IO." - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." - }, - "vmcluster_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of Exadata Insight VM cluster name." - }, - "defined_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "defined_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id", - "resource_metric" - ] - }, - "mutable": false - }, - { - "name": "summarize_database_insight_resource_usage_trend", - "description": "Shows usage and capacity trend lines over time for a selected resourceMetric (for example CPU or STORAGE) to spot growth or spikes.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_database_insight_resource_usage_trend", - "skills": [ - "database-capacity-usage-and-forecasting" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "analysis_time_interval": { - "type": "string", - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." - }, - "cdb_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more cdb name." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "compartment_id_in_subtree": { - "type": "boolean", - "description": "A flag to search all resources within a given compartment and all sub-compartments." - }, - "database_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database OCIDs of the associated DBaaS entity." - }, - "database_type": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "ADW-S", - "ATP-S", - "ADW-D", - "ATP-D", - "EXTERNAL-PDB", - "EXTERNAL-NONCDB", - "COMANAGED-VM-CDB", - "COMANAGED-VM-PDB", - "COMANAGED-VM-NONCDB", - "COMANAGED-BM-CDB", - "COMANAGED-BM-PDB", - "COMANAGED-BM-NONCDB", - "COMANAGED-EXACS-CDB", - "COMANAGED-EXACS-PDB", - "COMANAGED-EXACS-NONCDB", - "COMANAGED-EXACC-CDB", - "COMANAGED-EXACC-PDB", - "COMANAGED-EXACC-NONCDB", - "MDS-MYSQL", - "EXTERNAL-MYSQL", - "ATP-EXACC", - "ADW-EXACC", - "EXTERNAL-ADW", - "EXTERNAL-ATP", - "LH-D", - "APEX-D", - "AJD-D", - "AVD-D", - "LH-S", - "APEX-S", - "AJD-S", - "AVD-S", - "LH-EXACC", - "APEX-EXACC", - "AJD-EXACC", - "AVD-EXACC" - ] - }, - "description": "Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: \"ADW-S\", \"ATP-S\", \"ADW-D\", \"ATP-D\", \"EXTERNAL-PDB\", \"EXTERNAL-NONCDB\", \"COMANAGED-VM-CDB\", \"COMANAGED-VM-PDB\", \"COMANAGED-VM-NONCDB\", \"COMANAGED-BM-CDB\", \"COMANAGED-BM-PDB\", \"COMANAGED-BM-NONCDB\", \"COMANAGED-EXACS-CDB\", \"COMANAGED-EXACS-PDB\", \"COMANAGED-EXACS-NONCDB\", \"COMANAGED-EXACC-CDB\", \"COMANAGED-EXACC-PDB\", \"COMANAGED-EXACC-NONCDB\", \"MDS-MYSQL\", \"EXTERNAL-MYSQL\", \"ATP-EXACC\", \"ADW-EXACC\", \"EXTERNAL-ADW\", \"EXTERNAL-ATP\", \"LH-D\", \"APEX-D\", \"AJD-D\", \"AVD-D\", \"LH-S\", \"APEX-S\", \"AJD-S\", \"AVD-S\", \"LH-EXACC\", \"APEX-EXACC\", \"AJD-EXACC\", \"AVD-EXACC\"" - }, - "exadata_insight_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of exadata insight resource OCIDs." - }, - "host_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more hostname." - }, - "id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database insight resource OCIDs." - }, - "is_database_instance_level_metrics": { - "type": "boolean", - "description": "Flag to indicate if database instance level metrics should be returned. The flag is ignored when a host name filter is not applied. When a hostname filter is applied this flag will determine whether to return metrics for the instances located on the specified host or for the whole database which contains an instance on this host." - }, - "resource_metric": { - "type": "string", - "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY and IO." - }, - "sort_by": { - "type": "string", - "enum": [ - "endTimestamp", - "usage", - "capacity" - ], - "description": "Sorts using end timestamp, usage or capacity Allowed values are: \"endTimestamp\", \"usage\", \"capacity\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." - }, - "vmcluster_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of Exadata Insight VM cluster name." - }, - "defined_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "defined_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id", - "resource_metric" - ] - }, - "mutable": false - }, - { - "name": "summarize_database_insight_resource_utilization_insight", - "description": "Groups databases by current and projected utilization bands for a selected resourceMetric (for example CPU or STORAGE).", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_database_insight_resource_utilization_insight", - "skills": [ - "database-capacity-usage-and-forecasting" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "analysis_time_interval": { - "type": "string", - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." - }, - "cdb_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more cdb name." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "compartment_id_in_subtree": { - "type": "boolean", - "description": "A flag to search all resources within a given compartment and all sub-compartments." - }, - "database_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database OCIDs of the associated DBaaS entity." - }, - "database_type": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "ADW-S", - "ATP-S", - "ADW-D", - "ATP-D", - "EXTERNAL-PDB", - "EXTERNAL-NONCDB", - "COMANAGED-VM-CDB", - "COMANAGED-VM-PDB", - "COMANAGED-VM-NONCDB", - "COMANAGED-BM-CDB", - "COMANAGED-BM-PDB", - "COMANAGED-BM-NONCDB", - "COMANAGED-EXACS-CDB", - "COMANAGED-EXACS-PDB", - "COMANAGED-EXACS-NONCDB", - "COMANAGED-EXACC-CDB", - "COMANAGED-EXACC-PDB", - "COMANAGED-EXACC-NONCDB", - "MDS-MYSQL", - "EXTERNAL-MYSQL", - "ATP-EXACC", - "ADW-EXACC", - "EXTERNAL-ADW", - "EXTERNAL-ATP", - "LH-D", - "APEX-D", - "AJD-D", - "AVD-D", - "LH-S", - "APEX-S", - "AJD-S", - "AVD-S", - "LH-EXACC", - "APEX-EXACC", - "AJD-EXACC", - "AVD-EXACC" - ] - }, - "description": "Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB. Allowed values are: \"ADW-S\", \"ATP-S\", \"ADW-D\", \"ATP-D\", \"EXTERNAL-PDB\", \"EXTERNAL-NONCDB\", \"COMANAGED-VM-CDB\", \"COMANAGED-VM-PDB\", \"COMANAGED-VM-NONCDB\", \"COMANAGED-BM-CDB\", \"COMANAGED-BM-PDB\", \"COMANAGED-BM-NONCDB\", \"COMANAGED-EXACS-CDB\", \"COMANAGED-EXACS-PDB\", \"COMANAGED-EXACS-NONCDB\", \"COMANAGED-EXACC-CDB\", \"COMANAGED-EXACC-PDB\", \"COMANAGED-EXACC-NONCDB\", \"MDS-MYSQL\", \"EXTERNAL-MYSQL\", \"ATP-EXACC\", \"ADW-EXACC\", \"EXTERNAL-ADW\", \"EXTERNAL-ATP\", \"LH-D\", \"APEX-D\", \"AJD-D\", \"AVD-D\", \"LH-S\", \"APEX-S\", \"AJD-S\", \"AVD-S\", \"LH-EXACC\", \"APEX-EXACC\", \"AJD-EXACC\", \"AVD-EXACC\"" - }, - "exadata_insight_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of exadata insight resource OCIDs." - }, - "forecast_days": { - "type": "integer", - "description": "Number of days used for utilization forecast analysis." - }, - "high_utilization_threshold": { - "type": "integer", - "description": "Percent value in which a resource metric is considered highly utilized." - }, - "host_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more hostname." - }, - "id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database insight resource OCIDs." - }, - "is_database_instance_level_metrics": { - "type": "boolean", - "description": "Flag to indicate if database instance level metrics should be returned. The flag is ignored when a host name filter is not applied. When a hostname filter is applied this flag will determine whether to return metrics for the instances located on the specified host or for the whole database which contains an instance on this host." - }, - "low_utilization_threshold": { - "type": "integer", - "description": "Percent value in which a resource metric is considered low utilized." - }, - "resource_metric": { - "type": "string", - "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY and IO." - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." - }, - "vmcluster_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of Exadata Insight VM cluster name." - }, - "defined_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "defined_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id", - "resource_metric" - ] - }, - "mutable": false - }, - { - "name": "summarize_database_insight_tablespace_usage_trend", - "description": "Shows which top tablespaces are growing over time, including used vs allocated space per interval (items.usageData) and the analysis window.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_database_insight_tablespace_usage_trend", - "skills": [ - "database-capacity-usage-and-forecasting" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "analysis_time_interval": { - "type": "string", - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "database_id": { - "type": "string", - "description": "Optional OCID of the associated DBaaS entity." - }, - "id": { - "type": "string", - "description": "OCID of the database insight resource." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id" - ] - }, - "mutable": false - }, - { - "name": "summarize_exadata_insight_resource_capacity_trend", - "description": "Returns per-system Exadata capacity trends, including per-system items, selected metric/type, and usage units.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_exadata_insight_resource_capacity_trend", - "skills": [ - "exadatainsights" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "analysis_time_interval": { - "type": "string", - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." - }, - "cdb_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more cdb name." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "database_insight_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database insight resource OCIDs." - }, - "exadata_insight_id": { - "type": "string", - "description": "OCID of exadata insight resource." - }, - "exadata_type": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC." - }, - "host_insight_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of host insight resource OCIDs." - }, - "host_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by hostname." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "resource_metric": { - "type": "string", - "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT" - }, - "resource_type": { - "type": "string", - "description": "Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE" - }, - "sort_by": { - "type": "string", - "enum": [ - "id", - "name" - ], - "description": "The order in which resource capacity trend records are listed Allowed values are: \"id\", \"name\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" - }, - "storage_server_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional storage server name on an exadata system." - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "resource_type", - "resource_metric", - "exadata_insight_id" - ] - }, - "mutable": false - }, - { - "name": "summarize_exadata_insight_resource_capacity_trend_aggregated", - "description": "Returns fleet-level Exadata capacity trends, including capacityData, metric/type context, and interval duration.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_exadata_insight_resource_capacity_trend_aggregated", - "skills": [ - "exadatainsights" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "analysis_time_interval": { - "type": "string", - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." - }, - "cdb_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more cdb name." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "compartment_id_in_subtree": { - "type": "boolean", - "description": "A flag to search all resources within a given compartment and all sub-compartments." - }, - "exadata_insight_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of exadata insight resource OCIDs." - }, - "exadata_type": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC." - }, - "host_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by hostname." - }, - "resource_metric": { - "type": "string", - "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT" - }, - "resource_type": { - "type": "string", - "description": "Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE" - }, - "sort_by": { - "type": "string", - "enum": [ - "endTimestamp", - "capacity" - ], - "description": "Sorts using end timestamp or capacity. Allowed values are: \"endTimestamp\", \"capacity\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." - }, - "defined_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "defined_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "resource_type", - "resource_metric" - ] - }, - "mutable": false - }, - { - "name": "summarize_exadata_insight_resource_forecast_trend", - "description": "Returns per-system Exadata forecast trends, including items, exadataResourceMetric, and exadataResourceType.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_exadata_insight_resource_forecast_trend", - "skills": [ - "exadatainsights" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "analysis_time_interval": { - "type": "string", - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." - }, - "cdb_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more cdb name." - }, - "confidence": { - "type": "integer", - "description": "This parameter is used to change data's confidence level, this data is ingested by the forecast algorithm. Confidence is the probability of an interval to contain the expected population parameter. Manipulation of this value will lead to different results. If not set, default confidence value is 95%." - }, - "database_insight_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database insight resource OCIDs." - }, - "exadata_insight_id": { - "type": "string", - "description": "OCID of exadata insight resource." - }, - "exadata_type": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC." - }, - "forecast_days": { - "type": "integer", - "description": "Number of days used for utilization forecast analysis." - }, - "forecast_model": { - "type": "string", - "enum": [ - "LINEAR", - "ML_AUTO", - "ML_NO_AUTO" - ], - "description": "Choose algorithm model for the forecasting. Possible values: - LINEAR: Uses linear regression algorithm for forecasting. - ML_AUTO: Automatically detects best algorithm to use for forecasting. - ML_NO_AUTO: Automatically detects seasonality of the data for forecasting using linear or seasonal algorithm. Allowed values are: \"LINEAR\", \"ML_AUTO\", \"ML_NO_AUTO\"" - }, - "forecast_start_day": { - "type": "integer", - "description": "Number of days used for utilization forecast analysis." - }, - "host_insight_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of host insight resource OCIDs." - }, - "host_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by hostname." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "resource_metric": { - "type": "string", - "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT" - }, - "resource_type": { - "type": "string", - "description": "Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE" - }, - "sort_by": { - "type": "string", - "enum": [ - "id", - "name", - "daysToReachCapacity" - ], - "description": "The order in which resource Forecast trend records are listed Allowed values are: \"id\", \"name\", \"daysToReachCapacity\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" - }, - "statistic": { - "type": "string", - "enum": [ - "AVG", - "MAX" - ], - "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"" - }, - "storage_server_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional storage server name on an exadata system." - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "resource_type", - "resource_metric", - "exadata_insight_id" - ] - }, - "mutable": false - }, - { - "name": "summarize_exadata_insight_resource_forecast_trend_aggregated", - "description": "Returns aggregated forecast trends across Exadata systems, including historicalData, projectedData, and daysToReachCapacity.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_exadata_insight_resource_forecast_trend_aggregated", - "skills": [ - "exadatainsights" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "analysis_time_interval": { - "type": "string", - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." - }, - "cdb_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more cdb name." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "compartment_id_in_subtree": { - "type": "boolean", - "description": "A flag to search all resources within a given compartment and all sub-compartments." - }, - "confidence": { - "type": "integer", - "description": "This parameter is used to change data's confidence level, this data is ingested by the forecast algorithm. Confidence is the probability of an interval to contain the expected population parameter. Manipulation of this value will lead to different results. If not set, default confidence value is 95%." - }, - "exadata_insight_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of exadata insight resource OCIDs." - }, - "exadata_type": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC." - }, - "forecast_days": { - "type": "integer", - "description": "Number of days used for utilization forecast analysis." - }, - "forecast_model": { - "type": "string", - "enum": [ - "LINEAR", - "ML_AUTO", - "ML_NO_AUTO" - ], - "description": "Choose algorithm model for the forecasting. Possible values: - LINEAR: Uses linear regression algorithm for forecasting. - ML_AUTO: Automatically detects best algorithm to use for forecasting. - ML_NO_AUTO: Automatically detects seasonality of the data for forecasting using linear or seasonal algorithm. Allowed values are: \"LINEAR\", \"ML_AUTO\", \"ML_NO_AUTO\"" - }, - "forecast_start_day": { - "type": "integer", - "description": "Number of days used for utilization forecast analysis." - }, - "host_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by hostname." - }, - "resource_metric": { - "type": "string", - "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT" - }, - "resource_type": { - "type": "string", - "description": "Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE" - }, - "statistic": { - "type": "string", - "enum": [ - "AVG", - "MAX" - ], - "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"" - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." - }, - "defined_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "defined_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "resource_type", - "resource_metric" - ] - }, - "mutable": false - }, - { - "name": "summarize_exadata_insight_resource_statistics", - "description": "Returns member-level Exadata resource statistics, including resource items, selected metric, and usage unit context.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_exadata_insight_resource_statistics", - "skills": [ - "exadatainsights" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "analysis_time_interval": { - "type": "string", - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." - }, - "cdb_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more cdb name." - }, - "exadata_insight_id": { - "type": "string", - "description": "OCID of exadata insight resource." - }, - "exadata_type": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC." - }, - "host_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by hostname." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "percentile": { - "type": "integer", - "description": "Percentile values of daily usage to be used for computing the aggregate resource usage." - }, - "resource_metric": { - "type": "string", - "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT" - }, - "resource_type": { - "type": "string", - "description": "Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE" - }, - "sort_by": { - "type": "string", - "enum": [ - "utilizationPercent", - "usage", - "usageChangePercent" - ], - "description": "The order in which resource statistics records are listed Allowed values are: \"utilizationPercent\", \"usage\", \"usageChangePercent\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "exadata_insight_id", - "resource_type", - "resource_metric" - ] - }, - "mutable": false - }, - { - "name": "summarize_exadata_insight_resource_usage", - "description": "Returns system-level Exadata resource usage, including per-system items, selected metric/type, and usage units.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_exadata_insight_resource_usage", - "skills": [ - "exadatainsights" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "analysis_time_interval": { - "type": "string", - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." - }, - "cdb_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more cdb name." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "compartment_id_in_subtree": { - "type": "boolean", - "description": "A flag to search all resources within a given compartment and all sub-compartments." - }, - "exadata_insight_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of exadata insight resource OCIDs." - }, - "exadata_type": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC." - }, - "host_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by hostname." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "percentile": { - "type": "integer", - "description": "Percentile values of daily usage to be used for computing the aggregate resource usage." - }, - "resource_metric": { - "type": "string", - "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT" - }, - "resource_type": { - "type": "string", - "description": "Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE" - }, - "sort_by": { - "type": "string", - "enum": [ - "utilizationPercent", - "usage", - "capacity", - "usageChangePercent" - ], - "description": "The order in which resource usage summary records are listed Allowed values are: \"utilizationPercent\", \"usage\", \"capacity\", \"usageChangePercent\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." - }, - "defined_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "defined_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id", - "resource_type", - "resource_metric" - ] - }, - "mutable": false - }, - { - "name": "summarize_exadata_insight_resource_usage_aggregated", - "description": "Returns fleet-level aggregated Exadata usage, including usage, capacity, and usageChangePercent.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_exadata_insight_resource_usage_aggregated", - "skills": [ - "exadatainsights" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "analysis_time_interval": { - "type": "string", - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." - }, - "cdb_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more cdb name." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "compartment_id_in_subtree": { - "type": "boolean", - "description": "A flag to search all resources within a given compartment and all sub-compartments." - }, - "exadata_insight_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of exadata insight resource OCIDs." - }, - "exadata_type": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC." - }, - "host_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by hostname." - }, - "percentile": { - "type": "integer", - "description": "Percentile values of daily usage to be used for computing the aggregate resource usage." - }, - "resource_metric": { - "type": "string", - "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT" - }, - "resource_type": { - "type": "string", - "description": "Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE" - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." - }, - "defined_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "defined_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id", - "resource_type", - "resource_metric" - ] - }, - "mutable": false - }, - { - "name": "summarize_exadata_insight_resource_utilization_insight", - "description": "Returns Exadata utilization insights with thresholds, including utilization, high/low threshold values, and metric/type context.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_exadata_insight_resource_utilization_insight", - "skills": [ - "exadatainsights" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "analysis_time_interval": { - "type": "string", - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." - }, - "cdb_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more cdb name." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "compartment_id_in_subtree": { - "type": "boolean", - "description": "A flag to search all resources within a given compartment and all sub-compartments." - }, - "exadata_insight_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of exadata insight resource OCIDs." - }, - "exadata_type": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC." - }, - "forecast_days": { - "type": "integer", - "description": "Number of days used for utilization forecast analysis." - }, - "forecast_start_day": { - "type": "integer", - "description": "Number of days used for utilization forecast analysis." - }, - "high_utilization_threshold": { - "type": "integer", - "description": "Percent value in which a resource metric is considered highly utilized." - }, - "host_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by hostname." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "low_utilization_threshold": { - "type": "integer", - "description": "Percent value in which a resource metric is considered low utilized." - }, - "resource_metric": { - "type": "string", - "description": "Filter by resource metric. Supported values are CPU, STORAGE, MEMORY, IO, IOPS, THROUGHPUT" - }, - "resource_type": { - "type": "string", - "description": "Filter by resource. Supported values are HOST, STORAGE_SERVER and DATABASE" - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." - }, - "defined_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "defined_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id", - "resource_type", - "resource_metric" - ] - }, - "mutable": false - }, - { - "name": "summarize_exadata_members", - "description": "Returns Exadata member inventory, including rack identity (exadataName, exadataRackType) and member items.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_exadata_members", - "skills": [ - "exadatainsights" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "exadata_insight_id": { - "type": "string", - "description": "OCID of exadata insight resource." - }, - "exadata_type": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more Exadata types. Possible value are DBMACHINE, EXACS, and EXACC." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "sort_by": { - "type": "string", - "enum": [ - "name", - "displayName", - "entityType" - ], - "description": "The order in which exadata member records are listed Allowed values are: \"name\", \"displayName\", \"entityType\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "exadata_insight_id" - ] - }, - "mutable": false - }, - { - "name": "summarize_external_asm_metrics", - "description": "Returns time-series external ASM metrics for capacity and I/O health checks in a selected window.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "summarize_external_asm_metrics", - "skills": [ - "external-asm-core" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "end_time": { - "type": "string", - "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." - }, - "external_asm_id": { - "type": "string", - "description": "The OCID of the external ASM." - }, - "filter_by_metric_names": { - "type": "string", - "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "start_time": { - "type": "string", - "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "external_asm_id", - "start_time", - "end_time" - ] - }, - "mutable": false - }, - { - "name": "summarize_external_cluster_metrics", - "description": "Returns external cluster metrics for health checks in a selected time window.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "summarize_external_cluster_metrics", - "skills": [ - "external-db-runtime-topology" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "end_time": { - "type": "string", - "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." - }, - "external_cluster_id": { - "type": "string", - "description": "The OCID of the external cluster." - }, - "filter_by_metric_names": { - "type": "string", - "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "start_time": { - "type": "string", - "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "external_cluster_id", - "start_time", - "end_time" - ] - }, - "mutable": false - }, - { - "name": "summarize_external_db_node_metrics", - "description": "Returns external DB node metrics for CPU, memory, network, and storage checks in a selected window.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "summarize_external_db_node_metrics", - "skills": [ - "external-db-runtime-topology" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "end_time": { - "type": "string", - "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." - }, - "external_db_node_id": { - "type": "string", - "description": "The OCID of the external database node." - }, - "filter_by_metric_names": { - "type": "string", - "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "start_time": { - "type": "string", - "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "external_db_node_id", - "start_time", - "end_time" - ] - }, - "mutable": false - }, - { - "name": "summarize_external_db_system_availability_metrics", - "description": "Returns availability metrics for external DB system components over a selected time window.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "summarize_external_db_system_availability_metrics", - "skills": [ - "external-inventory-discovery-connectivity" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "end_time": { - "type": "string", - "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." - }, - "external_db_system_id": { - "type": "string", - "description": "The OCID of the external DB system." - }, - "filter_by_component_types": { - "type": "string", - "description": "The filter used to retrieve metrics for a specific set of component types by passing the desired component types separated by a comma. Note that, by default, the service returns metrics for all DB system component types." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "start_time": { - "type": "string", - "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "external_db_system_id", - "start_time", - "end_time" - ] - }, - "mutable": false - }, - { - "name": "summarize_external_listener_metrics", - "description": "Returns listener metrics for connection-load and availability checks in a selected window.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "summarize_external_listener_metrics", - "skills": [ - "external-db-runtime-topology" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "end_time": { - "type": "string", - "description": "The end of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." - }, - "external_listener_id": { - "type": "string", - "description": "The OCID of the external listener." - }, - "filter_by_metric_names": { - "type": "string", - "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "start_time": { - "type": "string", - "description": "The beginning of the time range set to retrieve metric data for the DB system\nand its members. Expressed in UTC in ISO-8601 format, which is `yyyy-MM-dd'T'hh:mm:ss.sss'Z'`." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "external_listener_id", - "start_time", - "end_time" - ] - }, - "mutable": false - }, - { - "name": "summarize_host_insight_disk_statistics", - "description": "Returns disk-level usage statistics for a host, including per-disk items, interval duration, and usage units.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_host_insight_disk_statistics", - "skills": [ - "hostinsights" - ], - "inputSchema": { - "type": "object", - "properties": { - "analysis_time_interval": { - "type": "string", - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "host_id": { - "type": "string", - "description": "Optional OCID of the host (Compute Id)." - }, - "id": { - "type": "string", - "description": "Required OCID of the host insight resource." - }, - "statistic": { - "type": "string", - "enum": [ - "AVG", - "MAX" - ], - "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"" - }, - "status": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "DISABLED", - "ENABLED", - "TERMINATED" - ] - }, - "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id", - "id" - ] - }, - "mutable": false - }, - { - "name": "summarize_host_insight_host_recommendation", - "description": "Returns host recommendations for a resource type, including recommendation details, interval context, and usage units.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_host_insight_host_recommendation", - "skills": [ - "hostinsights" - ], - "inputSchema": { - "type": "object", - "properties": { - "analysis_time_interval": { - "type": "string", - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "host_id": { - "type": "string", - "description": "Optional OCID of the host (Compute Id)." - }, - "id": { - "type": "string", - "description": "Required OCID of the host insight resource." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "resource_metric": { - "type": "string", - "description": "Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK." - }, - "statistic": { - "type": "string", - "enum": [ - "AVG", - "MAX" - ], - "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"" - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id", - "id", - "resource_metric" - ] - }, - "mutable": false - }, - { - "name": "summarize_host_insight_io_usage_trend", - "description": "Returns host I/O usage time-series data, including items, interval duration, and start/end timestamps.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_host_insight_io_usage_trend", - "skills": [ - "hostinsights" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "analysis_time_interval": { - "type": "string", - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "host_id": { - "type": "string", - "description": "Optional OCID of the host (Compute Id)." - }, - "id": { - "type": "string", - "description": "Required OCID of the host insight resource." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "statistic": { - "type": "string", - "enum": [ - "AVG", - "MAX" - ], - "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"" - }, - "status": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "DISABLED", - "ENABLED", - "TERMINATED" - ] - }, - "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id", - "id" - ] - }, - "mutable": false - }, - { - "name": "summarize_host_insight_network_usage_trend", - "description": "Returns network usage trends for a host, including sampled items, interval duration, and usage units.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_host_insight_network_usage_trend", - "skills": [ - "hostinsights" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "analysis_time_interval": { - "type": "string", - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "host_id": { - "type": "string", - "description": "Optional OCID of the host (Compute Id)." - }, - "id": { - "type": "string", - "description": "Required OCID of the host insight resource." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "statistic": { - "type": "string", - "enum": [ - "AVG", - "MAX" - ], - "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"" - }, - "status": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "DISABLED", - "ENABLED", - "TERMINATED" - ] - }, - "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id", - "id" - ] - }, - "mutable": false - }, - { - "name": "summarize_host_insight_resource_capacity_trend", - "description": "Returns host resource capacity trend data, including capacityData, resourceMetric, and interval boundaries.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_host_insight_resource_capacity_trend", - "skills": [ - "hostinsights" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "analysis_time_interval": { - "type": "string", - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "compartment_id_in_subtree": { - "type": "boolean", - "description": "A flag to search all resources within a given compartment and all sub-compartments." - }, - "exadata_insight_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of exadata insight resource OCIDs." - }, - "high_utilization_threshold": { - "type": "integer", - "description": "Percent value in which a resource metric is considered highly utilized." - }, - "host_id": { - "type": "string", - "description": "Optional OCID of the host (Compute Id)." - }, - "host_type": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST" - }, - "id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of host insight resource OCIDs." - }, - "low_utilization_threshold": { - "type": "integer", - "description": "Percent value in which a resource metric is considered low utilized." - }, - "platform_type": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "LINUX", - "SOLARIS", - "SUNOS", - "ZLINUX", - "WINDOWS", - "AIX", - "HP_UX" - ] - }, - "description": "Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: \"LINUX\", \"SOLARIS\", \"SUNOS\", \"ZLINUX\", \"WINDOWS\", \"AIX\", \"HP_UX\"" - }, - "resource_metric": { - "type": "string", - "description": "Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK." - }, - "sort_by": { - "type": "string", - "enum": [ - "endTimestamp", - "capacity" - ], - "description": "Sorts using end timestamp or capacity Allowed values are: \"endTimestamp\", \"capacity\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" - }, - "status": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "DISABLED", - "ENABLED", - "TERMINATED" - ] - }, - "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." - }, - "utilization_level": { - "type": "string", - "enum": [ - "HIGH_UTILIZATION", - "LOW_UTILIZATION", - "MEDIUM_HIGH_UTILIZATION", - "MEDIUM_LOW_UTILIZATION" - ], - "description": "Filter by utilization level by the following buckets: - HIGH_UTILIZATION: DBs with utilization greater or equal than 75. - LOW_UTILIZATION: DBs with utilization lower than 25. - MEDIUM_HIGH_UTILIZATION: DBs with utilization greater or equal than 50 but lower than 75. - MEDIUM_LOW_UTILIZATION: DBs with utilization greater or equal than 25 but lower than 50. Allowed values are: \"HIGH_UTILIZATION\", \"LOW_UTILIZATION\", \"MEDIUM_HIGH_UTILIZATION\", \"MEDIUM_LOW_UTILIZATION\"" - }, - "vmcluster_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of Exadata Insight VM cluster name." - }, - "defined_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "defined_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id", - "resource_metric" - ] - }, - "mutable": false - }, - { - "name": "summarize_host_insight_resource_forecast_trend", - "description": "Returns historical and projected usage for a host resource, including historicalData, projectedData, and selected forecast algorithm.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_host_insight_resource_forecast_trend", - "skills": [ - "hostinsights" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "analysis_time_interval": { - "type": "string", - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "compartment_id_in_subtree": { - "type": "boolean", - "description": "A flag to search all resources within a given compartment and all sub-compartments." - }, - "confidence": { - "type": "integer", - "description": "This parameter is used to change data's confidence level, this data is ingested by the forecast algorithm. Confidence is the probability of an interval to contain the expected population parameter. Manipulation of this value will lead to different results. If not set, default confidence value is 95%." - }, - "exadata_insight_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of exadata insight resource OCIDs." - }, - "forecast_days": { - "type": "integer", - "description": "Number of days used for utilization forecast analysis." - }, - "forecast_model": { - "type": "string", - "enum": [ - "LINEAR", - "ML_AUTO", - "ML_NO_AUTO" - ], - "description": "Choose algorithm model for the forecasting. Possible values: - LINEAR: Uses linear regression algorithm for forecasting. - ML_AUTO: Automatically detects best algorithm to use for forecasting. - ML_NO_AUTO: Automatically detects seasonality of the data for forecasting using linear or seasonal algorithm. Allowed values are: \"LINEAR\", \"ML_AUTO\", \"ML_NO_AUTO\"" - }, - "gpu_id": { - "type": "integer", - "description": "GPU identifier." - }, - "high_utilization_threshold": { - "type": "integer", - "description": "Percent value in which a resource metric is considered highly utilized." - }, - "host_id": { - "type": "string", - "description": "Optional OCID of the host (Compute Id)." - }, - "host_type": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST" - }, - "id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of host insight resource OCIDs." - }, - "interface_name": { - "type": "string", - "description": "Name of the network interface." - }, - "low_utilization_threshold": { - "type": "integer", - "description": "Percent value in which a resource metric is considered low utilized." - }, - "mount_point": { - "type": "string", - "description": "Mount points are specialized NTFS filesystem objects." - }, - "platform_type": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "LINUX", - "SOLARIS", - "SUNOS", - "ZLINUX", - "WINDOWS", - "AIX", - "HP_UX" - ] - }, - "description": "Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: \"LINUX\", \"SOLARIS\", \"SUNOS\", \"ZLINUX\", \"WINDOWS\", \"AIX\", \"HP_UX\"" - }, - "resource_metric": { - "type": "string", - "description": "Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK." - }, - "statistic": { - "type": "string", - "enum": [ - "AVG", - "MAX" - ], - "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"" - }, - "status": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "DISABLED", - "ENABLED", - "TERMINATED" - ] - }, - "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." - }, - "utilization_level": { - "type": "string", - "enum": [ - "HIGH_UTILIZATION", - "LOW_UTILIZATION", - "MEDIUM_HIGH_UTILIZATION", - "MEDIUM_LOW_UTILIZATION" - ], - "description": "Filter by utilization level by the following buckets: - HIGH_UTILIZATION: DBs with utilization greater or equal than 75. - LOW_UTILIZATION: DBs with utilization lower than 25. - MEDIUM_HIGH_UTILIZATION: DBs with utilization greater or equal than 50 but lower than 75. - MEDIUM_LOW_UTILIZATION: DBs with utilization greater or equal than 25 but lower than 50. Allowed values are: \"HIGH_UTILIZATION\", \"LOW_UTILIZATION\", \"MEDIUM_HIGH_UTILIZATION\", \"MEDIUM_LOW_UTILIZATION\"" - }, - "vmcluster_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of Exadata Insight VM cluster name." - }, - "defined_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "defined_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id", - "resource_metric" - ] - }, - "mutable": false - }, - { - "name": "summarize_host_insight_resource_statistics", - "description": "Returns host-by-host resource statistics, including per-host items, utilization thresholds, and usage units.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_host_insight_resource_statistics", - "skills": [ - "hostinsights" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "analysis_time_interval": { - "type": "string", - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "compartment_id_in_subtree": { - "type": "boolean", - "description": "A flag to search all resources within a given compartment and all sub-compartments." - }, - "exadata_insight_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of exadata insight resource OCIDs." - }, - "forecast_days": { - "type": "integer", - "description": "Number of days used for utilization forecast analysis." - }, - "high_utilization_threshold": { - "type": "integer", - "description": "Percent value in which a resource metric is considered highly utilized." - }, - "host_id": { - "type": "string", - "description": "Optional OCID of the host (Compute Id)." - }, - "host_type": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST" - }, - "id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of host insight resource OCIDs." - }, - "insight_by": { - "type": "string", - "description": "Return data of a specific insight Possible values are High Utilization, Low Utilization, Any,High Utilization Forecast, Low Utilization Forecast" - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "low_utilization_threshold": { - "type": "integer", - "description": "Percent value in which a resource metric is considered low utilized." - }, - "percentile": { - "type": "integer", - "description": "Percentile values of daily usage to be used for computing the aggregate resource usage." - }, - "platform_type": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "LINUX", - "SOLARIS", - "SUNOS", - "ZLINUX", - "WINDOWS", - "AIX", - "HP_UX" - ] - }, - "description": "Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: \"LINUX\", \"SOLARIS\", \"SUNOS\", \"ZLINUX\", \"WINDOWS\", \"AIX\", \"HP_UX\"" - }, - "resource_metric": { - "type": "string", - "description": "Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK." - }, - "sort_by": { - "type": "string", - "enum": [ - "utilizationPercent", - "usage", - "usageChangePercent", - "hostName", - "platformType" - ], - "description": "The order in which resource statistics records are listed. Allowed values are: \"utilizationPercent\", \"usage\", \"usageChangePercent\", \"hostName\", \"platformType\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" - }, - "status": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "DISABLED", - "ENABLED", - "TERMINATED" - ] - }, - "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." - }, - "vmcluster_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of Exadata Insight VM cluster name." - }, - "defined_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "defined_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id", - "resource_metric" - ] - }, - "mutable": false - }, - { - "name": "summarize_host_insight_resource_usage", - "description": "Returns aggregated host usage for a resource type, including usage, capacity, and usageChangePercent.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_host_insight_resource_usage", - "skills": [ - "hostinsights" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "analysis_time_interval": { - "type": "string", - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "compartment_id_in_subtree": { - "type": "boolean", - "description": "A flag to search all resources within a given compartment and all sub-compartments." - }, - "exadata_insight_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of exadata insight resource OCIDs." - }, - "host_id": { - "type": "string", - "description": "Optional OCID of the host (Compute Id)." - }, - "host_type": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST" - }, - "id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of host insight resource OCIDs." - }, - "percentile": { - "type": "integer", - "description": "Percentile values of daily usage to be used for computing the aggregate resource usage." - }, - "platform_type": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "LINUX", - "SOLARIS", - "SUNOS", - "ZLINUX", - "WINDOWS", - "AIX", - "HP_UX" - ] - }, - "description": "Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: \"LINUX\", \"SOLARIS\", \"SUNOS\", \"ZLINUX\", \"WINDOWS\", \"AIX\", \"HP_UX\"" - }, - "resource_metric": { - "type": "string", - "description": "Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK." - }, - "status": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "DISABLED", - "ENABLED", - "TERMINATED" - ] - }, - "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." - }, - "vmcluster_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of Exadata Insight VM cluster name." - }, - "defined_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "defined_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id", - "resource_metric" - ] - }, - "mutable": false - }, - { - "name": "summarize_host_insight_resource_usage_trend", - "description": "Returns host usage time series for a resource type, including usageData, resourceMetric, and interval boundaries.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_host_insight_resource_usage_trend", - "skills": [ - "hostinsights" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "analysis_time_interval": { - "type": "string", - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "compartment_id_in_subtree": { - "type": "boolean", - "description": "A flag to search all resources within a given compartment and all sub-compartments." - }, - "exadata_insight_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of exadata insight resource OCIDs." - }, - "host_id": { - "type": "string", - "description": "Optional OCID of the host (Compute Id)." - }, - "host_type": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST" - }, - "id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of host insight resource OCIDs." - }, - "platform_type": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "LINUX", - "SOLARIS", - "SUNOS", - "ZLINUX", - "WINDOWS", - "AIX", - "HP_UX" - ] - }, - "description": "Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: \"LINUX\", \"SOLARIS\", \"SUNOS\", \"ZLINUX\", \"WINDOWS\", \"AIX\", \"HP_UX\"" - }, - "resource_metric": { - "type": "string", - "description": "Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK." - }, - "sort_by": { - "type": "string", - "enum": [ - "endTimestamp", - "usage", - "capacity" - ], - "description": "Sorts using end timestamp, usage or capacity Allowed values are: \"endTimestamp\", \"usage\", \"capacity\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). Allowed values are: \"ASC\", \"DESC\"" - }, - "status": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "DISABLED", - "ENABLED", - "TERMINATED" - ] - }, - "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." - }, - "vmcluster_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of Exadata Insight VM cluster name." - }, - "defined_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "defined_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id", - "resource_metric" - ] - }, - "mutable": false - }, - { - "name": "summarize_host_insight_resource_utilization_insight", - "description": "Returns current and projected utilization insights, including currentUtilization, projectedUtilization, and threshold values.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_host_insight_resource_utilization_insight", - "skills": [ - "hostinsights" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "analysis_time_interval": { - "type": "string", - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "compartment_id_in_subtree": { - "type": "boolean", - "description": "A flag to search all resources within a given compartment and all sub-compartments." - }, - "exadata_insight_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of exadata insight resource OCIDs." - }, - "forecast_days": { - "type": "integer", - "description": "Number of days used for utilization forecast analysis." - }, - "high_utilization_threshold": { - "type": "integer", - "description": "Percent value in which a resource metric is considered highly utilized." - }, - "host_id": { - "type": "string", - "description": "Optional OCID of the host (Compute Id)." - }, - "host_type": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST" - }, - "id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of host insight resource OCIDs." - }, - "low_utilization_threshold": { - "type": "integer", - "description": "Percent value in which a resource metric is considered low utilized." - }, - "platform_type": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "LINUX", - "SOLARIS", - "SUNOS", - "ZLINUX", - "WINDOWS", - "AIX", - "HP_UX" - ] - }, - "description": "Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX, SOLARIS, WINDOWS]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX, WINDOWS, AIX, HP-UX]. Allowed values are: \"LINUX\", \"SOLARIS\", \"SUNOS\", \"ZLINUX\", \"WINDOWS\", \"AIX\", \"HP_UX\"" - }, - "resource_metric": { - "type": "string", - "description": "Filter by host resource metric. Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK." - }, - "status": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "DISABLED", - "ENABLED", - "TERMINATED" - ] - }, - "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." - }, - "vmcluster_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of Exadata Insight VM cluster name." - }, - "defined_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "defined_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_equals": { - "type": "array", - "items": { - "type": "string" - } - }, - "freeform_tag_exists": { - "type": "array", - "items": { - "type": "string" - } - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id", - "resource_metric" - ] - }, - "mutable": false - }, - { - "name": "summarize_host_insight_storage_usage_trend", - "description": "Returns storage usage trends for a host, including filesystem-level items, interval duration, and usage units.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_host_insight_storage_usage_trend", - "skills": [ - "hostinsights" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "analysis_time_interval": { - "type": "string", - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "host_id": { - "type": "string", - "description": "Optional OCID of the host (Compute Id)." - }, - "id": { - "type": "string", - "description": "Required OCID of the host insight resource." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "statistic": { - "type": "string", - "enum": [ - "AVG", - "MAX" - ], - "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"" - }, - "status": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "DISABLED", - "ENABLED", - "TERMINATED" - ] - }, - "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id", - "id" - ] - }, - "mutable": false - }, - { - "name": "summarize_host_insight_top_processes_usage", - "description": "Returns top process usage for a specific date, including process items and observation timestamp.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_host_insight_top_processes_usage", - "skills": [ - "hostinsights" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "analysis_time_interval": { - "type": "string", - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "host_id": { - "type": "string", - "description": "Optional OCID of the host (Compute Id)." - }, - "host_type": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST" - }, - "id": { - "type": "string", - "description": "Required OCID of the host insight resource." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "resource_metric": { - "type": "string", - "description": "Host top processes resource metric sort options. Supported values are CPU, MEMORY, VIIRTUAL_MEMORY." - }, - "statistic": { - "type": "string", - "enum": [ - "AVG", - "MAX" - ], - "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"" - }, - "status": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "DISABLED", - "ENABLED", - "TERMINATED" - ] - }, - "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "Timestamp at which to gather the top processes. This will be top processes over the hour or over the day pending the time range passed into the query." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id", - "id", - "resource_metric", - "timestamp" - ] - }, - "mutable": false - }, - { - "name": "summarize_host_insight_top_processes_usage_trend", - "description": "Returns top process usage trends, including process items and interval start/end timestamps.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_host_insight_top_processes_usage_trend", - "skills": [ - "hostinsights" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "analysis_time_interval": { - "type": "string", - "description": "Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months),. Maximum value allowed is 25 months prior to current time (P25M)." - }, - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "host_id": { - "type": "string", - "description": "Optional OCID of the host (Compute Id)." - }, - "host_type": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST, COMANAGED-VM-HOST, COMANAGED-BM-HOST, COMANAGED-EXACS-HOST, COMANAGED-EXACC-HOST" - }, - "id": { - "type": "string", - "description": "Required OCID of the host insight resource." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "process_hash": { - "type": "string", - "description": "Unique identifier for a process." - }, - "resource_metric": { - "type": "string", - "description": "Host top processes resource metric sort options. Supported values are CPU, MEMORY, VIIRTUAL_MEMORY." - }, - "statistic": { - "type": "string", - "enum": [ - "AVG", - "MAX" - ], - "description": "Choose the type of statistic metric data to be used for forecasting. Allowed values are: \"AVG\", \"MAX\"" - }, - "status": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "DISABLED", - "ENABLED", - "TERMINATED" - ] - }, - "description": "Resource Status Allowed values are: \"DISABLED\", \"ENABLED\", \"TERMINATED\"" - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd." - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id", - "id", - "resource_metric" - ] - }, - "mutable": false - }, - { - "name": "summarize_job_executions_statuses", - "description": "Returns aggregated counts of job executions by status for the requested scope and time range.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "summarize_job_executions_statuses", - "skills": [ - "job-orchestration-and-execution-tracking" - ], - "inputSchema": { - "type": "object", - "properties": { - "compartment_id": { - "type": "string", - "description": "The OCID of the compartment." - }, - "end_time": { - "type": "string", - "description": "The end time of the time range to retrieve the status summary of job executions\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." - }, - "id": { - "type": "string", - "description": "The identifier of the resource." - }, - "managed_database_group_id": { - "type": "string", - "description": "The OCID of the Managed Database Group." - }, - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "name": { - "type": "string", - "description": "A filter to return only resources that match the entire name." - }, - "sort_by": { - "type": "string", - "enum": [ - "TIMECREATED", - "NAME" - ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The option to sort information in ascending (\u2018ASC\u2019) or descending (\u2018DESC\u2019) order. Ascending order is the default order.\n\nAllowed values are: \"ASC\", \"DESC\"" - }, - "start_time": { - "type": "string", - "description": "The start time of the time range to retrieve the status summary of job executions\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id", - "start_time", - "end_time" - ] - }, - "mutable": false - }, - { - "name": "summarize_managed_database_availability_metrics", - "description": "Returns managed database availability summaries so admins can assess component uptime and health over time.", - "service": "dbm", - "client": "DbManagementClient", - "operation": "summarize_managed_database_availability_metrics", - "skills": [ - "database-health-and-core-metrics" - ], - "inputSchema": { - "type": "object", - "properties": { - "page": { - "type": "string", - "description": "The page token returned by the previous call." - }, - "end_time": { - "type": "string", - "description": "The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." - }, - "limit": { - "type": "integer", - "description": "For list pagination. Maximum number of results to return in one response page. Example: 50." - }, - "managed_database_id": { - "type": "string", - "description": "The OCID of the Managed Database." - }, - "start_time": { - "type": "string", - "description": "The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." - }, - "opc_request_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "managed_database_id", - "start_time", - "end_time" - ] - }, - "mutable": false - }, - { - "name": "summarize_operations_insights_warehouse_resource_usage", - "description": "Returns warehouse resource-usage details so admins can monitor consumption and plan warehouse capacity operations.", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_operations_insights_warehouse_resource_usage", - "skills": [ - "operations-insights-warehouse-admin" - ], - "inputSchema": { - "type": "object", - "properties": { - "opc_request_id": { - "type": "string" - }, - "operations_insights_warehouse_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "operations_insights_warehouse_id" - ] - }, - "mutable": false - }, - { - "name": "summarize_sql_insights", - "description": "Get performance Insights for SQLs across databases. DEPRECATED (announced May 2024; no longer functional as of May 31, 2025).", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_sql_insights", - "skills": [ - "database-performance-analysis" - ], - "inputSchema": { - "type": "object", - "properties": { - "compartment_id": { - "type": "string", - "description": "The [OCID](/iaas/Content/General/Concepts/identifiers.htm) of the compartment." - }, - "database_type": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "ADW-S", - "ATP-S", - "ADW-D", - "ATP-D", - "EXTERNAL-PDB", - "EXTERNAL-NONCDB", - "COMANAGED-VM-CDB", - "COMANAGED-VM-PDB", - "COMANAGED-VM-NONCDB", - "COMANAGED-BM-CDB", - "COMANAGED-BM-PDB", - "COMANAGED-BM-NONCDB", - "COMANAGED-EXACS-CDB", - "COMANAGED-EXACS-PDB", - "COMANAGED-EXACS-NONCDB", - "COMANAGED-EXACC-CDB", - "COMANAGED-EXACC-PDB", - "COMANAGED-EXACC-NONCDB", - "MDS-MYSQL", - "EXTERNAL-MYSQL", - "ATP-EXACC", - "ADW-EXACC", - "EXTERNAL-ADW", - "EXTERNAL-ATP" - ] - }, - "description": "Filter by one or more database type.\nPossible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB.\n" - }, - "database_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database [OCIDs](/iaas/Content/General/Concepts/identifiers.htm) of the associated DBaaS entity.\n" - }, - "id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database insight resource [OCIDs](/iaas/Content/General/Concepts/identifiers.htm).\n" - }, - "exadata_insight_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of exadata insight resource [OCIDs](/iaas/Content/General/Concepts/identifiers.htm).\n" - }, - "cdb_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more cdb name.\n" - }, - "host_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more hostname.\n" - }, - "database_time_pct_greater_than": { - "type": "number", - "minimum": 1, - "maximum": 100, - "description": "Filter sqls by percentage of db time.\n" - }, - "analysis_time_interval": { - "type": "string", - "description": "Specify time period in ISO 8601 format with respect to current time.\nDefault is last 30 days represented by P30D.\nIf timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored.\nExamples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months), . Maximum value allowed is 25 months prior to current time (P25M).\n" - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\nThe minimum allowed value is 2 years prior to the current day.\ntimeIntervalStart and timeIntervalEnd parameters are used together.\nIf analysisTimeInterval is specified, this parameter is ignored.\n" - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\ntimeIntervalStart and timeIntervalEnd are used together.\nIf timeIntervalEnd is not specified, current time is used as timeIntervalEnd.\n" - }, - "page": { - "type": "string", - "description": "For list pagination. The value of the `opc-next-page` response header from\nthe previous \"List\" call. For important details about how pagination works,\nsee [List Pagination](/Content/API/Concepts/usingapi.htm#nine).\n" - }, - "opc_request_id": { - "type": "string", - "description": "Unique Oracle-assigned identifier for the request. If you need to contact\nOracle about a particular request, please provide the request ID.\n" - }, - "defined_tag_equals": { - "type": "array", - "items": { - "type": "string" - }, - "description": "A list of tag filters to apply. Only resources with a defined tag matching the value will be returned.\nEach item in the list has the format \"{namespace}.{tagName}.{value}\". All inputs are case-insensitive.\nMultiple values for the same key (i.e. same namespace and tag name) are interpreted as \"OR\".\nValues for different keys (i.e. different namespaces, different tag names, or both) are interpreted as \"AND\".\n" - }, - "freeform_tag_equals": { - "type": "array", - "items": { - "type": "string" - }, - "description": "A list of tag filters to apply. Only resources with a freeform tag matching the value will be returned.\nThe key for each tag is \"{tagName}.{value}\". All inputs are case-insensitive.\nMultiple values for the same tag name are interpreted as \"OR\". Values for different tag names are interpreted as \"AND\".\n" - }, - "defined_tag_exists": { - "type": "array", - "items": { - "type": "string" - }, - "description": "A list of tag existence filters to apply. Only resources for which the specified defined tags exist will be returned.\nEach item in the list has the format \"{namespace}.{tagName}.true\" (for checking existence of a defined tag)\nor \"{namespace}.true\". All inputs are case-insensitive.\nCurrently, only existence (\"true\" at the end) is supported. Absence (\"false\" at the end) is not supported.\nMultiple values for the same key (i.e. same namespace and tag name) are interpreted as \"OR\".\nValues for different keys (i.e. different namespaces, different tag names, or both) are interpreted as \"AND\".\n" - }, - "freeform_tag_exists": { - "type": "array", - "items": { - "type": "string" - }, - "description": "A list of tag existence filters to apply. Only resources for which the specified freeform tags exist the value will be returned.\nThe key for each tag is \"{tagName}.true\". All inputs are case-insensitive.\nCurrently, only existence (\"true\" at the end) is supported. Absence (\"false\" at the end) is not supported.\nMultiple values for different tag names are interpreted as \"AND\".\n" - }, - "compartment_id_in_subtree": { - "type": "boolean", - "description": "A flag to search all resources within a given compartment and all sub-compartments.\n" - }, - "vmcluster_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of Exadata Insight VM cluster name.\n" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id" - ] - }, - "mutable": false - }, - { - "name": "summarize_sql_plan_insights", - "description": "Get performance insights on execution plans for a SQL. DEPRECATED (announced May 2024; no longer functional as of May 31, 2025).", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_sql_plan_insights", - "skills": [ - "database-performance-analysis" - ], - "inputSchema": { - "type": "object", - "properties": { - "compartment_id": { - "type": "string", - "description": "The [OCID](/iaas/Content/General/Concepts/identifiers.htm) of the compartment." - }, - "database_id": { - "type": "string", - "description": "Optional [OCID](/iaas/Content/General/Concepts/identifiers.htm) of the associated DBaaS entity.\n" - }, - "id": { - "type": "string", - "description": "[OCID](/iaas/Content/General/Concepts/identifiers.htm) of the database insight resource.\n" - }, - "sql_identifier": { - "type": "string", - "description": "Unique SQL_ID for a SQL Statement.\nExample: `6rgjh9bjmy2s7`\n" - }, - "analysis_time_interval": { - "type": "string", - "description": "Specify time period in ISO 8601 format with respect to current time.\nDefault is last 30 days represented by P30D.\nIf timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored.\nExamples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months), . Maximum value allowed is 25 months prior to current time (P25M).\n" - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\nThe minimum allowed value is 2 years prior to the current day.\ntimeIntervalStart and timeIntervalEnd parameters are used together.\nIf analysisTimeInterval is specified, this parameter is ignored.\n" - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\ntimeIntervalStart and timeIntervalEnd are used together.\nIf timeIntervalEnd is not specified, current time is used as timeIntervalEnd.\n" - }, - "page": { - "type": "string", - "description": "For list pagination. The value of the `opc-next-page` response header from\nthe previous \"List\" call. For important details about how pagination works,\nsee [List Pagination](/Content/API/Concepts/usingapi.htm#nine).\n" - }, - "opc_request_id": { - "type": "string", - "description": "Unique Oracle-assigned identifier for the request. If you need to contact\nOracle about a particular request, please provide the request ID.\n" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id", - "sql_identifier" - ] - }, - "mutable": false - }, - { - "name": "summarize_sql_response_time_distributions", - "description": "Summarize response time distribution of query executions for a SQL. DEPRECATED (announced May 2024; no longer functional as of May 31, 2025).", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_sql_response_time_distributions", - "skills": [ - "database-performance-analysis" - ], - "inputSchema": { - "type": "object", - "properties": { - "compartment_id": { - "type": "string", - "description": "The [OCID](/iaas/Content/General/Concepts/identifiers.htm) of the compartment." - }, - "database_id": { - "type": "string", - "description": "Optional [OCID](/iaas/Content/General/Concepts/identifiers.htm) of the associated DBaaS entity.\n" - }, - "id": { - "type": "string", - "description": "[OCID](/iaas/Content/General/Concepts/identifiers.htm) of the database insight resource.\n" - }, - "sql_identifier": { - "type": "string", - "description": "Unique SQL_ID for a SQL Statement.\nExample: `6rgjh9bjmy2s7`\n" - }, - "analysis_time_interval": { - "type": "string", - "description": "Specify time period in ISO 8601 format with respect to current time.\nDefault is last 30 days represented by P30D.\nIf timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored.\nExamples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months), . Maximum value allowed is 25 months prior to current time (P25M).\n" - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\nThe minimum allowed value is 2 years prior to the current day.\ntimeIntervalStart and timeIntervalEnd parameters are used together.\nIf analysisTimeInterval is specified, this parameter is ignored.\n" - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\ntimeIntervalStart and timeIntervalEnd are used together.\nIf timeIntervalEnd is not specified, current time is used as timeIntervalEnd.\n" - }, - "page": { - "type": "string", - "description": "For list pagination. The value of the `opc-next-page` response header from\nthe previous \"List\" call. For important details about how pagination works,\nsee [List Pagination](/Content/API/Concepts/usingapi.htm#nine).\n" - }, - "opc_request_id": { - "type": "string", - "description": "Unique Oracle-assigned identifier for the request. If you need to contact\nOracle about a particular request, please provide the request ID.\n" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id", - "sql_identifier" - ] - }, - "mutable": false - }, - { - "name": "summarize_sql_statistics", - "description": "Get performance statistics for SQLs across databases. DEPRECATED (announced May 2024; no longer functional as of May 31, 2025).", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_sql_statistics", - "skills": [ - "database-performance-analysis" - ], - "inputSchema": { - "type": "object", - "properties": { - "compartment_id": { - "type": "string", - "description": "The [OCID](/iaas/Content/General/Concepts/identifiers.htm) of the compartment." - }, - "database_type": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "ADW-S", - "ATP-S", - "ADW-D", - "ATP-D", - "EXTERNAL-PDB", - "EXTERNAL-NONCDB", - "COMANAGED-VM-CDB", - "COMANAGED-VM-PDB", - "COMANAGED-VM-NONCDB", - "COMANAGED-BM-CDB", - "COMANAGED-BM-PDB", - "COMANAGED-BM-NONCDB", - "COMANAGED-EXACS-CDB", - "COMANAGED-EXACS-PDB", - "COMANAGED-EXACS-NONCDB", - "COMANAGED-EXACC-CDB", - "COMANAGED-EXACC-PDB", - "COMANAGED-EXACC-NONCDB", - "MDS-MYSQL", - "EXTERNAL-MYSQL", - "ATP-EXACC", - "ADW-EXACC", - "EXTERNAL-ADW", - "EXTERNAL-ATP" - ] - }, - "description": "Filter by one or more database type.\nPossible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB.\n" - }, - "database_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database [OCIDs](/iaas/Content/General/Concepts/identifiers.htm) of the associated DBaaS entity.\n" - }, - "id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database insight resource [OCIDs](/iaas/Content/General/Concepts/identifiers.htm).\n" - }, - "exadata_insight_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of exadata insight resource [OCIDs](/iaas/Content/General/Concepts/identifiers.htm).\n" - }, - "cdb_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more cdb name.\n" - }, - "host_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more hostname.\n" - }, - "database_time_pct_greater_than": { - "type": "number", - "minimum": 1, - "maximum": 100, - "description": "Filter sqls by percentage of db time.\n" - }, - "sql_identifier": { - "type": "array", - "items": { - "type": "string" - }, - "description": "One or more unique SQL_IDs for a SQL Statement.\nExample: `6rgjh9bjmy2s7`\n" - }, - "analysis_time_interval": { - "type": "string", - "description": "Specify time period in ISO 8601 format with respect to current time.\nDefault is last 30 days represented by P30D.\nIf timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored.\nExamples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months), . Maximum value allowed is 25 months prior to current time (P25M).\n" - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\nThe minimum allowed value is 2 years prior to the current day.\ntimeIntervalStart and timeIntervalEnd parameters are used together.\nIf analysisTimeInterval is specified, this parameter is ignored.\n" - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\ntimeIntervalStart and timeIntervalEnd are used together.\nIf timeIntervalEnd is not specified, current time is used as timeIntervalEnd.\n" - }, - "limit": { - "type": "integer", - "minimum": 1, - "maximum": 1000, - "description": "For list pagination. The maximum number of results per page, or items to\nreturn in a paginated \"List\" call.\nFor important details about how pagination works, see\n[List Pagination](/Content/API/Concepts/usingapi.htm#nine).\nExample: `50`\n" - }, - "page": { - "type": "string", - "description": "For list pagination. The value of the `opc-next-page` response header from\nthe previous \"List\" call. For important details about how pagination works,\nsee [List Pagination](/Content/API/Concepts/usingapi.htm#nine).\n" - }, - "opc_request_id": { - "type": "string", - "description": "Unique Oracle-assigned identifier for the request. If you need to contact\nOracle about a particular request, please provide the request ID.\n" - }, - "sort_order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ], - "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`).\n" - }, - "sort_by": { - "type": "string", - "enum": [ - "databaseTimeInSec", - "executionsPerHour", - "executionsCount", - "cpuTimeInSec", - "ioTimeInSec", - "inefficientWaitTimeInSec", - "responseTimeInSec", - "planCount", - "variability", - "averageActiveSessions", - "databaseTimePct", - "inefficiencyInPct", - "changeInCpuTimeInPct", - "changeInIoTimeInPct", - "changeInInefficientWaitTimeInPct", - "changeInResponseTimeInPct", - "changeInAverageActiveSessionsInPct", - "changeInExecutionsPerHourInPct", - "changeInInefficiencyInPct" - ], - "description": "The field to use when sorting SQL statistics.\nExample: databaseTimeInSec\n" - }, - "category": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "DEGRADING", - "VARIANT", - "INEFFICIENT", - "CHANGING_PLANS", - "IMPROVING", - "DEGRADING_VARIANT", - "DEGRADING_INEFFICIENT", - "DEGRADING_CHANGING_PLANS", - "DEGRADING_INCREASING_IO", - "DEGRADING_INCREASING_CPU", - "DEGRADING_INCREASING_INEFFICIENT_WAIT", - "DEGRADING_CHANGING_PLANS_AND_INCREASING_IO", - "DEGRADING_CHANGING_PLANS_AND_INCREASING_CPU", - "DEGRADING_CHANGING_PLANS_AND_INCREASING_INEFFICIENT_WAIT", - "VARIANT_INEFFICIENT", - "VARIANT_CHANGING_PLANS", - "VARIANT_INCREASING_IO", - "VARIANT_INCREASING_CPU", - "VARIANT_INCREASING_INEFFICIENT_WAIT", - "VARIANT_CHANGING_PLANS_AND_INCREASING_IO", - "VARIANT_CHANGING_PLANS_AND_INCREASING_CPU", - "VARIANT_CHANGING_PLANS_AND_INCREASING_INEFFICIENT_WAIT", - "INEFFICIENT_CHANGING_PLANS", - "INEFFICIENT_INCREASING_INEFFICIENT_WAIT", - "INEFFICIENT_CHANGING_PLANS_AND_INCREASING_INEFFICIENT_WAIT" - ] - }, - "description": "Filter sqls by one or more performance categories.\n" - }, - "defined_tag_equals": { - "type": "array", - "items": { - "type": "string" - }, - "description": "A list of tag filters to apply. Only resources with a defined tag matching the value will be returned.\nEach item in the list has the format \"{namespace}.{tagName}.{value}\". All inputs are case-insensitive.\nMultiple values for the same key (i.e. same namespace and tag name) are interpreted as \"OR\".\nValues for different keys (i.e. different namespaces, different tag names, or both) are interpreted as \"AND\".\n" - }, - "freeform_tag_equals": { - "type": "array", - "items": { - "type": "string" - }, - "description": "A list of tag filters to apply. Only resources with a freeform tag matching the value will be returned.\nThe key for each tag is \"{tagName}.{value}\". All inputs are case-insensitive.\nMultiple values for the same tag name are interpreted as \"OR\". Values for different tag names are interpreted as \"AND\".\n" - }, - "defined_tag_exists": { - "type": "array", - "items": { - "type": "string" - }, - "description": "A list of tag existence filters to apply. Only resources for which the specified defined tags exist will be returned.\nEach item in the list has the format \"{namespace}.{tagName}.true\" (for checking existence of a defined tag)\nor \"{namespace}.true\". All inputs are case-insensitive.\nCurrently, only existence (\"true\" at the end) is supported. Absence (\"false\" at the end) is not supported.\nMultiple values for the same key (i.e. same namespace and tag name) are interpreted as \"OR\".\nValues for different keys (i.e. different namespaces, different tag names, or both) are interpreted as \"AND\".\n" - }, - "freeform_tag_exists": { - "type": "array", - "items": { - "type": "string" - }, - "description": "A list of tag existence filters to apply. Only resources for which the specified freeform tags exist the value will be returned.\nThe key for each tag is \"{tagName}.true\". All inputs are case-insensitive.\nCurrently, only existence (\"true\" at the end) is supported. Absence (\"false\" at the end) is not supported.\nMultiple values for different tag names are interpreted as \"AND\".\n" - }, - "compartment_id_in_subtree": { - "type": "boolean", - "description": "A flag to search all resources within a given compartment and all sub-compartments.\n" - }, - "vmcluster_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of Exadata Insight VM cluster name.\n" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id" - ] - }, - "mutable": false - }, - { - "name": "summarize_sql_statistics_time_series", - "description": "Get performance statistics time series for a SQL across one or more databases. DEPRECATED (announced May 2024; no longer functional as of May 31, 2025).", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_sql_statistics_time_series", - "skills": [ - "database-performance-analysis" - ], - "inputSchema": { - "type": "object", - "properties": { - "compartment_id": { - "type": "string", - "description": "The [OCID](/iaas/Content/General/Concepts/identifiers.htm) of the compartment." - }, - "database_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database [OCIDs](/iaas/Content/General/Concepts/identifiers.htm) of the associated DBaaS entity.\n" - }, - "id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of database [OCIDs](/iaas/Content/General/Concepts/identifiers.htm) of the database insight resource.\n" - }, - "exadata_insight_id": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of exadata insight resource [OCIDs](/iaas/Content/General/Concepts/identifiers.htm).\n" - }, - "cdb_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more cdb name.\n" - }, - "host_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter by one or more hostname.\n" - }, - "sql_identifier": { - "type": "string", - "description": "Unique SQL_ID for a SQL Statement.\nExample: `6rgjh9bjmy2s7`\n" - }, - "analysis_time_interval": { - "type": "string", - "description": "Specify time period in ISO 8601 format with respect to current time.\nDefault is last 30 days represented by P30D.\nIf timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored.\nExamples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months), . Maximum value allowed is 25 months prior to current time (P25M).\n" - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\nThe minimum allowed value is 2 years prior to the current day.\ntimeIntervalStart and timeIntervalEnd parameters are used together.\nIf analysisTimeInterval is specified, this parameter is ignored.\n" - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\ntimeIntervalStart and timeIntervalEnd are used together.\nIf timeIntervalEnd is not specified, current time is used as timeIntervalEnd.\n" - }, - "page": { - "type": "string", - "description": "For list pagination. The value of the `opc-next-page` response header from\nthe previous \"List\" call. For important details about how pagination works,\nsee [List Pagination](/Content/API/Concepts/usingapi.htm#nine).\n" - }, - "opc_request_id": { - "type": "string", - "description": "Unique Oracle-assigned identifier for the request. If you need to contact\nOracle about a particular request, please provide the request ID.\n" - }, - "defined_tag_equals": { - "type": "array", - "items": { - "type": "string" - }, - "description": "A list of tag filters to apply. Only resources with a defined tag matching the value will be returned.\nEach item in the list has the format \"{namespace}.{tagName}.{value}\". All inputs are case-insensitive.\nMultiple values for the same key (i.e. same namespace and tag name) are interpreted as \"OR\".\nValues for different keys (i.e. different namespaces, different tag names, or both) are interpreted as \"AND\".\n" - }, - "freeform_tag_equals": { - "type": "array", - "items": { - "type": "string" - }, - "description": "A list of tag filters to apply. Only resources with a freeform tag matching the value will be returned.\nThe key for each tag is \"{tagName}.{value}\". All inputs are case-insensitive.\nMultiple values for the same tag name are interpreted as \"OR\". Values for different tag names are interpreted as \"AND\".\n" - }, - "defined_tag_exists": { - "type": "array", - "items": { - "type": "string" - }, - "description": "A list of tag existence filters to apply. Only resources for which the specified defined tags exist will be returned.\nEach item in the list has the format \"{namespace}.{tagName}.true\" (for checking existence of a defined tag)\nor \"{namespace}.true\". All inputs are case-insensitive.\nCurrently, only existence (\"true\" at the end) is supported. Absence (\"false\" at the end) is not supported.\nMultiple values for the same key (i.e. same namespace and tag name) are interpreted as \"OR\".\nValues for different keys (i.e. different namespaces, different tag names, or both) are interpreted as \"AND\".\n" - }, - "freeform_tag_exists": { - "type": "array", - "items": { - "type": "string" - }, - "description": "A list of tag existence filters to apply. Only resources for which the specified freeform tags exist the value will be returned.\nThe key for each tag is \"{tagName}.true\". All inputs are case-insensitive.\nCurrently, only existence (\"true\" at the end) is supported. Absence (\"false\" at the end) is not supported.\nMultiple values for different tag names are interpreted as \"AND\".\n" - }, - "compartment_id_in_subtree": { - "type": "boolean", - "description": "A flag to search all resources within a given compartment and all sub-compartments.\n" - }, - "vmcluster_name": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of Exadata Insight VM cluster name.\n" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id", - "sql_identifier" - ] - }, - "mutable": false - }, - { - "name": "summarize_sql_statistics_time_series_by_plan", - "description": "Get performance statistics time series for a SQL by execution plans. DEPRECATED (announced May 2024; no longer functional as of May 31, 2025).", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "summarize_sql_statistics_time_series_by_plan", - "skills": [ - "database-performance-analysis" - ], - "inputSchema": { - "type": "object", - "properties": { - "compartment_id": { - "type": "string", - "description": "The [OCID](/iaas/Content/General/Concepts/identifiers.htm) of the compartment." - }, - "database_id": { - "type": "string", - "description": "Optional [OCID](/iaas/Content/General/Concepts/identifiers.htm) of the associated DBaaS entity.\n" - }, - "id": { - "type": "string", - "description": "[OCID](/iaas/Content/General/Concepts/identifiers.htm) of the database insight resource.\n" - }, - "sql_identifier": { - "type": "string", - "description": "Unique SQL_ID for a SQL Statement.\nExample: `6rgjh9bjmy2s7`\n" - }, - "analysis_time_interval": { - "type": "string", - "description": "Specify time period in ISO 8601 format with respect to current time.\nDefault is last 30 days represented by P30D.\nIf timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored.\nExamples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months), . Maximum value allowed is 25 months prior to current time (P25M).\n" - }, - "time_interval_start": { - "type": "string", - "format": "date-time", - "description": "Analysis start time in UTC in ISO 8601 format(inclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\nThe minimum allowed value is 2 years prior to the current day.\ntimeIntervalStart and timeIntervalEnd parameters are used together.\nIf analysisTimeInterval is specified, this parameter is ignored.\n" - }, - "time_interval_end": { - "type": "string", - "format": "date-time", - "description": "Analysis end time in UTC in ISO 8601 format(exclusive).\nExample 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ).\ntimeIntervalStart and timeIntervalEnd are used together.\nIf timeIntervalEnd is not specified, current time is used as timeIntervalEnd.\n" - }, - "page": { - "type": "string", - "description": "For list pagination. The value of the `opc-next-page` response header from\nthe previous \"List\" call. For important details about how pagination works,\nsee [List Pagination](/Content/API/Concepts/usingapi.htm#nine).\n" - }, - "opc_request_id": { - "type": "string", - "description": "Unique Oracle-assigned identifier for the request. If you need to contact\nOracle about a particular request, please provide the request ID.\n" - } - }, - "additionalProperties": false, - "required": [ - "compartment_id", - "sql_identifier" - ] - }, - "mutable": false - } - ] -} diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/registry.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/registry.py deleted file mode 100644 index 6040ec1d..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/registry.py +++ /dev/null @@ -1,171 +0,0 @@ -""" -Copyright (c) 2026, Oracle and/or its affiliates. -Licensed under the Universal Permissive License v1.0 as shown at -https://oss.oracle.com/licenses/upl. - -Immutable JSON registry for the unified Database Observability server. -""" - -from __future__ import annotations - -import json -from dataclasses import dataclass -from importlib.resources import files -from types import MappingProxyType -from typing import Any, Mapping - -import oci -from jsonschema import Draft202012Validator, SchemaError - - -class RegistryError(ValueError): - """Raised when packaged discovery metadata is invalid.""" - - -_CLIENTS = { - "opsi": {"OperationsInsightsClient": oci.opsi.OperationsInsightsClient}, - "dbm": { - "DbManagementClient": oci.database_management.DbManagementClient, - "DiagnosabilityClient": oci.database_management.DiagnosabilityClient, - "SqlTuningClient": oci.database_management.SqlTuningClient, - }, - "identity": {"IdentityClient": oci.identity.IdentityClient}, -} - - -@dataclass(frozen=True) -class Registry: - skills: tuple[Mapping[str, Any], ...] - tools: tuple[Mapping[str, Any], ...] - _skills: Mapping[str, Mapping[str, Any]] - _tools: Mapping[str, Mapping[str, Any]] - - def get_skill(self, name: str) -> Mapping[str, Any]: - try: - return self._skills[name] - except KeyError as exc: - raise RegistryError(f"Unknown skill: {name}") from exc - - def get_tool(self, name: str) -> Mapping[str, Any]: - try: - return self._tools[name] - except KeyError as exc: - raise RegistryError(f"Unknown tool: {name}") from exc - - def list_tools( - self, - skill_names: set[str], - ) -> list[Mapping[str, Any]]: - for skill_name in skill_names: - self.get_skill(skill_name) - return [tool for tool in self.tools if skill_names.intersection(tool["skills"])] - - -def client_class(service: str, client: str) -> type[Any]: - try: - return _CLIENTS[service][client] - except KeyError as exc: - raise RegistryError(f"Unsupported SDK client binding: {service}/{client}") from exc - - -def _read_json(name: str) -> dict[str, Any]: - try: - return json.loads(files("oracle.oci_oracle_db_observability_mcp_server").joinpath("metadata", name).read_text()) - except (OSError, json.JSONDecodeError) as exc: - raise RegistryError(f"Unable to load registry file {name}: {exc}") from exc - - -def _freeze(value: Any) -> Any: - if isinstance(value, dict): - return MappingProxyType({key: _freeze(item) for key, item in value.items()}) - if isinstance(value, list): - return tuple(_freeze(item) for item in value) - return value - - -def to_jsonable(value: Any) -> Any: - """Copy immutable registry values into JSON-compatible response values.""" - if isinstance(value, Mapping): - return {key: to_jsonable(item) for key, item in value.items()} - if isinstance(value, tuple): - return [to_jsonable(item) for item in value] - return value - - -def _validate_strict_schema(schema: Mapping[str, Any], path: str = "inputSchema") -> None: - """Reject open objects and untyped arrays in packaged tool contracts.""" - if "oneOf" in schema: - variants = schema["oneOf"] - if not isinstance(variants, list) or not variants: - raise RegistryError(f"Tool has invalid oneOf schema: {path}") - for index, variant in enumerate(variants): - if not isinstance(variant, Mapping): - raise RegistryError(f"Tool has invalid oneOf variant: {path}[{index}]") - _validate_strict_schema(variant, f"{path}.oneOf[{index}]") - return - schema_type = schema.get("type") - if schema_type == "array": - items = schema.get("items") - if not isinstance(items, Mapping) or not items: - raise RegistryError(f"Tool has untyped array items: {path}") - _validate_strict_schema(items, f"{path}.items") - if schema_type != "object": - return - additional = schema.get("additionalProperties") - if additional is None or additional is True: - raise RegistryError(f"Tool has unrestricted object schema: {path}") - if additional is False: - properties = schema.get("properties") - if not isinstance(properties, Mapping): - raise RegistryError(f"Tool has invalid object properties: {path}") - for name, property_schema in properties.items(): - if not isinstance(property_schema, Mapping): - raise RegistryError(f"Tool has invalid property schema: {path}.properties.{name}") - _validate_strict_schema(property_schema, f"{path}.properties.{name}") - elif isinstance(additional, Mapping): - _validate_strict_schema(additional, f"{path}.additionalProperties") - else: - raise RegistryError(f"Tool has invalid additionalProperties: {path}") - - -def _validate(skills: list[dict[str, Any]], tools: list[dict[str, Any]]) -> Registry: - by_skill = {skill.get("name"): skill for skill in skills} - if any(not isinstance(skill.get("name"), str) or not skill["name"] for skill in skills): - raise RegistryError("Skill names must be non-empty") - if len(by_skill) != len(skills): - raise RegistryError("Duplicate skill name") - by_tool = {tool.get("name"): tool for tool in tools} - if any(not isinstance(tool.get("name"), str) or not tool["name"] for tool in tools): - raise RegistryError("Tool names must be non-empty") - if len(by_tool) != len(tools): - raise RegistryError("Duplicate tool name") - referenced = {name for skill in skills for name in skill.get("tools", [])} - if referenced != set(by_tool): - raise RegistryError("Tools must be referenced by at least one skill, and skill references must resolve") - for tool in tools: - schema = tool.get("inputSchema") - if not isinstance(schema, dict) or schema.get("type") != "object": - raise RegistryError(f"Tool has invalid input schema: {tool.get('name')}") - _validate_strict_schema(schema) - try: - Draft202012Validator.check_schema(schema) - except SchemaError as exc: - raise RegistryError(f"Tool has invalid JSON schema: {tool.get('name')}") from exc - if not set(tool.get("skills", [])) or not set(tool["skills"]).issubset(by_skill): - raise RegistryError(f"Tool has invalid skill membership: {tool.get('name')}") - if tool["name"] not in {name for skill in skills if skill["name"] in tool["skills"] for name in skill["tools"]}: - raise RegistryError(f"Tool/skill membership mismatch: {tool['name']}") - cls = client_class(tool.get("service"), tool.get("client")) - method = getattr(cls, tool.get("operation", ""), None) - if not callable(method) or tool["operation"].startswith("_"): - raise RegistryError(f"Tool has invalid SDK operation binding: {tool['name']}") - frozen_skills = tuple(_freeze(skill) for skill in skills) - frozen_tools = tuple(_freeze(tool) for tool in tools) - return Registry(frozen_skills, frozen_tools, MappingProxyType(dict(zip(by_skill, frozen_skills))), MappingProxyType(dict(zip(by_tool, frozen_tools)))) - - -def load_registry() -> Registry: - manifest = _read_json("manifest.json") - skills = _read_json(manifest["skills"])["skills"] - tools = _read_json(manifest["tools"])["tools"] - return _validate(skills, tools) diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/runtime.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/runtime.py deleted file mode 100644 index 9362b6e8..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/runtime.py +++ /dev/null @@ -1,155 +0,0 @@ -""" -Copyright (c) 2026, Oracle and/or its affiliates. -Licensed under the Universal Permissive License v1.0 as shown at -https://oss.oracle.com/licenses/upl. - -Single allowlisted OCI Python SDK dispatcher. -""" -from __future__ import annotations - -import inspect -import json -import os -from functools import lru_cache -from typing import Any, Mapping, get_args, get_origin - -import oci -from jsonschema import Draft202012Validator -from fastmcp.server.dependencies import get_access_token -from oracle_mcp_common import IDCSHttpAuth, build_auth_context - -from . import __project__, __version__ -from .registry import client_class -from .sdk_schema import parameter_docs - -_USER_AGENT = f"{__project__.split('oracle.', 1)[1].removesuffix('-server')}/{__version__}" -_http_auth: IDCSHttpAuth | None = None - - -def configure_http_auth(policy: IDCSHttpAuth) -> None: - """Configure caller-scoped OCI authentication for HTTP transport.""" - global _http_auth - _http_auth = policy - - -def _get_http_config_and_signer(access_token: Any) -> tuple[dict[str, Any], Any, str | None]: - """Build caller-specific OCI SDK authentication for one HTTP request.""" - if _http_auth is None: - raise RuntimeError("HTTP authentication policy has not been initialized.") - context = _http_auth.context_for(access_token.token if access_token else None) - tenancy_id = getattr(context.signer, "tenancy_id", None) or os.getenv("OCI_MCP_TENANCY_ID_OVERRIDE") - return ({**context.config, "additional_user_agent": _USER_AGENT}, context.signer, tenancy_id) - - -def _get_config_and_signer(access_token: Any | None = None) -> tuple[dict[str, Any], Any, str | None]: - """Resolve HTTP caller credentials or configured stdio OCI credentials.""" - if access_token is not None: - return _get_http_config_and_signer(access_token) - context = build_auth_context() - return ({**context.config, "additional_user_agent": _USER_AGENT}, context.signer, context.tenancy_id) - - -@lru_cache(maxsize=None) -def _stdio_client(service: str, client_name: str) -> Any: - config, signer, _ = _get_config_and_signer() - return client_class(service, client_name)(config, signer=signer) - - -def _client(service: str, client_name: str) -> Any: - access_token = get_access_token() - if access_token is None: - return _stdio_client(service, client_name) - config, signer, _ = _get_config_and_signer(access_token) - return client_class(service, client_name)(config, signer=signer) - - -def identity_bootstrap_client() -> tuple[Any, str]: - """Create the Identity client and resolve the configured tenancy scope.""" - config, signer, tenancy_id = _get_config_and_signer(get_access_token()) - if not tenancy_id: - raise ValueError("Configured OCI authentication context is missing tenancy.") - client = client_class("identity", "IdentityClient")(config, signer=signer) - return client, tenancy_id - - -def _serialize_data(data: Any) -> Any: - """Convert a response payload to a JSON-safe value.""" - try: - return json.loads(json.dumps(oci.util.to_dict(data), default=str)) - except Exception: - return str(data) - - -def serialize_response(response: Any) -> dict[str, Any]: - """Convert an OCI SDK response to JSON-safe data and pagination metadata.""" - data = getattr(response, "data", response) - headers = getattr(response, "headers", {}) or {} - return {"data": _serialize_data(data), "nextPage": headers.get("opc-next-page")} - - -def _models_module(client: type[Any]) -> Any: - module = client.__module__.rsplit(".", 1)[0] - try: - return __import__(f"{module}.models", fromlist=["models"]) - except ImportError: - return None - - -def _type_name(annotation: Any) -> str | None: - if isinstance(annotation, str): - return annotation - if annotation is inspect.Signature.empty: - return None - if isinstance(annotation, type): - return annotation.__name__ - origin = get_origin(annotation) - args = [arg for arg in get_args(annotation) if arg is not type(None)] - return _type_name(args[0]) if origin and len(args) == 1 else None - - -def _coerce(value: Any, type_name: str | None, models: Any) -> Any: - if value is None or not type_name or not isinstance(value, dict) or models is None: - return value - model = getattr(models, type_name.rsplit(".", 1)[-1], None) - if not inspect.isclass(model): - return value - model = getattr(models, value.get("model_type", ""), model) - payload = {key: item for key, item in value.items() if key != "model_type"} - swagger = getattr(model, "swagger_types", {}) - payload = {key: _coerce(item, swagger.get(key), models) for key, item in payload.items()} - from_dict = getattr(oci.util, "from_dict", None) - if not callable(from_dict): - return model(**payload) - try: - return from_dict(model, payload) - except (TypeError, ValueError): - return model(**payload) - - -def _coerce_arguments(client: Any, operation: str, arguments: Mapping[str, Any]) -> dict[str, Any]: - method = getattr(client, operation) - models = _models_module(client.__class__) - signature = inspect.signature(method) - docs = parameter_docs(method) - coerced: dict[str, Any] = {} - for key, value in arguments.items(): - parameter = signature.parameters.get(key) - type_name = _type_name(parameter.annotation) if parameter and parameter.kind is not inspect.Parameter.VAR_KEYWORD else None - if type_name is None and key in docs: - type_name = docs[key][0] - coerced[key] = _coerce(value, type_name, models) - return coerced - - -def invoke_registered_tool(tool: Mapping[str, Any], arguments: dict[str, Any]) -> Any: - if not isinstance(arguments, dict): - raise ValueError("arguments must be a JSON object") - errors = sorted(Draft202012Validator(dict(tool["inputSchema"])).iter_errors(arguments), key=lambda error: list(error.path)) - if errors: - raise ValueError(f"Invalid arguments: {errors[0].message}") - client = _client(str(tool["service"]), str(tool["client"])) - try: - response = getattr(client, tool["operation"])(**_coerce_arguments(client, str(tool["operation"]), arguments)) - except Exception as exc: - raise RuntimeError(f"OCI operation {tool['name']} failed: {exc}") from exc - return serialize_response(response) diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/sdk_schema.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/sdk_schema.py deleted file mode 100644 index 940c526c..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/sdk_schema.py +++ /dev/null @@ -1,220 +0,0 @@ -""" -Copyright (c) 2026, Oracle and/or its affiliates. -Licensed under the Universal Permissive License v1.0 as shown at -https://oss.oracle.com/licenses/upl. - -Derive strict JSON Schema contracts from the locked OCI Python SDK. -""" -from __future__ import annotations - -import inspect -import re -from collections.abc import Mapping -from importlib import import_module -from typing import Any - - -TRANSPORT_KWARGS = frozenset({"retry_strategy", "allow_control_chars", "enable_strict_url_encoding"}) -_SCALAR_SCHEMAS = { - "str": {"type": "string"}, - "int": {"type": "integer"}, - "float": {"type": "number"}, - "bool": {"type": "boolean"}, - "datetime": {"type": "string", "format": "date-time"}, -} -_CONSTRAINT_KEYS = frozenset({"enum", "minimum", "maximum", "minLength", "maxLength", "pattern"}) - - -def expected_kwargs(method: Any) -> set[str]: - """Return all generated OCI SDK call arguments, excluding transport controls.""" - source = inspect.getsource(method) - match = re.search(r"expected_kwargs\s*=\s*\[\s*(.*?)\s*\]", source, re.DOTALL) - if not match: - raise ValueError(f"Unable to find expected_kwargs in {method.__qualname__}") - optional = set(re.findall(r"['\"]([a-zA-Z0-9_]+)['\"]", match.group(1))) - required = { - parameter.name - for parameter in inspect.signature(method).parameters.values() - if parameter.name not in {"self", "kwargs"} - and parameter.kind in {parameter.POSITIONAL_ONLY, parameter.POSITIONAL_OR_KEYWORD, parameter.KEYWORD_ONLY} - } - return (required | optional) - TRANSPORT_KWARGS - - -def parameter_docs(method: Any) -> dict[str, tuple[str, bool, str]]: - """Return SDK parameter type, requiredness, and documentation by argument name.""" - text = inspect.getdoc(method) or "" - matches = list(re.finditer(r"^:param\s+([^\s]+)\s+([a-zA-Z0-9_]+):\s*(.*)$", text, re.MULTILINE)) - result: dict[str, tuple[str, bool, str]] = {} - for index, match in enumerate(matches): - end = matches[index + 1].start() if index + 1 < len(matches) else len(text) - detail = f"{match.group(3)}\n{text[match.end():end]}".strip() - result[match.group(2)] = (match.group(1), "(required)" in match.group(3), detail) - return result - - -def _split_generic(value: str) -> tuple[str, str] | None: - match = re.fullmatch(r"(list|dict)\[(.*)\]", value) - if match: - return match.group(1), match.group(2) - match = re.fullmatch(r"dict\((.*)\)", value) - return ("dict", match.group(1)) if match else None - - -def _split_pair(value: str) -> tuple[str, str]: - depth = 0 - for index, character in enumerate(value): - if character in "[(": - depth += 1 - elif character in "])": - depth -= 1 - elif character == "," and depth == 0: - return value[:index].strip(), value[index + 1 :].strip() - raise ValueError(f"Expected two generic arguments in {value!r}") - - -def _enum_from_description(description: str) -> list[str] | None: - match = re.search(r"Allowed values are:\s*(.*?)(?:\n\n|:param|:return:|$)", description, re.DOTALL) - if not match: - return None - values = re.findall(r'"([^"\n]+)"', match.group(1)) - return values or None - - -def _model_maps(model_class: type[Any]) -> tuple[dict[str, str], dict[str, str]]: - instance = model_class() - swagger_types = getattr(instance, "swagger_types", None) - attribute_map = getattr(instance, "attribute_map", None) - if not isinstance(swagger_types, dict) or not isinstance(attribute_map, dict): - raise ValueError(f"OCI model {model_class.__name__} does not expose schema maps") - return swagger_types, attribute_map - - -def _model_required_and_description(model_class: type[Any], field: str) -> tuple[bool, str]: - property_value = getattr(model_class, field, None) - getter = getattr(property_value, "fget", None) - description = inspect.getdoc(getter) or "" - return "**[Required]**" in description, description - - -def _resolve_model(type_name: str, models_module: Any) -> type[Any] | None: - normalized = type_name.removeprefix("oci.") - if ".models." in type_name: - module_name, class_name = type_name.rsplit(".", 1) - return getattr(import_module(module_name), class_name, None) - return getattr(models_module, normalized.rsplit(".", 1)[-1], None) - - -def _model_schema(model_class: type[Any], models_module: Any, seen: frozenset[str]) -> dict[str, Any]: - model_name = f"{model_class.__module__}.{model_class.__name__}" - if model_name in seen: - raise ValueError(f"Recursive OCI model type {model_name}") - swagger_types, _ = _model_maps(model_class) - properties: dict[str, Any] = {} - required: list[str] = [] - for field, field_type in swagger_types.items(): - field_required, field_description = _model_required_and_description(model_class, field) - properties[field] = schema_for_type(field_type, models_module, field_description, seen | {model_name}) - if field_required: - required.append(field) - schema = {"type": "object", "properties": properties, "additionalProperties": False} - if required: - schema["required"] = required - return schema - - -def _polymorphic_schema(model_class: type[Any], models_module: Any, seen: frozenset[str]) -> dict[str, Any]: - source = inspect.getsource(model_class.get_subtype) - variants = re.findall(r"if type == ['\"]([^'\"]+)['\"]:\s*return ['\"]([^'\"]+)['\"]", source) - if not variants: - raise ValueError(f"Unable to resolve polymorphic OCI model type {model_class.__name__}") - discriminator = re.search(r"object_dictionary\[['\"]([^'\"]+)['\"]\]", source) - if not discriminator: - raise ValueError(f"Unable to resolve discriminator for OCI model type {model_class.__name__}") - _, attribute_map = _model_maps(model_class) - fields = [field for field, wire_name in attribute_map.items() if wire_name == discriminator.group(1)] - if len(fields) != 1: - raise ValueError(f"Unable to resolve discriminator field for OCI model type {model_class.__name__}") - discriminator_field = fields[0] - schemas = [] - for discriminator, subtype_name in variants: - subtype = getattr(models_module, subtype_name, None) - if not inspect.isclass(subtype): - raise ValueError(f"Unable to resolve OCI subtype {subtype_name}") - schema = _model_schema(subtype, models_module, seen) - discriminator_schema = schema["properties"].get(discriminator_field) - if not isinstance(discriminator_schema, dict): - raise ValueError(f"OCI subtype {subtype_name} lacks the {discriminator_field} discriminator") - discriminator_schema["enum"] = [discriminator] - if discriminator_field not in schema.get("required", []): - schema["required"] = [*schema.get("required", []), discriminator_field] - schemas.append(schema) - return {"oneOf": schemas} - - -def schema_for_type(type_name: str, models_module: Any, description: str = "", seen: frozenset[str] = frozenset()) -> dict[str, Any]: - """Build a strict JSON Schema fragment for one OCI SDK type spelling.""" - normalized = type_name.removeprefix("oci.opsi.models.").removeprefix("oci.database_management.models.") - if normalized in _SCALAR_SCHEMAS: - schema = dict(_SCALAR_SCHEMAS[normalized]) - enum = _enum_from_description(description) - if enum: - schema["enum"] = enum - return schema - generic = _split_generic(normalized) - if generic: - kind, contents = generic - if kind == "list": - return {"type": "array", "items": schema_for_type(contents.strip(), models_module, description, seen)} - _, value_type = _split_pair(contents) - return { - "type": "object", - "additionalProperties": schema_for_type(value_type, models_module, "", seen), - } - if normalized in {"object", "Any"}: - return {} - model_class = _resolve_model(type_name, models_module) - if not inspect.isclass(model_class): - raise ValueError(f"Unable to resolve OCI SDK type {type_name!r}") - if callable(getattr(model_class, "get_subtype", None)): - return _polymorphic_schema(model_class, models_module, seen) - return _model_schema(model_class, models_module, seen) - - -def schema_for_operation(method: Any, models_module: Any, existing: Mapping[str, Any] | None = None) -> dict[str, Any]: - """Build the strict input schema for an SDK operation and preserve known constraints.""" - docs = parameter_docs(method) - expected = expected_kwargs(method) - if set(docs) - TRANSPORT_KWARGS != expected: - raise ValueError(f"SDK documentation and expected_kwargs differ for {method.__qualname__}") - existing_properties = existing.get("properties", {}) if isinstance(existing, Mapping) else {} - properties: dict[str, Any] = {} - required: list[str] = [] - for name in sorted(expected): - type_name, is_required, description = docs[name] - schema = schema_for_type(type_name, models_module, description) - _preserve_constraints(schema, existing_properties.get(name)) - if isinstance(existing_properties.get(name), Mapping) and "description" in existing_properties[name]: - schema["description"] = existing_properties[name]["description"] - properties[name] = schema - if is_required: - required.append(name) - result: dict[str, Any] = {"type": "object", "properties": properties, "additionalProperties": False} - if required: - existing_required = existing.get("required", []) if isinstance(existing, Mapping) else [] - result["required"] = [name for name in existing_required if name in required] + [name for name in required if name not in existing_required] - return result - - -def _preserve_constraints(schema: dict[str, Any], existing: Any) -> None: - if not isinstance(existing, Mapping): - return - for key in _CONSTRAINT_KEYS: - if key in existing: - schema[key] = existing[key] - if schema.get("type") == "array": - _preserve_constraints(schema["items"], existing.get("items")) - if schema.get("type") == "object" and schema.get("additionalProperties") is False: - existing_properties = existing.get("properties", {}) - for name, nested in schema.get("properties", {}).items(): - _preserve_constraints(nested, existing_properties.get(name)) diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/server.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/server.py deleted file mode 100644 index ec2a30aa..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/server.py +++ /dev/null @@ -1,31 +0,0 @@ -""" -Copyright (c) 2026, Oracle and/or its affiliates. -Licensed under the Universal Permissive License v1.0 as shown at -https://oss.oracle.com/licenses/upl. - -Unified DBO MCP process entry point. -""" -from __future__ import annotations - -import os - -from fastmcp.utilities.auth import parse_scopes -from oracle_mcp_common import build_idcs_http_auth - -from .mcp import mcp -from .runtime import configure_http_auth - - -def main() -> None: - host, port = os.getenv("ORACLE_MCP_HOST"), os.getenv("ORACLE_MCP_PORT") - if not (host and port): - mcp.run() - return - policy = build_idcs_http_auth(parse_scopes(os.getenv("IDCS_REQUIRED_SCOPES")) or ["openid", "profile", "email", "oci_mcp.db_observability.invoke"]) - mcp.auth = policy.provider - configure_http_auth(policy) - mcp.run(transport="http", host=host, port=int(port)) - - -if __name__ == "__main__": - main() diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/__init__.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/__init__.py deleted file mode 100644 index 6cdf18b1..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -""" -Copyright (c) 2026, Oracle and/or its affiliates. -Licensed under the Universal Permissive License v1.0 as shown at -https://oss.oracle.com/licenses/upl. - -Unified DBO MCP tests. -""" diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_mcp_surface.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_mcp_surface.py deleted file mode 100644 index a7af892a..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_mcp_surface.py +++ /dev/null @@ -1,113 +0,0 @@ -""" -Copyright (c) 2026, Oracle and/or its affiliates. -Licensed under the Universal Permissive License v1.0 as shown at -https://oss.oracle.com/licenses/upl. -""" - -from __future__ import annotations - -import re - -import pytest - -from oracle.oci_oracle_db_observability_mcp_server import mcp as mcp_module -from oracle.oci_oracle_db_observability_mcp_server.mcp import mcp - - -@pytest.mark.asyncio -async def test_unified_mcp_exposes_only_discovery_dispatch_and_compartment_tools() -> None: - tools = await mcp.list_tools() - - assert {tool.name for tool in tools} == { - "describe_dbo_tool", - "get_oci_compartment", - "invoke_dbo_tool", - "list_oci_compartments", - "list_dbo_skills", - "list_dbo_tools", - } - - -@pytest.mark.asyncio -async def test_advertised_workflow_references_registered_tools_only() -> None: - registered_names = {tool.name for tool in await mcp.list_tools()} - advertised_names = set(re.findall(r"`([^`]+)`", mcp.instructions)) - - assert advertised_names <= registered_names - - -def test_compartment_tools_use_the_shared_bootstrap_client(monkeypatch) -> None: - calls: dict[str, object] = {} - - class Client: - def get_compartment(self, **kwargs): - calls["get"] = kwargs - return object() - - def list_compartments(self, **kwargs): - calls["list"] = kwargs - return object() - - monkeypatch.setattr(mcp_module, "identity_bootstrap_client", lambda: (Client(), "tenancy-ocid")) - monkeypatch.setattr( - mcp_module, - "serialize_response", - lambda _response: {"data": [{"id": "compartment-ocid"}], "nextPage": "page-2"}, - ) - - assert mcp_module.get_oci_compartment("compartment-ocid") == { - "data": [{"id": "compartment-ocid"}], - "nextPage": "page-2", - } - assert calls["get"] == {"compartment_id": "compartment-ocid"} - assert mcp_module.list_oci_compartments( - root_compartment_id=None, - include_subtree=True, - access_level="ACCESSIBLE", - name="production", - lifecycle_state=None, - limit=10, - page="page-1", - ) == { - "items": [{"id": "compartment-ocid"}], - "count": 1, - "nextPage": "page-2", - } - assert calls["list"] == { - "compartment_id": "tenancy-ocid", - "compartment_id_in_subtree": True, - "access_level": "ACCESSIBLE", - "name": "production", - "lifecycle_state": None, - "limit": 10, - "page": "page-1", - } - - -def test_get_compartment_requires_an_ocid() -> None: - with pytest.raises(ValueError, match="compartment_id is required"): - mcp_module.get_oci_compartment("") - - -def test_discovery_and_invocation_tools_delegate_to_registry(monkeypatch) -> None: - skills = mcp_module.list_dbo_skills()["skills"] - assert len(skills) == 34 - assert {"name", "description", "toolCount"}.issubset(skills[0]) - - listed = mcp_module.list_dbo_tools(["database-inventory"], limit=1) - assert listed["count"] >= 1 - assert len(listed["tools"]) == 1 - assert listed["truncated"] is (listed["count"] > 1) - assert "database-inventory" in listed["tools"][0]["skills"] - - described = mcp_module.describe_dbo_tool("list_database_insights") - assert described["name"] == "list_database_insights" - assert described["inputSchema"]["type"] == "object" - - expected = {"result": "ok"} - monkeypatch.setattr(mcp_module, "invoke_registered_tool", lambda tool, arguments: (tool["name"], arguments, expected)) - assert mcp_module.invoke_dbo_tool("list_database_insights", {"compartment_id": "ocid"}) == ( - "list_database_insights", - {"compartment_id": "ocid"}, - expected, - ) diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_registry.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_registry.py deleted file mode 100644 index ac73e3d2..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_registry.py +++ /dev/null @@ -1,251 +0,0 @@ -""" -Copyright (c) 2026, Oracle and/or its affiliates. -Licensed under the Universal Permissive License v1.0 as shown at -https://oss.oracle.com/licenses/upl. -""" - -from __future__ import annotations - -import json -from types import SimpleNamespace - -import pytest - -from oracle.oci_oracle_db_observability_mcp_server.registry import ( - RegistryError, - _read_json, - _validate, - _validate_strict_schema, - client_class, - load_registry, -) -from oracle.oci_oracle_db_observability_mcp_server.registry import to_jsonable -from oracle.oci_oracle_db_observability_mcp_server.sdk_schema import ( - _enum_from_description, - _model_maps, - _preserve_constraints, - _split_pair, - expected_kwargs, - schema_for_operation, - schema_for_type, -) - - -class _SimpleModel: - swagger_types = {"name": "str", "counts": "list[int]", "labels": "dict(str, bool)"} - attribute_map = {"name": "name", "counts": "counts", "labels": "labels"} - - @property - def name(self): - """**[Required]** A name.""" - - -class _PolymorphicModel: - swagger_types = {"target": "str"} - attribute_map = {"target": "target"} - - @staticmethod - def get_subtype(object_dictionary): - type = object_dictionary["target"] - if type == "INDIVIDUAL": - return "_IndividualModel" - if type == "GROUP": - return "_GroupModel" - return "_PolymorphicModel" - - -class _IndividualModel(_PolymorphicModel): - swagger_types = {"target": "str", "identifier": "str"} - attribute_map = {"target": "target", "identifier": "identifier"} - - @property - def identifier(self): - """**[Required]** An identifier.""" - - -class _GroupModel(_PolymorphicModel): - swagger_types = {"target": "str", "identifiers": "list[str]"} - attribute_map = {"target": "target", "identifiers": "identifiers"} - - -def test_packaged_registry_has_expected_shape() -> None: - registry = load_registry() - - assert len(registry.skills) == 34 - assert len(registry.tools) == 229 - assert len({tool["name"] for tool in registry.tools}) == 229 - assert all(tool["inputSchema"]["type"] == "object" for tool in registry.tools) - assert all(tool["inputSchema"].get("additionalProperties") is False for tool in registry.tools) - assert "retrieve_data" not in {tool["name"] for tool in registry.tools} - assert not any(tool["mutable"] for tool in registry.tools) - assert "query_opsi_data_object_data" not in {tool["name"] for tool in registry.tools} - - -def test_tool_filtering_is_skill_scoped() -> None: - registry = load_registry() - - tools = registry.list_tools({"awr-historical-performance-analysis"}) - - assert tools - assert all("awr-historical-performance-analysis" in tool["skills"] for tool in tools) - - -def test_unknown_skill_and_tool_are_rejected() -> None: - registry = load_registry() - - with pytest.raises(RegistryError, match="Unknown skill"): - registry.get_skill("missing") - with pytest.raises(RegistryError, match="Unknown tool"): - registry.get_tool("missing") - with pytest.raises(RegistryError, match="Unknown skill"): - registry.list_tools({"missing"}) - - -def test_duplicate_names_are_rejected() -> None: - registry = load_registry() - duplicate_skill = dict(registry.skills[0]) - duplicate_tool = dict(registry.tools[0]) - - with pytest.raises(RegistryError, match="Duplicate skill"): - _validate([registry.skills[0], duplicate_skill], []) - with pytest.raises(RegistryError, match="Duplicate tool"): - _validate(list(registry.skills), [duplicate_tool, duplicate_tool]) - - -def test_metadata_files_are_valid_json() -> None: - from importlib.resources import files - - metadata = files("oracle.oci_oracle_db_observability_mcp_server").joinpath("metadata") - for name in ("manifest.json", "skills.json", "tools.json"): - json.loads(metadata.joinpath(name).read_text(encoding="utf-8")) - - -def test_compartment_bootstrap_tool_is_not_registry_backed() -> None: - registry = load_registry() - - assert "list_compartments" not in {tool["name"] for tool in registry.tools} - assert "list_compartments" not in registry.get_skill("oci-common")["tools"] - - -def test_registry_values_can_be_returned_as_json() -> None: - schema = to_jsonable(load_registry().get_tool("summarize_database_insight_resource_usage")["inputSchema"]) - - assert isinstance(schema, dict) - assert json.loads(json.dumps(schema)) == schema - - -def test_packaged_schemas_match_the_locked_oci_sdk() -> None: - registry = load_registry() - - for tool in registry.tools: - method = getattr(client_class(tool["service"], tool["client"]), tool["operation"]) - models = __import__(f"{method.__module__.rsplit('.', 1)[0]}.models", fromlist=["models"]) - schema = to_jsonable(tool["inputSchema"]) - assert schema == schema_for_operation(method, models, schema) - - -@pytest.mark.parametrize("mutation, error", [(lambda schema: schema.pop("additionalProperties"), "unrestricted object"), (lambda schema: schema["properties"].update({"values": {"type": "array"}}), "untyped array")]) -def test_registry_rejects_open_objects_and_untyped_arrays(mutation, error) -> None: - registry = load_registry() - tool = to_jsonable(registry.tools[0]) - tool["skills"] = ["skill"] - mutation(tool["inputSchema"]) - - with pytest.raises(RegistryError, match=error): - _validate([{"name": "skill", "tools": [tool["name"]]}], [tool]) - - -@pytest.mark.parametrize( - ("schema", "error"), - [ - ({"oneOf": []}, "invalid oneOf"), - ({"oneOf": ["not-a-schema"]}, "invalid oneOf variant"), - ({"type": "array"}, "untyped array"), - ({"type": "object", "additionalProperties": False}, "invalid object properties"), - ({"type": "object", "properties": {"value": "not-a-schema"}, "additionalProperties": False}, "invalid property schema"), - ({"type": "object", "properties": {}, "additionalProperties": "invalid"}, "invalid additionalProperties"), - ], -) -def test_registry_rejects_invalid_strict_schema_shapes(schema, error) -> None: - with pytest.raises(RegistryError, match=error): - _validate_strict_schema(schema) - - -def test_registry_accepts_typed_map_schema_and_reports_bad_bindings() -> None: - _validate_strict_schema({"type": "object", "additionalProperties": {"type": "string"}}) - - with pytest.raises(RegistryError, match="Unsupported SDK client binding"): - client_class("missing", "client") - with pytest.raises(RegistryError, match="Unable to load registry file"): - _read_json("missing.json") - - -def test_sdk_schema_helpers_reject_unresolvable_contracts() -> None: - def no_expected_kwargs(self, **kwargs): - return kwargs - - def mismatched_docs(self, **kwargs): - """:param str other: (optional) A different argument.""" - expected_kwargs = ["value"] - return kwargs, expected_kwargs - - assert _split_pair("str, list[int]") == ("str", "list[int]") - assert _enum_from_description("No SDK enum here") is None - assert schema_for_type("Any", SimpleNamespace()) == {} - _preserve_constraints({}, None) - with pytest.raises(ValueError, match="expected_kwargs"): - expected_kwargs(no_expected_kwargs) - with pytest.raises(ValueError, match="does not expose schema maps"): - _model_maps(object) - with pytest.raises(ValueError, match="Unable to resolve OCI SDK type"): - schema_for_type("MissingModel", SimpleNamespace()) - with pytest.raises(ValueError, match="documentation and expected_kwargs differ"): - schema_for_operation(mismatched_docs, SimpleNamespace()) - - -def test_sdk_schema_helpers_build_strict_model_and_polymorphic_contracts() -> None: - models = SimpleNamespace( - _SimpleModel=_SimpleModel, - _PolymorphicModel=_PolymorphicModel, - _IndividualModel=_IndividualModel, - _GroupModel=_GroupModel, - ) - - assert schema_for_type("str", models, 'Allowed values are: "A" "B"') == {"type": "string", "enum": ["A", "B"]} - assert schema_for_type("list[datetime]", models) == { - "type": "array", - "items": {"type": "string", "format": "date-time"}, - } - assert schema_for_type("dict(str, list[bool])", models) == { - "type": "object", - "additionalProperties": {"type": "array", "items": {"type": "boolean"}}, - } - assert schema_for_type("_SimpleModel", models) == { - "type": "object", - "properties": { - "name": {"type": "string"}, - "counts": {"type": "array", "items": {"type": "integer"}}, - "labels": {"type": "object", "additionalProperties": {"type": "boolean"}}, - }, - "additionalProperties": False, - "required": ["name"], - } - assert schema_for_type("_PolymorphicModel", models) == { - "oneOf": [ - { - "type": "object", - "properties": {"target": {"type": "string", "enum": ["INDIVIDUAL"]}, "identifier": {"type": "string"}}, - "additionalProperties": False, - "required": ["identifier", "target"], - }, - { - "type": "object", - "properties": { - "target": {"type": "string", "enum": ["GROUP"]}, - "identifiers": {"type": "array", "items": {"type": "string"}}, - }, - "additionalProperties": False, - "required": ["target"], - }, - ] - } diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_runtime.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_runtime.py deleted file mode 100644 index 50b4b05f..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_runtime.py +++ /dev/null @@ -1,236 +0,0 @@ -""" -Copyright (c) 2026, Oracle and/or its affiliates. -Licensed under the Universal Permissive License v1.0 as shown at -https://oss.oracle.com/licenses/upl. -""" - -from __future__ import annotations - -from types import SimpleNamespace -from unittest.mock import Mock - -import pytest - -from oracle.oci_oracle_db_observability_mcp_server import __project__, __version__ -from oracle.oci_oracle_db_observability_mcp_server import runtime - - -EXPECTED_USER_AGENT = f"{__project__.split('oracle.', 1)[1].removesuffix('-server')}/{__version__}" - - -class FakeClient: - def __init__(self, config, signer=None): - self.config = config - self.signer = signer - - -@pytest.mark.parametrize("auth_type", ["api_key", "security_token", "instance_principal"]) -def test_stdio_client_uses_common_auth_context_and_user_agent(monkeypatch, auth_type) -> None: - runtime._stdio_client.cache_clear() - signer = object() - context = SimpleNamespace( - auth_type=auth_type, - config={"region": "us-phoenix-1"}, - signer=signer, - tenancy_id="tenant", - ) - build_context = Mock(return_value=context) - monkeypatch.setattr(runtime, "build_auth_context", build_context) - monkeypatch.setattr(runtime, "get_access_token", lambda: None) - monkeypatch.setattr(runtime, "client_class", lambda _service, _client: FakeClient) - - client = runtime._client("opsi", "OperationsInsightsClient") - - build_context.assert_called_once_with() - assert client.signer is signer - assert client.config == {"region": "us-phoenix-1", "additional_user_agent": EXPECTED_USER_AGENT} - assert context.auth_type == auth_type - - -def test_http_clients_are_caller_specific_and_not_cached(monkeypatch) -> None: - runtime._stdio_client.cache_clear() - first_signer, second_signer = object(), object() - contexts = { - "first-token": SimpleNamespace(config={"region": "us-chicago-1"}, signer=first_signer), - "second-token": SimpleNamespace(config={"region": "us-chicago-1"}, signer=second_signer), - } - calls: list[str] = [] - - def context_for(token: str): - calls.append(token) - return contexts[token] - - tokens = iter([SimpleNamespace(token="first-token"), SimpleNamespace(token="second-token")]) - monkeypatch.setattr(runtime, "_http_auth", SimpleNamespace(context_for=context_for)) - monkeypatch.setattr(runtime, "get_access_token", lambda: next(tokens)) - monkeypatch.setattr(runtime, "build_auth_context", lambda: pytest.fail("HTTP must not use stdio credentials")) - monkeypatch.setattr(runtime, "client_class", lambda _service, _client: FakeClient) - - first = runtime._client("opsi", "OperationsInsightsClient") - second = runtime._client("opsi", "OperationsInsightsClient") - - assert calls == ["first-token", "second-token"] - assert first is not second - assert first.signer is first_signer - assert second.signer is second_signer - assert first.config["additional_user_agent"] == EXPECTED_USER_AGENT - assert second.config["additional_user_agent"] == EXPECTED_USER_AGENT - - -def test_http_access_token_requires_initialized_policy(monkeypatch) -> None: - monkeypatch.setattr(runtime, "_http_auth", None) - - with pytest.raises(RuntimeError, match="policy has not been initialized"): - runtime._get_config_and_signer(SimpleNamespace(token="caller-token")) - - -def test_identity_bootstrap_uses_http_context_and_tenancy_override(monkeypatch) -> None: - signer = object() - monkeypatch.setattr( - runtime, - "_http_auth", - SimpleNamespace(context_for=lambda token: SimpleNamespace(config={"region": "us-ashburn-1"}, signer=signer)), - ) - monkeypatch.setattr(runtime, "get_access_token", lambda: SimpleNamespace(token="caller-token")) - monkeypatch.setenv("OCI_MCP_TENANCY_ID_OVERRIDE", "ocid1.tenancy.oc1..example") - monkeypatch.setattr(runtime, "client_class", lambda _service, _client: FakeClient) - - client, tenancy_id = runtime.identity_bootstrap_client() - - assert isinstance(client, FakeClient) - assert client.signer is signer - assert tenancy_id == "ocid1.tenancy.oc1..example" - - -def test_identity_bootstrap_requires_tenancy(monkeypatch) -> None: - monkeypatch.setattr(runtime, "get_access_token", lambda: None) - monkeypatch.setattr( - runtime, - "build_auth_context", - lambda: SimpleNamespace(config={}, signer=object(), tenancy_id=None), - ) - monkeypatch.delenv("OCI_MCP_TENANCY_ID_OVERRIDE", raising=False) - - with pytest.raises(ValueError, match="missing tenancy"): - runtime.identity_bootstrap_client() - - -def test_invoke_validates_before_creating_sdk_client(monkeypatch) -> None: - tool = { - "name": "example_tool", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "get_example", - "inputSchema": { - "type": "object", - "properties": {"compartment_id": {"type": "string"}}, - "required": ["compartment_id"], - "additionalProperties": False, - }, - } - monkeypatch.setattr(runtime, "_client", lambda *_args: pytest.fail("client must not be created")) - - with pytest.raises(ValueError, match="compartment_id"): - runtime.invoke_registered_tool(tool, {}) - - -@pytest.mark.parametrize( - ("tool_name", "arguments"), - [ - ("list_database_insights", {"bogus": 1}), - ("list_database_insights", {"database_id": ["ocid1.database.oc1..example", 7]}), - ], -) -def test_registered_tool_rejects_invalid_sdk_schema_arguments_before_client_creation(monkeypatch, tool_name, arguments) -> None: - from oracle.oci_oracle_db_observability_mcp_server.registry import load_registry - - monkeypatch.setattr(runtime, "_client", lambda *_args: pytest.fail("client must not be created")) - - with pytest.raises(ValueError, match="Invalid arguments"): - runtime.invoke_registered_tool(load_registry().get_tool(tool_name), arguments) - - -def test_response_serialization_and_model_helpers(monkeypatch) -> None: - assert runtime.serialize_response(SimpleNamespace(data={"value": "ok"}, headers={"opc-next-page": "page-2"})) == { - "data": {"value": "ok"}, - "nextPage": "page-2", - } - monkeypatch.setattr(runtime.oci.util, "to_dict", lambda _data: (_ for _ in ()).throw(TypeError("bad data"))) - assert runtime.serialize_response(SimpleNamespace(data="fallback", headers={})) == { - "data": "fallback", - "nextPage": None, - } - assert runtime._type_name("ExampleDetails") == "ExampleDetails" - assert runtime._type_name(int) == "int" - assert runtime._type_name(object()) is None - - class Details: - swagger_types = {"child": "ChildDetails"} - - def __init__(self, **kwargs): - self.kwargs = kwargs - - class ChildDetails: - swagger_types = {} - - def __init__(self, **kwargs): - self.kwargs = kwargs - - models = SimpleNamespace(Details=Details, ChildDetails=ChildDetails) - monkeypatch.setattr(runtime.oci.util, "from_dict", lambda model, payload: (model, payload), raising=False) - assert runtime._coerce({"child": {"name": "child"}}, "Details", models) == ( - Details, - {"child": (ChildDetails, {"name": "child"})}, - ) - monkeypatch.setattr(runtime.oci.util, "from_dict", lambda *_args: (_ for _ in ()).throw(ValueError("use constructor"))) - assert runtime._coerce({"name": "details"}, "Details", models).kwargs == {"name": "details"} - assert runtime._coerce({"name": "unchanged"}, "Missing", models) == {"name": "unchanged"} - - -def test_coerce_arguments_uses_sdk_doc_types_for_generated_kwargs(monkeypatch) -> None: - class Details: - swagger_types = {"name": "str"} - - def __init__(self, **kwargs): - self.kwargs = kwargs - - class Client: - def create_example(self, **kwargs): - """:param ExampleDetails details: (required) Request details.""" - return kwargs - - monkeypatch.setattr(runtime, "_models_module", lambda _client: SimpleNamespace(ExampleDetails=Details)) - result = runtime._coerce_arguments(Client(), "create_example", {"details": {"name": "example"}}) - - assert isinstance(result["details"], Details) - assert result["details"].kwargs == {"name": "example"} - - -def test_registered_tool_coerces_arguments_serializes_and_wraps_oci_errors(monkeypatch) -> None: - tool = { - "name": "example_tool", - "service": "opsi", - "client": "OperationsInsightsClient", - "operation": "get_example", - "inputSchema": {"type": "object", "properties": {"value": {"type": "string"}}, "additionalProperties": False}, - } - - class Client: - def get_example(self, value: str): - return SimpleNamespace(data={"value": value}, headers={}) - - monkeypatch.setattr(runtime, "_client", lambda *_args: Client()) - assert runtime.invoke_registered_tool(tool, {"value": "ok"}) == { - "data": {"value": "ok"}, - "nextPage": None, - } - with pytest.raises(ValueError, match="arguments must be a JSON object"): - runtime.invoke_registered_tool(tool, []) - - class FailingClient: - def get_example(self, value: str): - raise RuntimeError("SDK failure") - - monkeypatch.setattr(runtime, "_client", lambda *_args: FailingClient()) - with pytest.raises(RuntimeError, match="OCI operation example_tool failed: SDK failure"): - runtime.invoke_registered_tool(tool, {"value": "ok"}) diff --git a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_server.py b/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_server.py deleted file mode 100644 index 17204a51..00000000 --- a/src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/tests/test_server.py +++ /dev/null @@ -1,38 +0,0 @@ -""" -Copyright (c) 2026, Oracle and/or its affiliates. -Licensed under the Universal Permissive License v1.0 as shown at -https://oss.oracle.com/licenses/upl. -""" - -from __future__ import annotations - -from types import SimpleNamespace - -from oracle.oci_oracle_db_observability_mcp_server import server - - -def test_main_runs_stdio_without_http_environment(monkeypatch) -> None: - calls: list[tuple[tuple, dict]] = [] - monkeypatch.delenv("ORACLE_MCP_HOST", raising=False) - monkeypatch.delenv("ORACLE_MCP_PORT", raising=False) - monkeypatch.setattr(server.mcp, "run", lambda *args, **kwargs: calls.append((args, kwargs))) - - server.main() - - assert calls == [((), {})] - - -def test_main_configures_idcs_http_auth(monkeypatch) -> None: - calls: list[tuple[tuple, dict]] = [] - policy = SimpleNamespace(provider=object()) - monkeypatch.setenv("ORACLE_MCP_HOST", "127.0.0.1") - monkeypatch.setenv("ORACLE_MCP_PORT", "8080") - monkeypatch.setenv("IDCS_REQUIRED_SCOPES", "openid custom.scope") - monkeypatch.setattr(server, "build_idcs_http_auth", lambda scopes: policy) - monkeypatch.setattr(server, "configure_http_auth", lambda actual: calls.append((("policy", actual), {}))) - monkeypatch.setattr(server.mcp, "run", lambda *args, **kwargs: calls.append((args, kwargs))) - - server.main() - - assert server.mcp.auth is policy.provider - assert calls == [(("policy", policy), {}), ((), {"transport": "http", "host": "127.0.0.1", "port": 8080})] diff --git a/src/oci-oracle-db-observability-mcp-server/pyproject.toml b/src/oci-oracle-db-observability-mcp-server/pyproject.toml deleted file mode 100644 index 5760a454..00000000 --- a/src/oci-oracle-db-observability-mcp-server/pyproject.toml +++ /dev/null @@ -1,60 +0,0 @@ -[project] -name = "oracle.oci-db-observability-mcp-server" -version = "0.1.0" -description = "Unified Oracle Database Observability MCP server" -readme = "README.md" -requires-python = ">=3.13" -license = "UPL-1.0" -license-files = ["LICENSE.txt"] -authors = [ - {name = "Oracle MCP", email = "237432095+oracle-mcp@users.noreply.github.com"}, -] -dependencies = [ - "fastmcp==3.4.5", - "oci==2.182.1", - "pydantic==2.13.4", - "jsonschema>=4.25.0,<5.0.0", - "oracle-mcp-common>=0.1.2,<0.2.0", -] - -classifiers = [ - "Operating System :: OS Independent", - "Programming Language :: Python", - "Programming Language :: Python :: 3.13", -] - -[project.scripts] -"oracle.oci-db-observability-mcp-server" = "oracle.oci_oracle_db_observability_mcp_server.server:main" - -[build-system] -requires = ["hatchling"] -build-backend = "hatchling.build" - -[tool.hatch.build.targets.wheel] -packages = ["oracle"] -exclude = ["/oracle/**/tests/**"] - -[dependency-groups] -dev = [ - "openapi-pydantic>=0.5.1", - "pytest>=9.0.3", - "pytest-asyncio>=1.2.0", - "pytest-cov>=7.0.0", - "pyyaml>=6.0.3", -] - -[tool.coverage.run] -omit = [ - "**/__init__.py", - "**/tests/*", - "dist/*", - ".venv/*", -] - -[tool.coverage.report] -omit = [ - "**/__init__.py", - "**/tests/*", -] -precision = 2 -fail_under = 90 diff --git a/src/oci-oracle-db-observability-mcp-server/uv.lock b/src/oci-oracle-db-observability-mcp-server/uv.lock deleted file mode 100644 index f620cf96..00000000 --- a/src/oci-oracle-db-observability-mcp-server/uv.lock +++ /dev/null @@ -1,1462 +0,0 @@ -version = 1 -revision = 2 -requires-python = ">=3.13" - -[[package]] -name = "aiofile" -version = "3.11.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "caio" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/48/41/2fea7e193e061ce54eacc3b7bc0e6a99e4fcff43c78cf0a76dd781ed8334/aiofile-3.11.1.tar.gz", hash = "sha256:1f91912c6643d2a4e49ca4ae3514f0bf3867ce948a36d99a6411b8f4755f4cf9", size = 19342, upload_time = "2026-05-16T08:18:33.538Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/67/cd/0d76dfc5de72bde52f55f53e925c7d152d9c7906634ec1e0cbc7e8d4ad93/aiofile-3.11.1-py3-none-any.whl", hash = "sha256:ce77d14ac07f77bc2b757834a5c129321f3f705c474593deed5ab209079a52c9", size = 20446, upload_time = "2026-05-16T08:18:32.051Z" }, -] - -[[package]] -name = "annotated-types" -version = "0.7.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081, upload_time = "2024-05-20T21:33:25.928Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643, upload_time = "2024-05-20T21:33:24.1Z" }, -] - -[[package]] -name = "anyio" -version = "4.13.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "idna" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/19/14/2c5dd9f512b66549ae92767a9c7b330ae88e1932ca57876909410251fe13/anyio-4.13.0.tar.gz", hash = "sha256:334b70e641fd2221c1505b3890c69882fe4a2df910cba14d97019b90b24439dc", size = 231622, upload_time = "2026-03-24T12:59:09.671Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/da/42/e921fccf5015463e32a3cf6ee7f980a6ed0f395ceeaa45060b61d86486c2/anyio-4.13.0-py3-none-any.whl", hash = "sha256:08b310f9e24a9594186fd75b4f73f4a4152069e3853f1ed8bfbf58369f4ad708", size = 114353, upload_time = "2026-03-24T12:59:08.246Z" }, -] - -[[package]] -name = "attrs" -version = "26.1.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/9a/8e/82a0fe20a541c03148528be8cac2408564a6c9a0cc7e9171802bc1d26985/attrs-26.1.0.tar.gz", hash = "sha256:d03ceb89cb322a8fd706d4fb91940737b6642aa36998fe130a9bc96c985eff32", size = 952055, upload_time = "2026-03-19T14:22:25.026Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/64/b4/17d4b0b2a2dc85a6df63d1157e028ed19f90d4cd97c36717afef2bc2f395/attrs-26.1.0-py3-none-any.whl", hash = "sha256:c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309", size = 67548, upload_time = "2026-03-19T14:22:23.645Z" }, -] - -[[package]] -name = "authlib" -version = "1.7.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "cryptography" }, - { name = "joserfc" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/36/98/7d93f30d029643c0275dbc0bd6d5a6f670661ee6c9a94d93af7ab4887600/authlib-1.7.2.tar.gz", hash = "sha256:2cea25fefcd4e7173bdf1372c0afc265c8034b23a8cd5dcb6a9164b826c64231", size = 176511, upload_time = "2026-05-06T08:10:23.116Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/fb/95/adcb68e20c34162e9135f370d6e31737719c2b6f94bc953fe7ed1f10fe21/authlib-1.7.2-py2.py3-none-any.whl", hash = "sha256:3e1faedc9d87e7d56a164eca3ccb6ace0d61b94abe83e92242f8dc8bba9b4a9f", size = 259548, upload_time = "2026-05-06T08:10:21.436Z" }, -] - -[[package]] -name = "beartype" -version = "0.22.9" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/c7/94/1009e248bbfbab11397abca7193bea6626806be9a327d399810d523a07cb/beartype-0.22.9.tar.gz", hash = "sha256:8f82b54aa723a2848a56008d18875f91c1db02c32ef6a62319a002e3e25a975f", size = 1608866, upload_time = "2025-12-13T06:50:30.72Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/71/cc/18245721fa7747065ab478316c7fea7c74777d07f37ae60db2e84f8172e8/beartype-0.22.9-py3-none-any.whl", hash = "sha256:d16c9bbc61ea14637596c5f6fbff2ee99cbe3573e46a716401734ef50c3060c2", size = 1333658, upload_time = "2025-12-13T06:50:28.266Z" }, -] - -[[package]] -name = "cachetools" -version = "7.1.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/8f/c1/67cfb86aa21144796ff51068326d467fbef8ee42f8d08a3a8a926106cf0c/cachetools-7.1.3.tar.gz", hash = "sha256:135cfe944bc3c1e805505f65dae0bef375a2f96261171ab66c79ef77d0bda39d", size = 45780, upload_time = "2026-05-18T18:21:03.819Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/68/52/8ff5c1a3b2e821ced9b2998fba3ee29aa4525c0bf51e5ee55dd6f61a4ed5/cachetools-7.1.3-py3-none-any.whl", hash = "sha256:9876787e2346e20584d5cca236cb5d49d04e7193de91646f230725b2e1e8b804", size = 16763, upload_time = "2026-05-18T18:21:02.386Z" }, -] - -[[package]] -name = "caio" -version = "0.9.25" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/92/88/b8527e1b00c1811db339a1df8bd1ae49d146fcea9d6a5c40e3a80aaeb38d/caio-0.9.25.tar.gz", hash = "sha256:16498e7f81d1d0f5a4c0ad3f2540e65fe25691376e0a5bd367f558067113ed10", size = 26781, upload_time = "2025-12-26T15:21:36.501Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/31/57/5e6ff127e6f62c9f15d989560435c642144aa4210882f9494204bc892305/caio-0.9.25-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:d6c2a3411af97762a2b03840c3cec2f7f728921ff8adda53d7ea2315a8563451", size = 36979, upload_time = "2025-12-26T15:21:35.484Z" }, - { url = "https://files.pythonhosted.org/packages/a3/9f/f21af50e72117eb528c422d4276cbac11fb941b1b812b182e0a9c70d19c5/caio-0.9.25-cp313-cp313-manylinux2010_x86_64.manylinux2014_x86_64.manylinux_2_12_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0998210a4d5cd5cb565b32ccfe4e53d67303f868a76f212e002a8554692870e6", size = 81900, upload_time = "2025-12-26T15:22:21.919Z" }, - { url = "https://files.pythonhosted.org/packages/9c/12/c39ae2a4037cb10ad5eb3578eb4d5f8c1a2575c62bba675f3406b7ef0824/caio-0.9.25-cp313-cp313-manylinux_2_34_aarch64.whl", hash = "sha256:1a177d4777141b96f175fe2c37a3d96dec7911ed9ad5f02bac38aaa1c936611f", size = 81523, upload_time = "2026-03-04T22:08:25.187Z" }, - { url = "https://files.pythonhosted.org/packages/22/59/f8f2e950eb4f1a5a3883e198dca514b9d475415cb6cd7b78b9213a0dd45a/caio-0.9.25-cp313-cp313-manylinux_2_34_x86_64.whl", hash = "sha256:9ed3cfb28c0e99fec5e208c934e5c157d0866aa9c32aa4dc5e9b6034af6286b7", size = 80243, upload_time = "2026-03-04T22:08:26.449Z" }, - { url = "https://files.pythonhosted.org/packages/69/ca/a08fdc7efdcc24e6a6131a93c85be1f204d41c58f474c42b0670af8c016b/caio-0.9.25-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:fab6078b9348e883c80a5e14b382e6ad6aabbc4429ca034e76e730cf464269db", size = 36978, upload_time = "2025-12-26T15:21:41.055Z" }, - { url = "https://files.pythonhosted.org/packages/5e/6c/d4d24f65e690213c097174d26eda6831f45f4734d9d036d81790a27e7b78/caio-0.9.25-cp314-cp314-manylinux2010_x86_64.manylinux2014_x86_64.manylinux_2_12_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:44a6b58e52d488c75cfaa5ecaa404b2b41cc965e6c417e03251e868ecd5b6d77", size = 81832, upload_time = "2025-12-26T15:22:22.757Z" }, - { url = "https://files.pythonhosted.org/packages/87/a4/e534cf7d2d0e8d880e25dd61e8d921ffcfe15bd696734589826f5a2df727/caio-0.9.25-cp314-cp314-manylinux_2_34_aarch64.whl", hash = "sha256:628a630eb7fb22381dd8e3c8ab7f59e854b9c806639811fc3f4310c6bd711d79", size = 81565, upload_time = "2026-03-04T22:08:27.483Z" }, - { url = "https://files.pythonhosted.org/packages/3f/ed/bf81aeac1d290017e5e5ac3e880fd56ee15e50a6d0353986799d1bc5cfd5/caio-0.9.25-cp314-cp314-manylinux_2_34_x86_64.whl", hash = "sha256:0ba16aa605ccb174665357fc729cf500679c2d94d5f1458a6f0d5ca48f2060a7", size = 80071, upload_time = "2026-03-04T22:08:28.751Z" }, - { url = "https://files.pythonhosted.org/packages/86/93/1f76c8d1bafe3b0614e06b2195784a3765bbf7b0a067661af9e2dd47fc33/caio-0.9.25-py3-none-any.whl", hash = "sha256:06c0bb02d6b929119b1cfbe1ca403c768b2013a369e2db46bfa2a5761cf82e40", size = 19087, upload_time = "2025-12-26T15:22:00.221Z" }, -] - -[[package]] -name = "certifi" -version = "2026.5.20" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f3/ce/ee2ecad540810a79593028e88299baeae54d346cc7a0d94b6199988b89b1/certifi-2026.5.20.tar.gz", hash = "sha256:69dea482ab64caa7b9f6aba1c6bf48bb6a5448d1c0f1b17ab42ad8c763a5344d", size = 135422, upload_time = "2026-05-20T11:46:50.073Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/59/8c/57e832b7af6d7c5abe66eb3fbe3a3a32f4d11ea23a1aa7131371035be991/certifi-2026.5.20-py3-none-any.whl", hash = "sha256:3c52e209ba0a4ad7aebe60436a4ab349c39e1e602e8c134221e546902ad25897", size = 134134, upload_time = "2026-05-20T11:46:48.578Z" }, -] - -[[package]] -name = "cffi" -version = "2.0.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pycparser", marker = "implementation_name != 'PyPy'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/eb/56/b1ba7935a17738ae8453301356628e8147c79dbb825bcbc73dc7401f9846/cffi-2.0.0.tar.gz", hash = "sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529", size = 523588, upload_time = "2025-09-08T23:24:04.541Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/4b/8d/a0a47a0c9e413a658623d014e91e74a50cdd2c423f7ccfd44086ef767f90/cffi-2.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:00bdf7acc5f795150faa6957054fbbca2439db2f775ce831222b66f192f03beb", size = 185230, upload_time = "2025-09-08T23:23:00.879Z" }, - { url = "https://files.pythonhosted.org/packages/4a/d2/a6c0296814556c68ee32009d9c2ad4f85f2707cdecfd7727951ec228005d/cffi-2.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:45d5e886156860dc35862657e1494b9bae8dfa63bf56796f2fb56e1679fc0bca", size = 181043, upload_time = "2025-09-08T23:23:02.231Z" }, - { url = "https://files.pythonhosted.org/packages/b0/1e/d22cc63332bd59b06481ceaac49d6c507598642e2230f201649058a7e704/cffi-2.0.0-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:07b271772c100085dd28b74fa0cd81c8fb1a3ba18b21e03d7c27f3436a10606b", size = 212446, upload_time = "2025-09-08T23:23:03.472Z" }, - { url = "https://files.pythonhosted.org/packages/a9/f5/a2c23eb03b61a0b8747f211eb716446c826ad66818ddc7810cc2cc19b3f2/cffi-2.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d48a880098c96020b02d5a1f7d9251308510ce8858940e6fa99ece33f610838b", size = 220101, upload_time = "2025-09-08T23:23:04.792Z" }, - { url = "https://files.pythonhosted.org/packages/f2/7f/e6647792fc5850d634695bc0e6ab4111ae88e89981d35ac269956605feba/cffi-2.0.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f93fd8e5c8c0a4aa1f424d6173f14a892044054871c771f8566e4008eaa359d2", size = 207948, upload_time = "2025-09-08T23:23:06.127Z" }, - { url = "https://files.pythonhosted.org/packages/cb/1e/a5a1bd6f1fb30f22573f76533de12a00bf274abcdc55c8edab639078abb6/cffi-2.0.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:dd4f05f54a52fb558f1ba9f528228066954fee3ebe629fc1660d874d040ae5a3", size = 206422, upload_time = "2025-09-08T23:23:07.753Z" }, - { url = "https://files.pythonhosted.org/packages/98/df/0a1755e750013a2081e863e7cd37e0cdd02664372c754e5560099eb7aa44/cffi-2.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c8d3b5532fc71b7a77c09192b4a5a200ea992702734a2e9279a37f2478236f26", size = 219499, upload_time = "2025-09-08T23:23:09.648Z" }, - { url = "https://files.pythonhosted.org/packages/50/e1/a969e687fcf9ea58e6e2a928ad5e2dd88cc12f6f0ab477e9971f2309b57c/cffi-2.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d9b29c1f0ae438d5ee9acb31cadee00a58c46cc9c0b2f9038c6b0b3470877a8c", size = 222928, upload_time = "2025-09-08T23:23:10.928Z" }, - { url = "https://files.pythonhosted.org/packages/36/54/0362578dd2c9e557a28ac77698ed67323ed5b9775ca9d3fe73fe191bb5d8/cffi-2.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6d50360be4546678fc1b79ffe7a66265e28667840010348dd69a314145807a1b", size = 221302, upload_time = "2025-09-08T23:23:12.42Z" }, - { url = "https://files.pythonhosted.org/packages/eb/6d/bf9bda840d5f1dfdbf0feca87fbdb64a918a69bca42cfa0ba7b137c48cb8/cffi-2.0.0-cp313-cp313-win32.whl", hash = "sha256:74a03b9698e198d47562765773b4a8309919089150a0bb17d829ad7b44b60d27", size = 172909, upload_time = "2025-09-08T23:23:14.32Z" }, - { url = "https://files.pythonhosted.org/packages/37/18/6519e1ee6f5a1e579e04b9ddb6f1676c17368a7aba48299c3759bbc3c8b3/cffi-2.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:19f705ada2530c1167abacb171925dd886168931e0a7b78f5bffcae5c6b5be75", size = 183402, upload_time = "2025-09-08T23:23:15.535Z" }, - { url = "https://files.pythonhosted.org/packages/cb/0e/02ceeec9a7d6ee63bb596121c2c8e9b3a9e150936f4fbef6ca1943e6137c/cffi-2.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:256f80b80ca3853f90c21b23ee78cd008713787b1b1e93eae9f3d6a7134abd91", size = 177780, upload_time = "2025-09-08T23:23:16.761Z" }, - { url = "https://files.pythonhosted.org/packages/92/c4/3ce07396253a83250ee98564f8d7e9789fab8e58858f35d07a9a2c78de9f/cffi-2.0.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:fc33c5141b55ed366cfaad382df24fe7dcbc686de5be719b207bb248e3053dc5", size = 185320, upload_time = "2025-09-08T23:23:18.087Z" }, - { url = "https://files.pythonhosted.org/packages/59/dd/27e9fa567a23931c838c6b02d0764611c62290062a6d4e8ff7863daf9730/cffi-2.0.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c654de545946e0db659b3400168c9ad31b5d29593291482c43e3564effbcee13", size = 181487, upload_time = "2025-09-08T23:23:19.622Z" }, - { url = "https://files.pythonhosted.org/packages/d6/43/0e822876f87ea8a4ef95442c3d766a06a51fc5298823f884ef87aaad168c/cffi-2.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:24b6f81f1983e6df8db3adc38562c83f7d4a0c36162885ec7f7b77c7dcbec97b", size = 220049, upload_time = "2025-09-08T23:23:20.853Z" }, - { url = "https://files.pythonhosted.org/packages/b4/89/76799151d9c2d2d1ead63c2429da9ea9d7aac304603de0c6e8764e6e8e70/cffi-2.0.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:12873ca6cb9b0f0d3a0da705d6086fe911591737a59f28b7936bdfed27c0d47c", size = 207793, upload_time = "2025-09-08T23:23:22.08Z" }, - { url = "https://files.pythonhosted.org/packages/bb/dd/3465b14bb9e24ee24cb88c9e3730f6de63111fffe513492bf8c808a3547e/cffi-2.0.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:d9b97165e8aed9272a6bb17c01e3cc5871a594a446ebedc996e2397a1c1ea8ef", size = 206300, upload_time = "2025-09-08T23:23:23.314Z" }, - { url = "https://files.pythonhosted.org/packages/47/d9/d83e293854571c877a92da46fdec39158f8d7e68da75bf73581225d28e90/cffi-2.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:afb8db5439b81cf9c9d0c80404b60c3cc9c3add93e114dcae767f1477cb53775", size = 219244, upload_time = "2025-09-08T23:23:24.541Z" }, - { url = "https://files.pythonhosted.org/packages/2b/0f/1f177e3683aead2bb00f7679a16451d302c436b5cbf2505f0ea8146ef59e/cffi-2.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:737fe7d37e1a1bffe70bd5754ea763a62a066dc5913ca57e957824b72a85e205", size = 222828, upload_time = "2025-09-08T23:23:26.143Z" }, - { url = "https://files.pythonhosted.org/packages/c6/0f/cafacebd4b040e3119dcb32fed8bdef8dfe94da653155f9d0b9dc660166e/cffi-2.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:38100abb9d1b1435bc4cc340bb4489635dc2f0da7456590877030c9b3d40b0c1", size = 220926, upload_time = "2025-09-08T23:23:27.873Z" }, - { url = "https://files.pythonhosted.org/packages/3e/aa/df335faa45b395396fcbc03de2dfcab242cd61a9900e914fe682a59170b1/cffi-2.0.0-cp314-cp314-win32.whl", hash = "sha256:087067fa8953339c723661eda6b54bc98c5625757ea62e95eb4898ad5e776e9f", size = 175328, upload_time = "2025-09-08T23:23:44.61Z" }, - { url = "https://files.pythonhosted.org/packages/bb/92/882c2d30831744296ce713f0feb4c1cd30f346ef747b530b5318715cc367/cffi-2.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:203a48d1fb583fc7d78a4c6655692963b860a417c0528492a6bc21f1aaefab25", size = 185650, upload_time = "2025-09-08T23:23:45.848Z" }, - { url = "https://files.pythonhosted.org/packages/9f/2c/98ece204b9d35a7366b5b2c6539c350313ca13932143e79dc133ba757104/cffi-2.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:dbd5c7a25a7cb98f5ca55d258b103a2054f859a46ae11aaf23134f9cc0d356ad", size = 180687, upload_time = "2025-09-08T23:23:47.105Z" }, - { url = "https://files.pythonhosted.org/packages/3e/61/c768e4d548bfa607abcda77423448df8c471f25dbe64fb2ef6d555eae006/cffi-2.0.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:9a67fc9e8eb39039280526379fb3a70023d77caec1852002b4da7e8b270c4dd9", size = 188773, upload_time = "2025-09-08T23:23:29.347Z" }, - { url = "https://files.pythonhosted.org/packages/2c/ea/5f76bce7cf6fcd0ab1a1058b5af899bfbef198bea4d5686da88471ea0336/cffi-2.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7a66c7204d8869299919db4d5069a82f1561581af12b11b3c9f48c584eb8743d", size = 185013, upload_time = "2025-09-08T23:23:30.63Z" }, - { url = "https://files.pythonhosted.org/packages/be/b4/c56878d0d1755cf9caa54ba71e5d049479c52f9e4afc230f06822162ab2f/cffi-2.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7cc09976e8b56f8cebd752f7113ad07752461f48a58cbba644139015ac24954c", size = 221593, upload_time = "2025-09-08T23:23:31.91Z" }, - { url = "https://files.pythonhosted.org/packages/e0/0d/eb704606dfe8033e7128df5e90fee946bbcb64a04fcdaa97321309004000/cffi-2.0.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:92b68146a71df78564e4ef48af17551a5ddd142e5190cdf2c5624d0c3ff5b2e8", size = 209354, upload_time = "2025-09-08T23:23:33.214Z" }, - { url = "https://files.pythonhosted.org/packages/d8/19/3c435d727b368ca475fb8742ab97c9cb13a0de600ce86f62eab7fa3eea60/cffi-2.0.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:b1e74d11748e7e98e2f426ab176d4ed720a64412b6a15054378afdb71e0f37dc", size = 208480, upload_time = "2025-09-08T23:23:34.495Z" }, - { url = "https://files.pythonhosted.org/packages/d0/44/681604464ed9541673e486521497406fadcc15b5217c3e326b061696899a/cffi-2.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:28a3a209b96630bca57cce802da70c266eb08c6e97e5afd61a75611ee6c64592", size = 221584, upload_time = "2025-09-08T23:23:36.096Z" }, - { url = "https://files.pythonhosted.org/packages/25/8e/342a504ff018a2825d395d44d63a767dd8ebc927ebda557fecdaca3ac33a/cffi-2.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:7553fb2090d71822f02c629afe6042c299edf91ba1bf94951165613553984512", size = 224443, upload_time = "2025-09-08T23:23:37.328Z" }, - { url = "https://files.pythonhosted.org/packages/e1/5e/b666bacbbc60fbf415ba9988324a132c9a7a0448a9a8f125074671c0f2c3/cffi-2.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:6c6c373cfc5c83a975506110d17457138c8c63016b563cc9ed6e056a82f13ce4", size = 223437, upload_time = "2025-09-08T23:23:38.945Z" }, - { url = "https://files.pythonhosted.org/packages/a0/1d/ec1a60bd1a10daa292d3cd6bb0b359a81607154fb8165f3ec95fe003b85c/cffi-2.0.0-cp314-cp314t-win32.whl", hash = "sha256:1fc9ea04857caf665289b7a75923f2c6ed559b8298a1b8c49e59f7dd95c8481e", size = 180487, upload_time = "2025-09-08T23:23:40.423Z" }, - { url = "https://files.pythonhosted.org/packages/bf/41/4c1168c74fac325c0c8156f04b6749c8b6a8f405bbf91413ba088359f60d/cffi-2.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:d68b6cef7827e8641e8ef16f4494edda8b36104d79773a334beaa1e3521430f6", size = 191726, upload_time = "2025-09-08T23:23:41.742Z" }, - { url = "https://files.pythonhosted.org/packages/ae/3a/dbeec9d1ee0844c679f6bb5d6ad4e9f198b1224f4e7a32825f47f6192b0c/cffi-2.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0a1527a803f0a659de1af2e1fd700213caba79377e27e4693648c2923da066f9", size = 184195, upload_time = "2025-09-08T23:23:43.004Z" }, -] - -[[package]] -name = "circuitbreaker" -version = "2.1.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload_time = "2025-03-31T08:12:08.963Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload_time = "2025-03-31T08:12:07.802Z" }, -] - -[[package]] -name = "click" -version = "8.4.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "colorama", marker = "sys_platform == 'win32'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/23/e4/796662cd90cf80e3a363c99db2b88e0e394b988a575f60a17e16440cd011/click-8.4.0.tar.gz", hash = "sha256:638f1338fe1235c8f4e008e4a8a254fb5c5fbdcbb40ece3c9142ebb78e792973", size = 350843, upload_time = "2026-05-17T00:47:58.425Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ee/ae/8e92f8058baf87f6c7d86ee7e457668690195cc77efedb8d3797a06e3940/click-8.4.0-py3-none-any.whl", hash = "sha256:40c50b7c6c6adac2823d411041ec84f3f103f1b280d5e9ce0d7f998995832f81", size = 116147, upload_time = "2026-05-17T00:47:56.842Z" }, -] - -[[package]] -name = "colorama" -version = "0.4.6" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload_time = "2022-10-25T02:36:22.414Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload_time = "2022-10-25T02:36:20.889Z" }, -] - -[[package]] -name = "coverage" -version = "7.14.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/23/7f/d0720730a397a999ffc0fd3f5bebef347338e3a47b727da66fbb228e2ff2/coverage-7.14.0.tar.gz", hash = "sha256:057a6af2f160a85384cde4ab36f0d2777bae1057bae255f95413cdd382aa5c74", size = 919489, upload_time = "2026-05-10T18:02:31.397Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/6b/76/b7c66ee3c66e1b0f9d894c8125983aa0c03fb2336f2fd16559f9c966157f/coverage-7.14.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f2bbb8254370eb4c628ff3d6fa8a7f74ddc40565394d4f7ab791d1fe568e37ef", size = 219990, upload_time = "2026-05-10T18:00:38.887Z" }, - { url = "https://files.pythonhosted.org/packages/b3/af/e567cbad5ba69c013a50146dfa886dc7193361fda77521f51274ff620e1b/coverage-7.14.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:23b81107f46d3f21d0cbce30664fcec0f5d9f585638a67081750f99738f6bf66", size = 220365, upload_time = "2026-05-10T18:00:40.864Z" }, - { url = "https://files.pythonhosted.org/packages/44/6f/9ad575d505b4d805b254febc8a5b338a2efe278f8786e56ff1cb8413f9c3/coverage-7.14.0-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:22a7e06a5f11a757cdfe79018e9095f9f69ae283c5cd8123774c788deec8717b", size = 251363, upload_time = "2026-05-10T18:00:42.489Z" }, - { url = "https://files.pythonhosted.org/packages/6f/5f/b5370068b2f57787454592ed7dcd1002f0f1703b7db1fa30f6a325a4ca6e/coverage-7.14.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:9d1aa57a1dc8e05bdc42e81c5d671d849577aeedf279f4c449d6d286f9ed88ca", size = 253961, upload_time = "2026-05-10T18:00:44.079Z" }, - { url = "https://files.pythonhosted.org/packages/29/1e/51adf17738976e8f2b85ddef7b7aa12a0838b056c92f175941d8862767c1/coverage-7.14.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:90c1a51bcfddf645b3bb7ec333d9e94393a8e94f55642380fa8a9a5a9e636cb7", size = 255193, upload_time = "2026-05-10T18:00:45.623Z" }, - { url = "https://files.pythonhosted.org/packages/9e/7b/5bfd7ac1df3b881c2ac7a5cbc99c7609e6296c402f5ef587cd81c6f355b3/coverage-7.14.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a841fae2fadcae4f438d43b6ccc4aac2ad609f47cdb6cfdce60cbb3fe5ca7bc2", size = 257326, upload_time = "2026-05-10T18:00:47.173Z" }, - { url = "https://files.pythonhosted.org/packages/7d/38/1d37d316b174fad3843a1d76dbdfe4398771c9ecd0515935dd9ece9cd627/coverage-7.14.0-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c79d2319cabef1fe8e86df73371126931550804738f78ad7d31e3aad85a67367", size = 251582, upload_time = "2026-05-10T18:00:49.152Z" }, - { url = "https://files.pythonhosted.org/packages/34/46/746704f95980ba220214e1a41e18cec5aea80a898eaa53c51bf2d645ff36/coverage-7.14.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1b23b0c6f0b1db6ad769b7050c8b641c0bf215ded26c1816955b17b7f26edfa9", size = 253325, upload_time = "2026-05-10T18:00:51.252Z" }, - { url = "https://files.pythonhosted.org/packages/e1/b9/bbe87206d9687b192352f893797825b5f5b15ecd3aa9c68fbff0c074d77b/coverage-7.14.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:55d3089079ce181a4566b1065ab28d2575eb76d8ac8f81f4fcda2bf037fee087", size = 251291, upload_time = "2026-05-10T18:00:52.816Z" }, - { url = "https://files.pythonhosted.org/packages/46/57/b8cdb12ac0d73ef0243218bd5e22c9df8f92edab8018213a86aec67c5324/coverage-7.14.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:49c005cba1e2f9677fb2845dcdf9a2e72a52a17d63e8231aaaae35d9f50215ef", size = 255448, upload_time = "2026-05-10T18:00:54.548Z" }, - { url = "https://files.pythonhosted.org/packages/1f/d4/5002019538b2036ce3c84340f54d2fd5100d55b0a6b0894eee56128d03c7/coverage-7.14.0-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:9117377b823daa28aa8635fbb08cda1cd6be3d7143257345459559aeef852d52", size = 251110, upload_time = "2026-05-10T18:00:56.122Z" }, - { url = "https://files.pythonhosted.org/packages/37/53/20c5009477660f084e6ed60bc02a91894b8e234e617e86ecfd9aaf78e27b/coverage-7.14.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7b79d646cf46d5cf9a9f40281d4441df5849e445726e369006d2b117710b33fe", size = 252885, upload_time = "2026-05-10T18:00:57.967Z" }, - { url = "https://files.pythonhosted.org/packages/ae/ab/3cf6427ac9c1f1db747dbb1ce71dde47984876d4c2cfd018a3fef0a78d4d/coverage-7.14.0-cp313-cp313-win32.whl", hash = "sha256:fb609b3658479e33f9516d46f1a89dbb9b6c261366e3a11844a96ec487533dae", size = 222539, upload_time = "2026-05-10T18:00:59.581Z" }, - { url = "https://files.pythonhosted.org/packages/8f/b8/9228523e80321c2cb4880d1f589bc0171f2f71432c35118ad04dc01decce/coverage-7.14.0-cp313-cp313-win_amd64.whl", hash = "sha256:0773d8329cf32b6fd222e4b52622c61fe8d503eb966cfc8d3c3c10c96266d50e", size = 223344, upload_time = "2026-05-10T18:01:01.531Z" }, - { url = "https://files.pythonhosted.org/packages/a3/99/118daa192f95e3a6cb2740100fbf8797cda1734b4134ef0b5d501a7fa8f3/coverage-7.14.0-cp313-cp313-win_arm64.whl", hash = "sha256:b4e26a0f1b696faf283bffe5b8569e44e336c582439df5d53281ab89ee0cba96", size = 221966, upload_time = "2026-05-10T18:01:03.16Z" }, - { url = "https://files.pythonhosted.org/packages/e6/f1/a46cc0c013be170216253184a32366d7cbdb9252feaec866b05c2d12a894/coverage-7.14.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:953f521ca9445300397e65fda3dca58b2dbd68fee983777420b57ac3c77e9f90", size = 220679, upload_time = "2026-05-10T18:01:05.058Z" }, - { url = "https://files.pythonhosted.org/packages/64/8c/9c30a3d311a34177fa432995be7fbfc64477d8bac5630bd38055b1c9b424/coverage-7.14.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:98af83fd65ae24b1fdd03aaead967a9f523bcd2f1aab2d4f3ffda65bb568a6f1", size = 221033, upload_time = "2026-05-10T18:01:07.002Z" }, - { url = "https://files.pythonhosted.org/packages/9a/cd/3fb5e06c3badefd0c1b47e2044fdca67f8220a4ec2e7fcfb476aa0a67c6c/coverage-7.14.0-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:668b92e6958c4db7cf92e81caac328dfbbdbb215db2850ad28f0cbe1eea0bfbd", size = 262333, upload_time = "2026-05-10T18:01:08.903Z" }, - { url = "https://files.pythonhosted.org/packages/a8/e6/fbc322325c7294d3e22c1ad6b79e45d0806b25228c8e5842aed6d8169aa7/coverage-7.14.0-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:9fbd898551762dea00d3fef2b1c4f99afd2c6a3ff952ea07d60a9bd5ed4f34bc", size = 264410, upload_time = "2026-05-10T18:01:10.531Z" }, - { url = "https://files.pythonhosted.org/packages/08/92/c497b264bec1673c47cc77e26f760fcda4654cabf1f39546d1a23a3b8c35/coverage-7.14.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:68af363c07ecd8d4b7d4043d85cb376d7d227eceb54e5323ee45da73dbd3e426", size = 266836, upload_time = "2026-05-10T18:01:12.19Z" }, - { url = "https://files.pythonhosted.org/packages/78/fc/045da320987f401af5d2815d351e8aa799aec859f60e29f445e3089eeedb/coverage-7.14.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6e57054a583da8ac55edf24117ea4c9133032cfc4cf72aa2d48c1e5d4b52f899", size = 267974, upload_time = "2026-05-10T18:01:13.926Z" }, - { url = "https://files.pythonhosted.org/packages/1b/ae/227b1e379497fb7a4fc3286e620f80c8a1e7cec66d45695a01639eb1af65/coverage-7.14.0-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:cc3499459bbcdd51a65b64c35ab7ed2764eaf3cba826e0df3f1d7fe2e102b70b", size = 261578, upload_time = "2026-05-10T18:01:15.564Z" }, - { url = "https://files.pythonhosted.org/packages/a0/f5/3570342900f2acea31d33ff1590c5d8bac1a8e1a2e1c6d34a5d5e61de681/coverage-7.14.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:45899ec2138a4346ed34d601dedf5076fb74edf2d1dd9dc76a78e82397edee90", size = 264394, upload_time = "2026-05-10T18:01:17.607Z" }, - { url = "https://files.pythonhosted.org/packages/16/29/de1bbc01c935b28f89b1dc3db85b011c055e843a8e5e3b83141c3f80af7f/coverage-7.14.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:8767486808c436f05b23ab98eb963fb29185e32a9357a166971685cb3459900f", size = 262022, upload_time = "2026-05-10T18:01:19.304Z" }, - { url = "https://files.pythonhosted.org/packages/35/95/f53890b0bf2fc10ab168e05d38869215e73ca24c4cb521c3bb0eb62fe16b/coverage-7.14.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:a3b5ddfd6aa7ddad53ee3edb231e88a2151507a43229b7d71b953916deca127d", size = 265732, upload_time = "2026-05-10T18:01:21.494Z" }, - { url = "https://files.pythonhosted.org/packages/ed/ea/c919e259081dd2bdf0e43b87209709ba7ec2e4117c2a7f5185379c43463c/coverage-7.14.0-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:63df0fe568e698e1045792399f8ab6da3a6c2dce3182813fb92afa2641087b47", size = 260921, upload_time = "2026-05-10T18:01:23.533Z" }, - { url = "https://files.pythonhosted.org/packages/1a/2c/c2831889705a81dc5d1c6ca12e4d8e9b95dfc146d153488a6c0ea685d28e/coverage-7.14.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:827d6397dbd95144939b18f89edf31f63e1f99633e8d5f32f22ba8bdda567477", size = 263109, upload_time = "2026-05-10T18:01:25.165Z" }, - { url = "https://files.pythonhosted.org/packages/5a/a9/2fcae5003cac3d63fe344d2166243c2756935f48420863c5272b240d550b/coverage-7.14.0-cp313-cp313t-win32.whl", hash = "sha256:7bf43e000d24012599b879791cff41589af90674722421ef11b11a5431920bab", size = 223212, upload_time = "2026-05-10T18:01:27.157Z" }, - { url = "https://files.pythonhosted.org/packages/3f/bb/18e94d7b14b9b398164197114a587a04ab7c9fdbe1d237eef57311c5e883/coverage-7.14.0-cp313-cp313t-win_amd64.whl", hash = "sha256:3f5549365af25d770e06b1f8f5682d9a5637d06eb494db91c6fa75d3950cc917", size = 224272, upload_time = "2026-05-10T18:01:29.107Z" }, - { url = "https://files.pythonhosted.org/packages/db/56/4f14fad782b035c81c4ffd09159e7103d42bb1d93ac8496d04b90a11b7da/coverage-7.14.0-cp313-cp313t-win_arm64.whl", hash = "sha256:6d160217ec6fe890f16ad3a9531761589443749e448f91986c972714fad361c8", size = 222530, upload_time = "2026-05-10T18:01:31.151Z" }, - { url = "https://files.pythonhosted.org/packages/1c/18/b9a6586d73992807c26f9a5f274131be3d76b56b18a82b9392e2a25d2e45/coverage-7.14.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:9aed9fa983514ca032790f3fe0d1c0e42ca7e16b42432af1706b50a9a46bef5d", size = 220036, upload_time = "2026-05-10T18:01:33.057Z" }, - { url = "https://files.pythonhosted.org/packages/f3/9b/4165a1d56ddc302a0e2d518fd9d412a4fd0b57562618c78c5f21c57194f5/coverage-7.14.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:ba3b8390db29296dbbf49e91b6fe08f990743a90c8f447ba4c2ffc29670dfa63", size = 220368, upload_time = "2026-05-10T18:01:34.705Z" }, - { url = "https://files.pythonhosted.org/packages/69/aa/c12e52a5ba148d9995229d557e3be6e554fe469addc0e9241b2f0956d8ea/coverage-7.14.0-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:3a5d8e876dfa2f102e970b183863d6dedd023d3c0eeca1fe7a9787bc5f28b212", size = 251417, upload_time = "2026-05-10T18:01:36.949Z" }, - { url = "https://files.pythonhosted.org/packages/d7/51/ec641c26e6dca1b25a7d2035ba6ecb7c884ef1a100a9e42fbe4ce4405139/coverage-7.14.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:5ebb8f4614a3787d567e610bbfdf96a4798dd69a1afb1bd8ad228d4111fe6ff3", size = 253924, upload_time = "2026-05-10T18:01:38.985Z" }, - { url = "https://files.pythonhosted.org/packages/33/c4/59c3de0bd1b538824173fd518fed51c1ce740ca5ed68e74545983f4053a9/coverage-7.14.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b9bf47223dd8db3d4c4b2e443b02bace480d428f0822c3f991600448a176c97", size = 255269, upload_time = "2026-05-10T18:01:40.957Z" }, - { url = "https://files.pythonhosted.org/packages/7b/a9/36dfa153a62040296f6e7febfdb20a5720622f6ef5a81a41e8237b9a5344/coverage-7.14.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:3485a836550b303d006d57cc06e3d5afaabc642c77050b7c985a97b13e3776b8", size = 257583, upload_time = "2026-05-10T18:01:42.607Z" }, - { url = "https://files.pythonhosted.org/packages/26/7b/cc2c048d4114d9ab1c2409e9ee365e5ae10736df6dffcfc9444effa6c708/coverage-7.14.0-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3e7e88110bae996d199d1693ca8ec3fd52441d426401ae963437598667b4c5eb", size = 251434, upload_time = "2026-05-10T18:01:44.537Z" }, - { url = "https://files.pythonhosted.org/packages/ee/df/6770eaa576e604575e9a78055313250faef5faa84bd6f71a39fece519c43/coverage-7.14.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:15228a6800ce7bdf1b74800595e56db7138cecb338fdbf044806e10dcf182dfe", size = 253280, upload_time = "2026-05-10T18:01:46.175Z" }, - { url = "https://files.pythonhosted.org/packages/ad/9e/1c0264514a3f98259a6d64765a397b2c8373e3ba59ee722a4802d3ec0c61/coverage-7.14.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:9d26ac7f5398bafc5b57421ad994e8a4749e8a7a0e62d05ec7d53014d5963bfa", size = 251241, upload_time = "2026-05-10T18:01:48.732Z" }, - { url = "https://files.pythonhosted.org/packages/64/16/4efdf3e3c4079cdbf0ece56a2fea872df9e8a3e15a13a0af4400e1075944/coverage-7.14.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:2fb73254ff43c911c967a899e1359bc5049b4b115d6e8fbdde4937d0a2246cd5", size = 255516, upload_time = "2026-05-10T18:01:50.819Z" }, - { url = "https://files.pythonhosted.org/packages/93/69/b1de96346603881b3d1bc8d6447c83200e1c9700ffbaff926ba01ff5724c/coverage-7.14.0-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:454a380af72c6adada298ed270d38c7a391288198dbfb8467f786f588751a90c", size = 251059, upload_time = "2026-05-10T18:01:52.773Z" }, - { url = "https://files.pythonhosted.org/packages/a4/66/2881853e0363a5e0a724d1103e53650795367471b6afb234f8b49e713bc6/coverage-7.14.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:65c86fb646d2bd2972e96bd1a8b45817ed907cee68655d6295fe7ec031d04cca", size = 252716, upload_time = "2026-05-10T18:01:54.506Z" }, - { url = "https://files.pythonhosted.org/packages/55/5c/0d3305d002c41dcde873dbe456491e663dc55152ca526b630b5c47efd62f/coverage-7.14.0-cp314-cp314-win32.whl", hash = "sha256:6a6516b02a6101398e19a3f44820f69bab2590697f7def4331f668b14adaf828", size = 222788, upload_time = "2026-05-10T18:01:56.487Z" }, - { url = "https://files.pythonhosted.org/packages/f9/58/6e1b8f52fdc3184b47dc5037f5070d83a3d11042db1594b02d2a44d786c8/coverage-7.14.0-cp314-cp314-win_amd64.whl", hash = "sha256:45e0f79d8351fa76e256716df91eab12890d32678b9590df7ae1042e4bd4cf5d", size = 223600, upload_time = "2026-05-10T18:01:58.497Z" }, - { url = "https://files.pythonhosted.org/packages/00/70/a18c408e674bc26281cadaedc7351f929bd2094e191e4b15271c30b084cc/coverage-7.14.0-cp314-cp314-win_arm64.whl", hash = "sha256:4b899594a8b2d81e5cc064a0d7f9cac2081fed91049456cae7676787e41549c9", size = 222168, upload_time = "2026-05-10T18:02:00.411Z" }, - { url = "https://files.pythonhosted.org/packages/3d/89/2681f071d238b62aff8dfc2ab44fc24cfdb38d1c01f391a80522ff5d3a16/coverage-7.14.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:f580f8c80acd94ac72e863efe2cab791d8c38d153e0b463b92dfa000d5c84cd1", size = 220766, upload_time = "2026-05-10T18:02:02.313Z" }, - { url = "https://files.pythonhosted.org/packages/bd/c7/c987babafd9207ffa1995e1ef1f9b26762cf4963aa768a66b6f0501e4616/coverage-7.14.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:a2bd259c442cd43c49b30fbafc51776eb19ea396faf159d26a83e6a0a5f13b0c", size = 221035, upload_time = "2026-05-10T18:02:04.017Z" }, - { url = "https://files.pythonhosted.org/packages/5a/e9/d6a5ac3b333088143d6fc877d398a9a674dc03124a2f776e131f03864823/coverage-7.14.0-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:a706b908dfa85538863504c624b237a3cc34232bf403c057414ebfdb3b4d9f84", size = 262405, upload_time = "2026-05-10T18:02:05.915Z" }, - { url = "https://files.pythonhosted.org/packages/38/b1/e70838d29a7c08e22d44398a46db90815bbcbf28de06992bd9210d1a8d8e/coverage-7.14.0-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:7333cd944ee4393b9b3d3c1b598c936d4fc8d70573a4c7dacfec5590dd50e436", size = 264530, upload_time = "2026-05-10T18:02:07.582Z" }, - { url = "https://files.pythonhosted.org/packages/6b/73/5c31ef97763288d03d9995152b96d5475b527c63d91c84b01caea894b83a/coverage-7.14.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0f162bc9a15b82d947b02651b0c7e1609d6f7a8735ca330cfadec8481dd97d5a", size = 266932, upload_time = "2026-05-10T18:02:09.401Z" }, - { url = "https://files.pythonhosted.org/packages/e1/76/dd56d80f29c5f05b4d76f7e7c6d47cafacae017189c75c5759d24f9ff0cc/coverage-7.14.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:362cb78e01a5dc82009d88004cf60f2e6b6d6fcbfdec05b05af73b0abf40118f", size = 268062, upload_time = "2026-05-10T18:02:11.399Z" }, - { url = "https://files.pythonhosted.org/packages/6e/c7/27ba85cd5b95614f159ff93ebff1901584a8d192e2e5e24c4943a7453f59/coverage-7.14.0-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:acebd068fca5512c3a6fde9c045f901613478781a73f0e82b307b214daef23fb", size = 261504, upload_time = "2026-05-10T18:02:13.257Z" }, - { url = "https://files.pythonhosted.org/packages/13/2e/e8149f60ab5d5684c6eee881bdf34b127115cddbb958b196768dd9d63473/coverage-7.14.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:29fe3da551dface75deb2ccbf87b6b66e2e7ef38f6d89050b428be94afff3490", size = 264398, upload_time = "2026-05-10T18:02:15.063Z" }, - { url = "https://files.pythonhosted.org/packages/d9/7f/1261b025285323225f4b4abffa5a643649dfd67e25ddca7ebcbdea3b7cb3/coverage-7.14.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:b4cc4fce8672fffcb09b0eafc167b396b3ba53c4a7230f54b7aaffbf6c835fa9", size = 262000, upload_time = "2026-05-10T18:02:16.756Z" }, - { url = "https://files.pythonhosted.org/packages/d3/dc/829c54f60b9d08389439c00f813c752781c496fc5788c78d8006db4b4f2b/coverage-7.14.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:5d4a51aad8ba8bdcd2b8bd8f03d4aca19693fa2327a3470e4718a25b03481020", size = 265732, upload_time = "2026-05-10T18:02:18.817Z" }, - { url = "https://files.pythonhosted.org/packages/ed/b0/70bd1419941652fa062689cba9c3eeafb8f5e6fbb890bce41c3bdda5dbd6/coverage-7.14.0-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:9f323af3e1e4f68b60b7b247e37b8515563a61375518fa59de1af48ba28a3db6", size = 260847, upload_time = "2026-05-10T18:02:20.528Z" }, - { url = "https://files.pythonhosted.org/packages/f2/73/be40b2390656c654d35ea0015ea7ba3d945769cf80790ad5e0bb2d56d2ba/coverage-7.14.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:1a0abc7342ea9711c469dd8b821c6c311e6bc6aac1442e5fbd6b27fae0a8f3db", size = 263166, upload_time = "2026-05-10T18:02:22.337Z" }, - { url = "https://files.pythonhosted.org/packages/29/55/4a643f712fcf7cf2881f8ec1e0ccb7b164aff3108f69b51801246c8799f2/coverage-7.14.0-cp314-cp314t-win32.whl", hash = "sha256:a9f864ef57b7172e2db87a096642dd51e179e085ab6b2c371c29e885f65c8fb2", size = 223573, upload_time = "2026-05-10T18:02:24.11Z" }, - { url = "https://files.pythonhosted.org/packages/27/96/3acae5da0953be042c0b4dea6d6789d2f080701c77b88e44d5bd41b9219b/coverage-7.14.0-cp314-cp314t-win_amd64.whl", hash = "sha256:29943e552fdc08e082eb51400fb2f58e118a83b5542bd06531214e084399b644", size = 224680, upload_time = "2026-05-10T18:02:25.896Z" }, - { url = "https://files.pythonhosted.org/packages/93/3d/6ab5d2dd8325d838737c6f8d83d62eb6230e0d70b87b51b57bbfd08fa767/coverage-7.14.0-cp314-cp314t-win_arm64.whl", hash = "sha256:742a73ea621953b012f2c4c2219b512180dd84489acf5b1596b0aafc55b9100b", size = 222703, upload_time = "2026-05-10T18:02:27.822Z" }, - { url = "https://files.pythonhosted.org/packages/61/e8/cb8e80d6f9f55b99588625062822bf946cf03ed06315df4bd8397f5632a1/coverage-7.14.0-py3-none-any.whl", hash = "sha256:8de5b61163aee3d05c8a2beab6f47913df7981dad1baf82c414d99158c286ab1", size = 211764, upload_time = "2026-05-10T18:02:29.538Z" }, -] - -[[package]] -name = "crc32c" -version = "2.8" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e3/66/7e97aa77af7cf6afbff26e3651b564fe41932599bc2d3dce0b2f73d4829a/crc32c-2.8.tar.gz", hash = "sha256:578728964e59c47c356aeeedee6220e021e124b9d3e8631d95d9a5e5f06e261c", size = 48179, upload_time = "2025-10-17T06:20:13.61Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e8/d8/3ae227890b3be40955a7144106ef4dd97d6123a82c2a5310cdab58ca49d8/crc32c-2.8-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:36f1e03ee9e9c6938e67d3bcb60e36f260170aa5f37da1185e04ef37b56af395", size = 66380, upload_time = "2025-10-17T06:19:18.009Z" }, - { url = "https://files.pythonhosted.org/packages/bd/8b/178d3f987cd0e049b484615512d3f91f3d2caeeb8ff336bb5896ae317438/crc32c-2.8-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b2f3226b94b85a8dd9b3533601d7a63e9e3e8edf03a8a169830ee8303a199aeb", size = 63048, upload_time = "2025-10-17T06:19:18.853Z" }, - { url = "https://files.pythonhosted.org/packages/f2/a1/48145ae2545ebc0169d3283ebe882da580ea4606bfb67cf4ca922ac3cfc3/crc32c-2.8-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6e08628bc72d5b6bc8e0730e8f142194b610e780a98c58cb6698e665cb885a5b", size = 61530, upload_time = "2025-10-17T06:19:19.974Z" }, - { url = "https://files.pythonhosted.org/packages/06/4b/cf05ed9d934cc30e5ae22f97c8272face420a476090e736615d9a6b53de0/crc32c-2.8-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:086f64793c5ec856d1ab31a026d52ad2b895ac83d7a38fce557d74eb857f0a82", size = 80001, upload_time = "2025-10-17T06:19:20.784Z" }, - { url = "https://files.pythonhosted.org/packages/15/ab/4b04801739faf36345f6ba1920be5b1c70282fec52f8280afd3613fb13e2/crc32c-2.8-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bcf72ee7e0135b3d941c34bb2c26c3fc6bc207106b49fd89aaafaeae223ae209", size = 81543, upload_time = "2025-10-17T06:19:21.557Z" }, - { url = "https://files.pythonhosted.org/packages/a9/1b/6e38dde5bfd2ea69b7f2ab6ec229fcd972a53d39e2db4efe75c0ac0382ce/crc32c-2.8-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:8a717dd9c3fd777d9bc6603717eae172887d402c4ab589d124ebd0184a83f89e", size = 80644, upload_time = "2025-10-17T06:19:22.325Z" }, - { url = "https://files.pythonhosted.org/packages/ce/45/012176ffee90059ae8ec7131019c71724ea472aa63e72c0c8edbd1fad1d7/crc32c-2.8-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:0450bb845b3c3c7b9bdc0b4e95620ec9a40824abdc8c86d6285c919a90743c1a", size = 79919, upload_time = "2025-10-17T06:19:23.101Z" }, - { url = "https://files.pythonhosted.org/packages/f0/2b/f557629842f9dec2b3461cb3a0d854bb586ec45b814cea58b082c32f0dde/crc32c-2.8-cp313-cp313-win32.whl", hash = "sha256:765d220bfcbcffa6598ac11eb1e10af0ee4802b49fe126aa6bf79f8ddb9931d1", size = 64896, upload_time = "2025-10-17T06:19:23.88Z" }, - { url = "https://files.pythonhosted.org/packages/d0/db/fd0f698c15d1e21d47c64181a98290665a08fcbb3940cd559e9c15bda57e/crc32c-2.8-cp313-cp313-win_amd64.whl", hash = "sha256:171ff0260d112c62abcce29332986950a57bddee514e0a2418bfde493ea06bb3", size = 66646, upload_time = "2025-10-17T06:19:24.702Z" }, - { url = "https://files.pythonhosted.org/packages/db/b9/8e5d7054fe8e7eecab10fd0c8e7ffb01439417bdb6de1d66a81c38fc4a20/crc32c-2.8-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b977a32a3708d6f51703c8557008f190aaa434d7347431efb0e86fcbe78c2a50", size = 66203, upload_time = "2025-10-17T06:19:25.872Z" }, - { url = "https://files.pythonhosted.org/packages/55/5f/cc926c70057a63cc0c98a3c8a896eb15fc7e74d3034eadd53c94917c6cc3/crc32c-2.8-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:7399b01db4adaf41da2fb36fe2408e75a8d82a179a9564ed7619412e427b26d6", size = 62956, upload_time = "2025-10-17T06:19:26.652Z" }, - { url = "https://files.pythonhosted.org/packages/a1/8a/0660c44a2dd2cb6ccbb529eb363b9280f5c766f1017bc8355ed8d695bd94/crc32c-2.8-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:4379f73f9cdad31958a673d11a332ec725ca71572401ca865867229f5f15e853", size = 61442, upload_time = "2025-10-17T06:19:27.74Z" }, - { url = "https://files.pythonhosted.org/packages/f5/5a/6108d2dfc0fe33522ce83ba07aed4b22014911b387afa228808a278e27cd/crc32c-2.8-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2e68264555fab19bab08331550dab58573e351a63ed79c869d455edd3b0aa417", size = 79109, upload_time = "2025-10-17T06:19:28.535Z" }, - { url = "https://files.pythonhosted.org/packages/84/1e/c054f9e390090c197abf3d2936f4f9effaf0c6ee14569ae03d6ddf86958a/crc32c-2.8-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b48f2486727b8d0e7ccbae4a34cb0300498433d2a9d6b49cb13cb57c2e3f19cb", size = 80987, upload_time = "2025-10-17T06:19:29.305Z" }, - { url = "https://files.pythonhosted.org/packages/c8/ad/1650e5c3341e4a485f800ea83116d72965030c5d48ccc168fcc685756e4d/crc32c-2.8-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:ecf123348934a086df8c8fde7f9f2d716d523ca0707c5a1367b8bb00d8134823", size = 79994, upload_time = "2025-10-17T06:19:30.109Z" }, - { url = "https://files.pythonhosted.org/packages/d7/3b/f2ed924b177729cbb2ab30ca2902abff653c31d48c95e7b66717a9ca9fcc/crc32c-2.8-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:e636ac60f76de538f7a2c0d0f3abf43104ee83a8f5e516f6345dc283ed1a4df7", size = 79046, upload_time = "2025-10-17T06:19:30.894Z" }, - { url = "https://files.pythonhosted.org/packages/4b/80/413b05ee6ace613208b31b3670c3135ee1cf451f0e72a9c839b4946acc04/crc32c-2.8-cp313-cp313t-win32.whl", hash = "sha256:8dd4a19505e0253892e1b2f1425cc3bd47f79ae5a04cb8800315d00aad7197f2", size = 64837, upload_time = "2025-10-17T06:19:32.03Z" }, - { url = "https://files.pythonhosted.org/packages/3b/1b/85eddb6ac5b38496c4e35c20298aae627970c88c3c624a22ab33e84f16c7/crc32c-2.8-cp313-cp313t-win_amd64.whl", hash = "sha256:4bb18e4bd98fb266596523ffc6be9c5b2387b2fa4e505ec56ca36336f49cb639", size = 66574, upload_time = "2025-10-17T06:19:33.143Z" }, - { url = "https://files.pythonhosted.org/packages/aa/df/50e9079b532ff53dbfc0e66eed781374bd455af02ed5df8b56ad538de4ff/crc32c-2.8-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:3a3b2e4bcf7b3ee333050e7d3ff38e2ba46ea205f1d73d8949b248aaffe937ac", size = 66399, upload_time = "2025-10-17T06:19:34.279Z" }, - { url = "https://files.pythonhosted.org/packages/5a/2e/67e3b0bc3d30e46ea5d16365cc81203286387671e22f2307eb41f19abb9c/crc32c-2.8-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:445e559e66dff16be54f8a4ef95aa6b01db799a639956d995c5498ba513fccc2", size = 63044, upload_time = "2025-10-17T06:19:35.062Z" }, - { url = "https://files.pythonhosted.org/packages/36/ea/1723b17437e4344ed8d067456382ecb1f5b535d83fdc5aaebab676c6d273/crc32c-2.8-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:bf3040919e17afa5782e01b1875d6a05f44b8f19c05f211d8b9f8a1deb8bbd9c", size = 61541, upload_time = "2025-10-17T06:19:36.204Z" }, - { url = "https://files.pythonhosted.org/packages/4c/6a/cbec8a235c5b46a01f319939b538958662159aec0ed3a74944e3a6de21f1/crc32c-2.8-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:5607ab8221e1ffd411f64aa40dbb6850cf06dd2908c9debd05d371e1acf62ff3", size = 80139, upload_time = "2025-10-17T06:19:37.351Z" }, - { url = "https://files.pythonhosted.org/packages/21/31/d096722fe74b692d6e8206c27da1ea5f6b2a12ff92c54a62a6ba2f376254/crc32c-2.8-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c7f5db4f16816926986d3c94253314920689706ae13a9bf4888b47336c6735ce", size = 81736, upload_time = "2025-10-17T06:19:38.16Z" }, - { url = "https://files.pythonhosted.org/packages/f6/a2/f75ef716ff7e3c22f385ba6ef30c5de80c19a21ebe699dc90824a1903275/crc32c-2.8-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:70b0153c4d418b673309d3529334d117e1074c4a3b2d7f676e430d72c14de67b", size = 80795, upload_time = "2025-10-17T06:19:38.948Z" }, - { url = "https://files.pythonhosted.org/packages/d8/94/6d647a12d96ab087d9b8eacee3da073f981987827d57c7072f89ffc7b6cd/crc32c-2.8-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5c8933531442042438753755a5c8a9034e4d88b01da9eb796f7e151b31a7256c", size = 80042, upload_time = "2025-10-17T06:19:39.725Z" }, - { url = "https://files.pythonhosted.org/packages/cd/dc/32b8896b40a0afee7a3c040536d0da5a73e68df2be9fadd21770fd158e16/crc32c-2.8-cp314-cp314-win32.whl", hash = "sha256:cdc83a3fe6c4e5df9457294cfd643de7d95bd4e9382c1dd6ed1e0f0f9169172c", size = 64914, upload_time = "2025-10-17T06:19:40.527Z" }, - { url = "https://files.pythonhosted.org/packages/f2/b4/4308b27d307e8ecaf8dd1dcc63bbb0e47ae1826d93faa3e62d1ee00ee2d5/crc32c-2.8-cp314-cp314-win_amd64.whl", hash = "sha256:509e10035106df66770fe24b9eb8d9e32b6fb967df17744402fb67772d8b2bc7", size = 66723, upload_time = "2025-10-17T06:19:42.449Z" }, - { url = "https://files.pythonhosted.org/packages/90/d5/a19d2489fa997a143bfbbf971a5c9a43f8b1ba9e775b1fb362d8fb15260c/crc32c-2.8-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:864359a39777a07b09b28eb31337c0cc603d5c1bf0fc328c3af736a8da624ec0", size = 66201, upload_time = "2025-10-17T06:19:43.273Z" }, - { url = "https://files.pythonhosted.org/packages/98/c2/5f82f22d2c1242cb6f6fe92aa9a42991ebea86de994b8f9974d9c1d128e2/crc32c-2.8-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:14511d7cfc5d9f5e1a6c6b64caa6225c2bdc1ed00d725e9a374a3e84073ce180", size = 62956, upload_time = "2025-10-17T06:19:44.099Z" }, - { url = "https://files.pythonhosted.org/packages/9b/61/3d43d33489cf974fb78bfb3500845770e139ae6d1d83473b660bd8f79a6c/crc32c-2.8-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:918b7999b52b5dcbcea34081e9a02d46917d571921a3f209956a9a429b2e06e5", size = 61443, upload_time = "2025-10-17T06:19:44.89Z" }, - { url = "https://files.pythonhosted.org/packages/52/6d/f306ce64a352a3002f76b0fc88a1373f4541f9d34fad3668688610bab14b/crc32c-2.8-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:cc445da03fc012a5a03b71da1df1b40139729e6a5571fd4215ab40bfb39689c7", size = 79106, upload_time = "2025-10-17T06:19:45.688Z" }, - { url = "https://files.pythonhosted.org/packages/a5/b7/1f74965dd7ea762954a69d172dfb3a706049c84ffa45d31401d010a4a126/crc32c-2.8-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1e3dde2ec59a8a830511d72a086ead95c0b0b7f0d418f93ea106244c5e77e350", size = 80983, upload_time = "2025-10-17T06:19:46.792Z" }, - { url = "https://files.pythonhosted.org/packages/1b/50/af93f0d91ccd61833ce77374ebfbd16f5805f5c17d18c6470976d9866d76/crc32c-2.8-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:61d51681a08b6a2a2e771b7f0cd1947fb87cb28f38ed55a01cb7c40b2ac4cdd8", size = 80009, upload_time = "2025-10-17T06:19:47.619Z" }, - { url = "https://files.pythonhosted.org/packages/ee/fa/94f394beb68a88258af694dab2f1284f55a406b615d7900bdd6235283bc4/crc32c-2.8-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:67c0716c3b1a02d5235be649487b637eed21f2d070f2b3f63f709dcd2fefb4c7", size = 79066, upload_time = "2025-10-17T06:19:48.409Z" }, - { url = "https://files.pythonhosted.org/packages/91/c6/a6050e0c64fd73c67a97da96cb59f08b05111e00b958fb87ecdce99f17ac/crc32c-2.8-cp314-cp314t-win32.whl", hash = "sha256:2e8fe863fbbd8bdb6b414a2090f1b0f52106e76e9a9c96a413495dbe5ebe492a", size = 64869, upload_time = "2025-10-17T06:19:49.197Z" }, - { url = "https://files.pythonhosted.org/packages/08/1f/c7735034e401cb1ea14f996a224518e3a3fa9987cb13680e707328a7d779/crc32c-2.8-cp314-cp314t-win_amd64.whl", hash = "sha256:20a9cfb897693eb6da19e52e2a7be2026fd4d9fc8ae318f086c0d71d5dd2d8e0", size = 66633, upload_time = "2025-10-17T06:19:50.003Z" }, -] - -[[package]] -name = "cryptography" -version = "46.0.7" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/47/93/ac8f3d5ff04d54bc814e961a43ae5b0b146154c89c61b47bb07557679b18/cryptography-46.0.7.tar.gz", hash = "sha256:e4cfd68c5f3e0bfdad0d38e023239b96a2fe84146481852dffbcca442c245aa5", size = 750652, upload_time = "2026-04-08T01:57:54.692Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/0b/5d/4a8f770695d73be252331e60e526291e3df0c9b27556a90a6b47bccca4c2/cryptography-46.0.7-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:ea42cbe97209df307fdc3b155f1b6fa2577c0defa8f1f7d3be7d31d189108ad4", size = 7179869, upload_time = "2026-04-08T01:56:17.157Z" }, - { url = "https://files.pythonhosted.org/packages/5f/45/6d80dc379b0bbc1f9d1e429f42e4cb9e1d319c7a8201beffd967c516ea01/cryptography-46.0.7-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b36a4695e29fe69215d75960b22577197aca3f7a25b9cf9d165dcfe9d80bc325", size = 4275492, upload_time = "2026-04-08T01:56:19.36Z" }, - { url = "https://files.pythonhosted.org/packages/4a/9a/1765afe9f572e239c3469f2cb429f3ba7b31878c893b246b4b2994ffe2fe/cryptography-46.0.7-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5ad9ef796328c5e3c4ceed237a183f5d41d21150f972455a9d926593a1dcb308", size = 4426670, upload_time = "2026-04-08T01:56:21.415Z" }, - { url = "https://files.pythonhosted.org/packages/8f/3e/af9246aaf23cd4ee060699adab1e47ced3f5f7e7a8ffdd339f817b446462/cryptography-46.0.7-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:73510b83623e080a2c35c62c15298096e2a5dc8d51c3b4e1740211839d0dea77", size = 4280275, upload_time = "2026-04-08T01:56:23.539Z" }, - { url = "https://files.pythonhosted.org/packages/0f/54/6bbbfc5efe86f9d71041827b793c24811a017c6ac0fd12883e4caa86b8ed/cryptography-46.0.7-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:cbd5fb06b62bd0721e1170273d3f4d5a277044c47ca27ee257025146c34cbdd1", size = 4928402, upload_time = "2026-04-08T01:56:25.624Z" }, - { url = "https://files.pythonhosted.org/packages/2d/cf/054b9d8220f81509939599c8bdbc0c408dbd2bdd41688616a20731371fe0/cryptography-46.0.7-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:420b1e4109cc95f0e5700eed79908cef9268265c773d3a66f7af1eef53d409ef", size = 4459985, upload_time = "2026-04-08T01:56:27.309Z" }, - { url = "https://files.pythonhosted.org/packages/f9/46/4e4e9c6040fb01c7467d47217d2f882daddeb8828f7df800cb806d8a2288/cryptography-46.0.7-cp311-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:24402210aa54baae71d99441d15bb5a1919c195398a87b563df84468160a65de", size = 3990652, upload_time = "2026-04-08T01:56:29.095Z" }, - { url = "https://files.pythonhosted.org/packages/36/5f/313586c3be5a2fbe87e4c9a254207b860155a8e1f3cca99f9910008e7d08/cryptography-46.0.7-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:8a469028a86f12eb7d2fe97162d0634026d92a21f3ae0ac87ed1c4a447886c83", size = 4279805, upload_time = "2026-04-08T01:56:30.928Z" }, - { url = "https://files.pythonhosted.org/packages/69/33/60dfc4595f334a2082749673386a4d05e4f0cf4df8248e63b2c3437585f2/cryptography-46.0.7-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:9694078c5d44c157ef3162e3bf3946510b857df5a3955458381d1c7cfc143ddb", size = 4892883, upload_time = "2026-04-08T01:56:32.614Z" }, - { url = "https://files.pythonhosted.org/packages/c7/0b/333ddab4270c4f5b972f980adef4faa66951a4aaf646ca067af597f15563/cryptography-46.0.7-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:42a1e5f98abb6391717978baf9f90dc28a743b7d9be7f0751a6f56a75d14065b", size = 4459756, upload_time = "2026-04-08T01:56:34.306Z" }, - { url = "https://files.pythonhosted.org/packages/d2/14/633913398b43b75f1234834170947957c6b623d1701ffc7a9600da907e89/cryptography-46.0.7-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:91bbcb08347344f810cbe49065914fe048949648f6bd5c2519f34619142bbe85", size = 4410244, upload_time = "2026-04-08T01:56:35.977Z" }, - { url = "https://files.pythonhosted.org/packages/10/f2/19ceb3b3dc14009373432af0c13f46aa08e3ce334ec6eff13492e1812ccd/cryptography-46.0.7-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:5d1c02a14ceb9148cc7816249f64f623fbfee39e8c03b3650d842ad3f34d637e", size = 4674868, upload_time = "2026-04-08T01:56:38.034Z" }, - { url = "https://files.pythonhosted.org/packages/1a/bb/a5c213c19ee94b15dfccc48f363738633a493812687f5567addbcbba9f6f/cryptography-46.0.7-cp311-abi3-win32.whl", hash = "sha256:d23c8ca48e44ee015cd0a54aeccdf9f09004eba9fc96f38c911011d9ff1bd457", size = 3026504, upload_time = "2026-04-08T01:56:39.666Z" }, - { url = "https://files.pythonhosted.org/packages/2b/02/7788f9fefa1d060ca68717c3901ae7fffa21ee087a90b7f23c7a603c32ae/cryptography-46.0.7-cp311-abi3-win_amd64.whl", hash = "sha256:397655da831414d165029da9bc483bed2fe0e75dde6a1523ec2fe63f3c46046b", size = 3488363, upload_time = "2026-04-08T01:56:41.893Z" }, - { url = "https://files.pythonhosted.org/packages/7b/56/15619b210e689c5403bb0540e4cb7dbf11a6bf42e483b7644e471a2812b3/cryptography-46.0.7-cp314-cp314t-macosx_10_9_universal2.whl", hash = "sha256:d151173275e1728cf7839aaa80c34fe550c04ddb27b34f48c232193df8db5842", size = 7119671, upload_time = "2026-04-08T01:56:44Z" }, - { url = "https://files.pythonhosted.org/packages/74/66/e3ce040721b0b5599e175ba91ab08884c75928fbeb74597dd10ef13505d2/cryptography-46.0.7-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:db0f493b9181c7820c8134437eb8b0b4792085d37dbb24da050476ccb664e59c", size = 4268551, upload_time = "2026-04-08T01:56:46.071Z" }, - { url = "https://files.pythonhosted.org/packages/03/11/5e395f961d6868269835dee1bafec6a1ac176505a167f68b7d8818431068/cryptography-46.0.7-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ebd6daf519b9f189f85c479427bbd6e9c9037862cf8fe89ee35503bd209ed902", size = 4408887, upload_time = "2026-04-08T01:56:47.718Z" }, - { url = "https://files.pythonhosted.org/packages/40/53/8ed1cf4c3b9c8e611e7122fb56f1c32d09e1fff0f1d77e78d9ff7c82653e/cryptography-46.0.7-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:b7b412817be92117ec5ed95f880defe9cf18a832e8cafacf0a22337dc1981b4d", size = 4271354, upload_time = "2026-04-08T01:56:49.312Z" }, - { url = "https://files.pythonhosted.org/packages/50/46/cf71e26025c2e767c5609162c866a78e8a2915bbcfa408b7ca495c6140c4/cryptography-46.0.7-cp314-cp314t-manylinux_2_28_ppc64le.whl", hash = "sha256:fbfd0e5f273877695cb93baf14b185f4878128b250cc9f8e617ea0c025dfb022", size = 4905845, upload_time = "2026-04-08T01:56:50.916Z" }, - { url = "https://files.pythonhosted.org/packages/c0/ea/01276740375bac6249d0a971ebdf6b4dc9ead0ee0a34ef3b5a88c1a9b0d4/cryptography-46.0.7-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:ffca7aa1d00cf7d6469b988c581598f2259e46215e0140af408966a24cf086ce", size = 4444641, upload_time = "2026-04-08T01:56:52.882Z" }, - { url = "https://files.pythonhosted.org/packages/3d/4c/7d258f169ae71230f25d9f3d06caabcff8c3baf0978e2b7d65e0acac3827/cryptography-46.0.7-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:60627cf07e0d9274338521205899337c5d18249db56865f943cbe753aa96f40f", size = 3967749, upload_time = "2026-04-08T01:56:54.597Z" }, - { url = "https://files.pythonhosted.org/packages/b5/2a/2ea0767cad19e71b3530e4cad9605d0b5e338b6a1e72c37c9c1ceb86c333/cryptography-46.0.7-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:80406c3065e2c55d7f49a9550fe0c49b3f12e5bfff5dedb727e319e1afb9bf99", size = 4270942, upload_time = "2026-04-08T01:56:56.416Z" }, - { url = "https://files.pythonhosted.org/packages/41/3d/fe14df95a83319af25717677e956567a105bb6ab25641acaa093db79975d/cryptography-46.0.7-cp314-cp314t-manylinux_2_34_ppc64le.whl", hash = "sha256:c5b1ccd1239f48b7151a65bc6dd54bcfcc15e028c8ac126d3fada09db0e07ef1", size = 4871079, upload_time = "2026-04-08T01:56:58.31Z" }, - { url = "https://files.pythonhosted.org/packages/9c/59/4a479e0f36f8f378d397f4eab4c850b4ffb79a2f0d58704b8fa0703ddc11/cryptography-46.0.7-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:d5f7520159cd9c2154eb61eb67548ca05c5774d39e9c2c4339fd793fe7d097b2", size = 4443999, upload_time = "2026-04-08T01:57:00.508Z" }, - { url = "https://files.pythonhosted.org/packages/28/17/b59a741645822ec6d04732b43c5d35e4ef58be7bfa84a81e5ae6f05a1d33/cryptography-46.0.7-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:fcd8eac50d9138c1d7fc53a653ba60a2bee81a505f9f8850b6b2888555a45d0e", size = 4399191, upload_time = "2026-04-08T01:57:02.654Z" }, - { url = "https://files.pythonhosted.org/packages/59/6a/bb2e166d6d0e0955f1e9ff70f10ec4b2824c9cfcdb4da772c7dd69cc7d80/cryptography-46.0.7-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:65814c60f8cc400c63131584e3e1fad01235edba2614b61fbfbfa954082db0ee", size = 4655782, upload_time = "2026-04-08T01:57:04.592Z" }, - { url = "https://files.pythonhosted.org/packages/95/b6/3da51d48415bcb63b00dc17c2eff3a651b7c4fed484308d0f19b30e8cb2c/cryptography-46.0.7-cp314-cp314t-win32.whl", hash = "sha256:fdd1736fed309b4300346f88f74cd120c27c56852c3838cab416e7a166f67298", size = 3002227, upload_time = "2026-04-08T01:57:06.91Z" }, - { url = "https://files.pythonhosted.org/packages/32/a8/9f0e4ed57ec9cebe506e58db11ae472972ecb0c659e4d52bbaee80ca340a/cryptography-46.0.7-cp314-cp314t-win_amd64.whl", hash = "sha256:e06acf3c99be55aa3b516397fe42f5855597f430add9c17fa46bf2e0fb34c9bb", size = 3475332, upload_time = "2026-04-08T01:57:08.807Z" }, - { url = "https://files.pythonhosted.org/packages/a7/7f/cd42fc3614386bc0c12f0cb3c4ae1fc2bbca5c9662dfed031514911d513d/cryptography-46.0.7-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:462ad5cb1c148a22b2e3bcc5ad52504dff325d17daf5df8d88c17dda1f75f2a4", size = 7165618, upload_time = "2026-04-08T01:57:10.645Z" }, - { url = "https://files.pythonhosted.org/packages/a5/d0/36a49f0262d2319139d2829f773f1b97ef8aef7f97e6e5bd21455e5a8fb5/cryptography-46.0.7-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:84d4cced91f0f159a7ddacad249cc077e63195c36aac40b4150e7a57e84fffe7", size = 4270628, upload_time = "2026-04-08T01:57:12.885Z" }, - { url = "https://files.pythonhosted.org/packages/8a/6c/1a42450f464dda6ffbe578a911f773e54dd48c10f9895a23a7e88b3e7db5/cryptography-46.0.7-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:128c5edfe5e5938b86b03941e94fac9ee793a94452ad1365c9fc3f4f62216832", size = 4415405, upload_time = "2026-04-08T01:57:14.923Z" }, - { url = "https://files.pythonhosted.org/packages/9a/92/4ed714dbe93a066dc1f4b4581a464d2d7dbec9046f7c8b7016f5286329e2/cryptography-46.0.7-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:5e51be372b26ef4ba3de3c167cd3d1022934bc838ae9eaad7e644986d2a3d163", size = 4272715, upload_time = "2026-04-08T01:57:16.638Z" }, - { url = "https://files.pythonhosted.org/packages/b7/e6/a26b84096eddd51494bba19111f8fffe976f6a09f132706f8f1bf03f51f7/cryptography-46.0.7-cp38-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:cdf1a610ef82abb396451862739e3fc93b071c844399e15b90726ef7470eeaf2", size = 4918400, upload_time = "2026-04-08T01:57:19.021Z" }, - { url = "https://files.pythonhosted.org/packages/c7/08/ffd537b605568a148543ac3c2b239708ae0bd635064bab41359252ef88ed/cryptography-46.0.7-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:1d25aee46d0c6f1a501adcddb2d2fee4b979381346a78558ed13e50aa8a59067", size = 4450634, upload_time = "2026-04-08T01:57:21.185Z" }, - { url = "https://files.pythonhosted.org/packages/16/01/0cd51dd86ab5b9befe0d031e276510491976c3a80e9f6e31810cce46c4ad/cryptography-46.0.7-cp38-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:cdfbe22376065ffcf8be74dc9a909f032df19bc58a699456a21712d6e5eabfd0", size = 3985233, upload_time = "2026-04-08T01:57:22.862Z" }, - { url = "https://files.pythonhosted.org/packages/92/49/819d6ed3a7d9349c2939f81b500a738cb733ab62fbecdbc1e38e83d45e12/cryptography-46.0.7-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:abad9dac36cbf55de6eb49badd4016806b3165d396f64925bf2999bcb67837ba", size = 4271955, upload_time = "2026-04-08T01:57:24.814Z" }, - { url = "https://files.pythonhosted.org/packages/80/07/ad9b3c56ebb95ed2473d46df0847357e01583f4c52a85754d1a55e29e4d0/cryptography-46.0.7-cp38-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:935ce7e3cfdb53e3536119a542b839bb94ec1ad081013e9ab9b7cfd478b05006", size = 4879888, upload_time = "2026-04-08T01:57:26.88Z" }, - { url = "https://files.pythonhosted.org/packages/b8/c7/201d3d58f30c4c2bdbe9b03844c291feb77c20511cc3586daf7edc12a47b/cryptography-46.0.7-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:35719dc79d4730d30f1c2b6474bd6acda36ae2dfae1e3c16f2051f215df33ce0", size = 4449961, upload_time = "2026-04-08T01:57:29.068Z" }, - { url = "https://files.pythonhosted.org/packages/a5/ef/649750cbf96f3033c3c976e112265c33906f8e462291a33d77f90356548c/cryptography-46.0.7-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:7bbc6ccf49d05ac8f7d7b5e2e2c33830d4fe2061def88210a126d130d7f71a85", size = 4401696, upload_time = "2026-04-08T01:57:31.029Z" }, - { url = "https://files.pythonhosted.org/packages/41/52/a8908dcb1a389a459a29008c29966c1d552588d4ae6d43f3a1a4512e0ebe/cryptography-46.0.7-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a1529d614f44b863a7b480c6d000fe93b59acee9c82ffa027cfadc77521a9f5e", size = 4664256, upload_time = "2026-04-08T01:57:33.144Z" }, - { url = "https://files.pythonhosted.org/packages/4b/fa/f0ab06238e899cc3fb332623f337a7364f36f4bb3f2534c2bb95a35b132c/cryptography-46.0.7-cp38-abi3-win32.whl", hash = "sha256:f247c8c1a1fb45e12586afbb436ef21ff1e80670b2861a90353d9b025583d246", size = 3013001, upload_time = "2026-04-08T01:57:34.933Z" }, - { url = "https://files.pythonhosted.org/packages/d2/f1/00ce3bde3ca542d1acd8f8cfa38e446840945aa6363f9b74746394b14127/cryptography-46.0.7-cp38-abi3-win_amd64.whl", hash = "sha256:506c4ff91eff4f82bdac7633318a526b1d1309fc07ca76a3ad182cb5b686d6d3", size = 3472985, upload_time = "2026-04-08T01:57:36.714Z" }, -] - -[[package]] -name = "cyclopts" -version = "4.14.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "attrs" }, - { name = "docstring-parser" }, - { name = "rich" }, - { name = "rich-rst" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/de/75/c7988cb0b90ab9d6728d4c444f09256cfdc97606c1638d8a8090eeb57f7e/cyclopts-4.14.1.tar.gz", hash = "sha256:5d01fc3a940a0e4e872a81ed533a10c1892b5baaa4121fe69528a2b8c17fc9d0", size = 177281, upload_time = "2026-05-19T19:49:22.312Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/22/1d/f6c80f82a42c69ff5a86c2580e789133de387d067210c7c46677618a2ca7/cyclopts-4.14.1-py3-none-any.whl", hash = "sha256:b705fdaa3277554a5da03e9bb5ff96a44d204a1afe3099f1b56e1586488bbfd4", size = 214925, upload_time = "2026-05-19T19:49:23.559Z" }, -] - -[[package]] -name = "dnspython" -version = "2.8.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/8c/8b/57666417c0f90f08bcafa776861060426765fdb422eb10212086fb811d26/dnspython-2.8.0.tar.gz", hash = "sha256:181d3c6996452cb1189c4046c61599b84a5a86e099562ffde77d26984ff26d0f", size = 368251, upload_time = "2025-09-07T18:58:00.022Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ba/5a/18ad964b0086c6e62e2e7500f7edc89e3faa45033c71c1893d34eed2b2de/dnspython-2.8.0-py3-none-any.whl", hash = "sha256:01d9bbc4a2d76bf0db7c1f729812ded6d912bd318d3b1cf81d30c0f845dbf3af", size = 331094, upload_time = "2025-09-07T18:57:58.071Z" }, -] - -[[package]] -name = "docstring-parser" -version = "0.18.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e0/4d/f332313098c1de1b2d2ff91cf2674415cc7cddab2ca1b01ae29774bd5fdf/docstring_parser-0.18.0.tar.gz", hash = "sha256:292510982205c12b1248696f44959db3cdd1740237a968ea1e2e7a900eeb2015", size = 29341, upload_time = "2026-04-14T04:09:19.867Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a7/5f/ed01f9a3cdffbd5a008556fc7b2a08ddb1cc6ace7effa7340604b1d16699/docstring_parser-0.18.0-py3-none-any.whl", hash = "sha256:b3fcbed555c47d8479be0796ef7e19c2670d428d72e96da63f3a40122860374b", size = 22484, upload_time = "2026-04-14T04:09:18.638Z" }, -] - -[[package]] -name = "email-validator" -version = "2.3.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "dnspython" }, - { name = "idna" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/f5/22/900cb125c76b7aaa450ce02fd727f452243f2e91a61af068b40adba60ea9/email_validator-2.3.0.tar.gz", hash = "sha256:9fc05c37f2f6cf439ff414f8fc46d917929974a82244c20eb10231ba60c54426", size = 51238, upload_time = "2025-08-26T13:09:06.831Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/de/15/545e2b6cf2e3be84bc1ed85613edd75b8aea69807a71c26f4ca6a9258e82/email_validator-2.3.0-py3-none-any.whl", hash = "sha256:80f13f623413e6b197ae73bb10bf4eb0908faf509ad8362c5edeb0be7fd450b4", size = 35604, upload_time = "2025-08-26T13:09:05.858Z" }, -] - -[[package]] -name = "exceptiongroup" -version = "1.3.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/50/79/66800aadf48771f6b62f7eb014e352e5d06856655206165d775e675a02c9/exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219", size = 30371, upload_time = "2025-11-21T23:01:54.787Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/8a/0e/97c33bf5009bdbac74fd2beace167cab3f978feb69cc36f1ef79360d6c4e/exceptiongroup-1.3.1-py3-none-any.whl", hash = "sha256:a7a39a3bd276781e98394987d3a5701d0c4edffb633bb7a5144577f82c773598", size = 16740, upload_time = "2025-11-21T23:01:53.443Z" }, -] - -[[package]] -name = "fastmcp" -version = "3.4.5" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "fastmcp-slim", extra = ["client", "server"] }, -] -sdist = { url = "https://files.pythonhosted.org/packages/23/14/c1ffb91b7d1fece86c81e1f9df5474f30fd97e4cdaa398814bbbeee88568/fastmcp-3.4.5.tar.gz", hash = "sha256:a95f2bc876bef42e8b50f7872f24f3f2fe3b1d37408c734e8b9d9e03014b72d3", size = 28800521, upload_time = "2026-07-27T19:20:01.231Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c6/4f/73450a436c963c0382d15a882fc5d08f15aadc329194df1b54495a7c8383/fastmcp-3.4.5-py3-none-any.whl", hash = "sha256:5d3d438eb2917e63e6faf53e8cb8fe26d887ec3232f848093a4eecad7fa34861", size = 8017, upload_time = "2026-07-27T19:19:57.942Z" }, -] - -[[package]] -name = "fastmcp-slim" -version = "3.4.5" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "platformdirs" }, - { name = "pydantic", extra = ["email"] }, - { name = "pydantic-settings" }, - { name = "python-dotenv" }, - { name = "rich" }, - { name = "typing-extensions" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/81/1d/f3e271fbcd01ce01a4cf623b336d8e1305c192aa5d5e8e0223b7167462e9/fastmcp_slim-3.4.5.tar.gz", hash = "sha256:5badc3bceee61f61297eeb9494f499325f3ce1cafabf4611b31f6c3e9d7dff59", size = 591622, upload_time = "2026-07-27T19:15:19.455Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/43/3b/16d8aa8224094519f30b078138e725b8a731bf0a13f1f850e58b5f9b3cc4/fastmcp_slim-3.4.5-py3-none-any.whl", hash = "sha256:bc31217827c4999812543c83ee95ed9a47f3ed1e3fd0bd4f64371e375b748eca", size = 766478, upload_time = "2026-07-27T19:15:18.015Z" }, -] - -[package.optional-dependencies] -client = [ - { name = "authlib" }, - { name = "exceptiongroup" }, - { name = "httpx" }, - { name = "mcp" }, - { name = "opentelemetry-api" }, - { name = "py-key-value-aio", extra = ["filetree", "keyring", "memory"] }, - { name = "starlette" }, -] -server = [ - { name = "authlib" }, - { name = "cyclopts" }, - { name = "exceptiongroup" }, - { name = "griffelib" }, - { name = "httpx" }, - { name = "joserfc" }, - { name = "jsonref" }, - { name = "jsonschema-path" }, - { name = "mcp" }, - { name = "openapi-pydantic" }, - { name = "opentelemetry-api" }, - { name = "packaging" }, - { name = "py-key-value-aio", extra = ["filetree", "keyring", "memory"] }, - { name = "pyperclip" }, - { name = "python-multipart" }, - { name = "pyyaml" }, - { name = "starlette" }, - { name = "uncalled-for" }, - { name = "uvicorn" }, - { name = "watchfiles" }, - { name = "websockets" }, -] - -[[package]] -name = "griffelib" -version = "2.0.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/9d/82/74f4a3310cdabfbb10da554c3a672847f1ed33c6f61dd472681ce7f1fe67/griffelib-2.0.2.tar.gz", hash = "sha256:3cf20b3bc470e83763ffbf236e0076b1211bac1bc67de13daf494640f2de707e", size = 166461, upload_time = "2026-03-27T11:34:51.091Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/11/8c/c9138d881c79aa0ea9ed83cbd58d5ca75624378b38cee225dcf5c42cc91f/griffelib-2.0.2-py3-none-any.whl", hash = "sha256:925c857658fb1ba40c0772c37acbc2ab650bd794d9c1b9726922e36ea4117ea1", size = 142357, upload_time = "2026-03-27T11:34:46.275Z" }, -] - -[[package]] -name = "h11" -version = "0.16.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250, upload_time = "2025-04-24T03:35:25.427Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515, upload_time = "2025-04-24T03:35:24.344Z" }, -] - -[[package]] -name = "httpcore" -version = "1.0.9" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "certifi" }, - { name = "h11" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8", size = 85484, upload_time = "2025-04-24T22:06:22.219Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55", size = 78784, upload_time = "2025-04-24T22:06:20.566Z" }, -] - -[[package]] -name = "httpx" -version = "0.28.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "anyio" }, - { name = "certifi" }, - { name = "httpcore" }, - { name = "idna" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 141406, upload_time = "2024-12-06T15:37:23.222Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517, upload_time = "2024-12-06T15:37:21.509Z" }, -] - -[[package]] -name = "httpx-sse" -version = "0.4.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/0f/4c/751061ffa58615a32c31b2d82e8482be8dd4a89154f003147acee90f2be9/httpx_sse-0.4.3.tar.gz", hash = "sha256:9b1ed0127459a66014aec3c56bebd93da3c1bc8bb6618c8082039a44889a755d", size = 15943, upload_time = "2025-10-10T21:48:22.271Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d2/fd/6668e5aec43ab844de6fc74927e155a3b37bf40d7c3790e49fc0406b6578/httpx_sse-0.4.3-py3-none-any.whl", hash = "sha256:0ac1c9fe3c0afad2e0ebb25a934a59f4c7823b60792691f779fad2c5568830fc", size = 8960, upload_time = "2025-10-10T21:48:21.158Z" }, -] - -[[package]] -name = "idna" -version = "3.15" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/82/77/7b3966d0b9d1d31a36ddf1746926a11dface89a83409bf1483f0237aa758/idna-3.15.tar.gz", hash = "sha256:ca962446ea538f7092a95e057da437618e886f4d349216d2b1e294abfdb65fdc", size = 199245, upload_time = "2026-05-12T22:45:57.011Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d2/23/408243171aa9aaba178d3e2559159c24c1171a641aa83b67bdd3394ead8e/idna-3.15-py3-none-any.whl", hash = "sha256:048adeaf8c2d788c40fee287673ccaa74c24ffd8dcf09ffa555a2fbb59f10ac8", size = 72340, upload_time = "2026-05-12T22:45:55.733Z" }, -] - -[[package]] -name = "iniconfig" -version = "2.3.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730", size = 20503, upload_time = "2025-10-18T21:55:43.219Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12", size = 7484, upload_time = "2025-10-18T21:55:41.639Z" }, -] - -[[package]] -name = "jaraco-classes" -version = "3.4.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "more-itertools" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/06/c0/ed4a27bc5571b99e3cff68f8a9fa5b56ff7df1c2251cc715a652ddd26402/jaraco.classes-3.4.0.tar.gz", hash = "sha256:47a024b51d0239c0dd8c8540c6c7f484be3b8fcf0b2d85c13825780d3b3f3acd", size = 11780, upload_time = "2024-03-31T07:27:36.643Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/7f/66/b15ce62552d84bbfcec9a4873ab79d993a1dd4edb922cbfccae192bd5b5f/jaraco.classes-3.4.0-py3-none-any.whl", hash = "sha256:f662826b6bed8cace05e7ff873ce0f9283b5c924470fe664fff1c2f00f581790", size = 6777, upload_time = "2024-03-31T07:27:34.792Z" }, -] - -[[package]] -name = "jaraco-context" -version = "6.1.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/af/50/4763cd07e722bb6285316d390a164bc7e479db9d90daa769f22578f698b4/jaraco_context-6.1.2.tar.gz", hash = "sha256:f1a6c9d391e661cc5b8d39861ff077a7dc24dc23833ccee564b234b81c82dfe3", size = 16801, upload_time = "2026-03-20T22:13:33.922Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f2/58/bc8954bda5fcda97bd7c19be11b85f91973d67a706ed4a3aec33e7de22db/jaraco_context-6.1.2-py3-none-any.whl", hash = "sha256:bf8150b79a2d5d91ae48629d8b427a8f7ba0e1097dd6202a9059f29a36379535", size = 7871, upload_time = "2026-03-20T22:13:32.808Z" }, -] - -[[package]] -name = "jaraco-functools" -version = "4.5.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "more-itertools" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/36/cf/ea4ef2920830dea3f5ab2ea4da6fb67724e6dca80ee2553788c3607243d0/jaraco_functools-4.5.0.tar.gz", hash = "sha256:3bb5665ea4a020cf78a7040e89154c77edadb3ca74f366479669c5999aa70b03", size = 20272, upload_time = "2026-05-15T21:34:10.025Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/96/9a/982e48afcffcd727a9144506720ffd4224b6b7e355c98641866f38b7c043/jaraco_functools-4.5.0-py3-none-any.whl", hash = "sha256:79ce39246eddbde4b3a03b77ea5f0f7878dc669b166a66cf3fa8e266aa3fa2f4", size = 10594, upload_time = "2026-05-15T21:34:08.595Z" }, -] - -[[package]] -name = "jeepney" -version = "0.9.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/7b/6f/357efd7602486741aa73ffc0617fb310a29b588ed0fd69c2399acbb85b0c/jeepney-0.9.0.tar.gz", hash = "sha256:cf0e9e845622b81e4a28df94c40345400256ec608d0e55bb8a3feaa9163f5732", size = 106758, upload_time = "2025-02-27T18:51:01.684Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b2/a3/e137168c9c44d18eff0376253da9f1e9234d0239e0ee230d2fee6cea8e55/jeepney-0.9.0-py3-none-any.whl", hash = "sha256:97e5714520c16fc0a45695e5365a2e11b81ea79bba796e26f9f1d178cb182683", size = 49010, upload_time = "2025-02-27T18:51:00.104Z" }, -] - -[[package]] -name = "joserfc" -version = "1.6.5" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "cryptography" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/3b/dc/5f768c2e391e9afabe5d18e3221346deb5fb6338565f1ccc9e7c6d7befdd/joserfc-1.6.5.tar.gz", hash = "sha256:1482a7db78fb4602e44ed89e51b599d052e091288c7c532c5b694e20149dec48", size = 231881, upload_time = "2026-05-06T04:58:13.408Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/54/3b/ad1cb22e75c963b1f07c8a2329bf47227ce7e4361df5eb2fb101b2ce33ef/joserfc-1.6.5-py3-none-any.whl", hash = "sha256:e9878a0f8243fe7b95e11fdda81374ca9f7a689e302751579d3dfdeec559675e", size = 70464, upload_time = "2026-05-06T04:58:11.668Z" }, -] - -[[package]] -name = "jsonref" -version = "1.1.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/aa/0d/c1f3277e90ccdb50d33ed5ba1ec5b3f0a242ed8c1b1a85d3afeb68464dca/jsonref-1.1.0.tar.gz", hash = "sha256:32fe8e1d85af0fdefbebce950af85590b22b60f9e95443176adbde4e1ecea552", size = 8814, upload_time = "2023-01-16T16:10:04.455Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/0c/ec/e1db9922bceb168197a558a2b8c03a7963f1afe93517ddd3cf99f202f996/jsonref-1.1.0-py3-none-any.whl", hash = "sha256:590dc7773df6c21cbf948b5dac07a72a251db28b0238ceecce0a2abfa8ec30a9", size = 9425, upload_time = "2023-01-16T16:10:02.255Z" }, -] - -[[package]] -name = "jsonschema" -version = "4.26.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "attrs" }, - { name = "jsonschema-specifications" }, - { name = "referencing" }, - { name = "rpds-py" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/b3/fc/e067678238fa451312d4c62bf6e6cf5ec56375422aee02f9cb5f909b3047/jsonschema-4.26.0.tar.gz", hash = "sha256:0c26707e2efad8aa1bfc5b7ce170f3fccc2e4918ff85989ba9ffa9facb2be326", size = 366583, upload_time = "2026-01-07T13:41:07.246Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/69/90/f63fb5873511e014207a475e2bb4e8b2e570d655b00ac19a9a0ca0a385ee/jsonschema-4.26.0-py3-none-any.whl", hash = "sha256:d489f15263b8d200f8387e64b4c3a75f06629559fb73deb8fdfb525f2dab50ce", size = 90630, upload_time = "2026-01-07T13:41:05.306Z" }, -] - -[[package]] -name = "jsonschema-path" -version = "0.5.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "attrs" }, - { name = "pathable" }, - { name = "pyyaml" }, - { name = "referencing" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/39/79/cd02a4df6d9270efdc7d3feefe6edd730b0820c39eeaa107a2faee8322d5/jsonschema_path-0.5.0.tar.gz", hash = "sha256:493b156ba895c97602655b620a8456caa2ce08c1aa389f5a7addec065e6e855c", size = 19597, upload_time = "2026-05-19T20:45:00.971Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/04/2c/9e69d73c4297508be9e3b64a970ea3971b3eb8db64ffc5802d40bd25981f/jsonschema_path-0.5.0-py3-none-any.whl", hash = "sha256:2790a070bc7abb08ea3dbe4d340ece4efadf639223001f020c7503229ba068e2", size = 24077, upload_time = "2026-05-19T20:44:59.225Z" }, -] - -[[package]] -name = "jsonschema-specifications" -version = "2025.9.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "referencing" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/19/74/a633ee74eb36c44aa6d1095e7cc5569bebf04342ee146178e2d36600708b/jsonschema_specifications-2025.9.1.tar.gz", hash = "sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d", size = 32855, upload_time = "2025-09-08T01:34:59.186Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl", hash = "sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe", size = 18437, upload_time = "2025-09-08T01:34:57.871Z" }, -] - -[[package]] -name = "keyring" -version = "25.7.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "jaraco-classes" }, - { name = "jaraco-context" }, - { name = "jaraco-functools" }, - { name = "jeepney", marker = "sys_platform == 'linux'" }, - { name = "pywin32-ctypes", marker = "sys_platform == 'win32'" }, - { name = "secretstorage", marker = "sys_platform == 'linux'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/43/4b/674af6ef2f97d56f0ab5153bf0bfa28ccb6c3ed4d1babf4305449668807b/keyring-25.7.0.tar.gz", hash = "sha256:fe01bd85eb3f8fb3dd0405defdeac9a5b4f6f0439edbb3149577f244a2e8245b", size = 63516, upload_time = "2025-11-16T16:26:09.482Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/81/db/e655086b7f3a705df045bf0933bdd9c2f79bb3c97bfef1384598bb79a217/keyring-25.7.0-py3-none-any.whl", hash = "sha256:be4a0b195f149690c166e850609a477c532ddbfbaed96a404d4e43f8d5e2689f", size = 39160, upload_time = "2025-11-16T16:26:08.402Z" }, -] - -[[package]] -name = "markdown-it-py" -version = "4.2.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "mdurl" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/06/ff/7841249c247aa650a76b9ee4bbaeae59370dc8bfd2f6c01f3630c35eb134/markdown_it_py-4.2.0.tar.gz", hash = "sha256:04a21681d6fbb623de53f6f364d352309d4094dd4194040a10fd51833e418d49", size = 82454, upload_time = "2026-05-07T12:08:28.36Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b3/81/4da04ced5a082363ecfa159c010d200ecbd959ae410c10c0264a38cac0f5/markdown_it_py-4.2.0-py3-none-any.whl", hash = "sha256:9f7ebbcd14fe59494226453aed97c1070d83f8d24b6fc3a3bcf9a38092641c4a", size = 91687, upload_time = "2026-05-07T12:08:27.182Z" }, -] - -[[package]] -name = "mcp" -version = "1.27.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "anyio" }, - { name = "httpx" }, - { name = "httpx-sse" }, - { name = "jsonschema" }, - { name = "pydantic" }, - { name = "pydantic-settings" }, - { name = "pyjwt", extra = ["crypto"] }, - { name = "python-multipart" }, - { name = "pywin32", marker = "sys_platform == 'win32'" }, - { name = "sse-starlette" }, - { name = "starlette" }, - { name = "typing-extensions" }, - { name = "typing-inspection" }, - { name = "uvicorn", marker = "sys_platform != 'emscripten'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/38/83/d1efe7c2980d8a3afa476f4e3d42d53dd54c0ab94c27bee5d755b45c8b73/mcp-1.27.1.tar.gz", hash = "sha256:0f47e1820f8f8f941466b39749eb1d1839a04caddca2bc60e9d46e8a99914924", size = 608458, upload_time = "2026-05-08T16:50:12.601Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/fd/73/42d9596facebdb533b7f0b86c1b0364ef350d1f8ba78b1052e8a58b48b65/mcp-1.27.1-py3-none-any.whl", hash = "sha256:1af3c4203b329430fde7a87b4fcb6392a041f5cb851fd68fc674016ab4e7c06f", size = 216260, upload_time = "2026-05-08T16:50:10.547Z" }, -] - -[[package]] -name = "mdurl" -version = "0.1.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729, upload_time = "2022-08-14T12:40:10.846Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload_time = "2022-08-14T12:40:09.779Z" }, -] - -[[package]] -name = "more-itertools" -version = "11.0.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a2/f7/139d22fef48ac78127d18e01d80cf1be40236ae489769d17f35c3d425293/more_itertools-11.0.2.tar.gz", hash = "sha256:392a9e1e362cbc106a2457d37cabf9b36e5e12efd4ebff1654630e76597df804", size = 144659, upload_time = "2026-04-09T15:01:33.297Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/cb/98/6af411189d9413534c3eb691182bff1f5c6d44ed2f93f2edfe52a1bbceb8/more_itertools-11.0.2-py3-none-any.whl", hash = "sha256:6e35b35f818b01f691643c6c611bc0902f2e92b46c18fffa77ae1e7c46e912e4", size = 71939, upload_time = "2026-04-09T15:01:32.21Z" }, -] - -[[package]] -name = "oci" -version = "2.182.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "certifi" }, - { name = "circuitbreaker" }, - { name = "crc32c" }, - { name = "cryptography" }, - { name = "pyjwt" }, - { name = "pyopenssl" }, - { name = "python-dateutil" }, - { name = "pytz" }, - { name = "urllib3" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/7e/55/1316c21a03ae3f84e0b3b73f7d6f0cefbe2ebac60de0771cc15f6e7c0036/oci-2.182.1.tar.gz", hash = "sha256:9862de221f2abe9cf8319393eec58ea59c014fd9b61afaf0a3cca163e2a508b0", size = 17635695, upload_time = "2026-07-21T05:22:52.992Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1b/49/b77ee6877540b07e48d6defb48fb444c3eafd7558473c70a43c7beeb0cd8/oci-2.182.1-py3-none-any.whl", hash = "sha256:0c616a6bc3bc458464bc3456469d8da63a1a2d2277e9314b41a1c4e76d5df523", size = 35985050, upload_time = "2026-07-21T05:22:42.379Z" }, -] - -[[package]] -name = "openapi-pydantic" -version = "0.5.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pydantic" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/02/2e/58d83848dd1a79cb92ed8e63f6ba901ca282c5f09d04af9423ec26c56fd7/openapi_pydantic-0.5.1.tar.gz", hash = "sha256:ff6835af6bde7a459fb93eb93bb92b8749b754fc6e51b2f1590a19dc3005ee0d", size = 60892, upload_time = "2025-01-08T19:29:27.083Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/12/cf/03675d8bd8ecbf4445504d8071adab19f5f993676795708e36402ab38263/openapi_pydantic-0.5.1-py3-none-any.whl", hash = "sha256:a3a09ef4586f5bd760a8df7f43028b60cafb6d9f61de2acba9574766255ab146", size = 96381, upload_time = "2025-01-08T19:29:25.275Z" }, -] - -[[package]] -name = "opentelemetry-api" -version = "1.42.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "typing-extensions" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/86/ca/25288069c399be6769159d9fb7b1190b603537d82aad2fa2746a0cc2c8c6/opentelemetry_api-1.42.0.tar.gz", hash = "sha256:ea84c893ad177791d138e0349d6ceebd8d3bf006440900400ce220008dafc372", size = 72300, upload_time = "2026-05-19T09:46:29.885Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1b/0b/be5daf659b82b525338fde371dfcfab09b606a19bb5620c37076964710ec/opentelemetry_api-1.42.0-py3-none-any.whl", hash = "sha256:558d88f88192a973579910ef6f2c13db47a268d5ec2e53e83e50e74a39a02922", size = 61310, upload_time = "2026-05-19T09:46:06.561Z" }, -] - -[[package]] -name = "oracle-mcp-common" -version = "0.1.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "fastmcp" }, - { name = "oci" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/4d/6b/100af78875f52330c2818b6cc785dadfa974d4ce7eb6576e7917abd0e5f4/oracle_mcp_common-0.1.2.tar.gz", hash = "sha256:b01eceb3e17392bfcb65b589ba8f56f1f3fc9205a0498aba2eb79e89227d3ac8", size = 73783, upload_time = "2026-07-29T19:10:55.142Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/70/63/698ff36d71a2c58c4a2112ba2495490d2d978720a8b18894d1b831012864/oracle_mcp_common-0.1.2-py3-none-any.whl", hash = "sha256:7d476b54b962b721aadd1f2439bc117e244a87b4143fddef8f9defbbbfdb19b8", size = 11868, upload_time = "2026-07-29T19:10:53.99Z" }, -] - -[[package]] -name = "oracle-oci-db-observability-mcp-server" -version = "0.1.0" -source = { editable = "." } -dependencies = [ - { name = "fastmcp" }, - { name = "jsonschema" }, - { name = "oci" }, - { name = "oracle-mcp-common" }, - { name = "pydantic" }, -] - -[package.dev-dependencies] -dev = [ - { name = "openapi-pydantic" }, - { name = "pytest" }, - { name = "pytest-asyncio" }, - { name = "pytest-cov" }, - { name = "pyyaml" }, -] - -[package.metadata] -requires-dist = [ - { name = "fastmcp", specifier = "==3.4.5" }, - { name = "jsonschema", specifier = ">=4.25.0,<5.0.0" }, - { name = "oci", specifier = "==2.182.1" }, - { name = "oracle-mcp-common", specifier = ">=0.1.2,<0.2.0" }, - { name = "pydantic", specifier = "==2.13.4" }, -] - -[package.metadata.requires-dev] -dev = [ - { name = "openapi-pydantic", specifier = ">=0.5.1" }, - { name = "pytest", specifier = ">=9.0.3" }, - { name = "pytest-asyncio", specifier = ">=1.2.0" }, - { name = "pytest-cov", specifier = ">=7.0.0" }, - { name = "pyyaml", specifier = ">=6.0.3" }, -] - -[[package]] -name = "packaging" -version = "26.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d7/f1/e7a6dd94a8d4a5626c03e4e99c87f241ba9e350cd9e6d75123f992427270/packaging-26.2.tar.gz", hash = "sha256:ff452ff5a3e828ce110190feff1178bb1f2ea2281fa2075aadb987c2fb221661", size = 228134, upload_time = "2026-04-24T20:15:23.917Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl", hash = "sha256:5fc45236b9446107ff2415ce77c807cee2862cb6fac22b8a73826d0693b0980e", size = 100195, upload_time = "2026-04-24T20:15:22.081Z" }, -] - -[[package]] -name = "pathable" -version = "0.6.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/66/f3/5a20387de9bcd0607871bfc2198ee0e15836da7baa4592ccd7f24c27c986/pathable-0.6.0.tar.gz", hash = "sha256:6404b8b82aef5ff0fd478934137128b99b12212ba35afdde5525ca4f8388ea58", size = 18970, upload_time = "2026-05-19T18:15:11.911Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a2/e8/6d75ffd9784bce2e93d1ae4415649427e39a53bb172d4672b2b59c6f0a7b/pathable-0.6.0-py3-none-any.whl", hash = "sha256:82c4ca6c98c502ad12e0d4e9779b6210afee93c38990988c8c5d1b49bdcdf566", size = 18983, upload_time = "2026-05-19T18:15:10.728Z" }, -] - -[[package]] -name = "platformdirs" -version = "4.9.6" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/9f/4a/0883b8e3802965322523f0b200ecf33d31f10991d0401162f4b23c698b42/platformdirs-4.9.6.tar.gz", hash = "sha256:3bfa75b0ad0db84096ae777218481852c0ebc6c727b3168c1b9e0118e458cf0a", size = 29400, upload_time = "2026-04-09T00:04:10.812Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/75/a6/a0a304dc33b49145b21f4808d763822111e67d1c3a32b524a1baf947b6e1/platformdirs-4.9.6-py3-none-any.whl", hash = "sha256:e61adb1d5e5cb3441b4b7710bea7e4c12250ca49439228cc1021c00dcfac0917", size = 21348, upload_time = "2026-04-09T00:04:09.463Z" }, -] - -[[package]] -name = "pluggy" -version = "1.6.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412, upload_time = "2025-05-15T12:30:07.975Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload_time = "2025-05-15T12:30:06.134Z" }, -] - -[[package]] -name = "py-key-value-aio" -version = "0.4.4" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "beartype" }, - { name = "typing-extensions" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/04/3c/0397c072a38d4bc580994b42e0c90c5f44f679303489e4376289534735e5/py_key_value_aio-0.4.4.tar.gz", hash = "sha256:e3012e6243ed7cc09bb05457bd4d03b1ba5c2b1ca8700096b3927db79ffbbe55", size = 92300, upload_time = "2026-02-16T21:21:43.245Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/32/69/f1b537ee70b7def42d63124a539ed3026a11a3ffc3086947a1ca6e861868/py_key_value_aio-0.4.4-py3-none-any.whl", hash = "sha256:18e17564ecae61b987f909fc2cd41ee2012c84b4b1dcb8c055cf8b4bc1bf3f5d", size = 152291, upload_time = "2026-02-16T21:21:44.241Z" }, -] - -[package.optional-dependencies] -filetree = [ - { name = "aiofile" }, - { name = "anyio" }, -] -keyring = [ - { name = "keyring" }, -] -memory = [ - { name = "cachetools" }, -] - -[[package]] -name = "pycparser" -version = "3.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1b/7d/92392ff7815c21062bea51aa7b87d45576f649f16458d78b7cf94b9ab2e6/pycparser-3.0.tar.gz", hash = "sha256:600f49d217304a5902ac3c37e1281c9fe94e4d0489de643a9504c5cdfdfc6b29", size = 103492, upload_time = "2026-01-21T14:26:51.89Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/0c/c3/44f3fbbfa403ea2a7c779186dc20772604442dde72947e7d01069cbe98e3/pycparser-3.0-py3-none-any.whl", hash = "sha256:b727414169a36b7d524c1c3e31839a521725078d7b2ff038656844266160a992", size = 48172, upload_time = "2026-01-21T14:26:50.693Z" }, -] - -[[package]] -name = "pydantic" -version = "2.13.4" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "annotated-types" }, - { name = "pydantic-core" }, - { name = "typing-extensions" }, - { name = "typing-inspection" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/18/a5/b60d21ac674192f8ab0ba4e9fd860690f9b4a6e51ca5df118733b487d8d6/pydantic-2.13.4.tar.gz", hash = "sha256:c40756b57adaa8b1efeeced5c196f3f3b7c435f90e84ea7f443901bec8099ef6", size = 844775, upload_time = "2026-05-06T13:43:05.343Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/fd/7b/122376b1fd3c62c1ed9dc80c931ace4844b3c55407b6fb2d199377c9736f/pydantic-2.13.4-py3-none-any.whl", hash = "sha256:45a282cde31d808236fd7ea9d919b128653c8b38b393d1c4ab335c62924d9aba", size = 472262, upload_time = "2026-05-06T13:43:02.641Z" }, -] - -[package.optional-dependencies] -email = [ - { name = "email-validator" }, -] - -[[package]] -name = "pydantic-core" -version = "2.46.4" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "typing-extensions" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/9d/56/921726b776ace8d8f5db44c4ef961006580d91dc52b803c489fafd1aa249/pydantic_core-2.46.4.tar.gz", hash = "sha256:62f875393d7f270851f20523dd2e29f082bcc82292d66db2b64ea71f64b6e1c1", size = 471464, upload_time = "2026-05-06T13:37:06.98Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/51/a2/5d30b469c5267a17b39dec53208222f76a8d351dfac4af661888c5aee77d/pydantic_core-2.46.4-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:5d5902252db0d3cedf8d4a1bc68f70eeb430f7e4c7104c8c476753519b423008", size = 2106306, upload_time = "2026-05-06T13:37:48.029Z" }, - { url = "https://files.pythonhosted.org/packages/c1/81/4fa520eaffa8bd7d1525e644cd6d39e7d60b1592bc5b516693c7340b50f1/pydantic_core-2.46.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c94f0688e7b8d0a67abf40e57a7eaaecd17cc9586706a31b76c031f63df052b4", size = 1951906, upload_time = "2026-05-06T13:37:17.012Z" }, - { url = "https://files.pythonhosted.org/packages/03/d5/fd02da45b659668b05923b17ba3a0100a0a3d5541e3bd8fcc4ecb711309e/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f027324c56cd5406ca49c124b0db10e56c69064fec039acc571c29020cc87c76", size = 1976802, upload_time = "2026-05-06T13:37:35.113Z" }, - { url = "https://files.pythonhosted.org/packages/21/f2/95727e1368be3d3ed485eaab7adbd7dda408f33f7a36e8b48e0144002b91/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e739fee756ba1010f8bcccb534252e85a35fe45ae92c295a06059ce58b74ccd3", size = 2052446, upload_time = "2026-05-06T13:37:12.313Z" }, - { url = "https://files.pythonhosted.org/packages/9c/86/5d99feea3f77c7234b8718075b23db11532773c1a0dbd9b9490215dc2eeb/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9d56801be94b86a9da183e5f3766e6310752b99ff647e38b09a9500d88e46e76", size = 2232757, upload_time = "2026-05-06T13:39:01.149Z" }, - { url = "https://files.pythonhosted.org/packages/d2/3a/508ac615935ef7588cf6d9e9b91309fdc2da751af865e02a9098de88258c/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2412e734dcb48da14d4e4006b82b46b74f2518b8a26ee7e58c6844a6cd6d03c4", size = 2309275, upload_time = "2026-05-06T13:37:41.406Z" }, - { url = "https://files.pythonhosted.org/packages/07/f8/41db9de19d7987d6b04715a02b3b40aea467000275d9d758ffaa31af7d50/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9551187363ffc0de2a00b2e47c25aeaeb1020b69b668762966df15fc5659dd5a", size = 2094467, upload_time = "2026-05-06T13:39:18.847Z" }, - { url = "https://files.pythonhosted.org/packages/2c/e2/f35033184cb11d0052daf4416e8e10a502ea2ac006fc4f459aee872727d1/pydantic_core-2.46.4-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:0186750b482eefa11d7f435892b09c5c606193ef3375bcf94aa00ae6bfb66262", size = 2134417, upload_time = "2026-05-06T13:40:17.944Z" }, - { url = "https://files.pythonhosted.org/packages/7e/7b/6ceeb1cc90e193862f444ebe373d8fdf613f0a82572dde03fb10734c6c71/pydantic_core-2.46.4-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5855698a4856556d86e8e6cd8434bc3ac0314ee8e12089ae0e143f64c6256e4e", size = 2179782, upload_time = "2026-05-06T13:40:32.618Z" }, - { url = "https://files.pythonhosted.org/packages/5a/f2/c8d7773ede6af08036423a00ae0ceffce266c3c52a096c435d68c896083f/pydantic_core-2.46.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:cbaf13819775b7f769bf4a1f066cb6df7a28d4480081a589828ef190226881cd", size = 2188782, upload_time = "2026-05-06T13:36:51.018Z" }, - { url = "https://files.pythonhosted.org/packages/59/31/0c864784e31f09f05cdd87606f08923b9c9e7f6e51dd27f20f62f975ce9f/pydantic_core-2.46.4-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:633147d34cf4550417f12e2b1a0383973bdf5cdfde212cb09e9a581cf10820be", size = 2328334, upload_time = "2026-05-06T13:40:37.764Z" }, - { url = "https://files.pythonhosted.org/packages/c2/eb/4f6c8a41efa30baa755590f4141abf3a8c370fab610915733e74134a7270/pydantic_core-2.46.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:82cf5301172168103724d49a1444d3378cb20cdee30b116a1bd6031236298a5d", size = 2372986, upload_time = "2026-05-06T13:39:34.152Z" }, - { url = "https://files.pythonhosted.org/packages/5b/24/b375a480d53113860c299764bfe9f349a3dc9108b3adc0d7f0d786492ebf/pydantic_core-2.46.4-cp313-cp313-win32.whl", hash = "sha256:9fa8ae11da9e2b3126c6426f147e0fba88d96d65921799bb30c6abd1cb2c97fb", size = 1973693, upload_time = "2026-05-06T13:37:55.072Z" }, - { url = "https://files.pythonhosted.org/packages/7e/e8/cff247591966f2d22ec8c003cd7587e27b7ba7b81ab2fb888e3ab75dc285/pydantic_core-2.46.4-cp313-cp313-win_amd64.whl", hash = "sha256:6b3ace8194b0e5204818c92802dcdca7fc6d88aabbb799d7c795540d9cd6d292", size = 2071819, upload_time = "2026-05-06T13:38:49.139Z" }, - { url = "https://files.pythonhosted.org/packages/c6/1a/f4aee670d5670e9e148e0c82c7db98d780be566c6e6a97ee8035528ca0b3/pydantic_core-2.46.4-cp313-cp313-win_arm64.whl", hash = "sha256:184c081504d17f1c1066e430e117142b2c77d9448a97f7b65c6ac9fd9aee238d", size = 2027411, upload_time = "2026-05-06T13:40:45.796Z" }, - { url = "https://files.pythonhosted.org/packages/8d/74/228a26ddad29c6672b805d9fd78e8d251cd04004fa7eed0e622096cd0250/pydantic_core-2.46.4-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:428e04521a40150c85216fc8b85e8d39fece235a9cf5e383761238c7fa9b96fb", size = 2102079, upload_time = "2026-05-06T13:38:41.019Z" }, - { url = "https://files.pythonhosted.org/packages/ad/1f/8970b150a4b4365623ae00fc88603491f763c627311ae8031e3111356d6e/pydantic_core-2.46.4-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:23ace664830ee0bfe014a0c7bc248b1f7f25ed7ad103852c317624a1083af462", size = 1952179, upload_time = "2026-05-06T13:36:59.812Z" }, - { url = "https://files.pythonhosted.org/packages/95/30/5211a831ae054928054b2f79731661087a2bc5c01e825c672b3a4a8f1b3e/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce5c1d2a8b27468f433ca974829c44060b8097eedc39933e3c206a90ee49c4a9", size = 1978926, upload_time = "2026-05-06T13:37:39.933Z" }, - { url = "https://files.pythonhosted.org/packages/57/e9/689668733b1eb67adeef047db3c2e8788fcf65a7fd9c9e2b46b7744fe245/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7283d57845ecf5a163403eb0702dfc220cc4fbdd18919cb5ccea4f95ee1cdab4", size = 2046785, upload_time = "2026-05-06T13:38:01.995Z" }, - { url = "https://files.pythonhosted.org/packages/60/d9/6715260422ff50a2109878fd24d948a6c3446bb2664f34ee78cd972b3acd/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8daafc69c93ee8a0204506a3b6b30f586ef54028f52aeeeb5c4cfc5184fd5914", size = 2228733, upload_time = "2026-05-06T13:40:50.371Z" }, - { url = "https://files.pythonhosted.org/packages/18/ae/fdb2f64316afca925640f8e70bb1a564b0ec2721c1389e25b8eb4bf9a299/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd2213145bcc2ba85884d0ac63d222fece9209678f77b9b4d76f054c561adb28", size = 2307534, upload_time = "2026-05-06T13:37:21.531Z" }, - { url = "https://files.pythonhosted.org/packages/89/1d/8eff589b45bb8190a9d12c49cfad0f176a5cbd1534908a6b5125e2886239/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a5f930472650a82629163023e630d160863fce524c616f4e5186e5de9d9a49b", size = 2099732, upload_time = "2026-05-06T13:39:31.942Z" }, - { url = "https://files.pythonhosted.org/packages/06/d5/ee5a3366637fee41dee51a1fc91562dcf12ddbc68fda34e6b253da2324bb/pydantic_core-2.46.4-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:c1b3f518abeca3aa13c712fd202306e145abf59a18b094a6bafb2d2bbf59192c", size = 2129627, upload_time = "2026-05-06T13:37:25.033Z" }, - { url = "https://files.pythonhosted.org/packages/94/33/2414be571d2c6a6c4d08be21f9292b6d3fdb08949a97b6dfe985017821db/pydantic_core-2.46.4-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1a7dd0b3ee80d90150e3495a3a13ac34dbcbfd4f012996a6a1d8900e91b5c0fb", size = 2179141, upload_time = "2026-05-06T13:37:14.046Z" }, - { url = "https://files.pythonhosted.org/packages/7b/79/7daa95be995be0eecc4cf75064cb33f9bbbfe3fe0158caf2f0d4a996a5c7/pydantic_core-2.46.4-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:3fb702cd90b0446a3a1c5e470bfa0dd23c0233b676a9099ddcc964fa6ca13898", size = 2184325, upload_time = "2026-05-06T13:36:53.615Z" }, - { url = "https://files.pythonhosted.org/packages/9f/cb/d0a382f5c0de8a222dc61c65348e0ce831b1f68e0a018450d31c2cace3a5/pydantic_core-2.46.4-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:b8458003118a712e66286df6a707db01c52c0f52f7db8e4a38f0da1d3b94fc4e", size = 2323990, upload_time = "2026-05-06T13:40:29.971Z" }, - { url = "https://files.pythonhosted.org/packages/05/db/d9ba624cc4a5aced1598e88c04fdbd8310c8a69b9d38b9a3d39ce3a61ed7/pydantic_core-2.46.4-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:372429a130e469c9cd698925ce5fc50940b7a1336b0d82038e63d5bbc4edc519", size = 2369978, upload_time = "2026-05-06T13:37:23.027Z" }, - { url = "https://files.pythonhosted.org/packages/f2/20/d15df15ba918c423461905802bfd2981c3af0bfa0e40d05e13edbfa48bc3/pydantic_core-2.46.4-cp314-cp314-win32.whl", hash = "sha256:85bb3611ff1802f3ee7fdd7dbff26b56f343fb432d57a4728fdd49b6ef35e2f4", size = 1966354, upload_time = "2026-05-06T13:38:03.499Z" }, - { url = "https://files.pythonhosted.org/packages/fc/b6/6b8de4c0a7d7ab3004c439c80c5c1e0a3e8d78bbae19379b01960383d9e5/pydantic_core-2.46.4-cp314-cp314-win_amd64.whl", hash = "sha256:811ff8e9c313ab425368bcbb36e5c4ebd7108c2bbf4e4089cfbb0b01eff63fac", size = 2072238, upload_time = "2026-05-06T13:39:40.807Z" }, - { url = "https://files.pythonhosted.org/packages/32/36/51eb763beec1f4cf59b1db243a7dcc39cbb41230f050a09b9d69faaf0a48/pydantic_core-2.46.4-cp314-cp314-win_arm64.whl", hash = "sha256:bfec22eab3c8cc2ceec0248aec886624116dc079afa027ecc8ad4a7e62010f8a", size = 2018251, upload_time = "2026-05-06T13:37:26.72Z" }, - { url = "https://files.pythonhosted.org/packages/e8/91/855af51d625b23aa987116a19e231d2aaef9c4a415273ddc189b79a45fee/pydantic_core-2.46.4-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:af8244b2bef6aaad6d92cda81372de7f8c8d36c9f0c3ea36e827c60e7d9467a0", size = 2099593, upload_time = "2026-05-06T13:39:47.682Z" }, - { url = "https://files.pythonhosted.org/packages/fb/1b/8784a54c65edb5f49f0a14d6977cf1b209bba85a4c77445b255c2de58ab3/pydantic_core-2.46.4-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5a4330cdbc57162e4b3aa303f588ba752257694c9c9be3e7ebb11b4aca659b5d", size = 1935226, upload_time = "2026-05-06T13:40:40.428Z" }, - { url = "https://files.pythonhosted.org/packages/e8/e7/1955d28d1afc56dd4b3ad7cc0cf39df1b9852964cf16e5d13912756d6d6b/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:29c61fc04a3d840155ff08e475a04809278972fe6aef51e2720554e96367e34b", size = 1974605, upload_time = "2026-05-06T13:37:32.029Z" }, - { url = "https://files.pythonhosted.org/packages/93/e2/3fedbf0ba7a22850e6e9fd78117f1c0f10f950182344d8a6c535d468fdd8/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c50f2528cf200c5eed56faf3f4e22fcd5f38c157a8b78576e6ba3168ec35f000", size = 2030777, upload_time = "2026-05-06T13:38:55.239Z" }, - { url = "https://files.pythonhosted.org/packages/f8/61/46be275fcaaba0b4f5b9669dd852267ce1ff616592dccf7a7845588df091/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0cbe8b01f948de4286c74cdd6c667aceb38f5c1e26f0693b3983d9d74887c65e", size = 2236641, upload_time = "2026-05-06T13:37:08.096Z" }, - { url = "https://files.pythonhosted.org/packages/60/db/12e93e46a8bac9988be3c016860f83293daea8c716c029c9ace279036f2f/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:617d7e2ca7dcb8c5cf6bcb8c59b8832c94b36196bbf1cbd1bfb56ed341905edd", size = 2286404, upload_time = "2026-05-06T13:40:20.221Z" }, - { url = "https://files.pythonhosted.org/packages/e2/4a/4d8b19008f38d31c53b8219cfedc2e3d5de5fe99d90076b7e767de29274f/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7027560ee92211647d0d34e3f7cd6f50da56399d26a9c8ad0da286d3869a53f3", size = 2109219, upload_time = "2026-05-06T13:38:12.153Z" }, - { url = "https://files.pythonhosted.org/packages/88/70/3cbc40978fefb7bb09c6708d40d4ad1a5d70fd7213c3d17f971de868ec1f/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:f99626688942fb746e545232e7726926f3be91b5975f8b55327665fafda991c7", size = 2110594, upload_time = "2026-05-06T13:40:02.971Z" }, - { url = "https://files.pythonhosted.org/packages/9d/20/b8d36736216e29491125531685b2f9e61aa5b4b2599893f8268551da3338/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fc3e9034a63de20e15e8ade85358bc6efc614008cab72898b4b4952bea0509ff", size = 2159542, upload_time = "2026-05-06T13:39:27.506Z" }, - { url = "https://files.pythonhosted.org/packages/1d/a2/367df868eb584dacf6bf82a389272406d7178e301c4ac82545ab98bc2dd9/pydantic_core-2.46.4-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:97e7cf2be5c77b7d1a9713a05605d49460d02c6078d38d8bef3cbe323c548424", size = 2168146, upload_time = "2026-05-06T13:38:31.93Z" }, - { url = "https://files.pythonhosted.org/packages/c1/b8/4460f77f7e201893f649a29ab355dddd3beee8a97bcb1a320db414f9a06e/pydantic_core-2.46.4-cp314-cp314t-musllinux_1_1_armv7l.whl", hash = "sha256:3bf92c5d0e00fefaab325a4d27828fe6b6e2a21848686b5b60d2d9eeb09d76c6", size = 2306309, upload_time = "2026-05-06T13:37:44.717Z" }, - { url = "https://files.pythonhosted.org/packages/64/c4/be2639293acd87dc8ddbcec41a73cee9b2ebf996fe6d892a1a74e88ad3f7/pydantic_core-2.46.4-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:3ecbc122d18468d06ca279dc26a8c2e2d5acb10943bb35e36ae92096dc3b5565", size = 2369736, upload_time = "2026-05-06T13:37:05.645Z" }, - { url = "https://files.pythonhosted.org/packages/30/a6/9f9f380dbb301f67023bf8f707aaa75daadf84f7152d95c410fd7e81d994/pydantic_core-2.46.4-cp314-cp314t-win32.whl", hash = "sha256:e846ae7835bf0703ae43f534ab79a867146dadd59dc9ca5c8b53d5c8f7c9ef02", size = 1955575, upload_time = "2026-05-06T13:38:51.116Z" }, - { url = "https://files.pythonhosted.org/packages/40/1f/f1eb9eb350e795d1af8586289746f5c5677d16043040d63710e22abc43c9/pydantic_core-2.46.4-cp314-cp314t-win_amd64.whl", hash = "sha256:2108ba5c1c1eca18030634489dc544844144ee36357f2f9f780b93e7ddbb44b5", size = 2051624, upload_time = "2026-05-06T13:38:21.672Z" }, - { url = "https://files.pythonhosted.org/packages/f6/d2/42dd53d0a85c27606f316d3aa5d2869c4e8470a5ed6dec30e4a1abe19192/pydantic_core-2.46.4-cp314-cp314t-win_arm64.whl", hash = "sha256:4fcbe087dbc2068af7eda3aa87634eba216dbda64d1ae73c8684b621d33f6596", size = 2017325, upload_time = "2026-05-06T13:40:52.723Z" }, -] - -[[package]] -name = "pydantic-settings" -version = "2.14.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pydantic" }, - { name = "python-dotenv" }, - { name = "typing-inspection" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/07/60/1d1e59c9c90d54591469ada7d268251f71c24bdb765f1a8a832cee8c6653/pydantic_settings-2.14.1.tar.gz", hash = "sha256:e874d3bec7e787b0c9958277956ed9b4dd5de6a80e162188fdaff7c5e26fd5fa", size = 235551, upload_time = "2026-05-08T13:40:06.542Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ae/8d/f1af3832f5e6eb13ba94ee809e72b8ecb5eef226d27ee0bef7d963d943c7/pydantic_settings-2.14.1-py3-none-any.whl", hash = "sha256:6e3c7edfd8277687cdc598f56e5cff0e9bfff0910a3749deaa8d4401c3a2b9de", size = 60964, upload_time = "2026-05-08T13:40:04.958Z" }, -] - -[[package]] -name = "pygments" -version = "2.20.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/c3/b2/bc9c9196916376152d655522fdcebac55e66de6603a76a02bca1b6414f6c/pygments-2.20.0.tar.gz", hash = "sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f", size = 4955991, upload_time = "2026-03-29T13:29:33.898Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl", hash = "sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176", size = 1231151, upload_time = "2026-03-29T13:29:30.038Z" }, -] - -[[package]] -name = "pyjwt" -version = "2.12.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/c2/27/a3b6e5bf6ff856d2509292e95c8f57f0df7017cf5394921fc4e4ef40308a/pyjwt-2.12.1.tar.gz", hash = "sha256:c74a7a2adf861c04d002db713dd85f84beb242228e671280bf709d765b03672b", size = 102564, upload_time = "2026-03-13T19:27:37.25Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e5/7a/8dd906bd22e79e47397a61742927f6747fe93242ef86645ee9092e610244/pyjwt-2.12.1-py3-none-any.whl", hash = "sha256:28ca37c070cad8ba8cd9790cd940535d40274d22f80ab87f3ac6a713e6e8454c", size = 29726, upload_time = "2026-03-13T19:27:35.677Z" }, -] - -[package.optional-dependencies] -crypto = [ - { name = "cryptography" }, -] - -[[package]] -name = "pyopenssl" -version = "26.2.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "cryptography" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/1a/51/27a5ad5f939d08f690a326ef9582cda7140555180db71695f6fb747d6a36/pyopenssl-26.2.0.tar.gz", hash = "sha256:8c6fcecd1183a7fc897548dfe388b0cdb7f37e018200d8409cf33959dbe35387", size = 182195, upload_time = "2026-05-04T23:06:09.72Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/73/b8/a0e2790ae249d6f38c9f66de7a211621a7ab2650217bcd04e1262f578a56/pyopenssl-26.2.0-py3-none-any.whl", hash = "sha256:4f9d971bc5298b8bc1fab282803da04bf000c755d4ad9d99b52de2569ca19a70", size = 55823, upload_time = "2026-05-04T23:06:08.395Z" }, -] - -[[package]] -name = "pyperclip" -version = "1.11.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e8/52/d87eba7cb129b81563019d1679026e7a112ef76855d6159d24754dbd2a51/pyperclip-1.11.0.tar.gz", hash = "sha256:244035963e4428530d9e3a6101a1ef97209c6825edab1567beac148ccc1db1b6", size = 12185, upload_time = "2025-09-26T14:40:37.245Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/df/80/fc9d01d5ed37ba4c42ca2b55b4339ae6e200b456be3a1aaddf4a9fa99b8c/pyperclip-1.11.0-py3-none-any.whl", hash = "sha256:299403e9ff44581cb9ba2ffeed69c7aa96a008622ad0c46cb575ca75b5b84273", size = 11063, upload_time = "2025-09-26T14:40:36.069Z" }, -] - -[[package]] -name = "pytest" -version = "9.0.3" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "colorama", marker = "sys_platform == 'win32'" }, - { name = "iniconfig" }, - { name = "packaging" }, - { name = "pluggy" }, - { name = "pygments" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/7d/0d/549bd94f1a0a402dc8cf64563a117c0f3765662e2e668477624baeec44d5/pytest-9.0.3.tar.gz", hash = "sha256:b86ada508af81d19edeb213c681b1d48246c1a91d304c6c81a427674c17eb91c", size = 1572165, upload_time = "2026-04-07T17:16:18.027Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d4/24/a372aaf5c9b7208e7112038812994107bc65a84cd00e0354a88c2c77a617/pytest-9.0.3-py3-none-any.whl", hash = "sha256:2c5efc453d45394fdd706ade797c0a81091eccd1d6e4bccfcd476e2b8e0ab5d9", size = 375249, upload_time = "2026-04-07T17:16:16.13Z" }, -] - -[[package]] -name = "pytest-asyncio" -version = "1.3.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pytest" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/90/2c/8af215c0f776415f3590cac4f9086ccefd6fd463befeae41cd4d3f193e5a/pytest_asyncio-1.3.0.tar.gz", hash = "sha256:d7f52f36d231b80ee124cd216ffb19369aa168fc10095013c6b014a34d3ee9e5", size = 50087, upload_time = "2025-11-10T16:07:47.256Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e5/35/f8b19922b6a25bc0880171a2f1a003eaeb93657475193ab516fd87cac9da/pytest_asyncio-1.3.0-py3-none-any.whl", hash = "sha256:611e26147c7f77640e6d0a92a38ed17c3e9848063698d5c93d5aa7aa11cebff5", size = 15075, upload_time = "2025-11-10T16:07:45.537Z" }, -] - -[[package]] -name = "pytest-cov" -version = "7.1.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "coverage" }, - { name = "pluggy" }, - { name = "pytest" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/b1/51/a849f96e117386044471c8ec2bd6cfebacda285da9525c9106aeb28da671/pytest_cov-7.1.0.tar.gz", hash = "sha256:30674f2b5f6351aa09702a9c8c364f6a01c27aae0c1366ae8016160d1efc56b2", size = 55592, upload_time = "2026-03-21T20:11:16.284Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/9d/7a/d968e294073affff457b041c2be9868a40c1c71f4a35fcc1e45e5493067b/pytest_cov-7.1.0-py3-none-any.whl", hash = "sha256:a0461110b7865f9a271aa1b51e516c9a95de9d696734a2f71e3e78f46e1d4678", size = 22876, upload_time = "2026-03-21T20:11:14.438Z" }, -] - -[[package]] -name = "python-dateutil" -version = "2.9.0.post0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "six" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432, upload_time = "2024-03-01T18:36:20.211Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload_time = "2024-03-01T18:36:18.57Z" }, -] - -[[package]] -name = "python-dotenv" -version = "1.2.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/82/ed/0301aeeac3e5353ef3d94b6ec08bbcabd04a72018415dcb29e588514bba8/python_dotenv-1.2.2.tar.gz", hash = "sha256:2c371a91fbd7ba082c2c1dc1f8bf89ca22564a087c2c287cd9b662adde799cf3", size = 50135, upload_time = "2026-03-01T16:00:26.196Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl", hash = "sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a", size = 22101, upload_time = "2026-03-01T16:00:25.09Z" }, -] - -[[package]] -name = "python-multipart" -version = "0.0.29" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/4e/fe/70bd71a6738b09a0bdf6480ca6436b167469ca4578b2a0efbe390b4b0e70/python_multipart-0.0.29.tar.gz", hash = "sha256:643e93849196645e2dbdd81a0f8829a23123ad7f797a84a364c6fb3563f18904", size = 45678, upload_time = "2026-05-17T17:29:47.654Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/8f/cb/769cfc37177252872a45a71f3fbdde9d51b471a3f3c14bfe95dde3407386/python_multipart-0.0.29-py3-none-any.whl", hash = "sha256:2ddcc971cef266225f54f552d8fa10bcfbb1f14446caec199060daac59ff2d69", size = 29640, upload_time = "2026-05-17T17:29:45.69Z" }, -] - -[[package]] -name = "pytz" -version = "2026.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ff/46/dd499ec9038423421951e4fad73051febaa13d2df82b4064f87af8b8c0c3/pytz-2026.2.tar.gz", hash = "sha256:0e60b47b29f21574376f218fe21abc009894a2321ea16c6754f3cad6eb7cdd6a", size = 320861, upload_time = "2026-05-04T01:35:29.667Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ec/dd/96da98f892250475bdf2328112d7468abdd4acc7b902b6af23f4ed958ea0/pytz-2026.2-py2.py3-none-any.whl", hash = "sha256:04156e608bee23d3792fd45c94ae47fae1036688e75032eea2e3bf0323d1f126", size = 510141, upload_time = "2026-05-04T01:35:27.408Z" }, -] - -[[package]] -name = "pywin32" -version = "311" -source = { registry = "https://pypi.org/simple" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a5/be/3fd5de0979fcb3994bfee0d65ed8ca9506a8a1260651b86174f6a86f52b3/pywin32-311-cp313-cp313-win32.whl", hash = "sha256:f95ba5a847cba10dd8c4d8fefa9f2a6cf283b8b88ed6178fa8a6c1ab16054d0d", size = 8705700, upload_time = "2025-07-14T20:13:26.471Z" }, - { url = "https://files.pythonhosted.org/packages/e3/28/e0a1909523c6890208295a29e05c2adb2126364e289826c0a8bc7297bd5c/pywin32-311-cp313-cp313-win_amd64.whl", hash = "sha256:718a38f7e5b058e76aee1c56ddd06908116d35147e133427e59a3983f703a20d", size = 9494700, upload_time = "2025-07-14T20:13:28.243Z" }, - { url = "https://files.pythonhosted.org/packages/04/bf/90339ac0f55726dce7d794e6d79a18a91265bdf3aa70b6b9ca52f35e022a/pywin32-311-cp313-cp313-win_arm64.whl", hash = "sha256:7b4075d959648406202d92a2310cb990fea19b535c7f4a78d3f5e10b926eeb8a", size = 8709318, upload_time = "2025-07-14T20:13:30.348Z" }, - { url = "https://files.pythonhosted.org/packages/c9/31/097f2e132c4f16d99a22bfb777e0fd88bd8e1c634304e102f313af69ace5/pywin32-311-cp314-cp314-win32.whl", hash = "sha256:b7a2c10b93f8986666d0c803ee19b5990885872a7de910fc460f9b0c2fbf92ee", size = 8840714, upload_time = "2025-07-14T20:13:32.449Z" }, - { url = "https://files.pythonhosted.org/packages/90/4b/07c77d8ba0e01349358082713400435347df8426208171ce297da32c313d/pywin32-311-cp314-cp314-win_amd64.whl", hash = "sha256:3aca44c046bd2ed8c90de9cb8427f581c479e594e99b5c0bb19b29c10fd6cb87", size = 9656800, upload_time = "2025-07-14T20:13:34.312Z" }, - { url = "https://files.pythonhosted.org/packages/c0/d2/21af5c535501a7233e734b8af901574572da66fcc254cb35d0609c9080dd/pywin32-311-cp314-cp314-win_arm64.whl", hash = "sha256:a508e2d9025764a8270f93111a970e1d0fbfc33f4153b388bb649b7eec4f9b42", size = 8932540, upload_time = "2025-07-14T20:13:36.379Z" }, -] - -[[package]] -name = "pywin32-ctypes" -version = "0.2.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/85/9f/01a1a99704853cb63f253eea009390c88e7131c67e66a0a02099a8c917cb/pywin32-ctypes-0.2.3.tar.gz", hash = "sha256:d162dc04946d704503b2edc4d55f3dba5c1d539ead017afa00142c38b9885755", size = 29471, upload_time = "2024-08-14T10:15:34.626Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/de/3d/8161f7711c017e01ac9f008dfddd9410dff3674334c233bde66e7ba65bbf/pywin32_ctypes-0.2.3-py3-none-any.whl", hash = "sha256:8a1513379d709975552d202d942d9837758905c8d01eb82b8bcc30918929e7b8", size = 30756, upload_time = "2024-08-14T10:15:33.187Z" }, -] - -[[package]] -name = "pyyaml" -version = "6.0.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload_time = "2025-09-25T21:33:16.546Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d1/11/0fd08f8192109f7169db964b5707a2f1e8b745d4e239b784a5a1dd80d1db/pyyaml-6.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8", size = 181669, upload_time = "2025-09-25T21:32:23.673Z" }, - { url = "https://files.pythonhosted.org/packages/b1/16/95309993f1d3748cd644e02e38b75d50cbc0d9561d21f390a76242ce073f/pyyaml-6.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1", size = 173252, upload_time = "2025-09-25T21:32:25.149Z" }, - { url = "https://files.pythonhosted.org/packages/50/31/b20f376d3f810b9b2371e72ef5adb33879b25edb7a6d072cb7ca0c486398/pyyaml-6.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c", size = 767081, upload_time = "2025-09-25T21:32:26.575Z" }, - { url = "https://files.pythonhosted.org/packages/49/1e/a55ca81e949270d5d4432fbbd19dfea5321eda7c41a849d443dc92fd1ff7/pyyaml-6.0.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5", size = 841159, upload_time = "2025-09-25T21:32:27.727Z" }, - { url = "https://files.pythonhosted.org/packages/74/27/e5b8f34d02d9995b80abcef563ea1f8b56d20134d8f4e5e81733b1feceb2/pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6", size = 801626, upload_time = "2025-09-25T21:32:28.878Z" }, - { url = "https://files.pythonhosted.org/packages/f9/11/ba845c23988798f40e52ba45f34849aa8a1f2d4af4b798588010792ebad6/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6", size = 753613, upload_time = "2025-09-25T21:32:30.178Z" }, - { url = "https://files.pythonhosted.org/packages/3d/e0/7966e1a7bfc0a45bf0a7fb6b98ea03fc9b8d84fa7f2229e9659680b69ee3/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be", size = 794115, upload_time = "2025-09-25T21:32:31.353Z" }, - { url = "https://files.pythonhosted.org/packages/de/94/980b50a6531b3019e45ddeada0626d45fa85cbe22300844a7983285bed3b/pyyaml-6.0.3-cp313-cp313-win32.whl", hash = "sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26", size = 137427, upload_time = "2025-09-25T21:32:32.58Z" }, - { url = "https://files.pythonhosted.org/packages/97/c9/39d5b874e8b28845e4ec2202b5da735d0199dbe5b8fb85f91398814a9a46/pyyaml-6.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c", size = 154090, upload_time = "2025-09-25T21:32:33.659Z" }, - { url = "https://files.pythonhosted.org/packages/73/e8/2bdf3ca2090f68bb3d75b44da7bbc71843b19c9f2b9cb9b0f4ab7a5a4329/pyyaml-6.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb", size = 140246, upload_time = "2025-09-25T21:32:34.663Z" }, - { url = "https://files.pythonhosted.org/packages/9d/8c/f4bd7f6465179953d3ac9bc44ac1a8a3e6122cf8ada906b4f96c60172d43/pyyaml-6.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:8d1fab6bb153a416f9aeb4b8763bc0f22a5586065f86f7664fc23339fc1c1fac", size = 181814, upload_time = "2025-09-25T21:32:35.712Z" }, - { url = "https://files.pythonhosted.org/packages/bd/9c/4d95bb87eb2063d20db7b60faa3840c1b18025517ae857371c4dd55a6b3a/pyyaml-6.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:34d5fcd24b8445fadc33f9cf348c1047101756fd760b4dacb5c3e99755703310", size = 173809, upload_time = "2025-09-25T21:32:36.789Z" }, - { url = "https://files.pythonhosted.org/packages/92/b5/47e807c2623074914e29dabd16cbbdd4bf5e9b2db9f8090fa64411fc5382/pyyaml-6.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:501a031947e3a9025ed4405a168e6ef5ae3126c59f90ce0cd6f2bfc477be31b7", size = 766454, upload_time = "2025-09-25T21:32:37.966Z" }, - { url = "https://files.pythonhosted.org/packages/02/9e/e5e9b168be58564121efb3de6859c452fccde0ab093d8438905899a3a483/pyyaml-6.0.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b3bc83488de33889877a0f2543ade9f70c67d66d9ebb4ac959502e12de895788", size = 836355, upload_time = "2025-09-25T21:32:39.178Z" }, - { url = "https://files.pythonhosted.org/packages/88/f9/16491d7ed2a919954993e48aa941b200f38040928474c9e85ea9e64222c3/pyyaml-6.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c458b6d084f9b935061bc36216e8a69a7e293a2f1e68bf956dcd9e6cbcd143f5", size = 794175, upload_time = "2025-09-25T21:32:40.865Z" }, - { url = "https://files.pythonhosted.org/packages/dd/3f/5989debef34dc6397317802b527dbbafb2b4760878a53d4166579111411e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7c6610def4f163542a622a73fb39f534f8c101d690126992300bf3207eab9764", size = 755228, upload_time = "2025-09-25T21:32:42.084Z" }, - { url = "https://files.pythonhosted.org/packages/d7/ce/af88a49043cd2e265be63d083fc75b27b6ed062f5f9fd6cdc223ad62f03e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5190d403f121660ce8d1d2c1bb2ef1bd05b5f68533fc5c2ea899bd15f4399b35", size = 789194, upload_time = "2025-09-25T21:32:43.362Z" }, - { url = "https://files.pythonhosted.org/packages/23/20/bb6982b26a40bb43951265ba29d4c246ef0ff59c9fdcdf0ed04e0687de4d/pyyaml-6.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:4a2e8cebe2ff6ab7d1050ecd59c25d4c8bd7e6f400f5f82b96557ac0abafd0ac", size = 156429, upload_time = "2025-09-25T21:32:57.844Z" }, - { url = "https://files.pythonhosted.org/packages/f4/f4/a4541072bb9422c8a883ab55255f918fa378ecf083f5b85e87fc2b4eda1b/pyyaml-6.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:93dda82c9c22deb0a405ea4dc5f2d0cda384168e466364dec6255b293923b2f3", size = 143912, upload_time = "2025-09-25T21:32:59.247Z" }, - { url = "https://files.pythonhosted.org/packages/7c/f9/07dd09ae774e4616edf6cda684ee78f97777bdd15847253637a6f052a62f/pyyaml-6.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:02893d100e99e03eda1c8fd5c441d8c60103fd175728e23e431db1b589cf5ab3", size = 189108, upload_time = "2025-09-25T21:32:44.377Z" }, - { url = "https://files.pythonhosted.org/packages/4e/78/8d08c9fb7ce09ad8c38ad533c1191cf27f7ae1effe5bb9400a46d9437fcf/pyyaml-6.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c1ff362665ae507275af2853520967820d9124984e0f7466736aea23d8611fba", size = 183641, upload_time = "2025-09-25T21:32:45.407Z" }, - { url = "https://files.pythonhosted.org/packages/7b/5b/3babb19104a46945cf816d047db2788bcaf8c94527a805610b0289a01c6b/pyyaml-6.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6adc77889b628398debc7b65c073bcb99c4a0237b248cacaf3fe8a557563ef6c", size = 831901, upload_time = "2025-09-25T21:32:48.83Z" }, - { url = "https://files.pythonhosted.org/packages/8b/cc/dff0684d8dc44da4d22a13f35f073d558c268780ce3c6ba1b87055bb0b87/pyyaml-6.0.3-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a80cb027f6b349846a3bf6d73b5e95e782175e52f22108cfa17876aaeff93702", size = 861132, upload_time = "2025-09-25T21:32:50.149Z" }, - { url = "https://files.pythonhosted.org/packages/b1/5e/f77dc6b9036943e285ba76b49e118d9ea929885becb0a29ba8a7c75e29fe/pyyaml-6.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c", size = 839261, upload_time = "2025-09-25T21:32:51.808Z" }, - { url = "https://files.pythonhosted.org/packages/ce/88/a9db1376aa2a228197c58b37302f284b5617f56a5d959fd1763fb1675ce6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:66e1674c3ef6f541c35191caae2d429b967b99e02040f5ba928632d9a7f0f065", size = 805272, upload_time = "2025-09-25T21:32:52.941Z" }, - { url = "https://files.pythonhosted.org/packages/da/92/1446574745d74df0c92e6aa4a7b0b3130706a4142b2d1a5869f2eaa423c6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:16249ee61e95f858e83976573de0f5b2893b3677ba71c9dd36b9cf8be9ac6d65", size = 829923, upload_time = "2025-09-25T21:32:54.537Z" }, - { url = "https://files.pythonhosted.org/packages/f0/7a/1c7270340330e575b92f397352af856a8c06f230aa3e76f86b39d01b416a/pyyaml-6.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4ad1906908f2f5ae4e5a8ddfce73c320c2a1429ec52eafd27138b7f1cbe341c9", size = 174062, upload_time = "2025-09-25T21:32:55.767Z" }, - { url = "https://files.pythonhosted.org/packages/f1/12/de94a39c2ef588c7e6455cfbe7343d3b2dc9d6b6b2f40c4c6565744c873d/pyyaml-6.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b", size = 149341, upload_time = "2025-09-25T21:32:56.828Z" }, -] - -[[package]] -name = "referencing" -version = "0.37.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "attrs" }, - { name = "rpds-py" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/22/f5/df4e9027acead3ecc63e50fe1e36aca1523e1719559c499951bb4b53188f/referencing-0.37.0.tar.gz", hash = "sha256:44aefc3142c5b842538163acb373e24cce6632bd54bdb01b21ad5863489f50d8", size = 78036, upload_time = "2025-10-13T15:30:48.871Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl", hash = "sha256:381329a9f99628c9069361716891d34ad94af76e461dcb0335825aecc7692231", size = 26766, upload_time = "2025-10-13T15:30:47.625Z" }, -] - -[[package]] -name = "rich" -version = "15.0.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "markdown-it-py" }, - { name = "pygments" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/c0/8f/0722ca900cc807c13a6a0c696dacf35430f72e0ec571c4275d2371fca3e9/rich-15.0.0.tar.gz", hash = "sha256:edd07a4824c6b40189fb7ac9bc4c52536e9780fbbfbddf6f1e2502c31b068c36", size = 230680, upload_time = "2026-04-12T08:24:00.75Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/82/3b/64d4899d73f91ba49a8c18a8ff3f0ea8f1c1d75481760df8c68ef5235bf5/rich-15.0.0-py3-none-any.whl", hash = "sha256:33bd4ef74232fb73fe9279a257718407f169c09b78a87ad3d296f548e27de0bb", size = 310654, upload_time = "2026-04-12T08:24:02.83Z" }, -] - -[[package]] -name = "rich-rst" -version = "2.0.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pygments" }, - { name = "rich" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/57/56/3191bae66b08ccc637ea8120426068bcb361cc323c96404c310886937067/rich_rst-2.0.1.tar.gz", hash = "sha256:cbe236ed0901d1ec8427cc6a50bf0a34353ba28ad014dc24def68bfe7f3b9e68", size = 300570, upload_time = "2026-05-16T00:47:57.362Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a0/3d/55c17d3ebdf3cd81356002afe5bef9bb8af631db2819785b6eac845b925b/rich_rst-2.0.1-py3-none-any.whl", hash = "sha256:7ee15f345ce25fa02b582c272a6cdbaf0c21243e38061cea273cff659bf3ef61", size = 272922, upload_time = "2026-05-16T00:47:55.508Z" }, -] - -[[package]] -name = "rpds-py" -version = "0.30.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/20/af/3f2f423103f1113b36230496629986e0ef7e199d2aa8392452b484b38ced/rpds_py-0.30.0.tar.gz", hash = "sha256:dd8ff7cf90014af0c0f787eea34794ebf6415242ee1d6fa91eaba725cc441e84", size = 69469, upload_time = "2025-11-30T20:24:38.837Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ed/dc/d61221eb88ff410de3c49143407f6f3147acf2538c86f2ab7ce65ae7d5f9/rpds_py-0.30.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:f83424d738204d9770830d35290ff3273fbb02b41f919870479fab14b9d303b2", size = 374887, upload_time = "2025-11-30T20:22:41.812Z" }, - { url = "https://files.pythonhosted.org/packages/fd/32/55fb50ae104061dbc564ef15cc43c013dc4a9f4527a1f4d99baddf56fe5f/rpds_py-0.30.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e7536cd91353c5273434b4e003cbda89034d67e7710eab8761fd918ec6c69cf8", size = 358904, upload_time = "2025-11-30T20:22:43.479Z" }, - { url = "https://files.pythonhosted.org/packages/58/70/faed8186300e3b9bdd138d0273109784eea2396c68458ed580f885dfe7ad/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2771c6c15973347f50fece41fc447c054b7ac2ae0502388ce3b6738cd366e3d4", size = 389945, upload_time = "2025-11-30T20:22:44.819Z" }, - { url = "https://files.pythonhosted.org/packages/bd/a8/073cac3ed2c6387df38f71296d002ab43496a96b92c823e76f46b8af0543/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0a59119fc6e3f460315fe9d08149f8102aa322299deaa5cab5b40092345c2136", size = 407783, upload_time = "2025-11-30T20:22:46.103Z" }, - { url = "https://files.pythonhosted.org/packages/77/57/5999eb8c58671f1c11eba084115e77a8899d6e694d2a18f69f0ba471ec8b/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:76fec018282b4ead0364022e3c54b60bf368b9d926877957a8624b58419169b7", size = 515021, upload_time = "2025-11-30T20:22:47.458Z" }, - { url = "https://files.pythonhosted.org/packages/e0/af/5ab4833eadc36c0a8ed2bc5c0de0493c04f6c06de223170bd0798ff98ced/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:692bef75a5525db97318e8cd061542b5a79812d711ea03dbc1f6f8dbb0c5f0d2", size = 414589, upload_time = "2025-11-30T20:22:48.872Z" }, - { url = "https://files.pythonhosted.org/packages/b7/de/f7192e12b21b9e9a68a6d0f249b4af3fdcdff8418be0767a627564afa1f1/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9027da1ce107104c50c81383cae773ef5c24d296dd11c99e2629dbd7967a20c6", size = 394025, upload_time = "2025-11-30T20:22:50.196Z" }, - { url = "https://files.pythonhosted.org/packages/91/c4/fc70cd0249496493500e7cc2de87504f5aa6509de1e88623431fec76d4b6/rpds_py-0.30.0-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:9cf69cdda1f5968a30a359aba2f7f9aa648a9ce4b580d6826437f2b291cfc86e", size = 408895, upload_time = "2025-11-30T20:22:51.87Z" }, - { url = "https://files.pythonhosted.org/packages/58/95/d9275b05ab96556fefff73a385813eb66032e4c99f411d0795372d9abcea/rpds_py-0.30.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a4796a717bf12b9da9d3ad002519a86063dcac8988b030e405704ef7d74d2d9d", size = 422799, upload_time = "2025-11-30T20:22:53.341Z" }, - { url = "https://files.pythonhosted.org/packages/06/c1/3088fc04b6624eb12a57eb814f0d4997a44b0d208d6cace713033ff1a6ba/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5d4c2aa7c50ad4728a094ebd5eb46c452e9cb7edbfdb18f9e1221f597a73e1e7", size = 572731, upload_time = "2025-11-30T20:22:54.778Z" }, - { url = "https://files.pythonhosted.org/packages/d8/42/c612a833183b39774e8ac8fecae81263a68b9583ee343db33ab571a7ce55/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ba81a9203d07805435eb06f536d95a266c21e5b2dfbf6517748ca40c98d19e31", size = 599027, upload_time = "2025-11-30T20:22:56.212Z" }, - { url = "https://files.pythonhosted.org/packages/5f/60/525a50f45b01d70005403ae0e25f43c0384369ad24ffe46e8d9068b50086/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:945dccface01af02675628334f7cf49c2af4c1c904748efc5cf7bbdf0b579f95", size = 563020, upload_time = "2025-11-30T20:22:58.2Z" }, - { url = "https://files.pythonhosted.org/packages/0b/5d/47c4655e9bcd5ca907148535c10e7d489044243cc9941c16ed7cd53be91d/rpds_py-0.30.0-cp313-cp313-win32.whl", hash = "sha256:b40fb160a2db369a194cb27943582b38f79fc4887291417685f3ad693c5a1d5d", size = 223139, upload_time = "2025-11-30T20:23:00.209Z" }, - { url = "https://files.pythonhosted.org/packages/f2/e1/485132437d20aa4d3e1d8b3fb5a5e65aa8139f1e097080c2a8443201742c/rpds_py-0.30.0-cp313-cp313-win_amd64.whl", hash = "sha256:806f36b1b605e2d6a72716f321f20036b9489d29c51c91f4dd29a3e3afb73b15", size = 240224, upload_time = "2025-11-30T20:23:02.008Z" }, - { url = "https://files.pythonhosted.org/packages/24/95/ffd128ed1146a153d928617b0ef673960130be0009c77d8fbf0abe306713/rpds_py-0.30.0-cp313-cp313-win_arm64.whl", hash = "sha256:d96c2086587c7c30d44f31f42eae4eac89b60dabbac18c7669be3700f13c3ce1", size = 230645, upload_time = "2025-11-30T20:23:03.43Z" }, - { url = "https://files.pythonhosted.org/packages/ff/1b/b10de890a0def2a319a2626334a7f0ae388215eb60914dbac8a3bae54435/rpds_py-0.30.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:eb0b93f2e5c2189ee831ee43f156ed34e2a89a78a66b98cadad955972548be5a", size = 364443, upload_time = "2025-11-30T20:23:04.878Z" }, - { url = "https://files.pythonhosted.org/packages/0d/bf/27e39f5971dc4f305a4fb9c672ca06f290f7c4e261c568f3dea16a410d47/rpds_py-0.30.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:922e10f31f303c7c920da8981051ff6d8c1a56207dbdf330d9047f6d30b70e5e", size = 353375, upload_time = "2025-11-30T20:23:06.342Z" }, - { url = "https://files.pythonhosted.org/packages/40/58/442ada3bba6e8e6615fc00483135c14a7538d2ffac30e2d933ccf6852232/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cdc62c8286ba9bf7f47befdcea13ea0e26bf294bda99758fd90535cbaf408000", size = 383850, upload_time = "2025-11-30T20:23:07.825Z" }, - { url = "https://files.pythonhosted.org/packages/14/14/f59b0127409a33c6ef6f5c1ebd5ad8e32d7861c9c7adfa9a624fc3889f6c/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:47f9a91efc418b54fb8190a6b4aa7813a23fb79c51f4bb84e418f5476c38b8db", size = 392812, upload_time = "2025-11-30T20:23:09.228Z" }, - { url = "https://files.pythonhosted.org/packages/b3/66/e0be3e162ac299b3a22527e8913767d869e6cc75c46bd844aa43fb81ab62/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1f3587eb9b17f3789ad50824084fa6f81921bbf9a795826570bda82cb3ed91f2", size = 517841, upload_time = "2025-11-30T20:23:11.186Z" }, - { url = "https://files.pythonhosted.org/packages/3d/55/fa3b9cf31d0c963ecf1ba777f7cf4b2a2c976795ac430d24a1f43d25a6ba/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:39c02563fc592411c2c61d26b6c5fe1e51eaa44a75aa2c8735ca88b0d9599daa", size = 408149, upload_time = "2025-11-30T20:23:12.864Z" }, - { url = "https://files.pythonhosted.org/packages/60/ca/780cf3b1a32b18c0f05c441958d3758f02544f1d613abf9488cd78876378/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51a1234d8febafdfd33a42d97da7a43f5dcb120c1060e352a3fbc0c6d36e2083", size = 383843, upload_time = "2025-11-30T20:23:14.638Z" }, - { url = "https://files.pythonhosted.org/packages/82/86/d5f2e04f2aa6247c613da0c1dd87fcd08fa17107e858193566048a1e2f0a/rpds_py-0.30.0-cp313-cp313t-manylinux_2_31_riscv64.whl", hash = "sha256:eb2c4071ab598733724c08221091e8d80e89064cd472819285a9ab0f24bcedb9", size = 396507, upload_time = "2025-11-30T20:23:16.105Z" }, - { url = "https://files.pythonhosted.org/packages/4b/9a/453255d2f769fe44e07ea9785c8347edaf867f7026872e76c1ad9f7bed92/rpds_py-0.30.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6bdfdb946967d816e6adf9a3d8201bfad269c67efe6cefd7093ef959683c8de0", size = 414949, upload_time = "2025-11-30T20:23:17.539Z" }, - { url = "https://files.pythonhosted.org/packages/a3/31/622a86cdc0c45d6df0e9ccb6becdba5074735e7033c20e401a6d9d0e2ca0/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c77afbd5f5250bf27bf516c7c4a016813eb2d3e116139aed0096940c5982da94", size = 565790, upload_time = "2025-11-30T20:23:19.029Z" }, - { url = "https://files.pythonhosted.org/packages/1c/5d/15bbf0fb4a3f58a3b1c67855ec1efcc4ceaef4e86644665fff03e1b66d8d/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:61046904275472a76c8c90c9ccee9013d70a6d0f73eecefd38c1ae7c39045a08", size = 590217, upload_time = "2025-11-30T20:23:20.885Z" }, - { url = "https://files.pythonhosted.org/packages/6d/61/21b8c41f68e60c8cc3b2e25644f0e3681926020f11d06ab0b78e3c6bbff1/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4c5f36a861bc4b7da6516dbdf302c55313afa09b81931e8280361a4f6c9a2d27", size = 555806, upload_time = "2025-11-30T20:23:22.488Z" }, - { url = "https://files.pythonhosted.org/packages/f9/39/7e067bb06c31de48de3eb200f9fc7c58982a4d3db44b07e73963e10d3be9/rpds_py-0.30.0-cp313-cp313t-win32.whl", hash = "sha256:3d4a69de7a3e50ffc214ae16d79d8fbb0922972da0356dcf4d0fdca2878559c6", size = 211341, upload_time = "2025-11-30T20:23:24.449Z" }, - { url = "https://files.pythonhosted.org/packages/0a/4d/222ef0b46443cf4cf46764d9c630f3fe4abaa7245be9417e56e9f52b8f65/rpds_py-0.30.0-cp313-cp313t-win_amd64.whl", hash = "sha256:f14fc5df50a716f7ece6a80b6c78bb35ea2ca47c499e422aa4463455dd96d56d", size = 225768, upload_time = "2025-11-30T20:23:25.908Z" }, - { url = "https://files.pythonhosted.org/packages/86/81/dad16382ebbd3d0e0328776d8fd7ca94220e4fa0798d1dc5e7da48cb3201/rpds_py-0.30.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:68f19c879420aa08f61203801423f6cd5ac5f0ac4ac82a2368a9fcd6a9a075e0", size = 362099, upload_time = "2025-11-30T20:23:27.316Z" }, - { url = "https://files.pythonhosted.org/packages/2b/60/19f7884db5d5603edf3c6bce35408f45ad3e97e10007df0e17dd57af18f8/rpds_py-0.30.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:ec7c4490c672c1a0389d319b3a9cfcd098dcdc4783991553c332a15acf7249be", size = 353192, upload_time = "2025-11-30T20:23:29.151Z" }, - { url = "https://files.pythonhosted.org/packages/bf/c4/76eb0e1e72d1a9c4703c69607cec123c29028bff28ce41588792417098ac/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f251c812357a3fed308d684a5079ddfb9d933860fc6de89f2b7ab00da481e65f", size = 384080, upload_time = "2025-11-30T20:23:30.785Z" }, - { url = "https://files.pythonhosted.org/packages/72/87/87ea665e92f3298d1b26d78814721dc39ed8d2c74b86e83348d6b48a6f31/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ac98b175585ecf4c0348fd7b29c3864bda53b805c773cbf7bfdaffc8070c976f", size = 394841, upload_time = "2025-11-30T20:23:32.209Z" }, - { url = "https://files.pythonhosted.org/packages/77/ad/7783a89ca0587c15dcbf139b4a8364a872a25f861bdb88ed99f9b0dec985/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3e62880792319dbeb7eb866547f2e35973289e7d5696c6e295476448f5b63c87", size = 516670, upload_time = "2025-11-30T20:23:33.742Z" }, - { url = "https://files.pythonhosted.org/packages/5b/3c/2882bdac942bd2172f3da574eab16f309ae10a3925644e969536553cb4ee/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4e7fc54e0900ab35d041b0601431b0a0eb495f0851a0639b6ef90f7741b39a18", size = 408005, upload_time = "2025-11-30T20:23:35.253Z" }, - { url = "https://files.pythonhosted.org/packages/ce/81/9a91c0111ce1758c92516a3e44776920b579d9a7c09b2b06b642d4de3f0f/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47e77dc9822d3ad616c3d5759ea5631a75e5809d5a28707744ef79d7a1bcfcad", size = 382112, upload_time = "2025-11-30T20:23:36.842Z" }, - { url = "https://files.pythonhosted.org/packages/cf/8e/1da49d4a107027e5fbc64daeab96a0706361a2918da10cb41769244b805d/rpds_py-0.30.0-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:b4dc1a6ff022ff85ecafef7979a2c6eb423430e05f1165d6688234e62ba99a07", size = 399049, upload_time = "2025-11-30T20:23:38.343Z" }, - { url = "https://files.pythonhosted.org/packages/df/5a/7ee239b1aa48a127570ec03becbb29c9d5a9eb092febbd1699d567cae859/rpds_py-0.30.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4559c972db3a360808309e06a74628b95eaccbf961c335c8fe0d590cf587456f", size = 415661, upload_time = "2025-11-30T20:23:40.263Z" }, - { url = "https://files.pythonhosted.org/packages/70/ea/caa143cf6b772f823bc7929a45da1fa83569ee49b11d18d0ada7f5ee6fd6/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:0ed177ed9bded28f8deb6ab40c183cd1192aa0de40c12f38be4d59cd33cb5c65", size = 565606, upload_time = "2025-11-30T20:23:42.186Z" }, - { url = "https://files.pythonhosted.org/packages/64/91/ac20ba2d69303f961ad8cf55bf7dbdb4763f627291ba3d0d7d67333cced9/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:ad1fa8db769b76ea911cb4e10f049d80bf518c104f15b3edb2371cc65375c46f", size = 591126, upload_time = "2025-11-30T20:23:44.086Z" }, - { url = "https://files.pythonhosted.org/packages/21/20/7ff5f3c8b00c8a95f75985128c26ba44503fb35b8e0259d812766ea966c7/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:46e83c697b1f1c72b50e5ee5adb4353eef7406fb3f2043d64c33f20ad1c2fc53", size = 553371, upload_time = "2025-11-30T20:23:46.004Z" }, - { url = "https://files.pythonhosted.org/packages/72/c7/81dadd7b27c8ee391c132a6b192111ca58d866577ce2d9b0ca157552cce0/rpds_py-0.30.0-cp314-cp314-win32.whl", hash = "sha256:ee454b2a007d57363c2dfd5b6ca4a5d7e2c518938f8ed3b706e37e5d470801ed", size = 215298, upload_time = "2025-11-30T20:23:47.696Z" }, - { url = "https://files.pythonhosted.org/packages/3e/d2/1aaac33287e8cfb07aab2e6b8ac1deca62f6f65411344f1433c55e6f3eb8/rpds_py-0.30.0-cp314-cp314-win_amd64.whl", hash = "sha256:95f0802447ac2d10bcc69f6dc28fe95fdf17940367b21d34e34c737870758950", size = 228604, upload_time = "2025-11-30T20:23:49.501Z" }, - { url = "https://files.pythonhosted.org/packages/e8/95/ab005315818cc519ad074cb7784dae60d939163108bd2b394e60dc7b5461/rpds_py-0.30.0-cp314-cp314-win_arm64.whl", hash = "sha256:613aa4771c99f03346e54c3f038e4cc574ac09a3ddfb0e8878487335e96dead6", size = 222391, upload_time = "2025-11-30T20:23:50.96Z" }, - { url = "https://files.pythonhosted.org/packages/9e/68/154fe0194d83b973cdedcdcc88947a2752411165930182ae41d983dcefa6/rpds_py-0.30.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:7e6ecfcb62edfd632e56983964e6884851786443739dbfe3582947e87274f7cb", size = 364868, upload_time = "2025-11-30T20:23:52.494Z" }, - { url = "https://files.pythonhosted.org/packages/83/69/8bbc8b07ec854d92a8b75668c24d2abcb1719ebf890f5604c61c9369a16f/rpds_py-0.30.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:a1d0bc22a7cdc173fedebb73ef81e07faef93692b8c1ad3733b67e31e1b6e1b8", size = 353747, upload_time = "2025-11-30T20:23:54.036Z" }, - { url = "https://files.pythonhosted.org/packages/ab/00/ba2e50183dbd9abcce9497fa5149c62b4ff3e22d338a30d690f9af970561/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d08f00679177226c4cb8c5265012eea897c8ca3b93f429e546600c971bcbae7", size = 383795, upload_time = "2025-11-30T20:23:55.556Z" }, - { url = "https://files.pythonhosted.org/packages/05/6f/86f0272b84926bcb0e4c972262f54223e8ecc556b3224d281e6598fc9268/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5965af57d5848192c13534f90f9dd16464f3c37aaf166cc1da1cae1fd5a34898", size = 393330, upload_time = "2025-11-30T20:23:57.033Z" }, - { url = "https://files.pythonhosted.org/packages/cb/e9/0e02bb2e6dc63d212641da45df2b0bf29699d01715913e0d0f017ee29438/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9a4e86e34e9ab6b667c27f3211ca48f73dba7cd3d90f8d5b11be56e5dbc3fb4e", size = 518194, upload_time = "2025-11-30T20:23:58.637Z" }, - { url = "https://files.pythonhosted.org/packages/ee/ca/be7bca14cf21513bdf9c0606aba17d1f389ea2b6987035eb4f62bd923f25/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5d3e6b26f2c785d65cc25ef1e5267ccbe1b069c5c21b8cc724efee290554419", size = 408340, upload_time = "2025-11-30T20:24:00.2Z" }, - { url = "https://files.pythonhosted.org/packages/c2/c7/736e00ebf39ed81d75544c0da6ef7b0998f8201b369acf842f9a90dc8fce/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:626a7433c34566535b6e56a1b39a7b17ba961e97ce3b80ec62e6f1312c025551", size = 383765, upload_time = "2025-11-30T20:24:01.759Z" }, - { url = "https://files.pythonhosted.org/packages/4a/3f/da50dfde9956aaf365c4adc9533b100008ed31aea635f2b8d7b627e25b49/rpds_py-0.30.0-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:acd7eb3f4471577b9b5a41baf02a978e8bdeb08b4b355273994f8b87032000a8", size = 396834, upload_time = "2025-11-30T20:24:03.687Z" }, - { url = "https://files.pythonhosted.org/packages/4e/00/34bcc2565b6020eab2623349efbdec810676ad571995911f1abdae62a3a0/rpds_py-0.30.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fe5fa731a1fa8a0a56b0977413f8cacac1768dad38d16b3a296712709476fbd5", size = 415470, upload_time = "2025-11-30T20:24:05.232Z" }, - { url = "https://files.pythonhosted.org/packages/8c/28/882e72b5b3e6f718d5453bd4d0d9cf8df36fddeb4ddbbab17869d5868616/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:74a3243a411126362712ee1524dfc90c650a503502f135d54d1b352bd01f2404", size = 565630, upload_time = "2025-11-30T20:24:06.878Z" }, - { url = "https://files.pythonhosted.org/packages/3b/97/04a65539c17692de5b85c6e293520fd01317fd878ea1995f0367d4532fb1/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:3e8eeb0544f2eb0d2581774be4c3410356eba189529a6b3e36bbbf9696175856", size = 591148, upload_time = "2025-11-30T20:24:08.445Z" }, - { url = "https://files.pythonhosted.org/packages/85/70/92482ccffb96f5441aab93e26c4d66489eb599efdcf96fad90c14bbfb976/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:dbd936cde57abfee19ab3213cf9c26be06d60750e60a8e4dd85d1ab12c8b1f40", size = 556030, upload_time = "2025-11-30T20:24:10.956Z" }, - { url = "https://files.pythonhosted.org/packages/20/53/7c7e784abfa500a2b6b583b147ee4bb5a2b3747a9166bab52fec4b5b5e7d/rpds_py-0.30.0-cp314-cp314t-win32.whl", hash = "sha256:dc824125c72246d924f7f796b4f63c1e9dc810c7d9e2355864b3c3a73d59ade0", size = 211570, upload_time = "2025-11-30T20:24:12.735Z" }, - { url = "https://files.pythonhosted.org/packages/d0/02/fa464cdfbe6b26e0600b62c528b72d8608f5cc49f96b8d6e38c95d60c676/rpds_py-0.30.0-cp314-cp314t-win_amd64.whl", hash = "sha256:27f4b0e92de5bfbc6f86e43959e6edd1425c33b5e69aab0984a72047f2bcf1e3", size = 226532, upload_time = "2025-11-30T20:24:14.634Z" }, -] - -[[package]] -name = "secretstorage" -version = "3.5.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "cryptography" }, - { name = "jeepney" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/1c/03/e834bcd866f2f8a49a85eaff47340affa3bfa391ee9912a952a1faa68c7b/secretstorage-3.5.0.tar.gz", hash = "sha256:f04b8e4689cbce351744d5537bf6b1329c6fc68f91fa666f60a380edddcd11be", size = 19884, upload_time = "2025-11-23T19:02:53.191Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b7/46/f5af3402b579fd5e11573ce652019a67074317e18c1935cc0b4ba9b35552/secretstorage-3.5.0-py3-none-any.whl", hash = "sha256:0ce65888c0725fcb2c5bc0fdb8e5438eece02c523557ea40ce0703c266248137", size = 15554, upload_time = "2025-11-23T19:02:51.545Z" }, -] - -[[package]] -name = "six" -version = "1.17.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload_time = "2024-12-04T17:35:28.174Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload_time = "2024-12-04T17:35:26.475Z" }, -] - -[[package]] -name = "sse-starlette" -version = "3.4.4" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "anyio" }, - { name = "starlette" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/f7/2b/58abc2d1fd397e7dde08e947e05c884d8ef2f78d5e2588c17a12d42d6994/sse_starlette-3.4.4.tar.gz", hash = "sha256:07e0fa0460138baf25cdd5fb28683472c3995dc1642225191b3832d62526bcb0", size = 31819, upload_time = "2026-05-12T17:37:17.019Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/dc/67/805710444ea8cc75fbf70b920ed431a560c4bf9c57f7d5a3117213189399/sse_starlette-3.4.4-py3-none-any.whl", hash = "sha256:3f4dd50d8aed2771a091f3a83000323fc3844541c16b4fe585ae2420cc6df973", size = 16514, upload_time = "2026-05-12T17:37:15.601Z" }, -] - -[[package]] -name = "starlette" -version = "1.4.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "anyio" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/0f/3c/76d2fd1f1357ed0f0108d8a5aa233dcf16e2946a8559c84912fe08e01ac7/starlette-1.4.1.tar.gz", hash = "sha256:b7332de6e9375593a29ba9eee1e6ecfeb3eb2043e2e19a13b4b71da73ff35540", size = 2709041, upload_time = "2026-08-05T15:17:26.23Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/75/0a/67e95f21498de41433babf7b1db0eeab449eb58872dfb831b27747a70fd0/starlette-1.4.1-py3-none-any.whl", hash = "sha256:7d078e0fbefae0d2cecfb80a799d6fb84b1c0c6acd4f14ac79d17d0e7ec27f19", size = 74019, upload_time = "2026-08-05T15:17:24.357Z" }, -] - -[[package]] -name = "typing-extensions" -version = "4.15.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload_time = "2025-08-25T13:49:26.313Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload_time = "2025-08-25T13:49:24.86Z" }, -] - -[[package]] -name = "typing-inspection" -version = "0.4.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "typing-extensions" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/55/e3/70399cb7dd41c10ac53367ae42139cf4b1ca5f36bb3dc6c9d33acdb43655/typing_inspection-0.4.2.tar.gz", hash = "sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464", size = 75949, upload_time = "2025-10-01T02:14:41.687Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl", hash = "sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7", size = 14611, upload_time = "2025-10-01T02:14:40.154Z" }, -] - -[[package]] -name = "uncalled-for" -version = "0.3.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b5/82/345cc927f7fbdae6065e7768759932fcc827fc20b29b45dfbafa2f1f7da4/uncalled_for-0.3.2.tar.gz", hash = "sha256:89f5dbcd71e2b8f47c030b1fa302e6cce2ec795d1ac565eeb6525c5fe55cb8a2", size = 50032, upload_time = "2026-05-06T13:38:25.204Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3b/25/2c87754f3a9e692315f7b811244090e68f362979fc8886b3fbd2985a1d8c/uncalled_for-0.3.2-py3-none-any.whl", hash = "sha256:0ff60b142c7d1f8070bde9d42afaa70aedc77dcc10998c227687e9c15713418e", size = 11444, upload_time = "2026-05-06T13:38:24.025Z" }, -] - -[[package]] -name = "urllib3" -version = "2.7.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/53/0c/06f8b233b8fd13b9e5ee11424ef85419ba0d8ba0b3138bf360be2ff56953/urllib3-2.7.0.tar.gz", hash = "sha256:231e0ec3b63ceb14667c67be60f2f2c40a518cb38b03af60abc813da26505f4c", size = 433602, upload_time = "2026-05-07T16:13:18.596Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/7f/3e/5db95bcf282c52709639744ca2a8b149baccf648e39c8cc87553df9eae0c/urllib3-2.7.0-py3-none-any.whl", hash = "sha256:9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897", size = 131087, upload_time = "2026-05-07T16:13:17.151Z" }, -] - -[[package]] -name = "uvicorn" -version = "0.47.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "click" }, - { name = "h11" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/f6/b1/8e7077a8641086aea449e1b5752a570f1b5906c64e0a33cd6d93b63a066b/uvicorn-0.47.0.tar.gz", hash = "sha256:7c9a0ea1a9414106bbab7324609c162d8fa0cdcdcb703060987269d77c7bb533", size = 90582, upload_time = "2026-05-14T18:16:54.455Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/15/41/ac2dfdbc1f60c7af4f994c7a335cfa7040c01642b605d65f611cecc2a1e4/uvicorn-0.47.0-py3-none-any.whl", hash = "sha256:2c5715bc12d1892d84752049f400cd1c3cb018514967fdfeb97640443a6a9432", size = 71301, upload_time = "2026-05-14T18:16:51.762Z" }, -] - -[[package]] -name = "watchfiles" -version = "1.2.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "anyio" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/cd/41/5e1a4bb12aac5f1493fa1bdc11154eca3b258ca4eba65d39c473fe19d8e9/watchfiles-1.2.0.tar.gz", hash = "sha256:c995fba777f1ea992f090f9236e9284cf7a5d1a0130dd5a3d82c598cacd76838", size = 108252, upload_time = "2026-05-18T04:32:04.251Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d1/4d/70a7feced9f87e2ff26dba42667290f41694fc64646c67261fbb8cab5d5c/watchfiles-1.2.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:01ea8d66f0693b9b60a6541c8d10263091ca9a9060d242f3c1f3143f9aad2c98", size = 399730, upload_time = "2026-05-18T04:31:38.162Z" }, - { url = "https://files.pythonhosted.org/packages/31/3a/0da302f2307aee316922806ebd5726c542cbd787c938271cf14a074c7daf/watchfiles-1.2.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7ba0480b9a74af058f43b337e937a451e109295c420916d68ad24e3dc02f5e44", size = 392842, upload_time = "2026-05-18T04:30:27.051Z" }, - { url = "https://files.pythonhosted.org/packages/db/ef/d5bdb705c224dbc256aa0c1ec47bf4e61ec52558f2afb44a71a1fe4d7015/watchfiles-1.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f34e26a19f91f710c08e0183429f0d1d15df734e6bc78c31e77b9ea9c433658", size = 452989, upload_time = "2026-05-18T04:31:11.945Z" }, - { url = "https://files.pythonhosted.org/packages/71/29/5495f2c1661949ef7a35e4d71111d129cfe7606414a26887a919d0a55406/watchfiles-1.2.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b4e77f6a55f858504069abd35d336a637555c09bca453dde1ee1e5ada8a6a1fb", size = 458978, upload_time = "2026-05-18T04:30:52.606Z" }, - { url = "https://files.pythonhosted.org/packages/d5/8c/7f9c07c433811c2fffd93e13fdfb7135de9aab5f2ae41be08960fa0047dc/watchfiles-1.2.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0cb4d80e212f116474a545c21c912b445f16bb0cef9e6a73a498164223e14e2f", size = 490248, upload_time = "2026-05-18T04:31:36.003Z" }, - { url = "https://files.pythonhosted.org/packages/3c/11/d93632febc52fbc21be90231bb7c17fd5387f46c9076fd40a5f9c2ae6910/watchfiles-1.2.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b974946a10af379d425e2eef5b62f5c6ebeaccf91d45eaad6f5b27ecd4f91aa0", size = 571847, upload_time = "2026-05-18T04:31:10.862Z" }, - { url = "https://files.pythonhosted.org/packages/55/b4/383173e73aabb07ad1d9c7aa859d95437ac46a6d6a1e11005facda0c9d19/watchfiles-1.2.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:86bc13c25a8d1fcd70b51d0ce7c9b65e90de5666fcbfd3e34957cc73ee19aeb5", size = 465974, upload_time = "2026-05-18T04:30:17.006Z" }, - { url = "https://files.pythonhosted.org/packages/a7/6c/89b1a230a78f57c52dd8893adb1f92f94411721b6ec12596c56d98c74356/watchfiles-1.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ca148d73dea36c9763aaa351e4d7a51780ec1584217c45276f4fe8239c768b71", size = 454782, upload_time = "2026-05-18T04:30:35.656Z" }, - { url = "https://files.pythonhosted.org/packages/24/62/1732118367cfff0a9fce3bf62ff4bfded09ef5df21d9d446b858b3f70a96/watchfiles-1.2.0-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:c525543d91961c6955b2636b308569e84a1d1c5f5f2932041ab9ef46422f43e3", size = 465182, upload_time = "2026-05-18T04:30:20.846Z" }, - { url = "https://files.pythonhosted.org/packages/28/96/716f7e5f51339bf22963f3345f9f27d7f3b30e2eadc597e257c881dd3c53/watchfiles-1.2.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:a204794696ffb8f9b10fba6f7cb5216d42f3b2b71860ccac6b6e42f5f10973b0", size = 629841, upload_time = "2026-05-18T04:31:05.397Z" }, - { url = "https://files.pythonhosted.org/packages/4c/fe/c40783950fd771ccf66ab3ec2722d188a9af1c7f96c6e811f36e40c6e03f/watchfiles-1.2.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:10d86db20695afe7997ac9e1717637d6714a8d0220458c33f3d2061f54cec427", size = 658028, upload_time = "2026-05-18T04:31:48.22Z" }, - { url = "https://files.pythonhosted.org/packages/71/72/4508db1856d1d87fcbb3b63f4839bab1b5682cb0e8d224d122263c09654a/watchfiles-1.2.0-cp313-cp313-win32.whl", hash = "sha256:eb283ee99e21ad6443c8cdb06ac5b34b1308c329cbdf03fa02b445363714c799", size = 275183, upload_time = "2026-05-18T04:30:59.57Z" }, - { url = "https://files.pythonhosted.org/packages/f9/36/14b76ca57652e5cc5fd1c11f32a261292c08a0d19a00351013c2549cbfb2/watchfiles-1.2.0-cp313-cp313-win_amd64.whl", hash = "sha256:a0f27f01bee51861392bb6b7c4fdb290b27d1eb194e9e28788d68102a0e898d9", size = 288059, upload_time = "2026-05-18T04:32:07.937Z" }, - { url = "https://files.pythonhosted.org/packages/1b/8d/0a85e395398d8d20fadfe5c5d32c726eee17a519e78fb356f2cf7531bffe/watchfiles-1.2.0-cp313-cp313-win_arm64.whl", hash = "sha256:3651aa7058595e9cfb75d35dd5ada2bf9f48a5b8a0f3562821d3e210c507e077", size = 280186, upload_time = "2026-05-18T04:31:54.484Z" }, - { url = "https://files.pythonhosted.org/packages/37/68/36db056f1fdcc5f07302f56e631774d6835bcd6fa3ace402304621d5f9e5/watchfiles-1.2.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:faea288b6f0ab1902ef08f4ca6de005dccf856c4e0c4f21b8c5fce02d90a1b08", size = 399031, upload_time = "2026-05-18T04:30:44.576Z" }, - { url = "https://files.pythonhosted.org/packages/c1/64/01a9d6f66a82a5c101ce939274106cc72759d62427e153f01edd2b9f87c2/watchfiles-1.2.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:01859b11fd9fbca670f4d5da00fbac282cfea9bd67a2125d8b2833a3b5617ea9", size = 391205, upload_time = "2026-05-18T04:30:25.413Z" }, - { url = "https://files.pythonhosted.org/packages/84/2c/0a44fe058cb4bb7b8ede6b6670698bbb7c0400740e378d00022189b7b31d/watchfiles-1.2.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fff610d7bb2256a317bb1e96f0d7862c7aa8076733ee5df0fd41bbe76a24a4f4", size = 451892, upload_time = "2026-05-18T04:32:14.005Z" }, - { url = "https://files.pythonhosted.org/packages/67/a1/351e0d56cd35e6488b5c8b4fb11a809a5bc923e8fe8fed9faf8920be0c89/watchfiles-1.2.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b141a4891c995a039cd89e9a49e62df1dc8a559a5d1a6e4c7106d16c12777a55", size = 458867, upload_time = "2026-05-18T04:31:22.279Z" }, - { url = "https://files.pythonhosted.org/packages/d5/7d/9d09605187f1b838998624049fcf8bf47b73c1a3b76901fcac1782f62277/watchfiles-1.2.0-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f22943b7770483f6ea0721c6b11d022947a98eb0acae14694de034f4d0d38925", size = 490217, upload_time = "2026-05-18T04:31:43.657Z" }, - { url = "https://files.pythonhosted.org/packages/60/5d/a17a16eccb182f04188cd308ec24b1a71a9b5c4e7098269cf35d9fa56d02/watchfiles-1.2.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1bc6195825b7dcd217968bb1f801a60fd4c16e8eeab5bedc7fe917d7d5995ab4", size = 571458, upload_time = "2026-05-18T04:32:11.875Z" }, - { url = "https://files.pythonhosted.org/packages/d3/3d/4dd457062083ab1938e5dfd45032eb425cee2ac817287ca8ff4356183e5d/watchfiles-1.2.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d4a4b147f5dca2a5d325a06a832fb43f345751adfbc63204aec30e0d9ca965a2", size = 464707, upload_time = "2026-05-18T04:30:43.492Z" }, - { url = "https://files.pythonhosted.org/packages/c6/71/ea8c57b128f5383de74d0c7d2d9c57ad7c9a65a930c451bd25d524b295b7/watchfiles-1.2.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4543579a9bdb0c9560039b4ffddbdb39545707659fbc430ce4c10f3f68d557f9", size = 454663, upload_time = "2026-05-18T04:30:16.061Z" }, - { url = "https://files.pythonhosted.org/packages/53/fd/2e812bf938406d7db351f0703ddd3fc6c061cf30d96153a77bc79a943a44/watchfiles-1.2.0-cp313-cp313t-manylinux_2_31_riscv64.whl", hash = "sha256:20aa0e708b920bde876a4aa82dc7dd6ebea228a63a67cda6632c2fc87b787efa", size = 463537, upload_time = "2026-05-18T04:31:44.9Z" }, - { url = "https://files.pythonhosted.org/packages/86/56/d17a7f1dd1bc3035f1072694a551301272f1739c2d8e319c927cb9e29b38/watchfiles-1.2.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:d413349d565dab74297f2a63e84a097936be69bf8f3b3801f27f380e32040f44", size = 629194, upload_time = "2026-05-18T04:31:14.141Z" }, - { url = "https://files.pythonhosted.org/packages/be/06/f1ff66bf5cae50aa4062779a0ecd0bbaf15e466195719074078947d9a17d/watchfiles-1.2.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:f28b2725eb8cce327b9b3ab02415c853011dc55c95832fe90de6bc56f5315f72", size = 656194, upload_time = "2026-05-18T04:31:47.14Z" }, - { url = "https://files.pythonhosted.org/packages/e7/54/a9c7ea9a82a4ac65e7004c0a03920b5cdd2f9c3b678757d9cd425aa51d53/watchfiles-1.2.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:b8c8358484d5fa12ef34f05b7f4168eaf1932f408725ff6d023c33ec17bd79d4", size = 400205, upload_time = "2026-05-18T04:32:05.153Z" }, - { url = "https://files.pythonhosted.org/packages/aa/5d/c9ab3534374a4a67450696905d6ef16a04405448b8dc52bd752ae50423d4/watchfiles-1.2.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:9f04b092229ad2c50126dd3c922c8822e51e605993764a33058d4a791ab42281", size = 392508, upload_time = "2026-05-18T04:30:54.849Z" }, - { url = "https://files.pythonhosted.org/packages/26/ca/1ad30103535cf0cecd7b993e8d50edc5351b1820e38f2d22e3df58962feb/watchfiles-1.2.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7a7ce236284f002a156f70add88efe5c70879cccbb658be0822c54b1306fc09d", size = 452448, upload_time = "2026-05-18T04:30:53.727Z" }, - { url = "https://files.pythonhosted.org/packages/37/a1/ceee2cdf2afbd715fa07758d39c9859513eae411b23196f7fd039e5feedd/watchfiles-1.2.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b9909cc2b48468b575eefa944919e1fe8a36c5849d5c7c168f80a8c1db69398e", size = 459605, upload_time = "2026-05-18T04:30:23.312Z" }, - { url = "https://files.pythonhosted.org/packages/e8/f6/421e30fd1cb3907a84ed92ab3f1983e37ba2dca015e9a894a048418417a2/watchfiles-1.2.0-cp314-cp314-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a37faaed405c67e28e6be45a1fa4f206ef5a2860f27c237db9fa30704c38242", size = 490757, upload_time = "2026-05-18T04:30:47.358Z" }, - { url = "https://files.pythonhosted.org/packages/41/b0/55ed1b97ed08be7bba6f9a541cac15f2a858e1d74d2b07b6da70a82aab00/watchfiles-1.2.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9649193aa27bd9ff2e80ff29bfaa93085496c7a3a377592823cc58b77ee88add", size = 568672, upload_time = "2026-05-18T04:30:38.915Z" }, - { url = "https://files.pythonhosted.org/packages/d1/cf/d8ae8a80dd7bafab395ea7681c10237311bbf34d37704a8c744e7cf31fc7/watchfiles-1.2.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4e4ff8e37f99cf1da89e255e07c9c4b37c214038c4283707bdec308cb1b0ea1f", size = 464197, upload_time = "2026-05-18T04:30:09.914Z" }, - { url = "https://files.pythonhosted.org/packages/7c/8a/3076c496ca8dafe0e8cd03fcebdfc47be4b1174b4e5b24ff6e396e6b3af2/watchfiles-1.2.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:054dc20fd2e3132b4c3883b4a00d72fd6e1f56fdaf89fccd12e8057d74cd74d7", size = 453181, upload_time = "2026-05-18T04:30:14.829Z" }, - { url = "https://files.pythonhosted.org/packages/e5/10/9745e17c98e7b8a86454df0a3c7b5686bd650383f1e9f26e4ebcbd6cc0c0/watchfiles-1.2.0-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:e140ed30ebde76796b686e67c182cff10ea2fbab186fafd1560f74bb5a473a6e", size = 465109, upload_time = "2026-05-18T04:30:28.123Z" }, - { url = "https://files.pythonhosted.org/packages/8f/95/8ef4a95481d3e0cb52d62a06fa6e972e81424be2d9698b91a2fecca9904c/watchfiles-1.2.0-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:bb7e52ecf68ba46d22df23467b87cffeb2146908aa523ebfe803019618cfda06", size = 630653, upload_time = "2026-05-18T04:31:49.304Z" }, - { url = "https://files.pythonhosted.org/packages/fd/e4/3b3bf36b0f829b50c6ebcb8d031583863c59f923d6a6af3d485e470d0fac/watchfiles-1.2.0-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:23282a321c8baf9b3a3c4afff673f9fe65eb7fdc2338d765ccad9d3d1916a5ba", size = 657838, upload_time = "2026-05-18T04:31:06.497Z" }, - { url = "https://files.pythonhosted.org/packages/21/b1/6cbbb50c1f3002ab568777d44aa21206dfb8807a840990c4037523b51812/watchfiles-1.2.0-cp314-cp314-win32.whl", hash = "sha256:c0db965c5f79aa49fe672d297cf1febc5ad149b658594944f49a54a2b96270a7", size = 275108, upload_time = "2026-05-18T04:30:06.891Z" }, - { url = "https://files.pythonhosted.org/packages/92/45/190ce6db8dcb4536682cf75d3889ff1a27182a58cb519d343cb6d9ea63d8/watchfiles-1.2.0-cp314-cp314-win_amd64.whl", hash = "sha256:71283b39fd17e5408eb123bd37aeecfd9d54c81fc184421943208aadb879d103", size = 288441, upload_time = "2026-05-18T04:32:12.901Z" }, - { url = "https://files.pythonhosted.org/packages/74/0d/3eae1c2313ab08378431d907c3f8095ecca00f3eda33111cf4f0f2591799/watchfiles-1.2.0-cp314-cp314-win_arm64.whl", hash = "sha256:c5c19526f4e54a00f2666a6c0e9e40d582c09e865055ea7378bf0009aab857b3", size = 280684, upload_time = "2026-05-18T04:31:26.902Z" }, - { url = "https://files.pythonhosted.org/packages/b1/75/fb64e6c25d6b5ca636d03df34ffb1c6e9873303e76d27967e045f8df088f/watchfiles-1.2.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:d73a585accffa5ae39c17264c36ec3166d2fad7000c780f5ef83b2722afb9dd2", size = 398857, upload_time = "2026-05-18T04:32:17.108Z" }, - { url = "https://files.pythonhosted.org/packages/73/4e/9f7adf01754cbf81843722ccfec169d8f26c69778281a302855cecd2ee08/watchfiles-1.2.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:ae99b14c5f21e026e0e9d96f40e07d8570ebee6cafd9d8fc318354606daa7a28", size = 392413, upload_time = "2026-05-18T04:31:07.911Z" }, - { url = "https://files.pythonhosted.org/packages/47/c8/bec626bcc2d69f44b9acb24ce7d60ed7b16b73628eea747fcbd169d8edda/watchfiles-1.2.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4429f3b105524a10b72c3a819b091c495d2811d419c1e1e8df773a5a5974f831", size = 452409, upload_time = "2026-05-18T04:31:20.142Z" }, - { url = "https://files.pythonhosted.org/packages/00/b7/b6362068e81e7c556d155a34c35d40ac3ef42d747b06d7f6e5bf58e359c2/watchfiles-1.2.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:43d818978d06062d9b22c4fab2ebe44cf5213d42dc8e62bda8c2760cfa2eeb33", size = 458827, upload_time = "2026-05-18T04:32:06.219Z" }, - { url = "https://files.pythonhosted.org/packages/67/f8/9a813fa42afb1e0b4625e75f0479826644d3ee8dc287e093799bc01f390c/watchfiles-1.2.0-cp314-cp314t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b9f732dc58b2dbe69e464ccf8fff7a03b0dd0be439da4c0720d3558527d3d6b4", size = 490104, upload_time = "2026-05-18T04:31:56.034Z" }, - { url = "https://files.pythonhosted.org/packages/2f/bf/27dfb6094ca4c9aad21298b5525b6c53cb36121ee454331d05161e58d130/watchfiles-1.2.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8f200104103feb097de4cab8fe4f5dd18a2026934c7dea98c55a2f5fd6d5a33b", size = 571360, upload_time = "2026-05-18T04:31:57.133Z" }, - { url = "https://files.pythonhosted.org/packages/fb/39/44a096d67270ea93df91d33877dbe91fbda3aa4f8ec2edf799d93eda8736/watchfiles-1.2.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:63ac26eefbf4af1741247d6fb68b11c49a25b2f7413fbd318a83a12aaa9cf666", size = 464644, upload_time = "2026-05-18T04:30:57.33Z" }, - { url = "https://files.pythonhosted.org/packages/0e/80/c7472203bad6268e3ef1ad260739704847898938ad7ea8b63a5131f46b50/watchfiles-1.2.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c4997d4e4a55f0d02b6cde327322daf3a0400e5df6c6b15948994bf72497925", size = 454771, upload_time = "2026-05-18T04:30:48.736Z" }, - { url = "https://files.pythonhosted.org/packages/51/cf/3b10b268b4b7f0fc26e9debb5eef1998b515887840f444cd3ec80c688755/watchfiles-1.2.0-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:4c887eba18b7945ac73067a8b4a66f21cd46c2539b2bc68588f7be6c7eb6d26b", size = 463494, upload_time = "2026-05-18T04:31:33.826Z" }, - { url = "https://files.pythonhosted.org/packages/3d/3e/a4302545cd589262a0dc7d140e86f7688eba3f9c72776c27f7e23b8864c4/watchfiles-1.2.0-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:3416ff151bb6b5a8d8d11664974fbef4d9305b9b2957839ab5a270468fd8df30", size = 629383, upload_time = "2026-05-18T04:31:15.596Z" }, - { url = "https://files.pythonhosted.org/packages/db/99/d5649df0a9a410d45b7c882304d0b790903ac9b6e8f2cfd12114e0c6b9f2/watchfiles-1.2.0-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:0e831a271c035d89789cffc386b6aa1375f39f1cd25eb7ca0997e4970d152fc5", size = 656093, upload_time = "2026-05-18T04:31:58.707Z" }, - { url = "https://files.pythonhosted.org/packages/92/b9/362702539275019a54dd2e94511b31a9b89c5f9e6a21966de7eb692549fc/watchfiles-1.2.0-cp315-cp315-macosx_10_12_x86_64.whl", hash = "sha256:37a6721cdf3f65dbb13aa9503510ccb4451603ac837e44d265d7992a597e1374", size = 400109, upload_time = "2026-05-18T04:31:16.879Z" }, - { url = "https://files.pythonhosted.org/packages/8f/75/71d5ba62db781e5587bded1d944c675374bc4aa37ff33d5018d98e8b6538/watchfiles-1.2.0-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:2b37d10b5a63bd4d87e18472d80fa525bd670586fae62e5dd580452764879b65", size = 392167, upload_time = "2026-05-18T04:31:28.058Z" }, - { url = "https://files.pythonhosted.org/packages/3c/01/c66dd95d0423fe30d31820e2d1d5bda773764131bbb6ac0cb1cf303ac328/watchfiles-1.2.0-cp315-cp315-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a105bc2283f67e8fbec74253ec2d94925de92ed72c0393f1206bf326b7b7b69", size = 452372, upload_time = "2026-05-18T04:31:00.836Z" }, - { url = "https://files.pythonhosted.org/packages/91/15/2fe99557e72f85627c6a8eed50d889e8d101623e060a22ad75b875cb932d/watchfiles-1.2.0-cp315-cp315-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5327989a465505f05cfe06f04fa9d0c2fd5432bb243e10e6f012b1bdca3c8579", size = 459596, upload_time = "2026-05-18T04:31:34.96Z" }, - { url = "https://files.pythonhosted.org/packages/ed/23/d4acfa0023367428ed48351b3b9b267893037b6cadae55620c61c24bcfd4/watchfiles-1.2.0-cp315-cp315-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ecb47f183a8025b2aa18b546725c3657e542112ae9c0613a2af79b4fa8d04ad7", size = 490869, upload_time = "2026-05-18T04:31:59.923Z" }, - { url = "https://files.pythonhosted.org/packages/a4/5f/3164cbdce06c9fb95c4f7b9e2f9760b5e2797af43a9ecc317ef42a23a278/watchfiles-1.2.0-cp315-cp315-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8520a4ab0e37f770afc34459c4f8f7019e153f9124dc101c15538365875d1ab2", size = 571641, upload_time = "2026-05-18T04:32:00.948Z" }, - { url = "https://files.pythonhosted.org/packages/41/e6/85d3731c55e65cd7690f3f803d24c139588aaf863e4bf2148fe7a7fa1a19/watchfiles-1.2.0-cp315-cp315-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:71cd71740ed2c15211ebb237ced4e39a1cdf6f80566e5fe95428da1626f4fde6", size = 464444, upload_time = "2026-05-18T04:30:34.298Z" }, - { url = "https://files.pythonhosted.org/packages/f4/7d/562641012b8b09872742c3b8adf9629ec479fd78f8d68ae4a0c13da8add6/watchfiles-1.2.0-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f88af53d6ddaf72179ef613ddc905e6f4785f712b49b80b3bef9f3525e6194b4", size = 453593, upload_time = "2026-05-18T04:31:23.464Z" }, - { url = "https://files.pythonhosted.org/packages/56/fe/cb8ef3d6f929d14158fdaaad9925985b7310abc9384dcd4d82dd0016fb59/watchfiles-1.2.0-cp315-cp315-manylinux_2_31_riscv64.whl", hash = "sha256:cee9d5efd929efdac5f7e58f72b3376f676b64050a91c5b99a7094c5b2317488", size = 465096, upload_time = "2026-05-18T04:31:30.384Z" }, - { url = "https://files.pythonhosted.org/packages/25/91/80908e835e100527a9267147b08c0eee1fa6ab0ffec15edc04d1d44885f7/watchfiles-1.2.0-cp315-cp315-musllinux_1_1_aarch64.whl", hash = "sha256:b718bf356bbc15e559bd8ef41782b573b8ae0e3f177ab244b440568d7ea02cfb", size = 630638, upload_time = "2026-05-18T04:30:49.89Z" }, - { url = "https://files.pythonhosted.org/packages/46/4b/95ab2f256bb4af3cb2eb23b9317bda984ee6e0f11733a5c004a6c95b06e3/watchfiles-1.2.0-cp315-cp315-musllinux_1_1_x86_64.whl", hash = "sha256:922c0e019fe68b3ae392965a766b02a71ba1168c932cebc3733cd52c5fe5b377", size = 657684, upload_time = "2026-05-18T04:31:32.027Z" }, -] - -[[package]] -name = "websockets" -version = "16.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/04/24/4b2031d72e840ce4c1ccb255f693b15c334757fc50023e4db9537080b8c4/websockets-16.0.tar.gz", hash = "sha256:5f6261a5e56e8d5c42a4497b364ea24d94d9563e8fbd44e78ac40879c60179b5", size = 179346, upload_time = "2026-01-10T09:23:47.181Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/cc/9c/baa8456050d1c1b08dd0ec7346026668cbc6f145ab4e314d707bb845bf0d/websockets-16.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:878b336ac47938b474c8f982ac2f7266a540adc3fa4ad74ae96fea9823a02cc9", size = 177364, upload_time = "2026-01-10T09:22:59.333Z" }, - { url = "https://files.pythonhosted.org/packages/7e/0c/8811fc53e9bcff68fe7de2bcbe75116a8d959ac699a3200f4847a8925210/websockets-16.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:52a0fec0e6c8d9a784c2c78276a48a2bdf099e4ccc2a4cad53b27718dbfd0230", size = 175039, upload_time = "2026-01-10T09:23:01.171Z" }, - { url = "https://files.pythonhosted.org/packages/aa/82/39a5f910cb99ec0b59e482971238c845af9220d3ab9fa76dd9162cda9d62/websockets-16.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e6578ed5b6981005df1860a56e3617f14a6c307e6a71b4fff8c48fdc50f3ed2c", size = 175323, upload_time = "2026-01-10T09:23:02.341Z" }, - { url = "https://files.pythonhosted.org/packages/bd/28/0a25ee5342eb5d5f297d992a77e56892ecb65e7854c7898fb7d35e9b33bd/websockets-16.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:95724e638f0f9c350bb1c2b0a7ad0e83d9cc0c9259f3ea94e40d7b02a2179ae5", size = 184975, upload_time = "2026-01-10T09:23:03.756Z" }, - { url = "https://files.pythonhosted.org/packages/f9/66/27ea52741752f5107c2e41fda05e8395a682a1e11c4e592a809a90c6a506/websockets-16.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c0204dc62a89dc9d50d682412c10b3542d748260d743500a85c13cd1ee4bde82", size = 186203, upload_time = "2026-01-10T09:23:05.01Z" }, - { url = "https://files.pythonhosted.org/packages/37/e5/8e32857371406a757816a2b471939d51c463509be73fa538216ea52b792a/websockets-16.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:52ac480f44d32970d66763115edea932f1c5b1312de36df06d6b219f6741eed8", size = 185653, upload_time = "2026-01-10T09:23:06.301Z" }, - { url = "https://files.pythonhosted.org/packages/9b/67/f926bac29882894669368dc73f4da900fcdf47955d0a0185d60103df5737/websockets-16.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6e5a82b677f8f6f59e8dfc34ec06ca6b5b48bc4fcda346acd093694cc2c24d8f", size = 184920, upload_time = "2026-01-10T09:23:07.492Z" }, - { url = "https://files.pythonhosted.org/packages/3c/a1/3d6ccdcd125b0a42a311bcd15a7f705d688f73b2a22d8cf1c0875d35d34a/websockets-16.0-cp313-cp313-win32.whl", hash = "sha256:abf050a199613f64c886ea10f38b47770a65154dc37181bfaff70c160f45315a", size = 178255, upload_time = "2026-01-10T09:23:09.245Z" }, - { url = "https://files.pythonhosted.org/packages/6b/ae/90366304d7c2ce80f9b826096a9e9048b4bb760e44d3b873bb272cba696b/websockets-16.0-cp313-cp313-win_amd64.whl", hash = "sha256:3425ac5cf448801335d6fdc7ae1eb22072055417a96cc6b31b3861f455fbc156", size = 178689, upload_time = "2026-01-10T09:23:10.483Z" }, - { url = "https://files.pythonhosted.org/packages/f3/1d/e88022630271f5bd349ed82417136281931e558d628dd52c4d8621b4a0b2/websockets-16.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:8cc451a50f2aee53042ac52d2d053d08bf89bcb31ae799cb4487587661c038a0", size = 177406, upload_time = "2026-01-10T09:23:12.178Z" }, - { url = "https://files.pythonhosted.org/packages/f2/78/e63be1bf0724eeb4616efb1ae1c9044f7c3953b7957799abb5915bffd38e/websockets-16.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:daa3b6ff70a9241cf6c7fc9e949d41232d9d7d26fd3522b1ad2b4d62487e9904", size = 175085, upload_time = "2026-01-10T09:23:13.511Z" }, - { url = "https://files.pythonhosted.org/packages/bb/f4/d3c9220d818ee955ae390cf319a7c7a467beceb24f05ee7aaaa2414345ba/websockets-16.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:fd3cb4adb94a2a6e2b7c0d8d05cb94e6f1c81a0cf9dc2694fb65c7e8d94c42e4", size = 175328, upload_time = "2026-01-10T09:23:14.727Z" }, - { url = "https://files.pythonhosted.org/packages/63/bc/d3e208028de777087e6fb2b122051a6ff7bbcca0d6df9d9c2bf1dd869ae9/websockets-16.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:781caf5e8eee67f663126490c2f96f40906594cb86b408a703630f95550a8c3e", size = 185044, upload_time = "2026-01-10T09:23:15.939Z" }, - { url = "https://files.pythonhosted.org/packages/ad/6e/9a0927ac24bd33a0a9af834d89e0abc7cfd8e13bed17a86407a66773cc0e/websockets-16.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:caab51a72c51973ca21fa8a18bd8165e1a0183f1ac7066a182ff27107b71e1a4", size = 186279, upload_time = "2026-01-10T09:23:17.148Z" }, - { url = "https://files.pythonhosted.org/packages/b9/ca/bf1c68440d7a868180e11be653c85959502efd3a709323230314fda6e0b3/websockets-16.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:19c4dc84098e523fd63711e563077d39e90ec6702aff4b5d9e344a60cb3c0cb1", size = 185711, upload_time = "2026-01-10T09:23:18.372Z" }, - { url = "https://files.pythonhosted.org/packages/c4/f8/fdc34643a989561f217bb477cbc47a3a07212cbda91c0e4389c43c296ebf/websockets-16.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:a5e18a238a2b2249c9a9235466b90e96ae4795672598a58772dd806edc7ac6d3", size = 184982, upload_time = "2026-01-10T09:23:19.652Z" }, - { url = "https://files.pythonhosted.org/packages/dd/d1/574fa27e233764dbac9c52730d63fcf2823b16f0856b3329fc6268d6ae4f/websockets-16.0-cp314-cp314-win32.whl", hash = "sha256:a069d734c4a043182729edd3e9f247c3b2a4035415a9172fd0f1b71658a320a8", size = 177915, upload_time = "2026-01-10T09:23:21.458Z" }, - { url = "https://files.pythonhosted.org/packages/8a/f1/ae6b937bf3126b5134ce1f482365fde31a357c784ac51852978768b5eff4/websockets-16.0-cp314-cp314-win_amd64.whl", hash = "sha256:c0ee0e63f23914732c6d7e0cce24915c48f3f1512ec1d079ed01fc629dab269d", size = 178381, upload_time = "2026-01-10T09:23:22.715Z" }, - { url = "https://files.pythonhosted.org/packages/06/9b/f791d1db48403e1f0a27577a6beb37afae94254a8c6f08be4a23e4930bc0/websockets-16.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:a35539cacc3febb22b8f4d4a99cc79b104226a756aa7400adc722e83b0d03244", size = 177737, upload_time = "2026-01-10T09:23:24.523Z" }, - { url = "https://files.pythonhosted.org/packages/bd/40/53ad02341fa33b3ce489023f635367a4ac98b73570102ad2cdd770dacc9a/websockets-16.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:b784ca5de850f4ce93ec85d3269d24d4c82f22b7212023c974c401d4980ebc5e", size = 175268, upload_time = "2026-01-10T09:23:25.781Z" }, - { url = "https://files.pythonhosted.org/packages/74/9b/6158d4e459b984f949dcbbb0c5d270154c7618e11c01029b9bbd1bb4c4f9/websockets-16.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:569d01a4e7fba956c5ae4fc988f0d4e187900f5497ce46339c996dbf24f17641", size = 175486, upload_time = "2026-01-10T09:23:27.033Z" }, - { url = "https://files.pythonhosted.org/packages/e5/2d/7583b30208b639c8090206f95073646c2c9ffd66f44df967981a64f849ad/websockets-16.0-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:50f23cdd8343b984957e4077839841146f67a3d31ab0d00e6b824e74c5b2f6e8", size = 185331, upload_time = "2026-01-10T09:23:28.259Z" }, - { url = "https://files.pythonhosted.org/packages/45/b0/cce3784eb519b7b5ad680d14b9673a31ab8dcb7aad8b64d81709d2430aa8/websockets-16.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:152284a83a00c59b759697b7f9e9cddf4e3c7861dd0d964b472b70f78f89e80e", size = 186501, upload_time = "2026-01-10T09:23:29.449Z" }, - { url = "https://files.pythonhosted.org/packages/19/60/b8ebe4c7e89fb5f6cdf080623c9d92789a53636950f7abacfc33fe2b3135/websockets-16.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:bc59589ab64b0022385f429b94697348a6a234e8ce22544e3681b2e9331b5944", size = 186062, upload_time = "2026-01-10T09:23:31.368Z" }, - { url = "https://files.pythonhosted.org/packages/88/a8/a080593f89b0138b6cba1b28f8df5673b5506f72879322288b031337c0b8/websockets-16.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:32da954ffa2814258030e5a57bc73a3635463238e797c7375dc8091327434206", size = 185356, upload_time = "2026-01-10T09:23:32.627Z" }, - { url = "https://files.pythonhosted.org/packages/c2/b6/b9afed2afadddaf5ebb2afa801abf4b0868f42f8539bfe4b071b5266c9fe/websockets-16.0-cp314-cp314t-win32.whl", hash = "sha256:5a4b4cc550cb665dd8a47f868c8d04c8230f857363ad3c9caf7a0c3bf8c61ca6", size = 178085, upload_time = "2026-01-10T09:23:33.816Z" }, - { url = "https://files.pythonhosted.org/packages/9f/3e/28135a24e384493fa804216b79a6a6759a38cc4ff59118787b9fb693df93/websockets-16.0-cp314-cp314t-win_amd64.whl", hash = "sha256:b14dc141ed6d2dde437cddb216004bcac6a1df0935d79656387bd41632ba0bbd", size = 178531, upload_time = "2026-01-10T09:23:35.016Z" }, - { url = "https://files.pythonhosted.org/packages/6f/28/258ebab549c2bf3e64d2b0217b973467394a9cea8c42f70418ca2c5d0d2e/websockets-16.0-py3-none-any.whl", hash = "sha256:1637db62fad1dc833276dded54215f2c7fa46912301a24bd94d45d46a011ceec", size = 171598, upload_time = "2026-01-10T09:23:45.395Z" }, -] From 848fa2f435b0ac7801c063800ce00e9d50d1e76d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Luis=20Castro=20Garc=C3=ADa?= Date: Wed, 26 Aug 2026 11:56:07 -0600 Subject: [PATCH 14/23] updated skill metadata and tool descriptions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: José Luis Castro García --- .../CHANGELOG.md | 2 +- src/oci-db-observability-mcp-server/README.md | 15 +++-- .../oci_db_observability_mcp_server/mcp.py | 33 +++++++---- .../metadata/skills.json | 16 ++--- .../metadata/tools.json | 36 +++++------ .../registry.py | 13 ++++ .../runtime.py | 59 ++++++++++++++----- .../tests/test_mcp_surface.py | 21 ++++++- .../tests/test_runtime.py | 47 +++++++++------ 9 files changed, 159 insertions(+), 83 deletions(-) diff --git a/src/oci-db-observability-mcp-server/CHANGELOG.md b/src/oci-db-observability-mcp-server/CHANGELOG.md index abe11a69..0fdcf2c2 100644 --- a/src/oci-db-observability-mcp-server/CHANGELOG.md +++ b/src/oci-db-observability-mcp-server/CHANGELOG.md @@ -19,7 +19,7 @@ ### Tool surface -- Compartment scope discovery through `get_oci_compartment` and +- Explicit-compartment scope discovery through `get_oci_compartment` and `list_oci_compartments`. - Catalog discovery and dispatch through `list_dbo_skills`, `list_dbo_tools`, `describe_dbo_tool`, and `invoke_dbo_tool`. diff --git a/src/oci-db-observability-mcp-server/README.md b/src/oci-db-observability-mcp-server/README.md index 7abd0e3f..5e24e3f3 100644 --- a/src/oci-db-observability-mcp-server/README.md +++ b/src/oci-db-observability-mcp-server/README.md @@ -36,17 +36,16 @@ uvx oracle.oci-db-observability-mcp-server Register `${ORACLE_MCP_BASE_URL}/auth/callback` in the OCI IAM confidential application. If `IDCS_REQUIRED_SCOPES` is unset, the default scope is `oci_mcp.db_observability.invoke` together with the standard OpenID scopes. -The server uses `oracle-mcp-common` 0.1.2 or later for OCI authentication. For -HTTP token-exchange authentication, set `OCI_MCP_TENANCY_ID_OVERRIDE` when the -caller signer does not expose a tenancy and `list_oci_compartments` is called -without `root_compartment_id`. +The server uses `oracle-mcp-common` 0.1.2 or later for OCI authentication. ## Discovery workflow -1. If the user provides a compartment name instead of an OCID, call - `list_oci_compartments` with `name` set to that value. Use the returned - item's `id` as `compartment_id` in subsequent operations. If the user - provides an OCID, call `get_oci_compartment` to validate it when needed. +1. For a compartment-scoped operation, use a user-provided compartment OCID. + For a name lookup, request a user-provided `root_compartment_id`, then call + `list_oci_compartments` with that root and `name`. Use the returned item's + `id` as `compartment_id` in subsequent operations. Do not invent an OCID. + If the user provides an OCID, call `get_oci_compartment` to validate it when + needed. 2. Call `list_dbo_skills` when the relevant capability is not already known. 3. Call `list_dbo_tools` for selected skills when the required operation is not already known. diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/mcp.py b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/mcp.py index 6549ea2a..250d64aa 100644 --- a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/mcp.py +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/mcp.py @@ -8,15 +8,16 @@ from typing import Any from fastmcp import FastMCP from pydantic import Field -from .registry import load_registry, to_jsonable +from .registry import compartment_requirements, load_registry, to_jsonable from .runtime import invoke_registered_tool from .runtime import identity_bootstrap_client, serialize_response registry = load_registry() mcp = FastMCP( name="oracle.oci-db-observability-mcp-server", - instructions="Resolve an OCI compartment name to its OCID with `list_oci_compartments`, or validate an already known " - "OCID with `get_oci_compartment`, when scope is not already known. Pass the resolved compartment OCID " + instructions="For a compartment-scoped operation, use a user-provided compartment OCID, or resolve a user-provided compartment name with " + "`list_oci_compartments` using an explicit root compartment OCID. If neither is available, ask the user for a compartment OCID or " + "root compartment OCID; do not invent an OCID. Validate an already known OCID with `get_oci_compartment` when scope is not already known. Pass the resolved compartment OCID " "to subsequent Database Observability operations. " "Use `list_dbo_skills` and `list_dbo_tools` when the relevant capability or operation is not already known. " "Use `describe_dbo_tool` to inspect or confirm a tool's exact contract when its schema is unavailable, " @@ -28,7 +29,8 @@ description=( "Read-only OCI compartment resolution. Use this when the compartment OCID is already known and you want to " "validate or inspect that exact compartment before invoking compartment-scoped Database Observability tools. " - "If the user provides a compartment name rather than an OCID, use `list_oci_compartments` first." + "Do not invent an OCID. If the user provides a compartment name rather than an OCID, request a root " + "compartment OCID and use `list_oci_compartments` first." ), annotations={"readOnlyHint": True, "destructiveHint": False, "idempotentHint": True, "openWorldHint": True}, ) @@ -40,21 +42,22 @@ def get_oci_compartment( ) -> Any: if not compartment_id: raise ValueError("compartment_id is required.") - client, _ = identity_bootstrap_client() + client = identity_bootstrap_client() return serialize_response(client.get_compartment(compartment_id=compartment_id)) @mcp.tool( description=( "Read-only OCI compartment name-to-OCID resolution. Use this when the user supplies a compartment name instead " "of an OCID. Set `name` to the requested name and use the returned item's `id` as " - "the `compartment_id` in subsequent Database Observability operations. Use `root_compartment_id` to narrow the " - "search; by default, search descendants from the authenticated tenancy. If multiple compartments share a name, " + "the `compartment_id` in subsequent Database Observability operations. Provide a user-supplied " + "`root_compartment_id` as the compartment OCID from which to search descendants; if it is unavailable, ask " + "the user rather than inventing one. If multiple compartments share a name, " "inspect their IDs and hierarchy before continuing." ), annotations={"readOnlyHint": True, "destructiveHint": False, "idempotentHint": True, "openWorldHint": True}, ) def list_oci_compartments( - root_compartment_id: str | None = Field(None, description="Optional root compartment OCID that limits name resolution to this compartment and its descendants. Omit it to search from the authenticated tenancy."), + root_compartment_id: str = Field(..., description="Required root compartment OCID from which to search for matching compartments and descendants."), include_subtree: bool = Field(True, description="When true, include all descendant compartments below the root."), access_level: str = Field("ACCESSIBLE", description="Visibility filter: ACCESSIBLE returns compartments available to the caller; ANY includes all visible states."), name: str | None = Field(None, description="Optional exact compartment-name filter for resolving a user-provided name to one or more compartment OCIDs."), @@ -62,9 +65,11 @@ def list_oci_compartments( limit: int = Field(50, ge=1, le=1000, description="Maximum number of compartments returned in this response."), page: str | None = Field(None, description="Optional nextPage token returned by a previous call."), ) -> dict[str, Any]: - client, tenancy_id = identity_bootstrap_client() + if not root_compartment_id: + raise ValueError("root_compartment_id is required.") + client = identity_bootstrap_client() response = client.list_compartments( - compartment_id=root_compartment_id or tenancy_id, + compartment_id=root_compartment_id, compartment_id_in_subtree=include_subtree, access_level=access_level, name=name, @@ -108,6 +113,7 @@ def list_dbo_tools( "description": tool["description"], "skills": list(tool["skills"]), "mutable": tool["mutable"], + "compartmentRequirements": compartment_requirements(tool), } for tool in tools[:limit] ], @@ -129,13 +135,16 @@ def describe_dbo_tool( "description": tool["description"], "inputSchema": to_jsonable(tool["inputSchema"]), "mutable": tool["mutable"], + "compartmentRequirements": compartment_requirements(tool), "guidance": "Pass an arguments object that exactly matches inputSchema.", } @mcp.tool( description="Invoke one registered Oracle Database Observability operation. The supplied arguments object must " - "conform exactly to the selected tool's known `inputSchema`; use `describe_dbo_tool` first when that " - "schema is unavailable, outdated, or uncertain. This is the sole endpoint that executes catalog " + "conform exactly to the selected tool's known `inputSchema`. For an operation with compartment " + "requirements, provide a real compartment OCID or resolve a user-provided name from a user-provided " + "root compartment OCID; do not invent an OCID. Use `describe_dbo_tool` first when that schema is " + "unavailable, outdated, or uncertain. This is the sole endpoint that executes catalog " "operations." ) def invoke_dbo_tool( diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/skills.json b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/skills.json index e823f141..39f96e60 100644 --- a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/skills.json +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/skills.json @@ -19,7 +19,7 @@ }, { "name": "awr-discovery-primitives", - "description": "Discovery primitives for AWR databases and snapshot inventories.", + "description": "DB Management discovery primitives for AWR database IDs and snapshot inventories. For managed-database AWR analysis, use list_managed_databases, then list_awr_dbs, then the matching DB Management AWR analysis tool. Do not use Operations Insights warehouse, configuration, or database-insight tools for this workflow. These tools do not discover an Operations Insights AWR Hub OCID; do not reuse their managed database IDs or awr_db_id values as awr_hub_id.", "tools": [ "list_awr_db_snapshots", "list_awr_dbs" @@ -153,7 +153,7 @@ }, { "name": "database-health-and-core-metrics", - "description": "Read-only health and core runtime metric checks for managed databases in OCI DBM.", + "description": "Read-only health and core runtime metric checks for managed databases in OCI DBM. Check target type and subtype from inventory before invoking a specialized tool such as get_cluster_cache_metric.", "tools": [ "get_cluster_cache_metric", "get_database_home_metrics", @@ -163,7 +163,7 @@ }, { "name": "database-inventory", - "description": "Discover managed databases and database insight resources, then retrieve details for verified targets.", + "description": "Discover managed databases and Operations Insights database-insight resources, then retrieve details for verified targets. Database Insight inventory does not provide DB Management AWR identifiers or an Operations Insights AWR Hub OCID; do not use it for managed-database AWR discovery.", "tools": [ "get_database_insight", "get_managed_database", @@ -174,7 +174,7 @@ }, { "name": "database-performance-analysis", - "description": "Use this skill for workload regression and bottleneck diagnosis using AWR evidence, wait analysis, CPU profiles, metric trends, and SQL/plan context.", + "description": "Use this skill for workload regression and bottleneck diagnosis using AWR evidence, wait analysis, CPU profiles, metric trends, and SQL/plan context. When starting from a managed database OCID, prefer the DB Management AWR route: list_managed_databases, list_awr_dbs, then the matching summarize_awr_db_* tool. Use Operations Insights AWR tools only when an Operations Insights AWR Hub OCID is independently known; its source identifier must come from list_awr_databases for that same hub.", "tools": [ "get_awr_database_report", "get_awr_database_sql_report", @@ -292,7 +292,7 @@ }, { "name": "fleet-health-analytics-across-many-databases", - "description": "Fleet-level health analytics across many managed databases in OCI Database Management.", + "description": "Fleet-level health analytics across many managed databases in OCI Database Management. Use get_database_fleet_health_metrics only when its filter_by_metric_names enum contains the requested metric; otherwise assess the applicable AWR workflow without treating the fleet enum as a global capability list.", "tools": [ "get_database_fleet_health_metrics" ] @@ -381,7 +381,7 @@ }, { "name": "operations-insights-warehouse-admin", - "description": "Tools related to operations-insights-warehouse-admin functionality.", + "description": "Read-only Operations Insights warehouse administration and capacity tools. These tools do not discover AWR Hubs and are not required for DB Management AWR analysis.", "tools": [ "get_operations_insights_warehouse", "get_operations_insights_warehouse_user", @@ -392,7 +392,7 @@ }, { "name": "opsi-configurations-and-datastores", - "description": "Read-only Operations Insights configuration inventory and detail inspection.", + "description": "Read-only Operations Insights configuration inventory and detail inspection. These tools do not provide DB Management AWR identifiers or AWR Hub discovery for managed-database analysis.", "tools": [ "get_opsi_configuration", "list_opsi_configurations" @@ -420,7 +420,7 @@ }, { "name": "users-and-privileges-rbac-audit", - "description": "Database users, roles, and privilege audit surfaces including proxy and data access container visibility.", + "description": "Database users, roles, and privilege audit surfaces including proxy and data access container visibility. For fleet workflows, call list_managed_databases once per compartment and filter scope and treat its returned IDs as the authoritative target set. Call each downstream inventory tool at most once per unique target and parameter set; do not call downstream tools with IDs that were not returned by the inventory call. Reuse completed results, follow pagination tokens to completion, and retry only failed or transient requests or explicitly requested new pages.", "tools": [ "get_user", "list_consumer_group_privileges", diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/tools.json b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/tools.json index 9c74f593..ab69d238 100644 --- a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/tools.json +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/tools.json @@ -759,7 +759,7 @@ }, { "name": "get_cluster_cache_metric", - "description": "Returns cluster cache metric summaries so admins can assess RAC cache efficiency and interconnect behavior.", + "description": "Returns RAC global-cache and interconnect metric summaries. Call only for a confirmed RAC CDB or non-CDB target; do not call for PDB, Autonomous, or non-RAC databases. This tool does not return Cursor Cache Hit Percentage.", "service": "dbm", "client": "DbManagementClient", "operation": "get_cluster_cache_metric", @@ -1054,7 +1054,7 @@ }, { "name": "get_database_fleet_health_metrics", - "description": "Returns fleet health metrics across databases so admins can compare usage and availability trends by baseline and target windows.", + "description": "Returns fleet health metrics across databases so admins can compare usage and availability trends by baseline and target windows. Use only a metric named in filter_by_metric_names; absence from that enum does not establish that the metric is unavailable through AWR tools.", "service": "dbm", "client": "DbManagementClient", "operation": "get_database_fleet_health_metrics", @@ -3705,7 +3705,7 @@ }, { "name": "list_awr_dbs", - "description": "Returns AWR databases and snapshot coverage for a managed database.", + "description": "Returns DB Management AWR database IDs and snapshot coverage for one managed database. For managed-database AWR analysis, pass the returned awr_db_id with this same managed_database_id to the matching summarize_awr_db_* tool. The returned awr_db_id is not an Operations Insights AWR Hub OCID; never pass it, or managed_database_id, as awr_hub_id to an Operations Insights AWR tool.", "service": "dbm", "client": "DbManagementClient", "operation": "list_awr_dbs", @@ -5056,7 +5056,7 @@ }, { "name": "list_database_insights", - "description": "Returns Operations Insights inventory for selected scope and filters so admins can verify insight coverage, status, and candidate databaseInsightId values.", + "description": "Returns Operations Insights inventory for selected scope and filters so admins can verify insight coverage, status, and candidate databaseInsightId values. It does not return DB Management AWR identifiers or an Operations Insights AWR Hub OCID; do not use it for managed-database AWR discovery.", "service": "opsi", "client": "OperationsInsightsClient", "operation": "list_database_insights", @@ -7162,7 +7162,7 @@ }, { "name": "list_managed_databases", - "description": "Returns DB Management managed database inventory for a compartment so admins can discover targets and collect managedDatabaseId values.", + "description": "Returns the DB Management managed-database inventory for a compartment so callers can establish the target set and collect canonical managedDatabaseId values. Use this as the initial inventory for a workflow, follow pagination tokens, and reuse the returned IDs for downstream calls instead of rediscovering the same scope.", "service": "dbm", "client": "DbManagementClient", "operation": "list_managed_databases", @@ -7601,7 +7601,7 @@ }, { "name": "list_operations_insights_warehouses", - "description": "Returns Ops Insights warehouse inventory so admins can review warehouse lifecycle status and platform coverage.", + "description": "Returns Ops Insights warehouse inventory so admins can review warehouse lifecycle status and platform coverage. This is not AWR Hub discovery and is not required for DB Management AWR analysis.", "service": "opsi", "client": "OperationsInsightsClient", "operation": "list_operations_insights_warehouses", @@ -7664,7 +7664,7 @@ }, { "name": "list_opsi_configurations", - "description": "Returns OPSI configuration resources so admins can audit active configuration state across managed resources.", + "description": "Returns OPSI configuration resources so admins can audit active configuration state across managed resources. This does not provide DB Management AWR identifiers or AWR Hub discovery for managed-database analysis.", "service": "opsi", "client": "OperationsInsightsClient", "operation": "list_opsi_configurations", @@ -7928,7 +7928,7 @@ }, { "name": "list_roles", - "description": "Returns roles granted to a specific user.", + "description": "Returns roles granted to a specific user. Use this as a dependent lookup for users returned by list_users; it is not a database or user-discovery tool. Reuse a successful result for the same user, database, and filter scope, and request another page only when a pagination token is present.", "service": "dbm", "client": "DbManagementClient", "operation": "list_roles", @@ -8329,7 +8329,7 @@ }, { "name": "list_users", - "description": "Returns users for a managed database so you can identify user accounts for access review.", + "description": "Returns a user-inventory page for one managed database and filter scope so callers can identify accounts for access review or dependent privilege lookups. Preconditions: managed_database_id must come from the current list_managed_databases result. During one workflow, issue at most one call for each unique (managed_database_id, filters, page) tuple; do not repeat a successful request or invent or derive alternate database IDs. Follow pagination tokens to completion and retry only failed or transient requests.", "service": "dbm", "client": "DbManagementClient", "operation": "list_users", @@ -9513,7 +9513,7 @@ }, { "name": "summarize_awr_database_metrics", - "description": "Returns sampled AWR metric series for the selected database, including metric name, sample timestamps, and observed values.", + "description": "Returns sampled AWR metric series for the selected database, including metric name, sample timestamps, and observed values. Requires a confirmed Operations Insights AWR Hub OCID and a source identifier from that same hub; metric names are source-dependent.", "service": "opsi", "client": "OperationsInsightsClient", "operation": "summarize_awr_database_metrics", @@ -9529,11 +9529,11 @@ }, "awr_hub_id": { "type": "string", - "description": "Unique Awr Hub identifier" + "description": "The Operations Insights AWR Hub OCID. This is not a managed database OCID or a DB Management awr_db_id; invoke this tool only when the hub has been independently confirmed." }, "awr_source_database_identifier": { "type": "string", - "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results." + "description": "Internal AWR source database identifier in this Operations Insights AWR Hub. This is not an OCID; use the identifier returned by list_awr_databases for the same awr_hub_id." }, "begin_snapshot_identifier_greater_than_or_equal_to": { "type": "integer", @@ -9582,7 +9582,7 @@ "time_less_than_or_equal_to": { "type": "string", "format": "date-time", - "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" + "description": "The optional less than or equal to query parameter to filter the timestamp. It must not be later than the current UTC time. The timestamp format is YYYY-MM-DDTHH:MM:SSZ, for example 2020-12-03T19:00:53Z." }, "opc_request_id": { "type": "string" @@ -9861,7 +9861,7 @@ }, { "name": "summarize_awr_database_sysstats", - "description": "Returns AWR sysstat samples for a database, including statistic names, sampled intervals, and measured values.", + "description": "Returns AWR sysstat samples for a database, including statistic names, sampled intervals, and measured values. Requires a confirmed Operations Insights AWR Hub OCID and a source identifier from that same hub. Statistic names are source-dependent; this tool returns counters, not a precomputed Cursor Cache Hit Percentage.", "service": "opsi", "client": "OperationsInsightsClient", "operation": "summarize_awr_database_sysstats", @@ -9877,11 +9877,11 @@ }, "awr_hub_id": { "type": "string", - "description": "Unique Awr Hub identifier" + "description": "The Operations Insights AWR Hub OCID. This is not a managed database OCID or a DB Management awr_db_id; invoke this tool only when the hub has been independently confirmed." }, "awr_source_database_identifier": { "type": "string", - "description": "Internal AWR source database identifier for the database in the AWR Hub. This value is not an OCID; use the identifier returned by AWR Hub database listing results." + "description": "Internal AWR source database identifier in this Operations Insights AWR Hub. This is not an OCID; use the identifier returned by list_awr_databases for the same awr_hub_id." }, "begin_snapshot_identifier_greater_than_or_equal_to": { "type": "integer", @@ -9930,7 +9930,7 @@ "time_less_than_or_equal_to": { "type": "string", "format": "date-time", - "description": "The optional less than or equal to query parameter to filter the timestamp. The timestamp format to be followed is: YYYY-MM-DDTHH:MM:SSZ, example 2020-12-03T19:00:53Z" + "description": "The optional less than or equal to query parameter to filter the timestamp. It must not be later than the current UTC time. The timestamp format is YYYY-MM-DDTHH:MM:SSZ, for example 2020-12-03T19:00:53Z." }, "opc_request_id": { "type": "string" @@ -10705,7 +10705,7 @@ }, { "name": "summarize_awr_db_sysstats", - "description": "Returns AWR SYSSTAT summaries for one AWR database.", + "description": "Returns AWR SYSSTAT summaries for one DB Management AWR database. Use after list_awr_dbs with the returned awr_db_id and the same managed_database_id. For cursor-cache analysis, request the needed sysstat counters for a common completed interval; this tool returns counters, not a precomputed ratio.", "service": "dbm", "client": "DbManagementClient", "operation": "summarize_awr_db_sysstats", diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/registry.py b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/registry.py index 07e0bab5..038f8bf4 100644 --- a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/registry.py +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/registry.py @@ -31,6 +31,7 @@ class RegistryError(ValueError): }, "identity": {"IdentityClient": oci.identity.IdentityClient}, } +_COMPARTMENT_ARGUMENTS = ("compartment_id", "peer_database_compartment_id") @dataclass(frozen=True) @@ -68,6 +69,18 @@ def client_class(service: str, client: str) -> type[Any]: raise RegistryError(f"Unsupported SDK client binding: {service}/{client}") from exc +def compartment_requirements(tool: Mapping[str, Any]) -> list[dict[str, Any]]: + """Return top-level OCI compartment arguments accepted by a catalog operation.""" + schema = tool["inputSchema"] + properties = schema["properties"] + required = set(schema.get("required", ())) + return [ + {"argument": name, "required": name in required} + for name in _COMPARTMENT_ARGUMENTS + if name in properties + ] + + def _read_json(name: str) -> dict[str, Any]: try: return json.loads(files("oracle.oci_db_observability_mcp_server").joinpath("metadata", name).read_text()) diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/runtime.py b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/runtime.py index 9362b6e8..d8f7fbb7 100644 --- a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/runtime.py +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/runtime.py @@ -9,7 +9,6 @@ import inspect import json -import os from functools import lru_cache from typing import Any, Mapping, get_args, get_origin @@ -19,7 +18,7 @@ from oracle_mcp_common import IDCSHttpAuth, build_auth_context from . import __project__, __version__ -from .registry import client_class +from .registry import client_class, compartment_requirements from .sdk_schema import parameter_docs _USER_AGENT = f"{__project__.split('oracle.', 1)[1].removesuffix('-server')}/{__version__}" @@ -32,26 +31,25 @@ def configure_http_auth(policy: IDCSHttpAuth) -> None: _http_auth = policy -def _get_http_config_and_signer(access_token: Any) -> tuple[dict[str, Any], Any, str | None]: +def _get_http_config_and_signer(access_token: Any) -> tuple[dict[str, Any], Any]: """Build caller-specific OCI SDK authentication for one HTTP request.""" if _http_auth is None: raise RuntimeError("HTTP authentication policy has not been initialized.") context = _http_auth.context_for(access_token.token if access_token else None) - tenancy_id = getattr(context.signer, "tenancy_id", None) or os.getenv("OCI_MCP_TENANCY_ID_OVERRIDE") - return ({**context.config, "additional_user_agent": _USER_AGENT}, context.signer, tenancy_id) + return ({**context.config, "additional_user_agent": _USER_AGENT}, context.signer) -def _get_config_and_signer(access_token: Any | None = None) -> tuple[dict[str, Any], Any, str | None]: +def _get_config_and_signer(access_token: Any | None = None) -> tuple[dict[str, Any], Any]: """Resolve HTTP caller credentials or configured stdio OCI credentials.""" if access_token is not None: return _get_http_config_and_signer(access_token) context = build_auth_context() - return ({**context.config, "additional_user_agent": _USER_AGENT}, context.signer, context.tenancy_id) + return ({**context.config, "additional_user_agent": _USER_AGENT}, context.signer) @lru_cache(maxsize=None) def _stdio_client(service: str, client_name: str) -> Any: - config, signer, _ = _get_config_and_signer() + config, signer = _get_config_and_signer() return client_class(service, client_name)(config, signer=signer) @@ -59,17 +57,15 @@ def _client(service: str, client_name: str) -> Any: access_token = get_access_token() if access_token is None: return _stdio_client(service, client_name) - config, signer, _ = _get_config_and_signer(access_token) + config, signer = _get_config_and_signer(access_token) return client_class(service, client_name)(config, signer=signer) -def identity_bootstrap_client() -> tuple[Any, str]: - """Create the Identity client and resolve the configured tenancy scope.""" - config, signer, tenancy_id = _get_config_and_signer(get_access_token()) - if not tenancy_id: - raise ValueError("Configured OCI authentication context is missing tenancy.") +def identity_bootstrap_client() -> Any: + """Create the Identity client for explicit compartment lookups.""" + config, signer = _get_config_and_signer(get_access_token()) client = client_class("identity", "IdentityClient")(config, signer=signer) - return client, tenancy_id + return client def _serialize_data(data: Any) -> Any: @@ -141,12 +137,45 @@ def _coerce_arguments(client: Any, operation: str, arguments: Mapping[str, Any]) return coerced +def _require_compartment_scope(tool: Mapping[str, Any], arguments: Mapping[str, Any]) -> None: + """Give actionable guidance when a required catalog scope is missing.""" + for requirement in compartment_requirements(tool): + argument = requirement["argument"] + if requirement["required"] and not arguments.get(argument): + raise ValueError( + f"{tool['name']} requires {argument}. Ask the user for a compartment OCID, or for a " + "root_compartment_id to resolve a supplied compartment name. Do not invent an OCID." + ) + + +def _validate_compartment_scope(tool: Mapping[str, Any], arguments: Mapping[str, Any]) -> None: + """Reject invalid or inaccessible catalog compartment scopes before dispatch.""" + requirements = compartment_requirements(tool) + values = {str(arguments[requirement["argument"]]) for requirement in requirements if arguments.get(requirement["argument"])} + if not values: + return + client = identity_bootstrap_client() + for compartment_id in values: + try: + client.get_compartment(compartment_id=compartment_id) + except oci.exceptions.ServiceError as exc: + if exc.code == "NotAuthorizedOrNotFound" or exc.status in {403, 404}: + raise ValueError( + f"The supplied compartment OCID {compartment_id} is invalid or inaccessible to the configured " + "OCI identity. Ask the user for a valid compartment OCID, or for a root_compartment_id to " + "resolve a compartment name." + ) from exc + raise RuntimeError(f"Unable to validate compartment OCID {compartment_id}: {exc}") from exc + + def invoke_registered_tool(tool: Mapping[str, Any], arguments: dict[str, Any]) -> Any: if not isinstance(arguments, dict): raise ValueError("arguments must be a JSON object") + _require_compartment_scope(tool, arguments) errors = sorted(Draft202012Validator(dict(tool["inputSchema"])).iter_errors(arguments), key=lambda error: list(error.path)) if errors: raise ValueError(f"Invalid arguments: {errors[0].message}") + _validate_compartment_scope(tool, arguments) client = _client(str(tool["service"]), str(tool["client"])) try: response = getattr(client, tool["operation"])(**_coerce_arguments(client, str(tool["operation"]), arguments)) diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_mcp_surface.py b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_mcp_surface.py index 7c59d5e5..b594fed8 100644 --- a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_mcp_surface.py +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_mcp_surface.py @@ -48,7 +48,7 @@ def list_compartments(self, **kwargs): calls["list"] = kwargs return object() - monkeypatch.setattr(mcp_module, "identity_bootstrap_client", lambda: (Client(), "tenancy-ocid")) + monkeypatch.setattr(mcp_module, "identity_bootstrap_client", Client) monkeypatch.setattr( mcp_module, "serialize_response", @@ -61,7 +61,7 @@ def list_compartments(self, **kwargs): } assert calls["get"] == {"compartment_id": "compartment-ocid"} assert mcp_module.list_oci_compartments( - root_compartment_id=None, + root_compartment_id="root-compartment-ocid", include_subtree=True, access_level="ACCESSIBLE", name="production", @@ -74,7 +74,7 @@ def list_compartments(self, **kwargs): "nextPage": "page-2", } assert calls["list"] == { - "compartment_id": "tenancy-ocid", + "compartment_id": "root-compartment-ocid", "compartment_id_in_subtree": True, "access_level": "ACCESSIBLE", "name": "production", @@ -89,6 +89,19 @@ def test_get_compartment_requires_an_ocid() -> None: mcp_module.get_oci_compartment("") +def test_list_compartments_requires_a_root_ocid() -> None: + with pytest.raises(ValueError, match="root_compartment_id is required"): + mcp_module.list_oci_compartments( + root_compartment_id="", + include_subtree=True, + access_level="ACCESSIBLE", + name=None, + lifecycle_state=None, + limit=50, + page=None, + ) + + def test_discovery_and_invocation_tools_delegate_to_registry(monkeypatch) -> None: skills = mcp_module.list_dbo_skills()["skills"] assert len(skills) == 34 @@ -99,10 +112,12 @@ def test_discovery_and_invocation_tools_delegate_to_registry(monkeypatch) -> Non assert len(listed["tools"]) == 1 assert listed["truncated"] is (listed["count"] > 1) assert "database-inventory" in listed["tools"][0]["skills"] + assert "compartmentRequirements" in listed["tools"][0] described = mcp_module.describe_dbo_tool("list_database_insights") assert described["name"] == "list_database_insights" assert described["inputSchema"]["type"] == "object" + assert described["compartmentRequirements"] == [{"argument": "compartment_id", "required": False}] expected = {"result": "ok"} monkeypatch.setattr(mcp_module, "invoke_registered_tool", lambda tool, arguments: (tool["name"], arguments, expected)) diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_runtime.py b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_runtime.py index 0ab30499..b179b498 100644 --- a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_runtime.py +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_runtime.py @@ -10,6 +10,7 @@ from unittest.mock import Mock import pytest +import oci from oracle.oci_db_observability_mcp_server import __project__, __version__ from oracle.oci_db_observability_mcp_server import runtime @@ -84,7 +85,7 @@ def test_http_access_token_requires_initialized_policy(monkeypatch) -> None: runtime._get_config_and_signer(SimpleNamespace(token="caller-token")) -def test_identity_bootstrap_uses_http_context_and_tenancy_override(monkeypatch) -> None: +def test_identity_bootstrap_uses_http_context(monkeypatch) -> None: signer = object() monkeypatch.setattr( runtime, @@ -92,27 +93,12 @@ def test_identity_bootstrap_uses_http_context_and_tenancy_override(monkeypatch) SimpleNamespace(context_for=lambda token: SimpleNamespace(config={"region": "us-ashburn-1"}, signer=signer)), ) monkeypatch.setattr(runtime, "get_access_token", lambda: SimpleNamespace(token="caller-token")) - monkeypatch.setenv("OCI_MCP_TENANCY_ID_OVERRIDE", "ocid1.tenancy.oc1..example") monkeypatch.setattr(runtime, "client_class", lambda _service, _client: FakeClient) - client, tenancy_id = runtime.identity_bootstrap_client() + client = runtime.identity_bootstrap_client() assert isinstance(client, FakeClient) assert client.signer is signer - assert tenancy_id == "ocid1.tenancy.oc1..example" - - -def test_identity_bootstrap_requires_tenancy(monkeypatch) -> None: - monkeypatch.setattr(runtime, "get_access_token", lambda: None) - monkeypatch.setattr( - runtime, - "build_auth_context", - lambda: SimpleNamespace(config={}, signer=object(), tenancy_id=None), - ) - monkeypatch.delenv("OCI_MCP_TENANCY_ID_OVERRIDE", raising=False) - - with pytest.raises(ValueError, match="missing tenancy"): - runtime.identity_bootstrap_client() def test_invoke_validates_before_creating_sdk_client(monkeypatch) -> None: @@ -130,10 +116,35 @@ def test_invoke_validates_before_creating_sdk_client(monkeypatch) -> None: } monkeypatch.setattr(runtime, "_client", lambda *_args: pytest.fail("client must not be created")) - with pytest.raises(ValueError, match="compartment_id"): + with pytest.raises(ValueError, match="example_tool requires compartment_id"): runtime.invoke_registered_tool(tool, {}) +def test_invoke_rejects_an_inaccessible_compartment_before_creating_service_client(monkeypatch) -> None: + tool = { + "name": "example_tool", + "service": "opsi", + "client": "OperationsInsightsClient", + "operation": "get_example", + "inputSchema": { + "type": "object", + "properties": {"compartment_id": {"type": "string"}}, + "required": ["compartment_id"], + "additionalProperties": False, + }, + } + + class IdentityClient: + def get_compartment(self, **_kwargs): + raise oci.exceptions.ServiceError(404, "NotAuthorizedOrNotFound", {}, "not found") + + monkeypatch.setattr(runtime, "identity_bootstrap_client", IdentityClient) + monkeypatch.setattr(runtime, "_client", lambda *_args: pytest.fail("service client must not be created")) + + with pytest.raises(ValueError, match="invalid or inaccessible"): + runtime.invoke_registered_tool(tool, {"compartment_id": "ocid1.compartment.oc1..unknown"}) + + @pytest.mark.parametrize( ("tool_name", "arguments"), [ From eb4ed68de78d7b56617a34936559f2b46f3e53e4 Mon Sep 17 00:00:00 2001 From: Jafet Castaneda Date: Wed, 26 Aug 2026 12:29:51 -0600 Subject: [PATCH 15/23] Add OCI Monitoring metrics and alarm catalog --- .../CHANGELOG.md | 9 + src/oci-db-observability-mcp-server/README.md | 25 +- ...abase-and-infra-observability-metrics.json | 4041 +++++++++++++++++ .../metadata/skills.json | 13 + .../metadata/tools.json | 161 + .../metric_catalog.py | 150 + .../registry.py | 28 +- .../runtime.py | 83 + .../tests/test_mcp_surface.py | 2 +- .../tests/test_registry.py | 28 +- .../tests/test_runtime.py | 131 + 11 files changed, 4656 insertions(+), 15 deletions(-) create mode 100644 src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/database-and-infra-observability-metrics.json create mode 100644 src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metric_catalog.py diff --git a/src/oci-db-observability-mcp-server/CHANGELOG.md b/src/oci-db-observability-mcp-server/CHANGELOG.md index 0fdcf2c2..6a29038d 100644 --- a/src/oci-db-observability-mcp-server/CHANGELOG.md +++ b/src/oci-db-observability-mcp-server/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +## Unreleased + +### Tool surface + +- Added the `database-and-infra-observability-metric-catalog` skill with local + metric catalog search/get/list handlers, a catalog-validated live OCI + Monitoring metric reader, and read-only OCI Monitoring alarm definition and + status operations. + ## 0.1.0 - 2026-08-05 ### Server diff --git a/src/oci-db-observability-mcp-server/README.md b/src/oci-db-observability-mcp-server/README.md index 5e24e3f3..d2521c3b 100644 --- a/src/oci-db-observability-mcp-server/README.md +++ b/src/oci-db-observability-mcp-server/README.md @@ -1,9 +1,10 @@ # OCI Database Observability MCP Server -This package provides one MCP server for OCI Operations Insights (OPSI) and OCI -Database Management (DBM). It exposes two read-only compartment discovery -tools plus four catalog discovery and invocation tools. The catalog contains -only operations with exact OCI Python SDK bindings. +This package provides one MCP server for OCI Operations Insights (OPSI), +Database Management (DBM), and OCI Monitoring observability workflows. It +exposes two read-only compartment discovery tools plus four catalog discovery +and invocation tools. The catalog contains read-only OCI SDK bindings and +packaged metadata handlers. ## Running @@ -59,8 +60,20 @@ The complete skill and tool catalogs are packaged as JSON under read-only workflows such as inventory, diagnostics, performance, and fleet analysis. Their concise descriptions are MCP discovery metadata, not MCP resources; the detailed OEM.ai skill files are not packaged or required at -runtime. The tool catalog contains OPSI and DBM SDK bindings; it does not -expose the individual operations as MCP tools. +runtime. The tool catalog contains OPSI, DBM, and OCI Monitoring operations; +it does not expose the individual operations as MCP tools. + +## OCI Monitoring metric and alarm workflow + +The `database-and-infra-observability-metric-catalog` skill provides three +local catalog tools (search, get, and list), one live metric reader, and three +read-only alarm tools. First identify a metric using the local catalog, then +read a specific metric with its exact namespace/name, explicit RFC 3339 time +window, allowed dimensions, aggregation, interval, and resolution. The metric +reader turns that request into MQL and makes one +`MonitoringClient.summarize_metrics_data` call. Alarm definition and state +tools each make one respective OCI Monitoring SDK call. No tool changes OCI +resources. ## Pagination diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/database-and-infra-observability-metrics.json b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/database-and-infra-observability-metrics.json new file mode 100644 index 00000000..a2277869 --- /dev/null +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/database-and-infra-observability-metrics.json @@ -0,0 +1,4041 @@ +{ + "catalogId": "database-and-infra-observability-metrics", + "version": "1.0.0", + "identityFields": [ + "namespace", + "name" + ], + "search": { + "fields": [ + "name", + "description", + "namespace", + "dimensions" + ], + "normalization": { + "caseFold": true, + "splitCamelCase": true, + "stemming": true + } + }, + "list": { + "filterableFields": [ + "namespace", + "name" + ], + "defaultSort": [ + "namespace", + "name" + ], + "maxLimit": 100 + }, + "records": [ + { + "namespace": "oracle_oci_database", + "name": "AllocatedStorageUtilizationByTablespace", + "description": "The percentage of space used by a tablespace, out of allocated space. For CDBs, this metric provides data for root container tablespaces.", + "unit": "percent", + "statistic": "Mean", + "collectionInternal": "30 minute", + "dimensions": [ + "tablespaceName", + "tablespaceType" + ], + "supportedDatabaseType": [ + "CDB", + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "ApplyLag", + "description": "The number of seconds the standby database is behind the primary database.", + "unit": "seconds", + "statistic": "Mean", + "collectionInternal": "5 minute", + "dimensions": [ + "dbRole", + "primaryDbid", + "primaryDbUniqueName" + ], + "supportedDatabaseType": [ + "CDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "ApplyLagDataRefreshElapsedTime", + "description": "The elapsed time since the ApplyLag metric sample was last collected.", + "unit": "seconds", + "statistic": "Mean", + "collectionInternal": "5 minute", + "dimensions": [ + "dbRole", + "primaryDbid", + "primaryDbUniqueName" + ], + "supportedDatabaseType": [ + "CDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "AvgGCCRBlockReceiveTime", + "description": "The average global cache consistent-read (CR) block receive time.", + "unit": "milliseconds", + "statistic": "Mean", + "collectionInternal": "5 minute", + "dimensions": [ + "instanceNumber", + "instanceName", + "hostName" + ], + "supportedDatabaseType": [ + "CDB", + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "AvgGCCurrentBlockReceiveTime", + "description": "The average global cache current block receive time.", + "unit": "milliseconds", + "statistic": "Mean", + "collectionInternal": "5 minute", + "dimensions": [ + "instanceNumber", + "instanceName", + "hostName" + ], + "supportedDatabaseType": [ + "CDB", + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "BackupDuration", + "description": "The duration of the last database backup.", + "unit": "seconds", + "statistic": "Mean", + "collectionInternal": "30 minute", + "dimensions": [ + "status", + "backupType", + "deviceType" + ], + "supportedDatabaseType": [ + "CDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "BackupSize", + "description": "The size of the last database backup.", + "unit": "GB", + "statistic": "Mean", + "collectionInternal": "30 minute", + "dimensions": [ + "status", + "backupType", + "deviceType" + ], + "supportedDatabaseType": [ + "CDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "BlockChanges", + "description": "The average number of blocks changed per second.", + "unit": "changes per second", + "statistic": "Mean", + "collectionInternal": "1 minute", + "dimensions": [ + "instanceNumber", + "instanceName", + "hostName" + ], + "supportedDatabaseType": [ + "CDB", + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "BlockingSessions", + "description": "The current blocking sessions.", + "unit": "count", + "statistic": "Max", + "collectionInternal": "15 minute", + "dimensions": [], + "supportedDatabaseType": [ + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "CpuCount", + "description": "The maximum number of CPUs available for the database, which is set to enable instance caging.", + "unit": "count", + "statistic": "Mean", + "collectionInternal": "1 minute", + "dimensions": [ + "instanceNumber", + "instanceName", + "hostName" + ], + "supportedDatabaseType": [ + "CDB", + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "CpusEnabled", + "description": "The number of CPUs or processors available on the database instance.", + "unit": "count", + "statistic": "Mean", + "collectionInternal": "60 minute", + "dimensions": [ + "instanceNumber", + "instanceName", + "hostName" + ], + "supportedDatabaseType": [ + "CDB", + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "CPUTime", + "description": "The average rate of accumulation of CPU time by foreground sessions in the database instance over the time interval. The CPU time component of Average Active Sessions.", + "unit": "seconds per second", + "statistic": "Mean", + "collectionInternal": "1 minute", + "dimensions": [ + "instanceNumber", + "instanceName", + "hostName" + ], + "supportedDatabaseType": [ + "CDB", + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "CpuUtilization", + "description": "The CPU utilization expressed as a percentage, aggregated across all consumer groups. The utilization percentage is reported with respect to the number of CPUs the database is allowed to use.", + "unit": "percent", + "statistic": "Mean", + "collectionInternal": "1 minute", + "dimensions": [ + "instanceNumber", + "instanceName", + "hostName" + ], + "supportedDatabaseType": [ + "CDB", + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "CurrentLogons", + "description": "The number of successful logons during the selected interval.", + "unit": "count", + "statistic": "Sum", + "collectionInternal": "1 minute", + "dimensions": [ + "instanceNumber", + "instanceName", + "hostName" + ], + "supportedDatabaseType": [ + "CDB", + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "dbmgmtJobExecutionsCount", + "description": "The number of SQL job executions on a single Managed Database or a Database Group, and their status. Status dimensions can be the following values: \"Succeeded\", \"Failed,\" \"InProgress.\"", + "unit": "count", + "statistic": "Sum", + "collectionInternal": "1 minute", + "dimensions": [ + "managedDatabaseId", + "managedDatabaseGroupId", + "jobId", + "status" + ], + "supportedDatabaseType": [ + "CDB", + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "DBTime", + "description": "The average rate of accumulation of database time (CPU + Wait) by foreground sessions in the database instance over the time interval. Also known as Average Active Sessions.", + "unit": "seconds per second", + "statistic": "Mean", + "collectionInternal": "1 minute", + "dimensions": [ + "instanceNumber", + "instanceName", + "hostName" + ], + "supportedDatabaseType": [ + "CDB", + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "EstimatedFailoverTime", + "description": "The number of seconds required to fail over to the standby database.", + "unit": "seconds", + "statistic": "Mean", + "collectionInternal": "5 minute", + "dimensions": [ + "dbRole", + "primaryDbid", + "primaryDbUniqueName" + ], + "supportedDatabaseType": [ + "CDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "ExecuteCount", + "description": "The number of user and recursive calls that executed SQL statements during the selected interval.", + "unit": "count", + "statistic": "Sum", + "collectionInternal": "1 minute", + "dimensions": [ + "instanceNumber", + "instanceName", + "hostName" + ], + "supportedDatabaseType": [ + "CDB", + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "FRASpaceLimit", + "description": "The flash recovery area space limit.", + "unit": "GB", + "statistic": "Max", + "collectionInternal": "15 minute", + "dimensions": [], + "supportedDatabaseType": [ + "CDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "FRAUtilization", + "description": "The flash recovery area utilization.", + "unit": "percent", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [], + "supportedDatabaseType": [ + "CDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "GCCRBlocksReceived", + "description": "The global cache CR blocks received per second.", + "unit": "blocks per second", + "statistic": "Mean", + "collectionInternal": "5 minute", + "dimensions": [ + "instanceNumber", + "instanceName", + "hostName" + ], + "supportedDatabaseType": [ + "CDB", + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "GCCurrentBlocksReceived", + "description": "The global cache current blocks received per second.", + "unit": "blocks per second", + "statistic": "Mean", + "collectionInternal": "5 minute", + "dimensions": [ + "instanceNumber", + "instanceName", + "hostName" + ], + "supportedDatabaseType": [ + "CDB", + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "InterconnectTraffic", + "description": "The average internode data transfer rate.", + "unit": "MB per second", + "statistic": "Mean", + "collectionInternal": "5 minute", + "dimensions": [ + "instanceNumber", + "instanceName", + "hostName" + ], + "supportedDatabaseType": [ + "CDB", + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "InvalidObjects", + "description": "The number of invalid database objects.", + "unit": "count", + "statistic": "Max", + "collectionInternal": "24 hour", + "dimensions": [], + "supportedDatabaseType": [ + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "IOPS", + "description": "The average number of IO operations per second.", + "unit": "operations per second", + "statistic": "Mean", + "collectionInternal": "1 minute", + "dimensions": [ + "instanceNumber", + "instanceName", + "hostName", + "ioType", + "(Read,", + "Write)" + ], + "supportedDatabaseType": [ + "CDB", + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "IOThroughput", + "description": "The average throughput in MB per second.", + "unit": "MB per second", + "statistic": "Mean", + "collectionInternal": "1 minute", + "dimensions": [ + "instanceNumber", + "instanceName", + "hostName", + "ioType", + "(Read,", + "Write)" + ], + "supportedDatabaseType": [ + "CDB", + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "LogicalBlocksRead", + "description": "The average number of blocks read from SGA/Memory (buffer cache) per second.", + "unit": "reads per second", + "statistic": "Mean", + "collectionInternal": "1 minute", + "dimensions": [ + "instanceNumber", + "instanceName", + "hostName" + ], + "supportedDatabaseType": [ + "CDB", + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "MaxTablespaceSize", + "description": "The maximum possible tablespace size. For CDBs, this metric provides data for root container tablespaces.", + "unit": "GB", + "statistic": "Max", + "collectionInternal": "30 minute", + "dimensions": [ + "tablespaceName", + "tablespaceType" + ], + "supportedDatabaseType": [ + "CDB", + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "MemoryUsage", + "description": "The total size of the memory pool in MB.", + "unit": "MB", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "instanceNumber", + "instanceName", + "hostName", + "memoryType", + "(SGA,", + "PGA)", + "memoryPool", + "(AllocatedPGA,", + "BufferCache,", + "FixedSGA,", + "JavaPool,", + "LargePool,", + "LogBuffer,", + "OtherPools,", + "SharedPool,", + "StreamsPool)" + ], + "supportedDatabaseType": [ + "CDB", + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "MonitoringStatus", + "description": "The monitoring status of the resource. If metric collection fails, error information is captured in this metric.", + "unit": "nan", + "statistic": "Mean", + "collectionInternal": "5 minute", + "dimensions": [ + "collectionName", + "errorSeverity", + "errorCode" + ], + "supportedDatabaseType": [ + "CDB", + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "MonitoringUserPasswordExpiration", + "description": "The number of days left before the monitoring user password expires.", + "unit": "count", + "statistic": "Last", + "collectionInternal": "24 hour", + "dimensions": [ + "isPerpetual" + ], + "supportedDatabaseType": [ + "CDB", + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "NonReclaimableFRA", + "description": "The non-reclaimable fast recovery area.", + "unit": "percent", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [], + "supportedDatabaseType": [ + "CDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "ParseCount", + "description": "The number of hard and soft parses during the selected interval.", + "unit": "count", + "statistic": "Sum", + "collectionInternal": "1 minute", + "dimensions": [ + "instanceNumber", + "instanceName", + "hostName" + ], + "supportedDatabaseType": [ + "CDB", + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "ParsesByType", + "description": "The number of hard or soft parses per second.", + "unit": "parses per second", + "statistic": "Mean", + "collectionInternal": "1 minute", + "dimensions": [ + "instanceNumber", + "instanceName", + "hostName", + "parseType", + "(HardParse,", + "SoftParse)" + ], + "supportedDatabaseType": [ + "CDB", + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "ProblematicScheduledDBMSJobs", + "description": "The number of problematic scheduled database jobs.", + "unit": "count", + "statistic": "Max", + "collectionInternal": "15 minute", + "dimensions": [ + "type", + "(Broken,", + "Failed)" + ], + "supportedDatabaseType": [ + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "Processes", + "description": "The number of database processes.", + "unit": "count", + "statistic": "Max", + "collectionInternal": "1 minute", + "dimensions": [ + "instanceNumber", + "instanceName", + "hostName" + ], + "supportedDatabaseType": [ + "CDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "ProcessLimitUtilization", + "description": "The process limit utilization.", + "unit": "percent", + "statistic": "Mean", + "collectionInternal": "1 minute", + "dimensions": [ + "instanceNumber", + "instanceName", + "hostName" + ], + "supportedDatabaseType": [ + "CDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "ReclaimableFRA", + "description": "The reclaimable fast recovery area.", + "unit": "percent", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [], + "supportedDatabaseType": [ + "CDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "ReclaimableFRASpace", + "description": "The flash recovery area reclaimable space.", + "unit": "GB", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [], + "supportedDatabaseType": [ + "CDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "RecoveryWindow", + "description": "The current recovery window of a database.", + "unit": "seconds", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "deviceType" + ], + "supportedDatabaseType": [ + "CDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "RedoApplyRate", + "description": "The redo apply rate on the standby database.", + "unit": "MB per second", + "statistic": "Mean", + "collectionInternal": "5 minute", + "dimensions": [ + "dbRole", + "primaryDbid", + "primaryDbUniqueName" + ], + "supportedDatabaseType": [ + "CDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "RedoGenerationRate", + "description": "The redo generation rate on the primary database.", + "unit": "MB per second", + "statistic": "Mean", + "collectionInternal": "5 minute", + "dimensions": [], + "supportedDatabaseType": [ + "CDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "RedoSize", + "description": "The average amount of redo generated.", + "unit": "MB per second", + "statistic": "Mean", + "collectionInternal": "1 minute", + "dimensions": [ + "instanceNumber", + "instanceName", + "hostName" + ], + "supportedDatabaseType": [ + "CDB", + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "RetentionPeriod", + "description": "The number of days for which database backups are retained.", + "unit": "count", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [], + "supportedDatabaseType": [ + "CDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "SessionLimitUtilization", + "description": "The session limit utilization.", + "unit": "percent", + "statistic": "Mean", + "collectionInternal": "1 minute", + "dimensions": [ + "instanceNumber", + "instanceName", + "hostName" + ], + "supportedDatabaseType": [ + "CDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "Sessions", + "description": "The number of sessions in the database.", + "unit": "count", + "statistic": "Mean", + "collectionInternal": "1 minute", + "dimensions": [ + "instanceNumber", + "instanceName", + "hostName" + ], + "supportedDatabaseType": [ + "CDB", + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "StorageAllocated", + "description": "The maximum amount of space allocated by tablespace during the interval. For CDBs, this metric provides data for root container tablespaces.", + "unit": "GB", + "statistic": "Max", + "collectionInternal": "30 minute", + "dimensions": [], + "supportedDatabaseType": [ + "CDB", + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "StorageAllocatedByTablespace", + "description": "The maximum amount of space allocated by tablespace during the interval. For CDBs, this metric provides data for root container tablespaces.", + "unit": "GB", + "statistic": "Max", + "collectionInternal": "30 minute", + "dimensions": [ + "tablespaceName", + "tablespaceType" + ], + "supportedDatabaseType": [ + "CDB", + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "StorageUsed", + "description": "The total storage used by the database at collection time, including the space used by tablespaces, flash recovery area, control files, and log files.", + "unit": "GB", + "statistic": "Max", + "collectionInternal": "30 minute", + "dimensions": [], + "supportedDatabaseType": [ + "CDB", + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "StorageUsedByTablespace", + "description": "The maximum amount of space used by tablespace during the interval. For CDBs, this metric provides data for root container tablespaces.", + "unit": "GB", + "statistic": "Max", + "collectionInternal": "30 minute", + "dimensions": [ + "tablespaceName", + "tablespaceType" + ], + "supportedDatabaseType": [ + "CDB", + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "StorageUtilization", + "description": "The percentage of provisioned storage capacity currently in use. Represents the total allocated space for all tablespaces.", + "unit": "percent", + "statistic": "Mean", + "collectionInternal": "30 minute", + "dimensions": [], + "supportedDatabaseType": [ + "CDB", + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "StorageUtilizationByTablespace", + "description": "The percentage of the space utilized, by tablespace. For CDBs, this metric provides data for root container tablespaces.", + "unit": "percent", + "statistic": "Mean", + "collectionInternal": "30 minute", + "dimensions": [ + "tablespaceName", + "tablespaceType" + ], + "supportedDatabaseType": [ + "CDB", + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "TransactionCount", + "description": "The combined number of user commits and user rollbacks during the selected interval.", + "unit": "count", + "statistic": "Sum", + "collectionInternal": "1 minute", + "dimensions": [ + "instanceNumber", + "instanceName", + "hostName" + ], + "supportedDatabaseType": [ + "CDB", + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "TransactionsByStatus", + "description": "The number of committed or rolled back transactions per second.", + "unit": "transactions per second", + "statistic": "Mean", + "collectionInternal": "1 minute", + "dimensions": [ + "instanceNumber", + "instanceName", + "hostName", + "transactionStatus", + "(Committed,", + "RolledBack)" + ], + "supportedDatabaseType": [ + "CDB", + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "TransportLag", + "description": "The number of seconds of redo not yet available on the standby database.", + "unit": "seconds", + "statistic": "Mean", + "collectionInternal": "5 minute", + "dimensions": [ + "dbRole", + "primaryDbid", + "primaryDbUniqueName" + ], + "supportedDatabaseType": [ + "CDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "TransportLagDataRefreshElapsedTime", + "description": "The elapsed time since the TransportLagDataRefreshElapsedTime metric sample was last collected.", + "unit": "seconds", + "statistic": "Mean", + "collectionInternal": "5 minute", + "dimensions": [ + "dbRole", + "primaryDbid", + "primaryDbUniqueName" + ], + "supportedDatabaseType": [ + "CDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "UnprotectedDataWindow", + "description": "The current unprotected data window of a database.", + "unit": "seconds", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "deviceType" + ], + "supportedDatabaseType": [ + "CDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "UnusableIndexes", + "description": "The number of unusable indexes in the database schema.", + "unit": "count", + "statistic": "Max", + "collectionInternal": "24 hour", + "dimensions": [ + "schemaName" + ], + "supportedDatabaseType": [ + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "UsableFRA", + "description": "The usable fast recovery area.", + "unit": "percent", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [], + "supportedDatabaseType": [ + "CDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "UsedFRASpace", + "description": "The flash recovery area space usage.", + "unit": "GB", + "statistic": "Max", + "collectionInternal": "15 minute", + "dimensions": [], + "supportedDatabaseType": [ + "CDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "UserCalls", + "description": "The combined number of logons, parses, and execute calls during the selected interval.", + "unit": "count", + "statistic": "Sum", + "collectionInternal": "1 minute", + "dimensions": [ + "instanceNumber", + "instanceName", + "hostName" + ], + "supportedDatabaseType": [ + "CDB", + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "WaitTime", + "description": "The average rate of accumulation of non-idle wait time by foreground sessions in the database instance over the time interval. The wait time component of Average Active Sessions.", + "unit": "seconds per second", + "statistic": "Mean", + "collectionInternal": "5 minute", + "dimensions": [ + "instanceNumber", + "instanceName", + "hostName", + "waitClass" + ], + "supportedDatabaseType": [ + "CDB", + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "EcpusAllocated", + "description": "The actual number of ECPUs allocated by the service during the selected interval. This metric is available if the VM cluster uses the ECPU compute model.", + "unit": "count", + "statistic": "Count", + "collectionInternal": "1 minute", + "dimensions": [], + "supportedDatabaseType": [ + "CDB", + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "OcpusAllocated", + "description": "The actual number of OCPUs allocated by the service during the selected interval. This metric is available if the VM cluster uses the OCPU compute model.", + "unit": "count", + "statistic": "Count", + "collectionInternal": "1 minute", + "dimensions": [], + "supportedDatabaseType": [ + "CDB", + "PDB" + ] + }, + { + "namespace": "oracle_oci_exadata", + "name": "ASMDiskGroupCapacity", + "description": "The capacity of the ASM disk group.", + "unit": "GB", + "statistic": "Mean", + "collectionInternal": "60 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "asmInstance", + "diskGroupName", + "cellDiskType[HardDisk|FlashDisk]" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "CellCpuUtilization", + "description": "The cell server CPU utilization.", + "unit": "percent", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "CellDiskAllocatedPercent", + "description": "The percentage of space allocated on the cell disk.", + "unit": "percent", + "statistic": "Mean", + "collectionInternal": "60 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "cellDiskType[HardDisk|FlashDisk]" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "CellDiskCapacity", + "description": "The capacity of the cell disk.", + "unit": "GB", + "statistic": "Mean", + "collectionInternal": "60 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "cellDiskType[HardDisk|FlashDisk]", + "cellDiskName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "CellDiskFreeSpace", + "description": "The free space available on the cell disk.", + "unit": "GB", + "statistic": "Mean", + "collectionInternal": "60 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "cellDiskType[HardDisk|FlashDisk]", + "cellDiskName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "CellDiskIOLoad", + "description": "The average I/O load to the cell disk.", + "unit": "count", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "cellDiskType[HardDisk|FlashDisk]", + "cellDiskName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "CellDiskIOUtilization", + "description": "The average I/O utilization.", + "unit": "percent", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "cellDiskType[HardDisk|FlashDisk]", + "cellDiskName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "CellDiskLargeReadIOPS", + "description": "The average number of I/O operations for reading large blocks from a cell disk.", + "unit": "operations per second", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "cellDiskType[HardDisk|FlashDisk]", + "cellDiskName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "CellDiskLargeReadResponseTime", + "description": "The average response time when reading large blocks from the cell disk.", + "unit": "milliseconds per request", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "cellDiskType[HardDisk|FlashDisk]", + "cellDiskName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "CellDiskLargeReadThroughput", + "description": "The average I/O throughput per second for reading large blocks from a cell disk.", + "unit": "MB per second", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "cellDiskType[HardDisk|FlashDisk]", + "cellDiskName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "CellDiskLargeWriteIOPS", + "description": "The average number of I/O operations for writing large blocks to cell disk.", + "unit": "operations per second", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "cellDiskType[HardDisk|FlashDisk]", + "cellDiskName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "CellDiskLargeWriteResponseTime", + "description": "The average response time when writing large blocks to the cell disk.", + "unit": "milliseconds per request", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "cellDiskType[HardDisk|FlashDisk]", + "cellDiskName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "CellDiskLargeWriteThroughput", + "description": "The average I/O throughput per second for writing large blocks to a cell disk.", + "unit": "MB per second", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "cellDiskType[HardDisk|FlashDisk]", + "cellDiskName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "CellDiskReadIOPS", + "description": "The average number of read I/O operations per second.", + "unit": "operations per second", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "cellDiskType[HardDisk|FlashDisk]", + "cellDiskName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "CellDiskReadResponseTime", + "description": "The average response time per read request from cell disks (weighted by the number of requests for small or large blocks).", + "unit": "milliseconds per request", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "cellDiskType[HardDisk|FlashDisk]", + "cellDiskName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "CellDiskReadThroughput", + "description": "The average I/O throughput per second for reading small or large blocks from a cell disk.", + "unit": "MB per second", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "cellDiskType[HardDisk|FlashDisk]", + "cellDiskName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "CellDiskSmallReadIOPS", + "description": "The average number of I/O operations for reading small blocks from a cell disk.", + "unit": "operations per second", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "cellDiskType[HardDisk|FlashDisk]", + "cellDiskName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "CellDiskSmallReadResponseTime", + "description": "The average response time when reading small blocks from the cell disk.", + "unit": "milliseconds per request", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "cellDiskType[HardDisk|FlashDisk]", + "cellDiskName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "CellDiskSmallReadThroughput", + "description": "The average I/O throughput per second for reading small blocks from a cell disk.", + "unit": "MB per second", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "cellDiskType[HardDisk|FlashDisk]", + "cellDiskName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "CellDiskSmallWriteIOPS", + "description": "The average number of I/O operations for writing small blocks to cell disk.", + "unit": "operations per second", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "cellDiskType[HardDisk|FlashDisk]", + "cellDiskName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "CellDiskSmallWriteResponseTime", + "description": "The average response time when writing small blocks to the cell disk.", + "unit": "milliseconds per request", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "cellDiskType[HardDisk|FlashDisk]", + "cellDiskName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "CellDiskSmallWriteThroughput", + "description": "The average I/O throughput per second for writing small blocks to a cell disk.", + "unit": "MB per second", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "cellDiskType[HardDisk|FlashDisk]", + "cellDiskName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "CellDiskWriteIOPS", + "description": "The average number of write I/O operations per second.", + "unit": "operations per second", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "cellDiskType[HardDisk|FlashDisk]", + "cellDiskName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "CellDiskWriteResponseTime", + "description": "The average response time per write request to the cell disk (weighted by the number of requests for small or large blocks).", + "unit": "milliseconds per request", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "cellDiskType[HardDisk|FlashDisk]", + "cellDiskName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "CellDiskWriteThroughput", + "description": "The average I/O throughput per second for writing small or large blocks to a cell disk.", + "unit": "MB per second", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "cellDiskType[HardDisk|FlashDisk]", + "cellDiskName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "CellMemoryUtilization", + "description": "The cell server memory utilization.", + "unit": "percent", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "CellOpenAlertCount", + "description": "The number of cell server open alerts.", + "unit": "count", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "severity[warning|info|critical]" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "CellServerStatus", + "description": "The status of the cell server.", + "unit": "nan", + "statistic": "Min", + "collectionInternal": "2 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "DatabaseFlashCacheUsage", + "description": "The database flash cache usage.", + "unit": "MB", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "databaseName", + "type", + "[db]" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "DatabaseFlashDiskIOPS", + "description": "The database I/O operations per second for reading or writing blocks from flash disks.", + "unit": "operations per second", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "databaseName", + "type", + "[db]" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "DatabaseFlashDiskIOResponseTime", + "description": "The database I/O response time per request for flash disks.", + "unit": "milliseconds per request", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "databaseName", + "type", + "[db]" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "DatabaseFlashDiskIORMWaitTime", + "description": "The database IORM wait time per request issued to flash disks (weighted by number of requests for small or large blocks).", + "unit": "milliseconds per request", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "databaseName", + "type", + "[db]" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "DatabaseFlashDiskIOThroughput", + "description": "The database I/O throughput for reading or writing from flash disks.", + "unit": "MB per second", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "databaseName", + "type", + "[db]" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "DatabaseFlashDiskIOUtilization", + "description": "The database I/O utilization for flash disks.", + "unit": "percent", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "databaseName", + "type", + "[db]" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "DatabaseFlashDiskLargeIOIORMWaitTime", + "description": "The database IORM wait time per request for large I/O requests issued to flash disks.", + "unit": "milliseconds per request", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "databaseName", + "type", + "[db]" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "DatabaseFlashDiskLargeIOPS", + "description": "The database I/O operations per second for reading or writing large blocks from flash disks.", + "unit": "operations per second", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "databaseName", + "type", + "[db]" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "DatabaseFlashDiskLargeIOResponseTime", + "description": "The database I/O response time per request for reading or writing large blocks from flash disks.", + "unit": "milliseconds per request", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "databaseName", + "type", + "[db]" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "DatabaseFlashDiskLargeIOUtilization", + "description": "The database I/O utilization for reading or writing large blocks from flash disks", + "unit": "percent", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "databaseName", + "type", + "[db]" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "DatabaseFlashDiskSmallIOIORMWaitTime", + "description": "The database IORM wait time per request for small I/O requests issued to flash disks.", + "unit": "milliseconds per request", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "databaseName", + "type", + "[db]" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "DatabaseFlashDiskSmallIOPS", + "description": "The database I/O operations per second for reading or writing small blocks from flash disks.", + "unit": "operations per second", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "databaseName", + "type", + "[db]" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "DatabaseFlashDiskSmallIOResponseTime", + "description": "The database I/O response time per request for reading or writing small blocks from flash disks.", + "unit": "milliseconds per request", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "databaseName", + "type", + "[db]" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "DatabaseFlashDiskSmallIOUtilization", + "description": "The database I/O utilization for reading or writing small blocks from flash disks.", + "unit": "percent", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "databaseName", + "type", + "[db]" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "DatabaseHardDiskIOPS", + "description": "The database I/O operations per second for reading or writing blocks from hard disks.", + "unit": "operations per second", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "databaseName", + "type", + "[db]" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "DatabaseHardDiskIOResponseTime", + "description": "The database I/O response time per request for hard disks (weighted by number of requests for small or large blocks).", + "unit": "milliseconds per request", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "databaseName", + "type", + "[db]" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "DatabaseHardDiskIORMWaitTime", + "description": "The database IORM wait time per request issued to hard disks (weighted by number of requests for small or large blocks).", + "unit": "milliseconds per request", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "databaseName", + "type", + "[db]" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "DatabaseHardDiskIOThroughput", + "description": "The database I/O throughput for reading or writing from hard disks.", + "unit": "MB per second", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "databaseName", + "type", + "[db]" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "DatabaseHardDiskIOUtilization", + "description": "The database I/O utilization for hard disks.", + "unit": "percent", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "databaseName", + "type", + "[db]" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "DatabaseHardDiskLargeIOIORMWaitTime", + "description": "The database IORM wait time per request for large I/O requests issued to hard disks.", + "unit": "milliseconds per request", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "databaseName", + "type", + "[db]" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "DatabaseHardDiskLargeIOPS", + "description": "The database I/O operations per second for reading or writing large blocks from hard disks.", + "unit": "operations per second", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "databaseName", + "type", + "[db]" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "DatabaseHardDiskLargeIOResponseTime", + "description": "The database I/O response time per request for reading or writing large blocks from hard disks.", + "unit": "milliseconds per request", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "databaseName", + "type", + "[db]" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "DatabaseHardDiskLargeIOUtilization", + "description": "The database I/O utilization for reading or writing large blocks from hard disks.", + "unit": "percent", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "databaseName", + "type", + "[db]" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "DatabaseHardDiskSmallIOIORMWaitTime", + "description": "The database IORM wait time per request for small I/O requests issued to hard disks.", + "unit": "milliseconds per request", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "databaseName", + "type", + "[db]" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "DatabaseHardDiskSmallIOPS", + "description": "The database I/O operations per second for reading or writing small blocks from hard disks.", + "unit": "operations per second", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "databaseName", + "type", + "[db]" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "DatabaseHardDiskSmallIOResponseTime", + "description": "The database I/O response time per request for reading or writing small blocks from hard disks.", + "unit": "milliseconds per request", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "databaseName", + "type", + "[db]" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "DatabaseHardDiskSmallIOUtilization", + "description": "The database I/O utilization for reading or writing small blocks from hard disks.", + "unit": "percent", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "databaseName", + "type", + "[db]" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "FlashCacheFirstWritesPerSecond", + "description": "The number of requests to write new data into flash cache.", + "unit": "requests per second", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "FlashCacheHitRatio", + "description": "The flash cache read hit ratio. Note: If there's no flash cache activity, then the hit ratio is defaulted to 100%.", + "unit": "percent", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "FlashCacheKeepHitRatio", + "description": "The flash cache read hit ratio for keep objects. Note: If there's no flash cache activity, then the hit ratio is defaulted to 100%.", + "unit": "percent", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "FlashCacheKeepMisses", + "description": "The number of read requests for keep objects that did not find all the data in flash cache.", + "unit": "count", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "FlashCacheKeepOverwrites", + "description": "The number of megabytes per second pushed out of flash cache because of the space limit for keep objects.", + "unit": "MB per second", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "FlashCacheKeepReads", + "description": "The number of requests read from flash cache for keep objects.", + "unit": "count", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "FlashCacheLargeReadThroughput", + "description": "The I/O throughput reading large blocks from flash cache.", + "unit": "MB per second", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "FlashCacheOverwritesPerSecond", + "description": "The number of requests that overwrite existing data into flash cache.", + "unit": "requests per second", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "FlashCachePopulationWritesPerSecond", + "description": "The number of requests that are population writes into flash cache due to read miss.", + "unit": "requests per second", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "FlashCacheRandomIOReadPerSecond", + "description": "The number of requests to read random I/O from flash cache.", + "unit": "requests per second", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "FlashCacheScanDataReadFromDiskThroughput", + "description": "The I/O throughput reading scan data from disk, as not all the data is in flash cache.", + "unit": "MB per second", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "FlashCacheScanDataReadPerSecond", + "description": "The number of requests to read scan data from flash cache.", + "unit": "requests per second", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "FlashCacheSize", + "description": "The size of flash cache.", + "unit": "GB", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "FlashCacheSmallReadThroughput", + "description": "The I/O throughput reading small blocks from flash cache.", + "unit": "MB per second", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "FlashCacheSmallRequestsHitRatio", + "description": "The flash cache read hit ratio for small requests. Note: If there's no flash cache activity, then the hit ratio is defaulted to 100%.", + "unit": "percent", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "FlashCacheWriteToHardDisksPerSecond", + "description": "The number of requests that write data to hard disk from flash cache.", + "unit": "requests per second", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "FlashDiskUsageAllocatedToGridDisk", + "description": "The flash disk space allocated to grid disks.", + "unit": "GB", + "statistic": "Mean", + "collectionInternal": "60 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "FlashDiskUsageForFlashCacheKeep", + "description": "The flash disk usage for flash cache keep objects.", + "unit": "GB", + "statistic": "Mean", + "collectionInternal": "60 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "FlashDiskUsageForFlashCacheNonKeep", + "description": "The flash disk usage for flash cache non-keep objects.", + "unit": "GB", + "statistic": "Mean", + "collectionInternal": "60 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "FlashDiskUsageForFlashCacheUnused", + "description": "The flash disk usage for flash cache that is unused.", + "unit": "GB", + "statistic": "Mean", + "collectionInternal": "60 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "FlashDiskUsageForFlashLog", + "description": "The flash disk usage for flash log.", + "unit": "GB", + "statistic": "Mean", + "collectionInternal": "60 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "FlashDiskUsageForMetadata", + "description": "The flash disk usage for metadata.", + "unit": "GB", + "statistic": "Mean", + "collectionInternal": "60 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "FlashLogActualOutliers", + "description": "The number of redo writes exceeding the outlier threshold.", + "unit": "nan", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "FlashLogEfficiencyPastHour", + "description": "The smart flash logging efficiency over the past hour.", + "unit": "percent", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "FlashLogPreventedOutliers", + "description": "The number of redo writes that are prevented from exceeding the outlier threshold.", + "unit": "nan", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "FlashLogSkippedWritesDueToLargeWrite", + "description": "The number of redo writes that are bypassed due to the size of data being greater than the available space.", + "unit": "count", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "FlashLogSkippedWritesDueToNoBuffer", + "description": "The number of redo writes that are bypassed due to unavailable buffer.", + "unit": "count", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "FlashLogSkippedWritesDueToSlowDisk", + "description": "The number of redo writes that are bypassed due to slow disk.", + "unit": "count", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "FlashLogWritesServiced", + "description": "The number of Smart Flash Logging writes serviced.", + "unit": "operations per second", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "FlashLogWriteThroughput", + "description": "The Smart Flash Logging write throughput.", + "unit": "MB per second", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "HardDiskUsageAllocatedToGridDisk", + "description": "The hard disk usage allocated to grid disks.", + "unit": "GB", + "statistic": "Mean", + "collectionInternal": "60 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "HardDiskUsageForMetadata", + "description": "The hard disk space used for metadata.", + "unit": "GB", + "statistic": "Mean", + "collectionInternal": "60 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "InfinibandThroughput", + "description": "The megabytes transmitted or received through the Infiniband interface.", + "unit": "MB per second", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType", + "operationType=[sent|received]" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "IORMBoost", + "description": "The ratio of the cumulative number of positions in the I/O queue that were skipped.", + "unit": "percent", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "IORMMode", + "description": "The current I/O resource management mode. Note that if IORM objective = BASIC, then this metric has no meaning. A value in between 1 and 2 or between 2 and 3 indicates that the IORM objective changed in the metric period, and the precise value indicates proximity to a given objective. It's also indicative of a constantly-changing mix of workloads.", + "unit": "GB", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "IORMObjective", + "description": "The I/O resource management objective.", + "unit": "nan", + "statistic": "Mean", + "collectionInternal": "60 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "ManagementServiceStatus", + "description": "The status of the storage server's management service.", + "unit": "nan", + "statistic": "Min", + "collectionInternal": "2 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "SmartScanIOFlashDiskReadThroughput", + "description": "The megabytes read from the flash disk by the Smart Scan I/O.", + "unit": "MB per second", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "SmartScanIOHardDiskReadThroughput", + "description": "The megabytes read from the hard disk by the Smart Scan I/O.", + "unit": "MB per second", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "SmartScanIOPassThroughThroughput", + "description": "The megabytes of Smart Scan I/O pass-through (sent back to the database for processing).", + "unit": "MB per second", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "SmartScanIOStorageIndexThroughput", + "description": "The megabytes saved or avoided by using Storage Index.", + "unit": "MB per second", + "statistic": "Mean", + "collectionInternal": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_database_cluster", + "name": "DatabaseAllocatedSpace", + "description": "The allocated space in a disk group for a database.", + "unit": "MB", + "statistic": "Mean", + "collectionInternal": "30 minute", + "dimensions": [ + "resourceId", + "resourceName", + "dbSystemId", + "deploymentType", + "databaseName", + "diskGroupName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_database_cluster", + "name": "DiskFreeSpace", + "description": "The free space in a disk.", + "unit": "GB", + "statistic": "Mean", + "collectionInternal": "30 minute", + "dimensions": [ + "resourceId", + "resourceName", + "dbSystemId", + "deploymentType", + "diskGroupName", + "diskName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_database_cluster", + "name": "DiskGroupFreeSpace", + "description": "The free space in a disk group.", + "unit": "GB", + "statistic": "Mean", + "collectionInternal": "30 minute", + "dimensions": [ + "resourceId", + "resourceName", + "dbSystemId", + "deploymentType", + "diskGroupName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_database_cluster", + "name": "DiskGroupTotalSpace", + "description": "The total space in a disk group.", + "unit": "GB", + "statistic": "Mean", + "collectionInternal": "30 minute", + "dimensions": [ + "resourceId", + "resourceName", + "dbSystemId", + "deploymentType", + "diskGroupName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_database_cluster", + "name": "DiskGroupUsableFreeSpace", + "description": "The usable free space in a disk group.", + "unit": "GB", + "statistic": "Mean", + "collectionInternal": "30 minute", + "dimensions": [ + "resourceId", + "resourceName", + "dbSystemId", + "deploymentType", + "diskGroupName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_database_cluster", + "name": "DiskGroupUsableTotalSpace", + "description": "The total usable space in a disk group, subject to redundancy.", + "unit": "GB", + "statistic": "Mean", + "collectionInternal": "30 minute", + "dimensions": [ + "resourceId", + "resourceName", + "dbSystemId", + "deploymentType", + "diskGroupName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_database_cluster", + "name": "DiskGroupUsableUtilization", + "description": "The percentage of usable space used in a disk group.", + "unit": "percent", + "statistic": "Mean", + "collectionInternal": "30 minute", + "dimensions": [ + "resourceId", + "resourceName", + "dbSystemId", + "deploymentType", + "diskGroupName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_database_cluster", + "name": "DiskGroupUtilization", + "description": "The percentage of space used in a disk group.", + "unit": "percent", + "statistic": "Mean", + "collectionInternal": "30 minute", + "dimensions": [ + "resourceId", + "resourceName", + "dbSystemId", + "deploymentType", + "diskGroupName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_database_cluster", + "name": "DiskTotalSpace", + "description": "The total space in a disk.", + "unit": "GB", + "statistic": "Mean", + "collectionInternal": "30 minute", + "dimensions": [ + "resourceId", + "resourceName", + "dbSystemId", + "deploymentType", + "diskGroupName", + "diskName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_database_cluster", + "name": "DiskUtilization", + "description": "The percentage of space used in a disk.", + "unit": "percent", + "statistic": "Mean", + "collectionInternal": "30 minute", + "dimensions": [ + "resourceId", + "resourceName", + "dbSystemId", + "deploymentType", + "diskGroupName", + "diskName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_database_cluster", + "name": "IOPS", + "description": "The total number of IO operations processed per second by a disk group for a database.", + "unit": "operations per second", + "statistic": "Mean", + "collectionInternal": "5 minute", + "dimensions": [ + "resourceId", + "resourceName", + "dbSystemId", + "deploymentType", + "databaseName", + "diskGroupName", + "instanceName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_database_cluster", + "name": "IOSize", + "description": "The average size of an IO operation.", + "unit": "MB per operation", + "statistic": "Mean", + "collectionInternal": "5 minute", + "dimensions": [ + "resourceId", + "resourceName", + "dbSystemId", + "deploymentType", + "databaseName", + "diskGroupName", + "instanceName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_database_cluster", + "name": "IOThroughput", + "description": "The total IO throughput of a disk group for a database.", + "unit": "MB per second", + "statistic": "Mean", + "collectionInternal": "5 minute", + "dimensions": [ + "resourceId", + "resourceName", + "dbSystemId", + "deploymentType", + "databaseName", + "diskGroupName", + "instanceName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_database_cluster", + "name": "MonitoringStatus", + "description": "The monitoring status of the ASM. If metric collection fails, error information is captured in this metric.", + "unit": "nan", + "statistic": "Min", + "collectionInternal": "1 minute", + "dimensions": [ + "resourceId", + "resourceName", + "dbSystemId", + "deploymentType", + "collectionName", + "errorCode", + "errorSeverity" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_database_cluster", + "name": "ResponseTime", + "description": "The time taken by a disk group to process an IO request.", + "unit": "milliseconds per request", + "statistic": "Mean", + "collectionInternal": "5 minute", + "dimensions": [ + "resourceId", + "resourceName", + "dbSystemId", + "deploymentType", + "databaseName", + "diskGroupName", + "instanceName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_database_cluster", + "name": "Status", + "description": "The status of an ASM instance.", + "unit": "nan", + "statistic": "Min", + "collectionInternal": "1 minute", + "dimensions": [ + "resourceId", + "resourceName", + "dbSystemId", + "deploymentType", + "instanceName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_database_cluster", + "name": "ClusterInterconnectErrorRate", + "description": "The cluster interconnect error rate.", + "unit": "count", + "statistic": "Mean", + "collectionInternal": "5 minute", + "dimensions": [ + "resourceId", + "resourceName", + "dbSystemId", + "deploymentType", + "agentHostName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_database_cluster", + "name": "ClusterInterconnectReadRate", + "description": "The cluster interconnect read rate.", + "unit": "MB per second", + "statistic": "Mean", + "collectionInternal": "5 minute", + "dimensions": [ + "resourceId", + "resourceName", + "dbSystemId", + "deploymentType", + "agentHostName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_database_cluster", + "name": "ClusterInterconnectWriteRate", + "description": "The cluster interconnect write rate.", + "unit": "MB per second", + "statistic": "Mean", + "collectionInternal": "5 minute", + "dimensions": [ + "resourceId", + "resourceName", + "dbSystemId", + "deploymentType", + "agentHostName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_database_cluster", + "name": "CpuUsed", + "description": "The CPU used in the time interval.", + "unit": "millisecond", + "statistic": "Mean", + "collectionInternal": "1 minute", + "dimensions": [ + "resourceId", + "resourceName", + "dbSystemId", + "deploymentType", + "agentHostName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_database_cluster", + "name": "CpuUtilization", + "description": "The CPU utilization expressed as a percentage.", + "unit": "percent", + "statistic": "Mean", + "collectionInternal": "1 minute", + "dimensions": [ + "resourceId", + "resourceName", + "dbSystemId", + "deploymentType", + "agentHostName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_database_cluster", + "name": "DiskReadRate", + "description": "The rate at which data is read from a disk.", + "unit": "MB per second", + "statistic": "Mean", + "collectionInternal": "1 minute", + "dimensions": [ + "resourceId", + "resourceName", + "dbSystemId", + "deploymentType", + "agentHostName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_database_cluster", + "name": "DiskWriteRate", + "description": "The rate at which data is sent to a disk.", + "unit": "MB per second", + "statistic": "Mean", + "collectionInternal": "1 minute", + "dimensions": [ + "resourceId", + "resourceName", + "dbSystemId", + "deploymentType", + "agentHostName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_database_cluster", + "name": "MemoryUsed", + "description": "The total memory used.", + "unit": "GB", + "statistic": "Mean", + "collectionInternal": "1 minute", + "dimensions": [ + "resourceId", + "resourceName", + "dbSystemId", + "deploymentType", + "agentHostName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_database_cluster", + "name": "MemoryUtilization", + "description": "The percentage of memory utilized.", + "unit": "percent", + "statistic": "Mean", + "collectionInternal": "1 minute", + "dimensions": [ + "resourceId", + "resourceName", + "dbSystemId", + "deploymentType", + "agentHostName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_database_cluster", + "name": "NetworkReadRate", + "description": "The rate at which data is received across a network interface.", + "unit": "MB per second", + "statistic": "Mean", + "collectionInternal": "1 minute", + "dimensions": [ + "resourceId", + "resourceName", + "dbSystemId", + "deploymentType", + "agentHostName", + "interfaceName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_database_cluster", + "name": "NetworkWriteRate", + "description": "The rate at which data is sent across a network interface.", + "unit": "MB per second", + "statistic": "Mean", + "collectionInternal": "1 minute", + "dimensions": [ + "resourceId", + "resourceName", + "dbSystemId", + "deploymentType", + "agentHostName", + "interfaceName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_database_cluster", + "name": "StorageUsed", + "description": "The total storage space used.", + "unit": "GB", + "statistic": "Mean", + "collectionInternal": "30 minute", + "dimensions": [ + "resourceId", + "resourceName", + "dbSystemId", + "deploymentType", + "agentHostName", + "fileSystem" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_database_cluster", + "name": "StorageUtilization", + "description": "The percentage of storage space utilized.", + "unit": "percent", + "statistic": "Mean", + "collectionInternal": "30 minute", + "dimensions": [ + "resourceId", + "resourceName", + "dbSystemId", + "deploymentType", + "agentHostName", + "fileSystem" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_database_cluster", + "name": "TotalCpu", + "description": "The total number of CPUs available.", + "unit": "count", + "statistic": "Mean", + "collectionInternal": "30 minute", + "dimensions": [ + "resourceId", + "resourceName", + "dbSystemId", + "deploymentType", + "agentHostName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_database_cluster", + "name": "TotalMemory", + "description": "The total amount of memory available.", + "unit": "GB", + "statistic": "Mean", + "collectionInternal": "30 minute", + "dimensions": [ + "resourceId", + "resourceName", + "dbSystemId", + "deploymentType", + "agentHostName" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_database_cluster", + "name": "ActiveConnections", + "description": "The number of active connections at collection time.", + "unit": "count", + "statistic": "Mean", + "collectionInternal": "5 minute", + "dimensions": [ + "resourceId", + "resourceName", + "dbSystemId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_database_cluster", + "name": "EstablishedConnections", + "description": "The number of successfully established connections.", + "unit": "connections per minute", + "statistic": "Mean", + "collectionInternal": "5 minute", + "dimensions": [ + "resourceId", + "resourceName", + "dbSystemId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_database_cluster", + "name": "MaxConnections", + "description": "The maximum number of connections that the listener can handle.", + "unit": "count", + "statistic": "Mean", + "collectionInternal": "5 minute", + "dimensions": [ + "resourceId", + "resourceName", + "dbSystemId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_database_cluster", + "name": "RefusedConnections", + "description": "The number of connections refused by the listener.", + "unit": "connections per minute", + "statistic": "Mean", + "collectionInternal": "5 minute", + "dimensions": [ + "resourceId", + "resourceName", + "dbSystemId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "AverageActiveSessions", + "description": "The average number of sessions that are actively executing or waiting for resources.", + "unit": "integer", + "statistic": "Mean", + "collectionInternal": "1 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "BlockingSessions", + "description": "The number of sessions that have been blocking other sessions for more than 60 seconds.", + "unit": "count", + "statistic": "Max", + "collectionInternal": "1 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "Connectionlatency", + "description": "The time taken to connect to an Autonomous AI Database instance in each region from a VM in the same region.", + "unit": "Milliseconds", + "statistic": "Max", + "collectionInternal": "5 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "ConnectionsDroppedByClient", + "description": "The number of connections dropped by the client.", + "unit": "count", + "statistic": "Sum", + "collectionInternal": "1 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "ConnectionsDroppedByServer", + "description": "The number of connections dropped by the server.", + "unit": "count", + "statistic": "Sum", + "collectionInternal": "1 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "CpuTime", + "description": "Average rate of accumulation of CPU time by foreground sessions in the database over the time interval.", + "unit": "seconds per second", + "statistic": "Mean", + "collectionInternal": "1 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "CpuUtilization", + "description": "The CPU usage expressed as a percentage, aggregated across all consumer groups. The utilization percentage is reported with respect to the number of CPUs the database is allowed to use.", + "unit": "percent", + "statistic": "Mean", + "collectionInternal": "1 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "CurrentLogons", + "description": "The number of successful logons during the selected interval.", + "unit": "count", + "statistic": "Count", + "collectionInternal": "1 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "DatabaseAvailability", + "description": "The database is available for connections during the selected time interval (data for this metric lags by 5 minutes). Possible values for this metric: 1 = Database is Available0 = Database is UnavailableNotes for the DatabaseAvailability metric: You can set an alarm that is triggered if the database is not available (value 0). Availability is calculated based on the \"Monthly Uptime Percentage\" described in the Oracle PaaS and IaaS Public Cloud Services Pillar Document document under Delivery Policies (see Autonomous AI Database Availability Service Level Agreement). DatabaseAvailability is only set to 0 when Autonomous AI Database availability is not met. For example when there is a failure on Oracle side. Otherwise, the value is 1.If needed, you can check manual Autonomous AI Database start/stop with the following events: Autonomous AI Database - Start BeginAutonomous AI Database - Start EndAutonomous AI Database - Stop BeginAutonomous AI Database - Stop EndSee Autonomous AI Database Lifecycle Events for more information.", + "unit": "count", + "statistic": "Mean", + "collectionInternal": "1 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "DBBlockChanges", + "description": "The number of changes that were part of an update or delete operation that were made to all blocks in the SGA. Such changes generate redo log entries and become permanent changes to the database if the transaction is committed.This approximates total database work. This statistic indicates the rate at which buffers are being dirtied, during the selected time interval.", + "unit": "count", + "statistic": "Sum", + "collectionInternal": "1 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "DBTime", + "description": "The amount of time database user sessions spend executing database code (CPU Time + WaitTime). DB Time is used to infer database call latency, because DB Time increases in direct proportion to both database call latency (response time) and call volume.It is calculated as the average rate of accumulation of database time by foreground sessions in the database over the time interval.", + "unit": "seconds per second", + "statistic": "Mean", + "collectionInternal": "1 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "ECPUsAllocated", + "description": "The total ECPU billed for this database (which includes ECPUs billed for Local standbys and Database Tools).", + "unit": "count", + "statistic": "Count", + "collectionInternal": "5 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "ExecuteCount", + "description": "The number of user and recursive calls that executed SQL statements during the selected interval.", + "unit": "count", + "statistic": "Sum", + "collectionInternal": "1 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "FailedConnections", + "description": "Shows the total number of failed connections to the database during the selected interval.A connection is counted as failed when a connection attempt reaches the database and logs any of the following errors: ORA-12514, ORA-12519 or ORA-12529.", + "unit": "count", + "statistic": "Sum", + "collectionInternal": "1 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "FailedLogons", + "description": "The number of logons that failed because of an invalid user name and/or password, during the selected interval. The counter is reset to 0 by a successful login.", + "unit": "count", + "statistic": "Mean", + "collectionInternal": "1 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "HardParseCount", + "description": "The number of parse calls (real parses) during the selected time interval. A hard parse is an expensive operation in terms of memory use, because it requires Oracle to allocate a workheap and other memory structures and then build a parse tree.", + "unit": "count", + "statistic": "Sum", + "collectionInternal": "1 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "IOPS", + "description": "The average number of I/O operations per second.", + "unit": "Integer", + "statistic": "Mean", + "collectionInternal": "5 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "IOThroughput", + "description": "The average throughput in MB per second.", + "unit": "Integer", + "statistic": "Mean", + "collectionInternal": "5 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "LogicalBlocksRead", + "description": "The average number of logical block reads (\"db block gets\" plus \"consistent gets\") per second. Includes buffered and direct I/O.", + "unit": "Integer", + "statistic": "Mean", + "collectionInternal": "1 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "LogicalReads", + "description": "The sum of \u201cdb block gets\u201d plus \u201cconsistent gets\u201d, during the selected time interval. This includes logical reads of database blocks from either the buffer cache or process private memory.", + "unit": "count", + "statistic": null, + "collectionInternal": "1 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "ParsesByType", + "description": "The number of hard or soft parses per second.", + "unit": "Integer", + "statistic": "Mean", + "collectionInternal": "5 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "ParseCount", + "description": "The number of hard and soft parses during the selected interval.", + "unit": "count", + "statistic": "Sum", + "collectionInternal": "1 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "ParseFailureCount", + "description": "The number of parse failures during the selected time interval.", + "unit": "count", + "statistic": "Sum", + "collectionInternal": "1 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "PeerLag", + "description": "The total time in seconds by which the Disaster Recovery peer lags behind its Primary database.For a local Disaster Recovery peer, the metric is displayed under the Primary database.For a cross region Disaster Recovery peer, this metric is displayed under the Disaster Recovery peer.", + "unit": "Seconds", + "statistic": "Max", + "collectionInternal": "1 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "PgaUtilization", + "description": "The percentage of maximum available PGA memory that is utilized, aggregated across all consumer groups.", + "unit": "percent", + "statistic": "Mean", + "collectionInternal": "1 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "PhysicalReads", + "description": "The number of data blocks read from disk, during the selected time interval.", + "unit": "count", + "statistic": "Sum", + "collectionInternal": "1 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "PhysicalReadTotalBytes", + "description": "The size in bytes of disk reads by all database instance activity including application reads, backup and recovery, and other utilities, during the selected time interval.", + "unit": "count", + "statistic": "Sum", + "collectionInternal": "1 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "PhysicalWrites", + "description": "The number of data blocks written to disk, during the selected time interval.", + "unit": "count", + "statistic": "Sum", + "collectionInternal": "1 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "PhysicalWriteTotalBytes", + "description": "The size in bytes of all disk writes for the database instance including application activity, backup and recovery, and other utilities, during the selected time interval.", + "unit": "count", + "statistic": "Sum", + "collectionInternal": "1 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "QueryLatency", + "description": "The time taken to display the results of a simple query on the user's screen.", + "unit": "Milliseconds", + "statistic": "Max", + "collectionInternal": "5 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "QueuedStatements", + "description": "The number of queued SQL statements, aggregated across all consumer groups, during the selected interval.", + "unit": "count", + "statistic": "Sum", + "collectionInternal": "1 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "RedoGenerated", + "description": "Amount of redo generated in bytes, during the selected time interval.", + "unit": "count", + "statistic": "Sum", + "collectionInternal": "1 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "RunningStatements", + "description": "The number of running SQL statements, aggregated across all consumer groups, during the selected interval.", + "unit": "count", + "statistic": "Mean", + "collectionInternal": "1 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "Sessions", + "description": "The number of sessions in the database.", + "unit": "count", + "statistic": "Sum", + "collectionInternal": "1 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "SessionUtilization", + "description": "The maximum session utilization expressed as a percentage, aggregated across all consumer groups.", + "unit": "Percent", + "statistic": "Mean", + "collectionInternal": "1 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "SgaUtilization", + "description": "The percentage of maximum available SGA memory utilized, aggregated across all consumer groups.", + "unit": "Percent", + "statistic": "Mean", + "collectionInternal": "1 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "SQLNetBytesFromClient", + "description": "The number of bytes received from the client over Oracle Net Services, during the selected time interval.", + "unit": "count", + "statistic": "Sum", + "collectionInternal": "1 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "SQLNetBytesFromDBLink", + "description": "The number of bytes received from a database link over Oracle Net Services, during the selected time interval.", + "unit": "count", + "statistic": "Sum", + "collectionInternal": "1 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "SQLNetBytesToClient", + "description": "The number of bytes sent to the client from the foreground processes, during the selected time interval.", + "unit": "count", + "statistic": "Sum", + "collectionInternal": "1 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "SQLNetBytesToDBLink", + "description": "The number of bytes sent over a database link, during the selected time interval.", + "unit": "count", + "statistic": "Sum", + "collectionInternal": "1 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "StorageAllocated", + "description": "Amount of space allocated to the database for all tablespaces, during the interval.", + "unit": "GB", + "statistic": "Max", + "collectionInternal": "1 hour", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "StorageMax", + "description": "Maximum amount of storage reserved for the database during the interval.", + "unit": "GB", + "statistic": "Max", + "collectionInternal": "1 hour", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "StorageUsed", + "description": "Maximum amount of space used during the interval.", + "unit": "GB", + "statistic": "Max", + "collectionInternal": "1 hour", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "StorageUtilization", + "description": "The percentage of the reserved maximum storage currently allocated for all database tablespaces.Represents the total reserved space for all tablespaces.", + "unit": "percent", + "statistic": "Mean", + "collectionInternal": "1 hour", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "TransactionsByStatus", + "description": "The number of committed or rolled back transactions per second.", + "unit": "Integer", + "statistic": "Mean", + "collectionInternal": "5 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "TransactionCount", + "description": "The combined number of user commits and user rollbacks during the selected interval.", + "unit": "count", + "statistic": "Sum", + "collectionInternal": "1 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "UserCalls", + "description": "The combined number of logons, parses, and execute calls during the selected interval.", + "unit": "count", + "statistic": "Sum", + "collectionInternal": "1 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "UserCommits", + "description": "The number of user commits during the selected time interval. When a user commits a transaction, the generated redo that reflects the changes made to database blocks must be written to disk. Commits often represent the closest thing to a user transaction rate.", + "unit": "count", + "statistic": "Sum", + "collectionInternal": "1 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "UserRollbacks", + "description": "Number of times users manually issue the ROLLBACK statement or an error occurs during a user's transactions, during the selected time interval.", + "unit": "count", + "statistic": "Sum", + "collectionInternal": "1 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oci_autonomous_database", + "name": "WaitTime", + "description": "Average rate of accumulation of non-idle wait time by foreground sessions in the database over the time interval.", + "unit": "seconds per second", + "statistic": "Mean", + "collectionInternal": "1 minute", + "dimensions": [ + "AUTONOMOUSDBTYPE", + "deploymentType", + "DISPLAYNAME", + "REGION", + "RESOURCEID", + "RESOURCENAME" + ], + "supportedDatabaseType": [] + } + ] +} diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/skills.json b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/skills.json index 39f96e60..85e19226 100644 --- a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/skills.json +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/skills.json @@ -172,6 +172,19 @@ "list_managed_databases" ] }, + { + "name": "database-and-infra-observability-metric-catalog", + "description": "Custom OCI Monitoring metric discovery, live metric retrieval, and read-only alarm investigation for matching OCI resources.", + "tools": [ + "search_database_and_infra_observability_metrics", + "get_database_and_infra_observability_metrics", + "list_database_and_infra_observability_metrics", + "read_database_and_infra_observability_metrics", + "list_database_and_infra_observability_alarms", + "get_database_and_infra_observability_alarm", + "list_database_and_infra_observability_alarm_states" + ] + }, { "name": "database-performance-analysis", "description": "Use this skill for workload regression and bottleneck diagnosis using AWR evidence, wait analysis, CPU profiles, metric trends, and SQL/plan context. When starting from a managed database OCID, prefer the DB Management AWR route: list_managed_databases, list_awr_dbs, then the matching summarize_awr_db_* tool. Use Operations Insights AWR tools only when an Operations Insights AWR Hub OCID is independently known; its source identifier must come from list_awr_databases for that same hub.", diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/tools.json b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/tools.json index ab69d238..69248187 100644 --- a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/tools.json +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/tools.json @@ -16297,6 +16297,167 @@ ] }, "mutable": false + }, + { + "name": "search_database_and_infra_observability_metrics", + "description": "Search Database and Infrastructure Observability metric definitions by keywords before retrieving live metric values.", + "kind": "metadata", + "handler": "metric_catalog.search", + "skills": ["database-and-infra-observability-metric-catalog"], + "inputSchema": { + "type": "object", + "properties": { + "keywords": {"type": "string", "description": "Keywords describing the metric to find."}, + "namespace": {"type": "string", "description": "Optional exact OCI Monitoring namespace filter."}, + "name": {"type": "string", "description": "Optional exact metric-name filter."}, + "limit": {"type": "integer", "minimum": 1, "maximum": 100, "description": "Maximum matching definitions to return."} + }, + "required": ["keywords"], + "additionalProperties": false + }, + "mutable": false + }, + { + "name": "get_database_and_infra_observability_metrics", + "description": "Get exact Database and Infrastructure Observability metric definitions by namespace and name.", + "kind": "metadata", + "handler": "metric_catalog.get", + "skills": ["database-and-infra-observability-metric-catalog"], + "inputSchema": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "minItems": 1, + "items": { + "type": "object", + "properties": { + "namespace": {"type": "string"}, + "name": {"type": "string"} + }, + "required": ["namespace", "name"], + "additionalProperties": false + }, + "description": "One or more exact namespace/name metric identities." + } + }, + "required": ["keys"], + "additionalProperties": false + }, + "mutable": false + }, + { + "name": "list_database_and_infra_observability_metrics", + "description": "List Database and Infrastructure Observability metric definitions, filtered only by namespace or exact name.", + "kind": "metadata", + "handler": "metric_catalog.list", + "skills": ["database-and-infra-observability-metric-catalog"], + "inputSchema": { + "type": "object", + "properties": { + "namespace": {"type": "string", "description": "Optional exact OCI Monitoring namespace filter."}, + "name": {"type": "string", "description": "Optional exact metric-name filter."}, + "limit": {"type": "integer", "minimum": 1, "maximum": 100, "description": "Maximum definitions to return."}, + "cursor": {"type": "string", "description": "Offset cursor returned by a previous list call."} + }, + "additionalProperties": false + }, + "mutable": false + }, + { + "name": "read_database_and_infra_observability_metrics", + "description": "Read live OCI Monitoring data for a catalog-validated Database and Infrastructure Observability metric.", + "kind": "oci_sdk", + "service": "monitoring", + "client": "MonitoringClient", + "operation": "summarize_metrics_data", + "adapter": "monitoring.metric_read", + "skills": ["database-and-infra-observability-metric-catalog"], + "inputSchema": { + "type": "object", + "properties": { + "compartment_id": {"type": "string", "description": "OCI compartment OCID containing monitored resources."}, + "namespace": {"type": "string", "description": "Exact catalog namespace."}, + "metric_name": {"type": "string", "description": "Exact catalog metric name."}, + "dimension_filters": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Exact dimension filters validated against the catalog."}, + "group_by": {"type": "string", "description": "Optional catalog-supported dimension used to group metric streams."}, + "aggregation": {"type": "string", "enum": ["mean", "sum", "min", "max", "count", "first", "last", "rate", "increment"], "description": "Aggregation statistic for each interval."}, + "interval": {"type": "string", "pattern": "^(?:[1-9]|[1-5][0-9])m$|^(?:[1-9]|1[0-9]|2[0-4])h$|^[1-9]d$", "description": "MQL interval such as 1m, 5m, 1h, or 1d."}, + "resolution": {"type": "string", "pattern": "^(?:[1-9]|[1-5][0-9])m$|^(?:[1-9]|1[0-9]|2[0-4])h$|^[1-9]d$", "description": "Monitoring resolution such as 1m, 5m, 1h, or 1d."}, + "start_time": {"type": "string", "format": "date-time", "description": "Inclusive RFC3339 start time."}, + "end_time": {"type": "string", "format": "date-time", "description": "Exclusive RFC3339 end time."}, + "resource_group": {"type": "string", "description": "Optional OCI Monitoring resource group."}, + "compartment_id_in_subtree": {"type": "boolean", "description": "Include subcompartments only when compartment_id is the tenancy OCID."}, + "max_results": {"type": "integer", "minimum": 1, "maximum": 1000, "description": "Maximum metric streams or data points represented in the response."} + }, + "required": ["compartment_id", "namespace", "metric_name", "aggregation", "interval", "resolution", "start_time", "end_time"], + "additionalProperties": false + }, + "mutable": false + }, + { + "name": "list_database_and_infra_observability_alarms", + "description": "List read-only OCI Monitoring alarm definitions in a compartment, optionally narrowed by display name.", + "kind": "oci_sdk", + "service": "monitoring", + "client": "MonitoringClient", + "operation": "list_alarms", + "skills": ["database-and-infra-observability-metric-catalog"], + "inputSchema": { + "type": "object", + "properties": { + "compartment_id": {"type": "string"}, + "compartment_id_in_subtree": {"type": "boolean"}, + "display_name": {"type": "string"}, + "limit": {"type": "integer", "minimum": 1, "maximum": 100}, + "page": {"type": "string"} + }, + "required": ["compartment_id"], + "additionalProperties": false + }, + "mutable": false + }, + { + "name": "get_database_and_infra_observability_alarm", + "description": "Get one read-only OCI Monitoring alarm definition by OCID.", + "kind": "oci_sdk", + "service": "monitoring", + "client": "MonitoringClient", + "operation": "get_alarm", + "skills": ["database-and-infra-observability-metric-catalog"], + "inputSchema": { + "type": "object", + "properties": {"alarm_id": {"type": "string", "description": "OCI Monitoring alarm OCID."}}, + "required": ["alarm_id"], + "additionalProperties": false + }, + "mutable": false + }, + { + "name": "list_database_and_infra_observability_alarm_states", + "description": "List current OCI Monitoring alarm states, optionally narrowed by resource, service, entity, or FIRING/OK state.", + "kind": "oci_sdk", + "service": "monitoring", + "client": "MonitoringClient", + "operation": "list_alarms_status", + "skills": ["database-and-infra-observability-metric-catalog"], + "inputSchema": { + "type": "object", + "properties": { + "compartment_id": {"type": "string"}, + "compartment_id_in_subtree": {"type": "boolean"}, + "display_name": {"type": "string"}, + "resource_id": {"type": "string"}, + "service_name": {"type": "string"}, + "entity_id": {"type": "string"}, + "status": {"type": "string", "enum": ["FIRING", "OK"]}, + "limit": {"type": "integer", "minimum": 1, "maximum": 100}, + "page": {"type": "string"} + }, + "required": ["compartment_id"], + "additionalProperties": false + }, + "mutable": false } ] } diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metric_catalog.py b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metric_catalog.py new file mode 100644 index 00000000..0f3ae4c4 --- /dev/null +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metric_catalog.py @@ -0,0 +1,150 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. + +Immutable Database and Infrastructure Observability metric catalog. +""" + +from __future__ import annotations + +import json +from dataclasses import dataclass +from functools import lru_cache +from importlib.resources import files +from types import MappingProxyType +from typing import Any, Mapping + + +class MetricCatalogError(ValueError): + """Raised when metric catalog input or packaged data is invalid.""" + + +_DEFAULT_LIMIT = 50 +_STOP_WORDS = frozenset( + {"a", "an", "and", "are", "by", "during", "for", "get", "in", "me", "of", "on", "show", "summary", "that", "the", "to", "with"} +) + + +def _freeze(value: Any) -> Any: + if isinstance(value, dict): + return MappingProxyType({key: _freeze(item) for key, item in value.items()}) + if isinstance(value, list): + return tuple(_freeze(item) for item in value) + return value + + +def _jsonable(value: Any) -> Any: + if isinstance(value, Mapping): + return {key: _jsonable(item) for key, item in value.items()} + if isinstance(value, (list, tuple)): + return [_jsonable(item) for item in value] + return value + + +def _stem(word: str) -> str: + if word.endswith("ies") and len(word) > 4: + return f"{word[:-3]}y" + if word.endswith("ing") and len(word) > 5: + word = word[:-3] + elif word.endswith("ed") and len(word) > 4: + word = word[:-2] + elif word.endswith("s") and not word.endswith("ss") and len(word) > 3: + return word[:-1] + return word[:-1] if len(word) > 2 and word[-1] == word[-2] else word + + +def _words(value: Any) -> list[str]: + text = str(value or "") + normalized: list[str] = [] + for index, char in enumerate(text): + if index and char.isupper() and text[index - 1].islower(): + normalized.append(" ") + normalized.append(char.lower() if char.isalnum() else " ") + return [word for word in (_stem(item) for item in "".join(normalized).split()) if len(word) > 1 and word not in _STOP_WORDS] + + +def _field_text(value: Any) -> str: + return " ".join(_field_text(item) for item in value) if isinstance(value, tuple) else str(value or "") + + +def _matches(record: Mapping[str, Any], namespace: str | None, name: str | None) -> bool: + return (namespace is None or record.get("namespace") == namespace) and (name is None or record.get("name") == name) + + +@dataclass(frozen=True) +class MetricCatalog: + catalog_id: str + version: str + records: tuple[Mapping[str, Any], ...] + + def _response(self, items: list[Any], **extra: Any) -> dict[str, Any]: + return {"catalogId": self.catalog_id, "version": self.version, "items": _jsonable(items), **extra} + + def search(self, keywords: str, namespace: str | None = None, name: str | None = None, limit: int = _DEFAULT_LIMIT) -> dict[str, Any]: + if not keywords or not keywords.strip(): + raise MetricCatalogError("keywords must be non-empty") + if not 1 <= limit <= 100: + raise MetricCatalogError("limit must be between 1 and 100") + query_tokens = _words(keywords) + matches: list[tuple[int, list[str], Mapping[str, Any]]] = [] + for record in self.records: + if not _matches(record, namespace, name): + continue + score, fields, matched = 0, [], set() + for field in ("name", "description", "namespace", "dimensions"): + tokens = set(_words(_field_text(record.get(field)))) + current = [token for token in query_tokens if token in tokens] + if current: + fields.append(field) + matched.update(current) + score += len(current) * (4 if field == "name" else 2) + if len(query_tokens) > 1 and len(matched) == len(query_tokens): + score += 8 + if query_tokens and score and len(fields) > 1: + score += 1 + if not query_tokens or score: + matches.append((score, fields, record)) + matches.sort(key=lambda item: (-item[0], str(item[2].get("namespace", "")), str(item[2].get("name", "")))) + return self._response([ + {"key": {"namespace": record["namespace"], "name": record["name"]}, "score": score, "matchedFields": fields, "record": record} + for score, fields, record in matches[:limit] + ]) + + def get(self, keys: list[Mapping[str, str]]) -> dict[str, Any]: + if not keys: + raise MetricCatalogError("keys must contain at least one namespace/name pair") + wanted = {(key.get("namespace"), key.get("name")) for key in keys} + if any(not namespace or not name for namespace, name in wanted): + raise MetricCatalogError("each key must contain non-empty namespace and name") + return self._response([record for record in self.records if (record.get("namespace"), record.get("name")) in wanted]) + + def list(self, namespace: str | None = None, name: str | None = None, limit: int = _DEFAULT_LIMIT, cursor: str | None = None) -> dict[str, Any]: + if not 1 <= limit <= 100: + raise MetricCatalogError("limit must be between 1 and 100") + try: + offset = int(cursor) if cursor is not None else 0 + except ValueError as exc: + raise MetricCatalogError("cursor must be a non-negative integer") from exc + if offset < 0: + raise MetricCatalogError("cursor must be a non-negative integer") + records = sorted((record for record in self.records if _matches(record, namespace, name)), key=lambda record: (str(record.get("namespace", "")), str(record.get("name", "")))) + items = records[offset : offset + limit] + next_cursor = str(offset + len(items)) if offset + len(items) < len(records) else None + return self._response(items, nextCursor=next_cursor) + + +@lru_cache(maxsize=1) +def load_metric_catalog() -> MetricCatalog: + path = files(__package__).joinpath("metadata", "database-and-infra-observability-metrics.json") + try: + payload = json.loads(path.read_text(encoding="utf-8")) + except (OSError, json.JSONDecodeError) as exc: + raise MetricCatalogError(f"Unable to load metric catalog: {exc}") from exc + records = payload.get("records") + if not isinstance(payload.get("catalogId"), str) or not isinstance(payload.get("version"), str) or not isinstance(records, list): + raise MetricCatalogError("Metric catalog has invalid metadata") + frozen_records = tuple(_freeze(record) for record in records if isinstance(record, dict)) + if len(frozen_records) != len(records): + raise MetricCatalogError("Metric catalog records must be objects") + return MetricCatalog(payload["catalogId"], payload["version"], frozen_records) diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/registry.py b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/registry.py index 038f8bf4..483f1643 100644 --- a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/registry.py +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/registry.py @@ -24,6 +24,7 @@ class RegistryError(ValueError): _CLIENTS = { "opsi": {"OperationsInsightsClient": oci.opsi.OperationsInsightsClient}, + "monitoring": {"MonitoringClient": oci.monitoring.MonitoringClient}, "dbm": { "DbManagementClient": oci.database_management.DbManagementClient, "DiagnosabilityClient": oci.database_management.DiagnosabilityClient, @@ -33,6 +34,16 @@ class RegistryError(ValueError): } _COMPARTMENT_ARGUMENTS = ("compartment_id", "peer_database_compartment_id") +_METADATA_HANDLERS = frozenset( + { + "metric_catalog.search", + "metric_catalog.get", + "metric_catalog.list", + } +) + +_OCI_SDK_ADAPTERS = frozenset({"monitoring.metric_read"}) + @dataclass(frozen=True) class Registry: @@ -168,10 +179,19 @@ def _validate(skills: list[dict[str, Any]], tools: list[dict[str, Any]]) -> Regi raise RegistryError(f"Tool has invalid skill membership: {tool.get('name')}") if tool["name"] not in {name for skill in skills if skill["name"] in tool["skills"] for name in skill["tools"]}: raise RegistryError(f"Tool/skill membership mismatch: {tool['name']}") - cls = client_class(tool.get("service"), tool.get("client")) - method = getattr(cls, tool.get("operation", ""), None) - if not callable(method) or tool["operation"].startswith("_"): - raise RegistryError(f"Tool has invalid SDK operation binding: {tool['name']}") + kind = tool.get("kind", "oci_sdk") + if kind == "metadata": + if tool.get("handler") not in _METADATA_HANDLERS: + raise RegistryError(f"Tool has invalid metadata handler: {tool['name']}") + elif kind == "oci_sdk": + cls = client_class(tool.get("service"), tool.get("client")) + method = getattr(cls, tool.get("operation", ""), None) + if not callable(method) or tool["operation"].startswith("_"): + raise RegistryError(f"Tool has invalid SDK operation binding: {tool['name']}") + if tool.get("adapter") is not None and tool.get("adapter") not in _OCI_SDK_ADAPTERS: + raise RegistryError(f"Tool has invalid SDK adapter: {tool['name']}") + else: + raise RegistryError(f"Tool has invalid execution kind: {tool['name']}") frozen_skills = tuple(_freeze(skill) for skill in skills) frozen_tools = tuple(_freeze(tool) for tool in tools) return Registry(frozen_skills, frozen_tools, MappingProxyType(dict(zip(by_skill, frozen_skills))), MappingProxyType(dict(zip(by_tool, frozen_tools)))) diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/runtime.py b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/runtime.py index d8f7fbb7..edadd113 100644 --- a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/runtime.py +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/runtime.py @@ -9,6 +9,7 @@ import inspect import json +from datetime import datetime from functools import lru_cache from typing import Any, Mapping, get_args, get_origin @@ -18,6 +19,7 @@ from oracle_mcp_common import IDCSHttpAuth, build_auth_context from . import __project__, __version__ +from .metric_catalog import MetricCatalogError, load_metric_catalog from .registry import client_class, compartment_requirements from .sdk_schema import parameter_docs @@ -168,6 +170,83 @@ def _validate_compartment_scope(tool: Mapping[str, Any], arguments: Mapping[str, raise RuntimeError(f"Unable to validate compartment OCID {compartment_id}: {exc}") from exc +def _metric_mql(arguments: Mapping[str, Any]) -> str: + def quote(value: str) -> str: + return f'"{value.replace("\\", "\\\\").replace(chr(34), "\\\"")}"' + + filters = ", ".join( + f"{name} = {quote(value)}" + for name, value in sorted(arguments.get("dimension_filters", {}).items()) + ) + selector = f'{arguments["metric_name"]}[{arguments["interval"]}]' + grouping = f'.groupBy({arguments["group_by"]})' if arguments.get("group_by") else "" + return f"{selector}{{{filters}}}{grouping}.{arguments['aggregation']}()" if filters else f"{selector}{grouping}.{arguments['aggregation']}()" + + +def _parse_metric_time(value: str, field: str) -> datetime: + """Parse the required RFC 3339 metric window boundary.""" + try: + parsed = datetime.fromisoformat(value.replace("Z", "+00:00")) + except ValueError as exc: + raise ValueError(f"{field} must be an RFC 3339 timestamp") from exc + if parsed.tzinfo is None: + raise ValueError(f"{field} must include a UTC offset") + return parsed + + +def _invoke_metric_read(tool: Mapping[str, Any], arguments: Mapping[str, Any]) -> dict[str, Any]: + catalog = load_metric_catalog() + metric = catalog.get([{"namespace": arguments["namespace"], "name": arguments["metric_name"]}])["items"] + if not metric: + raise ValueError(f"Metric {arguments['namespace']}/{arguments['metric_name']} is not available in catalog {catalog.catalog_id}.") + supported_dimensions = set(metric[0].get("dimensions", [])) + dimension_filters = arguments.get("dimension_filters", {}) + if not isinstance(dimension_filters, Mapping) or not all(isinstance(name, str) and isinstance(value, str) for name, value in dimension_filters.items()): + raise ValueError("dimension_filters must map dimension names to string values") + requested_dimensions = set(dimension_filters) + if arguments.get("group_by"): + requested_dimensions.add(arguments["group_by"]) + unsupported = sorted(requested_dimensions - supported_dimensions) + if unsupported: + raise ValueError(f"Unsupported dimensions for {arguments['namespace']}/{arguments['metric_name']}: {', '.join(unsupported)}") + start_time = _parse_metric_time(arguments["start_time"], "start_time") + end_time = _parse_metric_time(arguments["end_time"], "end_time") + if start_time >= end_time: + raise ValueError("start_time must be earlier than end_time") + client = _client(str(tool["service"]), str(tool["client"])) + details = oci.monitoring.models.SummarizeMetricsDataDetails( + namespace=arguments["namespace"], + query=_metric_mql(arguments), + resolution=arguments["resolution"], + start_time=start_time, + end_time=end_time, + resource_group=arguments.get("resource_group"), + ) + try: + response = client.summarize_metrics_data( + compartment_id=arguments["compartment_id"], + summarize_metrics_data_details=details, + compartment_id_in_subtree=arguments.get("compartment_id_in_subtree"), + ) + except Exception as exc: + raise RuntimeError(f"OCI operation {tool['name']} failed: {exc}") from exc + result = serialize_response(response) + max_results = arguments.get("max_results") + if max_results is not None and isinstance(result["data"], list): + result["data"] = result["data"][:max_results] + result["mql"] = _metric_mql(arguments) + return result + + +def _invoke_metadata_tool(tool: Mapping[str, Any], arguments: Mapping[str, Any]) -> dict[str, Any]: + catalog = load_metric_catalog() + try: + handler = str(tool["handler"]).rsplit(".", 1)[-1] + return getattr(catalog, handler)(**arguments) + except (AttributeError, MetricCatalogError) as exc: + raise RuntimeError(f"Metadata tool {tool['name']} failed: {exc}") from exc + + def invoke_registered_tool(tool: Mapping[str, Any], arguments: dict[str, Any]) -> Any: if not isinstance(arguments, dict): raise ValueError("arguments must be a JSON object") @@ -176,6 +255,10 @@ def invoke_registered_tool(tool: Mapping[str, Any], arguments: dict[str, Any]) - if errors: raise ValueError(f"Invalid arguments: {errors[0].message}") _validate_compartment_scope(tool, arguments) + if tool.get("kind") == "metadata": + return _invoke_metadata_tool(tool, arguments) + if tool.get("adapter") == "monitoring.metric_read": + return _invoke_metric_read(tool, arguments) client = _client(str(tool["service"]), str(tool["client"])) try: response = getattr(client, tool["operation"])(**_coerce_arguments(client, str(tool["operation"]), arguments)) diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_mcp_surface.py b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_mcp_surface.py index b594fed8..9b9abe50 100644 --- a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_mcp_surface.py +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_mcp_surface.py @@ -104,7 +104,7 @@ def test_list_compartments_requires_a_root_ocid() -> None: def test_discovery_and_invocation_tools_delegate_to_registry(monkeypatch) -> None: skills = mcp_module.list_dbo_skills()["skills"] - assert len(skills) == 34 + assert len(skills) == 35 assert {"name", "description", "toolCount"}.issubset(skills[0]) listed = mcp_module.list_dbo_tools(["database-inventory"], limit=1) diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_registry.py b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_registry.py index 250aab38..ae8cef26 100644 --- a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_registry.py +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_registry.py @@ -71,11 +71,11 @@ class _GroupModel(_PolymorphicModel): def test_packaged_registry_has_expected_shape() -> None: registry = load_registry() - assert len(registry.skills) == 34 - assert len(registry.tools) == 229 - assert len({tool["name"] for tool in registry.tools}) == 229 + assert len(registry.skills) == 35 + assert len(registry.tools) == 236 + assert len({tool["name"] for tool in registry.tools}) == 236 assert all(tool["inputSchema"]["type"] == "object" for tool in registry.tools) - assert all(tool["inputSchema"].get("additionalProperties") is False for tool in registry.tools) + assert all(tool["inputSchema"].get("additionalProperties") in (False, {"type": "string"}) for tool in registry.tools) assert "retrieve_data" not in {tool["name"] for tool in registry.tools} assert not any(tool["mutable"] for tool in registry.tools) assert "query_opsi_data_object_data" not in {tool["name"] for tool in registry.tools} @@ -138,12 +138,32 @@ def test_packaged_schemas_match_the_locked_oci_sdk() -> None: registry = load_registry() for tool in registry.tools: + if tool.get("kind") != "oci_sdk" or tool.get("adapter") or "database-and-infra-observability-metric-catalog" in tool["skills"]: + continue method = getattr(client_class(tool["service"], tool["client"]), tool["operation"]) models = __import__(f"{method.__module__.rsplit('.', 1)[0]}.models", fromlist=["models"]) schema = to_jsonable(tool["inputSchema"]) assert schema == schema_for_operation(method, models, schema) +def test_metric_catalog_skill_uses_the_pinned_monitoring_client_operations() -> None: + registry = load_registry() + tool_operations = { + tool["name"]: tool.get("operation") + for tool in registry.list_tools({"database-and-infra-observability-metric-catalog"}) + } + + assert tool_operations == { + "search_database_and_infra_observability_metrics": None, + "get_database_and_infra_observability_metrics": None, + "list_database_and_infra_observability_metrics": None, + "read_database_and_infra_observability_metrics": "summarize_metrics_data", + "list_database_and_infra_observability_alarms": "list_alarms", + "get_database_and_infra_observability_alarm": "get_alarm", + "list_database_and_infra_observability_alarm_states": "list_alarms_status", + } + + @pytest.mark.parametrize("mutation, error", [(lambda schema: schema.pop("additionalProperties"), "unrestricted object"), (lambda schema: schema["properties"].update({"values": {"type": "array"}}), "untyped array")]) def test_registry_rejects_open_objects_and_untyped_arrays(mutation, error) -> None: registry = load_registry() diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_runtime.py b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_runtime.py index b179b498..7a44d81b 100644 --- a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_runtime.py +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_runtime.py @@ -6,6 +6,7 @@ from __future__ import annotations +import json from types import SimpleNamespace from unittest.mock import Mock @@ -245,3 +246,133 @@ def get_example(self, value: str): monkeypatch.setattr(runtime, "_client", lambda *_args: FailingClient()) with pytest.raises(RuntimeError, match="OCI operation example_tool failed: SDK failure"): runtime.invoke_registered_tool(tool, {"value": "ok"}) + + +def test_metric_catalog_tools_are_local_and_validate_arguments(monkeypatch) -> None: + from oracle.oci_db_observability_mcp_server.registry import load_registry + + monkeypatch.setattr(runtime, "_client", lambda *_args: pytest.fail("metadata tools must not create an OCI client")) + registry = load_registry() + + result = runtime.invoke_registered_tool( + registry.get_tool("search_database_and_infra_observability_metrics"), + {"keywords": "apply lag", "namespace": "oracle_oci_database"}, + ) + + assert result["catalogId"] == "database-and-infra-observability-metrics" + assert any(item["record"]["name"] == "ApplyLag" for item in result["items"]) + assert json.loads(json.dumps(result)) == result + with pytest.raises(ValueError, match="Invalid arguments"): + runtime.invoke_registered_tool(registry.get_tool("get_database_and_infra_observability_metrics"), {"keys": []}) + + +def test_metric_read_builds_one_monitoring_request_from_catalog(monkeypatch) -> None: + from oracle.oci_db_observability_mcp_server.registry import load_registry + + captured: dict[str, object] = {} + + class Details: + def __init__(self, **kwargs): + self.kwargs = kwargs + + class Client: + def summarize_metrics_data(self, **kwargs): + captured.update(kwargs) + return SimpleNamespace(data=[{"stream": 1}, {"stream": 2}], headers={}) + + monkeypatch.setattr(runtime, "_client", lambda *_args: Client()) + monkeypatch.setattr( + runtime, + "identity_bootstrap_client", + lambda: SimpleNamespace(get_compartment=lambda **_kwargs: None), + ) + monkeypatch.setattr(runtime.oci.monitoring, "models", SimpleNamespace(SummarizeMetricsDataDetails=Details)) + tool = load_registry().get_tool("read_database_and_infra_observability_metrics") + + result = runtime.invoke_registered_tool( + tool, + { + "compartment_id": "ocid1.compartment.oc1..example", + "namespace": "oracle_oci_database", + "metric_name": "ApplyLag", + "dimension_filters": {"dbRole": "PHYSICAL_STANDBY"}, + "group_by": "primaryDbid", + "aggregation": "mean", + "interval": "5m", + "resolution": "1m", + "start_time": "2026-08-01T00:00:00Z", + "end_time": "2026-08-01T01:00:00Z", + "max_results": 1, + }, + ) + + assert captured["compartment_id"] == "ocid1.compartment.oc1..example" + assert captured["summarize_metrics_data_details"].kwargs["query"] == 'ApplyLag[5m]{dbRole = "PHYSICAL_STANDBY"}.groupBy(primaryDbid).mean()' + assert result["data"] == [{"stream": 1}] + assert result["mql"] == 'ApplyLag[5m]{dbRole = "PHYSICAL_STANDBY"}.groupBy(primaryDbid).mean()' + + +@pytest.mark.parametrize( + "arguments, error", + [ + ({"dimension_filters": {"notCataloged": "value"}}, "Unsupported dimensions"), + ({"start_time": "2026-08-01T01:00:00Z", "end_time": "2026-08-01T00:00:00Z"}, "start_time must be earlier"), + ], +) +def test_metric_read_rejects_invalid_catalog_or_time_before_client_creation(monkeypatch, arguments, error) -> None: + from oracle.oci_db_observability_mcp_server.registry import load_registry + + base_arguments = { + "compartment_id": "ocid1.compartment.oc1..example", + "namespace": "oracle_oci_database", + "metric_name": "ApplyLag", + "aggregation": "mean", + "interval": "5m", + "resolution": "1m", + "start_time": "2026-08-01T00:00:00Z", + "end_time": "2026-08-01T01:00:00Z", + } + base_arguments.update(arguments) + monkeypatch.setattr(runtime, "_client", lambda *_args: pytest.fail("invalid metric read must not create an OCI client")) + monkeypatch.setattr( + runtime, + "identity_bootstrap_client", + lambda: SimpleNamespace(get_compartment=lambda **_kwargs: None), + ) + + with pytest.raises(ValueError, match=error): + runtime.invoke_registered_tool(load_registry().get_tool("read_database_and_infra_observability_metrics"), base_arguments) + + +@pytest.mark.parametrize( + ("tool_name", "arguments", "operation"), + [ + ("list_database_and_infra_observability_alarms", {"compartment_id": "ocid1.compartment.oc1..example", "limit": 10}, "list_alarms"), + ("get_database_and_infra_observability_alarm", {"alarm_id": "ocid1.alarm.oc1..example"}, "get_alarm"), + ("list_database_and_infra_observability_alarm_states", {"compartment_id": "ocid1.compartment.oc1..example", "status": "FIRING"}, "list_alarms_status"), + ], +) +def test_alarm_tools_each_make_one_pinned_sdk_operation(monkeypatch, tool_name, arguments, operation) -> None: + from oracle.oci_db_observability_mcp_server.registry import load_registry + + calls: list[tuple[str, dict[str, object]]] = [] + + class Client: + def __getattr__(self, name): + def invoke(**kwargs): + calls.append((name, kwargs)) + return SimpleNamespace(data={"operation": name}, headers={}) + + return invoke + + monkeypatch.setattr(runtime, "_client", lambda *_args: Client()) + monkeypatch.setattr( + runtime, + "identity_bootstrap_client", + lambda: SimpleNamespace(get_compartment=lambda **_kwargs: None), + ) + + result = runtime.invoke_registered_tool(load_registry().get_tool(tool_name), arguments) + + assert calls == [(operation, arguments)] + assert result == {"data": {"operation": operation}, "nextPage": None} From fdcda304a25e943551b4650f5b1f02a35a21fc7d Mon Sep 17 00:00:00 2001 From: Jafet Castaneda Date: Wed, 26 Aug 2026 16:54:55 -0600 Subject: [PATCH 16/23] Add metric catalog coverage tests --- .../tests/test_metric_catalog.py | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_metric_catalog.py diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_metric_catalog.py b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_metric_catalog.py new file mode 100644 index 00000000..8c3548d1 --- /dev/null +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_metric_catalog.py @@ -0,0 +1,90 @@ +""" +Copyright (c) 2026, Oracle and/or its affiliates. +Licensed under the Universal Permissive License v1.0 as shown at +https://oss.oracle.com/licenses/upl. +""" + +from __future__ import annotations + +import json +from types import SimpleNamespace + +import pytest + +from oracle.oci_db_observability_mcp_server import metric_catalog + + +def _catalog() -> metric_catalog.MetricCatalog: + records = [ + { + "namespace": "oracle_oci_database", + "name": "ApplyLag", + "description": "Apply lag during replication", + "dimensions": ["dbRole", "databaseId"], + }, + { + "namespace": "oracle_oci_database", + "name": "CpuUtilization", + "description": "Database CPU utilization", + "dimensions": ["databaseId"], + }, + ] + return metric_catalog.MetricCatalog("test-catalog", "1", tuple(metric_catalog._freeze(record) for record in records)) + + +def test_search_ranks_matches_and_validates_input() -> None: + catalog = _catalog() + + result = catalog.search("apply lags", namespace="oracle_oci_database", limit=1) + + assert result["items"][0]["key"] == {"namespace": "oracle_oci_database", "name": "ApplyLag"} + assert result["items"][0]["matchedFields"] == ["name", "description"] + assert metric_catalog._stem("categories") == "category" + assert metric_catalog._stem("running") == "run" + assert metric_catalog._stem("updated") == "updat" + assert metric_catalog._stem("alarms") == "alarm" + with pytest.raises(metric_catalog.MetricCatalogError, match="non-empty"): + catalog.search(" ") + with pytest.raises(metric_catalog.MetricCatalogError, match="between"): + catalog.search("apply", limit=0) + + +def test_get_and_list_validate_and_page_catalog_records() -> None: + catalog = _catalog() + + assert catalog.get([{"namespace": "oracle_oci_database", "name": "ApplyLag"}])["items"][0]["name"] == "ApplyLag" + with pytest.raises(metric_catalog.MetricCatalogError, match="at least one"): + catalog.get([]) + with pytest.raises(metric_catalog.MetricCatalogError, match="non-empty"): + catalog.get([{"namespace": "", "name": "ApplyLag"}]) + with pytest.raises(metric_catalog.MetricCatalogError, match="between"): + catalog.list(limit=101) + with pytest.raises(metric_catalog.MetricCatalogError, match="non-negative"): + catalog.list(cursor="not-a-number") + with pytest.raises(metric_catalog.MetricCatalogError, match="non-negative"): + catalog.list(cursor="-1") + + first_page = catalog.list(limit=1) + assert first_page["nextCursor"] == "1" + assert first_page["items"][0]["name"] == "ApplyLag" + assert catalog.list(limit=1, cursor=first_page["nextCursor"])["nextCursor"] is None + + +@pytest.mark.parametrize( + ("payload", "error"), + [ + ("{", "Unable to load metric catalog"), + (json.dumps({"catalogId": "test", "version": "1", "records": "not-a-list"}), "invalid metadata"), + (json.dumps({"catalogId": "test", "version": "1", "records": ["not-an-object"]}), "records must be objects"), + ], +) +def test_load_metric_catalog_rejects_invalid_packaged_data(monkeypatch, payload, error) -> None: + resource = SimpleNamespace(read_text=lambda **_kwargs: payload) + monkeypatch.setattr(metric_catalog, "files", lambda _package: SimpleNamespace(joinpath=lambda *_parts: resource)) + metric_catalog.load_metric_catalog.cache_clear() + + with pytest.raises(metric_catalog.MetricCatalogError, match=error): + metric_catalog.load_metric_catalog() + + metric_catalog.load_metric_catalog.cache_clear() + From 05832031b2788bbbd5ac2e2059aa622fe412d252 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Luis=20Castro=20Garc=C3=ADa?= Date: Wed, 26 Aug 2026 18:01:25 -0600 Subject: [PATCH 17/23] descriptions updated --- .../metadata/skills.json | 8 ++-- .../metadata/tools.json | 44 +++++++++++++------ 2 files changed, 35 insertions(+), 17 deletions(-) diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/skills.json b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/skills.json index 39f96e60..b67bc3f0 100644 --- a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/skills.json +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/skills.json @@ -27,7 +27,7 @@ }, { "name": "awr-historical-performance-analysis", - "description": "AWR historical summarization across CPU, waits, metrics, parameters, and system statistics.", + "description": "AWR historical summarization across CPU, waits, metrics, parameters, and system statistics. Use AWR sysstat tools for historical metrics that can be derived from documented counters. Verify required counters and a common completed interval before querying a fleet; calculate rates or percentages only when the formula and counter semantics are known. If the counters are unavailable, report the limitation and do not fan out. Do not use fixed health-summary tools as generic metric lookups.", "tools": [ "summarize_awr_db_cpu_usages", "summarize_awr_db_metrics", @@ -153,7 +153,7 @@ }, { "name": "database-health-and-core-metrics", - "description": "Read-only health and core runtime metric checks for managed databases in OCI DBM. Check target type and subtype from inventory before invoking a specialized tool such as get_cluster_cache_metric.", + "description": "Read-only health and core runtime metric checks for managed databases in OCI DBM. Check target type and subtype from inventory before invoking a specialized tool such as get_cluster_cache_metric. Inspect each tool's schema and documented response scope before calling it; do not use a tool without a metric selector as a generic metric lookup. Validate metric and time constraints before any per-database fan-out; if parameter validation fails, correct the request once and do not repeat the same invalid request across the fleet.", "tools": [ "get_cluster_cache_metric", "get_database_home_metrics", @@ -292,7 +292,7 @@ }, { "name": "fleet-health-analytics-across-many-databases", - "description": "Fleet-level health analytics across many managed databases in OCI Database Management. Use get_database_fleet_health_metrics only when its filter_by_metric_names enum contains the requested metric; otherwise assess the applicable AWR workflow without treating the fleet enum as a global capability list.", + "description": "Fleet-level health analytics across many managed databases in OCI Database Management. Use get_database_fleet_health_metrics only when its filter_by_metric_names enum contains the requested direct resource metric; do not use this skill for job, job-run, or execution-status counts. Route those questions to job-orchestration-and-execution-tracking. For transaction, rate, percentage, or other derived metrics, use a counter-analysis skill when documented counters and a valid formula exist. Absence from the fleet enum does not establish that a metric is unavailable through AWR tools.", "tools": [ "get_database_fleet_health_metrics" ] @@ -334,7 +334,7 @@ }, { "name": "job-orchestration-and-execution-tracking", - "description": "Read-only job, run, and execution inventory with status summaries in OCI Database Management.", + "description": "Read-only job, run, and execution inventory with status summaries in OCI Database Management. Use this skill for questions about job counts, broken or failed executions, execution status, or job health. For aggregate counts by status across a compartment or time range, prefer summarize_job_executions_statuses; use list_job_executions or list_job_runs for per-item details. These are job-status workflows, not CPU, storage, or fleet-health resource-metric workflows. Before calling a status summary, provide at least one supported target selector (managed database, managed database group, or job), use a time window no longer than one week, and set end_time before the current UTC time. Treat returned status names as backend values; do not assume that a user term such as broken maps to FAILED unless the response establishes that mapping.", "tools": [ "get_job", "get_job_execution", diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/tools.json b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/tools.json index ab69d238..1763fda6 100644 --- a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/tools.json +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/tools.json @@ -1216,7 +1216,7 @@ }, { "name": "get_database_home_metrics", - "description": "Returns database home activity and resource usage summaries so admins can evaluate database home health and load.", + "description": "Returns the fixed database-home activity and resource-usage summary for one managed database over a supported time interval. This is not a general metric-discovery operation and has no metric-name filter; use it only when the requested value is represented in this tool's documented response.", "service": "dbm", "client": "DbManagementClient", "operation": "get_database_home_metrics", @@ -1228,7 +1228,7 @@ "properties": { "end_time": { "type": "string", - "description": "The end time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." + "description": "End of the query interval in UTC ISO-8601 format (yyyy-MM-dd'T'HH:mm:ss.sss'Z'). It must be earlier than the current UTC time and no more than one week after start_time." }, "managed_database_id": { "type": "string", @@ -1236,7 +1236,7 @@ }, "start_time": { "type": "string", - "description": "The start time of the time range to retrieve the health metrics of a Managed Database\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." + "description": "Start of the query interval in UTC ISO-8601 format (yyyy-MM-dd'T'HH:mm:ss.sss'Z'). The interval must be no longer than one week; calculate the start from the chosen end time rather than using an older calendar range." }, "opc_request_id": { "type": "string" @@ -2282,7 +2282,7 @@ }, { "name": "get_pdb_metrics", - "description": "Returns PDB resource usage summaries so admins can compare DB time, CPU, wait, storage, and memory usage across PDBs.", + "description": "Returns resource-usage summaries for a managed PDB. Use only for a confirmed PDB target; validate the requested metric against filter_by_metric_names before calling, and do not fan out an unsupported metric across databases. Omit the filter to retrieve all metrics supported by this operation.", "service": "dbm", "client": "DbManagementClient", "operation": "get_pdb_metrics", @@ -2311,7 +2311,21 @@ }, "filter_by_metric_names": { "type": "string", - "description": "The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics." + "enum": [ + "CPUTime", + "DBTime", + "CpuCount", + "IOPS", + "IOThroughput", + "MemoryUsage", + "StorageAllocated", + "StorageUsed", + "MonitoringStatus", + "WaitTime", + "CpuUtilization", + "StorageUtilization" + ], + "description": "Optional metric filter. Use only values listed in this enum; do not invent or infer metric names. Omit this parameter to return all metrics supported by this operation." }, "managed_database_id": { "type": "string", @@ -6862,7 +6876,7 @@ }, { "name": "list_job_executions", - "description": "Lists job executions so you can review per-target execution outcomes and timing.", + "description": "Lists individual job executions and their statuses for detailed investigation. Use this when per-job records, execution outcomes, or timing are required, after or instead of an aggregate status summary.", "service": "dbm", "client": "DbManagementClient", "operation": "list_job_executions", @@ -9861,7 +9875,7 @@ }, { "name": "summarize_awr_database_sysstats", - "description": "Returns AWR sysstat samples for a database, including statistic names, sampled intervals, and measured values. Requires a confirmed Operations Insights AWR Hub OCID and a source identifier from that same hub. Statistic names are source-dependent; this tool returns counters, not a precomputed Cursor Cache Hit Percentage.", + "description": "Returns historical AWR statistic counters for a database, including statistic names, sampled intervals, and measured values. Requires a confirmed Operations Insights AWR Hub OCID and a source identifier from that same hub. Statistic names are source-dependent; request only confirmed statistics and derive rates or percentages only when the required counters, interval, and formula are known. This tool returns counters, not precomputed ratios.", "service": "opsi", "client": "OperationsInsightsClient", "operation": "summarize_awr_database_sysstats", @@ -10705,7 +10719,7 @@ }, { "name": "summarize_awr_db_sysstats", - "description": "Returns AWR SYSSTAT summaries for one DB Management AWR database. Use after list_awr_dbs with the returned awr_db_id and the same managed_database_id. For cursor-cache analysis, request the needed sysstat counters for a common completed interval; this tool returns counters, not a precomputed ratio.", + "description": "Returns historical database statistic counters for one DB Management AWR database, not arbitrary named metrics or precomputed ratios. Use after list_awr_dbs with the returned awr_db_id and the same managed_database_id. Request only documented or confirmed statistics and use a common completed interval when deriving a rate or percentage. If required counters are unavailable, report the limitation and do not fan out across the fleet.", "service": "dbm", "client": "DbManagementClient", "operation": "summarize_awr_db_sysstats", @@ -15460,7 +15474,7 @@ }, { "name": "summarize_job_executions_statuses", - "description": "Returns aggregated counts of job executions by status for the requested scope and time range.", + "description": "Returns aggregated counts of job executions by backend status for the requested scope and time range. Use this for job-status count questions; do not route these questions to fleet resource-metric tools. The API requires at least one of managed_database_id, managed_database_group_id, or job_id. The requested interval must be no longer than one week and end_time must be earlier than the current UTC time. Report returned status names as-is; do not equate user terms such as broken with a backend status unless confirmed by the response.", "service": "dbm", "client": "DbManagementClient", "operation": "summarize_job_executions_statuses", @@ -15476,19 +15490,23 @@ }, "end_time": { "type": "string", - "description": "The end time of the time range to retrieve the status summary of job executions\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." + "description": "The end of the status-summary interval in UTC ISO-8601 format (yyyy-MM-dd'T'HH:mm:ss.sss'Z'). It must be earlier than the current UTC time and no more than one week after start_time." }, "id": { "type": "string", "description": "The identifier of the resource." }, + "job_id": { + "type": "string", + "description": "Optional identifier of the job. At least one of managed_database_id, managed_database_group_id, or job_id is required by the API." + }, "managed_database_group_id": { "type": "string", - "description": "The OCID of the Managed Database Group." + "description": "Optional OCID of the Managed Database Group. At least one of managed_database_id, managed_database_group_id, or job_id is required by the API." }, "managed_database_id": { "type": "string", - "description": "The OCID of the Managed Database." + "description": "Optional OCID of the Managed Database. At least one of managed_database_id, managed_database_group_id, or job_id is required by the API." }, "name": { "type": "string", @@ -15512,7 +15530,7 @@ }, "start_time": { "type": "string", - "description": "The start time of the time range to retrieve the status summary of job executions\nin UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\"." + "description": "The start of the status-summary interval in UTC ISO-8601 format (yyyy-MM-dd'T'HH:mm:ss.sss'Z'). The interval may be at most one week long." }, "opc_request_id": { "type": "string" From 00b0d76fbecfad14270296b08dcc35b16a03772c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Luis=20Castro=20Garc=C3=ADa?= Date: Fri, 28 Aug 2026 16:17:40 -0600 Subject: [PATCH 18/23] updated tools and added dbo.resolve_oci_compartment tool --- src/oci-db-observability-mcp-server/README.md | 22 ++- .../oci_db_observability_mcp_server/mcp.py | 151 ++++++++++++++++-- .../runtime.py | 6 +- .../tests/test_mcp_surface.py | 99 +++++++++++- 4 files changed, 257 insertions(+), 21 deletions(-) diff --git a/src/oci-db-observability-mcp-server/README.md b/src/oci-db-observability-mcp-server/README.md index d2521c3b..b33e0d28 100644 --- a/src/oci-db-observability-mcp-server/README.md +++ b/src/oci-db-observability-mcp-server/README.md @@ -2,7 +2,7 @@ This package provides one MCP server for OCI Operations Insights (OPSI), Database Management (DBM), and OCI Monitoring observability workflows. It -exposes two read-only compartment discovery tools plus four catalog discovery +exposes three read-only compartment discovery tools plus four catalog discovery and invocation tools. The catalog contains read-only OCI SDK bindings and packaged metadata handlers. @@ -42,11 +42,21 @@ The server uses `oracle-mcp-common` 0.1.2 or later for OCI authentication. ## Discovery workflow 1. For a compartment-scoped operation, use a user-provided compartment OCID. - For a name lookup, request a user-provided `root_compartment_id`, then call - `list_oci_compartments` with that root and `name`. Use the returned item's - `id` as `compartment_id` in subsequent operations. Do not invent an OCID. - If the user provides an OCID, call `get_oci_compartment` to validate it when - needed. + For a name lookup, call `resolve_oci_compartment`; it searches the configured + discovery roots and returns matching OCIDs and paths. Configure one or more + comma-separated roots independently of OCI authentication: + + ```sh + DBO_MCP_TENANCY_IDS=[,] + ``` + + Use the `id` from a unique match as `compartment_id` in subsequent operations. + If there are multiple matches, ask the user to select a returned path. If no + roots are configured, provide `root_compartment_ids` to the resolver or ask + the user for a root; do not invent an OCID. `list_oci_compartments` supports + direct browsing below an explicit root, or uses the configured root when + exactly one is configured. If the user provides an OCID, call + `get_oci_compartment` to validate it when needed. 2. Call `list_dbo_skills` when the relevant capability is not already known. 3. Call `list_dbo_tools` for selected skills when the required operation is not already known. diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/mcp.py b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/mcp.py index 250d64aa..2701127a 100644 --- a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/mcp.py +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/mcp.py @@ -5,7 +5,8 @@ """ from __future__ import annotations -from typing import Any +import os +from typing import Annotated, Any from fastmcp import FastMCP from pydantic import Field from .registry import compartment_requirements, load_registry, to_jsonable @@ -13,11 +14,89 @@ from .runtime import identity_bootstrap_client, serialize_response registry = load_registry() + + +def _configured_compartment_roots() -> tuple[str, ...]: + """Return the configured, deduplicated compartment discovery roots.""" + values = (value.strip() for value in os.getenv("DBO_MCP_TENANCY_IDS", "").split(",")) + return tuple(dict.fromkeys(value for value in values if value)) + + +def _discovery_roots(root_compartment_ids: list[str] | None) -> tuple[str, ...]: + """Use explicit roots when supplied, otherwise use server configuration.""" + roots = tuple(dict.fromkeys(root.strip() for root in (root_compartment_ids or []) if root and root.strip())) + if roots: + return roots + roots = _configured_compartment_roots() + if roots: + return roots + raise ValueError( + "No compartment search scope is configured. To find a compartment by name, configure DBO_MCP_TENANCY_IDS " + "with one or more tenancy OCIDs and reconnect the MCP, or retry with root_compartment_ids. You can also " + "provide the compartment OCID directly. The server will not guess because compartment names may not be unique." + ) + + +def _compartment_path(compartment_id: str, compartments: dict[str, dict[str, Any]], root_id: str) -> str: + """Build a display-name path without following malformed parent cycles.""" + names: list[str] = [] + current_id: str | None = compartment_id + seen: set[str] = set() + while current_id and current_id not in seen: + seen.add(current_id) + compartment = compartments.get(current_id) + if compartment is None: + break + names.append(str(compartment.get("name") or current_id)) + if current_id == root_id: + break + current_id = compartment.get("compartment_id") + return "/".join(reversed(names)) + + +def _compartments_under_root(client: Any, root_compartment_id: str) -> dict[str, dict[str, Any]]: + """List a root and its accessible active descendants for name resolution.""" + root = serialize_response(client.get_compartment(compartment_id=root_compartment_id))["data"] + compartments: dict[str, dict[str, Any]] = {} + if isinstance(root, dict) and root.get("id"): + compartments[str(root["id"])] = root + + pending = [root_compartment_id] + visited: set[str] = set() + while pending: + parent_id = pending.pop(0) + if parent_id in visited: + continue + visited.add(parent_id) + page: str | None = None + while True: + result = serialize_response( + client.list_compartments( + compartment_id=parent_id, + access_level="ACCESSIBLE", + lifecycle_state="ACTIVE", + limit=1000, + page=page, + ) + ) + for compartment in result["data"] if isinstance(result["data"], list) else []: + if isinstance(compartment, dict) and compartment.get("id"): + compartment_id = str(compartment["id"]) + compartments[compartment_id] = compartment + if compartment_id not in visited: + pending.append(compartment_id) + page = result["nextPage"] + if page is None: + break + return compartments + + mcp = FastMCP( name="oracle.oci-db-observability-mcp-server", instructions="For a compartment-scoped operation, use a user-provided compartment OCID, or resolve a user-provided compartment name with " - "`list_oci_compartments` using an explicit root compartment OCID. If neither is available, ask the user for a compartment OCID or " - "root compartment OCID; do not invent an OCID. Validate an already known OCID with `get_oci_compartment` when scope is not already known. Pass the resolved compartment OCID " + "`resolve_oci_compartment`. It searches DBO_MCP_TENANCY_IDS when configured, or explicit roots supplied to the tool. If no " + "discovery root is available, ask the user for one; do not invent an OCID. If resolution is ambiguous, ask the user to choose a returned " + "path. Validate an already known OCID with `get_oci_compartment` when scope is not already known. Pass the resolved compartment OCID " "to subsequent Database Observability operations. " "Use `list_dbo_skills` and `list_dbo_tools` when the relevant capability or operation is not already known. " "Use `describe_dbo_tool` to inspect or confirm a tool's exact contract when its schema is unavailable, " @@ -29,8 +108,8 @@ description=( "Read-only OCI compartment resolution. Use this when the compartment OCID is already known and you want to " "validate or inspect that exact compartment before invoking compartment-scoped Database Observability tools. " - "Do not invent an OCID. If the user provides a compartment name rather than an OCID, request a root " - "compartment OCID and use `list_oci_compartments` first." + "Do not invent an OCID. If the user provides a compartment name rather than an OCID, use " + "`resolve_oci_compartment` first." ), annotations={"readOnlyHint": True, "destructiveHint": False, "idempotentHint": True, "openWorldHint": True}, ) @@ -45,19 +124,64 @@ def get_oci_compartment( client = identity_bootstrap_client() return serialize_response(client.get_compartment(compartment_id=compartment_id)) + +@mcp.tool( + description=( + "Read-only OCI compartment name-to-OCID resolver. Use this when the user supplies a compartment name instead " + "of an OCID. It searches all configured DBO_MCP_TENANCY_IDS, or the optional explicit " + "root_compartment_ids. It returns matching compartment OCIDs and display-name paths. Use a unique match's " + "id as compartment_id in subsequent operations. If the result is ambiguous, ask the user to select a path; " + "do not choose a match automatically." + ), + annotations={"readOnlyHint": True, "destructiveHint": False, "idempotentHint": True, "openWorldHint": True}, +) +def resolve_oci_compartment( + name: str = Field(..., description="Required exact compartment display name to resolve, matched case-insensitively."), + root_compartment_ids: Annotated[ + list[str] | None, + Field(description="Optional compartment or tenancy OCID roots. When omitted, searches DBO_MCP_TENANCY_IDS."), + ] = None, +) -> dict[str, Any]: + if not name or not name.strip(): + raise ValueError("name is required.") + roots = _discovery_roots(root_compartment_ids) + client = identity_bootstrap_client() + matches: list[dict[str, str]] = [] + target_name = name.strip().casefold() + for root_id in roots: + compartments = _compartments_under_root(client, root_id) + for compartment_id, compartment in compartments.items(): + if str(compartment.get("name", "")).casefold() == target_name: + matches.append( + { + "id": compartment_id, + "name": str(compartment["name"]), + "path": _compartment_path(compartment_id, compartments, root_id), + "rootCompartmentId": root_id, + } + ) + matches.sort(key=lambda match: (match["path"].casefold(), match["id"])) + return { + "name": name.strip(), + "resolution": "unique" if len(matches) == 1 else "ambiguous" if matches else "not_found", + "matches": matches, + } + @mcp.tool( description=( "Read-only OCI compartment name-to-OCID resolution. Use this when the user supplies a compartment name instead " "of an OCID. Set `name` to the requested name and use the returned item's `id` as " - "the `compartment_id` in subsequent Database Observability operations. Provide a user-supplied " - "`root_compartment_id` as the compartment OCID from which to search descendants; if it is unavailable, ask " - "the user rather than inventing one. If multiple compartments share a name, " - "inspect their IDs and hierarchy before continuing." + "the `compartment_id` in subsequent Database Observability operations. The root may be supplied explicitly, " + "or omitted when exactly one DBO_MCP_TENANCY_IDS value is configured. For general name resolution " + "across configured roots, prefer `resolve_oci_compartment`." ), annotations={"readOnlyHint": True, "destructiveHint": False, "idempotentHint": True, "openWorldHint": True}, ) def list_oci_compartments( - root_compartment_id: str = Field(..., description="Required root compartment OCID from which to search for matching compartments and descendants."), + root_compartment_id: Annotated[ + str | None, + Field(description="Optional root compartment OCID from which to search. When omitted, uses the sole DBO_MCP_TENANCY_IDS value."), + ] = None, include_subtree: bool = Field(True, description="When true, include all descendant compartments below the root."), access_level: str = Field("ACCESSIBLE", description="Visibility filter: ACCESSIBLE returns compartments available to the caller; ANY includes all visible states."), name: str | None = Field(None, description="Optional exact compartment-name filter for resolving a user-provided name to one or more compartment OCIDs."), @@ -66,7 +190,12 @@ def list_oci_compartments( page: str | None = Field(None, description="Optional nextPage token returned by a previous call."), ) -> dict[str, Any]: if not root_compartment_id: - raise ValueError("root_compartment_id is required.") + roots = _configured_compartment_roots() + if len(roots) != 1: + raise ValueError( + "root_compartment_id is required unless exactly one DBO_MCP_TENANCY_IDS value is configured." + ) + root_compartment_id = roots[0] client = identity_bootstrap_client() response = client.list_compartments( compartment_id=root_compartment_id, diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/runtime.py b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/runtime.py index edadd113..a691eb23 100644 --- a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/runtime.py +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/runtime.py @@ -146,7 +146,7 @@ def _require_compartment_scope(tool: Mapping[str, Any], arguments: Mapping[str, if requirement["required"] and not arguments.get(argument): raise ValueError( f"{tool['name']} requires {argument}. Ask the user for a compartment OCID, or for a " - "root_compartment_id to resolve a supplied compartment name. Do not invent an OCID." + "configured compartment discovery root to resolve a supplied compartment name. Do not invent an OCID." ) @@ -164,8 +164,8 @@ def _validate_compartment_scope(tool: Mapping[str, Any], arguments: Mapping[str, if exc.code == "NotAuthorizedOrNotFound" or exc.status in {403, 404}: raise ValueError( f"The supplied compartment OCID {compartment_id} is invalid or inaccessible to the configured " - "OCI identity. Ask the user for a valid compartment OCID, or for a root_compartment_id to " - "resolve a compartment name." + "OCI identity. Ask the user for a valid compartment OCID, or use a configured compartment " + "discovery root to resolve a compartment name." ) from exc raise RuntimeError(f"Unable to validate compartment OCID {compartment_id}: {exc}") from exc diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_mcp_surface.py b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_mcp_surface.py index 9b9abe50..7e95e70c 100644 --- a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_mcp_surface.py +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_mcp_surface.py @@ -25,6 +25,7 @@ async def test_unified_mcp_exposes_only_discovery_dispatch_and_compartment_tools "list_oci_compartments", "list_dbo_skills", "list_dbo_tools", + "resolve_oci_compartment", } @@ -89,7 +90,8 @@ def test_get_compartment_requires_an_ocid() -> None: mcp_module.get_oci_compartment("") -def test_list_compartments_requires_a_root_ocid() -> None: +def test_list_compartments_requires_a_root_ocid_without_a_default(monkeypatch) -> None: + monkeypatch.delenv("DBO_MCP_TENANCY_IDS", raising=False) with pytest.raises(ValueError, match="root_compartment_id is required"): mcp_module.list_oci_compartments( root_compartment_id="", @@ -102,6 +104,101 @@ def test_list_compartments_requires_a_root_ocid() -> None: ) +def test_list_compartments_uses_a_single_configured_root(monkeypatch) -> None: + calls: dict[str, object] = {} + + class Client: + def list_compartments(self, **kwargs): + calls["list"] = kwargs + return object() + + monkeypatch.setenv("DBO_MCP_TENANCY_IDS", "configured-root") + monkeypatch.setattr(mcp_module, "identity_bootstrap_client", Client) + monkeypatch.setattr(mcp_module, "serialize_response", lambda _response: {"data": [], "nextPage": None}) + + assert mcp_module.list_oci_compartments( + include_subtree=True, + access_level="ACCESSIBLE", + name=None, + lifecycle_state=None, + limit=50, + page=None, + ) == {"items": [], "count": 0, "nextPage": None} + assert calls["list"] == { + "compartment_id": "configured-root", + "compartment_id_in_subtree": True, + "access_level": "ACCESSIBLE", + "name": None, + "lifecycle_state": None, + "limit": 50, + "page": None, + } + + +def test_resolve_compartment_searches_configured_roots_and_reports_ambiguity(monkeypatch) -> None: + calls: list[dict[str, object]] = [] + + class Response: + def __init__(self, data, next_page=None): + self.data = data + self.headers = {"opc-next-page": next_page} if next_page else {} + + class Client: + def get_compartment(self, *, compartment_id): + return Response({"id": compartment_id, "name": f"root-{compartment_id}"}) + + def list_compartments(self, **kwargs): + calls.append(kwargs) + root = kwargs["compartment_id"] + if root not in {"root-a", "root-b"}: + return Response([]) + return Response( + [ + {"id": f"{root}-dbanalytics", "name": "dbanalytics", "compartment_id": root}, + ] + ) + + monkeypatch.setenv("DBO_MCP_TENANCY_IDS", "root-a, root-b, root-a") + monkeypatch.setattr(mcp_module, "identity_bootstrap_client", Client) + monkeypatch.setattr( + mcp_module, + "serialize_response", + lambda response: {"data": response.data, "nextPage": response.headers.get("opc-next-page")}, + ) + + assert mcp_module.resolve_oci_compartment("DBANALYTICS") == { + "name": "DBANALYTICS", + "resolution": "ambiguous", + "matches": [ + { + "id": "root-a-dbanalytics", + "name": "dbanalytics", + "path": "root-root-a/dbanalytics", + "rootCompartmentId": "root-a", + }, + { + "id": "root-b-dbanalytics", + "name": "dbanalytics", + "path": "root-root-b/dbanalytics", + "rootCompartmentId": "root-b", + }, + ], + } + assert [call["compartment_id"] for call in calls] == [ + "root-a", + "root-a-dbanalytics", + "root-b", + "root-b-dbanalytics", + ] + assert all("name" not in call for call in calls) + + +def test_resolve_compartment_requires_a_configured_or_explicit_root(monkeypatch) -> None: + monkeypatch.delenv("DBO_MCP_TENANCY_IDS", raising=False) + with pytest.raises(ValueError, match="No compartment discovery root"): + mcp_module.resolve_oci_compartment("dbanalytics") + + def test_discovery_and_invocation_tools_delegate_to_registry(monkeypatch) -> None: skills = mcp_module.list_dbo_skills()["skills"] assert len(skills) == 35 From ff11543447af3e0fb787458dab5a3c2162ac3ed1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Luis=20Castro=20Garc=C3=ADa?= Date: Fri, 28 Aug 2026 16:31:39 -0600 Subject: [PATCH 19/23] fixed coverage --- .../oci_db_observability_mcp_server/tests/test_mcp_surface.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_mcp_surface.py b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_mcp_surface.py index 7e95e70c..333186b3 100644 --- a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_mcp_surface.py +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_mcp_surface.py @@ -195,7 +195,7 @@ def list_compartments(self, **kwargs): def test_resolve_compartment_requires_a_configured_or_explicit_root(monkeypatch) -> None: monkeypatch.delenv("DBO_MCP_TENANCY_IDS", raising=False) - with pytest.raises(ValueError, match="No compartment discovery root"): + with pytest.raises(ValueError, match="No compartment search scope is configured"): mcp_module.resolve_oci_compartment("dbanalytics") From ad7487d9e8df09b5684cae691e01300d046a01af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Luis=20Castro=20Garc=C3=ADa?= Date: Fri, 28 Aug 2026 16:52:12 -0600 Subject: [PATCH 20/23] fixed coverage --- .../tests/test_registry.py | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_registry.py b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_registry.py index ae8cef26..1e4e01d7 100644 --- a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_registry.py +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_registry.py @@ -68,6 +68,15 @@ class _GroupModel(_PolymorphicModel): attribute_map = {"target": "target", "identifiers": "identifiers"} +def _schema_operation(self, account_id, **kwargs): + """ + :param str account_id: (required) The account identifier. + :param list[_SimpleModel] details: Optional model details. + """ + expected_kwargs = ["details", "retry_strategy"] + return account_id, kwargs, expected_kwargs + + def test_packaged_registry_has_expected_shape() -> None: registry = load_registry() @@ -269,3 +278,52 @@ def test_sdk_schema_helpers_build_strict_model_and_polymorphic_contracts() -> No }, ] } + + +def test_sdk_schema_operation_preserves_nested_constraints() -> None: + models = SimpleNamespace(_SimpleModel=_SimpleModel) + + schema = schema_for_operation( + _schema_operation, + models, + { + "properties": { + "account_id": {"description": "Customer-facing account identifier", "minLength": 1}, + "details": { + "items": { + "properties": { + "name": {"pattern": "^[a-z]+$"}, + "counts": {"items": {"minimum": 0}}, + } + } + }, + }, + "required": ["account_id"], + }, + ) + + assert schema == { + "type": "object", + "properties": { + "account_id": { + "type": "string", + "minLength": 1, + "description": "Customer-facing account identifier", + }, + "details": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": {"type": "string", "pattern": "^[a-z]+$"}, + "counts": {"type": "array", "items": {"type": "integer", "minimum": 0}}, + "labels": {"type": "object", "additionalProperties": {"type": "boolean"}}, + }, + "additionalProperties": False, + "required": ["name"], + }, + }, + }, + "additionalProperties": False, + "required": ["account_id"], + } From 28d4adea5b2bcde8d74526ff9edbc3f0f133c872 Mon Sep 17 00:00:00 2001 From: Jafet Castaneda Date: Tue, 1 Sep 2026 11:28:38 -0600 Subject: [PATCH 21/23] Address monitoring catalog review findings --- ...abase-and-infra-observability-metrics.json | 490 +++++++++--------- .../metadata/tools.json | 4 +- .../runtime.py | 41 +- .../tests/test_metric_catalog.py | 7 +- .../tests/test_registry.py | 16 +- .../tests/test_runtime.py | 33 +- 6 files changed, 336 insertions(+), 255 deletions(-) diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/database-and-infra-observability-metrics.json b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/database-and-infra-observability-metrics.json index a2277869..23b65db0 100644 --- a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/database-and-infra-observability-metrics.json +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/database-and-infra-observability-metrics.json @@ -36,7 +36,7 @@ "description": "The percentage of space used by a tablespace, out of allocated space. For CDBs, this metric provides data for root container tablespaces.", "unit": "percent", "statistic": "Mean", - "collectionInternal": "30 minute", + "collectionInterval": "30 minute", "dimensions": [ "tablespaceName", "tablespaceType" @@ -52,7 +52,7 @@ "description": "The number of seconds the standby database is behind the primary database.", "unit": "seconds", "statistic": "Mean", - "collectionInternal": "5 minute", + "collectionInterval": "5 minute", "dimensions": [ "dbRole", "primaryDbid", @@ -68,7 +68,7 @@ "description": "The elapsed time since the ApplyLag metric sample was last collected.", "unit": "seconds", "statistic": "Mean", - "collectionInternal": "5 minute", + "collectionInterval": "5 minute", "dimensions": [ "dbRole", "primaryDbid", @@ -84,7 +84,7 @@ "description": "The average global cache consistent-read (CR) block receive time.", "unit": "milliseconds", "statistic": "Mean", - "collectionInternal": "5 minute", + "collectionInterval": "5 minute", "dimensions": [ "instanceNumber", "instanceName", @@ -101,7 +101,7 @@ "description": "The average global cache current block receive time.", "unit": "milliseconds", "statistic": "Mean", - "collectionInternal": "5 minute", + "collectionInterval": "5 minute", "dimensions": [ "instanceNumber", "instanceName", @@ -118,7 +118,7 @@ "description": "The duration of the last database backup.", "unit": "seconds", "statistic": "Mean", - "collectionInternal": "30 minute", + "collectionInterval": "30 minute", "dimensions": [ "status", "backupType", @@ -134,7 +134,7 @@ "description": "The size of the last database backup.", "unit": "GB", "statistic": "Mean", - "collectionInternal": "30 minute", + "collectionInterval": "30 minute", "dimensions": [ "status", "backupType", @@ -150,7 +150,7 @@ "description": "The average number of blocks changed per second.", "unit": "changes per second", "statistic": "Mean", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "instanceNumber", "instanceName", @@ -167,7 +167,7 @@ "description": "The current blocking sessions.", "unit": "count", "statistic": "Max", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [], "supportedDatabaseType": [ "PDB" @@ -179,7 +179,7 @@ "description": "The maximum number of CPUs available for the database, which is set to enable instance caging.", "unit": "count", "statistic": "Mean", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "instanceNumber", "instanceName", @@ -196,7 +196,7 @@ "description": "The number of CPUs or processors available on the database instance.", "unit": "count", "statistic": "Mean", - "collectionInternal": "60 minute", + "collectionInterval": "60 minute", "dimensions": [ "instanceNumber", "instanceName", @@ -213,7 +213,7 @@ "description": "The average rate of accumulation of CPU time by foreground sessions in the database instance over the time interval. The CPU time component of Average Active Sessions.", "unit": "seconds per second", "statistic": "Mean", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "instanceNumber", "instanceName", @@ -230,7 +230,7 @@ "description": "The CPU utilization expressed as a percentage, aggregated across all consumer groups. The utilization percentage is reported with respect to the number of CPUs the database is allowed to use.", "unit": "percent", "statistic": "Mean", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "instanceNumber", "instanceName", @@ -247,7 +247,7 @@ "description": "The number of successful logons during the selected interval.", "unit": "count", "statistic": "Sum", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "instanceNumber", "instanceName", @@ -264,7 +264,7 @@ "description": "The number of SQL job executions on a single Managed Database or a Database Group, and their status. Status dimensions can be the following values: \"Succeeded\", \"Failed,\" \"InProgress.\"", "unit": "count", "statistic": "Sum", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "managedDatabaseId", "managedDatabaseGroupId", @@ -282,7 +282,7 @@ "description": "The average rate of accumulation of database time (CPU + Wait) by foreground sessions in the database instance over the time interval. Also known as Average Active Sessions.", "unit": "seconds per second", "statistic": "Mean", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "instanceNumber", "instanceName", @@ -299,7 +299,7 @@ "description": "The number of seconds required to fail over to the standby database.", "unit": "seconds", "statistic": "Mean", - "collectionInternal": "5 minute", + "collectionInterval": "5 minute", "dimensions": [ "dbRole", "primaryDbid", @@ -315,7 +315,7 @@ "description": "The number of user and recursive calls that executed SQL statements during the selected interval.", "unit": "count", "statistic": "Sum", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "instanceNumber", "instanceName", @@ -332,7 +332,7 @@ "description": "The flash recovery area space limit.", "unit": "GB", "statistic": "Max", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [], "supportedDatabaseType": [ "CDB" @@ -344,7 +344,7 @@ "description": "The flash recovery area utilization.", "unit": "percent", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [], "supportedDatabaseType": [ "CDB" @@ -356,7 +356,7 @@ "description": "The global cache CR blocks received per second.", "unit": "blocks per second", "statistic": "Mean", - "collectionInternal": "5 minute", + "collectionInterval": "5 minute", "dimensions": [ "instanceNumber", "instanceName", @@ -373,7 +373,7 @@ "description": "The global cache current blocks received per second.", "unit": "blocks per second", "statistic": "Mean", - "collectionInternal": "5 minute", + "collectionInterval": "5 minute", "dimensions": [ "instanceNumber", "instanceName", @@ -390,7 +390,7 @@ "description": "The average internode data transfer rate.", "unit": "MB per second", "statistic": "Mean", - "collectionInternal": "5 minute", + "collectionInterval": "5 minute", "dimensions": [ "instanceNumber", "instanceName", @@ -407,7 +407,7 @@ "description": "The number of invalid database objects.", "unit": "count", "statistic": "Max", - "collectionInternal": "24 hour", + "collectionInterval": "24 hour", "dimensions": [], "supportedDatabaseType": [ "PDB" @@ -419,7 +419,7 @@ "description": "The average number of IO operations per second.", "unit": "operations per second", "statistic": "Mean", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "instanceNumber", "instanceName", @@ -439,7 +439,7 @@ "description": "The average throughput in MB per second.", "unit": "MB per second", "statistic": "Mean", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "instanceNumber", "instanceName", @@ -459,7 +459,7 @@ "description": "The average number of blocks read from SGA/Memory (buffer cache) per second.", "unit": "reads per second", "statistic": "Mean", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "instanceNumber", "instanceName", @@ -476,7 +476,7 @@ "description": "The maximum possible tablespace size. For CDBs, this metric provides data for root container tablespaces.", "unit": "GB", "statistic": "Max", - "collectionInternal": "30 minute", + "collectionInterval": "30 minute", "dimensions": [ "tablespaceName", "tablespaceType" @@ -492,7 +492,7 @@ "description": "The total size of the memory pool in MB.", "unit": "MB", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "instanceNumber", "instanceName", @@ -522,7 +522,7 @@ "description": "The monitoring status of the resource. If metric collection fails, error information is captured in this metric.", "unit": "nan", "statistic": "Mean", - "collectionInternal": "5 minute", + "collectionInterval": "5 minute", "dimensions": [ "collectionName", "errorSeverity", @@ -539,7 +539,7 @@ "description": "The number of days left before the monitoring user password expires.", "unit": "count", "statistic": "Last", - "collectionInternal": "24 hour", + "collectionInterval": "24 hour", "dimensions": [ "isPerpetual" ], @@ -554,7 +554,7 @@ "description": "The non-reclaimable fast recovery area.", "unit": "percent", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [], "supportedDatabaseType": [ "CDB" @@ -566,7 +566,7 @@ "description": "The number of hard and soft parses during the selected interval.", "unit": "count", "statistic": "Sum", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "instanceNumber", "instanceName", @@ -583,7 +583,7 @@ "description": "The number of hard or soft parses per second.", "unit": "parses per second", "statistic": "Mean", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "instanceNumber", "instanceName", @@ -603,7 +603,7 @@ "description": "The number of problematic scheduled database jobs.", "unit": "count", "statistic": "Max", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "type", "(Broken,", @@ -619,7 +619,7 @@ "description": "The number of database processes.", "unit": "count", "statistic": "Max", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "instanceNumber", "instanceName", @@ -635,7 +635,7 @@ "description": "The process limit utilization.", "unit": "percent", "statistic": "Mean", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "instanceNumber", "instanceName", @@ -651,7 +651,7 @@ "description": "The reclaimable fast recovery area.", "unit": "percent", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [], "supportedDatabaseType": [ "CDB" @@ -663,7 +663,7 @@ "description": "The flash recovery area reclaimable space.", "unit": "GB", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [], "supportedDatabaseType": [ "CDB" @@ -675,7 +675,7 @@ "description": "The current recovery window of a database.", "unit": "seconds", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "deviceType" ], @@ -689,7 +689,7 @@ "description": "The redo apply rate on the standby database.", "unit": "MB per second", "statistic": "Mean", - "collectionInternal": "5 minute", + "collectionInterval": "5 minute", "dimensions": [ "dbRole", "primaryDbid", @@ -705,7 +705,7 @@ "description": "The redo generation rate on the primary database.", "unit": "MB per second", "statistic": "Mean", - "collectionInternal": "5 minute", + "collectionInterval": "5 minute", "dimensions": [], "supportedDatabaseType": [ "CDB" @@ -717,7 +717,7 @@ "description": "The average amount of redo generated.", "unit": "MB per second", "statistic": "Mean", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "instanceNumber", "instanceName", @@ -734,7 +734,7 @@ "description": "The number of days for which database backups are retained.", "unit": "count", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [], "supportedDatabaseType": [ "CDB" @@ -746,7 +746,7 @@ "description": "The session limit utilization.", "unit": "percent", "statistic": "Mean", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "instanceNumber", "instanceName", @@ -762,7 +762,7 @@ "description": "The number of sessions in the database.", "unit": "count", "statistic": "Mean", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "instanceNumber", "instanceName", @@ -779,7 +779,7 @@ "description": "The maximum amount of space allocated by tablespace during the interval. For CDBs, this metric provides data for root container tablespaces.", "unit": "GB", "statistic": "Max", - "collectionInternal": "30 minute", + "collectionInterval": "30 minute", "dimensions": [], "supportedDatabaseType": [ "CDB", @@ -792,7 +792,7 @@ "description": "The maximum amount of space allocated by tablespace during the interval. For CDBs, this metric provides data for root container tablespaces.", "unit": "GB", "statistic": "Max", - "collectionInternal": "30 minute", + "collectionInterval": "30 minute", "dimensions": [ "tablespaceName", "tablespaceType" @@ -808,7 +808,7 @@ "description": "The total storage used by the database at collection time, including the space used by tablespaces, flash recovery area, control files, and log files.", "unit": "GB", "statistic": "Max", - "collectionInternal": "30 minute", + "collectionInterval": "30 minute", "dimensions": [], "supportedDatabaseType": [ "CDB", @@ -821,7 +821,7 @@ "description": "The maximum amount of space used by tablespace during the interval. For CDBs, this metric provides data for root container tablespaces.", "unit": "GB", "statistic": "Max", - "collectionInternal": "30 minute", + "collectionInterval": "30 minute", "dimensions": [ "tablespaceName", "tablespaceType" @@ -837,7 +837,7 @@ "description": "The percentage of provisioned storage capacity currently in use. Represents the total allocated space for all tablespaces.", "unit": "percent", "statistic": "Mean", - "collectionInternal": "30 minute", + "collectionInterval": "30 minute", "dimensions": [], "supportedDatabaseType": [ "CDB", @@ -850,7 +850,7 @@ "description": "The percentage of the space utilized, by tablespace. For CDBs, this metric provides data for root container tablespaces.", "unit": "percent", "statistic": "Mean", - "collectionInternal": "30 minute", + "collectionInterval": "30 minute", "dimensions": [ "tablespaceName", "tablespaceType" @@ -866,7 +866,7 @@ "description": "The combined number of user commits and user rollbacks during the selected interval.", "unit": "count", "statistic": "Sum", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "instanceNumber", "instanceName", @@ -883,7 +883,7 @@ "description": "The number of committed or rolled back transactions per second.", "unit": "transactions per second", "statistic": "Mean", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "instanceNumber", "instanceName", @@ -903,7 +903,7 @@ "description": "The number of seconds of redo not yet available on the standby database.", "unit": "seconds", "statistic": "Mean", - "collectionInternal": "5 minute", + "collectionInterval": "5 minute", "dimensions": [ "dbRole", "primaryDbid", @@ -919,7 +919,7 @@ "description": "The elapsed time since the TransportLagDataRefreshElapsedTime metric sample was last collected.", "unit": "seconds", "statistic": "Mean", - "collectionInternal": "5 minute", + "collectionInterval": "5 minute", "dimensions": [ "dbRole", "primaryDbid", @@ -935,7 +935,7 @@ "description": "The current unprotected data window of a database.", "unit": "seconds", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "deviceType" ], @@ -949,7 +949,7 @@ "description": "The number of unusable indexes in the database schema.", "unit": "count", "statistic": "Max", - "collectionInternal": "24 hour", + "collectionInterval": "24 hour", "dimensions": [ "schemaName" ], @@ -963,7 +963,7 @@ "description": "The usable fast recovery area.", "unit": "percent", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [], "supportedDatabaseType": [ "CDB" @@ -975,7 +975,7 @@ "description": "The flash recovery area space usage.", "unit": "GB", "statistic": "Max", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [], "supportedDatabaseType": [ "CDB" @@ -987,7 +987,7 @@ "description": "The combined number of logons, parses, and execute calls during the selected interval.", "unit": "count", "statistic": "Sum", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "instanceNumber", "instanceName", @@ -1004,7 +1004,7 @@ "description": "The average rate of accumulation of non-idle wait time by foreground sessions in the database instance over the time interval. The wait time component of Average Active Sessions.", "unit": "seconds per second", "statistic": "Mean", - "collectionInternal": "5 minute", + "collectionInterval": "5 minute", "dimensions": [ "instanceNumber", "instanceName", @@ -1022,7 +1022,7 @@ "description": "The actual number of ECPUs allocated by the service during the selected interval. This metric is available if the VM cluster uses the ECPU compute model.", "unit": "count", "statistic": "Count", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [], "supportedDatabaseType": [ "CDB", @@ -1035,7 +1035,7 @@ "description": "The actual number of OCPUs allocated by the service during the selected interval. This metric is available if the VM cluster uses the OCPU compute model.", "unit": "count", "statistic": "Count", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [], "supportedDatabaseType": [ "CDB", @@ -1048,7 +1048,7 @@ "description": "The capacity of the ASM disk group.", "unit": "GB", "statistic": "Mean", - "collectionInternal": "60 minute", + "collectionInterval": "60 minute", "dimensions": [ "resourceId", "resourceName", @@ -1066,7 +1066,7 @@ "description": "The cell server CPU utilization.", "unit": "percent", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1081,7 +1081,7 @@ "description": "The percentage of space allocated on the cell disk.", "unit": "percent", "statistic": "Mean", - "collectionInternal": "60 minute", + "collectionInterval": "60 minute", "dimensions": [ "resourceId", "resourceName", @@ -1097,7 +1097,7 @@ "description": "The capacity of the cell disk.", "unit": "GB", "statistic": "Mean", - "collectionInternal": "60 minute", + "collectionInterval": "60 minute", "dimensions": [ "resourceId", "resourceName", @@ -1114,7 +1114,7 @@ "description": "The free space available on the cell disk.", "unit": "GB", "statistic": "Mean", - "collectionInternal": "60 minute", + "collectionInterval": "60 minute", "dimensions": [ "resourceId", "resourceName", @@ -1131,7 +1131,7 @@ "description": "The average I/O load to the cell disk.", "unit": "count", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1148,7 +1148,7 @@ "description": "The average I/O utilization.", "unit": "percent", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1165,7 +1165,7 @@ "description": "The average number of I/O operations for reading large blocks from a cell disk.", "unit": "operations per second", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1182,7 +1182,7 @@ "description": "The average response time when reading large blocks from the cell disk.", "unit": "milliseconds per request", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1199,7 +1199,7 @@ "description": "The average I/O throughput per second for reading large blocks from a cell disk.", "unit": "MB per second", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1216,7 +1216,7 @@ "description": "The average number of I/O operations for writing large blocks to cell disk.", "unit": "operations per second", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1233,7 +1233,7 @@ "description": "The average response time when writing large blocks to the cell disk.", "unit": "milliseconds per request", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1250,7 +1250,7 @@ "description": "The average I/O throughput per second for writing large blocks to a cell disk.", "unit": "MB per second", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1267,7 +1267,7 @@ "description": "The average number of read I/O operations per second.", "unit": "operations per second", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1284,7 +1284,7 @@ "description": "The average response time per read request from cell disks (weighted by the number of requests for small or large blocks).", "unit": "milliseconds per request", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1301,7 +1301,7 @@ "description": "The average I/O throughput per second for reading small or large blocks from a cell disk.", "unit": "MB per second", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1318,7 +1318,7 @@ "description": "The average number of I/O operations for reading small blocks from a cell disk.", "unit": "operations per second", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1335,7 +1335,7 @@ "description": "The average response time when reading small blocks from the cell disk.", "unit": "milliseconds per request", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1352,7 +1352,7 @@ "description": "The average I/O throughput per second for reading small blocks from a cell disk.", "unit": "MB per second", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1369,7 +1369,7 @@ "description": "The average number of I/O operations for writing small blocks to cell disk.", "unit": "operations per second", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1386,7 +1386,7 @@ "description": "The average response time when writing small blocks to the cell disk.", "unit": "milliseconds per request", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1403,7 +1403,7 @@ "description": "The average I/O throughput per second for writing small blocks to a cell disk.", "unit": "MB per second", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1420,7 +1420,7 @@ "description": "The average number of write I/O operations per second.", "unit": "operations per second", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1437,7 +1437,7 @@ "description": "The average response time per write request to the cell disk (weighted by the number of requests for small or large blocks).", "unit": "milliseconds per request", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1454,7 +1454,7 @@ "description": "The average I/O throughput per second for writing small or large blocks to a cell disk.", "unit": "MB per second", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1471,7 +1471,7 @@ "description": "The cell server memory utilization.", "unit": "percent", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1486,7 +1486,7 @@ "description": "The number of cell server open alerts.", "unit": "count", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1502,7 +1502,7 @@ "description": "The status of the cell server.", "unit": "nan", "statistic": "Min", - "collectionInternal": "2 minute", + "collectionInterval": "2 minute", "dimensions": [ "resourceId", "resourceName", @@ -1517,7 +1517,7 @@ "description": "The database flash cache usage.", "unit": "MB", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1535,7 +1535,7 @@ "description": "The database I/O operations per second for reading or writing blocks from flash disks.", "unit": "operations per second", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1553,7 +1553,7 @@ "description": "The database I/O response time per request for flash disks.", "unit": "milliseconds per request", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1571,7 +1571,7 @@ "description": "The database IORM wait time per request issued to flash disks (weighted by number of requests for small or large blocks).", "unit": "milliseconds per request", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1589,7 +1589,7 @@ "description": "The database I/O throughput for reading or writing from flash disks.", "unit": "MB per second", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1607,7 +1607,7 @@ "description": "The database I/O utilization for flash disks.", "unit": "percent", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1625,7 +1625,7 @@ "description": "The database IORM wait time per request for large I/O requests issued to flash disks.", "unit": "milliseconds per request", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1643,7 +1643,7 @@ "description": "The database I/O operations per second for reading or writing large blocks from flash disks.", "unit": "operations per second", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1661,7 +1661,7 @@ "description": "The database I/O response time per request for reading or writing large blocks from flash disks.", "unit": "milliseconds per request", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1679,7 +1679,7 @@ "description": "The database I/O utilization for reading or writing large blocks from flash disks", "unit": "percent", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1697,7 +1697,7 @@ "description": "The database IORM wait time per request for small I/O requests issued to flash disks.", "unit": "milliseconds per request", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1715,7 +1715,7 @@ "description": "The database I/O operations per second for reading or writing small blocks from flash disks.", "unit": "operations per second", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1733,7 +1733,7 @@ "description": "The database I/O response time per request for reading or writing small blocks from flash disks.", "unit": "milliseconds per request", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1751,7 +1751,7 @@ "description": "The database I/O utilization for reading or writing small blocks from flash disks.", "unit": "percent", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1769,7 +1769,7 @@ "description": "The database I/O operations per second for reading or writing blocks from hard disks.", "unit": "operations per second", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1787,7 +1787,7 @@ "description": "The database I/O response time per request for hard disks (weighted by number of requests for small or large blocks).", "unit": "milliseconds per request", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1805,7 +1805,7 @@ "description": "The database IORM wait time per request issued to hard disks (weighted by number of requests for small or large blocks).", "unit": "milliseconds per request", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1823,7 +1823,7 @@ "description": "The database I/O throughput for reading or writing from hard disks.", "unit": "MB per second", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1841,7 +1841,7 @@ "description": "The database I/O utilization for hard disks.", "unit": "percent", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1859,7 +1859,7 @@ "description": "The database IORM wait time per request for large I/O requests issued to hard disks.", "unit": "milliseconds per request", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1877,7 +1877,7 @@ "description": "The database I/O operations per second for reading or writing large blocks from hard disks.", "unit": "operations per second", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1895,7 +1895,7 @@ "description": "The database I/O response time per request for reading or writing large blocks from hard disks.", "unit": "milliseconds per request", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1913,7 +1913,7 @@ "description": "The database I/O utilization for reading or writing large blocks from hard disks.", "unit": "percent", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1931,7 +1931,7 @@ "description": "The database IORM wait time per request for small I/O requests issued to hard disks.", "unit": "milliseconds per request", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1949,7 +1949,7 @@ "description": "The database I/O operations per second for reading or writing small blocks from hard disks.", "unit": "operations per second", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1967,7 +1967,7 @@ "description": "The database I/O response time per request for reading or writing small blocks from hard disks.", "unit": "milliseconds per request", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -1985,7 +1985,7 @@ "description": "The database I/O utilization for reading or writing small blocks from hard disks.", "unit": "percent", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -2003,7 +2003,7 @@ "description": "The number of requests to write new data into flash cache.", "unit": "requests per second", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -2018,7 +2018,7 @@ "description": "The flash cache read hit ratio. Note: If there's no flash cache activity, then the hit ratio is defaulted to 100%.", "unit": "percent", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -2033,7 +2033,7 @@ "description": "The flash cache read hit ratio for keep objects. Note: If there's no flash cache activity, then the hit ratio is defaulted to 100%.", "unit": "percent", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -2048,7 +2048,7 @@ "description": "The number of read requests for keep objects that did not find all the data in flash cache.", "unit": "count", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -2063,7 +2063,7 @@ "description": "The number of megabytes per second pushed out of flash cache because of the space limit for keep objects.", "unit": "MB per second", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -2078,7 +2078,7 @@ "description": "The number of requests read from flash cache for keep objects.", "unit": "count", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -2093,7 +2093,7 @@ "description": "The I/O throughput reading large blocks from flash cache.", "unit": "MB per second", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -2108,7 +2108,7 @@ "description": "The number of requests that overwrite existing data into flash cache.", "unit": "requests per second", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -2123,7 +2123,7 @@ "description": "The number of requests that are population writes into flash cache due to read miss.", "unit": "requests per second", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -2138,7 +2138,7 @@ "description": "The number of requests to read random I/O from flash cache.", "unit": "requests per second", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -2153,7 +2153,7 @@ "description": "The I/O throughput reading scan data from disk, as not all the data is in flash cache.", "unit": "MB per second", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -2168,7 +2168,7 @@ "description": "The number of requests to read scan data from flash cache.", "unit": "requests per second", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -2183,7 +2183,7 @@ "description": "The size of flash cache.", "unit": "GB", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -2198,7 +2198,7 @@ "description": "The I/O throughput reading small blocks from flash cache.", "unit": "MB per second", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -2213,7 +2213,7 @@ "description": "The flash cache read hit ratio for small requests. Note: If there's no flash cache activity, then the hit ratio is defaulted to 100%.", "unit": "percent", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -2228,7 +2228,7 @@ "description": "The number of requests that write data to hard disk from flash cache.", "unit": "requests per second", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -2243,7 +2243,7 @@ "description": "The flash disk space allocated to grid disks.", "unit": "GB", "statistic": "Mean", - "collectionInternal": "60 minute", + "collectionInterval": "60 minute", "dimensions": [ "resourceId", "resourceName", @@ -2258,7 +2258,7 @@ "description": "The flash disk usage for flash cache keep objects.", "unit": "GB", "statistic": "Mean", - "collectionInternal": "60 minute", + "collectionInterval": "60 minute", "dimensions": [ "resourceId", "resourceName", @@ -2273,7 +2273,7 @@ "description": "The flash disk usage for flash cache non-keep objects.", "unit": "GB", "statistic": "Mean", - "collectionInternal": "60 minute", + "collectionInterval": "60 minute", "dimensions": [ "resourceId", "resourceName", @@ -2288,7 +2288,7 @@ "description": "The flash disk usage for flash cache that is unused.", "unit": "GB", "statistic": "Mean", - "collectionInternal": "60 minute", + "collectionInterval": "60 minute", "dimensions": [ "resourceId", "resourceName", @@ -2303,7 +2303,7 @@ "description": "The flash disk usage for flash log.", "unit": "GB", "statistic": "Mean", - "collectionInternal": "60 minute", + "collectionInterval": "60 minute", "dimensions": [ "resourceId", "resourceName", @@ -2318,7 +2318,7 @@ "description": "The flash disk usage for metadata.", "unit": "GB", "statistic": "Mean", - "collectionInternal": "60 minute", + "collectionInterval": "60 minute", "dimensions": [ "resourceId", "resourceName", @@ -2333,7 +2333,7 @@ "description": "The number of redo writes exceeding the outlier threshold.", "unit": "nan", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -2348,7 +2348,7 @@ "description": "The smart flash logging efficiency over the past hour.", "unit": "percent", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -2363,7 +2363,7 @@ "description": "The number of redo writes that are prevented from exceeding the outlier threshold.", "unit": "nan", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -2378,7 +2378,7 @@ "description": "The number of redo writes that are bypassed due to the size of data being greater than the available space.", "unit": "count", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -2393,7 +2393,7 @@ "description": "The number of redo writes that are bypassed due to unavailable buffer.", "unit": "count", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -2408,7 +2408,7 @@ "description": "The number of redo writes that are bypassed due to slow disk.", "unit": "count", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -2423,7 +2423,7 @@ "description": "The number of Smart Flash Logging writes serviced.", "unit": "operations per second", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -2438,7 +2438,7 @@ "description": "The Smart Flash Logging write throughput.", "unit": "MB per second", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -2453,7 +2453,7 @@ "description": "The hard disk usage allocated to grid disks.", "unit": "GB", "statistic": "Mean", - "collectionInternal": "60 minute", + "collectionInterval": "60 minute", "dimensions": [ "resourceId", "resourceName", @@ -2468,7 +2468,7 @@ "description": "The hard disk space used for metadata.", "unit": "GB", "statistic": "Mean", - "collectionInternal": "60 minute", + "collectionInterval": "60 minute", "dimensions": [ "resourceId", "resourceName", @@ -2483,7 +2483,7 @@ "description": "The megabytes transmitted or received through the Infiniband interface.", "unit": "MB per second", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -2499,7 +2499,7 @@ "description": "The ratio of the cumulative number of positions in the I/O queue that were skipped.", "unit": "percent", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -2514,7 +2514,7 @@ "description": "The current I/O resource management mode. Note that if IORM objective = BASIC, then this metric has no meaning. A value in between 1 and 2 or between 2 and 3 indicates that the IORM objective changed in the metric period, and the precise value indicates proximity to a given objective. It's also indicative of a constantly-changing mix of workloads.", "unit": "GB", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -2529,7 +2529,7 @@ "description": "The I/O resource management objective.", "unit": "nan", "statistic": "Mean", - "collectionInternal": "60 minute", + "collectionInterval": "60 minute", "dimensions": [ "resourceId", "resourceName", @@ -2544,7 +2544,7 @@ "description": "The status of the storage server's management service.", "unit": "nan", "statistic": "Min", - "collectionInternal": "2 minute", + "collectionInterval": "2 minute", "dimensions": [ "resourceId", "resourceName", @@ -2559,7 +2559,7 @@ "description": "The megabytes read from the flash disk by the Smart Scan I/O.", "unit": "MB per second", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -2574,7 +2574,7 @@ "description": "The megabytes read from the hard disk by the Smart Scan I/O.", "unit": "MB per second", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -2589,7 +2589,7 @@ "description": "The megabytes of Smart Scan I/O pass-through (sent back to the database for processing).", "unit": "MB per second", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -2604,7 +2604,7 @@ "description": "The megabytes saved or avoided by using Storage Index.", "unit": "MB per second", "statistic": "Mean", - "collectionInternal": "15 minute", + "collectionInterval": "15 minute", "dimensions": [ "resourceId", "resourceName", @@ -2619,7 +2619,7 @@ "description": "The allocated space in a disk group for a database.", "unit": "MB", "statistic": "Mean", - "collectionInternal": "30 minute", + "collectionInterval": "30 minute", "dimensions": [ "resourceId", "resourceName", @@ -2636,7 +2636,7 @@ "description": "The free space in a disk.", "unit": "GB", "statistic": "Mean", - "collectionInternal": "30 minute", + "collectionInterval": "30 minute", "dimensions": [ "resourceId", "resourceName", @@ -2653,7 +2653,7 @@ "description": "The free space in a disk group.", "unit": "GB", "statistic": "Mean", - "collectionInternal": "30 minute", + "collectionInterval": "30 minute", "dimensions": [ "resourceId", "resourceName", @@ -2669,7 +2669,7 @@ "description": "The total space in a disk group.", "unit": "GB", "statistic": "Mean", - "collectionInternal": "30 minute", + "collectionInterval": "30 minute", "dimensions": [ "resourceId", "resourceName", @@ -2685,7 +2685,7 @@ "description": "The usable free space in a disk group.", "unit": "GB", "statistic": "Mean", - "collectionInternal": "30 minute", + "collectionInterval": "30 minute", "dimensions": [ "resourceId", "resourceName", @@ -2701,7 +2701,7 @@ "description": "The total usable space in a disk group, subject to redundancy.", "unit": "GB", "statistic": "Mean", - "collectionInternal": "30 minute", + "collectionInterval": "30 minute", "dimensions": [ "resourceId", "resourceName", @@ -2717,7 +2717,7 @@ "description": "The percentage of usable space used in a disk group.", "unit": "percent", "statistic": "Mean", - "collectionInternal": "30 minute", + "collectionInterval": "30 minute", "dimensions": [ "resourceId", "resourceName", @@ -2733,7 +2733,7 @@ "description": "The percentage of space used in a disk group.", "unit": "percent", "statistic": "Mean", - "collectionInternal": "30 minute", + "collectionInterval": "30 minute", "dimensions": [ "resourceId", "resourceName", @@ -2749,7 +2749,7 @@ "description": "The total space in a disk.", "unit": "GB", "statistic": "Mean", - "collectionInternal": "30 minute", + "collectionInterval": "30 minute", "dimensions": [ "resourceId", "resourceName", @@ -2766,7 +2766,7 @@ "description": "The percentage of space used in a disk.", "unit": "percent", "statistic": "Mean", - "collectionInternal": "30 minute", + "collectionInterval": "30 minute", "dimensions": [ "resourceId", "resourceName", @@ -2783,7 +2783,7 @@ "description": "The total number of IO operations processed per second by a disk group for a database.", "unit": "operations per second", "statistic": "Mean", - "collectionInternal": "5 minute", + "collectionInterval": "5 minute", "dimensions": [ "resourceId", "resourceName", @@ -2801,7 +2801,7 @@ "description": "The average size of an IO operation.", "unit": "MB per operation", "statistic": "Mean", - "collectionInternal": "5 minute", + "collectionInterval": "5 minute", "dimensions": [ "resourceId", "resourceName", @@ -2819,7 +2819,7 @@ "description": "The total IO throughput of a disk group for a database.", "unit": "MB per second", "statistic": "Mean", - "collectionInternal": "5 minute", + "collectionInterval": "5 minute", "dimensions": [ "resourceId", "resourceName", @@ -2837,7 +2837,7 @@ "description": "The monitoring status of the ASM. If metric collection fails, error information is captured in this metric.", "unit": "nan", "statistic": "Min", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "resourceId", "resourceName", @@ -2855,7 +2855,7 @@ "description": "The time taken by a disk group to process an IO request.", "unit": "milliseconds per request", "statistic": "Mean", - "collectionInternal": "5 minute", + "collectionInterval": "5 minute", "dimensions": [ "resourceId", "resourceName", @@ -2873,7 +2873,7 @@ "description": "The status of an ASM instance.", "unit": "nan", "statistic": "Min", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "resourceId", "resourceName", @@ -2889,7 +2889,7 @@ "description": "The cluster interconnect error rate.", "unit": "count", "statistic": "Mean", - "collectionInternal": "5 minute", + "collectionInterval": "5 minute", "dimensions": [ "resourceId", "resourceName", @@ -2905,7 +2905,7 @@ "description": "The cluster interconnect read rate.", "unit": "MB per second", "statistic": "Mean", - "collectionInternal": "5 minute", + "collectionInterval": "5 minute", "dimensions": [ "resourceId", "resourceName", @@ -2921,7 +2921,7 @@ "description": "The cluster interconnect write rate.", "unit": "MB per second", "statistic": "Mean", - "collectionInternal": "5 minute", + "collectionInterval": "5 minute", "dimensions": [ "resourceId", "resourceName", @@ -2937,7 +2937,7 @@ "description": "The CPU used in the time interval.", "unit": "millisecond", "statistic": "Mean", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "resourceId", "resourceName", @@ -2953,7 +2953,7 @@ "description": "The CPU utilization expressed as a percentage.", "unit": "percent", "statistic": "Mean", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "resourceId", "resourceName", @@ -2969,7 +2969,7 @@ "description": "The rate at which data is read from a disk.", "unit": "MB per second", "statistic": "Mean", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "resourceId", "resourceName", @@ -2985,7 +2985,7 @@ "description": "The rate at which data is sent to a disk.", "unit": "MB per second", "statistic": "Mean", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "resourceId", "resourceName", @@ -3001,7 +3001,7 @@ "description": "The total memory used.", "unit": "GB", "statistic": "Mean", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "resourceId", "resourceName", @@ -3017,7 +3017,7 @@ "description": "The percentage of memory utilized.", "unit": "percent", "statistic": "Mean", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "resourceId", "resourceName", @@ -3033,7 +3033,7 @@ "description": "The rate at which data is received across a network interface.", "unit": "MB per second", "statistic": "Mean", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "resourceId", "resourceName", @@ -3050,7 +3050,7 @@ "description": "The rate at which data is sent across a network interface.", "unit": "MB per second", "statistic": "Mean", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "resourceId", "resourceName", @@ -3067,7 +3067,7 @@ "description": "The total storage space used.", "unit": "GB", "statistic": "Mean", - "collectionInternal": "30 minute", + "collectionInterval": "30 minute", "dimensions": [ "resourceId", "resourceName", @@ -3084,7 +3084,7 @@ "description": "The percentage of storage space utilized.", "unit": "percent", "statistic": "Mean", - "collectionInternal": "30 minute", + "collectionInterval": "30 minute", "dimensions": [ "resourceId", "resourceName", @@ -3101,7 +3101,7 @@ "description": "The total number of CPUs available.", "unit": "count", "statistic": "Mean", - "collectionInternal": "30 minute", + "collectionInterval": "30 minute", "dimensions": [ "resourceId", "resourceName", @@ -3117,7 +3117,7 @@ "description": "The total amount of memory available.", "unit": "GB", "statistic": "Mean", - "collectionInternal": "30 minute", + "collectionInterval": "30 minute", "dimensions": [ "resourceId", "resourceName", @@ -3133,7 +3133,7 @@ "description": "The number of active connections at collection time.", "unit": "count", "statistic": "Mean", - "collectionInternal": "5 minute", + "collectionInterval": "5 minute", "dimensions": [ "resourceId", "resourceName", @@ -3148,7 +3148,7 @@ "description": "The number of successfully established connections.", "unit": "connections per minute", "statistic": "Mean", - "collectionInternal": "5 minute", + "collectionInterval": "5 minute", "dimensions": [ "resourceId", "resourceName", @@ -3163,7 +3163,7 @@ "description": "The maximum number of connections that the listener can handle.", "unit": "count", "statistic": "Mean", - "collectionInternal": "5 minute", + "collectionInterval": "5 minute", "dimensions": [ "resourceId", "resourceName", @@ -3178,7 +3178,7 @@ "description": "The number of connections refused by the listener.", "unit": "connections per minute", "statistic": "Mean", - "collectionInternal": "5 minute", + "collectionInterval": "5 minute", "dimensions": [ "resourceId", "resourceName", @@ -3193,7 +3193,7 @@ "description": "The average number of sessions that are actively executing or waiting for resources.", "unit": "integer", "statistic": "Mean", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3210,7 +3210,7 @@ "description": "The number of sessions that have been blocking other sessions for more than 60 seconds.", "unit": "count", "statistic": "Max", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3227,7 +3227,7 @@ "description": "The time taken to connect to an Autonomous AI Database instance in each region from a VM in the same region.", "unit": "Milliseconds", "statistic": "Max", - "collectionInternal": "5 minute", + "collectionInterval": "5 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3244,7 +3244,7 @@ "description": "The number of connections dropped by the client.", "unit": "count", "statistic": "Sum", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3261,7 +3261,7 @@ "description": "The number of connections dropped by the server.", "unit": "count", "statistic": "Sum", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3278,7 +3278,7 @@ "description": "Average rate of accumulation of CPU time by foreground sessions in the database over the time interval.", "unit": "seconds per second", "statistic": "Mean", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3295,7 +3295,7 @@ "description": "The CPU usage expressed as a percentage, aggregated across all consumer groups. The utilization percentage is reported with respect to the number of CPUs the database is allowed to use.", "unit": "percent", "statistic": "Mean", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3312,7 +3312,7 @@ "description": "The number of successful logons during the selected interval.", "unit": "count", "statistic": "Count", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3329,7 +3329,7 @@ "description": "The database is available for connections during the selected time interval (data for this metric lags by 5 minutes). Possible values for this metric: 1 = Database is Available0 = Database is UnavailableNotes for the DatabaseAvailability metric: You can set an alarm that is triggered if the database is not available (value 0). Availability is calculated based on the \"Monthly Uptime Percentage\" described in the Oracle PaaS and IaaS Public Cloud Services Pillar Document document under Delivery Policies (see Autonomous AI Database Availability Service Level Agreement). DatabaseAvailability is only set to 0 when Autonomous AI Database availability is not met. For example when there is a failure on Oracle side. Otherwise, the value is 1.If needed, you can check manual Autonomous AI Database start/stop with the following events: Autonomous AI Database - Start BeginAutonomous AI Database - Start EndAutonomous AI Database - Stop BeginAutonomous AI Database - Stop EndSee Autonomous AI Database Lifecycle Events for more information.", "unit": "count", "statistic": "Mean", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3346,7 +3346,7 @@ "description": "The number of changes that were part of an update or delete operation that were made to all blocks in the SGA. Such changes generate redo log entries and become permanent changes to the database if the transaction is committed.This approximates total database work. This statistic indicates the rate at which buffers are being dirtied, during the selected time interval.", "unit": "count", "statistic": "Sum", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3363,7 +3363,7 @@ "description": "The amount of time database user sessions spend executing database code (CPU Time + WaitTime). DB Time is used to infer database call latency, because DB Time increases in direct proportion to both database call latency (response time) and call volume.It is calculated as the average rate of accumulation of database time by foreground sessions in the database over the time interval.", "unit": "seconds per second", "statistic": "Mean", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3380,7 +3380,7 @@ "description": "The total ECPU billed for this database (which includes ECPUs billed for Local standbys and Database Tools).", "unit": "count", "statistic": "Count", - "collectionInternal": "5 minute", + "collectionInterval": "5 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3397,7 +3397,7 @@ "description": "The number of user and recursive calls that executed SQL statements during the selected interval.", "unit": "count", "statistic": "Sum", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3414,7 +3414,7 @@ "description": "Shows the total number of failed connections to the database during the selected interval.A connection is counted as failed when a connection attempt reaches the database and logs any of the following errors: ORA-12514, ORA-12519 or ORA-12529.", "unit": "count", "statistic": "Sum", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3431,7 +3431,7 @@ "description": "The number of logons that failed because of an invalid user name and/or password, during the selected interval. The counter is reset to 0 by a successful login.", "unit": "count", "statistic": "Mean", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3448,7 +3448,7 @@ "description": "The number of parse calls (real parses) during the selected time interval. A hard parse is an expensive operation in terms of memory use, because it requires Oracle to allocate a workheap and other memory structures and then build a parse tree.", "unit": "count", "statistic": "Sum", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3465,7 +3465,7 @@ "description": "The average number of I/O operations per second.", "unit": "Integer", "statistic": "Mean", - "collectionInternal": "5 minute", + "collectionInterval": "5 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3482,7 +3482,7 @@ "description": "The average throughput in MB per second.", "unit": "Integer", "statistic": "Mean", - "collectionInternal": "5 minute", + "collectionInterval": "5 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3499,7 +3499,7 @@ "description": "The average number of logical block reads (\"db block gets\" plus \"consistent gets\") per second. Includes buffered and direct I/O.", "unit": "Integer", "statistic": "Mean", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3516,7 +3516,7 @@ "description": "The sum of \u201cdb block gets\u201d plus \u201cconsistent gets\u201d, during the selected time interval. This includes logical reads of database blocks from either the buffer cache or process private memory.", "unit": "count", "statistic": null, - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3533,7 +3533,7 @@ "description": "The number of hard or soft parses per second.", "unit": "Integer", "statistic": "Mean", - "collectionInternal": "5 minute", + "collectionInterval": "5 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3550,7 +3550,7 @@ "description": "The number of hard and soft parses during the selected interval.", "unit": "count", "statistic": "Sum", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3567,7 +3567,7 @@ "description": "The number of parse failures during the selected time interval.", "unit": "count", "statistic": "Sum", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3584,7 +3584,7 @@ "description": "The total time in seconds by which the Disaster Recovery peer lags behind its Primary database.For a local Disaster Recovery peer, the metric is displayed under the Primary database.For a cross region Disaster Recovery peer, this metric is displayed under the Disaster Recovery peer.", "unit": "Seconds", "statistic": "Max", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3601,7 +3601,7 @@ "description": "The percentage of maximum available PGA memory that is utilized, aggregated across all consumer groups.", "unit": "percent", "statistic": "Mean", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3618,7 +3618,7 @@ "description": "The number of data blocks read from disk, during the selected time interval.", "unit": "count", "statistic": "Sum", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3635,7 +3635,7 @@ "description": "The size in bytes of disk reads by all database instance activity including application reads, backup and recovery, and other utilities, during the selected time interval.", "unit": "count", "statistic": "Sum", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3652,7 +3652,7 @@ "description": "The number of data blocks written to disk, during the selected time interval.", "unit": "count", "statistic": "Sum", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3669,7 +3669,7 @@ "description": "The size in bytes of all disk writes for the database instance including application activity, backup and recovery, and other utilities, during the selected time interval.", "unit": "count", "statistic": "Sum", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3686,7 +3686,7 @@ "description": "The time taken to display the results of a simple query on the user's screen.", "unit": "Milliseconds", "statistic": "Max", - "collectionInternal": "5 minute", + "collectionInterval": "5 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3703,7 +3703,7 @@ "description": "The number of queued SQL statements, aggregated across all consumer groups, during the selected interval.", "unit": "count", "statistic": "Sum", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3720,7 +3720,7 @@ "description": "Amount of redo generated in bytes, during the selected time interval.", "unit": "count", "statistic": "Sum", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3737,7 +3737,7 @@ "description": "The number of running SQL statements, aggregated across all consumer groups, during the selected interval.", "unit": "count", "statistic": "Mean", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3754,7 +3754,7 @@ "description": "The number of sessions in the database.", "unit": "count", "statistic": "Sum", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3771,7 +3771,7 @@ "description": "The maximum session utilization expressed as a percentage, aggregated across all consumer groups.", "unit": "Percent", "statistic": "Mean", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3788,7 +3788,7 @@ "description": "The percentage of maximum available SGA memory utilized, aggregated across all consumer groups.", "unit": "Percent", "statistic": "Mean", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3805,7 +3805,7 @@ "description": "The number of bytes received from the client over Oracle Net Services, during the selected time interval.", "unit": "count", "statistic": "Sum", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3822,7 +3822,7 @@ "description": "The number of bytes received from a database link over Oracle Net Services, during the selected time interval.", "unit": "count", "statistic": "Sum", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3839,7 +3839,7 @@ "description": "The number of bytes sent to the client from the foreground processes, during the selected time interval.", "unit": "count", "statistic": "Sum", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3856,7 +3856,7 @@ "description": "The number of bytes sent over a database link, during the selected time interval.", "unit": "count", "statistic": "Sum", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3873,7 +3873,7 @@ "description": "Amount of space allocated to the database for all tablespaces, during the interval.", "unit": "GB", "statistic": "Max", - "collectionInternal": "1 hour", + "collectionInterval": "1 hour", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3890,7 +3890,7 @@ "description": "Maximum amount of storage reserved for the database during the interval.", "unit": "GB", "statistic": "Max", - "collectionInternal": "1 hour", + "collectionInterval": "1 hour", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3907,7 +3907,7 @@ "description": "Maximum amount of space used during the interval.", "unit": "GB", "statistic": "Max", - "collectionInternal": "1 hour", + "collectionInterval": "1 hour", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3924,7 +3924,7 @@ "description": "The percentage of the reserved maximum storage currently allocated for all database tablespaces.Represents the total reserved space for all tablespaces.", "unit": "percent", "statistic": "Mean", - "collectionInternal": "1 hour", + "collectionInterval": "1 hour", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3941,7 +3941,7 @@ "description": "The number of committed or rolled back transactions per second.", "unit": "Integer", "statistic": "Mean", - "collectionInternal": "5 minute", + "collectionInterval": "5 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3958,7 +3958,7 @@ "description": "The combined number of user commits and user rollbacks during the selected interval.", "unit": "count", "statistic": "Sum", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3975,7 +3975,7 @@ "description": "The combined number of logons, parses, and execute calls during the selected interval.", "unit": "count", "statistic": "Sum", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -3992,7 +3992,7 @@ "description": "The number of user commits during the selected time interval. When a user commits a transaction, the generated redo that reflects the changes made to database blocks must be written to disk. Commits often represent the closest thing to a user transaction rate.", "unit": "count", "statistic": "Sum", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -4009,7 +4009,7 @@ "description": "Number of times users manually issue the ROLLBACK statement or an error occurs during a user's transactions, during the selected time interval.", "unit": "count", "statistic": "Sum", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", @@ -4026,7 +4026,7 @@ "description": "Average rate of accumulation of non-idle wait time by foreground sessions in the database over the time interval.", "unit": "seconds per second", "statistic": "Mean", - "collectionInternal": "1 minute", + "collectionInterval": "1 minute", "dimensions": [ "AUTONOMOUSDBTYPE", "deploymentType", diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/tools.json b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/tools.json index 4a91b6f2..f83dd173 100644 --- a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/tools.json +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/tools.json @@ -16400,8 +16400,8 @@ "dimension_filters": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Exact dimension filters validated against the catalog."}, "group_by": {"type": "string", "description": "Optional catalog-supported dimension used to group metric streams."}, "aggregation": {"type": "string", "enum": ["mean", "sum", "min", "max", "count", "first", "last", "rate", "increment"], "description": "Aggregation statistic for each interval."}, - "interval": {"type": "string", "pattern": "^(?:[1-9]|[1-5][0-9])m$|^(?:[1-9]|1[0-9]|2[0-4])h$|^[1-9]d$", "description": "MQL interval such as 1m, 5m, 1h, or 1d."}, - "resolution": {"type": "string", "pattern": "^(?:[1-9]|[1-5][0-9])m$|^(?:[1-9]|1[0-9]|2[0-4])h$|^[1-9]d$", "description": "Monitoring resolution such as 1m, 5m, 1h, or 1d."}, + "interval": {"type": "string", "pattern": "^(?:[1-9]|[1-5][0-9]|60)m$|^(?:[1-9]|1[0-9]|2[0-4])h$|^1d$", "description": "MQL interval from 1m through 60m, 1h through 24h, or 1d."}, + "resolution": {"type": "string", "pattern": "^(?:[1-9]|[1-5][0-9]|60)m$|^(?:[1-9]|1[0-9]|2[0-4])h$|^1d$", "description": "Monitoring resolution from 1m through 60m, 1h through 24h, or 1d; it must not exceed interval."}, "start_time": {"type": "string", "format": "date-time", "description": "Inclusive RFC3339 start time."}, "end_time": {"type": "string", "format": "date-time", "description": "Exclusive RFC3339 end time."}, "resource_group": {"type": "string", "description": "Optional OCI Monitoring resource group."}, diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/runtime.py b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/runtime.py index a691eb23..b92184f6 100644 --- a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/runtime.py +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/runtime.py @@ -9,6 +9,7 @@ import inspect import json +from copy import copy from datetime import datetime from functools import lru_cache from typing import Any, Mapping, get_args, get_origin @@ -194,6 +195,34 @@ def _parse_metric_time(value: str, field: str) -> datetime: return parsed +def _monitoring_duration(value: str) -> int: + """Convert a schema-validated OCI Monitoring duration into minutes.""" + amount, unit = int(value[:-1]), value[-1] + return amount * {"m": 1, "h": 60, "d": 60 * 24}[unit] + + +def _limit_metric_streams(data: Any, max_results: int) -> list[Any]: + """Bound both metric streams and their aggregate datapoints before serialization.""" + if not isinstance(data, list): + return data + limited: list[Any] = [] + remaining_datapoints = max_results + for stream in data[:max_results]: + datapoints = stream.get("aggregated_datapoints") if isinstance(stream, Mapping) else getattr(stream, "aggregated_datapoints", None) + if isinstance(datapoints, list): + if remaining_datapoints <= 0: + break + stream = dict(stream) if isinstance(stream, Mapping) else copy(stream) + bounded_datapoints = datapoints[:remaining_datapoints] + if isinstance(stream, dict): + stream["aggregated_datapoints"] = bounded_datapoints + else: + stream.aggregated_datapoints = bounded_datapoints + remaining_datapoints -= len(bounded_datapoints) + limited.append(stream) + return limited + + def _invoke_metric_read(tool: Mapping[str, Any], arguments: Mapping[str, Any]) -> dict[str, Any]: catalog = load_metric_catalog() metric = catalog.get([{"namespace": arguments["namespace"], "name": arguments["metric_name"]}])["items"] @@ -213,6 +242,8 @@ def _invoke_metric_read(tool: Mapping[str, Any], arguments: Mapping[str, Any]) - end_time = _parse_metric_time(arguments["end_time"], "end_time") if start_time >= end_time: raise ValueError("start_time must be earlier than end_time") + if _monitoring_duration(arguments["resolution"]) > _monitoring_duration(arguments["interval"]): + raise ValueError("resolution must not exceed interval") client = _client(str(tool["service"]), str(tool["client"])) details = oci.monitoring.models.SummarizeMetricsDataDetails( namespace=arguments["namespace"], @@ -230,10 +261,14 @@ def _invoke_metric_read(tool: Mapping[str, Any], arguments: Mapping[str, Any]) - ) except Exception as exc: raise RuntimeError(f"OCI operation {tool['name']} failed: {exc}") from exc - result = serialize_response(response) max_results = arguments.get("max_results") - if max_results is not None and isinstance(result["data"], list): - result["data"] = result["data"][:max_results] + if max_results is None: + result = serialize_response(response) + else: + result = { + "data": _serialize_data(_limit_metric_streams(getattr(response, "data", response), max_results)), + "nextPage": (getattr(response, "headers", {}) or {}).get("opc-next-page"), + } result["mql"] = _metric_mql(arguments) return result diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_metric_catalog.py b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_metric_catalog.py index 8c3548d1..b3e5dcbc 100644 --- a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_metric_catalog.py +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_metric_catalog.py @@ -70,6 +70,12 @@ def test_get_and_list_validate_and_page_catalog_records() -> None: assert catalog.list(limit=1, cursor=first_page["nextCursor"])["nextCursor"] is None +def test_packaged_catalog_exposes_collection_interval() -> None: + catalog = metric_catalog.load_metric_catalog() + + assert all("collectionInterval" in record and "collectionInternal" not in record for record in catalog.records) + + @pytest.mark.parametrize( ("payload", "error"), [ @@ -87,4 +93,3 @@ def test_load_metric_catalog_rejects_invalid_packaged_data(monkeypatch, payload, metric_catalog.load_metric_catalog() metric_catalog.load_metric_catalog.cache_clear() - diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_registry.py b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_registry.py index 1e4e01d7..008f76e3 100644 --- a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_registry.py +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_registry.py @@ -145,14 +145,26 @@ def test_registry_values_can_be_returned_as_json() -> None: def test_packaged_schemas_match_the_locked_oci_sdk() -> None: registry = load_registry() + narrowed_alarm_tools = { + "list_database_and_infra_observability_alarms", + "get_database_and_infra_observability_alarm", + "list_database_and_infra_observability_alarm_states", + } for tool in registry.tools: - if tool.get("kind") != "oci_sdk" or tool.get("adapter") or "database-and-infra-observability-metric-catalog" in tool["skills"]: + if tool.get("kind", "oci_sdk") != "oci_sdk" or tool.get("adapter"): continue method = getattr(client_class(tool["service"], tool["client"]), tool["operation"]) models = __import__(f"{method.__module__.rsplit('.', 1)[0]}.models", fromlist=["models"]) schema = to_jsonable(tool["inputSchema"]) - assert schema == schema_for_operation(method, models, schema) + sdk_schema = schema_for_operation(method, models, schema) + if tool["name"] in narrowed_alarm_tools: + assert schema["required"] == sdk_schema["required"] + assert schema["additionalProperties"] is False + assert set(schema["properties"]).issubset(sdk_schema["properties"]) + assert all(schema["properties"][name] == sdk_schema["properties"][name] for name in schema["properties"]) + else: + assert schema == sdk_schema def test_metric_catalog_skill_uses_the_pinned_monitoring_client_operations() -> None: diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_runtime.py b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_runtime.py index 7a44d81b..f813b1b9 100644 --- a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_runtime.py +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_runtime.py @@ -278,7 +278,13 @@ def __init__(self, **kwargs): class Client: def summarize_metrics_data(self, **kwargs): captured.update(kwargs) - return SimpleNamespace(data=[{"stream": 1}, {"stream": 2}], headers={}) + return SimpleNamespace( + data=[ + {"stream": 1, "aggregated_datapoints": [{"value": 1}, {"value": 2}]}, + {"stream": 2, "aggregated_datapoints": [{"value": 3}]}, + ], + headers={}, + ) monkeypatch.setattr(runtime, "_client", lambda *_args: Client()) monkeypatch.setattr( @@ -308,7 +314,7 @@ def summarize_metrics_data(self, **kwargs): assert captured["compartment_id"] == "ocid1.compartment.oc1..example" assert captured["summarize_metrics_data_details"].kwargs["query"] == 'ApplyLag[5m]{dbRole = "PHYSICAL_STANDBY"}.groupBy(primaryDbid).mean()' - assert result["data"] == [{"stream": 1}] + assert result["data"] == [{"stream": 1, "aggregated_datapoints": [{"value": 1}]}] assert result["mql"] == 'ApplyLag[5m]{dbRole = "PHYSICAL_STANDBY"}.groupBy(primaryDbid).mean()' @@ -317,6 +323,7 @@ def summarize_metrics_data(self, **kwargs): [ ({"dimension_filters": {"notCataloged": "value"}}, "Unsupported dimensions"), ({"start_time": "2026-08-01T01:00:00Z", "end_time": "2026-08-01T00:00:00Z"}, "start_time must be earlier"), + ({"interval": "1m", "resolution": "5m"}, "resolution must not exceed interval"), ], ) def test_metric_read_rejects_invalid_catalog_or_time_before_client_creation(monkeypatch, arguments, error) -> None: @@ -344,6 +351,28 @@ def test_metric_read_rejects_invalid_catalog_or_time_before_client_creation(monk runtime.invoke_registered_tool(load_registry().get_tool("read_database_and_infra_observability_metrics"), base_arguments) +@pytest.mark.parametrize(("interval", "resolution"), [("60m", "60m"), ("1d", "1d")]) +def test_metric_read_schema_accepts_documented_duration_boundaries(interval, resolution) -> None: + from jsonschema import Draft202012Validator + from oracle.oci_db_observability_mcp_server.registry import load_registry + + schema = load_registry().get_tool("read_database_and_infra_observability_metrics")["inputSchema"] + arguments = { + "compartment_id": "ocid1.compartment.oc1..example", + "namespace": "oracle_oci_database", + "metric_name": "ApplyLag", + "aggregation": "mean", + "interval": interval, + "resolution": resolution, + "start_time": "2026-08-01T00:00:00Z", + "end_time": "2026-08-01T01:00:00Z", + } + + assert not list(Draft202012Validator(schema).iter_errors(arguments)) + arguments["interval"] = "2d" + assert list(Draft202012Validator(schema).iter_errors(arguments)) + + @pytest.mark.parametrize( ("tool_name", "arguments", "operation"), [ From 893994e94d27644bd21bd0ffb3202be11f2d6877 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Luis=20Castro=20Garc=C3=ADa?= Date: Fri, 11 Sep 2026 17:27:12 -0600 Subject: [PATCH 22/23] fixed tests --- .../CHANGELOG.md | 4 +++ .../metadata/skills.json | 6 ++-- .../metadata/tools.json | 33 +++++++++++++------ .../sdk_schema.py | 2 ++ .../tests/test_registry.py | 20 ++++++++++- .../pyproject.toml | 25 ++++++++++++++ 6 files changed, 76 insertions(+), 14 deletions(-) diff --git a/src/oci-db-observability-mcp-server/CHANGELOG.md b/src/oci-db-observability-mcp-server/CHANGELOG.md index 6a29038d..8117c388 100644 --- a/src/oci-db-observability-mcp-server/CHANGELOG.md +++ b/src/oci-db-observability-mcp-server/CHANGELOG.md @@ -4,10 +4,14 @@ ### Tool surface +- Clarified `list_jobs` sorting guidance so ordinary inventory requests omit + optional sorting, while retaining the OCI SDK's documented sort values. - Added the `database-and-infra-observability-metric-catalog` skill with local metric catalog search/get/list handlers, a catalog-validated live OCI Monitoring metric reader, and read-only OCI Monitoring alarm definition and status operations. +- Added capability-first classification, AWR fallback, and single-target + validation checkpoints to health and AWR skill prompts. ## 0.1.0 - 2026-08-05 diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/skills.json b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/skills.json index f4dba2e1..58f215a4 100644 --- a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/skills.json +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/skills.json @@ -27,7 +27,7 @@ }, { "name": "awr-historical-performance-analysis", - "description": "AWR historical summarization across CPU, waits, metrics, parameters, and system statistics. Use AWR sysstat tools for historical metrics that can be derived from documented counters. Verify required counters and a common completed interval before querying a fleet; calculate rates or percentages only when the formula and counter semantics are known. If the counters are unavailable, report the limitation and do not fan out. Do not use fixed health-summary tools as generic metric lookups.", + "description": "AWR historical summarization across CPU, waits, metrics, parameters, and system statistics. Before querying a fleet, classify the requested quantity as a direct metric, configuration value, status count, or derived metric. When a rate or percentage is not directly exposed, prefer AWR counter tools or reports over fixed health summaries: discover AWR identifiers, retrieve one completed interval, verify the required counters, and only then expand to the fleet. Calculate derived values only when the inputs, interval, and formula are documented; if unavailable, report the limitation and do not fan out. Do not use fixed health-summary tools as generic metric lookups.", "tools": [ "summarize_awr_db_cpu_usages", "summarize_awr_db_metrics", @@ -153,7 +153,7 @@ }, { "name": "database-health-and-core-metrics", - "description": "Read-only health and core runtime metric checks for managed databases in OCI DBM. Check target type and subtype from inventory before invoking a specialized tool such as get_cluster_cache_metric. Inspect each tool's schema and documented response scope before calling it; do not use a tool without a metric selector as a generic metric lookup. Validate metric and time constraints before any per-database fan-out; if parameter validation fails, correct the request once and do not repeat the same invalid request across the fleet.", + "description": "Read-only health and core runtime metric checks for managed databases in OCI DBM. Before querying a fleet, classify the requested quantity as a direct metric, configuration value, status count, or derived metric. Select a tool whose schema or documented response explicitly supports that quantity; inspect target type and subtype before invoking a specialized tool such as get_cluster_cache_metric. Do not use a tool without a metric selector as a generic metric lookup. If the selected tool lacks the requested field, inspect related skills for documented raw counters or status data before concluding that the MCP lacks the capability. Validate metric and time constraints and test the chosen path on one target before any fleet fan-out; if parameter validation fails, correct the request once and do not repeat the same invalid request across the fleet.", "tools": [ "get_cluster_cache_metric", "get_database_home_metrics", @@ -347,7 +347,7 @@ }, { "name": "job-orchestration-and-execution-tracking", - "description": "Read-only job, run, and execution inventory with status summaries in OCI Database Management. Use this skill for questions about job counts, broken or failed executions, execution status, or job health. For aggregate counts by status across a compartment or time range, prefer summarize_job_executions_statuses; use list_job_executions or list_job_runs for per-item details. These are job-status workflows, not CPU, storage, or fleet-health resource-metric workflows. Before calling a status summary, provide at least one supported target selector (managed database, managed database group, or job), use a time window no longer than one week, and set end_time before the current UTC time. Treat returned status names as backend values; do not assume that a user term such as broken maps to FAILED unless the response establishes that mapping.", + "description": "Read-only job, run, and execution inventory with status summaries in OCI Database Management. Use this skill for questions about job counts, broken or failed executions, execution status, or job health. For aggregate counts by status across a compartment or time range, prefer summarize_job_executions_statuses; use list_job_executions or list_job_runs for per-item details. These are job-status workflows, not CPU, storage, or fleet-health resource-metric workflows. Before calling a status summary, provide exactly one supported target selector (id for a job, managed_database_id, or managed_database_group_id), use a time window no longer than one week, and set end_time before the current UTC time. Treat returned status names as backend values; do not assume that a user term such as broken maps to FAILED unless the response establishes that mapping.", "tools": [ "get_job", "get_job_execution", diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/tools.json b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/tools.json index 4a91b6f2..772e569d 100644 --- a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/tools.json +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/tools.json @@ -7030,7 +7030,7 @@ }, { "name": "list_jobs", - "description": "Lists jobs in a compartment with optional target filters so you can locate job definitions quickly.", + "description": "Lists jobs in a compartment with optional target filters so you can locate job definitions quickly. For ordinary inventory requests, omit sort_by and sort_order; use them only when the user explicitly requests ordering. The OCI Python SDK documents sort_by values as TIMECREATED or NAME (case-sensitive).", "service": "dbm", "client": "DbManagementClient", "operation": "list_jobs", @@ -7082,7 +7082,7 @@ "TIMECREATED", "NAME" ], - "description": "The field to sort information by. Only one sortOrder can be used. The default sort order\nfor \u2018TIMECREATED\u2019 is descending and the default sort order for \u2018NAME\u2019 is ascending.\nThe \u2018NAME\u2019 sort order is case-sensitive.\n\nAllowed values are: \"TIMECREATED\", \"NAME\"" + "description": "Optional field to sort information by. Omit for ordinary inventory/list-all requests because the live service may reject sorting even when the SDK accepts it. When ordering is explicitly requested, use exactly one of the SDK-documented, case-sensitive values: \"TIMECREATED\" or \"NAME\". The default sort order for TIMECREATED is descending and for NAME is ascending." }, "sort_order": { "type": "string", @@ -15474,7 +15474,7 @@ }, { "name": "summarize_job_executions_statuses", - "description": "Returns aggregated counts of job executions by backend status for the requested scope and time range. Use this for job-status count questions; do not route these questions to fleet resource-metric tools. The API requires at least one of managed_database_id, managed_database_group_id, or job_id. The requested interval must be no longer than one week and end_time must be earlier than the current UTC time. Report returned status names as-is; do not equate user terms such as broken with a backend status unless confirmed by the response.", + "description": "Returns aggregated counts of job executions by backend status for one job, Managed Database, or Managed Database Group in a compartment and time range. Use this for job-status count questions; do not route these questions to fleet resource-metric tools. Provide exactly one of id, managed_database_id, or managed_database_group_id. The requested interval must be no longer than one week and end_time must be earlier than the current UTC time. Report returned status names as-is; do not equate user terms such as broken with a backend status unless confirmed by the response.", "service": "dbm", "client": "DbManagementClient", "operation": "summarize_job_executions_statuses", @@ -15494,19 +15494,15 @@ }, "id": { "type": "string", - "description": "The identifier of the resource." - }, - "job_id": { - "type": "string", - "description": "Optional identifier of the job. At least one of managed_database_id, managed_database_group_id, or job_id is required by the API." + "description": "Optional identifier of the job. Provide exactly one of id, managed_database_id, or managed_database_group_id." }, "managed_database_group_id": { "type": "string", - "description": "Optional OCID of the Managed Database Group. At least one of managed_database_id, managed_database_group_id, or job_id is required by the API." + "description": "Optional OCID of the Managed Database Group. Provide exactly one of id, managed_database_id, or managed_database_group_id." }, "managed_database_id": { "type": "string", - "description": "Optional OCID of the Managed Database. At least one of managed_database_id, managed_database_group_id, or job_id is required by the API." + "description": "Optional OCID of the Managed Database. Provide exactly one of id, managed_database_id, or managed_database_group_id." }, "name": { "type": "string", @@ -15536,6 +15532,23 @@ "type": "string" } }, + "oneOf": [ + { + "required": [ + "id" + ] + }, + { + "required": [ + "managed_database_id" + ] + }, + { + "required": [ + "managed_database_group_id" + ] + } + ], "additionalProperties": false, "required": [ "compartment_id", diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/sdk_schema.py b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/sdk_schema.py index 940c526c..9df7f44f 100644 --- a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/sdk_schema.py +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/sdk_schema.py @@ -203,6 +203,8 @@ def schema_for_operation(method: Any, models_module: Any, existing: Mapping[str, if required: existing_required = existing.get("required", []) if isinstance(existing, Mapping) else [] result["required"] = [name for name in existing_required if name in required] + [name for name in required if name not in existing_required] + if isinstance(existing, Mapping) and "oneOf" in existing: + result["oneOf"] = existing["oneOf"] return result diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_registry.py b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_registry.py index 1e4e01d7..e945d027 100644 --- a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_registry.py +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_registry.py @@ -10,6 +10,7 @@ from types import SimpleNamespace import pytest +from jsonschema import Draft202012Validator from oracle.oci_db_observability_mcp_server.registry import ( RegistryError, @@ -147,7 +148,7 @@ def test_packaged_schemas_match_the_locked_oci_sdk() -> None: registry = load_registry() for tool in registry.tools: - if tool.get("kind") != "oci_sdk" or tool.get("adapter") or "database-and-infra-observability-metric-catalog" in tool["skills"]: + if tool.get("kind", "oci_sdk") != "oci_sdk" or tool.get("adapter") or "database-and-infra-observability-metric-catalog" in tool["skills"]: continue method = getattr(client_class(tool["service"], tool["client"]), tool["operation"]) models = __import__(f"{method.__module__.rsplit('.', 1)[0]}.models", fromlist=["models"]) @@ -155,6 +156,23 @@ def test_packaged_schemas_match_the_locked_oci_sdk() -> None: assert schema == schema_for_operation(method, models, schema) +def test_job_status_summary_requires_one_sdk_supported_scope() -> None: + schema = dict(load_registry().get_tool("summarize_job_executions_statuses")["inputSchema"]) + validator = Draft202012Validator(schema) + base = { + "compartment_id": "compartment", + "start_time": "2026-01-01T00:00:00Z", + "end_time": "2026-01-01T01:00:00Z", + } + + assert validator.is_valid({**base, "id": "job"}) + assert validator.is_valid({**base, "managed_database_id": "database"}) + assert validator.is_valid({**base, "managed_database_group_id": "group"}) + assert not validator.is_valid(base) + assert not validator.is_valid({**base, "id": "job", "managed_database_id": "database"}) + assert not validator.is_valid({**base, "job_id": "job"}) + + def test_metric_catalog_skill_uses_the_pinned_monitoring_client_operations() -> None: registry = load_registry() tool_operations = { diff --git a/src/oci-db-observability-mcp-server/pyproject.toml b/src/oci-db-observability-mcp-server/pyproject.toml index 7765818f..ae5bb671 100644 --- a/src/oci-db-observability-mcp-server/pyproject.toml +++ b/src/oci-db-observability-mcp-server/pyproject.toml @@ -34,6 +34,31 @@ build-backend = "hatchling.build" packages = ["oracle"] exclude = ["/oracle/**/tests/**"] +[tool.hatch.build.targets.sdist] +exclude = [ + "/.coverage*", + "/htmlcov/**", + "/.pytest_cache/**", + "/.ruff_cache/**", + "/.venv/**", + "/venv/**", + "/dist/**", + "/build/**", + "/uv.lock", + "**/__pycache__/**", + "**/*.py[cod]", + "/.DS_Store", + "/.env", + "/.env.*", + "/.claude/**", + "/.cline/**", + "/.roo/**", + "/.cursor/**", + "/mcp_settings*.json", + "/Containerfile", + "/.containerignore", +] + [dependency-groups] dev = [ "openapi-pydantic>=0.5.1", From 64195bbdbe87ff6afe1cd9f578f573587a4c465c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Luis=20Castro=20Garc=C3=ADa?= Date: Mon, 14 Sep 2026 10:32:21 -0600 Subject: [PATCH 23/23] fixed version metadata --- .../oracle/oci_db_observability_mcp_server/__init__.py | 4 +++- .../oci_db_observability_mcp_server/tests/test_runtime.py | 7 ++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/__init__.py b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/__init__.py index c6cb5506..f706ff73 100644 --- a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/__init__.py +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/__init__.py @@ -4,5 +4,7 @@ https://oss.oracle.com/licenses/upl. """ +from importlib.metadata import version as distribution_version + __project__ = "oracle.oci-db-observability-mcp-server" -__version__ = "0.1.0" +__version__ = distribution_version(__project__) diff --git a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_runtime.py b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_runtime.py index f813b1b9..fb7b2cac 100644 --- a/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_runtime.py +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_runtime.py @@ -7,6 +7,7 @@ from __future__ import annotations import json +from importlib.metadata import version as distribution_version from types import SimpleNamespace from unittest.mock import Mock @@ -17,7 +18,11 @@ from oracle.oci_db_observability_mcp_server import runtime -EXPECTED_USER_AGENT = f"{__project__.split('oracle.', 1)[1].removesuffix('-server')}/{__version__}" +EXPECTED_USER_AGENT = f"{__project__.split('oracle.', 1)[1].removesuffix('-server')}/{distribution_version(__project__)}" + + +def test_package_version_matches_installed_distribution() -> None: + assert __version__ == distribution_version(__project__) class FakeClient: